a2ps-4.15.5/0000755000000000000000000000000014445132372007427 500000000000000a2ps-4.15.5/ABOUT-NLS0000644000000000000000000000010314415562264010574 00000000000000 a2ps-4.15.5/ANNOUNCE0000644000000000000000000000612414410127564010502 00000000000000Description =========== GNU a2ps is an Any to PostScript filter. Of course it processes plain text files, but also pretty prints quite a few popular languages. Its slogan is precisely "Do The Right Thing", which means that though it is highly configurable, everything was made so that a novice user can do complicated PostScript manipulations. For instance, it has the ability to delegate the processing of some files to other filters (such as groff, texi2dvi, dvips, gzip etc.), what allows a uniform treatment (n-up, page selection, duplex etc.) of heterogeneous files. As an example: | $ a2ps mill.1.ps.gz a2ps.gif NEWS a2ps.texi index.html -o demo.ps | [mill.1.ps.gz (compressed, delegated to Gzip-a2ps): 17 pages on 9 sheets] | [a2ps.gif (gif, delegated to ImageMagick): 3 pages on 2 sheets] | [NEWS (plain): 12 pages on 6 sheets] | [a2ps.texi (texinfo, delegated to texi2dvi): 89 pages on 45 sheets] | [index.html (html, delegated to Netscape): 13 pages on 7 sheets] | [Total: 132 pages on 66 sheets] saved into the file `demo.ps' Want to print a LaTeX file in Duplex? | $ a2ps paper.tex -s2 -P margot | [paper.tex (tex, delegated to texi2dvi): 33 pages on 9 sheets] | request id is margot-129 (standard input) | [Total: 34 pages on 9 sheets] sent to the printer `margot' (Bibtex, makeindex, and latex were run as many times as needed.) Or maybe you want to print the documentation as a booklet? | $ a2ps -P margot -=book doc/a2ps.texi | [doc/a2ps.texi (texinfo, delegated to texi2dvi): 109 pages on 109 sheets] | request id is margot-128 (standard input) | [Total: 109 pages on 109 sheets] sent to the printer `margot' It supports a wide number of encodings, and a very good handling of Latin 2-6 should be noted, thanks to Ogonkify (by Juliusz Chroboczek ). Needed fonts are automatically downloaded. The interface is internationalized, the output is customizable and there are as many options as users had wishes (table of content, headings, virtual page layout etc. etc.). The documentation has been carefully crafted for both novices and experts. It is meant to bring light on most questions you have, and includes a glossary. Contributions ============= Some goodies are provided in the package: - card pretty prints `--help' from programs - fixps fixes most common problems in PostScript files - lp2 eases Duplex printing on Simplex printers - pdiff prints a comparison between two files The full distribution of Ogonkify, by Juliusz Chroboczek, is also included. Ogonkify let's you fix deficient Latin 2-6 support in popular applications' PostScript (Netscape, StarOffice...). Downloading =========== GNU a2ps can be found on its web page: https://www.gnu.org/software/a2ps/ There is also a mailing list set up to discuss around a2ps. To subscribe, please see https://lists.gnu.org/mailman/listinfo/a2ps. Contributions of any kind are most welcome! Please do *not* use this address to report bugs, use . Authors ======= a2ps is written by akim@freefriends.org, Miguel.Santana@st.com and mhatta@gnu.org. We hope you'll enjoy it! -- Akim, Miguel & Masayuki a2ps-4.15.5/AUTHORS0000644000000000000000000000040714364762207010426 00000000000000GNU a2ps was originally written by Miguel Santana and Akim Demaille. It is currently maintained by Reuben Thomas, and was previously maintained by David Seifert and Masayuki Hatta. Thanks also to all the style sheet authors, porters, packagers and translators! a2ps-4.15.5/ChangeLog0000644000000000000000000000002114236507210011105 00000000000000See git history. a2ps-4.15.5/FAQ0000644000000000000000000000102514445131377007703 00000000000000 +======================================================================+ | | | The following information is part of the Texinfo documentation. | | It is provided only to help you solve problems you might have | | while installing a2ps. You need not keep this file. | | | +======================================================================+ a2ps-4.15.5/GNUmakefile0000644000000000000000000001075514374751113011432 00000000000000# Having a separate GNUmakefile lets me 'include' the dynamically # generated rules created via cfg.mk (package-local configuration) # as well as maint.mk (generic maintainer rules). # This makefile is used only if you run GNU Make. # It is necessary if you want to build targets usually of interest # only to the maintainer. # Copyright (C) 2001, 2003, 2006-2023 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # If the user runs GNU make but has not yet run ./configure, # give them a diagnostic. _gl-Makefile := $(wildcard [M]akefile) ifneq ($(_gl-Makefile),) # Make tar archive easier to reproduce. export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --sort=name # Allow the user to add to this in the Makefile. ALL_RECURSIVE_TARGETS = include Makefile # Some projects override e.g., _autoreconf here. -include $(srcdir)/cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include $(srcdir)/maint.mk # Ensure that $(VERSION) is up to date for dist-related targets, but not # for others: rerunning autoreconf and recompiling everything isn't cheap. _have-git-version-gen := \ $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes) ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL)) _is-dist-target ?= $(filter-out %clean, \ $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS))) _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS))) ifneq (,$(_is-dist-target)$(_is-install-target)) _curr-ver := $(shell cd $(srcdir) \ && $(_build-aux)/git-version-gen \ .tarball-version \ $(git-version-gen-tag-sed-script)) ifneq ($(_curr-ver),$(VERSION)) ifeq ($(_curr-ver),UNKNOWN) $(info WARNING: unable to verify if $(VERSION) is the correct version) else ifneq (,$(_is-install-target)) # GNU Coding Standards state that 'make install' should not cause # recompilation after 'make all'. But as long as changing the version # string alters config.h, the cost of having 'make all' always have an # up-to-date version is prohibitive. So, as a compromise, we merely # warn when installing a version string that is out of date; the user # should run 'autoreconf' (or something like 'make distcheck') to # fix the version, 'make all' to propagate it, then 'make install'. $(info WARNING: version string $(VERSION) is out of date;) $(info run '$(MAKE) _version' to fix it) else $(info INFO: running autoreconf for new version string: $(_curr-ver)) GNUmakefile: _version touch GNUmakefile endif endif endif endif endif .PHONY: _version _version: cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf) $(MAKE) $(AM_MAKEFLAGS) Makefile else .DEFAULT_GOAL := abort-due-to-no-makefile srcdir = . # The package can override .DEFAULT_GOAL to run actions like autoreconf. -include ./cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include ./maint.mk ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile) $(MAKECMDGOALS): abort-due-to-no-makefile endif abort-due-to-no-makefile: @echo There seems to be no Makefile in this directory. 1>&2 @echo "You must run ./configure before running '$(MAKE)'." 1>&2 @exit 1 endif # Tell version 3.79 and up of GNU make to not build goals in this # directory in parallel, in case someone tries to build multiple # targets, and one of them can cause a recursive target to be invoked. # Only set this if Automake doesn't provide it. AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) \ dist distcheck tags ctags ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS) ifneq ($(word 2, $(MAKECMDGOALS)), ) ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), ) .NOTPARALLEL: endif endif a2ps-4.15.5/INSTALL0000644000000000000000000004012314374751113010401 00000000000000Installation Instructions ************************* Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2023 Free Software Foundation, Inc. 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. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell command ‘./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. Some packages provide this ‘INSTALL’ file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. 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, generally using the just-built uninstalled binaries. 4. Type ‘make install’ to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the ‘make install’ phase executed with root privileges. 5. Optionally, type ‘make installcheck’ to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior ‘make install’ required root privileges, verifies that the installation completed correctly. 6. 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. 7. Often, you can also type ‘make uninstall’ to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide ‘make distcheck’, which can by used by developers to test that all other targets like ‘make install’ and ‘make uninstall’ work correctly. This target is generally not run by end users. 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 ‘..’. This is known as a “VPATH” build. 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’, where PREFIX must be an absolute file name. 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. In general, the default for these options is expressed in terms of ‘${prefix}’, so that specifying just ‘--prefix’ will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to ‘configure’; however, many packages provide one or both of the following shortcuts of passing variable assignments to the ‘make install’ command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, ‘make install prefix=/alternate/directory’ will choose an alternate location for all directory configuration variables that were expressed in terms of ‘${prefix}’. Any directories that were specified during ‘configure’, but not in terms of ‘${prefix}’, must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the ‘DESTDIR’ variable. For example, ‘make install DESTDIR=/alternate/directory’ will prepend ‘/alternate/directory’ before all installation names. The approach of ‘DESTDIR’ overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of ‘${prefix}’ at ‘configure’ time. Optional Features ================= 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’. 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. Some packages offer the ability to configure how verbose the execution of ‘make’ will be. For these packages, running ‘./configure --enable-silent-rules’ sets the default to minimal output, which can be overridden with ‘make V=1’; while running ‘./configure --disable-silent-rules’ sets the default to verbose, which can be overridden with ‘make V=0’. 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 -D_XOPEN_SOURCE=500" and if that doesn’t work, install pre-built binaries of GCC for HP-UX. HP-UX ‘make’ updates targets which have the same timestamps as their prerequisites, which makes it generally unusable when shipped generated files such as ‘configure’ are involved. Use GNU ‘make’ instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its ‘’ 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" On Solaris, don’t put ‘/usr/ucb’ early in your ‘PATH’. This directory contains several dysfunctional programs; working variants of these programs are available in ‘/usr/bin’. So, if you need ‘/usr/ucb’ in your ‘PATH’, put it _after_ ‘/usr/bin’. On Haiku, software installed for all users goes in ‘/boot/common’, not ‘/usr/local’. It is recommended to use the following options: ./configure --prefix=/boot/common 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 limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/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. a2ps-4.15.5/Makefile.am0000644000000000000000000000312214445053504011400 00000000000000# Process this file with automake to create Makefile.in # # Copyright 1995-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ## Make sure to drop doc at the end: it causes may problems, so ## let's do the maximum before it SUBDIRS = build-aux etc ps ogonkify lib liba2ps src po-gnulib po \ tests sheets encoding afm fonts ppd contrib doc man EXTRA_DIST = TODO ANNOUNCE FAQ m4/gnulib-cache.m4 all-local: FAQ prcs-diff: thisver=`echo "Version-$(VERSION)" | sed 's/\./-/g'`; \ IFS="${IFS}:,;" ; \ for prev in $(PREV); \ do \ prevno=`echo "$$prev" | sed 's/^\./0./'`; \ prevver=Version-`echo $$prevno | sed 's/\./-/g'`; \ diff=$(PACKAGE)-$$prevno-$(VERSION).diff; \ prcs diff -r $$prevver -r $$thisver -N $(PACKAGE) -- -u > $$diff; \ gzip -c $$diff > $$diff.gz && \ bzip2 $$diff ;\ done FAQ: $(top_srcdir)/doc/a2ps.texi LC_ALL=C $(MAKEINFO) --no-header -I $(top_builddir)/doc $(top_srcdir)/doc/a2ps.texi | \ sed -n -f $(top_srcdir)/build-aux/make-faq.sed > FAQ-tmp mv FAQ-tmp FAQ a2ps-4.15.5/Makefile.in0000644000000000000000000021313214445132052011411 00000000000000# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir distdir-am dist dist-all distcheck am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/build-aux/ar-lib $(top_srcdir)/build-aux/compile \ $(top_srcdir)/build-aux/config.guess \ $(top_srcdir)/build-aux/config.rpath \ $(top_srcdir)/build-aux/config.sub \ $(top_srcdir)/build-aux/install-sh \ $(top_srcdir)/build-aux/ltmain.sh \ $(top_srcdir)/build-aux/missing ABOUT-NLS AUTHORS ChangeLog \ INSTALL NEWS README THANKS TODO DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip # Exists only to be overridden by the user if desired. AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = build-aux etc ps ogonkify lib liba2ps src po-gnulib po \ tests sheets encoding afm fonts ppd contrib doc man EXTRA_DIST = TODO ANNOUNCE FAQ m4/gnulib-cache.m4 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" loc-local: ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-zstd: distdir tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ *.tar.zst*) \ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h all-local installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: loc: loc-recursive loc-am: loc-local maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ dist-xz dist-zip dist-zstd distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am loc-am \ loc-local maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile all-local: FAQ prcs-diff: thisver=`echo "Version-$(VERSION)" | sed 's/\./-/g'`; \ IFS="${IFS}:,;" ; \ for prev in $(PREV); \ do \ prevno=`echo "$$prev" | sed 's/^\./0./'`; \ prevver=Version-`echo $$prevno | sed 's/\./-/g'`; \ diff=$(PACKAGE)-$$prevno-$(VERSION).diff; \ prcs diff -r $$prevver -r $$thisver -N $(PACKAGE) -- -u > $$diff; \ gzip -c $$diff > $$diff.gz && \ bzip2 $$diff ;\ done FAQ: $(top_srcdir)/doc/a2ps.texi LC_ALL=C $(MAKEINFO) --no-header -I $(top_builddir)/doc $(top_srcdir)/doc/a2ps.texi | \ sed -n -f $(top_srcdir)/build-aux/make-faq.sed > FAQ-tmp mv FAQ-tmp FAQ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: a2ps-4.15.5/NEWS0000644000000000000000000010743314445132057010056 00000000000000 User visible changes in GNU a2ps. * Noteworthy changes in release 4.15.5 (2023-06-22) [stable] * Bug fixes: - Fix psnup delegation. It was incorrectly changed in 4.14.90. * Documentation: - Minor tweaks. * Noteworthy changes in release 4.15.4 (2023-04-13) [stable] * Bug fixes: - Fix to read configured paper size correctly with libpaper 1.x. * Documentation: - Various minor documentation improvements. * Build system: - Fix tests when building with libpaper 1.x. - Require gperf for bootstrapping, and use it correctly in build system. - Require a new-enough version of texinfo. * Noteworthy changes in release 4.15.3 (2023-03-26) [stable] * Bug fixes: - Fix fixps to use GhostScript’s ps2write device instead of defunct pswrite. * Build: - Fix a problem building PDF version of manual. * Noteworthy changes in release 4.15.2 (2023-03-19) [stable] * Bug fixes: - Fix old crash when using --stdin="". * Build - Make configure stop if libpaper is not found. - Enable building the manual for gnu.org. * Noteworthy changes in release 4.15.1 (2023-03-12) [stable] * Bug fixes: - Use “grep -F” rather than obsolete fgrep. - Fix broken a2ps-lpr-wrapper script, and translate to sh for portability. * Noteworthy changes in release 4.15 (2023-03-07) [stable] * New maintainer, Reuben Thomas. * Features: - Replace the 'psmandup' utility with simpler 'lp2' to directly print documents to a simplex printer. - Remove the outdated 'psset' and 'fixnt', and simplify 'fixps' to always process its input with Ghostscript. - Use libpaper's paper sizes. This includes user-defined paper sizes when using libpaper 2. It is still possible to define custom margins using "Medium:" specifications in the configuration file, and the one size defined by a2ps that libpaper does not know about, Quarto, is retained for backwards compatibility, and as an example. * Documentation - Remove some obsolete explanations. - Reformat --help output consistently to 80 columns. - Some English fixes. * Bug fixes: - Avoid a crash when a medium is not specified; instead, use the default libpaper size (configured by the user or sysadmin, or the locale default). - Fix some other potential crashes and compiler warnings. - Fixes for security bugs CVE-2001-1593, CVE-2015-8107 and CVE-2014-0466. - Minor bugs fixed. * Predefined delegations: - Remove support for defunct Netscape and proprietary Acrobat Reader. - Add lpr wrapper for automatic detection of different printing systems, including CUPS support. * Encodings: - Use libre fonts for KOI-8. - Composite fonts support. * Build - Update build system to more recent autotools and gettext versions. - Build man pages in a simpler and more robust way. - Document runtime dependencies. - Minor code quality improvements. - Minor tidy up and removal of obsolete code. - Require libpaper. - Remove OS/2 support. * Noteworthy changes in release 4.14.95 (2023-02-20) [alpha] * Build - Build man pages in a simpler and more robust way, using x-to-1 from gnulib. - Don't install useless liba2ps.h. - Other minor build system improvements, including updating to more recent autoconf and gettext. - Don't require help2man or gperf to build from source. - Document runtime dependencies. - Minor code quality improvements. * Build: - Re-add a2ps to the Translation Project, and remove po files from git. * Bug fixes: - Remove reference to @COM_distill@ variable in a2ps_cfg.in. * Documentation: - Format --help output consistently to 80 columns. - Fix a couple of message typos. * Noteworthy changes in release 4.14.94 (2023-01-31) [alpha] * Features: - Replace the 'psmandup' utility with simpler 'lp2' to directly print documents to a simplex printer. - Remove the outdated 'psset' and 'fixnt', and simplify 'fixps' to always process its input with Ghostscript. * Documentation - Remove some obsolete explanations. * Build - Minor tidy up and removal of obsolete code. * Noteworthy changes in release 4.14.93 (2023-01-26) [alpha] * Features: - Use libpaper's paper sizes. This includes user-defined paper sizes when using libpaper 2. It is still possible to define custom margins using "Medium:" specifications in the configuration file, and the one size defined by a2ps that libpaper does not know about, Quarto, is retained for backwards compatiblity, and as an example. * Bug fixes: - Avoid a crash when a medium is not specified; instead, use the default libpaper size (configured by the user or sysadmin, or the locale default). - Fix some other potential crashes and compiler warnings. * Documentation: - Reformat --help output consistently to 80 columns. * Build: - Require autoconf 2.71. - Require libpaper. * Noteworthy changes in release 4.14.92 (2022-08-11) [alpha] * Documentation: - Undo reformatting of --help output from 4.14.91, so as not to annoy translators (thanks, Benno Schulenberg!). - Use gnulib function to emit bug reporting information. This also fixes a problem with the translated strings introduced in 4.14.91 (thanks, Benno Schulenberg!). * Noteworthy changes in release 4.14.91 (2022-08-08) [alpha] * Build: - Re-add a2ps to the Translation Project, and remove po files from git. * Bug fixes: - Remove reference to @COM_distill@ variable in a2ps_cfg.in. * Documentation: - Format --help output consistently to 80 columns. - Fix a couple of message typos. * Noteworthy changes in release 4.14.90 (2022-07-17) [alpha] * This is an alpha release, owing to the considerable changes since the last version. * New maintainer, Reuben Thomas. * Build: - Updated and fixed the build system, using gnulib and modern Autotools. - Remove OS/2 support. - Require libpaper. * Predefined delegations: - Remove support for defunct Netscape and proprietary Acrobat Reader. - Add lpr wrapper for automatic detection of different printing systems, including CUPS support. * Encodings: - Use libre fonts for KOI-8. - Composite fonts support. * Documentation: - Some English fixes. - Man page for fixnt. * Bug fixes: - Fixes for security bugs CVE-2001-1593, CVE-2015-8107 and CVE-2014-0466. - Minor bugs fixed. Version 4.14 Dec 29, 2007 * New Maintainer. * No UTF-8 support yet ;-< Basically this is a maintenance release. * License: - Now GNU a2ps is licensed under GPLv3 or later. - Removed or replaced non-free/license-wise vague files (see ChangeLog for detail.) * Build: - Now can be built with the modern GNU Autotools. - Now can be built with gcc 3.4 or later. * Predefined delegations: - Add html2ps delegation if netscape don't run. - Now the configure script check if netscape support remote-command. - Now works with modern GV(PostScript and PDF viewer). Tested with 3.6.2. * Options: - Better description on the default output and the -d option. * Encodings: - CP1251. * Bug Fixes: - `input buffer overflow, can't enlarge buffer because scanner uses REJECT' This should no longer happen. - Now works on IA64, PowerPC and AMD64. - Fixed wrong default values for deskjet printers. - Quote arguments to file(1). - Fixed several security issues (CVE-2004-1377). - PS generated by a2ps is now compatible with Adobe Distiller for Mac OS X. * Style sheets: - specc.ssh, thanks to Hideaki Yokota - csharp.ssh, thanks to Karen Christenson - nasm.ssh & pic16f84.ssh, thanks to Aleksandar Veselinovic - small.ssh, thanks Christophe Continente - matlab4.ssh & matlab.ssh, thanks to Joakim Lubeck - stratego.ssh, thanks to Nicolas Tisserand - rd.ssh, s.ssh and st.ssh, thanks to Torsten Hothorn et.al. - ruby.ssh, thanks to Noritsugu Nakamura. - php.ssh, thanks to Hartmut Holzgraefe - udiff.ssh: Improved highlighting for diffs. - perl.ssh: Improved. - Some rules of sheets.map are improved * Contributions: - pdiff: Now pdiff can accept standard input. * Prologues: - Added diffcolor.pro for diffs * Documentation: - Revised. * Translation: - Japanese translation thanks to Yasuyuki Furukawa. - Revised Dutch translation, thanks to Benno Schlenberg. - Revised French translation. * Many other fixes, but the log is rather spotty ;-< * Part of works done at the Codefest Asia 2007 in ITB Bandung, Indonesia. Version 4.13: * Options: - It can no longer happen that --version and --help fail. - Fixed the reversed reading of the argument of --truncate. - --which, reports the full file name of library files. - --glob, globs in the library. * Predefined User Options - pdf `a2ps -=pdf foo' creates foo.pdf. Uses Adobe Distiller, or Ghostscript's ps2pdf. The fake printer `pdf' is also available. Contributed by Manfred Schwarb. - simplex and s1 Forces a2ps to issue a `Simplex' request. `a2ps -s1' (currently) only tells a2ps *not* to issue a Duplex request. - display Wrapper around the pseudo printer `display' requiring colored output, one up. * Encodings: - ISO 8859-13. * Contributions: - Ogonkify supports ISO-8859-13 (thanks to Dariusz Ramanauskas). - Ogonkify supports the Euro glyph. - pdiff and card a2ps options are now to be given after `--'. For instance pdiff old new -- -1 -P display - fixps stops smashing blank lines. * Style sheets: - asn1.ssh, thanks to Philippe Coucaud. - autoconf.ssh - awk.ssh, thanks to Edward Arthur. - b.ssh, thanks to Philippe Coucaud. - bc.ssh - cidl.ssh, CORBA IDL, thanks to Bob Phillips. - cxx.ssh is the new name for C++ (formerly cpp.ssh). - cpp.ssh, CPP. - haskell.ssh, thanks to Ilya Beylin. - js.ssh, JavaScript, thanks to Scott Pakin. - lout.ssh, thanks to Jean-Baptiste Nivoit. - maple.ssh, thanks to Richard J Mathar. - mly.ssh, CAML Yacc, thanks to Jean-Baptiste Nivoit. - ocaml.ssh, thanks to Markus Mottl. - pov.ssh, thanks to Jean-Baptiste Nivoit. - sed.ssh - sml.ssh, Standard ML, thanks to Franklin Chen. - shell.ssh, ancestors for *sh.ssh. - vba.ssh, Visual Basic for Applications, thanks to Dirk Eddelbuettel. - tiger.ssh, related to the toy language of the books "Modern Compiler Implementation", by Andrew W. Appel http://www.cs.princeton.edu/~appel/modern/ - xs.ssh, Perl XS, thanks to Kestutis Kupciunas. * The syntax of sheets.map is improved * Regexp are now `egrep' and `Perl' like, and no longer `Emacs' like. Before some characters had to be backslashed to denote the operators. Now, it is just the opposite. For instance before `\\(' and `\\)' used to be the grouping operator and `(' and `)' were standing for the characters parentheses; while now it is the converse. Affected characters are `(', `)', `|', `{', and `}'. Make sure to update your own style sheets. * Error Signaling - Failing compilations of regexp in style sheets now report the filename and line where the error occured. * Delegations File names with spaces are correctly processed. * Number of wrapped lines Is reported if the variable `cfg.wrapped' is set (which is the default). * Prologues - fixed.pro uses only fixed size fonts, in order to preserve the indentation. - ul.pro underlines where italics are expected. Meant to print formatted man pages. * Wrapped lines The number of lines which were wrapped is reported. Contributed by Scott Pakin. Version 4.12 Feb 16, 1999 * Configuration Files: - Quotation is fixed, and works as in a shell. It is no longer required to write: Options: '--stdin=A Title With Spaces' since one can write: Options: --stdin='A Title With Spaces' - `Options:' entries now report the file and line where the error occured. - Define a variable #{lp} in a2ps.cfg that is system dependent, but allows for system independent definition of printers in a2ps-site.cfg. - `Printer:' can specify a PPD only, in which case the `UnknownPrinter:' command is used. - configure allows --without-extensions Install a small a2ps (fewer library files). Discouraged for non ASCII or Latin 1 users. - `Include:' includes another configuration file. - a2ps.cfg now includes `a2ps-site.cfg' which allows easier upgrades of a2ps without loosing previous configurations. - Now parsed using gperf. No speed up really noticeable :(, but cleaner :). * PPD files: - supports `*Include:'. * Options: - --medium supports case insensitive matches. - -S formerly --statusdict is now --setpagedevice - -D formerly --setpagedevice is now --define. - --toc with no argument uses the default Table of Contents layout (#{toc}). - -s, --sides Now admits 1, 2, simplex, duplex, and tumble. - --file-align=MODE Replaces (generalizes) --compact. MODE can be: + `virtual', put as many files per sheet as possible + `rank', never allow two files on the same row (or column) + `page', never allow two files on the same page + `sheet', never allow two files on the same sheet + an integer NUM, specify that files must be aligned on NUM - -A is now exactly the short option for --file-align. - Output of --list=features is much more pleasant to read. * Contributions: - fixps If a file seems really very very bad, asks gs a full rewrite. Therefore there should no longer be *any* (valid) PostScript file refused by a2ps for delegations. - psset inserts PostScript requests for special features (ManualFeed, Duplex, DuplexTumble etc.). - psmandup + Now uses psset + New options --back and --front. --back gives another chance of printing the second half if the timeout expired. * Style Sheets: - Fortran Major clean up thanks to Alexander Mai. + fortran.ssh remains the generic style sheet for unqualified Fortran. + (for77|for90)-(fixed|free).ssh for more specific dialects. - REXX scripts, thanks to Alexander Mai. - dc_shell, thanks to Philippe Le Van. - Mixed Style Sheets. Mixed sheets are sheets defined by ancestors only. To build a mixed sheet, just specify a comma separated list of ancestors anywhere a style sheet key can be given (-E, sheets.map etc.). - Visual Tcl, thanks to Phil Hollenback. - Extended Tcl, thanks to Phil Hollenback. * Bug Fixes: - The long standing bug of user options (user options could not be used *after* an argument) is fixed. Now it is safe to run a2ps file1 -=lp file2 (before, only file2 was printed). Algorithm suggested by Tristan Gingold. - Version control works also for to-file printers (e.g., -P file). - Temporary files are correctly removed even under abnormal conditions (broken pipe, C-c etc.). * Delegations: - Now outputs the setpagedevice requests in delegated jobs. It is now OK to run a2ps foo.dvi -s2 -P duplex-printer - LaTeX. Needed calls to makeindex, bibtex and latex are run. * Predefined User Options: - `manual' for -SManualFeed:true - `book'. This is experimental. Allows for printing booklet on *printers* only (no way to save as a file). * Variables: - user.login, user.name, user.home, user.host, user.comments are now predefined and, of course, can be change as regular variables. Weird escapes such as `%a{USERNAME}' the localized equivalent for `Printed by USERNAME' `%A{USERNAME@HOSTNAME}' the localized equivalent for `Printed by USERNAME from HOSTNAME'. are no longer needed, and therefore removed. * Fonts: - .gsf fonts supported. - At configuration, a2ps looks for ghostscript fonts - PC Line Drawing fonts is fixed. - Russian fonts/afms are no longer distributed in the core of the package. Another package, i18n-fonts, contains them all. * Translations: - Norwegian, thanks to Jon Ross. - Slovenian, thanks to Igor. * Support of libpaper. the special medium `--medium=libpaper' let a2ps pick up the choice given to libpaper. Disabled if libpaper was not available at configuration. * Environment Variables: - A2PS_VERBOSITY is equivalent to --verbose, but is consulted since startup (long before command line is read). * Error Signaling Now a2ps makes visible the invisible characters when reporting an error (it helps a lot!). * By default liba2ps is built static only. Version 4.10.4 Sep 28, 1998 * a2ps is now GNU software * Updated Ogonkify (compose is now composeglyphs) * Bug fixes: - y2k problems with short dates - version control is enabled only in the pertinent cases * Encodings: - The graphic PC encoding is supported again ibm-cp437 (or pcg) - Renamed ibmpc.edf as ibm-cp850.edf and cp1250.edf as ms-cp1250.edf * Options: - --define is encouraged over --variable (like m4 etc.) - most options return a better diagnostic when the argument is invalid * Predefined Delegations - bzip and bzip2 compressed files * New directories: - `arch/' for support of non Unix OSes. - `arch/os2/' support for OS/2 by Alexander Mai. Version 4.10.3 Jun 25, 1998 * Translations: - Russian, thanks to Vladimir Vodolazkiy * A2PS_LIBRARY is abandoned in favor of A2PS_CONFIG * Style sheets: - mib.ssh, meant for ASN.1 "Management Information Base" files, thanks to Kelly Wiles. - html.ssh * Contributions: - fixnt, fixes common problems with PostScript files from Windows NT, thanks to Holger Bauer and Michael Rath - a2ps-print.el, to ease the use of a2ps from Emacs, thanks to Bruce Ingalls. - OS/2 files by Alexander Mai. * Predefined delegations: - GIF, JPG, XBM, XPM, PNG thanks to ImageMagick * Encodings: - Cleaned up the file names (latin1.edf -> iso1.edf etc.) - Added iso7.edf (Greek) - Added iso15.edf (West European, new version). Version 4.10.2 May 14, 1998 * Fixed installation of Ogonkify * Contributions: - pdiff (pretty diff) pretty prints diffs. Uses GNU diff, and GNU wdiff. Version 4.10.1 April 22, 1998 * Updated Ogonkify. * Translations: - Swedish, thanks to Peter Nilsson. - Portugese, thanks to Pedro Miguel Marques Morais. * Changed ``Macro Meta Sequence'' to ``Variable'', and ``Meta Sequence'' to ``Escape'' * Options: - --variable is encouraged instead of --macro-meta-sequence * Sheets: - wdiff.ssh meant to be used on wdiff output. - udiff.ssh for diff -u. * file(1) is always called, even for `stdin'. Now it is safe to run `cat file.ps | a2ps', or `cat file | a2ps --guess'. Version 4.10 March 10, 1998 * Updated libtool for Irix users. * Renamed psfix as fixps (to be like the psutils). Version 4.9.10 March 6, 1998 * PostScript Printer Description (PPD) files partially supported: - Configuration of printers takes an optional PPD key - Automatic down loading of unknown fonts - Since only the known fonts are used currently, two fake PPD files (level[12].ppd) are provided. - New configuration item: DefaultPPD: key * Predefined delegations: acroread for PDF. * Updated Ogonkify. * Czech translation, thanks to Jiri Pavlovsky * Contributions: - card prints reference cards of programs based on their --help outputs. - psfix tries its best to fix ps files. Uses heavily the psutils. - psmandup simulates Duplex printing on single sided printers. * Man pages (based on --help and --version outputs). * Meta Sequences: - New: #?d. - ${} and #{} are now preferred to $() and #(). - They admit the sh-like ${var:+word} and ${var:-word} * Sheets: - Enforced the rule "Last defined is winning". - Regex can be spread on several lines (a` la ANSI C strings). - card.ssh, symbols.ssh. - idl.ssh thanks to Robert S. Mallozzi. - pre.ssh is re-designed to be more canonic for a2ps. - pretex.ssh, like pre.ssh but with LaTeX like syntax - texscript.ssh, combination of pre.ssh and pretex.ssh (corresponds to the old version of PreScript). * Prologues: - They can use variables (through meta sequences). - matrix.pro (3 grey lines, 3 white etc.). - bold.pro (as bw.pro, but using bold fonts). * Options: --copyright. --list=TOPIC replaces all the --list-topic. (e.g., --list-options is --list=options etc.). --list=prologues, gives a short description of the prologues. --style-sheet=path.ssh, which help to debug a particular style sheet file. --verbose accepts token-based arguments. --font-size supports a unit (-f12cm, -f72points etc.). --macro-meta-sequence=key:value defines a macro MSeq. --ppd[=KEY] specifies the PPD to use. --list=ppd lists the known ppd files. --pages: its arg is optional, so that we can reset it. Version 4.9.9 Nov 10 1997 * Options: - --highlight-level=LEVEL replaces --graphic-symbols=BOOL * Various portability and bug fixes. * Sheets: - modula2.ssh thanks to Peter Bartke. - ppd.ssh * a2ps.cfg: - `FileCommand:', to specify the way to call file(1) - `TemporaryDirectory:', to specify where to put the tmp files Version 4.9.8 * Fonts support has completely changed. - Nothing of the fonts is hard coded any longer. - Now a2ps needs the AFM files. - `make_fonts_map.sh' generates the fonts.map file. - Updated Ogonkify * Options: - -3, -5, and -7 request 80 chars/line too. - -a, --pages: _input_ page range selection (does work with delegations!). - --end-of-line: specify how end of lines should be handled. In particular --end-of-line=auto supports the 4 classic eol. This is the end of trailing ^M for PC files. - --toc, generates a table of content from a meta sequence, formated according to the PreScript style. - --list-encodings, --list-user-options. * Delegations: - widely improved (error detection, DSC compliance, no useless PS prologue etc.) - must produce the file on stdout, not in a file. - should respect page range selection * a2ps-mode: - a2ps menu - M-x a2ps-compile-regexp, produces the optimized regexp corresponding to the region selected. Thanks to Didier Verna. * a2ps.cfg: - predefined delegations: dvips, texi2dvi and even gzip! (you may do ``a2ps -a1-4 a2ps.texi.gz'' for instance). - `LibraryPath:', `AppendLibraryPath:' and `PrependLibraryPath:' to specify the library path (no longer hard coded). * When a style sheet cannot be found, Plain style is used instead of aborting. * sheets: - texinfo.ssh, gnuc.ssh, elisp.ssh, make.ssh, eps.ssh - csh.ssh, tcsh.ssh thanks to Jim Diamond. * ssh: - enriched expansion of matches, and back reference to what has been matched. E.g. (/\\(a*\\)\\(b*\\)/ "As: ", \1, ", Bs: ", \2 Label_strong) - new face: Error. * Meta Sequences: - #! uses only two fields, not four! - Padding is supported (e.g., $-.10n gives `README....') - Removed: #f. - New: $p^, $p-., #f0 to #f9, #p, #?V, #?q, #?o, #?p, \f, $[], #!$. - Renamed: $l< -> $l^. * Encodings: - Encodings are stored in `files.edf' in which you may define substitute to regular fonts so that, for instance, the Russians don't have to rewrite the PS prologues: just substitute Courier etc. by the appropriate fonts. - The PS encoding vectors (*.enc) are no longer used. - New file: encoding.map, to define the encodings aliases. - Added KOI8-R (aka KOI8) and ISO-8859-5 support. Version 4.9.7 * config: - `MacroMetaSequence:' to define macros - `Delegation:' replaces brain dead "PassThrough:" * a2ps.cfg: - predefined delegations: Netscape, groff, psnup. - predefined macro meta sequences: psnup. * configure: --with-medium, --with-encoding * liba2ps: The interface to the PostScript generating routines of a2ps is now opened. Still a beta feature. * Meta-sequences: - New scheme: #! for enumerations. - Renamed: $v -> $#, $V -> %#, %o->#o, %O->#O, $?->#?, %.->#, %l -> $l<, $l -> $l., $L -> $l#, %p -> %p., $p -> $p., %P -> %p#, $P -> $p#, %s -> %s., $s -> $s., %S -> %s#, $S -> $s#. - New: $p<, $p>, $s<, $s>, #!f, !#F, #!s, #?j, #?r, #f, #h, #v, #w, \\, \n. * Output destination is reported at the end of the job. * If no output is to be produced, no output is produced... * Options: - --list-delegations, - --pass-through is renamed --delegate. - --non-printable-format, now supports: emacs, octal, hexa, question-mark, - -t, --title sets the documents title, - old behavior of -t is now --stdin. - --list-macro-meta-sequences * ssh: - "ancestors are" to extend existing style sheets. - "comment is" replaced by "documentation is". - "closers are": closing alternatives of the sequences is now handled by the grammar. Some files needed changes. - Regexp can be used. * doc: - regex.texi: documentation on the regex a2ps uses. - a2ps.texi: new chapter on liba2ps. - a2ps.1: a short help on most useful features is added. * emacs/ssh.el: renamed a2ps.el because ssh.el yet exists. * sheets: a2psrc.ssh, lex.ssh, yacc.ssh Version 4.9.6 * --list-media, --list-style-sheets, --list-printers. * ssh: "requires a2ps *" * ssh.ssh, vrml.ssh * Better handling of bad arguments to options. Version 4.9.5 * Removed dead code from old handling of style sheets. Version 4.9.4 * ssh: "written by", "version is". * config: `PassThrough:', `Media:'. * Option -Z, --pass-through. * `ssh.el' implements a style sheet mode for emacs. Version 4.9.3 * Substitution of meta sequences (no longer on %s) is performed on commands associated to symbolic printers. E.g. Printer: file > $n.%. will save `foo.c' into `foo.c.ps' * Meta sequences: $N changed; %., $f, $d, %o, %O new. * --version-control and --suffix for backups * ChangeLog.ssh * Uses libtool. * Includes regex and rx. Version 4.9.2 * tex.ssh thanks to Denis Girou. * Handling of keywords and symbols unified. * Semantics of -g has changed, relaying on the "optional" marked definitions in *.ssh files. Version 4.9.1 * Bugs fixes. * Speed up plain style printing. Version 4.9.0 * Style sheets are independent files (*.ssh) * Pattern rules are in another file (sheets.map) * The style handling is quite different from the previous approach. Version 4.8.4 * Portability fixes (for Pyramid and MkLinux). * Updated Ogonkify * Turkish translation thanks to Turgut Uyar. Version 4.8.3 * Many files changed names to get closer of 8+3 file names, case insensitive. * Korean translation thanks to Choi Jun Ho. Version 4.8.2 * Objective C, thanks to Paul Shum. * Italian translation thanks to Lorenzo M. Catucci. * Boxes and underlines can be used in prologues. * Small fixes in the documentation. * --debug down loads a PS error handler. * Renamed --columns-per-line to --chars-per-line which is less confusing. Version 4.8.1 * Dutch translation thanks to Marcel van der Laan * Updated Ogonkify dir * Polish translation thanks to Juliusz Chroboczek * Optimized printer memory usage Version 4.8 * German translation, thanks to Michael Wiedmann, Christian Kirsch and Erwin Dieterich * Bug fixes * Easier to compile on 95's and NT's MS-DOS * Support for Helvetica variants * --major Version 4.7.21 * Renamed --font as --font-size, because base font changes are to be done in the prologues. * Faces can change base fonts in *.pro * --line-numbers support an integer argument, to print line number say each 5 lines. * The SQL family of language is now fully supported (thanks to Pierre Mareschal) * Lines in config files can be continued by a '\' before eol. * `UserOption: shortcut options' in config files. * Options -=/--user-option=shortcut to execute the above options. * Spanish and Catalan, thanks to Miguel A. Varo * --title is renamed --center-title * -t/--title sets the title of a job given through stdin (as in enscript) * `Printer', `DefaultPrinter' and `UnknownPrinter' entries in the configuration files, which allow to pipe or save the PostScript in any command/file. This should help non-PostScript printers owners, and MS-DOS people. * Octave/MATLAB support (thanks to Craig P. Earls) * Integration of Ogonkify (by Juliusz Chroboczek) * Strong support of ISO Latin 2, 3, 4, 5 and 6, and CP-1250. * Mixing of encodings within a document. Version 4.7.20 * Small speed improvements. * Small bug fixes (and back to PS level 1 compatibility :-|, and non ANSI compilers (#$%% AIX!)). * `Pattern: patt lang' entries in the configuration files (to let the user define his/her own suffix rules). * ISO Latin 2 and IBM PC code sets weakly supported. * SQL, SQL92, Ora and PL-SQL styles (thanks to Pierre Mareschal) * New option: --columns-per-page. Version 4.7.19 * With alternatives closing sequences, the closing string has its own font. * Unity style thanks to J-Ph Cottin * --list-features lists the prologues. * --margin (for binding). Version 4.7.18 * Verilog style, thanks to Edward Arthur. * PS is smaller and "smarter" (exchanged the order between font and string to print). * Options -k/--page-prefeed and -K/--no-page-prefeed. * Options -D/--setpagedevice and -S/--statusdict. * diverted the output (hence two passes, as fast as I could :). * New meta sequences: total number of pages, sheets, for files or for print job. * Tags are caught by meta sequences $t1, $t2 etc. * Changed --language-style/-k to --language/-E, as GNU enscript. * Added --strip-comments that does not print the strong comments. * Separated --list-features from --list-options. Version 4.7.17 * More styles available for style-sheets. (No differences with the prolog a2ps.pro). * Changed --include to --prolog. * Added misc/gray.pro, misc/color.pro to use with --prolog. Version 4.7.16 * More predefined layouts. * More predefined medias (thanks to GNU enscript and Ghostview). * Better handling of medias sizes. * %%BoundingBox given. * Several rows/columns to describe the virtual pages layout. Version 4.7.15 * More than two virtual pages may be given. * Small bug fixes. Version 4.7.14 * Improved DSC compliance. Version 4.7.13 * Handling of `^' signifying beginning-of-the-line, in sequences specification. * Handling of alternative in the closing of sequences. * Fortran and mail/news style sheets enhanced. * Escapes for headers are enriched with %? construct. Version 4.7.11 * Bug fixes * Better management of too big titles Version 4.7.10 * The writing of the Texinfo file has started * orientation is guessed from number of pages/sheet, unless specified Version 4.7.9 * long options. Most short options have changed name to get closer to the interface of enscript. * Library files are used ({prefix}/share/a2ps/...). * .a2psrc can be used for default settings. * added water marks (from Mark Daku ) * many more options to specify the content of the various "headers", through the use of meta-sequences. * following GNU, the order of the options _does_not_ matter. Actually it does between options, but, eg, the font size cannot be changed between two files in the same command line. Version 4.7.8 * Dates are NLSed. * Checking improved. * The mail folders support is much better. Header is the Subject, and footer the sender. With elm, use a2ps -kmail -t %s. * Added \footer and \header to prescript. Version 4.7.7 * User and host names can be given with -L * Native Language Support. Currently French, Italian. Version 4.7.2 * Use of automake 1.0 * New scheme for various char encodings (currently ascii, hp, and latin1). Version 4.6.1 * Bugs fixes. Version 4.6 * Fixed line numbering, folding, managing of strings and escapes * New options: -L, -nk, -u * Options now positional -k, -nH, -i, -ni positional * Sequences now have three fonts (open, in, close) * Changed handling of exceptions (e.g. \", \\, etc.) * Small fix to allow print without LPR_OPT and with LPR_DEST_OPT * New options -V, -a, -o, -W, -G and -k(none) * Manage the real length (WX field in afms) of chars * Handle every chars (even \0) * tabs in ps are "absolute": they always correspond to Courier * text footer now is `relative' (i.e. it is affected by MARGIN) Previous versions 1. Derived of shell program written by evan@csli (Evan Kirshenbaum). Written in C for improve speed execution and portability. Many improvements have been added. Fixes by Oscar Nierstrasz @ cui.uucp: 2. Fixed incorrect handling of stdin (removed error if no file names) 3. Added start_page variable to eliminate blank pages printed for files that are exactly multiples of 132 lines (e.g., man pages) Modified by santana@imag.fr: 4. Added new options at installation : sheet format (height/width in inches), page format (number of columns per line and of lines per page). Modified by santana@imag.fr: 5. Added new option to print n copies of a same document. 6. Cut long filenames if don't fit in the page header. Modified by Tim Clark (T.Clark@warwick.ac.uk): 7. Two additional modes of printing (portrait and wide format modes) 8. Fixed to cope with filenames which contain a character which must be escaped in a PostScript string. Modified by santana@imag.fr to 9. Added new option to suppress heading printing. 10. Added new option to suppress page surrounding border printing. 11. Added new option to change font size. Lines and columns are automatically adjusted, depending on font size and printing mode 12. Minor changes (best layout, usage message, etc). Modified by tullemans@apolloway.prl.philips.nl 13. Backspaces (^H) are now handled correctly. Modified by Johan Vromans (jv@mh.nl) to 14. Added new option to give a header title that replaces use of filename. Modified by craig.r.stevenson@att.com to 15. Print last modification date/time in header 16. Printing current date/time on left side of footer (optional) Modified by erikt@cs.umu.se: 17. Added lpr support for the BSD version 18. Added som output of pages printed. Modified by wstahw@lso.win.tue.nl: 19. Added option to allowing the printing of 2 files in one sheet Modified by mai@wolfen.cc.uow.oz 20. Added an option to set the lines per page to a specified value. 21. Added support for printing nroff manuals Modified by santana@imag.fr 22. Integration of changes. 23. No more standard header file (printed directly by a2ps). 24. New format for command options. 25. Other minor changes. Modified by Johan Garpendahl (garp@isy.liu.se) and santana@imag.fr: 26. Added 8-bit characters printing as ISO-latin 1 chars Modified by John Interrante (interran@uluru.stanford.edu) and santana@imag.fr: 27. Two pages per physical page in portrait mode Modified by santana@imag.fr: 28. New option for two-sided printing 29. Several fixes Modified by Chris Adamo (adamo@ll.mit.edu) and Larry Barbieri (lbarbieri@ll.mit.edu) 3/12/93 30. Output format enhancements. 31. Added login_id flag (for SYSV and BSD only) for printing user's login ID at top of page. Added command line parameter (-nL) to suppress this feature. 33. Added filename_footer flag for printing file name at bottom of page. Added command line parameter (-nu) to suppress this feature. 34. Added -B (-nB) options to enable (disable) bold font Modified by santana@imag.fr: 35. Adapted to respect Adobe conventions for page independence. A2ps output can be now used by other Postscript processors. 36. Names of most postscript variables have been coded in order to reduce the size of the output. 37. ANSI C compilers are now automatically taken into account. 38. Enhanced routine for cutting long filenames 39. Added -q option to print files in quiet mode (no summary) 40. Fixed some little bugs (counters, modification time for stdin, character separator when printing line numbers and cutting a line). 41. Some minor changes (new preprocessing variables, formatting) Modified by Emmanuel Briot (Emmanuel.Briot@enst-bretagne.fr) 42. Made keyword Highlighting mode Local Variables: mode: indented-text End: a2ps-4.15.5/README0000644000000000000000000000654514410127564010240 00000000000000 a2ps README (or PRINTME if a2ps runs fine :) Please send problem reports to bug-a2ps@gnu.org. Ask questions on a2ps@gnu.org. Submit changes on a2ps-patches@gnu.org. See the file ANNOUNCE for a presentation of a2ps, if you're still unsure it is indeed a filter from Anything To Probably Something. Contents: ========= 1. Installation 2. Distribution content 3. More? 1. Installation =============== *NOTE* If you are installing from a git clone, see README-git. The following dependencies are required to build a2ps: - BDW GC (libgc): https://www.hboehm.info/gc - libpaper: https://github.com/rrthomas/libpaper - help2man: https://www.gnu.org/software/help2man The following dependencies are highly recommended: - psutils: https://github.com/rrthomas/psutils - GNU roff: https://www.gnu.org/software/groff Most of the work for the installation is done by ./configure. If you never ever read the file `INSTALL', then you really should do it *now*. Some key options for ./configure are: --disable-nls if you do not want to use Native Language Support (i.e. the ability to speak another tongue than English) --with-gnu-gettext if you want to use the GNU gettext library for NLS, instead of available NLS services. I recommend it. --without-extensions Fewer files will get installed. a2ps is still usable for Western Europe and American. You should avoid unless you are really short on disk. This does not imply --disable-nls, you have to add it yourself. The following choices *are not irreversible*. They just correspond to settings in the file etc/a2ps-site.cfg: --with-encoding=ENCODING define the default encoding (ascii, latin1..., latin6, hp, mac, ibmpc, pcg, cp1250). Note (for novices). If you are not root, you should give ./configure the option --prefix=$HOME to be able to install. Remember that `make install' is mandatory for a2ps to work correctly. Once the `make install' is done, you may remove the build directory (the one which has been extracted from the .gz, which you can also remove, BTW). 2. Distribution content ======================= Some interesting files/directories you might want to look at are: README This file README-git Instructions for installing directly from git INSTALL Information on the installation process ABOUT_NLS A presentation of GNU's Native Language Support project TODO Some things to be done afm/ Files that describe the width of the chars of a font doc/ The whole documentation encoding/ Description of the encodings. etc/a2ps_cfg The default configuration (after configure/make) po/ Files for the translation sheets/ Style sheets for pretty printing support tests/ Sanity checks of a2ps contrib/emacs/ Useful emacs files for a2ps ogonkify/ The full distribution of the fantastic ogonkify package, that fixes a font designed for Latin1 so that other Latin encodings are supported. 3. More? ======== a2ps has a home page where the latest version may be found. https://www.gnu.org/software/a2ps/ There, you will also find the documentation in various formats. Bug reports should be sent to bug-a2ps@gnu.org There is also a mailing list, to subscribe please see https://lists.gnu.org/mailman/listinfo/a2ps *NOTE* The mailing list is for discussion about a2ps, and for announcements. Local Variables: mode: indented-text End: a2ps-4.15.5/THANKS0000644000000000000000000000604414233473143010265 00000000000000Many people contributed to a2ps by reporting problems, suggesting various improvements or submitting actual code. Please, help us keeping this list complete and exempt of errors. A Costa agcosta@gis.net Aaron S. Hawley ashawley@gnu.uvm.edu Alexander Mai st002279@hrzpub.tu-darmstadt.de Alix Lourme lourme_a@epita.fr Ben Pavon ben.pavon@hsc.hac.com Bertrand Orvoine orvoine@univ-ubs.fr Chris Adamo adamo@ll.mit.edu Christian Mondrup scancm@biobase.dk Christophe Continente contin_c@epita.fr Christopher K. Davis ckd@genome.wi.mit.edu Craig Stevenson craig.r.stevenson@att.com Denis Girou girou@idris.fr Didier Verna didier@xemacs.org Dirk Reiners reiners@ecrc.de Dylan Thurston Dylan.Thurston@math.unige.ch Emmanuel Briot Emmanuel.Briot@enst-bretagne.fr Erik erikt@cs.umu.se Erik Terpstra erik@terpnet.nl Evan Kirshenbaum evan@csli Flavien Astraud flav@epita.fr Franck Lombardi lombar_f@epita.fr Graham Jenkins c714553@vus415.telstra.com.au Halvard Moe halvardm@math.uio.no Hao Li hli@wag.caltech.edu Harry Katz harry.katz@wcom.com Jens Henrik Leonhard Jensen recjhl@mediator.uni-c.dk Jim Diamond zsd@axe.nstn.ca Jim Meyering meyering@ascend.com Joachim Backes backes@rhrk.uni-kl.de Johan Garpendahl garp@isy.liu.se Johan Vromans jv@mh.nl John Interrante interran@uluru.stanford.edu Jonathan Flynn j.flynn@hep.phys.soton.ac.uk Juliusz Chroboczek jec@dcs.ed.ac.uk Karl Berry karl@gnu.org Lance W. Patterson lancep@bcm.tmc.edu Larry Barbieri lbarbieri@ll.mit.edu Larry Jones larry.jones@sdrc.com Larry W. Virden lvirden@cas.org Lorenzo M. Catucci lorenzo@argon.roma2.infn.it Mai mai@wolfen.cc.uow.oz Markku Rossi mtr@iki.fi Masayuki Hatta mhatta@grad.e.u-tokyo.ac.jp Max Waterman maxw@relay.csd.SGI.COM Michael Taeschner Michael.Taeschner@dlr.de Mike Keenan keenan@segsrv.hlo.dec.com Nelson H. F. Beebe beebe@math.utah.edu Nix nix@esperi.org.uk Oscar Nierstrasz oscar@iam.unibe.ch Paul Shum pshum@ali.bc.ca Pavel Roskin pavel_roskin@geocities.com Peter Bartke bartke@inf.fu-berlin.de Peter Leven p-leven@bird.ai.uiuc.edu Philip J Hollenback philiph@sco.com Roderich Schupp rsch@ExperTeam.de Rudolf Cejka cejkar@dcse.fee.vutbr.cz Samuel Tardieu sam@inf.enst.fr Scott Henry scotth@sgi.com Scott Lurndal slurn@griffin.engr.sgi.com Scott Pakin pakin@uiuc.edu Sebastien Vandenbergh vanden_s@epita.fr Shem Ogadhoh ogadhoh@cae.wisc.edu Stefan Weber Stefan.Weber@cs.tcd.ie Stephen Coffin scoffin@netcom.com Stephen Dowdy dowdy@cs.colorado.edu Steven Michael Robbins stever@jeff.CS.McGill.CA Thomas Parmelan Thomas.Parmelan@efrei.fr Thomas Quinot quinot@email.enst.fr Tim Clark T.Clark@warwick.ac.uk Timo Karjalainen timok@iki.fi Tristan Gingold gingold@email.enst.fr Tullemans tullemans@apolloway.prl.philips.nl Wstahw wstahw@lso.win.tue.nl Zdenek Sekera zs@strad.gland.sgi.com Rudolf Polzer freebsd-dr@durchnull.de a2ps-4.15.5/TODO0000644000000000000000000001103114233473143010032 00000000000000Here is a list of things we would like to do, but that we don't have time to. This means that the contributions are really hoped! We already have some ideas on many nice new features, please get into contact with us to participate! 17 - Generate LaTeX. This is mostly useful when someone has to include pieces of code inside his/her text. 21 - Word wrap option. 42 - Too large water marks, title fonts etc. 119 - Finish other non printables (extract escaping from ps?) 137 - Undefined meta sequences in toc (total num of pages). 138 - Make the encodings hash their fonts too. This will avoid unnecessary re-reencoding. 149 - Metrics of encoding support by a font. 154 - Split the distrib in two parts. 158 - Complete the delegation to a2ps. 162 - makefont for Graham. 163 - --error=abort, best, fail. 177 - Improve match_sequence? (Too slow) 182 - The handling of mail should not be done through .ssh, but by a real bison/yacc parser. MIME support should of course be a major issue. Delegation should work on included documents. 190 - Document ppd 195 - Document Expand:, %dnl, %DefaultVariable: 201 - In addition to delegations, introduce filters? They'd pipe into a2ps instead of calling another time (e.g. .gz). 206 - Make the report ("sent to default printer" etc.) be an escaped string. 210 - Complete the doc on the new variables. 211 - Caution with alloca in routines.h in a bison stuff. 212 - Doc: Add "stats" to -v 213 - Doc: describe the new rules for -E and sheets.map 216 - Doc: new escapes. 217 - Finish FILE_LAST_SHEET_DUPLEX etc. 218 - Doc: FAQ the disparition of `Medium:' 221 - included debugging messages (in the PS) should be in English. 223 - Document better Tag1... (in writing a ssh) 225 - Document scripting with a2ps. 227 - Document and --help `--language'. 231 - Rewrite pathwalk with more glibc routines. Or even better: kpathsea. 233 - repair --margin 234 - Use AVL instead of adhoc treatment for P-rules. See libavl. 235 - split the library sources using libtool's convenience libs 236 - split a libppd? 237 - Write a test for quoting. 242 - Finish importing libpaper from 4.10 243 - Try to remove useless lines from the output. 244 - Find a scheme to enable setpagedevice on psnup-delegated jobs. 245 - More fine grained sheets.map. e.g. dvi:delegate, junk:binary 246 - Keep room for comments? 247 - a2ps the prog should have its own file table. 248 - Make the report (sent to default printer etc.) be an escaped string. 257 - fortran fixed style line end 258 - Extend ssh to handle line continuation. 262 - fixps: There should be a way to check the pairs Begin/End 265 - Specify the default of -C by var? 269 - Extend fixps so that it can also check the ps with GS. 270 - Running gs to check encoding.ps is really needed. 271 - Introduce more means to insert PS code at various points. 272 - Document Mixed style sheets. 273 - When a delegation fails, and is ignored, a2ps should report that nothing is printed, instead `Printed 0 sheets'. 274 - file(1) should be called only once with all the files, to avoid the overhead of launching it for *each* file. Yeah, I know it's a stupid thing to have done it this way :(. 277 - Try to avoid useless work (be as lazy as you can, don't pre-read encodings, prologues etc.). 280 - Modernize the ioctl handling. 282 - Use Jim Meyering's hash.[ch] instead of hashtab.[ch] when possible. 287 - -s1 should emit -SDuplex:false. Introduce also -s0 for nothing? 289 - There is a problem with --strip: it should kill comment lines when they're *empty*, but leave the newline if there were yet things printed on that line. 290 - Provide more formats for the docs. 291 - lex++.ssh 292 - Allow `+' in sheets' key? 294 - Give a means to compute the ssh-index of an installed a2ps. 297 - MAKEINSTALLDIRS is wrong in libintl/. 298 - Make -s1 really issue -SDuplex:false. 299 - bison: there is a problem with const. 300 - More user friendly get_integer, get_floats etc. Write tests. 305 - Document Euro 306 - --list=var and others should be able to report the origin of the definitions. 307 - There is a conflict between underlays and matrix. Matrix should be honored first. 311 - Extend argmatch to also handle numeric arguments. Once done, give a better error message for -Atoto. 312 - It is abnormal than one has to give \2 when she means \1 in the case of `keywords are...'. 314 - List the features in the man pages. 315 - And a lot of cleanups :( a2ps-4.15.5/aclocal.m40000644000000000000000000017225014445132046011214 00000000000000# generated automatically by aclocal 1.16.5 -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, [m4_warning([this file was generated for autoconf 2.71. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 12 (pkg-config-0.29.2) dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA dnl 02111-1307, USA. dnl dnl As a special exception to the GNU General Public License, if you dnl distribute this file as part of a program that contains a dnl configuration script generated by Autoconf, you may include it under dnl the same distribution terms that you use for the rest of that dnl program. dnl PKG_PREREQ(MIN-VERSION) dnl ----------------------- dnl Since: 0.29 dnl dnl Verify that the version of the pkg-config macros are at least dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's dnl installed version of pkg-config, this checks the developer's version dnl of pkg.m4 when generating configure. dnl dnl To ensure that this macro is defined, also add: dnl m4_ifndef([PKG_PREREQ], dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], [m4_define([PKG_MACROS_VERSION], [0.29.2]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) dnl ---------------------------------- dnl Since: 0.16 dnl dnl Search for the pkg-config tool and set the PKG_CONFIG variable to dnl first found in the path. Checks that the version of pkg-config found dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is dnl used since that's the first version where most current features of dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])dnl PKG_PROG_PKG_CONFIG dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------------------------------- dnl Since: 0.18 dnl dnl Check to see whether a particular set of modules exists. Similar to dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl only at the first occurence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) dnl --------------------------------------------- dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])dnl _PKG_CONFIG dnl _PKG_SHORT_ERRORS_SUPPORTED dnl --------------------------- dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])dnl _PKG_SHORT_ERRORS_SUPPORTED dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl -------------------------------------------------------------- dnl Since: 0.4.0 dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES might not happen, you should be sure to include an dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])dnl PKG_CHECK_MODULES dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl --------------------------------------------------------------------- dnl Since: 0.29 dnl dnl Checks for existence of MODULES and gathers its build flags with dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags dnl and VARIABLE-PREFIX_LIBS from --libs. dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to dnl include an explicit call to PKG_PROG_PKG_CONFIG in your dnl configure.ac. AC_DEFUN([PKG_CHECK_MODULES_STATIC], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl _save_PKG_CONFIG=$PKG_CONFIG PKG_CONFIG="$PKG_CONFIG --static" PKG_CHECK_MODULES($@) PKG_CONFIG=$_save_PKG_CONFIG[]dnl ])dnl PKG_CHECK_MODULES_STATIC dnl PKG_INSTALLDIR([DIRECTORY]) dnl ------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable pkgconfigdir as the location where a module dnl should install pkg-config .pc files. By default the directory is dnl $libdir/pkgconfig, but the default can be changed by passing dnl DIRECTORY. The user can override through the --with-pkgconfigdir dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_INSTALLDIR dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) dnl -------------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable noarch_pkgconfigdir as the location where a dnl module should install arch-independent pkg-config .pc files. By dnl default the directory is $datadir/pkgconfig, but the default can be dnl changed by passing DIRECTORY. The user can override through the dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_NOARCH_INSTALLDIR dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------- dnl Since: 0.28 dnl dnl Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.16.5], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.16.5])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Copyright (C) 2011-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_AR([ACT-IF-FAIL]) # ------------------------- # Try to determine the archiver interface, and trigger the ar-lib wrapper # if it is needed. If the detection of archiver interface fails, run # ACT-IF-FAIL (default is to abort configure with a proper error message). AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) AC_LANG_POP([C])]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_COND_IF -*- Autoconf -*- # Copyright (C) 2008-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_COND_IF # _AM_COND_ELSE # _AM_COND_ENDIF # -------------- # These macros are only used for tracing. m4_define([_AM_COND_IF]) m4_define([_AM_COND_ELSE]) m4_define([_AM_COND_ENDIF]) # AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) # --------------------------------------- # If the shell condition COND is true, execute IF-TRUE, otherwise execute # IF-FALSE. Allow automake to learn about conditional instantiating macros # (the AC_CONFIG_FOOS). AC_DEFUN([AM_COND_IF], [m4_ifndef([_AM_COND_VALUE_$1], [m4_fatal([$0: no such condition "$1"])])dnl _AM_COND_IF([$1])dnl if test -z "$$1_TRUE"; then : m4_n([$2])[]dnl m4_ifval([$3], [_AM_COND_ELSE([$1])dnl else $3 ])dnl _AM_COND_ENDIF([$1])dnl fi[]dnl ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. AS_CASE([$CONFIG_FILES], [*\'*], [eval set x "$CONFIG_FILES"], [*], [set x $CONFIG_FILES]) shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`AS_DIRNAME(["$am_mf"])` am_filepart=`AS_BASENAME(["$am_mf"])` AM_RUN_LOG([cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles]) || am_rc=$? done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE="gmake" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi AS_UNSET([am_dirpart]) AS_UNSET([am_filepart]) AS_UNSET([am_mf]) AS_UNSET([am_rc]) rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking is enabled. # This creates each '.Po' and '.Plo' makefile fragment that we'll need in # order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # AM_EXTRA_RECURSIVE_TARGETS -*- Autoconf -*- # Copyright (C) 2012-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_EXTRA_RECURSIVE_TARGETS # -------------------------- # Define the list of user recursive targets. This macro exists only to # be traced by Automake, which will ensure that a proper definition of # user-defined recursive targets (and associated rules) is propagated # into all the generated Makefiles. # TODO: We should really reject non-literal arguments here... AC_DEFUN([AM_EXTRA_RECURSIVE_TARGETS], []) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl m4_ifdef([_$0_ALREADY_INIT], [m4_fatal([$0 expanded multiple times ]m4_defn([_$0_ALREADY_INIT]))], [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) # Variables for tags utilities; see am/tags.am if test -z "$CTAGS"; then CTAGS=ctags fi AC_SUBST([CTAGS]) if test -z "$ETAGS"; then ETAGS=etags fi AC_SUBST([ETAGS]) if test -z "$CSCOPE"; then CSCOPE=cscope fi AC_SUBST([CSCOPE]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PATH_LISPDIR # --------------- AC_DEFUN([AM_PATH_LISPDIR], [AC_PREREQ([2.60])dnl # If set to t, that means we are running in a shell under Emacs. # If you have an Emacs named "t", then use the full path. test x"$EMACS" = xt && EMACS= AC_CHECK_PROGS([EMACS], [emacs xemacs], [no]) AC_ARG_VAR([EMACS], [the Emacs editor command]) AC_ARG_VAR([EMACSLOADPATH], [the Emacs library search path]) AC_ARG_WITH([lispdir], [AS_HELP_STRING([--with-lispdir], [override the default lisp directory])], [ lispdir="$withval" AC_MSG_CHECKING([where .elc files should go]) AC_MSG_RESULT([$lispdir])], [ AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [ if test $EMACS != "no"; then if test x${lispdir+set} != xset; then # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly # Some emacsen will start up in interactive mode, requiring C-x C-c to exit, # which is non-obvious for non-emacs users. # Redirecting /dev/null should help a bit; pity we can't detect "broken" # emacsen earlier and avoid running this altogether. AC_RUN_LOG([$EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' conftest.out]) am_cv_lispdir=`sed -n \ -e 's,/$,,' \ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \ -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \ conftest.out` rm conftest.out fi fi test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp' ]) lispdir="$am_cv_lispdir" ]) AC_SUBST([lispdir]) ])# AM_PATH_LISPDIR # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check whether make has an 'include' directive that can support all # the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) AS_CASE([$?:`cat confinc.out 2>/dev/null`], ['0:this is the am__doit target'], [AS_CASE([$s], [BSD], [am__include='.include' am__quote='"'], [am__include='include' am__quote=''])]) if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* AC_MSG_RESULT([${_am_result}]) AC_SUBST([am__include])]) AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/00gnulib.m4]) m4_include([m4/__inline.m4]) m4_include([m4/a2_psutils.m4]) m4_include([m4/absolute-header.m4]) m4_include([m4/alloca.m4]) m4_include([m4/assert_h.m4]) m4_include([m4/backupfile.m4]) m4_include([m4/builtin-expect.m4]) m4_include([m4/c-bool.m4]) m4_include([m4/calloc.m4]) m4_include([m4/canonicalize.m4]) m4_include([m4/chdir-long.m4]) m4_include([m4/close.m4]) m4_include([m4/closedir.m4]) m4_include([m4/codeset.m4]) m4_include([m4/d-ino.m4]) m4_include([m4/dirent_h.m4]) m4_include([m4/dirfd.m4]) m4_include([m4/double-slash-root.m4]) m4_include([m4/dup.m4]) m4_include([m4/dup2.m4]) m4_include([m4/eealloc.m4]) m4_include([m4/errno_h.m4]) m4_include([m4/error.m4]) m4_include([m4/error_h.m4]) m4_include([m4/extensions.m4]) m4_include([m4/extern-inline.m4]) m4_include([m4/fchdir.m4]) m4_include([m4/fcntl-o.m4]) m4_include([m4/fcntl-safer.m4]) m4_include([m4/fcntl.m4]) m4_include([m4/fcntl_h.m4]) m4_include([m4/fdopendir.m4]) m4_include([m4/file.m4]) m4_include([m4/filenamecat.m4]) m4_include([m4/free.m4]) m4_include([m4/fstat.m4]) m4_include([m4/fstatat.m4]) m4_include([m4/fullpath.m4]) m4_include([m4/getcwd.m4]) m4_include([m4/getdtablesize.m4]) m4_include([m4/gethostname.m4]) m4_include([m4/getprogname.m4]) m4_include([m4/gettext.m4]) m4_include([m4/gnulib-common.m4]) m4_include([m4/gnulib-comp.m4]) m4_include([m4/host-cpu-c-abi.m4]) m4_include([m4/iconv.m4]) m4_include([m4/include_next.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/inttypes.m4]) m4_include([m4/largefile.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/libpaper.m4]) m4_include([m4/libtool.m4]) m4_include([m4/limits-h.m4]) m4_include([m4/localcharset.m4]) m4_include([m4/locale-fr.m4]) m4_include([m4/locale-ja.m4]) m4_include([m4/locale-zh.m4]) m4_include([m4/locale_h.m4]) m4_include([m4/lstat.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/malloc.m4]) m4_include([m4/malloca.m4]) m4_include([m4/manywarnings.m4]) m4_include([m4/mbrtowc.m4]) m4_include([m4/mbsinit.m4]) m4_include([m4/mbstate_t.m4]) m4_include([m4/memchr.m4]) m4_include([m4/mempcpy.m4]) m4_include([m4/memrchr.m4]) m4_include([m4/minmax.m4]) m4_include([m4/mmap-anon.m4]) m4_include([m4/mode_t.m4]) m4_include([m4/msvc-inval.m4]) m4_include([m4/msvc-nothrow.m4]) m4_include([m4/multiarch.m4]) m4_include([m4/nls.m4]) m4_include([m4/nocrash.m4]) m4_include([m4/obstack.m4]) m4_include([m4/off_t.m4]) m4_include([m4/open-cloexec.m4]) m4_include([m4/open-slash.m4]) m4_include([m4/open.m4]) m4_include([m4/openat.m4]) m4_include([m4/opendir.m4]) m4_include([m4/pathmax.m4]) m4_include([m4/pipe.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) m4_include([m4/quote.m4]) m4_include([m4/quotearg.m4]) m4_include([m4/rawmemchr.m4]) m4_include([m4/readdir.m4]) m4_include([m4/readlink.m4]) m4_include([m4/readlinkat.m4]) m4_include([m4/realloc.m4]) m4_include([m4/reallocarray.m4]) m4_include([m4/rename.m4]) m4_include([m4/renameat.m4]) m4_include([m4/rmdir.m4]) m4_include([m4/save-cwd.m4]) m4_include([m4/setlocale_null.m4]) m4_include([m4/sig2str.m4]) m4_include([m4/socketlib.m4]) m4_include([m4/sockets.m4]) m4_include([m4/socklen.m4]) m4_include([m4/ssize_t.m4]) m4_include([m4/stat-time.m4]) m4_include([m4/stat.m4]) m4_include([m4/stdalign.m4]) m4_include([m4/stdarg.m4]) m4_include([m4/stddef_h.m4]) m4_include([m4/stdint.m4]) m4_include([m4/stdio_h.m4]) m4_include([m4/stdlib_h.m4]) m4_include([m4/stpncpy.m4]) m4_include([m4/strchrnul.m4]) m4_include([m4/strdup.m4]) m4_include([m4/strerror.m4]) m4_include([m4/string_h.m4]) m4_include([m4/strndup.m4]) m4_include([m4/strnlen.m4]) m4_include([m4/strverscmp.m4]) m4_include([m4/sys_socket_h.m4]) m4_include([m4/sys_stat_h.m4]) m4_include([m4/sys_types_h.m4]) m4_include([m4/sys_uio_h.m4]) m4_include([m4/threadlib.m4]) m4_include([m4/time_h.m4]) m4_include([m4/unistd-safer.m4]) m4_include([m4/unistd_h.m4]) m4_include([m4/version-etc.m4]) m4_include([m4/visibility.m4]) m4_include([m4/warn-on-use.m4]) m4_include([m4/warnings.m4]) m4_include([m4/wchar_h.m4]) m4_include([m4/wchar_t.m4]) m4_include([m4/wctype_h.m4]) m4_include([m4/wint_t.m4]) m4_include([m4/xalloc.m4]) m4_include([m4/xstrndup.m4]) m4_include([m4/xstrtol.m4]) m4_include([m4/zzgnulib.m4]) a2ps-4.15.5/afm/0000755000000000000000000000000014445132372010172 500000000000000a2ps-4.15.5/afm/Makefile.am0000644000000000000000000000417714273213734012160 00000000000000# Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # A2PS = $(top_builddir)/src/a2ps A2PS_CONFIG = $(top_builddir)/tests/a2ps-tst.cfg # As a new `feature' :), a2ps uses now even more directories afmdir = $(pkgdatadir)/afm pcg_afms = pcfont.afm level1_afms = \ pcrb.afm pcrbo.afm pcrr.afm pcrro.afm \ phvb.afm phvbo.afm phvr.afm phvro.afm \ ptmb.afm ptmbi.afm ptmi.afm ptmr.afm \ psyr.afm level2_afms = \ pagb.afm pagbo.afm pagd.afm pagdo.afm \ pbkd.afm pbkdi.afm pbkl.afm pbkli.afm \ phvbon.afm phvbrn.afm phvron.afm phvrrn.afm \ pncb.afm pncbi.afm pncr.afm pncri.afm \ pplb.afm pplbi.afm pplr.afm pplri.afm \ pzcmi.afm pzdr.afm all_afms = $(pcg_afms) $(level1_afms) $(level2_afms) if EXTENSIONS afm_DATA = fonts.map $(all_afms) afm_SCRIPTS = make_fonts_map.sh else afm_DATA = fonts.map $(level1_afms) endif EXTRA_DIST = $(all_afms) make_fonts_map.sh fontsmap DISTCLEANFILES = fonts.map # FIXME: touch fonts.map # It is needed because a2ps cannot run if it cannot find a fonts.map # file, and since we need a2ps so that it tells us its path, we create # an empty fonts.map just for the time of the configuration fonts.map: $(srcdir)/make_fonts_map.sh $(A2PS_CONFIG) . $(top_builddir)/tests/defs ;\ touch fonts.map ; \ if $(SHELL) $(srcdir)/make_fonts_map.sh > /dev/null; then \ mv fonts.map.new fonts.map ;\ else \ echo "Failed to build a fonts.map file."; \ echo "Reverting to default file."; \ rm -f fonts.map.tmp && \ cp $(srcdir)/fontsmap fonts.map; \ fi a2ps-4.15.5/afm/Makefile.in0000644000000000000000000017054514445132052012166 00000000000000# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = afm ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(afmdir)" "$(DESTDIR)$(afmdir)" SCRIPTS = $(afm_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(afm_DATA) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ A2PS = $(top_builddir)/src/a2ps A2PS_CONFIG = $(top_builddir)/tests/a2ps-tst.cfg # As a new `feature' :), a2ps uses now even more directories afmdir = $(pkgdatadir)/afm pcg_afms = pcfont.afm level1_afms = \ pcrb.afm pcrbo.afm pcrr.afm pcrro.afm \ phvb.afm phvbo.afm phvr.afm phvro.afm \ ptmb.afm ptmbi.afm ptmi.afm ptmr.afm \ psyr.afm level2_afms = \ pagb.afm pagbo.afm pagd.afm pagdo.afm \ pbkd.afm pbkdi.afm pbkl.afm pbkli.afm \ phvbon.afm phvbrn.afm phvron.afm phvrrn.afm \ pncb.afm pncbi.afm pncr.afm pncri.afm \ pplb.afm pplbi.afm pplr.afm pplri.afm \ pzcmi.afm pzdr.afm all_afms = $(pcg_afms) $(level1_afms) $(level2_afms) @EXTENSIONS_FALSE@afm_DATA = fonts.map $(level1_afms) @EXTENSIONS_TRUE@afm_DATA = fonts.map $(all_afms) @EXTENSIONS_TRUE@afm_SCRIPTS = make_fonts_map.sh EXTRA_DIST = $(all_afms) make_fonts_map.sh fontsmap DISTCLEANFILES = fonts.map all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign afm/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign afm/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-afmSCRIPTS: $(afm_SCRIPTS) @$(NORMAL_INSTALL) @list='$(afm_SCRIPTS)'; test -n "$(afmdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(afmdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(afmdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(afmdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(afmdir)$$dir" || exit $$?; \ } \ ; done uninstall-afmSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(afm_SCRIPTS)'; test -n "$(afmdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(afmdir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-afmDATA: $(afm_DATA) @$(NORMAL_INSTALL) @list='$(afm_DATA)'; test -n "$(afmdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(afmdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(afmdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(afmdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(afmdir)" || exit $$?; \ done uninstall-afmDATA: @$(NORMAL_UNINSTALL) @list='$(afm_DATA)'; test -n "$(afmdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(afmdir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(afmdir)" "$(DESTDIR)$(afmdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-afmDATA install-afmSCRIPTS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-afmDATA uninstall-afmSCRIPTS .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-afmDATA install-afmSCRIPTS install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs loc-am loc-local \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-afmDATA uninstall-afmSCRIPTS \ uninstall-am .PRECIOUS: Makefile # FIXME: touch fonts.map # It is needed because a2ps cannot run if it cannot find a fonts.map # file, and since we need a2ps so that it tells us its path, we create # an empty fonts.map just for the time of the configuration fonts.map: $(srcdir)/make_fonts_map.sh $(A2PS_CONFIG) . $(top_builddir)/tests/defs ;\ touch fonts.map ; \ if $(SHELL) $(srcdir)/make_fonts_map.sh > /dev/null; then \ mv fonts.map.new fonts.map ;\ else \ echo "Failed to build a fonts.map file."; \ echo "Reverting to default file."; \ rm -f fonts.map.tmp && \ cp $(srcdir)/fontsmap fonts.map; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: a2ps-4.15.5/afm/fontsmap0000644000000000000000000000613014233473143011663 00000000000000# -*- ksh -*- # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # # This file defines the rules used by a2ps to recognize the file # name of a font given the font name. # # The format of each line is: # # # In which case whenever is requested, a2ps uses the # files .afm to get the font information, and the # files .pfa or pfb when it needs to download it # to the printer. # # *** # In which case a encoding.map is included at this point. # This may be the case if you define a personal extension # of the system's fonts.map # # A shell script has been provided with a2ps, and should be able to # write this file for you. # Just hit: `make_fonts_map.sh' # AvantGarde-Book pagb AvantGarde-BookOblique pagbo AvantGarde-Demi pagd AvantGarde-DemiOblique pagdo Bookman-Demi pbkd Bookman-DemiItalic pbkdi Bookman-Light pbkl Bookman-LightItalic pbkli Courier pcrr Courier-Bold pcrb Courier-Bold-Ogonki pcrb-o Courier-BoldOblique pcrbo Courier-BoldOblique-Ogonki pcrbo-o Courier-Oblique pcrro Courier-Oblique-Ogonki pcrro-o Courier-Ogonki pcrr-o Helvetica phvr Helvetica-Bold phvb Helvetica-Bold-Ogonki phvb-o Helvetica-BoldOblique phvbo Helvetica-BoldOblique-Ogonki phvbo-o Helvetica-Narrow phvrrn Helvetica-Narrow-Bold phvbrn Helvetica-Narrow-BoldOblique phvbon Helvetica-Narrow-Oblique phvron Helvetica-Oblique phvro Helvetica-Oblique-Ogonki phvro-o Helvetica-Ogonki phvr-o NewCenturySchlbk-Bold pncb NewCenturySchlbk-BoldItalic pncbi NewCenturySchlbk-Italic pncri NewCenturySchlbk-Roman pncr PCFont pcfont Palatino-Bold pplb Palatino-BoldItalic pplbi Palatino-Italic pplri Palatino-Roman pplr Symbol psyr Times-Bold ptmb Times-Bold-Ogonki ptmb-o Times-BoldItalic ptmbi Times-BoldItalic-Ogonki ptmbi-o Times-Italic ptmi Times-Italic-Ogonki ptmri-o Times-Roman ptmr Times-Roman-Ogonki ptmr-o ZapfChancery-MediumItalic pzcmi ZapfDingbats pzdr a2ps-4.15.5/afm/make_fonts_map.sh0000754000000000000000000001050714233473143013435 00000000000000#! /bin/sh # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # # This shell script is ment to ease the writing of the fonts.map # file. Once a2ps is installed, just run this script. # # Exit whenever there is a problem set -e /bin/rm -rf fonts.map.new fonts.map.tmp LC_ALL=C export LC_ALL files= A2PS=${A2PS:-a2ps} # The width of the first columns many_spaces=" " many_dots=`echo "$many_spaces" | sed -e 's/ /./g'` # First we want to get all the AFM files echo "Looking for the afm files read by ${A2PS}..." 1>&2 for directory in `$A2PS --list-options | grep '^ /'` do echo " $directory..." 1>&2 newfiles=`echo $directory/*.afm 2> /dev/null` case "$newfiles" in */\*.afm) # nothing found here ;; *) # echo " $newfiles" | sed -e "s!$directory/!!g" 1>&2 files=`echo $newfiles $files` ;; esac done # Extract there names echo "Extracting font names..." 1>&2 for file in $files do # Extract the font name. name=`sed -n -e '/^FontName/{ s/FontName[ ]*\([-a-zA-Z]*\).*/\1/p q }' $file` shortname=`basename $file | sed -e 's/\.[^\.]*$//g'` if test x$name = x; then :; else # This is probably not a correct AFM file. # (For instance Ogonkify's pseudo AFMs that define the encodings) # Forget it. col1=`echo "$name$many_spaces" | sed -e 's/^\('$many_dots'\).*$/\1/g'` # Make sure the name has not been cut case "$col1" in $name*) ;; *) echo "A name has been cut ($name -> $col1)." 1>&2 exit 1 ;; esac col2="$shortname" echo "$col1$col2" >> fonts.map.new fi done # Sort them by name, and keep a unique file for each font echo "Sorting entries..." 1>&2 sort -u -t' ' +0 -1 fonts.map.new > fonts.map.tmp echo "Finishing." 1>&2 cat > fonts.map.new < # In which case whenever is requested, a2ps uses the # files .afm to get the font information, and the # files .pfa or pfb when it needs to download it # to the printer. # # *** # In which case a encoding.map is included at this point. # This may be the case if you define a personal extension # of the system's fonts.map # # A shell script has been provided with a2ps, and should be able to # write this file for you. # Just hit: \`make_fonts_map.sh' # EOF cat fonts.map.tmp >> fonts.map.new chmod 644 fonts.map.new rm fonts.map.tmp # Make a message for the user cat <. # EXTRA_DIST = make-faq.sed update-ogonkify.sh a2ps-4.15.5/build-aux/Makefile.in0000644000000000000000000015702514445132052013313 00000000000000# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1988-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = build-aux ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = x-to-1 CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/x-to-1.in ar-lib \ compile config.guess config.rpath config.sub depcomp \ install-sh ltmain.sh mdate-sh missing texinfo.tex ylwrap DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = make-faq.sed update-ogonkify.sh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build-aux/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign build-aux/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): x-to-1: $(top_builddir)/config.status $(srcdir)/x-to-1.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs loc-am \ loc-local maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: a2ps-4.15.5/build-aux/announce-gen0000754000000000000000000004424314374751113013553 00000000000000#!/bin/sh #! -*-perl-*- # Generate a release announcement message. # Copyright (C) 2002-2023 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Written by Jim Meyering # This is a prologue that allows to run a perl script as an executable # on systems that are compliant to a POSIX version before POSIX:2017. # On such systems, the usual invocation of an executable through execlp() # or execvp() fails with ENOEXEC if it is a script that does not start # with a #! line. The script interpreter mentioned in the #! line has # to be /bin/sh, because on GuixSD systems that is the only program that # has a fixed file name. The second line is essential for perl and is # also useful for editing this file in Emacs. The next two lines below # are valid code in both sh and perl. When executed by sh, they re-execute # the script through the perl program found in $PATH. The '-x' option # is essential as well; without it, perl would re-execute the script # through /bin/sh. When executed by perl, the next two lines are a no-op. eval 'exec perl -wSx "$0" "$@"' if 0; my $VERSION = '2022-07-10 01:47'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. my $copyright_year = '2022'; use strict; use Getopt::Long; use POSIX qw(strftime); (my $ME = $0) =~ s|.*/||; my %valid_release_types = map {$_ => 1} qw (alpha beta stable); my @archive_suffixes = qw (tar.gz tar.bz2 tar.lz tar.lzma tar.xz); my $srcdir = '.'; sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { my @types = sort keys %valid_release_types; print $STREAM < = C Compute the sizes of the C<@file> and return them as a hash. Return C if one of the computation failed. =cut sub sizes (@) { my (@file) = @_; my $fail = 0; my %res; foreach my $f (@file) { my $cmd = "du -h $f"; my $t = `$cmd`; # FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS $@ and (warn "command failed: '$cmd'\n"), $fail = 1; chomp $t; $t =~ s/^\s*([\d.]+[MkK]).*/${1}B/; $res{$f} = $t; } return $fail ? undef : %res; } =item C dedicated to the list of <@file>, which sizes are stored in C<%size>, and which are available from the C<@url>. =cut sub print_locations ($\@\%@) { my ($title, $url, $size, @file) = @_; print "Here are the $title:\n"; foreach my $url (@{$url}) { for my $file (@file) { print " $url/$file"; print " (", $$size{$file}, ")" if exists $$size{$file}; print "\n"; } } print "\n"; } =item C. =cut sub print_checksums (@) { my (@file) = @_; print "Here are the SHA1 and SHA256 checksums:\n"; print "\n"; use Digest::file qw(digest_file_hex digest_file_base64); foreach my $f (@file) { print digest_file_hex($f, "SHA-1"), " $f\n"; print digest_file_base64($f, "SHA-256"), " $f\n"; } print "\nThe SHA256 checksum is base64 encoded, instead of the\n"; print "hexadecimal encoding that most checksum tools default to.\n\n"; } =item C addressing changes between versions C<$prev_version> and C<$curr_version>. =cut sub print_news_deltas ($$$) { my ($news_file, $prev_version, $curr_version) = @_; my $news_name = $news_file; $news_name =~ s|^\Q$srcdir\E/||; print "\n$news_name\n\n"; # Print all lines from $news_file, starting with the first one # that mentions $curr_version up to but not including # the first occurrence of $prev_version. my $in_items; my $re_prefix = qr/(?:\* )?(?:Noteworthy c|Major c|C)(?i:hanges)/; my $found_news; open NEWS, '<', $news_file or die "$ME: $news_file: cannot open for reading: $!\n"; while (defined (my $line = )) { if ( ! $in_items) { # Match lines like these: # * Major changes in release 5.0.1: # * Noteworthy changes in release 6.6 (2006-11-22) [stable] $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$curr_version\E(?:[^\d.]|$)/o or next; $in_items = 1; print $line; } else { # This regexp must not match version numbers in NEWS items. # For example, they might well say "introduced in 4.5.5", # and we don't want that to match. $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$prev_version\E(?:[^\d.]|$)/o and last; print $line; $line =~ /\S/ and $found_news = 1; } } close NEWS; $in_items or die "$ME: $news_file: no matching lines for '$curr_version'\n"; $found_news or die "$ME: $news_file: no news item found for '$curr_version'\n"; } sub print_changelog_deltas ($$) { my ($package_name, $prev_version) = @_; # Print new ChangeLog entries. # First find all CVS-controlled ChangeLog files. use File::Find; my @changelog; find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS' and push @changelog, $File::Find::name}}, '.'); # If there are no ChangeLog files, we're done. @changelog or return; my %changelog = map {$_ => 1} @changelog; # Reorder the list of files so that if there are ChangeLog # files in the specified directories, they're listed first, # in this order: my @dir = qw ( . src lib m4 config doc ); # A typical @changelog array might look like this: # ./ChangeLog # ./po/ChangeLog # ./m4/ChangeLog # ./lib/ChangeLog # ./doc/ChangeLog # ./config/ChangeLog my @reordered; foreach my $d (@dir) { my $dot_slash = $d eq '.' ? $d : "./$d"; my $target = "$dot_slash/ChangeLog"; delete $changelog{$target} and push @reordered, $target; } # Append any remaining ChangeLog files. push @reordered, sort keys %changelog; # Remove leading './'. @reordered = map { s!^\./!!; $_ } @reordered; print "\nChangeLog entries:\n\n"; # print join ("\n", @reordered), "\n"; $prev_version =~ s/\./_/g; my $prev_cvs_tag = "\U$package_name\E-$prev_version"; my $cmd = "cvs -n diff -u -r$prev_cvs_tag -rHEAD @reordered"; open DIFF, '-|', $cmd or die "$ME: cannot run '$cmd': $!\n"; # Print two types of lines, making minor changes: # Lines starting with '+++ ', e.g., # +++ ChangeLog 22 Feb 2003 16:52:51 -0000 1.247 # and those starting with '+'. # Don't print the others. my $prev_printed_line_empty = 1; while (defined (my $line = )) { if ($line =~ /^\+\+\+ /) { my $separator = "*"x70 ."\n"; $line =~ s///; $line =~ s/\s.*//; $prev_printed_line_empty or print "\n"; print $separator, $line, $separator; } elsif ($line =~ /^\+/) { $line =~ s///; print $line; $prev_printed_line_empty = ($line =~ /^$/); } } close DIFF; # The exit code should be 1. # Allow in case there are no modified ChangeLog entries. $? == 256 || $? == 128 or warn "warning: '$cmd' had unexpected exit code or signal ($?)\n"; } sub get_tool_versions ($$) { my ($tool_list, $gnulib_version) = @_; @$tool_list or return (); my $fail; my @tool_version_pair; foreach my $t (@$tool_list) { if ($t eq 'gnulib') { push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version; next; } # Assume that the last "word" on the first line of # 'tool --version' output is the version string. my ($first_line, undef) = split ("\n", `$t --version`); if ($first_line =~ /.* (\d[\w.-]+)$/) { $t = ucfirst $t; push @tool_version_pair, "$t $1"; } else { defined $first_line and $first_line = ''; warn "$t: unexpected --version output\n:$first_line"; $fail = 1; } } $fail and exit 1; return @tool_version_pair; } { # Use the C locale so that, for instance, "du" does not # print "1,2" instead of "1.2", which would confuse our regexps. $ENV{LC_ALL} = "C"; my $mail_headers; my $release_type; my $package_name; my $prev_version; my $curr_version; my $gpg_key_id; my @url_dir_list; my @news_file; my $bootstrap_tools; my $gnulib_version; my $print_checksums_p = 1; my $gpg_key_email; my $gpg_keyring_url; # Reformat the warnings before displaying them. local $SIG{__WARN__} = sub { my ($msg) = @_; # Warnings from GetOptions. $msg =~ s/Option (\w)/option --$1/; warn "$ME: $msg"; }; GetOptions ( 'mail-headers=s' => \$mail_headers, 'release-type=s' => \$release_type, 'package-name=s' => \$package_name, 'previous-version=s' => \$prev_version, 'current-version=s' => \$curr_version, 'gpg-key-id=s' => \$gpg_key_id, 'gpg-key-email=s' => \$gpg_key_email, 'gpg-keyring-url=s' => \$gpg_keyring_url, 'url-directory=s' => \@url_dir_list, 'news=s' => \@news_file, 'srcdir=s' => \$srcdir, 'bootstrap-tools=s' => \$bootstrap_tools, 'gnulib-version=s' => \$gnulib_version, 'print-checksums!' => \$print_checksums_p, 'archive-suffix=s' => \@archive_suffixes, help => sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; print "Copyright (C) $copyright_year Free Software Foundation, Inc.\n"; print "License GPLv3+: GNU GPL version 3 or later .\n" . "This is free software: you are free to change and redistribute it.\n" . "There is NO WARRANTY, to the extent permitted by law.\n"; print "\n"; my $author = "Jim Meyering"; print "Written by $author.\n"; exit }, ) or usage 1; my $fail = 0; # Ensure that each required option is specified. $release_type or (warn "release type not specified\n"), $fail = 1; $package_name or (warn "package name not specified\n"), $fail = 1; $prev_version or (warn "previous version string not specified\n"), $fail = 1; $curr_version or (warn "current version string not specified\n"), $fail = 1; $gpg_key_id or (warn "GnuPG key ID not specified\n"), $fail = 1; @url_dir_list or (warn "URL directory name(s) not specified\n"), $fail = 1; my @tool_list = split ',', $bootstrap_tools if $bootstrap_tools; grep (/^gnulib$/, @tool_list) && ! defined $gnulib_version and (warn "when specifying gnulib as a tool, you must also specify\n" . "--gnulib-version=V, where V is the result of running git describe\n" . "in the gnulib source directory.\n"), $fail = 1; ! grep (/^gnulib$/, @tool_list) && defined $gnulib_version and (warn "with --gnulib-version=V you must use --bootstrap-tools=...\n" . "including gnulib in that list"), $fail = 1; !$release_type || exists $valid_release_types{$release_type} or (warn "'$release_type': invalid release type\n"), $fail = 1; @ARGV and (warn "too many arguments:\n", join ("\n", @ARGV), "\n"), $fail = 1; $fail and usage 1; my $my_distdir = "$package_name-$curr_version"; my $xd = "$package_name-$prev_version-$curr_version.xdelta"; my @candidates = map { "$my_distdir.$_" } @archive_suffixes; my @tarballs = grep {-f $_} @candidates; @tarballs or die "$ME: none of " . join(', ', @candidates) . " were found\n"; my @sizable = @tarballs; -f $xd and push @sizable, $xd; my %size = sizes (@sizable); %size or exit 1; my $headers = ''; if (defined $mail_headers) { ($headers = $mail_headers) =~ s/\s+(\S+:)/\n$1/g; $headers .= "\n"; } # The markup is escaped as <\# so that when this script is sent by # mail (or part of a diff), Gnus is not triggered. print < FIXME: put comments here EOF if (@url_dir_list == 1 && @tarballs == 1) { # When there's only one tarball and one URL, use a more concise form. my $m = "$url_dir_list[0]/$tarballs[0]"; print "Here are the compressed sources and a GPG detached signature:\n" . " $m\n" . " $m.sig\n\n"; } else { print_locations ("compressed sources", @url_dir_list, %size, @tarballs); -f $xd and print_locations ("xdelta diffs (useful? if so, " . "please tell bug-gnulib\@gnu.org)", @url_dir_list, %size, $xd); my @sig_files = map { "$_.sig" } @tarballs; print_locations ("GPG detached signatures", @url_dir_list, %size, @sig_files); } if ($url_dir_list[0] =~ "gnu\.org") { print "Use a mirror for higher download bandwidth:\n"; if (@tarballs == 1 && $url_dir_list[0] =~ m!https://ftp\.gnu\.org/gnu/!) { (my $m = "$url_dir_list[0]/$tarballs[0]") =~ s!https://ftp\.gnu\.org/gnu/!https://ftpmirror\.gnu\.org/!; print " $m\n" . " $m.sig\n\n"; } else { print " https://www.gnu.org/order/ftp.html\n\n"; } } $print_checksums_p and print_checksums (@sizable); print <. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # func_error message func_error () { echo "$me: $1" 1>&2 exit 1 } file_conv= # func_file_conv build_file # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN* | MSYS*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv in mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin | msys) file=`cygpath -m "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_at_file at_file operation archive # Iterate over all members in AT_FILE performing OPERATION on ARCHIVE # for each of them. # When interpreting the content of the @FILE, do NOT use func_file_conv, # since the user would need to supply preconverted file names to # binutils ar, at least for MinGW. func_at_file () { operation=$2 archive=$3 at_file_contents=`cat "$1"` eval set x "$at_file_contents" shift for member do $AR -NOLOGO $operation:"$member" "$archive" || exit $? done } case $1 in '') func_error "no command. Try '$0 --help' for more information." ;; -h | --h*) cat <, and GPL version 2 or later # . You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # You should place a copy of this script under version control in the # top-level directory of your project. The intent is that all # customization can be done with a `bootstrap.conf` file also maintained # in your version control. # Please report bugs or propose patches to: # ## ------ ## ## Usage. ## ## ------ ## # Most GNUish projects do not keep all of the generated Autotool # files under version control, but running all of the right tools # with the right arguments, in the correct order to regenerate # all of those files in readiness for configuration and building # can be surprisingly involved! Many projects have a 'bootstrap' # script under version control to invoke Autotools and perform # other assorted book-keeping with version numbers and the like. # # This bootstrap script aims to probe the configure.ac and top # Makefile.am of your project to automatically determine what # the correct ordering and arguments are and then run the tools for # you. In order to use it, you can generate an initial standalone # script with: # # gl/build-aux/inline-source gl/build-aux/bootstrap.in > bootstrap # # You should then store than script in version control for other # developers in your project. It will give you instructions about # how to keep it up to date if the sources change. # # See gl/doc/bootstrap.texi for documentation on how to write # a bootstrap.conf to customize it for your project's # idiosyncracies. ## ================================================================== ## ## ## ## DO NOT EDIT THIS FILE, CUSTOMIZE IT USING A BOOTSTRAP.CONF ## ## ## ## ================================================================== ## ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase denotes values stored in the environment. These # variables should generally be overridden by the user - however, we do # set them to 'true' in some parts of this script to prevent them being # called at the wrong time by other tools that we call ('autoreconf', # for example). # # We also allow 'LIBTOOLIZE', 'M4', 'SHA1SUM' and some others to be # overridden, and export the result for child processes, but they are # handled by the function 'func_find_tool' and not defaulted in this # section. : ${ACLOCAL="aclocal"} : ${AUTOCONF="autoconf"} : ${AUTOHEADER="autoheader"} : ${AUTOM4TE="autom4te"} : ${AUTOHEADER="autoheader"} : ${AUTOMAKE="automake"} : ${AUTOPOINT="autopoint"} : ${AUTORECONF="autoreconf"} : ${CMP="cmp"} : ${CONFIG_SHELL="/bin/sh"} : ${DIFF="diff"} : ${GIT="git"} : ${LN_S="ln -s"} : ${RM="rm"} export ACLOCAL export AUTOCONF export AUTOHEADER export AUTOM4TE export AUTOHEADER export AUTOMAKE export AUTOPOINT export AUTORECONF export CONFIG_SHELL ## -------------- ## ## Configuration. ## ## -------------- ## # A newline delimited list of triples of programs (that respond to # --version), the minimum version numbers required (or just '-' in the # version field if any version will be sufficient) and homepage URLs # to help locate missing packages. buildreq= # Name of a file containing instructions on installing missing packages # required in 'buildreq'. buildreq_readme=README-hacking # These are extracted from AC_INIT in configure.ac, though you can # override those values in 'bootstrap.conf' if you prefer. build_aux= macro_dir= package= package_name= package_version= package_bugreport= # These are extracted from 'gnulib-cache.m4', or else fall-back # automatically on the gnulib defaults; unless you set the values # manually in 'bootstrap.conf'. doc_base= gnulib_mk= gnulib_name= local_gl_path= source_base= tests_base= # The list of gnulib modules required at 'gnulib-tool' time. If you # check 'gnulib-cache.m4' into your repository, then this list will be # extracted automatically. gnulib_modules= # Extra gnulib files that are not in modules, which override files of # the same name installed by other bootstrap tools. gnulib_non_module_files=" build-aux/compile build-aux/install-sh build-aux/mdate-sh build-aux/texinfo.tex build-aux/depcomp build-aux/config.guess build-aux/config.sub doc/INSTALL " # Relative path to the local gnulib submodule, and url to the upstream # git repository. If you have a gnulib entry in your .gitmodules file, # these values are ignored. gnulib_path= gnulib_url= # Date from which to clone github, to avoid a full clone. gnulib_clone_since= # Additional gnulib-tool options to use. gnulib_tool_options=" --no-changelog " # bootstrap removes any macro-files that are not included by aclocal.m4, # except for files listed in this variable that are always kept. gnulib_precious=" gnulib-tool.m4 " # When truncating long commands for display, always allow at least this # many characters before truncating. min_cmd_len=160 # The command to download all .po files for a specified domain into # a specified directory. Fill in the first %s is the domain name, and # the second with the destination directory. Use rsync's -L and -r # options because the latest/%s directory and the .po files within are # all symlinks. po_download_command_format=\ "rsync --delete --exclude '*.s1' -Lrtvz \ 'translationproject.org::tp/latest/%s/' '%s'" # Other locale categories that need message catalogs. extra_locale_categories= # Additional xgettext options to use. Gnulib might provide you with an # extensive list of additional options to append to this, but gettext # 0.16.1 and newer appends them automaticaly, so you can safely ignore # the complaints from 'gnulib-tool' if your $configure_ac states: # # AM_GNU_GETTEXT_VERSION([0.16.1]) xgettext_options=" --flag=_:1:pass-c-format --flag=N_:1:pass-c-format " # Package copyright holder for gettext files. Defaults to FSF if unset. copyright_holder= # File that should exist in the top directory of a checked out hierarchy, # but not in a distribution tarball. checkout_only_file= # Whether to use copies instead of symlinks by default (if set to true, # the --copy option has no effect). copy=false # Set this to ".cvsignore .gitignore" in 'bootstrap.conf' if you want # those files to be generated in directories like 'lib/', 'm4/', and 'po/', # or set it to "auto" to make this script select what to use based # on what version control system (if any) is used in the source directory. # Or set it to "none" to ignore VCS ignore files entirely. Default is # "auto". vc_ignore= ## ------------------- ## ## External Libraries. ## ## ------------------- ## # Source required external libraries: . `echo "$0" |${SED-sed} 's|[^/]*$||'`"funclib.sh" . `echo "$0" |${SED-sed} 's|[^/]*$||'`"options-parser" . `echo "$0" |${SED-sed} 's|[^/]*$||'`"extract-trace" # Set a version string for *this* script. scriptversion=2019-03-22.11; # UTC ## ------------------- ## ## Hookable functions. ## ## ------------------- ## # After 'bootstrap.conf' has been sourced, execution proceeds by calling # 'func_bootstrap'. Wherever a function is decorated with # 'func_hookable func_name', you will find a matching 'func_run_hooks # func_name', which executes all functions added with 'func_add_hook # func_name my_func'. # # You might notice that many of these functions begin with a series of # '$require_foo' lines. See the docu-comments at the start of the # 'Resource management' section for a description of what these are. # func_bootstrap [ARG]... # ----------------------- # All the functions called inside func_bootstrap are hookable. See the # the individual implementations for details. func_bootstrap () { $debug_cmd # Save the current positional parameters to prevent them being # corrupted by calls to 'set' in 'func_init'. func_quote eval ${1+"$@"} _G_saved_positional_parameters=$func_quote_result # Initialisation. func_init # Option processing. eval func_options "$_G_saved_positional_parameters" # Post-option preparation. func_prep # Reconfigure the package. func_reconfigure # Ensure .version is up-to-date. func_update_dotversion # Finalisation. func_fini } # func_init # --------- # Any early initialisations can be hooked to this function. Consider # whether you can hook onto 'func_prep' instead, because if you hook # any slow to execute code in here, it will also add to the time before # './bootstrap --version' can respond. func_hookable func_init func_init () { $debug_cmd func_run_hooks func_init } # func_prep # --------- # Function to perform preparation for remaining bootstrap process. If # your hooked code relies on the outcome of 'func_options' hook it here # rather than to 'func_init'. # # All the functions called inside func_prep are hookable. See the # individual implementations for details. func_hookable func_prep func_prep () { $debug_cmd $require_buildtools_uptodate $require_checkout_only_file $require_gnulib_merge_changelog # Report the results of SED and GREP searches from funclib.sh. func_verbose "GREP='$GREP'" func_verbose "SED='$SED'" # fetch update files from the translation project func_update_translations func_run_hooks func_prep } # func_update_translations # ------------------------ # Update package po files and translations. func_hookable func_update_translations func_update_translations () { $debug_cmd $opt_skip_po || { test -d po && { $require_package func_update_po_files po $package || exit $? } func_run_hooks func_update_translations } } # func_reconfigure # ---------------- # Reconfigure the current package by running the appropriate autotools in a # suitable order. func_hookable func_reconfigure func_reconfigure () { $debug_cmd $require_automake_options # Automake (without 'foreign' option) requires that NEWS & README exist. case " $automake_options " in " foreign ") ;; *) func_ensure_NEWS func_ensure_README ;; esac # Ensure ChangeLog presence. if test -n "$gnulib_modules"; then func_ifcontains "$gnulib_modules" gitlog-to-changelog \ func_ensure_changelog else $require_gnulib_cache if $SED -n '/^gl_MODULES(\[/,/^])$/p' $gnulib_cache 2>/dev/null | func_grep_q gitlog-to-changelog then func_ensure_changelog fi fi # Released 'autopoint' has the tendency to install macros that have # been obsoleted in current 'gnulib', so run this before 'gnulib-tool'. func_autopoint # Autoreconf runs 'aclocal' before 'libtoolize', which causes spurious # warnings if the initial 'aclocal' is confused by the libtoolized # (or worse: out-of-date) macro directory. func_libtoolize # If you need to do anything after 'gnulib-tool' is done, but before # 'autoreconf' runs, you don't need to override this whole function, # because 'func_gnulib_tool' is hookable. func_gnulib_tool func_autoreconf func_run_hooks func_reconfigure } # func_gnulib_tool # ---------------- # Run 'gnulib-tool' to fetch gnulib modules into the current package. # # It's assumed that since you are using gnulib's 'bootstrap' script, # you're also using gnulib elsewhere in your package. If not, then # you can replace this function in 'bootstrap.conf' with: # # func_gnulib_tool () { :; } # # (although the function returns immediately if $gnulib_tool is set to # true in any case). func_hookable func_gnulib_tool func_gnulib_tool () { $debug_cmd $require_gnulib_tool $require_libtoolize test true = "$gnulib_tool" || { $require_gnulib_git_submodules # bootstrap.conf written for gnulib bootstrap expects # gnulib_tool_option_extras to which --no-changelog is appended, # but libtool bootstrap expects you to append to gnulib_tool_options # so that you can override the --no-changelog default: make sure we # support both styles so users can migrate between them easily. gnulib_tool_all_options="$gnulib_tool_options $gnulib_tool_option_extras" if test -n "$gnulib_modules"; then $require_gnulib_cache $require_gnulib_tool_base_options gnulib_mode=--import # Try not to pick up any stale values from 'gnulib-cache.m4'. rm -f "$gnulib_cache" test -n "$gnulib_tool_base_options" \ && func_append_uniq gnulib_tool_all_options " $gnulib_tool_base_options" test -n "$gnulib_mk" \ && func_append_uniq gnulib_tool_all_options " --makefile-name=$gnulib_mk" test -n "$tests_base" && { func_append_uniq gnulib_tool_all_options " --tests-base=$tests_base" func_append_uniq gnulib_tool_all_options " --with-tests" } else # 'gnulib_modules' and others are cached in 'gnulib-cache.m4': # Use 'gnulib --update' to fetch gnulib modules. gnulib_mode=--update fi # Add a sensible default libtool option to gnulib_tool_options. # The embedded echo is to squash whitespace before globbing. case `echo " "$gnulib_tool_all_options" "` in *" --no-libtool "*|*" --libtool "*) ;; *) if test true = "$LIBTOOLIZE"; then func_append_uniq gnulib_tool_all_options " --no-libtool" else func_append_uniq gnulib_tool_all_options " --libtool" fi ;; esac $opt_copy || func_append_uniq gnulib_tool_all_options " --symlink" func_append_uniq gnulib_tool_all_options " $gnulib_mode" func_append gnulib_tool_all_options " $gnulib_modules" # The embedded echo is to squash whitespace before display. gnulib_cmd=`echo $gnulib_tool $gnulib_tool_all_options` func_show_eval "$gnulib_cmd" 'exit $?' # Use 'gnulib-tool --copy-file' to install non-module files. func_install_gnulib_non_module_files } func_run_hooks func_gnulib_tool } # func_fini # --------- # Function to perform all finalisation for the bootstrap process. func_hookable func_fini func_fini () { $debug_cmd func_gettext_configuration func_clean_dangling_symlinks func_clean_unused_macros func_skip_po_recommendation func_run_hooks func_fini $require_bootstrap_uptodate func_echo "Done. Now you can run './configure'." } # func_gettext_configuration # -------------------------- # Edit configuration values into po/Makevars. func_hookable func_gettext_configuration func_gettext_configuration () { $debug_cmd $require_autopoint test true = "$AUTOPOINT" || { $require_copyright_holder $require_extra_locale_categories $require_package_bugreport # Escape xgettext options for sed Makevars generation below. # We have to delete blank lines in a separate script so that we don't # append \\\ to the penultimate line, and then delete the last empty # line, which messes up the variable substitution later in this # function. Note that adding a literal \\\ requires double escaping # here, once for the execution subshell, and again for the assignment, # which is why there are actually 12 (!!) backslashes in the script. _G_xgettext_options=`echo "$xgettext_options$nl" |$SED '/^$/d' |$SED ' $b s|$| \\\\\\\\\\\\|'` # Create gettext configuration. func_echo "Creating po/Makevars from po/Makevars.template ..." $RM -f po/Makevars $SED ' /^EXTRA_LOCALE_CATEGORIES *=/s|=.*|= '"$extra_locale_categories"'| /^COPYRIGHT_HOLDER *=/s|=.*|= '"$copyright_holder"'| /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$package_bugreport"'| /^XGETTEXT_OPTIONS *=/{ s|$| \\| a\ '"$_G_xgettext_options"' \\\ $${end_of_xgettext_options+} } s/ *$// ' po/Makevars.template >po/Makevars || exit 1 } func_run_hooks func_gettext_configuration } ## --------------- ## ## Core functions. ## ## --------------- ## # This section contains the main functions called from the 'Hookable # functions' (shown above), and are the ones you're most likely # to want to replace with your own implementations in 'bootstrap.conf'. # func_autopoint # -------------- # If this package uses gettext, then run 'autopoint'. func_autopoint () { $debug_cmd $require_autopoint test true = "$AUTOPOINT" \ || func_show_eval "$AUTOPOINT --force" 'exit $?' } # func_libtoolize # --------------- # If this package uses libtool, then run 'libtoolize'. func_libtoolize () { $debug_cmd $require_libtoolize test true = "$LIBTOOLIZE" || { _G_libtoolize_options= $opt_copy && func_append _G_libtoolize_options " --copy" $opt_force && func_append _G_libtoolize_options " --force" $opt_verbose || func_append _G_libtoolize_options " --quiet" func_show_eval "$LIBTOOLIZE$_G_libtoolize_options" 'exit $?' } } # func_gnulib_tool_copy_file SRC DEST # ----------------------------------- # Copy SRC, a path relative to the gnulib sub-tree, to DEST, a path # relative to the top-level source directory using gnulib-tool so that # any patches or replacements in $local_gl_path are applied. func_gnulib_tool_copy_file () { $debug_cmd $require_gnulib_tool $require_patch if test true = "$gnulib_tool"; then # If gnulib-tool is not available (e.g. bootstrapping in a # distribution tarball), make sure that at least we have some # version of the required file already in place. test -f "$2" || func_fatal_error "\ Can't find, copy or download '$2', a required gnulib supplied file, please provide the location of a complete 'gnulib' tree by setting 'gnulib_path' in your 'bootstrap.conf' or with the '--gnulib-srcdir' option - or else specify the location of your 'git' binary by setting 'GIT' in the environment so that a fresh 'gnulib' submodule can be cloned." else $require_gnulib_copy_cmd $gnulib_copy_cmd $1 $2 2>/dev/null || { $require_gnulib_path func_error "'$gnulib_path/$1' does not exist" return 1 } fi } # func_install_gnulib_non_module_files # ------------------------------------ # Get additional non-module files from gnulib, overriding existing files. func_install_gnulib_non_module_files () { $debug_cmd $require_build_aux $require_gnulib_tool test -n "$gnulib_non_module_files" && { maybe_exit_cmd=: for file in $gnulib_non_module_files; do case $file in */COPYING*) dest=COPYING;; */INSTALL) dest=INSTALL;; build-aux/missing) dest= func_warning settings "\ Please remove build-aux/missing from gnulib_module_files in 'bootstrap.conf', as it may clash with Automake's version." ;; build-aux/*) dest=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;; *) dest=$file;; esac # Be sure to show all copying errors before bailing out test -z "$dest" \ || func_gnulib_tool_copy_file "$file" "$dest" \ || maybe_exit_cmd="exit $EXIT_FAILURE" done $maybe_exit_cmd } } # func_ensure_changelog # --------------------- # Even with 'gitlog-to-changelog' generated ChangeLogs, automake # will not run to completion with no ChangeLog file. func_ensure_changelog () { $debug_cmd test -f ChangeLog && mv -f ChangeLog ChangeLog~ cat >ChangeLog <<'EOT' ## ---------------------- ## ## DO NOT EDIT THIS FILE! ## ## ---------------------- ## ChangeLog is generated by gitlog-to-changelog. EOT _G_message="creating dummy 'ChangeLog'" test -f ChangeLog~ \ && func_append _G_message ' (backup in ChangeLog~)' func_verbose "$_G_message" return 0 } # func_ensure_NEWS # ---------------- # Without AM_INIT_AUTOMAKE([foreign]), automake will not run to # completion with no NEWS file, even though NEWS.md or NEWS.txt # is often preferable. func_ensure_NEWS () { $debug_cmd test -f NEWS || { _G_NEWS= for _G_news in NEWS.txt NEWS.md NEWS.rst; do test -f "$_G_news" && break done test -f "$_G_news" && $LN_S $_G_news NEWS func_verbose "$LN_S $_G_news NEWS" } return 0 } # func_ensure_README # ------------------ # Without AM_INIT_AUTOMAKE([foreign]), automake will not run to # completion with no README file, even though README.md or README.txt # is often preferable. func_ensure_README () { $debug_cmd test -f README || { _G_README= for _G_readme in README.txt README.md README.rst; do test -f "$_G_readme" && break done test -f "$_G_readme" && $LN_S $_G_readme README func_verbose "$LN_S $_G_readme README" } return 0 } # func_autoreconf [SUBDIR] # ------------------------ # Being careful not to re-run 'autopoint' or 'libtoolize', and not to # try to run 'autopoint', 'libtoolize' or 'autoheader' on packages that # don't use them, defer to 'autoreconf' for execution of the remaining # autotools to bootstrap this package. # # Projects with multiple trees to reconfigure can hook another call to # this function onto func_reconfigure: # # my_autoreconf_foo () # { # func_autoreconf foo # } # func_add_hook func_reconfigure my_autoreconf_foo func_autoreconf () { $debug_cmd $require_autoheader $require_build_aux # automake and others put files in here $require_macro_dir # aclocal and others put files in here # We ran these manually already, and autoreconf won't exec ':' save_AUTOPOINT=$AUTOPOINT; AUTOPOINT=true save_LIBTOOLIZE=$LIBTOOLIZE; LIBTOOLIZE=true _G_autoreconf_options= $opt_copy || func_append _G_autoreconf_options " --symlink" $opt_force && func_append _G_autoreconf_options " --force" $opt_verbose && func_append _G_autoreconf_options " --verbose" func_show_eval "$AUTORECONF$_G_autoreconf_options --install${1+ $1}" 'exit $?' AUTOPOINT=$save_AUTOPOINT LIBTOOLIZE=$save_LIBTOOLIZE } # func_check_configuration VARNAME [CONFIGURE_MACRO] # -------------------------------------------------- # Exit with a suitable diagnostic for an important configuration change # that needs to be made before bootstrap can run correctly. func_check_configuration () { $debug_cmd $require_configure_ac eval 'test -n "$'$1'"' || { _G_error_msg="please set '$1' in 'bootstrap.conf'" if test -n "$configure_ac" && test -n "$2"; then func_append _G_error_msg " or add the following (or similar) to your '$configure_ac': $2" fi func_fatal_error "$_G_error_msg" } } # func_clean_dangling_symlinks # ---------------------------- # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some # gnulib-populated directories. Such .m4 files would cause aclocal to # fail. The following requires GNU find 4.2.3 or newer. Considering # the usual portability constraints of this script, that may seem a very # demanding requirement, but it should be ok. Ignore any failure, # which is fine, since this is only a convenience to help developers # avoid the relatively unusual case where a symlinked-to .m4 file is # git-removed from gnulib between successive runs of this script. func_clean_dangling_symlinks () { $debug_cmd $require_macro_dir $require_source_base func_verbose "cleaning dangling symlinks" find "$macro_dir" "$source_base" \ -depth \( -name '*.m4' -o -name '*.[ch]' \) \ -type l -xtype l -delete > /dev/null 2>&1 } # func_clean_unused_macros # ------------------------ # Autopoint can result in over-zealously adding macros into $macro_dir # even though they are not actually used, for example tests to help # build the 'intl' directory even though you have specified # 'AM_GNU_GETTEXT([external])' in your configure.ac. This function # looks removes any macro files that can be found in gnulib, but # are not 'm4_include'd by 'aclocal.m4'. func_clean_unused_macros () { $debug_cmd $require_gnulib_path $require_macro_dir test -n "$gnulib_path" && test -f aclocal.m4 && { aclocal_m4s=`find . -name aclocal.m4 -print` # We use 'ls|grep' instead of 'ls *.m4' to avoid exceeding # command line length limits in some shells. for file in `cd "$macro_dir" && ls -1 |$GREP '\.m4$'`; do # Remove a macro file when aclocal.m4 does not m4_include it... func_grep_q 'm4_include([[]'$macro_dir/$file'])' $aclocal_m4s \ || test ! -f "$gnulib_path/m4/$file" || { # ...and there is an identical file in gnulib... if func_cmp_s "$gnulib_path/m4/$file" "$macro_dir/$file"; then # ...and it's not in the precious list ('echo' is needed # here to squash whitespace for the match expression). case " "`echo $gnulib_precious`" " in *" $file "*) ;; *) rm -f "$macro_dir/$file" func_verbose \ "removing unused gnulib file '$macro_dir/$file'" esac fi } done } } # func_skip_po_recommendation # --------------------------- # If there is a po directory, and '--skip-po' wasn't passed, let the # user know that they can use '--skip-po' on subsequent invocations. func_skip_po_recommendation () { $debug_cmd test ! -d po \ || $opt_skip_po \ || func_warning recommend "\ If your pofiles are up-to-date, you can rerun bootstrap as '$progname --skip-po' to avoid redownloading." } # func_update_dotversion # ---------------------- # Even with 'gitlog-to-changelog' generated ChangeLogs, automake # will not run to completion with no ChangeLog file. func_update_dotversion () { $debug_cmd test -f "$build_aux/git-version-gen" && { _G_message="updating .version" test -f .version && { mv .version .version~ func_append _G_message " (backup in .version~)" } func_verbose "updating .version" $build_aux/git-version-gen dummy-arg > .version } } ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Where a variable already has a non- # empty value (as set by the package's 'bootstrap.conf'), that value is # used in preference to deriving the default. Call them using their # associated 'require_*' variable to ensure that they are executed, at # most, once. # require_gnulib_git_submodules # ----------------------------- # Initialize all git modules from $gnulib_git_submodules before we # run 'gnulib-tool'. require_gnulib_git_submodules=func_require_gnulib_git_submodules func_require_gnulib_git_submodules () { test -n "$gnulib_git_submodules" && { for _G_submodule in $gnulib_git_submodules do func_show_eval "git submodule init -- $_G_submodule" \ && func_show_eval "git submodule update -- $_G_submodule" \ || func_fatal_error "Unable to init git module '$_G_submodule'." done } require_gnulib_git_submodules=: } # require_checkout_only_file # -------------------------- # Bail out if this package only bootstraps properly from a repository # checkout. require_checkout_only_file=func_require_checkout_only_file func_require_checkout_only_file () { $debug_cmd $opt_force || { test -n "$checkout_only_file" && test ! -f "$checkout_only_file" \ && func_fatal_error "\ Bootstrapping from a non-checked-out distribution is risky. If you wish to bootstrap anyway, use the '--force' option." } require_checkout_only_file=: } # require_aclocal_amflags # ----------------------- # Ensure '$aclocal_amflags' has a sensible default, extracted from # 'Makefile.am' if necessary. require_aclocal_amflags=func_require_aclocal_amflags func_require_aclocal_amflags () { $debug_cmd $require_makefile_am _G_sed_extract_aclocal_amflags='s|#.*$|| /^[ ]*ACLOCAL_AMFLAGS[ ]*=/ { s|^.*=[ ]*\(.*\)|aclocal_amflags="\1"| p }' _G_aclocal_flags_cmd=`$SED -n "$_G_sed_extract_aclocal_amflags" \ "$makefile_am"` eval "$_G_aclocal_flags_cmd" func_verbose "ACLOCAL_AMFLAGS='$aclocal_amflags'" require_aclocal_amflags=: } # require_autoheader # ------------------ # Skip autoheader if it's not needed. require_autoheader=func_require_autoheader func_require_autoheader () { $debug_cmd test true = "$AUTOHEADER" || { func_extract_trace AC_CONFIG_HEADERS test -n "$func_extract_trace_result" \ || func_extract_trace AC_CONFIG_HEADER test -n "$func_extract_trace_result" || { AUTOHEADER=true func_verbose "export AUTOHEADER='$AUTOHEADER'" # Make sure the search result is visible to subshells export AUTOHEADER } } require_autoheader=: } # require_automake_options # ------------------------ # Extract options from AM_AUTOMAKE_INIT. require_automake_options=func_require_automake_options func_require_automake_options () { $debug_cmd func_extract_trace AM_INIT_AUTOMAKE automake_options=$func_extract_trace_result require_automake_options=: } # require_autopoint # ----------------- # Skip autopoint if it's not needed. require_autopoint=func_require_autopoint func_require_autopoint () { $debug_cmd test true = "$AUTOPOINT" || { func_extract_trace AM_GNU_GETTEXT_VERSION test -n "$func_extract_trace_result" || { AUTOPOINT=true func_verbose "export AUTOPOINT='$AUTOPOINT'" # Make sure the search result is visible to subshells export AUTOPOINT } } require_autopoint=: } # require_bootstrap_uptodate # -------------------------- # Complain if the version of bootstrap in the gnulib directory differs # from the one we are running. require_bootstrap_uptodate=func_require_bootstrap_uptodate func_require_bootstrap_uptodate () { $debug_cmd $require_build_aux _G_bootstrap_sources=" $build_aux/bootstrap.in $build_aux/extract-trace $build_aux/funclib.sh $build_aux/options-parser " _G_missing_bootstrap_sources=false for _G_src in $_G_bootstrap_sources; do test -f "$_G_src" || _G_missing_bootstrap_sources=: done if $_G_missing_bootstrap_sources; then func_warning upgrade "\ Please add bootstrap to your gnulib_modules list in 'bootstrap.conf', so that I can tell you when there are updates available." else rm -f bootstrap.new $build_aux/inline-source $build_aux/bootstrap.in > bootstrap.new if func_cmp_s "$progpath" bootstrap.new; then rm -f bootstrap.new func_verbose "bootstrap script up to date" else chmod 555 bootstrap.new func_warning upgrade "\ An updated bootstrap script has been generated for you in 'bootstrap.new'. After you've verified that you want the changes, you can update with: mv -f bootstrap.new $progname ./$progname Or you can disable this check permanently by adding the following to 'bootstrap.conf': require_bootstrap_uptodate=:" fi fi require_bootstrap_uptodate=: } # require_build_aux # ----------------- # Ensure that '$build_aux' is set, and if it doesn't already point to an # existing directory, create one. require_build_aux=func_require_build_aux func_require_build_aux () { $debug_cmd test -n "$build_aux" || { func_extract_trace_first AC_CONFIG_AUX_DIR build_aux=$func_extract_trace_first_result func_check_configuration build_aux \ "AC_CONFIG_AUX_DIR([name of a directory for build scripts])" func_verbose "build_aux='$build_aux'" } $require_vc_ignore_files # If the build_aux directory doesn't exist, create it now, and mark it # as ignored for the VCS. if test ! -d "$build_aux"; then func_show_eval "mkdir '$build_aux'" test -n "$vc_ignore_files" \ || func_insert_if_absent "$build_aux" $vc_ignore_files fi require_build_aux=: } # require_buildreq_autobuild # -------------------------- # Try to find whether the bootstrap requires autobuild. require_buildreq_autobuild=func_require_buildreq_autobuild func_require_buildreq_autobuild () { $debug_cmd $require_macro_dir test -f "$macro_dir/autobuild.m4" \ || printf '%s\n' "$buildreq" |func_grep_q '^[ ]*autobuild' \ || { func_extract_trace AB_INIT test -n "$func_extract_trace_result" && { func_append buildreq 'autobuild - http://josefsson.org/autobuild/ ' func_verbose "auto-adding 'autobuild' to build requirements" } } require_buildreq_autobuild=: } # require_buildreq_autoconf # require_buildreq_autopoint # require_buildreq_libtoolize # --------------------------- # Try to find the minimum compatible version of autoconf/libtool # required to bootstrap successfully, and add it to '$buildreq'. for tool in autoconf libtoolize autopoint; do b=$tool v=require_buildreq_${tool} f=func_$v case $tool in autoconf) m=AC_PREREQ ;; libtoolize) m=LT_PREREQ; b=libtool ;; autopoint) m=AM_GNU_GETTEXT_VERSION b=gettext ;; esac eval $v'='$f' '$f' () { $debug_cmd # The following is ignored if undefined, but might be necessary # in order for `func_find_tool` to run. ${require_'$tool'-:} printf '\''%s\n'\'' "$buildreq" |func_grep_q '\''^[ ]*'$tool\'' || { func_extract_trace '$m' _G_version=$func_extract_trace_result test -n "$_G_version" && { func_append buildreq "\ '$tool' $_G_version https://www.gnu.org/s/'$b' " func_verbose \ "auto-adding '\'$tool'-$_G_version'\'' to build requirements" } } '$v'=: } ' done # require_buildreq_automake # ------------------------- # Try to find the minimum compatible version of automake required to # bootstrap successfully, and add it to '$buildreq'. require_buildreq_automake=func_require_buildreq_automake func_require_buildreq_automake () { $debug_cmd # if automake is not already listed in $buildreq... printf '%s\n' "$buildreq" |func_grep_q automake || { func_extract_trace AM_INIT_AUTOMAKE # ...and AM_INIT_AUTOMAKE is declared... test -n "$func_extract_trace_result" && { automake_version=`$ECHO "$func_extract_trace_result" \ |$SED -e 's|[^0-9]*||' -e 's| .*$||'` test -n "$automake_version" || automake_version=- func_append buildreq "\ automake $automake_version https://www.gnu.org/s/automake " func_verbose \ "auto-adding 'automake-$automake_version' to build requirements" } } require_buildreq_automake=: } # require_buildreq_patch # ---------------------- # Automatically add a patch build-requirement if there are diff files # in $local_gl_path. require_buildreq_patch=func_require_buildreq_patch func_require_buildreq_patch () { $debug_cmd $require_local_gl_path # This ensures PATCH is set appropriately by the time # func_check_versions enforces $buildreq. $require_patch # If patch is not already listed in $buildreq... printf '%s\n' "$buildreq" |func_grep_q '^[ ]*patch' || { eval "set dummy $local_gl_path_quoted" ; shift for _G_dir do # The ugly find invocation is necessary to exit with non-zero # status for old find binaries that don't support -exec fully. if test ! -d "$_G_dir" \ || find "$_G_dir" -name "*.diff" -exec false {} \; ; then : else func_append buildreq "patch - https://www.gnu.org/s/patch$nl" break fi done } require_buildreq_patch=: } # require_buildtools_uptodate # --------------------------- # Ensure all the packages listed in BUILDREQS are available on the build # machine at the minimum versions or better. require_buildtools_uptodate=func_require_buildtools_uptodate func_require_buildtools_uptodate () { $debug_cmd $require_buildreq_autobuild $require_buildreq_autoconf $require_buildreq_automake $require_buildreq_libtoolize $require_buildreq_autopoint $require_buildreq_patch test -n "$buildreq" && { _G_error_hdr= func_check_versions $buildreq $func_check_versions_result || { test -n "$buildreq_readme" \ && test -f "$buildreq_readme" \ && _G_error_hdr="\ $buildreq_readme explains how to obtain these prerequisite programs: " func_strtable 0 11 12 36 \ "Program" "Min_version" "Homepage" $buildreq func_fatal_error "$_G_error_hdr$func_strtable_result" } } require_buildtools_uptodate=: } # require_copyright_holder # ------------------------ # Ensure there is a sensible non-empty default value in '$copyright_holder'. require_copyright_holder=func_require_copyright_holder func_require_copyright_holder () { $debug_cmd test -n "$copyright_holder" || { copyright_holder='Free Software Foundation, Inc.' func_warning settings "\ Please set copyright_holder explicitly in 'bootstrap.conf'; defaulting to '$copyright_holder'." } require_copyright_holder=: } # require_doc_base # ---------------- # Ensure doc_base has a sensible value, extracted from 'gnulib-cache.m4' # if possible, otherwise letting 'gnulib-tool' pick a default. require_doc_base=func_require_doc_base func_require_doc_base () { $debug_cmd $require_gnulib_cache test -f "$gnulib_cache" && test -z "$doc_base" && { func_extract_trace_first "gl_DOC_BASE" "$gnulib_cache" doc_base=$func_extract_trace_first_result test -n "$doc_base" && func_verbose "doc_base='$doc_base'" } require_doc_base=: } # require_dotgitmodules # --------------------- # Ensure we have a '.gitmodules' file, with appropriate 'gnulib' settings. require_dotgitmodules=func_require_dotgitmodules func_require_dotgitmodules () { $debug_cmd $require_git test true = "$GIT" || { # A gnulib entry in .gitmodules always takes precedence. _G_path=`$GIT config --file .gitmodules submodule.gnulib.path 2>/dev/null` test -n "$_G_path" || { $require_vc_ignore_files func_verbose "creating '.gitmodules'" # If the .gitmodules file doesn't exist, create it now, and mark # it as ignored for the VCS. test -n "$gnulib_path" || gnulib_path=gnulib test -n "$gnulib_url" || gnulib_url=git://git.sv.gnu.org/gnulib { echo '[submodule "gnulib"]' echo " path = $gnulib_path" echo " url = $gnulib_url" } >> .gitmodules test -n "$vc_ignore_files" \ || func_insert_if_absent ".gitmodules" $vc_ignore_files } } require_dotgitmodules=: } # require_extra_locale_categories # ------------------------------- # Ensure there is a default value in '$extra_locale_categories' require_extra_locale_categories=func_require_extra_locale_categories func_require_extra_locale_categories () { $debug_cmd # Defaults to empty, so run with whatever value may have been set in # 'bootstrap.conf'. require_extra_locale_categories=: } # require_git # ----------- # Ignore git if it's not available, or we're not in a git checkout tree. require_git=func_require_git func_require_git () { $debug_cmd $opt_skip_git && GIT=true test true = "$GIT" || { if test -d .git/.; then ($GIT --version) >/dev/null 2>&1 || GIT=true fi } func_verbose "GIT='$GIT'" require_git=: } # require_gnulib_cache # -------------------- # Ensure there is a non-empty default for '$gnulib_cache', and that it # names an existing file. require_gnulib_cache=func_require_gnulib_cache func_require_gnulib_cache () { $debug_cmd $require_macro_dir test -n "$gnulib_cache" \ || gnulib_cache=$macro_dir/gnulib-cache.m4 func_verbose "found '$gnulib_cache'" require_gnulib_cache=: } # require_gnulib_copy_cmd # ----------------------- # Only calculate the options for copying files with gnulib once. require_gnulib_copy_cmd=func_require_gnulib_copy_cmd func_require_gnulib_copy_cmd () { $debug_cmd $require_gnulib_tool $require_gnulib_tool_base_options gnulib_copy_cmd="$gnulib_tool $gnulib_tool_base_options --copy-file" $opt_copy || func_append gnulib_copy_cmd " --symlink" $opt_quiet || func_append gnulib_copy_cmd " --verbose" require_gnulib_copy_cmd=: } # require_gnulib_merge_changelog # ------------------------------ # See if we can use gnulib's git-merge-changelog merge driver. require_gnulib_merge_changelog=func_require_gnulib_merge_changelog func_require_gnulib_merge_changelog () { $debug_cmd test -f ChangeLog && { $require_git func_grep_q '^\(/\|\)ChangeLog$' .gitignore || test true = "$GIT" || { if $GIT config merge.merge-changelog.driver >/dev/null; then : elif (git-merge-changelog --version) >/dev/null 2>&1; then func_echo "initializing git-merge-changelog driver" $GIT config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' $GIT config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' else func_warning recommend \ "Consider installing git-merge-changelog from gnulib." fi } } require_gnulib_merge_changelog=: } # require_gnulib_mk # ----------------- # Ensure gnulib_mk has a sensible value, extracted from 'gnulib-cache.m4' # if possible, otherwise letting 'gnulib-tool' pick a default. require_gnulib_mk=func_require_gnulib_mk func_require_gnulib_mk () { $debug_cmd $require_gnulib_cache test -f "$gnulib_cache" && test -z "$gnulib_mk" && { func_extract_trace_first "gl_MAKEFILE_NAME" "$gnulib_cache" gnulib_mk=$func_extract_trace_first_result test -n "$gnulib_mk" && func_verbose "gnulib_mk='$gnulib_mk'" } require_gnulib_mk=: } # require_gnulib_name # ------------------- # Ensure gnulib_name has a sensible value, extracted from 'gnulib-cache.m4' # if possible, otherwise letting 'gnulib-tool' pick a default. require_gnulib_name=func_require_gnulib_name func_require_gnulib_name () { $debug_cmd $require_gnulib_cache test -f "$gnulib_cache" && test -z "$gnulib_name" && { func_extract_trace_first "gl_LIB" "$gnulib_cache" gnulib_name=$func_extract_trace_first_result test -n "$gnulib_name" && func_verbose "gnulib_name='$gnulib_name'" } require_gnulib_name=: } # require_gnulib_path # require_gnulib_url # ------------------- # Ensure 'gnulib_path' and 'gnulib_url' are set. require_gnulib_path=func_require_dotgitmodules_parameters require_gnulib_url=func_require_dotgitmodules_parameters func_require_dotgitmodules_parameters () { $debug_cmd $require_git test true = "$GIT" && { # If we can't find git (or if the user specified '--skip-git'), # then use an existing gnulib directory specified with # '--gnulib-srcdir' if possible. test -n "$gnulib_path" \ || test ! -x "$opt_gnulib_srcdir/gnulib-tool" \ || gnulib_path=$opt_gnulib_srcdir } $require_dotgitmodules test -f .gitmodules && { # Extract the parameters with sed, since git may be missing test -n "$gnulib_path" \ || gnulib_path=`$SED -e '/^.submodule "gnulib".$/,${ /[ ]*path *= */{ s|[ ]*||g;s|^[^=]*=||;p } } d' .gitmodules |$SED 1q` test -n "$gnulib_url" \ || gnulib_url=`$SED -e '/^.submodule "gnulib".$/,${ /[ ]*url *= */{ s|[ ]*||g;s|^[^=]*=||;p } } d' .gitmodules |$SED 1q` func_verbose "gnulib_path='$gnulib_path'" func_verbose "gnulib_url='$gnulib_url'" } require_gnulib_path=: require_gnulib_url=: } # require_gnulib_submodule # ------------------------ # Ensure that there is a current gnulib submodule at '$gnulib_path'. require_gnulib_submodule=func_require_gnulib_submodule func_require_gnulib_submodule () { $debug_cmd $require_git if test true = "$GIT"; then func_warning recommend \ "No 'git' found; imported gnulib modules may be outdated." else $require_gnulib_path $require_gnulib_url if test -f .gitmodules && test -f "$gnulib_path/gnulib-tool"; then : All present and correct. elif test -n "$opt_gnulib_srcdir"; then # Older git can't clone into an empty directory. rmdir "$gnulib_path" 2>/dev/null func_show_eval "$GIT clone --reference '$opt_gnulib_srcdir' \ '$gnulib_url' '$gnulib_path'" \ || func_fatal_error "Unable to fetch gnulib submodule." # Without --gnulib-srcdir, and no existing checked out submodule, we # create a new shallow clone of the remote gnulib repository. else trap func_cleanup_gnulib 1 2 13 15 shallow= test -n "$gnulib_clone_since" && \ $GIT clone -h 2>&1 |func_grep_q -- --shallow-since \ && shallow="--shallow-since=$gnulib_clone_since" func_show_eval "$GIT clone $shallow '$gnulib_url' '$gnulib_path'" \ func_cleanup_gnulib # FIXME: Solaris /bin/sh will try to execute '-' if any of # these signals are caught after this. trap - 1 2 13 15 fi # Make sure we've checked out the correct revision of gnulib. func_show_eval "$GIT submodule init -- $gnulib_path" \ && func_show_eval "$GIT submodule update -- $gnulib_path" \ || func_fatal_error "Unable to update gnulib submodule." fi require_gnulib_submodule=: } # require_gnulib_tool # ------------------- # Ensure that '$gnulib_tool' is set, and points to an executable file, # or else fall back to using the binary 'true' if the main gnulib # files appear to have been imported already. require_gnulib_tool=func_require_gnulib_tool func_require_gnulib_tool () { $debug_cmd test true = "$gnulib_tool" || { $require_gnulib_submodule $require_gnulib_path test -n "$gnulib_tool" \ || gnulib_tool=$gnulib_path/gnulib-tool test -x "$gnulib_tool" || { gnulib_tool=true func_warning recommend \ "No 'gnulib-tool' found; gnulib modules may be missing." } test true = "$gnulib_tool" \ || func_verbose "found '$gnulib_tool'" } require_gnulib_tool=: } # require_gnulib_tool_base_options # -------------------------------- # Ensure that '$gnulib_tool_base_options' contains all the base options # required according to user configuration from bootstrap.conf. require_gnulib_tool_base_options=func_require_gnulib_tool_base_options func_require_gnulib_tool_base_options () { $debug_cmd $require_gnulib_tool gnulib_tool_base_options= test true = "$gnulib_tool" || { # 'gnulib_modules' and others are maintained in 'bootstrap.conf': # Use 'gnulib --import' to fetch gnulib modules. $require_build_aux test -n "$build_aux" \ && func_append_uniq gnulib_tool_base_options " --aux-dir=$build_aux" $require_macro_dir test -n "$macro_dir" \ && func_append_uniq gnulib_tool_base_options " --m4-base=$macro_dir" $require_doc_base test -n "$doc_base" \ && func_append_uniq gnulib_tool_base_options " --doc-base=$doc_base" $require_gnulib_name test -n "$gnulib_name" \ && func_append_uniq gnulib_tool_base_options " --lib=$gnulib_name" $require_local_gl_path test -n "$local_gl_path" && { eval "set dummy $local_gl_path_quoted" ; shift for _G_dir do func_append_uniq gnulib_tool_base_options " --local-dir=$_G_dir" done } $require_source_base test -n "$source_base" \ && func_append_uniq gnulib_tool_base_options " --source-base=$source_base" } require_gnulib_tool_base_options=: } # require_libtoolize # ------------------ # Skip libtoolize if it's not needed. require_libtoolize=func_require_libtoolize func_require_libtoolize () { $debug_cmd # Unless we're not searching for libtool use by this package, set # LIBTOOLIZE to true if none of 'LT_INIT', 'AC_PROG_LIBTOOL' and # 'AM_PROG_LIBTOOL' are used in configure. test true = "$LIBTOOLIZE" || { func_extract_trace LT_INIT test -n "$func_extract_trace_result" || func_extract_trace AC_PROG_LIBTOOL test -n "$func_extract_trace_result" || func_extract_trace AM_PROG_LIBTOOL test -n "$func_extract_trace_result" || LIBTOOLIZE=true } test -n "$LIBTOOLIZE" || { # Find libtoolize, named glibtoolize in Mac Ports, but prefer # user-installed libtoolize to ancient glibtoolize shipped by # Apple with Mac OS X when Mac Ports is not installed. func_find_tool LIBTOOLIZE libtoolize glibtoolize } test -n "$LIBTOOLIZE" || func_fatal_error "\ Please install GNU Libtool, or 'export LIBTOOLIZE=/path/to/libtoolize'." func_verbose "export LIBTOOLIZE='$LIBTOOLIZE'" # Make sure the search result is visible to subshells export LIBTOOLIZE require_libtoolize=: } # require_local_gl_path # --------------------- # Ensure local_gl_path has a sensible value, extracted from 'gnulib-cache.m4' if # possible, otherwise letting 'gnulib-tool' pick a default. require_local_gl_path=func_require_local_gl_path func_require_local_gl_path () { $debug_cmd $require_gnulib_cache # Compat with older bootstrap versions. test -n "$local_gl_dir" && { func_warning settings "\ Please use 'local_gl_path' instead of 'local_gl_dir' in your 'bootstrap.conf' file." local_gl_path=$local_gl_dir local_gl_dir= } test -f "$gnulib_cache" && test -z "$local_gl_path" && { func_extract_trace_first "gl_LOCAL_DIR" "$gnulib_cache" local_gl_path=$func_extract_trace_first_result test -n "$local_gl_path" && func_verbose "local_gl_path='$local_gl_path'" } test -z "$local_gl_path_quoted" && test -n "$local_gl_path" && { save_IFS=$IFS set dummy # Don't use PATH_SEPARATOR here, gnulib must be fixed to store only ':' as # path separator into gnulib-cache.m4 (consistency reasons among systems). IFS=: for _G_dir in $local_gl_path do set "$@" "$_G_dir" done shift IFS=$save_IFS func_quote eval "$@" local_gl_path_quoted=$func_quote_result } require_local_gl_path=: } # require_macro_dir # ----------------- # Ensure that '$macro_dir' is set, and if it doesn't already point to an # existing directory, create one. require_macro_dir=func_require_macro_dir func_require_macro_dir () { $debug_cmd # Sometimes this is stored in 'configure.ac'. test -n "$macro_dir" || { # AC_CONFIG_MACRO_DIRS takes a space delimited list of directories, # but we only care about the first one in bootstrap. func_extract_trace_first AC_CONFIG_MACRO_DIRS macro_dir=`expr "x$func_extract_trace_first_result" : 'x\([^ ]*\)'` } test -n "$macro_dir" || { func_extract_trace_first AC_CONFIG_MACRO_DIR macro_dir=$func_extract_trace_first_result } # Otherwise we might find it in 'Makefile.am'. test -n "$macro_dir" || { $require_aclocal_amflags # Take the argument following the first '-I', if any. _G_minus_I_seen=false for _G_arg in $aclocal_amflags; do case $_G_minus_I_seen,$_G_arg in :,*) macro_dir=$_G_arg; break ;; *,-I) _G_minus_I_seen=: ;; *,-I*) macro_dir=`expr x$_G_arg : 'x-I\(.*\)$'`; break ;; esac done } func_verbose "macro_dir='$macro_dir'" func_check_configuration macro_dir \ "AC_CONFIG_MACRO_DIRS([name of a directory for configure m4 files])" $require_vc_ignore_files # If the macro_dir directory doesn't exist, create it now, and mark it # as ignored for the VCS. if test ! -d "$macro_dir"; then mkdir "$macro_dir" || func_permissions_error "$macro_dir" test -n "$vc_ignore_files" \ || func_insert_if_absent "$macro_dir" $vc_ignore_files fi require_macro_dir=: } # require_makefile_am # ------------------- # Ensure there is a 'Makefile.am' in the current directory. require_makefile_am=func_require_makefile_am func_require_makefile_am () { $debug_cmd test -n "$makefile_am" \ || makefile_am=Makefile.am <"$makefile_am" func_verbose "found '$makefile_am'" require_makefile_am=: } # require_package # --------------- # Ensure that '$package' contains a sensible default value. require_package=func_require_package func_require_package () { $debug_cmd test -n "$package" || { $require_package_name package=`echo "$package_name" \ |$SED -e 's/GNU //' \ -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` } func_verbose "package='$package'" require_package=: } # require_package_bugreport # ------------------------- # Ensure that this has a sensible value, extracted from 'configure.ac' # if appropriate (and possible!). require_package_bugreport=func_require_package_bugreport func_require_package_bugreport () { $debug_cmd func_extract_trace AC_INIT save_ifs=$IFS IFS=: set dummy $func_extract_trace_result IFS=$save_ifs shift test -n "$package_bugreport" || package_bugreport=$3 func_check_configuration package_bugreport \ "AC_INIT([$package_name], [$package_version], [bug-$package@gnu.org])" func_verbose "package_bugreport='$package_bugreport'" require_package_bugreport=: } # require_package_name # -------------------- # Ensure that this has a sensible value, extracted from 'configure.ac' # if appropriate (and possible!). require_package_name=func_require_package_name func_require_package_name () { $debug_cmd func_extract_trace AC_INIT save_ifs=$IFS IFS=: set dummy $func_extract_trace_result IFS=$save_ifs shift test -n "$package_name" || package_name=$1 func_check_configuration package_name \ "AC_INIT([name of your package], [package version number])" func_verbose "package_name='$package_name'" require_package_name=: } # require_package_version # ----------------------- # Ensure that this has a sensible value, extracted from 'configure.ac' # if appropriate (and possible!). While we might have set all the # parameters extracted from AC_INIT at once, 'package_version' in # particular is not necessarily available as early as the others, since # 'git-version-gen' is often involved, and until then we can't rely on # getting a correct version number from an AC_INIT extraction. require_package_version=func_require_package_version func_require_package_version () { $debug_cmd func_extract_trace AC_INIT save_ifs=$IFS IFS=: set dummy $func_extract_trace_result IFS=$save_ifs shift test -n "$package_version" || package_version=$2 test -n "$package_version" || { # The embedded echo is to squash whitespace before globbing. case " "`echo $gnulib_modules`" " in *" git-version-gen "*) func_fatal_error "\ cannot \$require_package_version in bootstrap.conf before func_gnulib_tool has installed the 'git-version-gen' script." ;; *) func_check_configuration package_version \ "AC_INIT([name of your package], [package version number])" ;; esac } func_verbose "package_version='$package_version'" require_package_version=: } # require_patch # ------------- # Find patch, according to the PATCH environment variable, or else # searching the user's PATH. require_patch=func_require_patch func_require_patch () { $debug_cmd test -n "$PATCH" || { # Find a patch program, preferring gpatch, which is usually better # than the vendor patch. func_find_tool PATCH gpatch patch } test -n "$PATCH" || func_fatal_error "\ Please install GNU Patch, or 'export PATCH=/path/to/gnu/patch'." func_verbose "export PATCH='$PATCH'" # Make sure the search result is visible to subshells export PATCH require_patch=: } # require_source_base # ------------------- # Ensure that source_base has a sensible value, extracted from # 'gnulib-cache.m4' if possible. require_source_base=func_require_source_base func_require_source_base () { $debug_cmd $require_gnulib_cache test -f "$gnulib_cache" && test -z "$source_base" && { func_extract_trace_first "gl_SOURCE_BASE" "$gnulib_cache" source_base=$func_extract_trace_first_result func_verbose "source_base='$source_base'" } require_source_base=: } # require_vc_ignore_files # ----------------------- # Ensure that '$vc_ignore' has been processed to list VCS ignore files # in '$vc_ignore_files' require_vc_ignore_files=func_require_vc_ignore_files func_require_vc_ignore_files () { $debug_cmd test -n "$vc_ignore" || vc_ignore=auto if test auto = "$vc_ignore" && test -z "$vc_ignore_files"; then vc_ignore_files= test -d .git && vc_ignore_files=.gitignore test -d CVS && vc_ignore_files="$vc_ignore_files .cvsignore" else vc_ignore_files=$vc_ignore fi func_verbose "vc_ignore_files='$vc_ignore_files'" require_vc_ignore_files=: } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of 'bootstrap'. # func_len STRING # --------------- # STRING may not start with a hyphen. if (eval 'x=123; test x${#x} = "x3"') 2>/dev/null then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_len () { $debug_cmd func_len_result=${#1} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo 0` } fi # func_cmp_s FILE1 FILE2 # ---------------------- # Return non-zero exit status unless FILE1 and FILE2 are identical, without # any output at all, even error messages. func_cmp_s () { $debug_cmd # This function relies on non-zero exit status, which will cause the # program to exit when running in 'set -e' mode. $CMP "$@" >/dev/null 2>&1 } # func_grep_q EXPRESSION [FILENAME..] # ----------------------------------- # Check whether EXPRESSION matches any line of any listed FILENAME, # without any output at all, even error messages. func_grep_q () { $debug_cmd # This function relies on non-zero exit status, which will cause the # program to exit when running in 'set -e' mode. $GREP "$@" >/dev/null 2>&1 } # func_ifcontains LIST MEMBER YES-CMD [NO-CMD] # -------------------------------------------- # If whitespace-separated LIST contains MEMBER then execute YES-CMD, # otherwise if NO-CMD was given, execute that. func_ifcontains () { $debug_cmd _G_wslist=$1 _G_member=$2 _G_yes_cmd=$3 _G_no_cmd=${4-":"} _G_found=false for _G_item in $_G_wslist; do test "x$_G_item" = "x$_G_member" && { _G_found=: break } done if $_G_found; then eval "$_G_yes_cmd" _G_status=$? else eval "$_G_no_cmd" _G_status=$? fi test 0 -eq "$_G_status" || exit $_G_status } # func_strpad STR WIDTH CHAR # -------------------------- # Trim STR, or pad with CHAR to force a total length of WIDTH. func_strpad () { $debug_cmd _G_width=`expr "$2" - 1` func_strpad_result=`$ECHO "$1" |$SED ' :a s|^.\{0,'"$_G_width"'\}$|&'"$3"'| ta '` } # func_strrpad STR WIDTH CHAR # --------------------------- # Trim STR, or right-justify-pad with CHAR to force a total length of # WIDTH. func_strrpad () { $debug_cmd _G_width=`expr "$2" - 1` func_strrpad_result=`$ECHO "$1" |$SED ' :a s|^.\{0,'"$_G_width"'\}$|'"$3"'&| ta '` } # func_strrow INDENT FIELD WIDTH [FIELDn WIDTHn]... # ------------------------------------------------- # Return a string containing each FIELD left justified to WIDTH, with # the whole thing indented by INDENT spaces. This function is used to # render one row of aligned columns for a table by func_strtable(). func_strrow () { $debug_cmd func_strrow_linelen=$1; shift _G_row= while test $# -gt 0; do func_strrow_linelen=`expr $func_strrow_linelen + $2` func_strpad "$1" $2 " " func_append _G_row "$func_strpad_result" shift; shift done func_strrpad "$_G_row" $func_strrow_linelen " " func_strrow_result=$func_strrpad_result } # func_strtable INDENT WIDTH1...WIDTHn HEADER1...HEADERn FIELD1...FIELDn # ---------------------------------------------------------------------- # Generate a string of newline-separated rows arranged in lined-up # columns of the given WIDTHs, with the entire table indented by INDENT # spaces. The number of columns is determined by the number of integer # valued WIDTH arguments following INDENT. The next set (i.e. a number # of arguments equal to the number of WIDTH arguments) of fields are # treated as the table's column HEADERs, and are separated from the # remainder of the table by an indented row of '-' characters. Remaining # arguments are each aligned below the next available header, wrapping # to a new row as necessary. Finally another row of '-' characters is # added to mark the end of the table. # # For example an unindented 3 column table with 2 rows of data would be # generated by this call: # # func_strtable 3 20 10 25 \ # Header1 Header2 Header3 \ # Row1Col1 Row1Col2 Row1Col3 \ # Row2Col1 Row2Col2 Row2Col3 # # returning the following string: # # " Header1 Header2 Header3 # ------------------------------------------------------- # Row1Col1 Row1Col2 Row1Col3 # Row2Col1 Row2Col2 Row2Col3 # -------------------------------------------------------" func_strtable () { $debug_cmd # Save the indent value, we'll need it for each row we render. _G_indent=$1; shift # Collect remaining numeric args into a list for reuse between # members of each row when we call func_strrow later. _G_widths=$1; shift while test 0 -lt `expr "$1" : '[1-9][0-9]*$'`; do func_append _G_widths " $1"; shift done # Extract the same number of positional parameters as there are # width elements - we'll do the header rows separately so that # we can insert a divider line. _G_header=$_G_indent for _G_width in $_G_widths; do func_append _G_header " $1 $_G_width"; shift done func_strrow $_G_header # Strip off the indent, and make a divider with '-' chars, then # reindent. _G_divider=`$ECHO "$func_strrow_result" \ |$SED 's|[^ ]|-|g :a s|- |--|g ta '` # Append the header and divider to the running result. func_append func_strtable_result "\ $func_strrow_result $_G_divider " # The remaining rows are zipped between the width values we # unwound earlier just like the header row above. while test $# -gt 0; do _G_row=$_G_indent for _G_width in $_G_widths; do func_append _G_row " $1 $_G_width"; shift done func_strrow $_G_row func_append func_strtable_result "\ $func_strrow_result " done # Mark the end of the table with a final divider line. func_append func_strtable_result "$_G_divider" } # func_internal_error ARG... # -------------------------- # Echo program name prefixed message to standard error, and exit. func_internal_error () { func_fatal_error "\ INTERNAL: " ${1+"$@"} " Please report this bug to 'bug-gnulib@gnu.org' in as much detail as possible." } # func_permissions_error FILE-OR-DIRECTORY # ---------------------------------------- # Echo program name prefixed permissions error message to standard # error, and exit. func_permissions_error () { $debug_cmd func_fatal_error "Failed to create '$1', check permissions." } # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd $require_term_colors _G_cmd=$1 _G_fail_exp=${2-':'} ${opt_silent-'false'} || { func_quote eval $_G_cmd eval func_truncate_cmd $func_quote_result func_echo "running: $tc_bold$func_truncate_cmd_result$tc_reset" } ${opt_dry_run-'false'} || { eval "$_G_cmd" _G_status=$? test 0 -eq "$_G_status" || eval "(exit $_G_status); $_G_fail_exp" } } # func_truncate_cmd CMD [ARG]... # ------------------------------ # For unreasonably long commands (such as a gnulib-tool invocation with # the full module list for import), truncate CMD after the second non- # option ARG. func_truncate_cmd () { $debug_cmd _G_last_arg_opt_p=false func_truncate_cmd_result= set dummy "$@"; shift while test $# -gt 0; do _G_opt=$1; shift test -n "$func_truncate_cmd_result" \ && func_append func_truncate_cmd_result ' ' func_append func_truncate_cmd_result "$_G_opt" func_len "x$func_truncate_cmd_result" case $_G_opt in -*) _G_last_arg_opt_p=: ;; *) $_G_last_arg_opt_p \ || test "$min_cmd_len" -gt "$func_len_result" \ || break _G_last_arg_opt_p=false ;; esac done test $# -gt 0 && func_append func_truncate_cmd_result "..." } # func_gitignore_entries FILE... # ------------------------------ # Strip blank and comment lines to leave significant entries. func_gitignore_entries () { $debug_cmd $SED -e '/^#/d' -e '/^$/d' "$@" } # func_insert_if_absent STR FILE... # --------------------------------- # If $STR is not already on a line by itself in $FILE, insert it, at the # start. Entries are inserted at the start of the ignore list to ensure # existing entries starting with ! are not overridden. Such entries # support whilelisting exceptions after a more generic blacklist pattern. # sorting the new contents of the file and replacing $FILE with the result. func_insert_if_absent () { $debug_cmd str=$1 shift for file do test -f "$file" || touch "$file" duplicate_entries=`func_gitignore_entries "$file" |sort |uniq -d` test -n "$duplicate_entries" \ && func_error "duplicate entries in $file: " $duplicate_entries func_grep_q "^$str\$" "$file" \ || func_verbose "inserting '$str' into '$file'" linesold=`func_gitignore_entries "$file" |wc -l` linesnew=`{ $ECHO "$str"; cat "$file"; } \ |func_gitignore_entries |sort -u |wc -l` test "$linesold" -eq "$linesnew" \ || { $SED "1i\\$nl$str$nl" "$file" >"$file"T && mv "$file"T "$file"; } \ || func_permissions_error "$file" done } # func_get_version APP # -------------------- # echo the version number (if any) of APP, which is looked up along your # PATH. func_get_version () { $debug_cmd _G_app=$1 # Rather than uncomment the sed script in-situ, strip the comments # programatically before passing the result to $SED for evaluation. sed_get_version=`$ECHO '# extract version within line s|.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*|\1| t done # extract version at start of line s|^\([0-9]\{1,\}\.[.a-z0-9-]*\).*|\1| t done d :done # the following essentially does s|5.005|5.5| s|\.0*\([1-9]\)|.\1|g p q' \ |$SED '/^[ ]*#.*$/d'` func_tool_version_output $_G_app >/dev/null _G_status=$? test 0 -ne "$_G_status" \ || $_G_app --version 2>&1 |$SED -n "$sed_get_version" (exit $_G_status) } # func_check_tool APP # ------------------- # Search PATH for an executable at APP. func_check_tool () { $debug_cmd func_check_tool_result= case $1 in *[\\/]*) test -x "$1" && func_check_tool_result=$1 ;; *) save_IFS=$IFS IFS=${PATH_SEPARATOR-:} for _G_check_tool_path in $PATH; do IFS=$save_IFS if test -x "$_G_check_tool_path/$1"; then func_check_tool_result=$_G_check_tool_path/$1 break fi done IFS=$save_IFS ;; esac } # func_check_versions APP1 VER1 URL1 ...[APPN VERN URLN] # ------------------------------------------------------ func_check_versions () { $debug_cmd func_check_versions_result=: while test $# -gt 0; do _G_app=$1; shift _G_reqver=$1; shift _G_url=$1; shift # Diagnose bad buildreq formatting. case $_G_url in [a-z]*://*) ;; # looks like a url *) func_fatal_error "\ '$_G_url' from the buildreq table in 'bootstrap.conf' does not look like the URL for downloading $_G_app. Please ensure that buildreq is a strict newline delimited list of triples; 'program min-version url'." ;; esac # Honor $APP variables ($TAR, $AUTOCONF, etc.) _G_appvar=`echo $_G_app |tr '[a-z]' '[A-Z]'` test TAR = "$_G_appvar" && _G_appvar=AMTAR eval "_G_app=\${$_G_appvar-$_G_app}" # Fail if no version specified, but the program can't be found. if test x- = "x$_G_reqver"; then func_check_tool $_G_app if test -z "$func_check_tool_result"; then func_error "Prerequisite '$_G_app' not not found. Please install it, or 'export $_G_appvar=/path/to/$_G_app'." func_check_versions_result=false else func_verbose "found '$func_check_tool_result' for $_G_appvar." fi else _G_instver=`func_get_version $_G_app` # Fail if --version didn't work. if test -z "$_G_instver"; then func_error "Prerequisite '$_G_app' not found. Please install it, or 'export $_G_appvar=/path/to/$_G_app'." func_check_versions_result=false # Fail if a newer version than what we have is required. else func_verbose "found '$_G_app' version $_G_instver." case $_G_reqver in =*) # If $buildreq version starts with '=', version must # match the installed program exactly. test "x$_G_reqver" = "x=$_G_instver" || { func_error "\ '$_G_app' version == $_G_instver is too old 'exactly $_G_app-$_G_reqver is required" func_check_versions_result=false } ;; *) # Otherwise, anything that is not older is a match. func_lt_ver "$_G_reqver" "$_G_instver" || { func_error "\ '$_G_app' version == $_G_instver is too old '$_G_app' version >= $_G_reqver is required" func_check_versions_result=false } ;; esac fi fi done } # func_cleanup_gnulib # ------------------- # Recursively delete everything below the path in the global variable # GNULIB_PATH. func_cleanup_gnulib () { $debug_cmd _G_status=$? $RM -fr "$gnulib_path" exit $_G_status } # func_download_po_files SUBDIR DOMAIN # ------------------------------------ func_download_po_files () { $debug_cmd func_echo "getting translations into $1 for $2..." _G_cmd=`printf "$po_download_command_format" "$2" "$1"` eval "$_G_cmd" } # func_update_po_files PO_DIR DOMAIN # ---------------------------------- # Mirror .po files to $po_dir/.reference and copy only the new # or modified ones into $po_dir. Also update $po_dir/LINGUAS. # Note po files that exist locally only are left in $po_dir but will # not be included in LINGUAS and hence will not be distributed. func_update_po_files () { $debug_cmd # Directory containing primary .po files. # Overwrite them only when we're sure a .po file is new. _G_po_dir=$1 _G_domain=$2 # Mirror *.po files into this dir. # Usually contains *.s1 checksum files. _G_ref_po_dir=$_G_po_dir/.reference test -d "$_G_ref_po_dir" || mkdir $_G_ref_po_dir || return func_download_po_files $_G_ref_po_dir $_G_domain \ && ls "$_G_ref_po_dir"/*.po 2>/dev/null \ |$SED -e 's|.*/||' -e 's|\.po$||' > "$_G_po_dir/LINGUAS" || return # Find sha1sum, named gsha1sum on MacPorts, and shasum on MacOS 10.6+. func_find_tool SHA1SUM sha1sum gsha1sum shasum sha1 test -n "$SHA1SUM" || func_fatal_error "\ Please install GNU Coreutils, or 'export SHA1SUM=/path/to/sha1sum'." _G_langs=`cd $_G_ref_po_dir && echo *.po|$SED 's|\.po||g'` test '*' = "$_G_langs" && _G_langs=x for _G_po in $_G_langs; do case $_G_po in x) continue;; esac _G_new_po=$_G_ref_po_dir/$_G_po.po _G_cksum_file=$_G_ref_po_dir/$_G_po.s1 if ! test -f "$_G_cksum_file" || ! test -f "$_G_po_dir/$_G_po.po" || ! $SHA1SUM -c "$_G_cksum_file" \ < "$_G_new_po" > /dev/null; then echo "updated $_G_po_dir/$_G_po.po..." cp "$_G_new_po" "$_G_po_dir/$_G_po.po" \ && $SHA1SUM < "$_G_new_po" > "$_G_cksum_file" || return fi done } ## --------------- ## ## Option parsing. ## ## --------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]...' # Short help message in response to '-h'. Add to this in 'bootstrap.conf' # if you accept any additional options. usage_message="Common Bootstrap Options: -c, --copy copy files instead of creating symbolic links. --debug enable verbose shell tracing -n, --dry-run print commands rather than running them -f, --force attempt to bootstrap even if the sources seem not to have been checked out. --gnulib-srcdir=DIRNAME specify a local directory where gnulib sources reside. Use this if you already have the gnulib sources on your machine, and don't want to waste your bandwidth downloading them again. Defaults to \$GNULIB_SRCDIR. --no-warnings equivalent to '-Wnone' --skip-git do not fetch files from remote repositories --skip-po do not download po files. -v, --verbose verbosely report processing --version print version information and exit -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=$long_help_message" 'recommend' show warnings about missing recommended packages 'settings' show warnings about missing '$progname.conf' settings 'upgrade' show warnings about out-dated files If the file '$progname.conf' exists in the same directory as this script, its contents are read as shell variables to configure the bootstrap. For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR are honored. Running without arguments will suffice in most cases. " # Warning categories used by 'bootstrap', append others if you use them # in your 'bootstrap.conf'. warning_categories='recommend settings upgrade' # bootstrap_options_prep [ARG]... # ------------------------------- # Preparation for options parsed by Bootstrap. bootstrap_options_prep () { $debug_cmd # Option defaults: opt_copy=${copy-'false'} opt_dry_run=false opt_force=false opt_gnulib_srcdir=$GNULIB_SRCDIR opt_skip_git=false opt_skip_po=false # Pass back the list of options we consumed. func_quote eval ${1+"$@"} bootstrap_options_prep_result=$func_quote_result } func_add_hook func_options_prep bootstrap_options_prep # bootstrap_parse_options [ARG]... # -------------------------------- # Provide handling for Bootstrap specific options. bootstrap_parse_options () { $debug_cmd # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --copy|-c) opt_copy=: ;; --force|-f) opt_force=: ;; --gnulib-srcdir) test $# = 0 && func_missing_arg $_G_opt && break opt_gnulib_srcdir=$1 shift ;; --skip-git|--no-git) opt_skip_git=: ;; --skip-po|--no-po) opt_skip_po=: ;; # Separate non-argument short options: -c*|-f*|-n*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote eval ${1+"$@"} bootstrap_parse_options_result=$func_quote_result } func_add_hook func_parse_options bootstrap_parse_options # bootstrap_validate_options [ARG]... # ----------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. bootstrap_validate_options () { $debug_cmd # Validate options. test $# -gt 0 \ && func_fatal_help "too many arguments" # Pass back the (empty) list of unconsumed options. func_quote eval ${1+"$@"} bootstrap_validate_options_result=$func_quote_result } func_add_hook func_validate_options bootstrap_validate_options ## -------------------------------------------------- ## ## Source package customisations in 'bootstrap.conf'. ## ## -------------------------------------------------- ## # Override the default configuration, if necessary. # Make sure that bootstrap.conf is sourced from the current directory # if we were invoked as "sh bootstrap". case $0 in */*) test -r "$0.conf" && . "$0.conf" ;; *) test -r "$0.conf" && . ./"$0.conf" ;; esac ## ------------------------------- ## ## Actually perform the bootstrap. ## ## ------------------------------- ## func_bootstrap ${1+"$@"} # The End. exit ${exit_status-$EXIT_SUCCESS} # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "500/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: a2ps-4.15.5/build-aux/compile0000754000000000000000000001635014424520614012620 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN* | MSYS*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: a2ps-4.15.5/build-aux/config.guess0000754000000000000000000014142214374751113013565 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2023 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2023-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi # Just in case it came from the environment. GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. tmp= # shellcheck disable=SC2172 trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 set_cc_for_build() { # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" # shellcheck disable=SC2039,SC3028 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break fi done if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac } # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case $UNAME_SYSTEM in Linux|GNU|GNU/*) LIBC=unknown set_cc_for_build cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu #else #include /* First heuristic to detect musl libc. */ #ifdef __DEFINED_va_list LIBC=musl #endif #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" # Second heuristic to detect musl libc. if [ "$LIBC" = unknown ] && command -v ldd >/dev/null && ldd --version 2>&1 | grep -q ^musl; then LIBC=musl fi # If the system lacks a compiler, then just pick glibc. # We could probably try harder. if [ "$LIBC" = unknown ]; then LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case $UNAME_VERSION in Debian*) release='-gnu' ;; *) release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. GUESS=$machine-${os}${release}${abi-} ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE ;; *:SecBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE ;; *:MidnightBSD:*:*) GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE ;; *:ekkoBSD:*:*) GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE ;; *:SolidBSD:*:*) GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE ;; *:OS108:*:*) GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE ;; macppc:MirBSD:*:*) GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE ;; *:MirBSD:*:*) GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE ;; *:Sortix:*:*) GUESS=$UNAME_MACHINE-unknown-sortix ;; *:Twizzler:*:*) GUESS=$UNAME_MACHINE-unknown-twizzler ;; *:Redox:*:*) GUESS=$UNAME_MACHINE-unknown-redox ;; mips:OSF1:*.*) GUESS=mips-dec-osf1 ;; alpha:OSF1:*:*) # Reset EXIT trap before exiting to avoid spurious non-zero exit code. trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` GUESS=$UNAME_MACHINE-dec-osf$OSF_REL ;; Amiga*:UNIX_System_V:4.0:*) GUESS=m68k-unknown-sysv4 ;; *:[Aa]miga[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-amigaos ;; *:[Mm]orph[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-morphos ;; *:OS/390:*:*) GUESS=i370-ibm-openedition ;; *:z/VM:*:*) GUESS=s390-ibm-zvmoe ;; *:OS400:*:*) GUESS=powerpc-ibm-os400 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) GUESS=arm-acorn-riscix$UNAME_RELEASE ;; arm*:riscos:*:*|arm*:RISCOS:*:*) GUESS=arm-unknown-riscos ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) GUESS=hppa1.1-hitachi-hiuxmpp ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. case `(/bin/universe) 2>/dev/null` in att) GUESS=pyramid-pyramid-sysv3 ;; *) GUESS=pyramid-pyramid-bsd ;; esac ;; NILE*:*:*:dcosx) GUESS=pyramid-pyramid-svr4 ;; DRS?6000:unix:4.0:6*) GUESS=sparc-icl-nx6 ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) GUESS=sparc-icl-nx7 ;; esac ;; s390x:SunOS:*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL ;; sun4H:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-hal-solaris2$SUN_REL ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris2$SUN_REL ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) GUESS=i386-pc-auroraux$UNAME_RELEASE ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$SUN_ARCH-pc-solaris2$SUN_REL ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris3$SUN_REL ;; sun4*:SunOS:*:*) case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;; sun3*:SunOS:*:*) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case `/bin/arch` in sun3) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac ;; aushp:SunOS:*:*) GUESS=sparc-auspex-sunos$UNAME_RELEASE ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) GUESS=m68k-milan-mint$UNAME_RELEASE ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) GUESS=m68k-hades-mint$UNAME_RELEASE ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) GUESS=m68k-unknown-mint$UNAME_RELEASE ;; m68k:machten:*:*) GUESS=m68k-apple-machten$UNAME_RELEASE ;; powerpc:machten:*:*) GUESS=powerpc-apple-machten$UNAME_RELEASE ;; RISC*:Mach:*:*) GUESS=mips-dec-mach_bsd4.3 ;; RISC*:ULTRIX:*:*) GUESS=mips-dec-ultrix$UNAME_RELEASE ;; VAX*:ULTRIX*:*:*) GUESS=vax-dec-ultrix$UNAME_RELEASE ;; 2020:CLIX:*:* | 2430:CLIX:*:*) GUESS=clipper-intergraph-clix$UNAME_RELEASE ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } GUESS=mips-mips-riscos$UNAME_RELEASE ;; Motorola:PowerMAX_OS:*:*) GUESS=powerpc-motorola-powermax ;; Motorola:*:4.3:PL8-*) GUESS=powerpc-harris-powermax ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) GUESS=powerpc-harris-powermax ;; Night_Hawk:Power_UNIX:*:*) GUESS=powerpc-harris-powerunix ;; m88k:CX/UX:7*:*) GUESS=m88k-harris-cxux7 ;; m88k:*:4*:R4*) GUESS=m88k-motorola-sysv4 ;; m88k:*:3*:R3*) GUESS=m88k-motorola-sysv3 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ test "$TARGET_BINARY_INTERFACE"x = x then GUESS=m88k-dg-dgux$UNAME_RELEASE else GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else GUESS=i586-dg-dgux$UNAME_RELEASE fi ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) GUESS=m88k-dolphin-sysv3 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 GUESS=m88k-motorola-sysv3 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) GUESS=m88k-tektronix-sysv3 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) GUESS=m68k-tektronix-bsd ;; *:IRIX*:*:*) IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` GUESS=mips-sgi-irix$IRIX_REL ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) GUESS=i386-ibm-aix ;; ia64:AIX:*:*) if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then GUESS=$SYSTEM_NAME else GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then GUESS=rs6000-ibm-aix3.2.4 else GUESS=rs6000-ibm-aix3.2 fi ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if test -x /usr/bin/lslpp ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$IBM_ARCH-ibm-aix$IBM_REV ;; *:AIX:*:*) GUESS=rs6000-ibm-aix ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) GUESS=romp-ibm-bsd4.4 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) GUESS=rs6000-bull-bosx ;; DPX/2?00:B.O.S.:*:*) GUESS=m68k-bull-sysv3 ;; 9000/[34]??:4.3bsd:1.*:*) GUESS=m68k-hp-bsd ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) GUESS=m68k-hp-bsd4.4 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if test "$HP_ARCH" = ""; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if test "$HP_ARCH" = hppa2.0w then set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi GUESS=$HP_ARCH-hp-hpux$HPUX_REV ;; ia64:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` GUESS=ia64-hp-hpux$HPUX_REV ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } GUESS=unknown-hitachi-hiuxwe2 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) GUESS=hppa1.1-hp-bsd ;; 9000/8??:4.3bsd:*:*) GUESS=hppa1.0-hp-bsd ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) GUESS=hppa1.0-hp-mpeix ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) GUESS=hppa1.1-hp-osf ;; hp8??:OSF1:*:*) GUESS=hppa1.0-hp-osf ;; i*86:OSF1:*:*) if test -x /usr/sbin/sysversion ; then GUESS=$UNAME_MACHINE-unknown-osf1mk else GUESS=$UNAME_MACHINE-unknown-osf1 fi ;; parisc*:Lites*:*:*) GUESS=hppa1.1-hp-lites ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) GUESS=c1-convex-bsd ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) GUESS=c34-convex-bsd ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) GUESS=c38-convex-bsd ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) GUESS=c4-convex-bsd ;; CRAY*Y-MP:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=ymp-cray-unicos$CRAY_REL ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=t90-cray-unicos$CRAY_REL ;; CRAY*T3E:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=alphaev5-cray-unicosmk$CRAY_REL ;; CRAY*SV1:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=sv1-cray-unicos$CRAY_REL ;; *:UNICOS/mp:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=craynv-cray-unicosmp$CRAY_REL ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE ;; sparc*:BSD/OS:*:*) GUESS=sparc-unknown-bsdi$UNAME_RELEASE ;; *:BSD/OS:*:*) GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE ;; arm:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi else FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf fi ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL ;; i*:CYGWIN*:*) GUESS=$UNAME_MACHINE-pc-cygwin ;; *:MINGW64*:*) GUESS=$UNAME_MACHINE-pc-mingw64 ;; *:MINGW*:*) GUESS=$UNAME_MACHINE-pc-mingw32 ;; *:MSYS*:*) GUESS=$UNAME_MACHINE-pc-msys ;; i*:PW*:*) GUESS=$UNAME_MACHINE-pc-pw32 ;; *:SerenityOS:*:*) GUESS=$UNAME_MACHINE-pc-serenity ;; *:Interix*:*) case $UNAME_MACHINE in x86) GUESS=i586-pc-interix$UNAME_RELEASE ;; authenticamd | genuineintel | EM64T) GUESS=x86_64-unknown-interix$UNAME_RELEASE ;; IA64) GUESS=ia64-unknown-interix$UNAME_RELEASE ;; esac ;; i*:UWIN*:*) GUESS=$UNAME_MACHINE-pc-uwin ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) GUESS=x86_64-pc-cygwin ;; prep*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=powerpcle-unknown-solaris2$SUN_REL ;; *:GNU:*:*) # the GNU system GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL ;; *:GNU/*:*:*) # other systems with GNU libc and userland GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) GUESS="$UNAME_MACHINE-pc-managarm-mlibc" ;; *:[Mm]anagarm:*:*) GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi ;; avr32*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; cris:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; crisv32:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; e2k:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; frv:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; hexagon:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:Linux:*:*) GUESS=$UNAME_MACHINE-pc-linux-$LIBC ;; ia64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; loongarch32:Linux:*:* | loongarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m68*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build IS_GLIBC=0 test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef mips #undef mipsel #undef mips64 #undef mips64el #if ${IS_GLIBC} && defined(_ABI64) LIBCABI=gnuabi64 #else #if ${IS_GLIBC} && defined(_ABIN32) LIBCABI=gnuabin32 #else LIBCABI=${LIBC} #endif #endif #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa64r6 #else #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa32r6 #else #if defined(__mips64) CPU=mips64 #else CPU=mips #endif #endif #endif #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) MIPS_ENDIAN= #else MIPS_ENDIAN= #endif #endif EOF cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` eval "$cc_set_vars" test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; openrisc*:Linux:*:*) GUESS=or1k-unknown-linux-$LIBC ;; or32:Linux:*:* | or1k*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; padre:Linux:*:*) GUESS=sparc-unknown-linux-$LIBC ;; parisc64:Linux:*:* | hppa64:Linux:*:*) GUESS=hppa64-unknown-linux-$LIBC ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; *) GUESS=hppa-unknown-linux-$LIBC ;; esac ;; ppc64:Linux:*:*) GUESS=powerpc64-unknown-linux-$LIBC ;; ppc:Linux:*:*) GUESS=powerpc-unknown-linux-$LIBC ;; ppc64le:Linux:*:*) GUESS=powerpc64le-unknown-linux-$LIBC ;; ppcle:Linux:*:*) GUESS=powerpcle-unknown-linux-$LIBC ;; riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; s390:Linux:*:* | s390x:Linux:*:*) GUESS=$UNAME_MACHINE-ibm-linux-$LIBC ;; sh64*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sh*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sparc:Linux:*:* | sparc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; tile*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; vax:Linux:*:*) GUESS=$UNAME_MACHINE-dec-linux-$LIBC ;; x86_64:Linux:*:*) set_cc_for_build CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then ABI=64 sed 's/^ //' << EOF > "$dummy.c" #ifdef __i386__ ABI=x86 #else #ifdef __ILP32__ ABI=x32 #endif #endif EOF cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` eval "$cc_set_abi" case $ABI in x86) CPU=i686 ;; x32) LIBCABI=${LIBC}x32 ;; esac fi GUESS=$CPU-pc-linux-$LIBCABI ;; xtensa*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. GUESS=i386-sequent-sysv4 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;; i*86:XTS-300:*:STOP) GUESS=$UNAME_MACHINE-unknown-stop ;; i*86:atheos:*:*) GUESS=$UNAME_MACHINE-unknown-atheos ;; i*86:syllable:*:*) GUESS=$UNAME_MACHINE-pc-syllable ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) GUESS=i386-unknown-lynxos$UNAME_RELEASE ;; i*86:*DOS:*:*) GUESS=$UNAME_MACHINE-pc-msdosdjgpp ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv32 fi ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. GUESS=i586-pc-msdosdjgpp ;; Intel:Mach:3*:*) GUESS=i386-pc-mach3 ;; paragon:*:*:*) GUESS=i860-intel-osf1 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi ;; mini*:CTIX:SYS*5:*) # "miniframe" GUESS=m68010-convergent-sysv ;; mc68k:UNIX:SYSTEM5:3.51m) GUESS=m68k-convergent-sysv ;; M680?0:D-NIX:5.3:*) GUESS=m68k-diab-dnix ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) GUESS=m68k-unknown-lynxos$UNAME_RELEASE ;; mc68030:UNIX_System_V:4.*:*) GUESS=m68k-atari-sysv4 ;; TSUNAMI:LynxOS:2.*:*) GUESS=sparc-unknown-lynxos$UNAME_RELEASE ;; rs6000:LynxOS:2.*:*) GUESS=rs6000-unknown-lynxos$UNAME_RELEASE ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) GUESS=powerpc-unknown-lynxos$UNAME_RELEASE ;; SM[BE]S:UNIX_SV:*:*) GUESS=mips-dde-sysv$UNAME_RELEASE ;; RM*:ReliantUNIX-*:*:*) GUESS=mips-sni-sysv4 ;; RM*:SINIX-*:*:*) GUESS=mips-sni-sysv4 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` GUESS=$UNAME_MACHINE-sni-sysv4 else GUESS=ns32k-sni-sysv fi ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says GUESS=i586-unisys-sysv4 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm GUESS=hppa1.1-stratus-sysv4 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. GUESS=i860-stratus-sysv4 ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. GUESS=$UNAME_MACHINE-stratus-vos ;; *:VOS:*:*) # From Paul.Green@stratus.com. GUESS=hppa1.1-stratus-vos ;; mc68*:A/UX:*:*) GUESS=m68k-apple-aux$UNAME_RELEASE ;; news*:NEWS-OS:6*:*) GUESS=mips-sony-newsos6 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if test -d /usr/nec; then GUESS=mips-nec-sysv$UNAME_RELEASE else GUESS=mips-unknown-sysv$UNAME_RELEASE fi ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. GUESS=powerpc-be-beos ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. GUESS=powerpc-apple-beos ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. GUESS=i586-pc-beos ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;; ppc:Haiku:*:*) # Haiku running on Apple PowerPC GUESS=powerpc-apple-haiku ;; *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) GUESS=$UNAME_MACHINE-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE ;; SX-5:SUPER-UX:*:*) GUESS=sx5-nec-superux$UNAME_RELEASE ;; SX-6:SUPER-UX:*:*) GUESS=sx6-nec-superux$UNAME_RELEASE ;; SX-7:SUPER-UX:*:*) GUESS=sx7-nec-superux$UNAME_RELEASE ;; SX-8:SUPER-UX:*:*) GUESS=sx8-nec-superux$UNAME_RELEASE ;; SX-8R:SUPER-UX:*:*) GUESS=sx8r-nec-superux$UNAME_RELEASE ;; SX-ACE:SUPER-UX:*:*) GUESS=sxace-nec-superux$UNAME_RELEASE ;; Power*:Rhapsody:*:*) GUESS=powerpc-apple-rhapsody$UNAME_RELEASE ;; *:Rhapsody:*:*) GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE ;; arm64:Darwin:*:*) GUESS=aarch64-apple-darwin$UNAME_RELEASE ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac if command -v xcode-select > /dev/null 2> /dev/null && \ ! xcode-select --print-path > /dev/null 2> /dev/null ; then # Avoid executing cc if there is no toolchain installed as # cc will be a stub that puts up a graphical alert # prompting the user to install developer tools. CC_FOR_BUILD=no_compiler_found else set_cc_for_build fi if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then # uname -m returns i386 or x86_64 UNAME_PROCESSOR=$UNAME_MACHINE fi GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE ;; *:QNX:*:4*) GUESS=i386-pc-qnx ;; NEO-*:NONSTOP_KERNEL:*:*) GUESS=neo-tandem-nsk$UNAME_RELEASE ;; NSE-*:NONSTOP_KERNEL:*:*) GUESS=nse-tandem-nsk$UNAME_RELEASE ;; NSR-*:NONSTOP_KERNEL:*:*) GUESS=nsr-tandem-nsk$UNAME_RELEASE ;; NSV-*:NONSTOP_KERNEL:*:*) GUESS=nsv-tandem-nsk$UNAME_RELEASE ;; NSX-*:NONSTOP_KERNEL:*:*) GUESS=nsx-tandem-nsk$UNAME_RELEASE ;; *:NonStop-UX:*:*) GUESS=mips-compaq-nonstopux ;; BS2000:POSIX*:*:*) GUESS=bs2000-siemens-sysv ;; DS/*:UNIX_System_V:*:*) GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "${cputype-}" = 386; then UNAME_MACHINE=i386 elif test "x${cputype-}" != x; then UNAME_MACHINE=$cputype fi GUESS=$UNAME_MACHINE-unknown-plan9 ;; *:TOPS-10:*:*) GUESS=pdp10-unknown-tops10 ;; *:TENEX:*:*) GUESS=pdp10-unknown-tenex ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) GUESS=pdp10-dec-tops20 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) GUESS=pdp10-xkl-tops20 ;; *:TOPS-20:*:*) GUESS=pdp10-unknown-tops20 ;; *:ITS:*:*) GUESS=pdp10-unknown-its ;; SEI:*:*:SEIUX) GUESS=mips-sei-seiux$UNAME_RELEASE ;; *:DragonFly:*:*) DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case $UNAME_MACHINE in A*) GUESS=alpha-dec-vms ;; I*) GUESS=ia64-dec-vms ;; V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) GUESS=i386-pc-xenix ;; i*86:skyos:*:*) SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL ;; i*86:rdos:*:*) GUESS=$UNAME_MACHINE-pc-rdos ;; i*86:Fiwix:*:*) GUESS=$UNAME_MACHINE-pc-fiwix ;; *:AROS:*:*) GUESS=$UNAME_MACHINE-unknown-aros ;; x86_64:VMkernel:*:*) GUESS=$UNAME_MACHINE-unknown-esx ;; amd64:Isilon\ OneFS:*:*) GUESS=x86_64-unknown-onefs ;; *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE ;; esac # Do we have a guess based on uname results? if test "x$GUESS" != x; then echo "$GUESS" exit fi # No uname command or uname output not recognized. set_cc_for_build cat > "$dummy.c" < #include #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #include #if defined(_SIZE_T_) || defined(SIGLOST) #include #endif #endif #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) #if !defined (ultrix) #include #if defined (BSD) #if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); #else #if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); #else printf ("vax-dec-bsd\n"); exit (0); #endif #endif #else printf ("vax-dec-bsd\n"); exit (0); #endif #else #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname un; uname (&un); printf ("vax-dec-ultrix%s\n", un.release); exit (0); #else printf ("vax-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname *un; uname (&un); printf ("mips-dec-ultrix%s\n", un.release); exit (0); #else printf ("mips-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } echo "$0: unable to guess system type" >&2 case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 <&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = "$UNAME_MACHINE" UNAME_RELEASE = "$UNAME_RELEASE" UNAME_SYSTEM = "$UNAME_SYSTEM" UNAME_VERSION = "$UNAME_VERSION" EOF fi exit 1 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: a2ps-4.15.5/build-aux/config.rpath0000754000000000000000000004425414374751113013562 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2023 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.[01]*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly* | midnightbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd[23].*) library_names_spec='$libname$shrext$versuffix' ;; freebsd* | dragonfly* | midnightbsd*) library_names_spec='$libname$shrext' ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. echo "$1" exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Split fields of configuration type # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <&2 exit 1 ;; *-*-*-*) basic_machine=$field1-$field2 basic_os=$field3-$field4 ;; *-*-*) # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two # parts maybe_os=$field2-$field3 case $maybe_os in nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) basic_machine=$field1 basic_os=$maybe_os ;; android-linux) basic_machine=$field1-unknown basic_os=linux-android ;; *) basic_machine=$field1-$field2 basic_os=$field3 ;; esac ;; *-*) # A lone config we happen to match not fitting any pattern case $field1-$field2 in decstation-3100) basic_machine=mips-dec basic_os= ;; *-*) # Second component is usually, but not always the OS case $field2 in # Prevent following clause from handling this valid os sun*os*) basic_machine=$field1 basic_os=$field2 ;; zephyr*) basic_machine=$field1-unknown basic_os=$field2 ;; # Manufacturers dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ | convergent* | ncr* | news | 32* | 3600* | 3100* \ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ | ultra | tti* | harris | dolphin | highlevel | gould \ | cbm | ns | masscomp | apple | axis | knuth | cray \ | microblaze* | sim | cisco \ | oki | wec | wrs | winbond) basic_machine=$field1-$field2 basic_os= ;; *) basic_machine=$field1 basic_os=$field2 ;; esac ;; esac ;; *) # Convert single-component short-hands not valid as part of # multi-component configurations. case $field1 in 386bsd) basic_machine=i386-pc basic_os=bsd ;; a29khif) basic_machine=a29k-amd basic_os=udi ;; adobe68k) basic_machine=m68010-adobe basic_os=scout ;; alliant) basic_machine=fx80-alliant basic_os= ;; altos | altos3068) basic_machine=m68k-altos basic_os= ;; am29k) basic_machine=a29k-none basic_os=bsd ;; amdahl) basic_machine=580-amdahl basic_os=sysv ;; amiga) basic_machine=m68k-unknown basic_os= ;; amigaos | amigados) basic_machine=m68k-unknown basic_os=amigaos ;; amigaunix | amix) basic_machine=m68k-unknown basic_os=sysv4 ;; apollo68) basic_machine=m68k-apollo basic_os=sysv ;; apollo68bsd) basic_machine=m68k-apollo basic_os=bsd ;; aros) basic_machine=i386-pc basic_os=aros ;; aux) basic_machine=m68k-apple basic_os=aux ;; balance) basic_machine=ns32k-sequent basic_os=dynix ;; blackfin) basic_machine=bfin-unknown basic_os=linux ;; cegcc) basic_machine=arm-unknown basic_os=cegcc ;; convex-c1) basic_machine=c1-convex basic_os=bsd ;; convex-c2) basic_machine=c2-convex basic_os=bsd ;; convex-c32) basic_machine=c32-convex basic_os=bsd ;; convex-c34) basic_machine=c34-convex basic_os=bsd ;; convex-c38) basic_machine=c38-convex basic_os=bsd ;; cray) basic_machine=j90-cray basic_os=unicos ;; crds | unos) basic_machine=m68k-crds basic_os= ;; da30) basic_machine=m68k-da30 basic_os= ;; decstation | pmax | pmin | dec3100 | decstatn) basic_machine=mips-dec basic_os= ;; delta88) basic_machine=m88k-motorola basic_os=sysv3 ;; dicos) basic_machine=i686-pc basic_os=dicos ;; djgpp) basic_machine=i586-pc basic_os=msdosdjgpp ;; ebmon29k) basic_machine=a29k-amd basic_os=ebmon ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson basic_os=ose ;; gmicro) basic_machine=tron-gmicro basic_os=sysv ;; go32) basic_machine=i386-pc basic_os=go32 ;; h8300hms) basic_machine=h8300-hitachi basic_os=hms ;; h8300xray) basic_machine=h8300-hitachi basic_os=xray ;; h8500hms) basic_machine=h8500-hitachi basic_os=hms ;; harris) basic_machine=m88k-harris basic_os=sysv3 ;; hp300 | hp300hpux) basic_machine=m68k-hp basic_os=hpux ;; hp300bsd) basic_machine=m68k-hp basic_os=bsd ;; hppaosf) basic_machine=hppa1.1-hp basic_os=osf ;; hppro) basic_machine=hppa1.1-hp basic_os=proelf ;; i386mach) basic_machine=i386-mach basic_os=mach ;; isi68 | isi) basic_machine=m68k-isi basic_os=sysv ;; m68knommu) basic_machine=m68k-unknown basic_os=linux ;; magnum | m3230) basic_machine=mips-mips basic_os=sysv ;; merlin) basic_machine=ns32k-utek basic_os=sysv ;; mingw64) basic_machine=x86_64-pc basic_os=mingw64 ;; mingw32) basic_machine=i686-pc basic_os=mingw32 ;; mingw32ce) basic_machine=arm-unknown basic_os=mingw32ce ;; monitor) basic_machine=m68k-rom68k basic_os=coff ;; morphos) basic_machine=powerpc-unknown basic_os=morphos ;; moxiebox) basic_machine=moxie-unknown basic_os=moxiebox ;; msdos) basic_machine=i386-pc basic_os=msdos ;; msys) basic_machine=i686-pc basic_os=msys ;; mvs) basic_machine=i370-ibm basic_os=mvs ;; nacl) basic_machine=le32-unknown basic_os=nacl ;; ncr3000) basic_machine=i486-ncr basic_os=sysv4 ;; netbsd386) basic_machine=i386-pc basic_os=netbsd ;; netwinder) basic_machine=armv4l-rebel basic_os=linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony basic_os=newsos ;; news1000) basic_machine=m68030-sony basic_os=newsos ;; necv70) basic_machine=v70-nec basic_os=sysv ;; nh3000) basic_machine=m68k-harris basic_os=cxux ;; nh[45]000) basic_machine=m88k-harris basic_os=cxux ;; nindy960) basic_machine=i960-intel basic_os=nindy ;; mon960) basic_machine=i960-intel basic_os=mon960 ;; nonstopux) basic_machine=mips-compaq basic_os=nonstopux ;; os400) basic_machine=powerpc-ibm basic_os=os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson basic_os=ose ;; os68k) basic_machine=m68k-none basic_os=os68k ;; paragon) basic_machine=i860-intel basic_os=osf ;; parisc) basic_machine=hppa-unknown basic_os=linux ;; psp) basic_machine=mipsallegrexel-sony basic_os=psp ;; pw32) basic_machine=i586-unknown basic_os=pw32 ;; rdos | rdos64) basic_machine=x86_64-pc basic_os=rdos ;; rdos32) basic_machine=i386-pc basic_os=rdos ;; rom68k) basic_machine=m68k-rom68k basic_os=coff ;; sa29200) basic_machine=a29k-amd basic_os=udi ;; sei) basic_machine=mips-sei basic_os=seiux ;; sequent) basic_machine=i386-sequent basic_os= ;; sps7) basic_machine=m68k-bull basic_os=sysv2 ;; st2000) basic_machine=m68k-tandem basic_os= ;; stratus) basic_machine=i860-stratus basic_os=sysv4 ;; sun2) basic_machine=m68000-sun basic_os= ;; sun2os3) basic_machine=m68000-sun basic_os=sunos3 ;; sun2os4) basic_machine=m68000-sun basic_os=sunos4 ;; sun3) basic_machine=m68k-sun basic_os= ;; sun3os3) basic_machine=m68k-sun basic_os=sunos3 ;; sun3os4) basic_machine=m68k-sun basic_os=sunos4 ;; sun4) basic_machine=sparc-sun basic_os= ;; sun4os3) basic_machine=sparc-sun basic_os=sunos3 ;; sun4os4) basic_machine=sparc-sun basic_os=sunos4 ;; sun4sol2) basic_machine=sparc-sun basic_os=solaris2 ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun basic_os= ;; sv1) basic_machine=sv1-cray basic_os=unicos ;; symmetry) basic_machine=i386-sequent basic_os=dynix ;; t3e) basic_machine=alphaev5-cray basic_os=unicos ;; t90) basic_machine=t90-cray basic_os=unicos ;; toad1) basic_machine=pdp10-xkl basic_os=tops20 ;; tpf) basic_machine=s390x-ibm basic_os=tpf ;; udi29k) basic_machine=a29k-amd basic_os=udi ;; ultra3) basic_machine=a29k-nyu basic_os=sym1 ;; v810 | necv810) basic_machine=v810-nec basic_os=none ;; vaxv) basic_machine=vax-dec basic_os=sysv ;; vms) basic_machine=vax-dec basic_os=vms ;; vsta) basic_machine=i386-pc basic_os=vsta ;; vxworks960) basic_machine=i960-wrs basic_os=vxworks ;; vxworks68) basic_machine=m68k-wrs basic_os=vxworks ;; vxworks29k) basic_machine=a29k-wrs basic_os=vxworks ;; xbox) basic_machine=i686-pc basic_os=mingw32 ;; ymp) basic_machine=ymp-cray basic_os=unicos ;; *) basic_machine=$1 basic_os= ;; esac ;; esac # Decode 1-component or ad-hoc basic machines case $basic_machine in # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) cpu=hppa1.1 vendor=winbond ;; op50n) cpu=hppa1.1 vendor=oki ;; op60c) cpu=hppa1.1 vendor=oki ;; ibm*) cpu=i370 vendor=ibm ;; orion105) cpu=clipper vendor=highlevel ;; mac | mpw | mac-mpw) cpu=m68k vendor=apple ;; pmac | pmac-mpw) cpu=powerpc vendor=apple ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) cpu=m68000 vendor=att ;; 3b*) cpu=we32k vendor=att ;; bluegene*) cpu=powerpc vendor=ibm basic_os=cnk ;; decsystem10* | dec10*) cpu=pdp10 vendor=dec basic_os=tops10 ;; decsystem20* | dec20*) cpu=pdp10 vendor=dec basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) cpu=m68k vendor=motorola ;; dpx2*) cpu=m68k vendor=bull basic_os=sysv3 ;; encore | umax | mmax) cpu=ns32k vendor=encore ;; elxsi) cpu=elxsi vendor=elxsi basic_os=${basic_os:-bsd} ;; fx2800) cpu=i860 vendor=alliant ;; genix) cpu=ns32k vendor=ns ;; h3050r* | hiux*) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) cpu=m68000 vendor=hp ;; hp9k3[2-9][0-9]) cpu=m68k vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) cpu=hppa1.1 vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; i*86v32) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv32 ;; i*86v4*) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv4 ;; i*86v) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv ;; i*86sol2) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=solaris2 ;; j90 | j90-cray) cpu=j90 vendor=cray basic_os=${basic_os:-unicos} ;; iris | iris4d) cpu=mips vendor=sgi case $basic_os in irix*) ;; *) basic_os=irix4 ;; esac ;; miniframe) cpu=m68000 vendor=convergent ;; *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) cpu=m68k vendor=atari basic_os=mint ;; news-3600 | risc-news) cpu=mips vendor=sony basic_os=newsos ;; next | m*-next) cpu=m68k vendor=next case $basic_os in openstep*) ;; nextstep*) ;; ns2*) basic_os=nextstep2 ;; *) basic_os=nextstep3 ;; esac ;; np1) cpu=np1 vendor=gould ;; op50n-* | op60c-*) cpu=hppa1.1 vendor=oki basic_os=proelf ;; pa-hitachi) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; pbd) cpu=sparc vendor=tti ;; pbb) cpu=m68k vendor=tti ;; pc532) cpu=ns32k vendor=pc532 ;; pn) cpu=pn vendor=gould ;; power) cpu=power vendor=ibm ;; ps2) cpu=i386 vendor=ibm ;; rm[46]00) cpu=mips vendor=siemens ;; rtpc | rtpc-*) cpu=romp vendor=ibm ;; sde) cpu=mipsisa32 vendor=sde basic_os=${basic_os:-elf} ;; simso-wrs) cpu=sparclite vendor=wrs basic_os=vxworks ;; tower | tower-32) cpu=m68k vendor=ncr ;; vpp*|vx|vx-*) cpu=f301 vendor=fujitsu ;; w65) cpu=w65 vendor=wdc ;; w89k-*) cpu=hppa1.1 vendor=winbond basic_os=proelf ;; none) cpu=none vendor=none ;; leon|leon[3-9]) cpu=sparc vendor=$basic_machine ;; leon-*|leon[3-9]-*) cpu=sparc vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; *-*) # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read cpu vendor <&2 exit 1 ;; esac ;; esac # Here we canonicalize certain aliases for manufacturers. case $vendor in digital*) vendor=dec ;; commodore*) vendor=cbm ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if test x$basic_os != x then # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. case $basic_os in gnu/linux*) kernel=linux os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ;; os2-emx) kernel=os2 os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ;; nto-qnx*) kernel=nto os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ;; *-*) # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read kernel os <&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. case $kernel-$os in linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) ;; uclinux-uclibc* ) ;; managarm-mlibc* | managarm-kernel* ) ;; -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;; -kernel* ) echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 exit 1 ;; *-kernel* ) echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 exit 1 ;; kfreebsd*-gnu* | kopensolaris*-gnu*) ;; vxworks-simlinux | vxworks-simwindows | vxworks-spe) ;; nto-qnx*) ;; os2-emx) ;; *-eabi* | *-gnueabi*) ;; -*) # Blank kernel with real OS is always fine. ;; *-*) echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 exit 1 ;; esac # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. case $vendor in unknown) case $cpu-$os in *-riscix*) vendor=acorn ;; *-sunos*) vendor=sun ;; *-cnk* | *-aix*) vendor=ibm ;; *-beos*) vendor=be ;; *-hpux*) vendor=hp ;; *-mpeix*) vendor=hp ;; *-hiux*) vendor=hitachi ;; *-unos*) vendor=crds ;; *-dgux*) vendor=dg ;; *-luna*) vendor=omron ;; *-genix*) vendor=ns ;; *-clix*) vendor=intergraph ;; *-mvs* | *-opened*) vendor=ibm ;; *-os400*) vendor=ibm ;; s390-* | s390x-*) vendor=ibm ;; *-ptx*) vendor=sequent ;; *-tpf*) vendor=ibm ;; *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; *-aux*) vendor=apple ;; *-hms*) vendor=hitachi ;; *-mpw* | *-macos*) vendor=apple ;; *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; *-vos*) vendor=stratus ;; esac ;; esac echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: a2ps-4.15.5/build-aux/depcomp0000754000000000000000000005577614374751113012642 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2022-09-18.14; # UTC # Copyright (C) 1999-2023 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsolete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: a2ps-4.15.5/build-aux/do-release-commit-and-tag0000754000000000000000000001234614374751113016014 00000000000000#!/bin/sh # In a git/autoconf/automake-enabled project with a NEWS file and a version- # controlled .prev-version file, automate the procedure by which we record # the date, release-type and version string in the NEWS file. That commit # will serve to identify the release, so apply a signed tag to it as well. VERSION=2018-03-07.03 # UTC # Note: this is a bash script (could be zsh or dash) # Copyright (C) 2009-2023 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Written by Jim Meyering ME=$(basename "$0") warn() { printf '%s: %s\n' "$ME" "$*" >&2; } die() { warn "$*"; exit 1; } help() { cat <. EOF exit } version() { year=$(echo "$VERSION" | sed 's/[^0-9].*//') cat < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit } ## ------ ## ## Main. ## ## ------ ## # Constants. noteworthy='* Noteworthy changes in release' noteworthy_stub="$noteworthy ?.? (????-??-??) [?]" # Variables. branch=$(git branch | sed -ne '/^\* /{s///;p;q;}') builddir=. while test $# != 0 do # Handle --option=value by splitting apart and putting back on argv. case $1 in --*=*) opt=$(echo "$1" | sed -e 's/=.*//') val=$(echo "$1" | sed -e 's/[^=]*=//') shift set dummy "$opt" "$val" "$@"; shift ;; esac case $1 in --help|--version) ${1#--};; --branch) shift; branch=$1; shift ;; -C|--builddir) shift; builddir=$1; shift ;; --*) die "unrecognized option: $1";; *) break;; esac done test $# = 2 \ || die "Usage: $ME [OPTION...] VERSION TYPE" ver=$1 type=$2 ## ---------------------- ## ## First, sanity checks. ## ## ---------------------- ## # Verify that $ver looks like a version number, and... echo "$ver"|grep -E '^[0-9][0-9.]*[0-9]$' > /dev/null \ || die "invalid version: $ver" prev_ver=$(cat .prev-version) \ || die 'failed to determine previous version number from .prev-version' # Verify that $ver is sensible (> .prev-version). case $(printf "%s\n%s\n" "$prev_ver" "$ver"|sort -V -u|tr '\n' ':') in "$prev_ver:$ver:") ;; *) die "invalid version: $ver (<= $prev_ver)";; esac case $type in alpha|beta|stable) ;; *) die "invalid release type: $type";; esac # No local modifications allowed. case $(git diff-index --name-only HEAD) in '') ;; *) die 'this tree is dirty; commit your changes first';; esac # Ensure the current branch name is correct: curr_br=$(git rev-parse --symbolic-full-name HEAD) test "$curr_br" = "refs/heads/$branch" || die not on branch $branch # Extract package name from Makefile. Makefile=$builddir/Makefile pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' "$Makefile") \ || die "failed to determine package name from $Makefile" # Check that line 3 of NEWS is the stub line about to be replaced. test "$(sed -n 3p NEWS)" = "$noteworthy_stub" \ || die "line 3 of NEWS must be exactly '$noteworthy_stub'" ## --------------- ## ## Then, changes. ## ## --------------- ## # Update NEWS to have today's date, plus desired version number and $type. perl -MPOSIX -ni -e 'my $today = strftime "%F", localtime time;' \ -e 'my ($type, $ver) = qw('"$type $ver"');' \ -e 'my $pfx = "'"$noteworthy"'";' \ -e 'print $.==3 ? "$pfx $ver ($today) [$type]\n" : $_' \ NEWS || die 'failed to update NEWS' printf "version %s\n\n* NEWS: Record release date.\n" "$ver" \ | git commit -F - -a || die 'git commit failed' git tag -s -m "$pkg $ver" v$ver HEAD || die 'git tag failed' # Local variables: # indent-tabs-mode: nil # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "VERSION=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: " # UTC" # End: a2ps-4.15.5/build-aux/extract-trace0000754000000000000000000003611414374753440013747 00000000000000#! /bin/sh # Extract macro arguments from autotools input with GNU M4. # Written by Gary V. Vaughan, 2010 # # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Copyright (C) 2010-2019, 2021, 2023 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license # , and GPL version 2 or later # . You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # Please report bugs or propose patches to: # # Make sure we've evaluated scripts we depend on. test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh test extract-trace = "$progname" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/options-parser # Set a version string. scriptversion=2019-02-19.15; # UTC ## ------ ## ## Usage. ## ## ------ ## # Run './extract-trace --help' for help with using this script from the # command line. # # Or source first 'options-parser' and then this file into your own # scripts in order to make use of the function and variable framework # they define, and also to avoid the overhead of forking to run this # script in its own process on every call. ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of # 'extract-trace'. # func_autoconf_configure MAYBE-CONFIGURE-FILE # -------------------------------------------- # Ensure that MAYBE-CONFIGURE-FILE is the name of a file in the current # directory that contains an uncommented call to AC_INIT. func_autoconf_configure () { $debug_cmd _G_sed_no_comment=' s|#.*$|| s|^dnl .*$|| s| dnl .*$||' _G_ac_init= # If we were passed a genuine file, make sure it calls AC_INIT. test -f "$1" \ && _G_ac_init=`$SED "$_G_sed_no_comment" "$1" |$GREP AC_INIT` # Otherwise it is not a genuine Autoconf input file. test -n "$_G_ac_init" _G_status=$? test 0 -ne "$_G_status" \ && func_verbose "'$1' not using Autoconf" (exit $_G_status) } # func_tool_version_output CMD [FATAL-ERROR-MSG] # ---------------------------------------------- # Attempt to run 'CMD --version', discarding errors. The output can be # ignored by redirecting stdout, and this function used simply to test # whether the command exists and exits normally when passed a # '--version' argument. # When FATAL-ERROR-MSG is given, then this function will display the # message and exit if running 'CMD --version' returns a non-zero exit # status. func_tool_version_output () { $debug_cmd _G_cmd=$1 _G_fatal_error_msg=$2 # Some tools, like 'git2cl' produce thousands of lines of output # unless stdin is /dev/null - in that case we want to return # successfully without saving all of that output. Other tools, # such as 'help2man' exit with a non-zero status when stdin comes # from /dev/null, so we re-execute without /dev/null if that # happens. This means that occasionally, the output from both calls # ends up in the result, but the alternative would be to discard the # output from one call, and hope the other produces something useful. { $_G_cmd --version /dev/null _G_status=$? test 0 -ne "$_G_status" && test -n "$_G_fatal_error_msg" \ && func_fatal_error "$_G_fatal_error_msg" (exit $_G_status) } # func_tool_version_number CMD [FATAL-ERROR-MSG] # ---------------------------------------------- # Pass arguments to func_tool_version_output, but set # $func_tool_version_number_result to the last dot delimited digit string # on the first line of output. func_tool_version_number () { $debug_cmd _G_verout=`func_tool_version_output "$@"` _G_status=$? # A version number starts with a digit following a space on the first # line of output from `--version`. _G_verout=`echo "$_G_verout" |sed 1q` if test -n "$_G_verout"; then _G_vernum=`expr "$_G_verout" : '.* \([0-9][^ ]*\)'` fi if test -n "$_G_vernum"; then printf '%s\n' "$_G_vernum" else printf '%s\n' "$_G_verout" fi (exit $_G_status) } # func_find_tool ENVVAR NAMES... # ------------------------------ # Search for a required program. Use the value of ENVVAR, if set, # otherwise find the first of the NAMES that can be run (i.e., # supports --version). If found, set ENVVAR to the program name, # die otherwise. func_find_tool () { $debug_cmd _G_find_tool_envvar=$1 shift _G_find_tool_names=$@ eval "_G_find_tool_res=\$$_G_find_tool_envvar" if test -n "$_G_find_tool_res"; then _G_find_tool_error_prefix="\$$find_tool_envvar: " else _G_find_tool_res= _G_bestver= for _G_prog do _G_find_tool_save_IFS=$IFS IFS=${PATH_SEPARATOR-:} for _G_dir in $PATH; do IFS=$_G_find_tool_save_IFS _G_progpath=$_G_dir/$_G_prog test -r "$_G_progpath" && { _G_curver=`func_tool_version_number $_G_progpath` case $_G_bestver,$_G_curver in ,) # first non--version responsive prog sticks! test -n "$_G_progpath" || _G_find_tool_res=$_G_progpath ;; ,*) # first --version responsive prog beats non--version responsive! _G_find_tool_res=$_G_progpath _G_bestver=$_G_curver ;; *,*) # another --version responsive prog must be newer to beat previous one! test "x$_G_curver" = "x$_G_bestver" \ || func_lt_ver "$_G_curver" "$_G_bestver" \ || { _G_find_tool_res=$_G_progpath _G_bestver=$_G_curver } ;; esac } done IFS=$_G_find_tool_save_IFS done fi if test -n "$_G_find_tool_res"; then func_tool_version_number >/dev/null $_G_find_tool_res "\ ${_G_find_tool_error_prefix}Cannot run '$_G_find_tool_res --version'" # Make sure the result is exported to the environment for children # to use. eval "$_G_find_tool_envvar=\$_G_find_tool_res" eval "export $_G_find_tool_envvar" else func_error "\ One of these is required: $_G_find_tool_names" fi } ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Where a variable already has a non- # empty value (as set by the package's 'bootstrap.conf'), that value is # used in preference to deriving the default. Call them using their # associated 'require_*' variable to ensure that they are executed, at # most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_configure_ac # -------------------- # Ensure that there is a 'configure.ac' or 'configure.in' file in the # current directory that contains an uncommented call to AC_INIT, and # that '$configure_ac' contains its name. require_configure_ac=func_require_configure_ac func_require_configure_ac () { $debug_cmd test -z "$configure_ac" \ && func_autoconf_configure configure.ac && configure_ac=configure.ac test -z "$configure_ac" \ && func_autoconf_configure configure.in && configure_ac=configure.in test -z "$configure_ac" \ || func_verbose "found '$configure_ac'" require_configure_ac=: } # require_gnu_m4 # -------------- # Search for GNU M4, and export it in $M4. require_gnu_m4=func_require_gnu_m4 func_require_gnu_m4 () { $debug_cmd test -n "$M4" || { # Find the first m4 binary that responds to --version. func_find_tool M4 gm4 gnum4 m4 } test -n "$M4" || func_fatal_error "\ Please install GNU M4, or 'export M4=/path/to/gnu/m4'." func_verbose "export M4='$M4'" # Make sure the search result is visible to subshells export M4 require_gnu_m4=: } ## --------------- ## ## Core functions. ## ## --------------- ## # This section contains the high level functions used when calling this # file as a script. 'func_extract_trace' is probably the only one that you # won't want to replace if you source this file into your own script. # func_extract_trace MACRO_NAMES [FILENAME]... # -------------------------------------------- # set '$func_extract_trace_result' to a colon delimited list of arguments # to any of the comma separated list of MACRO_NAMES in FILENAME. If no # FILENAME is given, then '$configure_ac' is assumed. func_extract_trace () { $debug_cmd $require_configure_ac $require_gnu_m4 _G_m4_traces=`$ECHO "--trace=$1" |$SED 's%,% --trace=%g'` _G_re_macros=`$ECHO "($1)" |$SED 's%,%|%g'` _G_macros="$1"; shift test $# -gt 0 || { set dummy $configure_ac shift } # Generate an error if the first file is missing <"$1" # Sadly, we can't use 'autom4te' tracing to extract macro arguments, # because it complains about things we want to ignore at bootstrap # time - like missing m4_include files; AC_PREREQ being newer than # the installed autoconf; and returns nothing when tracing # 'AM_INIT_AUTOMAKE' when aclocal hasn't been generated yet. # # The following tries to emulate a less persnickety version of (and # due to not having to wait for Perl startup on every invocation, # it's probably faster too): # # autom4te --language=Autoconf --trace=$my_macro:\$% "$@" # # First we give a minimal set of macro declarations to M4 to prime # it for reading Autoconf macros, while still providing some of the # functionality generally used at m4-time to supply dynamic # arguments to Autocof functions, but without following # 'm4_s?include' files. _G_mini=' dnl Initialisation. m4_changequote([,]) m4_define([m4_copy], [m4_define([$2], m4_defn([$1]))]) m4_define([m4_rename], [m4_copy([$1], [$2])m4_undefine([$1])]) dnl Replace macros which may abort m4 with a no-op variant. m4_pushdef([m4_assert]) m4_pushdef([m4_exit]) m4_pushdef([m4_fatal]) m4_pushdef([m4_m4exit]) dnl Replace macros that might break stderr of m4. m4_pushdef([m4_errprint]) m4_pushdef([m4_errprintn]) m4_pushdef([m4_include]) m4_pushdef([m4_warn]) dnl Avoid side-effects of tracing by extract-trace. m4_pushdef([m4_maketemp]) m4_pushdef([m4_mkstemp]) dnl TODO: reasons for this m4_pushdef([m4_dnl]) m4_pushdef([m4_m4wrap]) dnl Copy and rename macros not handled by "m4 --prefix". m4_define([dnl], [m4_builtin([dnl])]) m4_copy([m4_define], [m4_defun]) m4_rename([m4_ifelse], [m4_if]) m4_rename([m4_patsubst], [m4_bpatsubst]) m4_rename([m4_regexp], [m4_bregexp]) dnl "m4sugar.mini" - useful m4-time macros for dynamic arguments. dnl If we discover packages that need more m4 macros defined in dnl order to bootstrap correctly, add them here: m4_define([m4_bmatch], [m4_if([$#], 0, [], [$#], 1, [], [$#], 2, [$2], [m4_if(m4_bregexp([$1], [$2]), -1, [$0([$1], m4_shift3($@))], [$3])])]) m4_define([m4_ifndef], [m4_ifdef([$1], [$3], [$2])]) m4_define([m4_ifset], [m4_ifdef([$1], [m4_ifval(m4_defn([$1]), [$2], [$3])], [$3])]) m4_define([m4_require], [$1]) m4_define([m4_shift3], [m4_shift(m4shift(m4shift($@)))]) dnl "autoconf.mini" - things from autoconf macros we care about. m4_copy([m4_defun], [AC_DEFUN]) dnl Dummy definitions for the macros we want to trace. dnl AM_INIT_AUTOMAKE at least produces no trace without this. ' _G_save=$IFS IFS=, for _G_macro in $_G_macros; do IFS=$_G_save func_append _G_mini "AC_DEFUN([$_G_macro])$nl" done IFS=$_G_save # We discard M4's stdout, but the M4 trace output from reading our # "autoconf.mini" followed by any other files passed to this # function is then scanned by sed to transform it into a colon # delimited argument list assigned to a shell variable. _G_transform='s|#.*$||; s|^dnl .*$||; s| dnl .*$||;' # Unfortunately, alternation in regexp addresses doesn't work in at # least BSD (and hence Mac OS X) sed, so we have to append a capture # and print block for each traced macro to the sed transform script. _G_save=$IFS IFS=, for _G_macro in $_G_macros; do IFS=$_G_save func_append _G_transform ' /^m4trace: -1- '"$_G_macro"'/ { s|^m4trace: -1- '"$_G_macro"'[([]*|| s|], [[]|:|g s|[])]*$|:| s|\(.\):$|\1| p }' done IFS=$_G_save # Save the command pipeline results for further use by callers of # this function. func_extract_trace_result=`$ECHO "$_G_mini" \ |$M4 -daq --prefix $_G_m4_traces - "$@" 2>&1 1>/dev/null \ |$SED -n -e "$_G_transform"` } # func_extract_trace_first MACRO_NAMES [FILENAME]... # -------------------------------------------------- # Exactly like func_extract_trace, except that only the first argument # to the first invocation of one of the comma separated MACRO_NAMES is # returned in '$func_extract_trace_first_result'. func_extract_trace_first () { $debug_cmd func_extract_trace ${1+"$@"} func_extract_trace_first_result=`$ECHO "$func_extract_trace_result" \ |$SED -e 's|:.*$||g' -e 1q` } # func_main [ARG]... # ------------------ func_main () { $debug_cmd # Configuration. usage='$progname MACRO_NAME FILE [...]' long_help_message=' The first argument to this program is the name of an autotools macro whose arguments you want to extract by examining the files listed in the remaining arguments using the same tool that Autoconf and Automake use, GNU M4. The arguments are returned separated by colons, with each traced call on a separate line.' # Option processing. func_options "$@" eval set dummy "$func_options_result"; shift # Validate remaining non-option arguments. test $# -gt 1 \ || func_fatal_help "not enough arguments" # Pass non-option arguments to extraction function. func_extract_trace "$@" # Display results. test -n "$func_extract_trace_result" \ && $ECHO "$func_extract_trace_result" # The End. exit $EXIT_SUCCESS } ## --------------------------- ## ## Actually perform the trace. ## ## --------------------------- ## # Only call 'func_main' if this script was called directly. test extract-trace = "$progname" && func_main "$@" # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "50/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: a2ps-4.15.5/build-aux/funclib.sh0000644000000000000000000012364514374753440013240 00000000000000# Set a version string for this script. scriptversion=2019-02-19.15; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Copyright (C) 2004-2019, 2021, 2023 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license # , and GPL version 2 or later # . You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # Please report bugs or propose patches to: # ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # These NLS vars are set unconditionally (bootstrap issue #24). Unset those # in case the environment reset is needed later and the $save_* variant is not # defined (see the code above). LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # func_unset VAR # -------------- # Portably unset VAR. # In some shells, an 'unset VAR' statement leaves a non-zero return # status if VAR is already unset, which might be problematic if the # statement is used at the end of a function (thus poisoning its return # value) or when 'set -e' is active (causing even a spurious abort of # the script in this case). func_unset () { { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } } # Make sure CDPATH doesn't cause `cd` commands to output the target dir. func_unset CDPATH # Make sure ${,E,F}GREP behave sanely. func_unset GREP_OPTIONS ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" # require_check_ifs_backslash # --------------------------- # Check if we can use backslash as IFS='\' separator, and set # $check_ifs_backshlash_broken to ':' or 'false'. require_check_ifs_backslash=func_require_check_ifs_backslash func_require_check_ifs_backslash () { _G_save_IFS=$IFS IFS='\' _G_check_ifs_backshlash='a\\b' for _G_i in $_G_check_ifs_backshlash do case $_G_i in a) check_ifs_backshlash_broken=false ;; '') break ;; *) check_ifs_backshlash_broken=: break ;; esac done IFS=$_G_save_IFS require_check_ifs_backslash=: } ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath=$0 # The name of this program. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_arg pretty "$2" eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd func_quote_arg pretty "$2" eval "$1=\$$1\\ \$func_quote_arg_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_portable EVAL ARG # ---------------------------- # Internal function to portably implement func_quote_arg. Note that we still # keep attention to performance here so we as much as possible try to avoid # calling sed binary (so far O(N) complexity as long as func_append is O(1)). func_quote_portable () { $debug_cmd $require_check_ifs_backslash func_quote_portable_result=$2 # one-time-loop (easy break) while true do if $1; then func_quote_portable_result=`$ECHO "$2" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` break fi # Quote for eval. case $func_quote_portable_result in *[\\\`\"\$]*) # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string # contains the shell wildcard characters. case $check_ifs_backshlash_broken$func_quote_portable_result in :*|*[\[\*\?]*) func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ | $SED "$sed_quote_subst"` break ;; esac func_quote_portable_old_IFS=$IFS for _G_char in '\' '`' '"' '$' do # STATE($1) PREV($2) SEPARATOR($3) set start "" "" func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy IFS=$_G_char for _G_part in $func_quote_portable_result do case $1 in quote) func_append func_quote_portable_result "$3$2" set quote "$_G_part" "\\$_G_char" ;; start) set first "" "" func_quote_portable_result= ;; first) set quote "$_G_part" "" ;; esac done done IFS=$func_quote_portable_old_IFS ;; *) ;; esac break done func_quote_portable_unquoted_result=$func_quote_portable_result case $func_quote_portable_result in # double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # many bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_portable_result=\"$func_quote_portable_result\" ;; esac } # func_quotefast_eval ARG # ----------------------- # Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', # but optimized for speed. Result is stored in $func_quotefast_eval. if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then printf -v _GL_test_printf_tilde %q '~' if test '\~' = "$_GL_test_printf_tilde"; then func_quotefast_eval () { printf -v func_quotefast_eval_result %q "$1" } else # Broken older Bash implementations. Make those faster too if possible. func_quotefast_eval () { case $1 in '~'*) func_quote_portable false "$1" func_quotefast_eval_result=$func_quote_portable_result ;; *) printf -v func_quotefast_eval_result %q "$1" ;; esac } fi else func_quotefast_eval () { func_quote_portable false "$1" func_quotefast_eval_result=$func_quote_portable_result } fi # func_quote_arg MODEs ARG # ------------------------ # Quote one ARG to be evaled later. MODEs argument may contain zero or more # specifiers listed below separated by ',' character. This function returns two # values: # i) func_quote_arg_result # double-quoted (when needed), suitable for a subsequent eval # ii) func_quote_arg_unquoted_result # has all characters that are still active within double # quotes backslashified. Available only if 'unquoted' is specified. # # Available modes: # ---------------- # 'eval' (default) # - escape shell special characters # 'expand' # - the same as 'eval'; but do not quote variable references # 'pretty' # - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might # be used later in func_quote to get output like: 'echo "a b"' instead # of 'echo a\ b'. This is slower than default on some shells. # 'unquoted' # - produce also $func_quote_arg_unquoted_result which does not contain # wrapping double-quotes. # # Examples for 'func_quote_arg pretty,unquoted string': # # string | *_result | *_unquoted_result # ------------+-----------------------+------------------- # " | \" | \" # a b | "a b" | a b # "a b" | "\"a b\"" | \"a b\" # * | "*" | * # z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" # # Examples for 'func_quote_arg pretty,unquoted,expand string': # # string | *_result | *_unquoted_result # --------------+---------------------+-------------------- # z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" func_quote_arg () { _G_quote_expand=false case ,$1, in *,expand,*) _G_quote_expand=: ;; esac case ,$1, in *,pretty,*|*,expand,*|*,unquoted,*) func_quote_portable $_G_quote_expand "$2" func_quote_arg_result=$func_quote_portable_result func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result ;; *) # Faster quote-for-eval for some shells. func_quotefast_eval "$2" func_quote_arg_result=$func_quotefast_eval_result ;; esac } # func_quote MODEs ARGs... # ------------------------ # Quote all ARGs to be evaled later and join them into single command. See # func_quote_arg's description for more info. func_quote () { $debug_cmd _G_func_quote_mode=$1 ; shift func_quote_result= while test 0 -lt $#; do func_quote_arg "$_G_func_quote_mode" "$1" if test -n "$func_quote_result"; then func_append func_quote_result " $func_quote_arg_result" else func_append func_quote_result "$func_quote_arg_result" fi shift done } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_arg pretty,expand "$_G_cmd" eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_arg expand,pretty "$_G_cmd" eval "func_echo $func_quote_arg_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: a2ps-4.15.5/build-aux/gendocs.sh0000754000000000000000000004163514374751113013233 00000000000000#!/bin/sh -e # gendocs.sh -- generate a GNU manual in many formats. This script is # mentioned in maintain.texi. See the help message below for usage details. scriptversion=2023-01-21.00 # Copyright 2003-2023 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Original author: Mohit Agarwal. # Send bug reports and any other correspondence to bug-gnulib@gnu.org. # # The latest version of this script, and the companion template, is # available from the Gnulib repository: # # https://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh # https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template # TODO: # - image importing was only implemented for HTML generated by # makeinfo. But it should be simple enough to adjust. # - images are not imported in the source tarball. All the needed # formats (PDF, PNG, etc.) should be included. prog=`basename "$0"` srcdir=`pwd` scripturl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh" templateurl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template" : "${SETLANG="env LANG= LC_TIME= LC_MESSAGES= LC_ALL= LANGUAGE="}" : "${MAKEINFO="makeinfo"}" : "${TEXI2DVI="texi2dvi"}" : "${DOCBOOK2HTML="docbook2html"}" : "${DOCBOOK2PDF="docbook2pdf"}" : "${DOCBOOK2TXT="docbook2txt"}" : "${GENDOCS_TEMPLATE_DIR="."}" : "${PERL="perl"}" : "${TEXI2HTML="texi2html"}" unset CDPATH unset use_texi2html MANUAL_TITLE= PACKAGE= EMAIL=webmasters@gnu.org # please override with --email commonarg= # passed to all makeinfo/texi2html invocations. dirargs= # passed to all tools (-I dir). dirs= # -I directories. htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual" default_htmlarg=true infoarg=--no-split generate_ascii=true generate_html=true generate_info=true generate_tex=true outdir=manual source_extra= split=node srcfile= texarg="-t @finalout" version="gendocs.sh $scriptversion Copyright 2023 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING." usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE Generate output in various formats from PACKAGE.texinfo (or .texi or .txi) source. See the GNU Maintainers document for a more extensive discussion: https://www.gnu.org/prep/maintain_toc.html Options: --email ADR use ADR as contact in generated web pages; always give this. -s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi} -o OUTDIR write files into OUTDIR, instead of manual/. -I DIR append DIR to the Texinfo search path. --common ARG pass ARG in all invocations. --html ARG pass ARG to makeinfo or texi2html for HTML targets, instead of '$htmlarg'. --info ARG pass ARG to makeinfo for Info, instead of --no-split. --no-ascii skip generating the plain text output. --no-html skip generating the html output. --no-info skip generating the info output. --no-tex skip generating the dvi and pdf output. --source ARG include ARG in tar archive of sources. --split HOW make split HTML by node, section, chapter; default node. --tex ARG pass ARG to texi2dvi for DVI and PDF, instead of -t @finalout. --texi2html use texi2html to make HTML target, with all split versions. --docbook convert through DocBook too (xml, txt, html, pdf). --help display this help and exit successfully. --version display version information and exit successfully. Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\" Typical sequence: cd PACKAGESOURCE/doc wget \"$scripturl\" wget \"$templateurl\" $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\" Output will be in a new subdirectory \"manual\" (by default; use -o OUTDIR to override). Move all the new files into your web CVS tree, as explained in the Web Pages node of maintain.texi. Please use the --email ADDRESS option so your own bug-reporting address will be used in the generated HTML pages. MANUAL-TITLE is included as part of the HTML of the overall manual/index.html file. It should include the name of the package being documented. manual/index.html is created by substitution from the file $GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the generic template for your own purposes.) If you have several manuals, you'll need to run this script several times with different MANUAL values, specifying a different output directory with -o each time. Then write (by hand) an overall index.html with links to them all. If a manual's Texinfo sources are spread across several directories, first copy or symlink all Texinfo sources into a single directory. (Part of the script's work is to make a tar.gz of the sources.) As implied above, by default monolithic Info files are generated. If you want split Info, or other Info options, use --info to override. You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML, and PERL to control the programs that get executed, and GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is looked for. With --docbook, the environment variables DOCBOOK2HTML, DOCBOOK2PDF, and DOCBOOK2TXT are also consulted. By default, makeinfo and texi2dvi are run in the default (English) locale, since that's the language of most Texinfo manuals. If you happen to have a non-English manual and non-English web site, see the SETLANG setting in the source. Email bug reports or enhancement requests to bug-gnulib@gnu.org. " while test $# -gt 0; do case $1 in -s) shift; srcfile=$1;; -o) shift; outdir=$1;; -I) shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";; --common) shift; commonarg=$1;; --docbook) docbook=yes;; --email) shift; EMAIL=$1;; --html) shift; default_htmlarg=false; htmlarg=$1;; --info) shift; infoarg=$1;; --no-ascii) generate_ascii=false;; --no-html) generate_ascii=false;; --no-info) generate_info=false;; --no-tex) generate_tex=false;; --source) shift; source_extra=$1;; --split) shift; split=$1;; --tex) shift; texarg=$1;; --texi2html) use_texi2html=1;; --help) echo "$usage"; exit 0;; --version) echo "$version"; exit 0;; -*) echo "$0: Unknown option \`$1'." >&2 echo "$0: Try \`--help' for more information." >&2 exit 1;; *) if test -z "$PACKAGE"; then PACKAGE=$1 elif test -z "$MANUAL_TITLE"; then MANUAL_TITLE=$1 else echo "$0: extra non-option argument \`$1'." >&2 exit 1 fi;; esac shift done # makeinfo uses the dirargs, but texi2dvi doesn't. commonarg=" $dirargs $commonarg" # For most of the following, the base name is just $PACKAGE base=$PACKAGE if $default_htmlarg && test -n "$use_texi2html"; then # The legacy texi2html doesn't support TOP_NODE_UP_URL htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css" fi if test -n "$srcfile"; then # but here, we use the basename of $srcfile base=`basename "$srcfile"` case $base in *.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;; esac PACKAGE=$base elif test -s "$srcdir/$PACKAGE.texinfo"; then srcfile=$srcdir/$PACKAGE.texinfo elif test -s "$srcdir/$PACKAGE.texi"; then srcfile=$srcdir/$PACKAGE.texi elif test -s "$srcdir/$PACKAGE.txi"; then srcfile=$srcdir/$PACKAGE.txi else echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2 exit 1 fi if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2 echo "$0: it is available from $templateurl." >&2 exit 1 fi # Function to return size of $1 in something resembling kilobytes. calcsize() { size=`ls -ksl $1 | awk '{print $1}'` echo $size } # copy_images OUTDIR HTML-FILE... # ------------------------------- # Copy all the images needed by the HTML-FILEs into OUTDIR. # Look for them in . and the -I directories; this is simpler than what # makeinfo supports with -I, but hopefully it will suffice. copy_images() { local odir odir=$1 shift $PERL -n -e " BEGIN { \$me = '$prog'; \$odir = '$odir'; @dirs = qw(. $dirs); } " -e ' /<img src="(.*?)"/g && ++$need{$1}; END { #print "$me: @{[keys %need]}\n"; # for debugging, show images found. FILE: for my $f (keys %need) { for my $d (@dirs) { if (-f "$d/$f") { use File::Basename; my $dest = dirname ("$odir/$f"); # use File::Path; -d $dest || mkpath ($dest) || die "$me: cannot mkdir $dest: $!\n"; # use File::Copy; copy ("$d/$f", $dest) || die "$me: cannot copy $d/$f to $dest: $!\n"; next FILE; } } die "$me: $ARGV: cannot find image $f\n"; } } ' -- "$@" || exit 1 } case $outdir in /*) abs_outdir=$outdir;; *) abs_outdir=$srcdir/$outdir;; esac echo "Making output for $srcfile" echo " in `pwd`" mkdir -p "$outdir/" # if $generate_info; then cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\"" echo "Generating info... ($cmd)" rm -f $PACKAGE.info* # get rid of any strays eval "$cmd" tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info* ls -l "$outdir/$PACKAGE.info.tar.gz" info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"` # do not mv the info files, there's no point in having them available # separately on the web. fi # end info # if $generate_tex; then cmd="$SETLANG $TEXI2DVI $dirargs $texarg \"$srcfile\"" printf "\nGenerating dvi... (%s)\n" "$cmd" eval "$cmd" # compress/finish dvi: gzip -f -9 $PACKAGE.dvi dvi_gz_size=`calcsize $PACKAGE.dvi.gz` mv $PACKAGE.dvi.gz "$outdir/" ls -l "$outdir/$PACKAGE.dvi.gz" cmd="$SETLANG $TEXI2DVI --pdf $dirargs $texarg \"$srcfile\"" printf "\nGenerating pdf... (%s)\n" "$cmd" eval "$cmd" pdf_size=`calcsize $PACKAGE.pdf` mv $PACKAGE.pdf "$outdir/" ls -l "$outdir/$PACKAGE.pdf" fi # end tex (dvi + pdf) # if $generate_ascii; then opt="-o $PACKAGE.txt --no-split --no-headers $commonarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating ascii... (%s)\n" "$cmd" eval "$cmd" ascii_size=`calcsize $PACKAGE.txt` gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz" ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"` mv $PACKAGE.txt "$outdir/" ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz" fi # if $generate_html; then # Split HTML at level $1. Used for texi2html. html_split() { opt="--split=$1 --node-files $commonarg $htmlarg" cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\"" printf "\nGenerating html by %s... (%s)\n" "$1" "$cmd" eval "$cmd" split_html_dir=$PACKAGE.html ( cd ${split_html_dir} || exit 1 ln -sf ${PACKAGE}.html index.html tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html ) eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"` rm -f "$outdir"/html_$1/*.html mkdir -p "$outdir/html_$1/" mv ${split_html_dir}/*.html "$outdir/html_$1/" rmdir ${split_html_dir} } if test -z "$use_texi2html"; then opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating monolithic html... (%s)\n" "$cmd" rm -rf $PACKAGE.html # in case a directory is left over eval "$cmd" html_mono_size=`calcsize $PACKAGE.html` gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` copy_images "$outdir/" $PACKAGE.html mv $PACKAGE.html "$outdir/" ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz" # Before Texinfo 5.0, makeinfo did not accept a --split=HOW option, # it just always split by node. So if we're splitting by node anyway, # leave it out. if test "x$split" = xnode; then split_arg= else split_arg=--split=$split fi # opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating html by %s... (%s)\n" "$split" "$cmd" eval "$cmd" split_html_dir=$PACKAGE.html copy_images $split_html_dir/ $split_html_dir/*.html ( cd $split_html_dir || exit 1 tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- * ) eval \ html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"` rm -rf "$outdir/html_$split/" mv $split_html_dir "$outdir/html_$split/" du -s "$outdir/html_$split/" ls -l "$outdir/$PACKAGE.html_$split.tar.gz" else # use texi2html: opt="--output $PACKAGE.html $commonarg $htmlarg" cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\"" printf "\nGenerating monolithic html with texi2html... (%s)\n" "$cmd" rm -rf $PACKAGE.html # in case a directory is left over eval "$cmd" html_mono_size=`calcsize $PACKAGE.html` gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` mv $PACKAGE.html "$outdir/" html_split node html_split chapter html_split section fi fi # end html # printf "\nMaking .tar.gz for sources...\n" d=`dirname $srcfile` ( cd "$d" srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles ls -l "$abs_outdir/$PACKAGE.texi.tar.gz" ) texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"` # # Do everything again through docbook. if test -n "$docbook"; then opt="-o - --docbook $commonarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml" printf "\nGenerating docbook XML... (%s)\n" "$cmd" eval "$cmd" docbook_xml_size=`calcsize $PACKAGE-db.xml` gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz" docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"` mv $PACKAGE-db.xml "$outdir/" split_html_db_dir=html_node_db opt="$commonarg -o $split_html_db_dir" cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook HTML... (%s)\n" "$cmd" eval "$cmd" ( cd ${split_html_db_dir} || exit 1 tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html ) html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"` rm -f "$outdir"/html_node_db/*.html mkdir -p "$outdir/html_node_db" mv ${split_html_db_dir}/*.html "$outdir/html_node_db/" rmdir ${split_html_db_dir} cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook ASCII... (%s)\n" "$cmd" eval "$cmd" docbook_ascii_size=`calcsize $PACKAGE-db.txt` mv $PACKAGE-db.txt "$outdir/" cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook PDF... (%s)\n" "$cmd" eval "$cmd" docbook_pdf_size=`calcsize $PACKAGE-db.pdf` mv $PACKAGE-db.pdf "$outdir/" fi # printf "\nMaking index.html for %s...\n" "$PACKAGE" if test -z "$use_texi2html"; then CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\ /%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d" else # should take account of --split here. CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d" fi curdate=`$SETLANG date '+%B %d, %Y'` sed \ -e "s!%%TITLE%%!$MANUAL_TITLE!g" \ -e "s!%%EMAIL%%!$EMAIL!g" \ -e "s!%%PACKAGE%%!$PACKAGE!g" \ -e "s!%%DATE%%!$curdate!g" \ -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \ -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \ -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \ -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \ -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \ -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \ -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \ -e "s!%%PDF_SIZE%%!$pdf_size!g" \ -e "s!%%ASCII_SIZE%%!$ascii_size!g" \ -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \ -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \ -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \ -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \ -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \ -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \ -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \ -e "s,%%SCRIPTURL%%,$scripturl,g" \ -e "s!%%SCRIPTNAME%%!$prog!g" \ -e "$CONDS" \ $GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html" echo "Done, see $outdir/ subdirectory for new files." # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: ���������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/gnu-web-doc-update������������������������������������������������������������0000754�0000000�0000000�00000014116�14405656533�014566� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Run this after each non-alpha release, to update the web documentation at # https://www.gnu.org/software/$pkg/manual/ VERSION=2022-01-27.18; # UTC # Copyright (C) 2009-2023 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. ME=$(basename "$0") warn() { printf '%s: %s\n' "$ME" "$*" >&2; } die() { warn "$*"; exit 1; } help() { cat <<EOF Usage: $ME Run this script from top_srcdir (no arguments) after each non-alpha release, to update the web documentation at https://www.gnu.org/software/\$pkg/manual/ This script assumes you're using git for revision control, and requires a .prev-version file as well as a Makefile, from which it extracts the version number and package name, respectively. Also, it assumes all documentation is in the doc/ sub-directory. Options: -C, --builddir=DIR location of (configured) Makefile (default: .) -n, --dry-run don't actually commit anything -m, --mirror remove out of date files from document server -u, --user the name of the CVS user on Savannah --help print this help, then exit --version print version number, then exit Report bugs and patches to <bug-gnulib@gnu.org>. EOF exit } version() { year=$(echo "$VERSION" | sed 's/[^0-9].*//') cat <<EOF $ME $VERSION Copyright (C) $year Free Software Foundation, Inc, License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit } # find_tool ENVVAR NAMES... # ------------------------- # Search for a required program. Use the value of ENVVAR, if set, # otherwise find the first of the NAMES that can be run (i.e., # supports --version). If found, set ENVVAR to the program name, # die otherwise. # # FIXME: code duplication, see also bootstrap. find_tool () { find_tool_envvar=$1 shift find_tool_names=$@ eval "find_tool_res=\$$find_tool_envvar" if test x"$find_tool_res" = x; then for i do if ($i --version </dev/null) >/dev/null 2>&1; then find_tool_res=$i break fi done else find_tool_error_prefix="\$$find_tool_envvar: " fi test x"$find_tool_res" != x \ || die "one of these is required: $find_tool_names" ($find_tool_res --version </dev/null) >/dev/null 2>&1 \ || die "${find_tool_error_prefix}cannot run $find_tool_res --version" eval "$find_tool_envvar=\$find_tool_res" eval "export $find_tool_envvar" } ## ------ ## ## Main. ## ## ------ ## # Requirements: everything required to bootstrap your package, plus # these. find_tool CVS cvs find_tool GIT git find_tool RSYNC rsync find_tool XARGS gxargs xargs builddir=. dryrun= rm_stale='echo' cvs_user="$USER" while test $# != 0 do # Handle --option=value by splitting apart and putting back on argv. case $1 in --*=*) opt=$(echo "$1" | sed -e 's/=.*//') val=$(echo "$1" | sed -e 's/[^=]*=//') shift set dummy "$opt" "$val" "$@"; shift ;; esac case $1 in --help|--version) ${1#--};; -C|--builddir) shift; builddir=$1; shift ;; -n|--dry-run) dryrun=echo; shift;; -m|--mirror) rm_stale=''; shift;; -u|--user) shift; cvs_user=$1; shift ;; --*) die "unrecognized option: $1";; *) break;; esac done test $# = 0 \ || die "too many arguments" prev=.prev-version version=$(cat $prev) || die "no $prev file?" pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' $builddir/Makefile) \ || die "no Makefile?" tmp_branch=web-doc-$version-$$ current_branch=$($GIT branch | sed -ne '/^\* /{s///;p;q;}') cleanup() { __st=$? $dryrun rm -rf "$tmp" $GIT checkout "$current_branch" $GIT submodule update --recursive $GIT branch -d $tmp_branch exit $__st } trap cleanup EXIT trap 'exit $?' HUP INT PIPE TERM # We must build using sources for which --version reports the # just-released version number, not some string like 7.6.18-20761. # That version string propagates into all documentation. set -e $GIT checkout -b $tmp_branch v$version $GIT submodule update --recursive ./bootstrap srcdir=$(pwd) cd "$builddir" builddir=$(pwd) ./config.status --recheck ./config.status make make web-manual cd "$srcdir" set +e tmp=$(mktemp -d web-doc-update.XXXXXX) || exit 1 ( cd $tmp \ && $CVS -d $cvs_user@cvs.sv.gnu.org:/webcvs/$pkg co $pkg ) $RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual ( cd $tmp/$pkg/manual # Add all the files. This is simpler than trying to add only the # new ones because of new directories # First add non empty dirs individually find . -name CVS -prune -o -type d \! -empty -print \ | $XARGS -n1 --no-run-if-empty -- $dryrun $CVS add -ko # Now add all files find . -name CVS -prune -o -type f -print \ | $XARGS --no-run-if-empty -- $dryrun $CVS add -ko # Report/Remove stale files # excluding doc server specific files like CVS/* and .symlinks if test -n "$rm_stale"; then echo 'Consider the --mirror option if all of the manual is generated,' >&2 echo 'which will run `cvs remove` to remove stale files.' >&2 fi { find . \( -name CVS -o -type f -name '.*' \) -prune -o -type f -print (cd "$builddir"/doc/manual/ && find . -type f -print | sed p) } | sort | uniq -u \ | $XARGS --no-run-if-empty -- ${rm_stale:-$dryrun} $CVS remove -f $dryrun $CVS ci -m $version ) # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "VERSION=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/gnupload����������������������������������������������������������������������0000754�0000000�0000000�00000032666�14374751113�013015� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Sign files and upload them. scriptversion=2022-01-27.18; # UTC # Copyright (C) 2004-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # Originally written by Alexandre Duret-Lutz <adl@gnu.org>. # The master copy of this file is maintained in the gnulib Git repository. # Please send bug reports and feature requests to bug-gnulib@gnu.org. set -e GPG=gpg # Choose the proper version of gpg, so as to avoid a # "gpg-agent is not available in this session" error # when gpg-agent is version 2 but gpg is still version 1. # FIXME-2020: remove, once all major distros ship gpg version 2 as /usr/bin/gpg gpg_agent_version=`(gpg-agent --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'` case "$gpg_agent_version" in 2.*) gpg_version=`(gpg --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'` case "$gpg_version" in 1.*) if (type gpg2) >/dev/null 2>/dev/null; then # gpg2 is present. GPG=gpg2 else # gpg2 is missing. Ubuntu users should install the package 'gnupg2'. echo "WARNING: Using 'gpg', which is too old. You should install 'gpg2'." 1>&2 fi ;; esac ;; esac GPG="${GPG} --batch --no-tty" conffile=.gnuploadrc to= dry_run=false replace= symlink_files= delete_files= delete_symlinks= collect_var= dbg= nl=' ' usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...] Sign all FILES, and process them at the destinations specified with --to. If CMD is not given, it defaults to uploading. See examples below. Commands: --delete delete FILES from destination --symlink create symbolic links --rmsymlink remove symbolic links -- treat the remaining arguments as files to upload Options: --to DEST specify a destination DEST for FILES (multiple --to options are allowed) --user NAME sign with key NAME --replace allow replacements of existing files --symlink-regex[=EXPR] use sed script EXPR to compute symbolic link names -n, --dry-run do nothing, show what would have been done (including the constructed directive file) --version output version information and exit -h, --help print this help text and exit If --symlink-regex is given without EXPR, then the link target name is created by replacing the version information with '-latest', e.g.: foo-1.3.4.tar.gz -> foo-latest.tar.gz Recognized destinations are: alpha.gnu.org:DIRECTORY savannah.gnu.org:DIRECTORY savannah.nongnu.org:DIRECTORY ftp.gnu.org:DIRECTORY build directive files and upload files by FTP download.gnu.org.ua:{alpha|ftp}/DIRECTORY build directive files and upload files by SFTP [user@]host:DIRECTORY upload files with scp Options and commands are applied in order. If the file $conffile exists in the current working directory, its contents are prepended to the actual command line options. Use this to keep your defaults. Comments (#) and empty lines in $conffile are allowed. <https://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html> gives some further background. Examples: 1. Upload foobar-1.0.tar.gz to ftp.gnu.org: gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz 2. Upload foobar-1.0.tar.gz and foobar-1.0.tar.xz to ftp.gnu.org: gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz foobar-1.0.tar.xz 3. Same as above, and also create symbolic links to foobar-latest.tar.*: gnupload --to ftp.gnu.org:foobar \\ --symlink-regex \\ foobar-1.0.tar.gz foobar-1.0.tar.xz 4. Create a symbolic link foobar-latest.tar.gz -> foobar-1.0.tar.gz and likewise for the corresponding .sig file: gnupload --to ftp.gnu.org:foobar \\ --symlink foobar-1.0.tar.gz foobar-latest.tar.gz \\ foobar-1.0.tar.gz.sig foobar-latest.tar.gz.sig or (equivalent): gnupload --to ftp.gnu.org:foobar \\ --symlink foobar-1.0.tar.gz foobar-latest.tar.gz \\ --symlink foobar-1.0.tar.gz.sig foobar-latest.tar.gz.sig 5. Upload foobar-0.9.90.tar.gz to two sites: gnupload --to alpha.gnu.org:foobar \\ --to sources.redhat.com:~ftp/pub/foobar \\ foobar-0.9.90.tar.gz 6. Delete oopsbar-0.9.91.tar.gz and upload foobar-0.9.91.tar.gz (the -- terminates the list of files to delete): gnupload --to alpha.gnu.org:foobar \\ --to sources.redhat.com:~ftp/pub/foobar \\ --delete oopsbar-0.9.91.tar.gz \\ -- foobar-0.9.91.tar.gz gnupload executes a program ncftpput to do the transfers; if you don't happen to have an ncftp package installed, the ncftpput-ftp script in the build-aux/ directory of the gnulib package (https://savannah.gnu.org/projects/gnulib) may serve as a replacement. Send patches and bug reports to <bug-gnulib@gnu.org>." copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'` copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law." # Read local configuration file if test -r "$conffile"; then echo "$0: Reading configuration file $conffile" conf=`sed 's/#.*$//;/^$/d' "$conffile" | tr "\015$nl" ' '` eval set x "$conf \"\$@\"" shift fi while test -n "$1"; do case $1 in -*) collect_var= case $1 in -h | --help) echo "$usage" exit $? ;; --to) if test -z "$2"; then echo "$0: Missing argument for --to" 1>&2 exit 1 elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2 echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2 echo "$0: is used for direct ftp uploads, not with gnupload)." >&2 echo "$0: See --help and its examples if need be." >&2 exit 1 else to="$to $2" shift fi ;; --user) if test -z "$2"; then echo "$0: Missing argument for --user" 1>&2 exit 1 else GPG="$GPG --local-user $2" shift fi ;; --delete) collect_var=delete_files ;; --replace) replace="replace: true" ;; --rmsymlink) collect_var=delete_symlinks ;; --symlink-regex=*) symlink_expr=`expr "$1" : '[^=]*=\(.*\)'` ;; --symlink-regex) symlink_expr='s|-[0-9][0-9\.]*\(-[0-9][0-9]*\)\{0,1\}\.|-latest.|' ;; --symlink) collect_var=symlink_files ;; -n | --dry-run) dry_run=: ;; --version) echo "gnupload $scriptversion" echo "$copyright" exit 0 ;; --) shift break ;; -*) echo "$0: Unknown option '$1', try '$0 --help'" 1>&2 exit 1 ;; esac ;; *) if test -z "$collect_var"; then break else eval "$collect_var=\"\$$collect_var $1\"" fi ;; esac shift done dprint() { echo "Running $* ..." } if $dry_run; then dbg=dprint fi if test -z "$to"; then echo "$0: Missing destination sites" >&2 exit 1 fi if test -n "$symlink_files"; then x=`echo "$symlink_files" | sed 's/[^ ]//g;s/ //g'` if test -n "$x"; then echo "$0: Odd number of symlink arguments" >&2 exit 1 fi fi if test $# = 0; then if test -z "${symlink_files}${delete_files}${delete_symlinks}"; then echo "$0: No file to upload" 1>&2 exit 1 fi else # Make sure all files exist. We don't want to ask # for the passphrase if the script will fail. for file do if test ! -f $file; then echo "$0: Cannot find '$file'" 1>&2 exit 1 elif test -n "$symlink_expr"; then linkname=`echo $file | sed "$symlink_expr"` if test -z "$linkname"; then echo "$0: symlink expression produces empty results" >&2 exit 1 elif test "$linkname" = $file; then echo "$0: symlink expression does not alter file name" >&2 exit 1 fi fi done fi # Make sure passphrase is not exported in the environment. unset passphrase unset passphrase_fd_0 GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg} # Reset PATH to be sure that echo is a built-in. We will later use # 'echo $passphrase' to output the passphrase, so it is important that # it is a built-in (third-party programs tend to appear in 'ps' # listings with their arguments...). # Remember this script runs with 'set -e', so if echo is not built-in # it will exit now. if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else PATH=/empty echo -n "Enter GPG passphrase: " stty -echo read -r passphrase stty echo echo passphrase_fd_0="--passphrase-fd 0" fi if test $# -ne 0; then for file do echo "Signing $file ..." rm -f $file.sig echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file done fi # mkdirective DESTDIR BASE FILE STMT # Arguments: See upload, below mkdirective () { stmt="$4" if test -n "$3"; then stmt=" filename: $3$stmt" fi cat >${2}.directive<<EOF version: 1.2 directory: $1 comment: gnupload v. $scriptversion$stmt EOF if $dry_run; then echo "File ${2}.directive:" cat ${2}.directive echo "File ${2}.directive:" | sed 's/./-/g' fi } mksymlink () { while test $# -ne 0 do echo "symlink: $1 $2" shift shift done } # upload DEST DESTDIR BASE FILE STMT FILES # Arguments: # DEST Destination site; # DESTDIR Destination directory; # BASE Base name for the directive file; # FILE Name of the file to distribute (may be empty); # STMT Additional statements for the directive file; # FILES List of files to upload. upload () { dest=$1 destdir=$2 base=$3 file=$4 stmt=$5 files=$6 rm -f $base.directive $base.directive.asc case $dest in alpha.gnu.org:*) mkdirective "$destdir" "$base" "$file" "$stmt" echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive $dbg ncftpput ftp-upload.gnu.org /incoming/alpha $files $base.directive.asc ;; ftp.gnu.org:*) mkdirective "$destdir" "$base" "$file" "$stmt" echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive $dbg ncftpput ftp-upload.gnu.org /incoming/ftp $files $base.directive.asc ;; savannah.gnu.org:*) if test -z "$files"; then echo "$0: warning: standalone directives not applicable for $dest" >&2 fi $dbg ncftpput savannah.gnu.org /incoming/savannah/$destdir $files ;; savannah.nongnu.org:*) if test -z "$files"; then echo "$0: warning: standalone directives not applicable for $dest" >&2 fi $dbg ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files ;; download.gnu.org.ua:alpha/*|download.gnu.org.ua:ftp/*) destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'` destdir_topdir=`echo "$destdir" | sed 's,/.*,,'` mkdirective "$destdir_p1" "$base" "$file" "$stmt" echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive for f in $files $base.directive.asc do echo put $f done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir ;; /*) dest_host=`echo "$dest" | sed 's,:.*,,'` mkdirective "$destdir" "$base" "$file" "$stmt" echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive $dbg cp $files $base.directive.asc $dest_host ;; *) if test -z "$files"; then echo "$0: warning: standalone directives not applicable for $dest" >&2 fi $dbg scp $files $dest ;; esac rm -f $base.directive $base.directive.asc } ##### # Process any standalone directives stmt= if test -n "$symlink_files"; then stmt="$stmt `mksymlink $symlink_files`" fi for file in $delete_files do stmt="$stmt archive: $file" done for file in $delete_symlinks do stmt="$stmt rmsymlink: $file" done if test -n "$stmt"; then for dest in $to do destdir=`echo $dest | sed 's/[^:]*://'` upload "$dest" "$destdir" "`hostname`-$$" "" "$stmt" done fi # Process actual uploads for dest in $to do for file do echo "Uploading $file to $dest ..." stmt= # # allowing file replacement is all or nothing. if test -n "$replace"; then stmt="$stmt $replace" fi # files="$file $file.sig" destdir=`echo $dest | sed 's/[^:]*://'` if test -n "$symlink_expr"; then linkname=`echo $file | sed "$symlink_expr"` stmt="$stmt symlink: $file $linkname symlink: $file.sig $linkname.sig" fi upload "$dest" "$destdir" "$file" "$file" "$stmt" "$files" done done exit 0 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: ��������������������������������������������������������������������������a2ps-4.15.5/build-aux/inline-source�����������������������������������������������������������������0000754�0000000�0000000�00000007775�14374753440�013770� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Output the contents of a shell script with sourced files inlined. # Written by Gary V. Vaughan, 2012 # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Copyright (C) 2012-2019, 2021, 2023 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license # <https://opensource.org/licenses/MIT>, and GPL version 2 or later # <https://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # Please report bugs or propose patches to: # <https://github.com/gnulib-modules/bootstrap/issues> # Source required external libraries: . `echo "$0" |${SED-sed} 's|[^/]*$||'`"funclib.sh" . `echo "$0" |${SED-sed} 's|[^/]*$||'`"options-parser" # Set a version string for *this* script. scriptversion=2019-02-19.15; # UTC ## ------ ## ## Usage. ## ## ------ ## # Run 'build-aux/inline-source --help' for help with using this script # from the command line. # Recursively scan through a FILE passed on the command line, replacing # either of the following: # . "relative/file" # . `echo "$0" |edit`"relative/file" # with the contents of the referenced files. ## ---------------- ## ## Options parsing. ## ## ---------------- ## usage='$progpath [OPTION]... FILE' # Short help message in response to '-h'. usage_message='Options: --debug enable verbose shell tracing --version print version information and exit -h, --help print help message and exit ' long_help_message="\ Report bugs to <bug-libtool@gnu.org> General help using GNU software: <https://www.gnu.org/gethelp/>." func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## -------------------- ## ## Resource management. ## ## -------------------- ## # require_AWK # ----------- # Search for a "not hopeless" awk. require_AWK=func_require_AWK func_require_AWK () { $debug_cmd test -n "$AWK" || { # Find the first executable in the list. for _G_prog in gawk mawk nawk awk do require_AWK_IFS=$IFS IFS=${PATH_SEPARATOR-:} for _G_dir in $PATH do IFS=$require_AWK_IFS if test -f "$_G_dir/$_G_prog" && test -x "$_G_dir/$_G_prog" then AWK=$_G_dir/$_G_prog break 2 fi done IFS=$require_AWK_IFS done } test -n "$AWK" || func_fatal_error "\ Please install GNU Awk, or 'export AWK=/path/to/gnu/awk'." func_verbose "found '$AWK'." require_AWK=: } ## --------------- ## ## Core functions. ## ## --------------- ## # func_include LINE # ----------------- # Output the contents of file included by LINE. func_include () { $require_AWK test -f "$1" \ || func_fatal_error "file '$1' not found" _G_scriptdir=`echo "$1" |$SED 's|[^/]*$||'` test -n "$_G_scriptdir" || _G_scriptdir="./" $AWK ' BEGIN { magic = '${_RECURSE_MAGIC-0}'; } /^#!/ && magic == 0 { print $0; print "## DO NOT EDIT - This file generated from '$1'"; print "## by '$progname' v'$scriptversion'"; magic++; next; } /^\. ['\''"].*['\''"]$/ { file = substr ($2, 2, length ($2) -2); system (sprintf ("env _RECURSE_MAGIC=%d '$progpath' %s", magic, file)); next; } /^\. `echo [^`]*`['\''"][^'\''"]*['\''"]$/ { tail = substr ($0, match ($0, /`['\''"]/)); file = substr (tail, 3, length (tail) -3); system (sprintf ("env _RECURSE_MAGIC=%d '$progpath' '"$_G_scriptdir"'%s", magic, file)); next; } { print; } ' < "$1" } func_include "$1" exit 0 # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: ���a2ps-4.15.5/build-aux/install-sh��������������������������������������������������������������������0000754�0000000�0000000�00000035776�14424520614�013263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # install - install a program, script, or datafile scriptversion=2020-11-14.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 # Create dirs (including intermediate dirs) using mode 755. # This is like GNU 'install' as of coreutils 8.32 (2020). mkdir_umask=22 backupsuffix= chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -p pass -p to $cpprog. -s $stripprog installed files. -S SUFFIX attempt to back up existing files, with suffix SUFFIX. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG By default, rm is invoked with -f; when overridden with RMPROG, it's up to you to specify -f if you want it. If -S is not specified, no backups are attempted. Email bug reports to bug-automake@gnu.org. Automake home page: https://www.gnu.org/software/automake/ " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -p) cpprog="$cpprog -p";; -s) stripcmd=$stripprog;; -S) backupsuffix="$2" shift;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? # Don't chown directories that already exist. if test $dstdir_status = 0; then chowncmd="" fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dstbase=`basename "$src"` case $dst in */) dst=$dst$dstbase;; *) dst=$dst/$dstbase;; esac dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi case $dstdir in */) dstdirslash=$dstdir;; *) dstdirslash=$dstdir/;; esac obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false # The $RANDOM variable is not portable (e.g., dash). Use it # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap ' ret=$? rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null exit $ret ' 0 # Because "mkdir -p" follows existing symlinks and we likely work # directly in world-writeable /tmp, make sure that the '$tmpdir' # directory is successfully created first before we actually test # 'mkdir -p'. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. test_tmpdir="$tmpdir/a" ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=${dstdirslash}_inst.$$_ rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && { test -z "$stripcmd" || { # Create $dsttmp read-write so that cp doesn't create it read-only, # which would cause strip to fail. if test -z "$doit"; then : >"$dsttmp" # No need to fork-exec 'touch'. else $doit touch "$dsttmp" fi } } && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # If $backupsuffix is set, and the file being installed # already exists, attempt a backup. Don't worry if it fails, # e.g., if mv doesn't support -f. if test -n "$backupsuffix" && test -f "$dst"; then $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null fi # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: ��a2ps-4.15.5/build-aux/ltmain.sh���������������������������������������������������������������������0000755�0000000�0000000�00001213201�14337402464�013066� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /usr/bin/env sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2019-02-19.15 # libtool (GNU libtool) 2.4.7 # Provide generalized library-building support services. # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. PROGRAM=libtool PACKAGE=libtool VERSION="2.4.7 Debian-2.4.7-5" package_revision=2.4.7 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2019-02-19.15; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Copyright (C) 2004-2019, 2021 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license # <https://opensource.org/license/MIT>, and GPL version 2 or later # <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # Please report bugs or propose patches to: # <https://github.com/gnulib-modules/bootstrap/issues> ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # These NLS vars are set unconditionally (bootstrap issue #24). Unset those # in case the environment reset is needed later and the $save_* variant is not # defined (see the code above). LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some retarded systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # func_unset VAR # -------------- # Portably unset VAR. # In some shells, an 'unset VAR' statement leaves a non-zero return # status if VAR is already unset, which might be problematic if the # statement is used at the end of a function (thus poisoning its return # value) or when 'set -e' is active (causing even a spurious abort of # the script in this case). func_unset () { { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } } # Make sure CDPATH doesn't cause `cd` commands to output the target dir. func_unset CDPATH # Make sure ${,E,F}GREP behave sanely. func_unset GREP_OPTIONS ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" # require_check_ifs_backslash # --------------------------- # Check if we can use backslash as IFS='\' separator, and set # $check_ifs_backshlash_broken to ':' or 'false'. require_check_ifs_backslash=func_require_check_ifs_backslash func_require_check_ifs_backslash () { _G_save_IFS=$IFS IFS='\' _G_check_ifs_backshlash='a\\b' for _G_i in $_G_check_ifs_backshlash do case $_G_i in a) check_ifs_backshlash_broken=false ;; '') break ;; *) check_ifs_backshlash_broken=: break ;; esac done IFS=$_G_save_IFS require_check_ifs_backslash=: } ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath=$0 # The name of this program. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_arg pretty "$2" eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd func_quote_arg pretty "$2" eval "$1=\$$1\\ \$func_quote_arg_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_portable EVAL ARG # ---------------------------- # Internal function to portably implement func_quote_arg. Note that we still # keep attention to performance here so we as much as possible try to avoid # calling sed binary (so far O(N) complexity as long as func_append is O(1)). func_quote_portable () { $debug_cmd $require_check_ifs_backslash func_quote_portable_result=$2 # one-time-loop (easy break) while true do if $1; then func_quote_portable_result=`$ECHO "$2" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` break fi # Quote for eval. case $func_quote_portable_result in *[\\\`\"\$]*) # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string # contains the shell wildcard characters. case $check_ifs_backshlash_broken$func_quote_portable_result in :*|*[\[\*\?]*) func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ | $SED "$sed_quote_subst"` break ;; esac func_quote_portable_old_IFS=$IFS for _G_char in '\' '`' '"' '$' do # STATE($1) PREV($2) SEPARATOR($3) set start "" "" func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy IFS=$_G_char for _G_part in $func_quote_portable_result do case $1 in quote) func_append func_quote_portable_result "$3$2" set quote "$_G_part" "\\$_G_char" ;; start) set first "" "" func_quote_portable_result= ;; first) set quote "$_G_part" "" ;; esac done done IFS=$func_quote_portable_old_IFS ;; *) ;; esac break done func_quote_portable_unquoted_result=$func_quote_portable_result case $func_quote_portable_result in # double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # many bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_portable_result=\"$func_quote_portable_result\" ;; esac } # func_quotefast_eval ARG # ----------------------- # Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', # but optimized for speed. Result is stored in $func_quotefast_eval. if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then printf -v _GL_test_printf_tilde %q '~' if test '\~' = "$_GL_test_printf_tilde"; then func_quotefast_eval () { printf -v func_quotefast_eval_result %q "$1" } else # Broken older Bash implementations. Make those faster too if possible. func_quotefast_eval () { case $1 in '~'*) func_quote_portable false "$1" func_quotefast_eval_result=$func_quote_portable_result ;; *) printf -v func_quotefast_eval_result %q "$1" ;; esac } fi else func_quotefast_eval () { func_quote_portable false "$1" func_quotefast_eval_result=$func_quote_portable_result } fi # func_quote_arg MODEs ARG # ------------------------ # Quote one ARG to be evaled later. MODEs argument may contain zero or more # specifiers listed below separated by ',' character. This function returns two # values: # i) func_quote_arg_result # double-quoted (when needed), suitable for a subsequent eval # ii) func_quote_arg_unquoted_result # has all characters that are still active within double # quotes backslashified. Available only if 'unquoted' is specified. # # Available modes: # ---------------- # 'eval' (default) # - escape shell special characters # 'expand' # - the same as 'eval'; but do not quote variable references # 'pretty' # - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might # be used later in func_quote to get output like: 'echo "a b"' instead # of 'echo a\ b'. This is slower than default on some shells. # 'unquoted' # - produce also $func_quote_arg_unquoted_result which does not contain # wrapping double-quotes. # # Examples for 'func_quote_arg pretty,unquoted string': # # string | *_result | *_unquoted_result # ------------+-----------------------+------------------- # " | \" | \" # a b | "a b" | a b # "a b" | "\"a b\"" | \"a b\" # * | "*" | * # z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" # # Examples for 'func_quote_arg pretty,unquoted,expand string': # # string | *_result | *_unquoted_result # --------------+---------------------+-------------------- # z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" func_quote_arg () { _G_quote_expand=false case ,$1, in *,expand,*) _G_quote_expand=: ;; esac case ,$1, in *,pretty,*|*,expand,*|*,unquoted,*) func_quote_portable $_G_quote_expand "$2" func_quote_arg_result=$func_quote_portable_result func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result ;; *) # Faster quote-for-eval for some shells. func_quotefast_eval "$2" func_quote_arg_result=$func_quotefast_eval_result ;; esac } # func_quote MODEs ARGs... # ------------------------ # Quote all ARGs to be evaled later and join them into single command. See # func_quote_arg's description for more info. func_quote () { $debug_cmd _G_func_quote_mode=$1 ; shift func_quote_result= while test 0 -lt $#; do func_quote_arg "$_G_func_quote_mode" "$1" if test -n "$func_quote_result"; then func_append func_quote_result " $func_quote_arg_result" else func_append func_quote_result "$func_quote_arg_result" fi shift done } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_arg pretty,expand "$_G_cmd" eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_arg expand,pretty "$_G_cmd" eval "func_echo $func_quote_arg_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Copyright (C) 2010-2019, 2021 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license # <https://opensource.org/license/MIT>, and GPL version 2 or later # <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # Please report bugs or propose patches to: # <https://github.com/gnulib-modules/bootstrap/issues> # Set a version string for this script. scriptversion=2019-02-19.15; # UTC ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # in the main code. A hook is just a list of function names that can be # run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of hook functions to be called by # FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_propagate_result FUNC_NAME_A FUNC_NAME_B # --------------------------------------------- # If the *_result variable of FUNC_NAME_A _is set_, assign its value to # *_result variable of FUNC_NAME_B. func_propagate_result () { $debug_cmd func_propagate_result_result=: if eval "test \"\${${1}_result+set}\" = set" then eval "${2}_result=\$${1}_result" else func_propagate_result_result=false fi } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd _G_rc_run_hooks=false case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do func_unset "${_G_hook}_result" eval $_G_hook '${1+"$@"}' func_propagate_result $_G_hook func_run_hooks if $func_propagate_result_result; then eval set dummy "$func_run_hooks_result"; shift fi done } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list from your hook function. You may remove # or edit any options that you action, and then pass back the remaining # unprocessed options in '<hooked_function_name>_result', escaped # suitably for 'eval'. # # The '<hooked_function_name>_result' variable is automatically unset # before your hook gets called; for best performance, only set the # *_result variable when necessary (i.e. don't call the 'func_quote' # function unnecessarily because it can be an expensive operation on some # machines). # # Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # No change in '$@' (ignored completely by this hook). Leave # # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # args_changed=false # # # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: # args_changed=: # ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # args_changed=: # ;; # *) # Make sure the first unrecognised option "$_G_opt" # # is added back to "$@" in case we need it later, # # if $args_changed was set to 'true'. # set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # # # Only call 'func_quote' here if we processed at least one argument. # if $args_changed; then # func_quote eval ${1+"$@"} # my_silent_option_result=$func_quote_result # fi # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # } # func_add_hook func_validate_options my_option_validation # # You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options_finish [ARG]... # ---------------------------- # Finishing the option parse loop (call 'func_options' hooks ATM). func_options_finish () { $debug_cmd func_run_hooks func_options ${1+"$@"} func_propagate_result func_run_hooks func_options_finish } # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd _G_options_quoted=false for my_func in options_prep parse_options validate_options options_finish do func_unset func_${my_func}_result func_unset func_run_hooks_result eval func_$my_func '${1+"$@"}' func_propagate_result func_$my_func func_options if $func_propagate_result_result; then eval set dummy "$func_options_result"; shift _G_options_quoted=: fi done $_G_options_quoted || { # As we (func_options) are top-level options-parser function and # nobody quoted "$@" for us yet, we need to do it explicitly for # caller. func_quote eval ${1+"$@"} func_options_result=$func_quote_result } } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propagate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} func_propagate_result func_run_hooks func_options_prep } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} func_propagate_result func_run_hooks func_parse_options if $func_propagate_result_result; then eval set dummy "$func_parse_options_result"; shift # Even though we may have changed "$@", we passed the "$@" array # down into the hook and it quoted it for us (because we are in # this if-branch). No need to quote it again. _G_parse_options_requote=false fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break # We expect that one of the options parsed in this function matches # and thus we remove _G_opt from "$@" and need to re-quote. _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" >&2 $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) if test $# = 0 && func_missing_arg $_G_opt; then _G_parse_options_requote=: break fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift _G_match_parse_options=false break ;; esac if $_G_match_parse_options; then _G_parse_options_requote=: fi done if $_G_parse_options_requote; then # save modified positional parameters for caller func_quote eval ${1+"$@"} func_parse_options_result=$func_quote_result fi } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables # after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} if test "x$func_split_equals_lhs" = "x$1"; then func_split_equals_rhs= fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs=" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. # The version message is extracted from the calling file's header # comments, with leading '# ' stripped: # 1. First display the progname and version # 2. Followed by the header comment line matching /^# Written by / # 3. Then a blank line followed by the first following line matching # /^# Copyright / # 4. Immediately followed by any lines between the previous matches, # except lines preceding the intervening completely blank line. # For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /^# Written by /!b s|^# ||; p; n :fwd2blnk /./ { n b fwd2blnk } p; n :holdwrnt s|^# || s|^# *$|| /^Copyright /!{ /./H n b holdwrnt } s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| G s|\(\n\)\n*|\1|g p; q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.4.7' # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { $debug_cmd $warning_func ${1+"$@"} } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --mode=MODE use operation mode MODE --no-warnings equivalent to '-Wnone' --preserve-dup-deps don't remove duplicate dependency libraries --quiet, --silent don't print informational messages --tag=TAG use configuration variables from tag TAG -v, --verbose print more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. Try '$progname --help --mode=MODE' for a more detailed description of MODE. When reporting a bug, please describe a test case to reproduce it and include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname $scriptversion Debian-2.4.7-5 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to <bug-libtool@gnu.org>. GNU libtool home page: <http://www.gnu.org/s/libtool/>. General help using GNU software: <http://www.gnu.org/gethelp/>." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_preserve_dup_deps=false opt_quiet=false nonopt= preserve_args= _G_rc_lt_options_prep=: _G_rc_lt_options_prep=: # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; *) _G_rc_lt_options_prep=false ;; esac if $_G_rc_lt_options_prep; then # Pass back the list of options. func_quote eval ${1+"$@"} libtool_options_prep_result=$func_quote_result fi } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd _G_rc_lt_parse_options=false # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 case $1 in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $_G_opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"} ; shift _G_match_lt_parse_options=false break ;; esac $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done if $_G_rc_lt_parse_options; then # save modified positional parameters for caller func_quote eval ${1+"$@"} libtool_parse_options_result=$func_quote_result fi } func_add_hook func_parse_options libtool_parse_options # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; then func_error "unrecognized option '-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help=$help help="Try '$progname --help --mode=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote eval ${1+"$@"} libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test yes = "$lalib_p" } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # 'FILE.' does not work on cygwin managed mounts. func_source () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=$1 if test yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <<EOF # $write_libobj - a libtool object file # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # Name of the PIC object. pic_object=$write_lobj # Name of the non-PIC object non_pic_object=$write_oldobj EOF $MV "${write_libobj}T" "$write_libobj" } } ################################################## # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # ################################################## # func_convert_core_file_wine_to_w32 ARG # Helper function used by file name conversion functions when $build is *nix, # and $host is mingw, cygwin, or some other w32 environment. Relies on a # correctly configured wine environment available, with the winepath program # in $build's $PATH. # # ARG is the $build file name to be converted to w32 format. # Result is available in $func_convert_core_file_wine_to_w32_result, and will # be empty on error (or when ARG is empty) func_convert_core_file_wine_to_w32 () { $debug_cmd func_convert_core_file_wine_to_w32_result=$1 if test -n "$1"; then # Unfortunately, winepath does not exit with a non-zero error code, so we # are forced to check the contents of stdout. On the other hand, if the # command is not found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both error code of # zero AND non-empty stdout, which explains the odd construction: func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_mode_compile arg... func_mode_compile () { $debug_cmd # Get the compilation command and the source file. base_compile= srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg=$arg arg_mode=normal ;; target ) libobj=$arg arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg=$srcfile srcfile=$arg ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_arg pretty "$libobj" test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname=$func_basename_result xdir=$func_dirname_result lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext lockfile=$output_obj.lock else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_arg pretty "$srcfile" qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking -Wc,FLAG -Xcompiler FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix '.c' with the library object suffix, '.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the '--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE use a list of object files found in FILE to specify objects -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wa,FLAG -Xassembler FLAG pass linker-specific FLAG directly to the assembler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with '-') are ignored. Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in '.la', then a libtool library is created, only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created using 'ar' and 'ranlib', or on Windows using 'lib'. If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # The first argument is the command name. cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir=$func_dirname_result ;; *) func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file=$progdir/$program fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if $opt_dry_run; then # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd=\$cmd$args fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. func_quote_arg pretty "$nonopt" install_prog="$func_quote_arg_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_arg pretty "$arg" func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_arg pretty "$arg" func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then func_quote_arg pretty "$arg2" fi func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_arg pretty "$install_override_mode" func_append install_shared_prog " -m $func_quote_arg_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=: if $isdir; then destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." destdir=$func_dirname_result destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking '$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname=$1 shift srcname=$realname test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) case $realname in *_dll.a) tstripme= ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name=$func_basename_result instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest=$destfile destfile= ;; *) func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=.exe fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script '$wrapper'" finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { func_quote_arg expand,pretty "$relink_command" eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file=$outputname else func_warning "cannot relink '$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name=$func_basename_result # Set up the ranlib parameters. oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; then func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen <import library>. $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 </dev/null >/dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $debug_cmd my_gentop=$1; shift my_oldlibs=${1+"$@"} my_oldobjs= my_xlib= my_xabs= my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches; do func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" cd "unfat-$$/$darwin_base_archive-$darwin_arch" func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" func_quote_arg pretty "$ECHO" qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat <<EOF /* $cwrappersource - temporary wrapper executable for $objdir/$outputname Generated by $PROGRAM (GNU $PACKAGE) $VERSION The $output program cannot be directly executed until all the libtool libraries that it depends on are installed. This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. */ EOF cat <<"EOF" #ifdef _MSC_VER # define _CRT_SECURE_NO_DEPRECATE 1 #endif #include <stdio.h> #include <stdlib.h> #ifdef _MSC_VER # include <direct.h> # include <process.h> # include <io.h> #else # include <unistd.h> # include <stdint.h> # ifdef __CYGWIN__ # include <io.h> # endif #endif #include <malloc.h> #include <stdarg.h> #include <assert.h> #include <string.h> #include <ctype.h> #include <errno.h> #include <fcntl.h> #include <sys/stat.h> #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #if defined PATH_MAX # define LT_PATHMAX PATH_MAX #elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <<EOF #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) # define externally_visible volatile #else # define externally_visible __attribute__((externally_visible)) volatile #endif externally_visible const char * MAGIC_EXE = "$magic_exe"; const char * LIB_PATH_VARNAME = "$shlibpath_var"; EOF if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then func_to_host_path "$temp_rpath" cat <<EOF const char * LIB_PATH_VALUE = "$func_to_host_path_result"; EOF else cat <<"EOF" const char * LIB_PATH_VALUE = ""; EOF fi if test -n "$dllsearchpath"; then func_to_host_path "$dllsearchpath:" cat <<EOF const char * EXE_PATH_VARNAME = "PATH"; const char * EXE_PATH_VALUE = "$func_to_host_path_result"; EOF else cat <<"EOF" const char * EXE_PATH_VARNAME = ""; const char * EXE_PATH_VALUE = ""; EOF fi if test yes = "$fast_install"; then cat <<EOF const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ EOF else cat <<EOF const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ EOF fi cat <<"EOF" #define LTWRAPPER_OPTION_PREFIX "--lt-" static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; int main (int argc, char *argv[]) { char **newargz; int newargc; char *tmp_pathspec; char *actual_cwrapper_path; char *actual_cwrapper_name; char *target_name; char *lt_argv_zero; int rval = 127; int i; program_name = (char *) xstrdup (base_name (argv[0])); newargz = XMALLOC (char *, (size_t) argc + 1); /* very simple arg parsing; don't want to rely on getopt * also, copy all non cwrapper options to newargz, except * argz[0], which is handled differently */ newargc=0; for (i = 1; i < argc; i++) { if (STREQ (argv[i], dumpscript_opt)) { EOF case $host in *mingw* | *cygwin* ) # make stdout use "unix" line endings echo " setmode(1,_O_BINARY);" ;; esac cat <<"EOF" lt_dump_script (stdout); return 0; } if (STREQ (argv[i], debug_opt)) { lt_debug = 1; continue; } if (STREQ (argv[i], ltwrapper_option_prefix)) { /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX namespace, but it is not one of the ones we know about and have already dealt with, above (inluding dump-script), then report an error. Otherwise, targets might begin to believe they are allowed to use options in the LTWRAPPER_OPTION_PREFIX namespace. The first time any user complains about this, we'll need to make LTWRAPPER_OPTION_PREFIX a configure-time option or a configure.ac-settable value. */ lt_fatal (__FILE__, __LINE__, "unrecognized %s option: '%s'", ltwrapper_option_prefix, argv[i]); } /* otherwise ... */ newargz[++newargc] = xstrdup (argv[i]); } newargz[++newargc] = NULL; EOF cat <<EOF /* The GNU banner must be the first non-error debug message */ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n"); EOF cat <<"EOF" lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); tmp_pathspec = find_executable (argv[0]); if (tmp_pathspec == NULL) lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); lt_debugprintf (__FILE__, __LINE__, "(main) found exe (before symlink chase) at: %s\n", tmp_pathspec); actual_cwrapper_path = chase_symlinks (tmp_pathspec); lt_debugprintf (__FILE__, __LINE__, "(main) found exe (after symlink chase) at: %s\n", actual_cwrapper_path); XFREE (tmp_pathspec); actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); strendzap (actual_cwrapper_path, actual_cwrapper_name); /* wrapper name transforms */ strendzap (actual_cwrapper_name, ".exe"); tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); XFREE (actual_cwrapper_name); actual_cwrapper_name = tmp_pathspec; tmp_pathspec = 0; /* target_name transforms -- use actual target program name; might have lt- prefix */ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); strendzap (target_name, ".exe"); tmp_pathspec = lt_extend_str (target_name, ".exe", 1); XFREE (target_name); target_name = tmp_pathspec; tmp_pathspec = 0; lt_debugprintf (__FILE__, __LINE__, "(main) libtool target name: %s\n", target_name); EOF cat <<EOF newargz[0] = XMALLOC (char, (strlen (actual_cwrapper_path) + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); strcpy (newargz[0], actual_cwrapper_path); strcat (newargz[0], "$objdir"); strcat (newargz[0], "/"); EOF cat <<"EOF" /* stop here, and copy so we don't have to do this twice */ tmp_pathspec = xstrdup (newargz[0]); /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ strcat (newargz[0], actual_cwrapper_name); /* DO want the lt- prefix here if it exists, so use target_name */ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); XFREE (tmp_pathspec); tmp_pathspec = NULL; EOF case $host_os in mingw*) cat <<"EOF" { char* p; while ((p = strchr (newargz[0], '\\')) != NULL) { *p = '/'; } while ((p = strchr (lt_argv_zero, '\\')) != NULL) { *p = '/'; } } EOF ;; esac cat <<"EOF" XFREE (target_name); XFREE (actual_cwrapper_path); XFREE (actual_cwrapper_name); lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ lt_setenv ("DUALCASE", "1"); /* for MSK sh */ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) because on Windows, both *_VARNAMEs are PATH but uninstalled libraries must come first. */ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", nonnull (lt_argv_zero)); for (i = 0; i < newargc; i++) { lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", i, nonnull (newargz[i])); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ newargz = prepare_spawn (newargz); rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ lt_debugprintf (__FILE__, __LINE__, "(main) failed to launch target \"%s\": %s\n", lt_argv_zero, nonnull (strerror (errno))); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal (__FILE__, __LINE__, "memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined HAVE_DOS_BASED_FILE_SYSTEM /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined HAVE_DOS_BASED_FILE_SYSTEM if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined HAVE_DOS_BASED_FILE_SYSTEM } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = (size_t) (q - p); p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { size_t orig_value_len = strlen (orig_value); size_t add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift func_quote_arg pretty,unquoted "$arg" qarg=$func_quote_arg_unquoted_result func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols=$arg test -f "$arg" \ || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex=$arg prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; os2dllname) os2dllname=$arg prev= continue ;; precious_regex) precious_files_regex=$arg prev= continue ;; release) release=-$arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xassembler) func_append compiler_flags " -Xassembler $qarg" prev= func_append compile_command " -Xassembler $qarg" func_append finalize_command " -Xassembler $qarg" continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg=$arg case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between '-L' and '$1'" else func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of '$dir'" dir=$absdir ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199. -pthread) case $host in *solaris2*) ;; *) case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac ;; esac continue ;; -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module=$wl-multi_module continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host" func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -os2dllname) prev=os2dllname continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_arg pretty "$flag" func_append arg " $func_quote_arg_result" func_append compiler_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_arg pretty "$flag" func_append arg " $wl$func_quote_arg_result" func_append compiler_flags " $wl$func_quote_arg_result" func_append linker_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xassembler) prev=xassembler continue ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_arg pretty "$arg" arg=$func_quote_arg_result ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer # -fuse-ld=* Linker select flags for GCC # -static-* direct GCC to link specific libraries statically # -fcilkplus Cilk Plus language extension features for C/C++ # -Wa,* Pass flags directly to the assembler -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus|-Wa,*) func_quote_arg pretty "$arg" arg=$func_quote_arg_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; -Z*) if test os2 = "`expr $host : '.*\(os2\)'`"; then # OS/2 uses -Zxxx to specify OS/2-specific options compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case $arg in -Zlinker | -Zstack) prev=xcompiler ;; esac continue else # Otherwise treat like 'Some other compiler flag' below func_quote_arg pretty "$arg" arg=$func_quote_arg_result fi ;; # Some other compiler flag. -* | +*) func_quote_arg pretty "$arg" arg=$func_quote_arg_result ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result test none = "$pic_object" || { # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object } # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_arg pretty "$arg" arg=$func_quote_arg_result ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the '$prevarg' option requires an argument" if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname=$func_basename_result libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" # Definition is injected by LT_CONFIG during libtool generation. func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" func_dirname "$output" "/" "" output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs=$tmp_deplibs fi if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass"; then libs=$deplibs deplibs= fi if test prog = "$linkmode"; then case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs=$dlprefiles fi if test dlopen = "$pass"; then # Collect dlpreopened libraries save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test lib != "$linkmode" && test prog != "$linkmode"; then func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib=$searchdir/lib$name$search_ext if test -f "$lib"; then if test .la = "$search_ext"; then found=: else found=false fi break 2 fi done done if $found; then # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll=$l done if test "X$ll" = "X$old_library"; then # only static version available found=false func_dirname "$lib" "" "." ladir=$func_dirname_result lib=$ladir/$old_library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi else # deplib doesn't seem to be a libtool library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l *.ltframework) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=: fi ;; pass_all) valid_a_lib=: ;; esac if $valid_a_lib; then echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." fi ;; esac continue ;; prog) if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test conv = "$pass"; then deplibs="$deplib $deplibs" elif test prog = "$linkmode"; then if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=: continue ;; esac # case $deplib $found || test -f "$lib" \ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir=$func_dirname_result dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass" || { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test yes = "$prefer_static_libs" || test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib=$l done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. if test dlopen = "$pass"; then test -z "$libdir" \ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || test yes != "$dlopen_support" || test no = "$build_libtool_libs" then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir=$ladir fi ;; esac func_basename "$lib" laname=$func_basename_result # Find the relevant object directory and library name. if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library '$lib' was moved." dir=$ladir absdir=$abs_ladir libdir=$abs_ladir else dir=$lt_sysroot$libdir absdir=$lt_sysroot$libdir fi test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir=$ladir absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else dir=$ladir/$objdir absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test dlpreopen = "$pass"; then if test -z "$libdir" && test prog = "$linkmode"; then func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=false if test no != "$link_all_deplibs" || test -z "$library_names" || test no = "$build_libtool_libs"; then linkalldeplibs=: fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && { { test no = "$prefer_static_libs" || test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if $alldeplibs && { test pass_all = "$deplibs_check_method" || { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule=$dlpremoduletest break fi done if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test lib = "$linkmode" && test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major ;; esac eval soname=\"$soname_spec\" else soname=$realname fi # Make a new name for the extract_expsyms_cmds to use soroot=$soname func_basename "$soroot" soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test no = "$hardcode_direct"; then add=$dir/$linklib case $host in *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add=$dir/$old_library fi elif test -n "$old_library"; then add=$dir/$old_library fi fi esac elif test no = "$hardcode_minus_L"; then case $host in *-*-sunos*) add_shlibpath=$dir ;; esac add_dir=-L$dir add=-l$name elif test no = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; relink) if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$dir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name elif test yes = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; *) lib_linked=no ;; esac if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test yes != "$hardcode_direct" && test yes != "$hardcode_minus_L" && test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add=-l$name elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib"; then add=$inst_prefix_dir$libdir/$linklib else add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name fi if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test unsupported != "$hardcode_direct"; then test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test yes = "$build_libtool_libs"; then # Not a shared library if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test lib = "$linkmode"; then if test -n "$dependency_libs" && { test yes != "$hardcode_into_libs" || test yes = "$build_old_libs" || test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of '$dir'" absdir=$dir fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names"; then for tmp in $deplibrary_names; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl"; then depdepl=$absdir/$objdir/$depdepl darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) path=-L$absdir/$objdir ;; esac else eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "'$deplib' seems to be moved" path=-L$absdir fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs=$newdependency_libs if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test dlopen != "$pass"; then test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= } if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" else vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Add Sun CC postdeps if required: test CXX = "$tagname" && { case $host_os in linux*) case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; solaris*) func_cc_basename "$CC" case $func_cc_basename_result in CC* | sunCC*) func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; esac } # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i= ;; esac if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test prog = "$linkmode"; then dlfiles=$newdlfiles fi if test prog = "$linkmode" || test lib = "$linkmode"; then dlprefiles=$newdlprefiles fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs=$output func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test no = "$module" \ && func_fatal_help "libtool library '$output' must begin with 'lib'" if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test pass_all != "$deplibs_check_method"; then func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test no = "$dlself" \ || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test 1 -lt "$#" \ && func_warning "ignoring multiple '-rpath's for a libtool library" install_libdir=$1 oldlibs= if test -z "$rpath"; then if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift IFS=$save_ifs test -n "$7" && \ func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type '$version_type'" ;; esac ;; no) current=$1 revision=$2 age=$3 ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT '$current' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION '$revision' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE '$age' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE '$age' is greater than the current interface number '$current'" func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" # On Darwin other compilers case $CC in nagfor*) verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ;; *) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; esac ;; freebsd-aout) major=.$current versuffix=.$current.$revision ;; freebsd-elf | midnightbsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; irix | nonstopux) if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring_prefix$major.$iface:$verstring done # Before this point, $major must not contain '.'. major=.$major versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=.$current.$age.$revision verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring:$iface.0 done # Make executables depend on our current version. func_append verstring ":$current.0" ;; qnx) major=.$current versuffix=.$current ;; sco) major=.$current versuffix=.$current ;; sunos) major=.$current versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result versuffix=-$major ;; *) func_fatal_configuration "unknown library version type '$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring=0.0 ;; esac if test no = "$need_version"; then versuffix= else versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided if test yes,no = "$avoid_version,$need_version"; then major= versuffix= verstring= fi # Check to see if the archive will have undefined symbols. if test yes = "$allow_undefined"; then if test unsupported = "$allow_undefined_flag"; then if test yes = "$build_old_libs"; then func_warning "undefined symbols not allowed in $host shared libraries; building static only" build_libtool_libs=no else func_fatal_error "can't build $host shared library unless -no-undefined is specified" fi fi else # Don't allow undefined symbols. allow_undefined_flag=$no_undefined_flag fi fi func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" test " " = "$libobjs" && libobjs= if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release= versuffix= major= newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c <<EOF int main() { return 0; } EOF $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then ldd_output=`ldd conftest` for i in $deplibs; do case $i in -l*) func_stripname -l '' "$i" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" i= ;; esac fi if test -n "$i"; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then func_append newdeplibs " $i" else droppeddeps=yes echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which I believe you do not have" echo "*** because a test_compile did reveal that the linker did not use it for" echo "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) func_append newdeplibs " $i" ;; esac done else # Error occurred in the first compile. Let's try to salvage # the situation: Compile a separate program for each library. for i in $deplibs; do case $i in -l*) func_stripname -l '' "$i" name=$func_stripname_result $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" i= ;; esac fi if test -n "$i"; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then func_append newdeplibs " $i" else droppeddeps=yes echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because a test_compile did reveal that the linker did not use this one" echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes echo $ECHO "*** Warning! Library $i is needed by this library but I was not able to" echo "*** make it link in! You will probably need to install it or some" echo "*** library that it depends on before this library will be fully" echo "*** functional. Installing it before continuing would be even better." fi ;; *) func_append newdeplibs " $i" ;; esac done fi ;; file_magic*) set dummy $deplibs_check_method; shift file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` if test -n "$file_magic_glob"; then libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` else libnameglob=$libname fi test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do if test yes = "$want_nocaseglob"; then shopt -s nocaseglob potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test yes = "$allow_libtool_libs_with_static_runtimes"; then for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test yes = "$droppeddeps"; then if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test yes = "$build_libtool_libs"; then # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath=$finalize_rpath test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath=$finalize_shlibpath test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname=$realname fi if test -z "$dlname"; then dlname=$soname fi lib=$output_objdir/$realname linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS=$save_ifs if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi ${skipped_export-false} && { func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { func_quote_arg expand,pretty "$cmd" eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi } libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs=$IFS; IFS='~' for cmd in $cmds; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { func_quote_arg expand,pretty "$cmd" eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs # Restore the uninstalled library and exit if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. dlname=$soname fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ func_warning "'-version-info' is ignored for objects" test -n "$release" && \ func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj=$output ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # if reload_cmds runs $LD directly, get rid of -Wl from # whole_archive_flag_spec and hope we can get by with turning comma # into space. case $reload_cmds in *\$LD[\ \$]*) wl= ;; esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS } if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "'-version-info' is ignored for programs" test -n "$release" && \ func_warning "'-release' is ignored for programs" $preload \ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " $wl-bind_at_load" func_append finalize_command " $wl-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath=$rpath rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath=$rpath if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) if test no = "$need_relink" || test yes != "$build_libtool_libs"; then wrappers_required=false fi ;; esac $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.$objext"; then func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test yes = "$no_install"; then # We don't need to create a wrapper script. link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi case $hardcode_action,$fast_install in relink,*) # Fast installation is not supported link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath func_warning "this platform does not like uninstalled shared libraries" func_warning "'$output' will be relinked during installation" ;; *,yes) link_command=$finalize_var$compile_command$finalize_rpath relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ;; *,no) link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath ;; *,needless) link_command=$finalize_var$compile_command$finalize_rpath relink_command= ;; esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_arg pretty "$var_value" relink_command="$var=$func_quote_arg_result; export $var; $relink_command" fi done func_quote eval cd "`pwd`" func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" relink_command=$func_quote_arg_unquoted_result fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource=$output_path/$objdir/lt-$output_name.c cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do case $build_libtool_libs in convenience) oldobjs="$libobjs_save $symfileobj" addlibs=$convenience build_libtool_libs=no ;; module) oldobjs=$libobjs_save addlibs=$old_convenience build_libtool_libs=no ;; *) oldobjs="$old_deplibs $non_pic_objects" $preload && test -f "$symfileobj" \ && func_append oldobjs " $symfileobj" addlibs=$old_convenience ;; esac if test -n "$addlibs"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_arg pretty,unquoted "$var_value" relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" fi done # Quote the link command for shipping. func_quote eval cd "`pwd`" relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" func_quote_arg pretty,unquoted "$relink_command" relink_command=$func_quote_arg_unquoted_result if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test yes = "$installed"; then if test -z "$install_libdir"; then break fi output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name=$func_basename_result func_resolve_sysroot "$deplib" eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } if test link = "$opt_mode" || test relink = "$opt_mode"; then func_mode_link ${1+"$@"} fi # func_mode_uninstall arg... func_mode_uninstall () { $debug_cmd RM=$nonopt files= rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic for arg do case $arg in -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir=$func_dirname_result if test . = "$dir"; then odir=$objdir else odir=$dir/$objdir fi func_basename "$file" name=$func_basename_result test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif $rmforce; then continue fi rmfiles=$file case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.$objext" if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name"; then func_append rmfiles " $odir/lt-$noexename.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then func_mode_uninstall ${1+"$@"} fi test -z "$opt_mode" && { help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/make-faq.sed������������������������������������������������������������������0000644�0000000�0000000�00000001135�14235572622�013423� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������1 { i\ \ +======================================================================+\ \ | |\ \ | The following information is part of the Texinfo documentation. |\ \ | It is provided only to help you solve problems you might have |\ \ | while installing a2ps. You need not keep this file. |\ \ | |\ \ +======================================================================+\ } /^Frequently/,/^Glossary/ { /^Glossary/d p } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/mdate-sh����������������������������������������������������������������������0000754�0000000�0000000�00000013732�14374751113�012677� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Get modification time of a file or directory and pretty-print it. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1995-2023 Free Software Foundation, Inc. # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to <bug-automake@gnu.org> or send patches to # <automake-patches@gnu.org>. if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST fi case $1 in '') echo "$0: No file. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: mdate-sh [--help] [--version] FILE Pretty-print the modification day of FILE, in the format: 1 January 1970 Report bugs to <bug-automake@gnu.org>. EOF exit $? ;; -v | --v*) echo "mdate-sh $scriptversion" exit $? ;; esac error () { echo "$0: $1" >&2 exit 1 } # Prevent date giving response in another language. LANG=C export LANG LC_ALL=C export LC_ALL LC_TIME=C export LC_TIME # Use UTC to get reproducible result. TZ=UTC0 export TZ # GNU ls changes its time format in response to the TIME_STYLE # variable. Since we cannot assume 'unset' works, revert this # variable to its documented default. if test "${TIME_STYLE+set}" = set; then TIME_STYLE=posix-long-iso export TIME_STYLE fi save_arg1=$1 # Find out how to get the extended ls output of a file or directory. if ls -L /dev/null 1>/dev/null 2>&1; then ls_command='ls -L -l -d' else ls_command='ls -l -d' fi # Avoid user/group names that might have spaces, when possible. if ls -n /dev/null 1>/dev/null 2>&1; then ls_command="$ls_command -n" fi # A 'ls -l' line looks as follows on OS/2. # drwxrwx--- 0 Aug 11 2001 foo # This differs from Unix, which adds ownership information. # drwxrwx--- 2 root root 4096 Aug 11 2001 foo # # To find the date, we split the line on spaces and iterate on words # until we find a month. This cannot work with files whose owner is a # user named "Jan", or "Feb", etc. However, it's unlikely that '/' # will be owned by a user whose name is a month. So we first look at # the extended ls output of the root directory to decide how many # words should be skipped to get the date. # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. set x`$ls_command /` # Find which argument is the month. month= command= until test $month do test $# -gt 0 || error "failed parsing '$ls_command /' output" shift # Add another shift to the command. command="$command shift;" case $1 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac done test -n "$month" || error "failed parsing '$ls_command /' output" # Get the extended ls output of the file or directory. set dummy x`eval "$ls_command \"\\\$save_arg1\""` # Remove all preceding arguments eval $command # Because of the dummy argument above, month is in $2. # # On a POSIX system, we should have # # $# = 5 # $1 = file size # $2 = month # $3 = day # $4 = year or time # $5 = filename # # On Darwin 7.7.0 and 7.6.0, we have # # $# = 4 # $1 = day # $2 = month # $3 = year or time # $4 = filename # Get the month. case $2 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac case $3 in ???*) day=$1;; *) day=$3; shift;; esac # Here we have to deal with the problem that the ls output gives either # the time of day or the year. case $3 in *:*) set `date`; eval year=\$$# case $2 in Jan) nummonthtod=1;; Feb) nummonthtod=2;; Mar) nummonthtod=3;; Apr) nummonthtod=4;; May) nummonthtod=5;; Jun) nummonthtod=6;; Jul) nummonthtod=7;; Aug) nummonthtod=8;; Sep) nummonthtod=9;; Oct) nummonthtod=10;; Nov) nummonthtod=11;; Dec) nummonthtod=12;; esac # For the first six month of the year the time notation can also # be used for files modified in the last year. if (expr $nummonth \> $nummonthtod) > /dev/null; then year=`expr $year - 1` fi;; *) year=$3;; esac # The result. echo $day $month $year # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: ��������������������������������������a2ps-4.15.5/build-aux/missing�����������������������������������������������������������������������0000754�0000000�0000000�00000015336�14424520614�012644� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1996-2021 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to <bug-automake@gnu.org>." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=https://www.perl.org/ flex_URL=https://github.com/westes/flex gnu_software_URL=https://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/options-parser����������������������������������������������������������������0000644�0000000�0000000�00000047521�14374753440�014170� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Copyright (C) 2010-2019, 2021, 2023 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license # <https://opensource.org/licenses/MIT>, and GPL version 2 or later # <https://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # Please report bugs or propose patches to: # <https://github.com/gnulib-modules/bootstrap/issues> # Set a version string for this script. scriptversion=2019-02-19.15; # UTC ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # in the main code. A hook is just a list of function names that can be # run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of hook functions to be called by # FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_propagate_result FUNC_NAME_A FUNC_NAME_B # --------------------------------------------- # If the *_result variable of FUNC_NAME_A _is set_, assign its value to # *_result variable of FUNC_NAME_B. func_propagate_result () { $debug_cmd func_propagate_result_result=: if eval "test \"\${${1}_result+set}\" = set" then eval "${2}_result=\$${1}_result" else func_propagate_result_result=false fi } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do func_unset "${_G_hook}_result" eval $_G_hook '${1+"$@"}' func_propagate_result $_G_hook func_run_hooks if $func_propagate_result_result; then eval set dummy "$func_run_hooks_result"; shift fi done } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list from your hook function. You may remove # or edit any options that you action, and then pass back the remaining # unprocessed options in '<hooked_function_name>_result', escaped # suitably for 'eval'. # # The '<hooked_function_name>_result' variable is automatically unset # before your hook gets called; for best performance, only set the # *_result variable when necessary (i.e. don't call the 'func_quote' # function unnecessarily because it can be an expensive operation on some # machines). # # Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # No change in '$@' (ignored completely by this hook). Leave # # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # args_changed=false # # # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: # args_changed=: # ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # args_changed=: # ;; # *) # Make sure the first unrecognised option "$_G_opt" # # is added back to "$@" in case we need it later, # # if $args_changed was set to 'true'. # set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # # # Only call 'func_quote' here if we processed at least one argument. # if $args_changed; then # func_quote eval ${1+"$@"} # my_silent_option_result=$func_quote_result # fi # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # } # func_add_hook func_validate_options my_option_validation # # You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options_finish [ARG]... # ---------------------------- # Finishing the option parse loop (call 'func_options' hooks ATM). func_options_finish () { $debug_cmd func_run_hooks func_options ${1+"$@"} func_propagate_result func_run_hooks func_options_finish } # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd _G_options_quoted=false for my_func in options_prep parse_options validate_options options_finish do func_unset func_${my_func}_result func_unset func_run_hooks_result eval func_$my_func '${1+"$@"}' func_propagate_result func_$my_func func_options if $func_propagate_result_result; then eval set dummy "$func_options_result"; shift _G_options_quoted=: fi done $_G_options_quoted || { # As we (func_options) are top-level options-parser function and # nobody quoted "$@" for us yet, we need to do it explicitly for # caller. func_quote eval ${1+"$@"} func_options_result=$func_quote_result } } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propagate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} func_propagate_result func_run_hooks func_options_prep } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} func_propagate_result func_run_hooks func_parse_options if $func_propagate_result_result; then eval set dummy "$func_parse_options_result"; shift # Even though we may have changed "$@", we passed the "$@" array # down into the hook and it quoted it for us (because we are in # this if-branch). No need to quote it again. _G_parse_options_requote=false fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break # We expect that one of the options parsed in this function matches # and thus we remove _G_opt from "$@" and need to re-quote. _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" >&2 $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) if test $# = 0 && func_missing_arg $_G_opt; then _G_parse_options_requote=: break fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift _G_match_parse_options=false break ;; esac if $_G_match_parse_options; then _G_parse_options_requote=: fi done if $_G_parse_options_requote; then # save modified positional parameters for caller func_quote eval ${1+"$@"} func_parse_options_result=$func_quote_result fi } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables # after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} if test "x$func_split_equals_lhs" = "x$1"; then func_split_equals_rhs= fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs=" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. # The version message is extracted from the calling file's header # comments, with leading '# ' stripped: # 1. First display the progname and version # 2. Followed by the header comment line matching /^# Written by / # 3. Then a blank line followed by the first following line matching # /^# Copyright / # 4. Immediately followed by any lines between the previous matches, # except lines preceding the intervening completely blank line. # For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /^# Written by /!b s|^# ||; p; n :fwd2blnk /./ { n b fwd2blnk } p; n :holdwrnt s|^# || s|^# *$|| /^Copyright /!{ /./H n b holdwrnt } s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| G s|\(\n\)\n*|\1|g p; q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/test-driver�������������������������������������������������������������������0000755�0000000�0000000�00000011417�14215102164�013432� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2018-03-07.03; # UTC # Copyright (C) 2011-2021 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to <bug-automake@gnu.org> or send patches to # <automake-patches@gnu.org>. # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <<END Usage: test-driver --test-name NAME --log-file PATH --trs-file PATH [--expect-failure {yes|no}] [--color-tests {yes|no}] [--enable-hard-errors {yes|no}] [--] TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] The '--test-name', '--log-file' and '--trs-file' options are mandatory. See the GNU Automake documentation for information. END } test_name= # Used for reporting. log_file= # Where to save the output of the test script. trs_file= # Where to save the metadata of the test run. expect_failure=no color_tests=no enable_hard_errors=yes while test $# -gt 0; do case $1 in --help) print_usage; exit $?;; --version) echo "test-driver $scriptversion"; exit $?;; --test-name) test_name=$2; shift;; --log-file) log_file=$2; shift;; --trs-file) trs_file=$2; shift;; --color-tests) color_tests=$2; shift;; --expect-failure) expect_failure=$2; shift;; --enable-hard-errors) enable_hard_errors=$2; shift;; --) shift; break;; -*) usage_error "invalid option: '$1'";; *) break;; esac shift done missing_opts= test x"$test_name" = x && missing_opts="$missing_opts --test-name" test x"$log_file" = x && missing_opts="$missing_opts --log-file" test x"$trs_file" = x && missing_opts="$missing_opts --trs-file" if test x"$missing_opts" != x; then usage_error "the following mandatory options are missing:$missing_opts" fi if test $# -eq 0; then usage_error "missing argument" fi if test $color_tests = yes; then # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. red='' # Red. grn='' # Green. lgn='' # Light green. blu='' # Blue. mgn='' # Magenta. std='' # No color. else red= grn= lgn= blu= mgn= std= fi do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' trap "st=129; $do_exit" 1 trap "st=130; $do_exit" 2 trap "st=141; $do_exit" 13 trap "st=143; $do_exit" 15 # Test script is run here. We create the file first, then append to it, # to ameliorate tests themselves also writing to the log file. Our tests # don't, but others can (automake bug#35762). : >"$log_file" "$@" >>"$log_file" 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then tweaked_estatus=1 else tweaked_estatus=$estatus fi case $tweaked_estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report the test outcome and exit status in the logs, so that one can # know whether the test passed or failed simply by looking at the '.log' # file, without the need of also peaking into the corresponding '.trs' # file (automake bug#11814). echo "$res $test_name (exit status: $estatus)" >>"$log_file" # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/texinfo.tex�������������������������������������������������������������������0000644�0000000�0000000�00001332726�14424520614�013452� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% texinfo.tex -- TeX macros to handle Texinfo files. % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % \def\texinfoversion{2021-04-25.21} % % Copyright 1985, 1986, 1988, 1990-2021 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as % published by the Free Software Foundation, either version 3 of the % License, or (at your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty % of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program. If not, see <https://www.gnu.org/licenses/>. % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without % restriction. This Exception is an additional permission under section 7 % of the GNU General Public License, version 3 ("GPLv3"). % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % https://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or % https://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or % https://www.gnu.org/software/texinfo/ (the Texinfo home page) % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % % Send bug reports to bug-texinfo@gnu.org. Please include a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. % % To process a Texinfo manual with TeX, it's most reliable to use the % texi2dvi shell script that comes with the distribution. For a simple % manual foo.texi, however, you can get away with this: % tex foo.texi % texindex foo.?? % tex foo.texi % tex foo.texi % dvips foo.dvi -o # or whatever; this makes foo.ps. % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % % It is possible to adapt texinfo.tex for other languages, to some % extent. You can get the existing language-specific files from the % full Texinfo distribution. % % The GNU Texinfo home page is https://www.gnu.org/software/texinfo. \message{Loading texinfo [version \texinfoversion]:} % If in a .fmt file, print the version number % and turn on active characters that we couldn't do earlier because % they might have appeared in the input file name. \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} % LaTeX's \typeout. This ensures that the messages it is used for % are identical in format to the corresponding ones from latex/pdflatex. \def\typeout{\immediate\write17}% \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax % Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c \let\ptexcomma=\, \let\ptexdot=\. \let\ptexdots=\dots \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexfootnote=\footnote \let\ptexgtr=> \let\ptexhat=^ \let\ptexi=\i \let\ptexindent=\indent \let\ptexinsert=\insert \let\ptexlbrace=\{ \let\ptexless=< \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ \let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexsp=\sp \let\ptexstar=\* \let\ptexsup=\sup \let\ptext=\t \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined \let\linenumber = \empty % Pre-3.0. \else \def\linenumber{l.\the\inputlineno:\space} \fi % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi \ifx\putwordof\undefined \gdef\putwordof{of}\fi \ifx\putwordon\undefined \gdef\putwordon{on}\fi \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi \ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi \ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi % \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi % \ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi % Give the space character the catcode for a space. \def\spaceisspace{\catcode`\ =10\relax} % Likewise for ^^M, the end of line character. \def\endlineisspace{\catcode13=10\relax} \chardef\dashChar = `\- \chardef\slashChar = `\/ \chardef\underChar = `\_ % Ignore a token. % \def\gobble#1{} % The following is used inside several \edef's. \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} % Hyphenation fixes. \hyphenation{ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script ap-pen-dix bit-map bit-maps data-base data-bases eshell fall-ing half-way long-est man-u-script man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces spell-ing spell-ings stand-alone strong-est time-stamp time-stamps which-ever white-space wide-spread wrap-around } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. We also make % some effort to order the tracing commands to reduce output in the log % file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% \def\loggingall{% \tracingstats2 \tracingpages1 \tracinglostchars2 % 2 gives us more in etex \tracingparagraphs1 \tracingoutput1 \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen \ifx\eTeXversion\thisisundefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 \tracingnesting2 \tracingassigns1 \fi \tracingcommands3 % 3 gives us more in etex \errorcontextlines16 }% % @errormsg{MSG}. Do the index-like expansions on MSG, but if things % aren't perfect, it's not the end of the world, being an error message, % after all. % \def\errormsg{\begingroup \indexnofonts \doerrormsg} \def\doerrormsg#1{\errmessage{#1}} % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi\fi} \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} % Output routine % % For a final copy, take out the rectangles % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % \def\finalout{\overfullrule=0pt } \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\topandbottommargin \topandbottommargin=.75in % Output a mark which sets \thischapter, \thissection and \thiscolor. % We dump everything together because we only have one kind of mark. % This works because we only use \botmark / \topmark, not \firstmark. % % A mark contains a subexpression of the \ifcase ... \fi construct. % \get*marks macros below extract the needed part using \ifcase. % % Another complication is to let the user choose whether \thischapter % (\thissection) refers to the chapter (section) in effect at the top % of a page, or that at the bottom of a page. % \domark is called twice inside \chapmacro, to add one % mark before the section break, and one after. % In the second call \prevchapterdefs is the same as \currentchapterdefs, % and \prevsectiondefs is the same as \currentsectiondefs. % Then if the page is not broken at the mark, some of the previous % section appears on the page, and we can get the name of this section % from \firstmark for @everyheadingmarks top. % @everyheadingmarks bottom uses \botmark. % % See page 260 of The TeXbook. \def\domark{% \toks0=\expandafter{\currentchapterdefs}% \toks2=\expandafter{\currentsectiondefs}% \toks4=\expandafter{\prevchapterdefs}% \toks6=\expandafter{\prevsectiondefs}% \toks8=\expandafter{\currentcolordefs}% \mark{% \the\toks0 \the\toks2 % 0: marks for @everyheadingmarks top \noexpand\or \the\toks4 \the\toks6 % 1: for @everyheadingmarks bottom \noexpand\else \the\toks8 % 2: color marks }% } % \gettopheadingmarks, \getbottomheadingmarks, % \getcolormarks - extract needed part of mark. % % \topmark doesn't work for the very first chapter (after the title % page or the contents), so we use \firstmark there -- this gets us % the mark with the chapter defs, unless the user sneaks in, e.g., % @setcolor (or @url, or @link, etc.) between @contents and the very % first @chapter. \def\gettopheadingmarks{% \ifcase0\the\savedtopmark\fi \ifx\thischapter\empty \ifcase0\firstmark\fi \fi } \def\getbottomheadingmarks{\ifcase1\botmark\fi} \def\getcolormarks{\ifcase2\the\savedtopmark\fi} % Avoid "undefined control sequence" errors. \def\currentchapterdefs{} \def\currentsectiondefs{} \def\currentsection{} \def\prevchapterdefs{} \def\prevsectiondefs{} \def\currentcolordefs{} % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\txipagewidth \newdimen\txipageheight % Main output routine. % \chardef\PAGE = 255 \newtoks\defaultoutput \defaultoutput = {\savetopmark\onepageout{\pagecontents\PAGE}} \output=\expandafter{\the\defaultoutput} \newbox\headlinebox \newbox\footlinebox % When outputting the double column layout for indices, an output routine % is run several times, which hides the original value of \topmark. This % can lead to a page heading being output and duplicating the chapter heading % of the index. Hence, save the contents of \topmark at the beginning of % the output routine. The saved contents are valid until we actually % \shipout a page. % % (We used to run a short output routine to actually set \topmark and % \firstmark to the right values, but if this was called with an empty page % containing whatsits for writing index entries, the whatsits would be thrown % away and the index auxiliary file would remain empty.) % \newtoks\savedtopmark \newif\iftopmarksaved \topmarksavedtrue \def\savetopmark{% \iftopmarksaved\else \global\savedtopmark=\expandafter{\topmark}% \global\topmarksavedtrue \fi } % \onepageout takes a vbox as an argument. % \shipout a vbox for a single page, adding an optional header, footer % and footnote. This also causes index entries for this page to be written % to the auxiliary files. % \def\onepageout#1{% \hoffset=\normaloffset % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % \checkchapterpage % % Retrieve the information for the headings from the marks in the page, % and call Plain TeX's \makeheadline and \makefootline, which use the % values in \headline and \footline. % % Common context changes for both heading and footing. % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \def\commonheadfootline{\let\hsize=\txipagewidth \texinfochars} % \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \global\setbox\headlinebox = \vbox{\commonheadfootline \makeheadline}% \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \global\setbox\footlinebox = \vbox{\commonheadfootline \makefootline}% % {% % Set context for writing to auxiliary files like index files. % Have to do this stuff outside the \shipout because we want it to % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % \atdummies % don't expand commands in the output. \turnoffactive \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 24pt \unvbox\footlinebox \fi % }% }% \global\topmarksavedfalse \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen % Main part of page, including any footnotes \def\pagebody#1{\vbox to\txipageheight{\boxmaxdepth=\maxdepth #1}} {\catcode`\@ =11 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi \dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Check if we are on the first page of a chapter. Used for printing headings. \newif\ifchapterpage \def\checkchapterpage{% % Get the chapter that was current at the end of the last page \ifcase1\the\savedtopmark\fi \let\prevchaptername\thischaptername % \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \let\curchaptername\thischaptername % \ifx\curchaptername\prevchaptername \chapterpagefalse \else \chapterpagetrue \fi } % Argument parsing % Parse an argument, then pass it to #1. The argument is the rest of % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % For example, \def\foo{\parsearg\fooxxx}. % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% \def\argtorun{#2}% \begingroup \obeylines \spaceisspace #1% \parseargline\empty% Insert the \empty token, see \finishparsearg below. } {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. \argremovecomment #1\comment\ArgTerm% }% } % First remove any @comment, then any @c comment. Pass the result on to % \argcheckspaces. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} % Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space. % % \argremovec might leave us with trailing space, e.g., % @end itemize @c foo % This space token undergoes the same procedure and is eventually removed % by \finishparsearg. % \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces \fi % Put the space token in: \temp#1 #3\ArgTerm } % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, % just before passing the control to \argtorun. % (Similarly, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef - define a command taking an argument on the line % % \parseargdef\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} \def\parseargdef#1{% \expandafter \doparseargdef \csname\string#1\endcsname #1% } \def\doparseargdef#1#2{% \def#2{\parsearg#1}% \def#1##1% } % Several utility definitions with active space: { \obeyspaces \gdef\obeyedspace{ } % Make each space character in the input produce a normal interword % space in the output. Don't allow a line break at this space, as this % is used only in environments like @example, where each line of input % should produce a line of output anyway. % \gdef\sepspaces{\obeyspaces\let =\tie} % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the % expansion of \tie (\leavevmode \penalty \@M \ ). \gdef\unsepspaces{\let =\space} } \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} % Define the framework for environments in texinfo.tex. It's used like this: % % \envdef\foo{...} % \def\Efoo{...} % % It's the responsibility of \envdef to insert \begingroup before the % actual body; @end closes the group after calling \Efoo. \envdef also % defines \thisenv, so the current environment is known; @end checks % whether the environment name matches. The \checkenv macro can also be % used to check whether the current environment is the one expected. % % Non-false conditionals (@iftex, @ifset) don't fit into this, so they % are not treated as environments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) % At run-time, environments start with this: \def\startenvironment#1{\begingroup\def\thisenv{#1}} % initialize \let\thisenv\empty % ... but they get defined via ``\envdef\foo{...}'': \long\def\envdef#1#2{\def#1{\startenvironment#1#2}} \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} % Check whether we're in the right environment: \def\checkenv#1{% \def\temp{#1}% \ifx\thisenv\temp \else \badenverr \fi } % Environment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, not \inenvironment\thisenv}% } \def\inenvironment#1{% \ifx#1\empty outside of any environment% \else in environment \expandafter\string#1% \fi } % @end foo calls \checkenv and executes the definition of \Efoo. \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else % The general wording of \badenverr may not be ideal. \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup \fi } \newhelp\EMsimple{Press RETURN to continue.} % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } % @: forces normal size whitespace following. \def\:{\spacefactor=1000 } % @* forces a line break. \def\*{\unskip\hfil\break\hbox{}\ignorespaces} % @/ allows a line break. \let\/=\allowbreak % @. is an end-of-sentence period. \def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. \def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. % \def\onword{on} \def\offword{off} % \parseargdef\frenchspacing{% \def\temp{#1}% \ifx\temp\onword \plainfrenchspacing \else\ifx\temp\offword \plainnonfrenchspacing \else \errhelp = \EMsimple \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% \fi\fi } % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would % produce a whole line of output instead of starting the paragraph. \def\w#1{\leavevmode\hbox{#1}} % @group ... @end group forces ... to be all on one page, by enclosing % it in a TeX vbox. We use \vtop instead of \vbox to construct the box % to keep its height that of a normal line. According to the rules for % \topskip (p.114 of the TeXbook), the glue inserted is % max (\topskip - \ht (first item), 0). If that height is large, % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % % Another complication is that the group might be very large. This can % cause the glue on the previous page to be unduly stretched, because it % does not have much material. In this case, it's better to add an % explicit \vfill so that the extra space is at the bottom. The % threshold for doing this is if the group is more than \vfilllimit % percent of a page (\vfilllimit can be changed inside of @tex). % \newbox\groupbox \def\vfilllimit{0.7} % \envdef\group{% \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi \startsavinginserts % \setbox\groupbox = \vtop\bgroup % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after % the `@group' to put extra space in the output. Since @group % should appear on a line by itself (according to the Texinfo % manual), we don't worry about eating any user text. \comment } % % The \vtop produces a box with normal height and large depth; thus, TeX puts % \baselineskip glue before it, and (when the next line of text is done) % \lineskip glue after it. Thus, space below is not quite equal to space % above. But it's pretty close. \def\Egroup{% % To get correct interline space between the last line of the group % and the first line afterwards, we have to propagate \prevdepth. \endgraf % Not \par, as it may have been set to \lisppar. \global\dimen1 = \prevdepth \egroup % End the \vtop. \addgroupbox \prevdepth = \dimen1 \checkinserts } \def\addgroupbox{ % \dimen0 is the vertical size of the group's box. \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox % \dimen2 is how much space is left on the page (more or less). \dimen2 = \txipageheight \advance\dimen2 by -\pagetotal % if the group doesn't fit on the current page, and it's a big big % group, force a page break. \ifdim \dimen0 > \dimen2 \ifdim \pagetotal < \vfilllimit\txipageheight \page \fi \fi \box\groupbox } % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % \newhelp\groupinvalidhelp{% group can only be used in environments such as @example,^^J% where each line of input produces a line of output.} % @need space-in-mils % forces a page break if there is not space-in-mils remaining. \newdimen\mil \mil=0.001in \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par % % If the @need value is less than one line space, it's useless. \dimen0 = #1\mil \dimen2 = \ht\strutbox \advance\dimen2 by \dp\strutbox \ifdim\dimen0 > \dimen2 % % Do a \strut just to make the height of this box be normal, so the % normal leading is inserted relative to the preceding line. % And a page break here is fine. \vtop to #1\mil{\strut\vfil}% % % TeX does not even consider page breaks if a penalty added to the % main vertical list is 10000 or more. But in order to see if the % empty box we just added fits on the page, we must make it consider % page breaks. On the other hand, we don't want to actually break the % page after the empty box. So we use a penalty of 9999. % % There is an extremely small chance that TeX will actually break the % page at this \penalty, if there are no other feasible breakpoints in % sight. (If the user is using lots of big @group commands, which % almost-but-not-quite fill up a page, TeX will have a hard time doing % good page breaking, for example.) However, I could not construct an % example where a page broke at this \penalty; if it happens in a real % document, then we can reconsider our strategy. \penalty9999 % % Back up by the size of the box, whether we did a page break or not. \kern -#1\mil % % Do not allow a page break right after this kern. \nobreak \fi } % @br forces paragraph break (and is undocumented). \let\br = \par % @page forces the start of a new page. % \def\page{\par\vfill\supereject} % @exdent text.... % outputs text on separate line in roman font, starting at standard page margin % This records the amount of indent in the innermost environment. % That's how much \exdent should take out. \newskip\exdentamount % This defn is used inside fill environments such as @defun. \parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. \parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion % class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} % \def\doinmargin#1#2{\strut\vadjust{% \nobreak \kern-\strutdepth \vtop to \strutdepth{% \baselineskip=\strutdepth \vss % if you have multiple lines of stuff to put here, you'll need to % make the vbox yourself of the appropriate size. \ifx#1l% \llap{\ignorespaces #2\hskip\inmarginspacing}% \else \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% \fi \null }% }} \def\inleftmargin{\doinmargin l} \def\inrightmargin{\doinmargin r} % % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). % \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% \else \def\lefttext{#1}% have only one text \def\righttext{#1}% \fi % \ifodd\pageno \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin \else \def\temp{\inleftmargin\lefttext}% \fi \temp } % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @include of #1^^J}% \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes % definitions, etc. \expandafter }\temp \popthisfilestack } \def\filenamecatcodes{% \catcode`\\=\other \catcode`~=\other \catcode`^=\other \catcode`_=\other \catcode`|=\other \catcode`<=\other \catcode`>=\other \catcode`+=\other \catcode`-=\other \catcode`\`=\other \catcode`\'=\other } \def\pushthisfilestack{% \expandafter\pushthisfilestackX\popthisfilestack\StackTerm } \def\pushthisfilestackX{% \expandafter\pushthisfilestackY\thisfile\StackTerm } \def\pushthisfilestackY #1\StackTerm #2\StackTerm {% \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% } \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} % \def\thisfile{} % @center line % outputs that line, centered. % \parseargdef\center{% \ifhmode \let\centersub\centerH \else \let\centersub\centerV \fi \centersub{\hfil \ignorespaces#1\unskip \hfil}% \let\centersub\relax % don't let the definition persist, just in case } \def\centerH#1{{% \hfil\break \advance\hsize by -\leftskip \advance\hsize by -\rightskip \line{#1}% \break }} % \newcount\centerpenalty \def\centerV#1{% % The idea here is the same as in \startdefun, \cartouche, etc.: if % @center is the first thing after a section heading, we need to wipe % out the negative parskip inserted by \sectionheading, but still % prevent a page break here. \centerpenalty = \lastpenalty \ifnum\centerpenalty>10000 \vskip\parskip \fi \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi \line{\kern\leftskip #1\kern\rightskip}% } % @sp n outputs n lines of vertical space % \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment \def\c{\begingroup \catcode`\^^M=\active% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \cxxx} {\catcode`\^^M=\active \gdef\cxxx#1^^M{\endgroup}} % \let\comment\c % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % NCHARS can also be the word `asis' or `none'. % We cannot feasibly implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % \parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \defaultparindent = 0pt \else \defaultparindent = #1em \fi \fi \parindent = \defaultparindent } % @exampleindent NCHARS % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. \parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \lispnarrowing = 0pt \else \lispnarrowing = #1em \fi \fi } % @firstparagraphindent WORD % If WORD is `none', then suppress indentation of the first paragraph % after a section heading. If WORD is `insert', then do indent at such % paragraphs. % % The paragraph indentation is suppressed or not by calling % \suppressfirstparagraphindent, which the sectioning commands do. % We switch the definition of this back and forth according to WORD. % By default, we suppress indentation. % \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} \def\insertword{insert} % \parseargdef\firstparagraphindent{% \def\temp{#1}% \ifx\temp\noneword \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent \else\ifx\temp\insertword \let\suppressfirstparagraphindent = \relax \else \errhelp = \EMsimple \errmessage{Unknown @firstparagraphindent option `\temp'}% \fi\fi } % Here is how we actually suppress indentation. Redefine \everypar to % \kern backwards by \parindent, and then reset itself to empty. % % We also make \indent itself not actually do anything until the next % paragraph. % \gdef\dosuppressfirstparagraphindent{% \gdef\indent {\restorefirstparagraphindent \indent}% \gdef\noindent{\restorefirstparagraphindent \noindent}% \global\everypar = {\kern -\parindent \restorefirstparagraphindent}% } % \gdef\restorefirstparagraphindent{% \global\let\indent = \ptexindent \global\let\noindent = \ptexnoindent \global\everypar = {}% } % leave vertical mode without cancelling any first paragraph indent \gdef\imageindent{% \toks0=\everypar \everypar={}% \ptexnoindent \global\everypar=\toks0 } % @refill is a no-op. \let\refill=\relax % @setfilename INFO-FILENAME - ignored \let\setfilename=\comment % @bye. \outer\def\bye{\chappager\pagelabels\tracingstats=1\ptexend} \message{pdf,} % adobe `portable' document format \newcount\tempnum \newcount\lnkcount \newtoks\filename \newcount\filenamelength \newcount\pgn \newtoks\toksA \newtoks\toksB \newtoks\toksC \newtoks\toksD \newbox\boxA \newbox\boxB \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest % % For LuaTeX % \newif\iftxiuseunicodedestname \txiuseunicodedestnamefalse % For pdfTeX etc. \ifx\luatexversion\thisisundefined \else % Use Unicode destination names \txiuseunicodedestnametrue % Escape PDF strings with converting UTF-16 from UTF-8 \begingroup \catcode`\%=12 \directlua{ function UTF16oct(str) tex.sprint(string.char(0x5c) .. '376' .. string.char(0x5c) .. '377') for c in string.utfvalues(str) do if c < 0x10000 then tex.sprint( string.format(string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o', math.floor(c / 256), math.floor(c % 256))) else c = c - 0x10000 local c_hi = c / 1024 + 0xd800 local c_lo = c % 1024 + 0xdc00 tex.sprint( string.format(string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o', math.floor(c_hi / 256), math.floor(c_hi % 256), math.floor(c_lo / 256), math.floor(c_lo % 256))) end end end } \endgroup \def\pdfescapestrutfsixteen#1{\directlua{UTF16oct('\luaescapestring{#1}')}} % Escape PDF strings without converting \begingroup \directlua{ function PDFescstr(str) for c in string.bytes(str) do if c <= 0x20 or c >= 0x80 or c == 0x28 or c == 0x29 or c == 0x5c then tex.sprint(-2, string.format(string.char(0x5c) .. string.char(0x25) .. '03o', c)) else tex.sprint(-2, string.char(c)) end end end } % The -2 in the arguments here gives all the input to TeX catcode 12 % (other) or 10 (space), preventing undefined control sequence errors. See % https://lists.gnu.org/archive/html/bug-texinfo/2019-08/msg00031.html % \endgroup \def\pdfescapestring#1{\directlua{PDFescstr('\luaescapestring{#1}')}} \ifnum\luatexversion>84 % For LuaTeX >= 0.85 \def\pdfdest{\pdfextension dest} \let\pdfoutput\outputmode \def\pdfliteral{\pdfextension literal} \def\pdfcatalog{\pdfextension catalog} \def\pdftexversion{\numexpr\pdffeedback version\relax} \let\pdfximage\saveimageresource \let\pdfrefximage\useimageresource \let\pdflastximage\lastsavedimageresourceindex \def\pdfendlink{\pdfextension endlink\relax} \def\pdfoutline{\pdfextension outline} \def\pdfstartlink{\pdfextension startlink} \def\pdffontattr{\pdfextension fontattr} \def\pdfobj{\pdfextension obj} \def\pdflastobj{\numexpr\pdffeedback lastobj\relax} \let\pdfpagewidth\pagewidth \let\pdfpageheight\pageheight \edef\pdfhorigin{\pdfvariable horigin} \edef\pdfvorigin{\pdfvariable vorigin} \fi \fi % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 % can be set). So we test for \relax and 0 as well as being undefined. \ifx\pdfoutput\thisisundefined \else \ifx\pdfoutput\relax \else \ifcase\pdfoutput \else \pdftrue \fi \fi \fi \newif\ifpdforxetex \pdforxetexfalse \ifpdf \pdforxetextrue \fi \ifx\XeTeXrevision\thisisundefined\else \pdforxetextrue \fi % Output page labels information. % See PDF reference v.1.7 p.594, section 8.3.1. \ifpdf \def\pagelabels{% \def\title{0 << /P (T-) /S /D >>}% \edef\roman{\the\romancount << /S /r >>}% \edef\arabic{\the\arabiccount << /S /D >>}% % % Page label ranges must be increasing. Remove any duplicates. % (There is a slight chance of this being wrong if e.g. there is % a @contents but no @titlepage, etc.) % \ifnum\romancount=0 \def\roman{}\fi \ifnum\arabiccount=0 \def\title{}% \else \ifnum\romancount=\arabiccount \def\roman{}\fi \fi % \ifnum\romancount<\arabiccount \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax \else \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax \fi } \else \let\pagelabels\relax \fi \newcount\pagecount \pagecount=0 \newcount\romancount \romancount=0 \newcount\arabiccount \arabiccount=0 \ifpdf \let\ptxadvancepageno\advancepageno \def\advancepageno{% \ptxadvancepageno\global\advance\pagecount by 1 } \fi % PDF uses PostScript string constants for the names of xref targets, % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. % % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and % related messages. The final outcome is that it is up to the TeX user % to double the backslashes and otherwise make the string valid, so % that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to % do this reliably, so we use it. % #1 is a control sequence in which to do the replacements, % which we \xdef. \def\txiescapepdf#1{% \ifx\pdfescapestring\thisisundefined % No primitive available; should we give a warning or log? % Many times it won't matter. \xdef#1{#1}% \else % The expandable \pdfescapestring primitive escapes parentheses, % backslashes, and other special chars. \xdef#1{\pdfescapestring{#1}}% \fi } \def\txiescapepdfutfsixteen#1{% \ifx\pdfescapestrutfsixteen\thisisundefined % No UTF-16 converting macro available. \txiescapepdf{#1}% \else \xdef#1{\pdfescapestrutfsixteen{#1}}% \fi } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images with PDF output, and none of those formats could be found. (.eps cannot be supported due to the design of the PDF format; use regular TeX (DVI output) for that.)} \ifpdf % % Color manipulation macros using ideas from pdfcolor.tex, % except using rgb instead of cmyk; the latter is said to render as a % very dark gray on-screen and a very dark halftone in print, instead % of actual black. The dark red here is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. We use % black by default, though. \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % % rg sets the color for filling (usual text, etc.); % RG sets the color for stroking (thin rules, e.g., normal _'s). \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\currentcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % \pdfcatalog{/PageMode /UseOutlines} % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % pdftex (and the PDF format) support .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\pdfimgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% \else \gdef\pdfimgext{JPG}% \fi \else \gdef\pdfimgext{jpeg}% \fi \else \gdef\pdfimgext{jpg}% \fi \else \gdef\pdfimgext{png}% \fi \else \gdef\pdfimgext{PDF}% \fi \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup % % without \immediate, ancient pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 \immediate\pdfimage \else \immediate\pdfximage \fi \ifdim \wd0 >0pt width \pdfimagewidth \fi \ifdim \wd2 >0pt height \pdfimageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} % \def\setpdfdestname#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \makevalueexpandable \turnoffactive \iftxiuseunicodedestname \ifx \declaredencoding \latone % Pass through Latin-1 characters. % LuaTeX with byte wise I/O converts Latin-1 characters to Unicode. \else \ifx \declaredencoding \utfeight % Pass through Unicode characters. \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \fi \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \def\pdfdestname{#1}% \txiescapepdf\pdfdestname }} % \def\setpdfoutlinetext#1{{% \indexnofonts \makevalueexpandable \turnoffactive \ifx \declaredencoding \latone % The PDF format can use an extended form of Latin-1 in bookmark % strings. See Appendix D of the PDF Reference, Sixth Edition, for % the "PDFDocEncoding". \passthroughcharstrue % Pass through Latin-1 characters. % LuaTeX: Convert to Unicode % pdfTeX: Use Latin-1 as PDFDocEncoding \def\pdfoutlinetext{#1}% \else \ifx \declaredencoding \utfeight \ifx\luatexversion\thisisundefined % For pdfTeX with UTF-8. % TODO: the PDF format can use UTF-16 in bookmark strings, % but the code for this isn't done yet. % Use ASCII approximations. \passthroughcharsfalse \def\pdfoutlinetext{#1}% \else % For LuaTeX with UTF-8. % Pass through Unicode characters for title texts. \passthroughcharstrue \def\pdfoutlinetext{#1}% \fi \else % For non-Latin-1 or non-UTF-8 encodings. % Use ASCII approximations. \passthroughcharsfalse \def\pdfoutlinetext{#1}% \fi \fi % LuaTeX: Convert to UTF-16 % pdfTeX: Use Latin-1 as PDFDocEncoding \txiescapepdfutfsixteen\pdfoutlinetext }} % \def\pdfmkdest#1{% \setpdfdestname{#1}% \safewhatsit{\pdfdest name{\pdfdestname} xyz}% } % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} % % by default, use black for everything. \def\urlcolor{\rgbBlack} \def\linkcolor{\rgbBlack} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % % #1 is the section text, which is what will be displayed in the % outline by the pdf viewer. #2 is the pdf expression for the number % of subentries (or empty, for subsubsections). #3 is the node text, % which might be empty if this toc entry had no corresponding node. % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. \setpdfoutlinetext{#1} \setpdfdestname{#3} \ifx\pdfdestname\empty \def\pdfdestname{#4}% \fi % \pdfoutline goto name{\pdfmkpgn{\pdfdestname}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup % Read toc silently, to get counts of subentries for \pdfoutline. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% \def\thissubsecnum{0}% }% \def\numsecentry##1##2##3##4{% \advancenumber{chap\thischapnum}% \def\thissecnum{##2}% \def\thissubsecnum{0}% }% \def\numsubsecentry##1##2##3##4{% \advancenumber{sec\thissecnum}% \def\thissubsecnum{##2}% }% \def\numsubsubsecentry##1##2##3##4{% \advancenumber{subsec\thissubsecnum}% }% \def\thischapnum{0}% \def\thissecnum{0}% \def\thissubsecnum{0}% % % use \def rather than \let here because we redefine \chapentry et % al. a second time, below. \def\appentry{\numchapentry}% \def\appsecentry{\numsecentry}% \def\appsubsecentry{\numsubsecentry}% \def\appsubsubsecentry{\numsubsubsecentry}% \def\unnchapentry{\numchapentry}% \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of % subentries, which we calculated on our first read of the .toc above. % % We use the node names as the destinations. % % Currently we prefix the section name with the section number % for chapter and appendix headings only in order to avoid too much % horizontal space being required in the PDF viewer. \def\numchapentry##1##2##3##4{% \dopdfoutline{##2 ##1}{count-\expnumber{chap##2}}{##3}{##4}}% \def\unnchapentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% count is always zero \dopdfoutline{##1}{}{##3}{##4}}% % % PDF outlines are displayed using system fonts, instead of % document fonts. Therefore we cannot use special characters, % since the encoding is unknown. For example, the eogonek from % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % % TODO this right, we have to translate 8-bit characters to % their "best" equivalent, based on the @documentencoding. Too % much work for too little return. Just use the ASCII equivalents % we use for the index sort strings. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} % \pdfgettoks - Surround page numbers in #1 with @pdflink. #1 may % be a simple number, or a list of numbers in the case of an index % entry. \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\setcolor = \gobble \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput % % For XeTeX % \ifx\XeTeXrevision\thisisundefined \else % % XeTeX version check % \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99996}>-1 % TeX Live 2016 contains XeTeX 0.99996 and xdvipdfmx 20160307. % It can use the `dvipdfmx:config' special (from TeX Live SVN r40941). % For avoiding PDF destination name replacement, we use this special % instead of xdvipdfmx's command line option `-C 0x0010'. \special{dvipdfmx:config C 0x0010} % XeTeX 0.99995+ comes with xdvipdfmx 20160307+. % It can handle Unicode destination names for PDF. \txiuseunicodedestnametrue \else % XeTeX < 0.99996 (TeX Live < 2016) cannot use the % `dvipdfmx:config' special. % So for avoiding PDF destination name replacement, % xdvipdfmx's command line option `-C 0x0010' is necessary. % % XeTeX < 0.99995 can not handle Unicode destination names for PDF % because xdvipdfmx 20150315 has a UTF-16 conversion issue. % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). \txiuseunicodedestnamefalse \fi % % Color support % \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % \def\pdfsetcolor#1{\special{pdf:scolor [#1]}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\currentcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % PDF outline support % % Emulate pdfTeX primitive \def\pdfdest name#1 xyz{% \special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}% } % \def\setpdfdestname#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \makevalueexpandable \turnoffactive \iftxiuseunicodedestname % Pass through Unicode characters. \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \def\pdfdestname{#1}% \txiescapepdf\pdfdestname }} % \def\setpdfoutlinetext#1{{% \turnoffactive % Always use Unicode characters in title texts. \def\pdfoutlinetext{#1}% % For XeTeX, xdvipdfmx converts to UTF-16. % So we do not convert. \txiescapepdf\pdfoutlinetext }} % \def\pdfmkdest#1{% \setpdfdestname{#1}% \safewhatsit{\pdfdest name{\pdfdestname} xyz}% } % % by default, use black for everything. \def\urlcolor{\rgbBlack} \def\linkcolor{\rgbBlack} \def\endlink{\setcolor{\maincolor}\pdfendlink} % \def\dopdfoutline#1#2#3#4{% \setpdfoutlinetext{#1} \setpdfdestname{#3} \ifx\pdfdestname\empty \def\pdfdestname{#4}% \fi % \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A << /S /GoTo /D (\pdfdestname) >> >> }% } % \def\pdfmakeoutlines{% \begingroup % % For XeTeX, counts of subentries are not necessary. % Therefore, we read toc only once. % % We use node names as destinations. % % Currently we prefix the section name with the section number % for chapter and appendix headings only in order to avoid too much % horizontal space being required in the PDF viewer. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \dopdfoutline{##2 ##1}{1}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{2}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{3}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% \dopdfoutline{##1}{4}{##3}{##4}}% % \let\appentry\numchapentry% \let\appsecentry\numsecentry% \let\appsubsecentry\numsubsecentry% \let\appsubsubsecentry\numsubsubsecentry% \def\unnchapentry##1##2##3##4{% \dopdfoutline{##1}{1}{##3}{##4}}% \let\unnsecentry\numsecentry% \let\unnsubsecentry\numsubsecentry% \let\unnsubsubsecentry\numsubsubsecentry% % % For XeTeX, xdvipdfmx converts strings to UTF-16. % Therefore, the encoding and the language may not be considered. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] \special{pdf:docview << /PageMode /UseOutlines >> } % ``\special{pdf:tounicode ...}'' is not necessary % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it. % However, due to a UTF-16 conversion issue of xdvipdfmx 20150315, % ``\special{pdf:dest ...}'' cannot handle non-ASCII strings. % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \special{pdf:bann << /Border [0 0 0] /Subtype /Link /A << /S /URI /URI (#1) >> >>}% \endgroup} \def\endlink{\setcolor{\maincolor}\special{pdf:eann}} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}% \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} % % % @image support % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\doxeteximage#1#2#3{% \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % XeTeX (and the PDF format) supports .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\xeteximgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errmessage{Could not find image file #1 for XeTeX}% \else \gdef\xeteximgext{JPG}% \fi \else \gdef\xeteximgext{jpeg}% \fi \else \gdef\xeteximgext{jpg}% \fi \else \gdef\xeteximgext{png}% \fi \else \gdef\xeteximgext{PDF}% \fi \else \gdef\xeteximgext{pdf}% \fi \closein 1 \endgroup % % Putting an \hbox around the image can prevent an over-long line % after the image. \hbox\bgroup \def\xetexpdfext{pdf}% \ifx\xeteximgext\xetexpdfext \XeTeXpdffile "#1".\xeteximgext "" \else \def\xetexpdfext{PDF}% \ifx\xeteximgext\xetexpdfext \XeTeXpdffile "#1".\xeteximgext "" \else \XeTeXpicfile "#1".\xeteximgext "" \fi \fi \ifdim \wd0 >0pt width \xeteximagewidth \fi \ifdim \wd2 >0pt height \xeteximageheight \fi \relax \egroup } \fi % \message{fonts,} % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. % \def\lineskipfactor{.08333} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % \newdimen\textleading \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % PDF CMaps. See also LaTeX's t1.cmap. % % do nothing with this by default. \expandafter\let\csname cmapOT1\endcsname\gobble \expandafter\let\csname cmapOT1IT\endcsname\gobble \expandafter\let\csname cmapOT1TT\endcsname\gobble % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) \ifpdf \ifx\pdffontattr\thisisundefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1-0) %%Title: (TeX-OT1-0 TeX OT1 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1) /Supplement 0 >> def /CMapName /TeX-OT1-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <23> <26> <0023> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 40 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1IT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1IT-0) %%Title: (TeX-OT1IT-0 TeX OT1IT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1IT) /Supplement 0 >> def /CMapName /TeX-OT1IT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <25> <26> <0025> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 42 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <23> <0023> <24> <00A3> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1IT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1TT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1TT-0) %%Title: (TeX-OT1TT-0 TeX OT1TT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1TT) /Supplement 0 >> def /CMapName /TeX-OT1TT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 5 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <21> <26> <0021> <28> <5F> <0028> <61> <7E> <0061> endbfrange 32 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <2191> <0C> <2193> <0D> <0027> <0E> <00A1> <0F> <00BF> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <20> <2423> <27> <2019> <60> <2018> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1TT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi % Set the font macro #1 to the font named \fontprefix#2. % #3 is the font's design size, #4 is a scale factor, #5 is the CMap % encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). % Example: % #1 = \textrm % #2 = \rmshape % #3 = 10 % #4 = \mainmagstep % #5 = OT1 % \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble % % (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\thisisundefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} \def\rmbshape{bx} % where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} \def\ttbshape{tt} \def\ttslshape{sltt} \def\itshape{ti} \def\itbshape{bxti} \def\slshape{sl} \def\slbshape{bxsl} \def\sfshape{ss} \def\sfbshape{ss} \def\scshape{csc} \def\scbshape{csc} % Definitions for a main text size of 11pt. (The default in Texinfo.) % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1095} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1}{OT1} \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} \setfont\defsl\slshape{10}{\magstep1}{OT1} \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\ttfont=\deftt \let\bffont = \defbf \let\ttslfont=\defttsl \let\slfont=\defsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for math mode superscripts (7pt). \def\sevennominalsize{7pt} \setfont\sevenrm\rmshape{7}{1000}{OT1} \setfont\seventt\ttshape{10}{700}{OT1TT} \setfont\sevenbf\bfshape{10}{700}{OT1} \setfont\sevenit\itshape{7}{1000}{OT1IT} \setfont\sevensl\slshape{10}{700}{OT1} \setfont\sevensf\sfshape{10}{700}{OT1} \setfont\sevensc\scshape{10}{700}{OT1} \setfont\seventtsl\ttslshape{10}{700}{OT1TT} \font\seveni=cmmi7 \font\sevensy=cmsy7 \def\sevenecsize{0700} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} \setfont\chaprm\rmbshape{12}{\magstep2}{OT1} \setfont\chapit\itbshape{10}{\magstep3}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep3}{OT1} \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} \setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 \def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} \setfont\secrm\rmbshape{12}{\magstep1}{OT1} \setfont\secrmnotbold\rmshape{12}{\magstep1}{OT1} \setfont\secit\itbshape{10}{\magstep2}{OT1IT} \setfont\secsl\slbshape{10}{\magstep2}{OT1} \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 \def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} \setfont\ssecit\itbshape{10}{1315}{OT1IT} \setfont\ssecsl\slbshape{10}{1315}{OT1} \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 \def\ssececsize{1200} % Reduced fonts for @acronym in text (10pt). \def\reducednominalsize{10pt} \setfont\reducedrm\rmshape{10}{1000}{OT1} \setfont\reducedtt\ttshape{10}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{1000}{OT1} \setfont\reducedit\itshape{10}{1000}{OT1IT} \setfont\reducedsl\slshape{10}{1000}{OT1} \setfont\reducedsf\sfshape{10}{1000}{OT1} \setfont\reducedsc\scshape{10}{1000}{OT1} \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 \def\reducedecsize{1000} \textleading = 13.2pt % line spacing for 11pt CM \textfonts % reset the current fonts \rm } % end of 11pt text font size definitions, \definetextfontsizexi % Definitions to make the main text be 10pt Computer Modern, with % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} \edef\mainmagstep{1000} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1000} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstephalf}{OT1} \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} \setfont\defsl\slshape{10}{\magstephalf}{OT1} \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} \def\df{\let\ttfont=\deftt \let\bffont = \defbf \let\slfont=\defsl \let\ttslfont=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for math mode superscripts (7pt). \def\sevennominalsize{7pt} \setfont\sevenrm\rmshape{7}{1000}{OT1} \setfont\seventt\ttshape{10}{700}{OT1TT} \setfont\sevenbf\bfshape{10}{700}{OT1} \setfont\sevenit\itshape{7}{1000}{OT1IT} \setfont\sevensl\slshape{10}{700}{OT1} \setfont\sevensf\sfshape{10}{700}{OT1} \setfont\sevensc\scshape{10}{700}{OT1} \setfont\seventtsl\ttslshape{10}{700}{OT1TT} \font\seveni=cmmi7 \font\sevensy=cmsy7 \def\sevenecsize{0700} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter fonts (14.4pt). \def\chapnominalsize{14pt} \setfont\chaprm\rmbshape{12}{\magstep1}{OT1} \setfont\chapit\itbshape{10}{\magstep2}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep2}{OT1} \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\chapsf\sfbshape{12}{\magstep1}{OT1} \let\chapbf\chaprm \setfont\chapsc\scbshape{10}{\magstep2}{OT1} \font\chapi=cmmi12 scaled \magstep1 \font\chapsy=cmsy10 scaled \magstep2 \def\chapecsize{1440} % Section fonts (12pt). \def\secnominalsize{12pt} \setfont\secrm\rmbshape{12}{1000}{OT1} \setfont\secit\itbshape{10}{\magstep1}{OT1IT} \setfont\secsl\slbshape{10}{\magstep1}{OT1} \setfont\sectt\ttbshape{12}{1000}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} % Subsection fonts (10pt). \def\ssecnominalsize{10pt} \setfont\ssecrm\rmbshape{10}{1000}{OT1} \setfont\ssecit\itbshape{10}{1000}{OT1IT} \setfont\ssecsl\slbshape{10}{1000}{OT1} \setfont\ssectt\ttbshape{10}{1000}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} \setfont\ssecsf\sfbshape{10}{1000}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1000}{OT1} \font\sseci=cmmi10 \font\ssecsy=cmsy10 \def\ssececsize{1000} % Reduced fonts for @acronym in text (9pt). \def\reducednominalsize{9pt} \setfont\reducedrm\rmshape{9}{1000}{OT1} \setfont\reducedtt\ttshape{9}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{900}{OT1} \setfont\reducedit\itshape{9}{1000}{OT1IT} \setfont\reducedsl\slshape{9}{1000}{OT1} \setfont\reducedsf\sfshape{9}{1000}{OT1} \setfont\reducedsc\scshape{10}{900}{OT1} \setfont\reducedttsl\ttslshape{10}{900}{OT1TT} \font\reducedi=cmmi9 \font\reducedsy=cmsy9 \def\reducedecsize{0900} \divide\parskip by 2 % reduce space between paragraphs \textleading = 12pt % line spacing for 10pt CM \textfonts % reset the current fonts \rm } % end of 10pt text font size definitions, \definetextfontsizex % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000}{OT1} \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000}{OT1} \setfont\shortconttt\ttshape{12}{1000}{OT1TT} % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % \def\xiword{11} \def\xword{10} \def\xwordpt{10pt} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% %\wlog{doing @fonttextsize \textsizearg}% % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi \else \errhelp=\EMsimple \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} \fi\fi \endgroup } % % Change the current font style to #1, remembering it in \curfontstyle. % For now, we do not accumulate font styles: @b{@i{foo}} prints foo in % italics, not bold italics. % \def\setfontstyle#1{% \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. \csname #1font\endcsname % change the current font } \def\rm{\fam=0 \setfontstyle{rm}} \def\it{\fam=\itfam \setfontstyle{it}} \def\sl{\fam=\slfam \setfontstyle{sl}} \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} \def\tt{\fam=\ttfam \setfontstyle{tt}}\def\ttstylename{tt} % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf. \newfam\sffam \def\sf{\fam=\sffam \setfontstyle{sf}} % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. % We don't bother to reset \scriptscriptfont; awaiting user need. % \def\resetmathfonts{% \textfont0=\rmfont \textfont1=\ifont \textfont2=\syfont \textfont\itfam=\itfont \textfont\slfam=\slfont \textfont\bffam=\bffont \textfont\ttfam=\ttfont \textfont\sffam=\sffont % % Fonts for superscript. Note that the 7pt fonts are used regardless % of the current font size. \scriptfont0=\sevenrm \scriptfont1=\seveni \scriptfont2=\sevensy \scriptfont\itfam=\sevenit \scriptfont\slfam=\sevensl \scriptfont\bffam=\sevenbf \scriptfont\ttfam=\seventt \scriptfont\sffam=\sevensf } % % The font-changing commands (all called \...fonts) redefine the meanings % of \STYLEfont, instead of just \STYLE. We do this because \STYLE needs % to also set the current \fam for math mode. Our \STYLE (e.g., \rm) % commands hardwire \STYLEfont to set the current font. % % The fonts used for \ifont are for "math italics" (\itfont is for italics % in regular text). \syfont is also used in math mode only. % % Each font-changing command also sets the names \lsize (one size lower) % and \lllsize (three sizes lower). These relative commands are used % in, e.g., the LaTeX logo and acronyms. % % This all needs generalizing, badly. % \def\assignfonts#1{% \expandafter\let\expandafter\rmfont\csname #1rm\endcsname \expandafter\let\expandafter\itfont\csname #1it\endcsname \expandafter\let\expandafter\slfont\csname #1sl\endcsname \expandafter\let\expandafter\bffont\csname #1bf\endcsname \expandafter\let\expandafter\ttfont\csname #1tt\endcsname \expandafter\let\expandafter\smallcaps\csname #1sc\endcsname \expandafter\let\expandafter\sffont \csname #1sf\endcsname \expandafter\let\expandafter\ifont \csname #1i\endcsname \expandafter\let\expandafter\syfont \csname #1sy\endcsname \expandafter\let\expandafter\ttslfont\csname #1ttsl\endcsname } \newif\ifrmisbold % Select smaller font size with the current style. Used to change font size % in, e.g., the LaTeX logo and acronyms. If we are using bold fonts for % normal roman text, also use bold fonts for roman text in the smaller size. \def\switchtolllsize{% \expandafter\assignfonts\expandafter{\lllsize}% \ifrmisbold \let\rmfont\bffont \fi \csname\curfontstyle\endcsname }% \def\switchtolsize{% \expandafter\assignfonts\expandafter{\lsize}% \ifrmisbold \let\rmfont\bffont \fi \csname\curfontstyle\endcsname }% \def\definefontsetatsize#1#2#3#4#5{% \expandafter\def\csname #1fonts\endcsname{% \def\curfontsize{#1}% \def\lsize{#2}\def\lllsize{#3}% \csname rmisbold#5\endcsname \assignfonts{#1}% \resetmathfonts \setleading{#4}% }} \definefontsetatsize{text} {reduced}{smaller}{\textleading}{false} \definefontsetatsize{title} {chap} {subsec} {27pt} {true} \definefontsetatsize{chap} {sec} {text} {19pt} {true} \definefontsetatsize{sec} {subsec} {reduced}{17pt} {true} \definefontsetatsize{ssec} {text} {small} {15pt} {true} \definefontsetatsize{reduced}{small} {smaller}{10.5pt}{false} \definefontsetatsize{small} {smaller}{smaller}{10.5pt}{false} \definefontsetatsize{smaller}{smaller}{smaller}{9.5pt} {false} \def\titlefont#1{{\titlefonts\rm #1}} \let\subsecfonts = \ssecfonts \let\subsubsecfonts = \ssecfonts % Define these just so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample % can fit this many characters: % 8.5x11=86 smallbook=72 a4=90 a5=69 % If we use \scriptfonts (8pt), then we can fit this many characters: % 8.5x11=90+ smallbook=80 a4=90+ a5=77 % For me, subjectively, the few extra characters that fit aren't worth % the additional smallness of 8pt. So I'm making the default 9pt. % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. % \def\ifmonospace{\ifdim\fontdimen3\font=0pt } { \catcode`\'=\active \catcode`\`=\active \gdef\setcodequotes{\let`\codequoteleft \let'\codequoteright} \gdef\setregularquotes{\let`\lq \let'\rq} } % Allow an option to not use regular directed right quote/apostrophe % (char 0x27), but instead the undirected quote from cmtt (char 0x0d). % The undirected quote is ugly, so don't make it the default, but it % works for pasting with more pdf viewers (at least evince), the % lilypond developers report. xpdf does work with the regular 0x27. % \def\codequoteright{% \ifmonospace \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax '% \else \char'15 \fi \else \char'15 \fi \else '% \fi } % % and a similar option for the left quote char vs. a grave accent. % Modern fonts display ASCII 0x60 as a grave accent, so some people like % the code environments to do likewise. % \def\codequoteleft{% \ifmonospace \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax % [Knuth] pp. 380,381,391 % \relax disables Spanish ligatures ?` and !` of \tt font. \relax`% \else \char'22 \fi \else \char'22 \fi \else \relax`% \fi } % Commands to set the quote options. % \parseargdef\codequoteundirected{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequoteundirected\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequoteundirected\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% \fi\fi } % \parseargdef\codequotebacktick{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequotebacktick\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequotebacktick\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% \fi\fi } % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Font commands. % #1 is the font command (\sl or \it), #2 is the text to slant. % If we are in a monospaced environment, however, 1) always use \ttsl, % and 2) do not add an italic correction. \def\dosmartslant#1#2{% \ifusingtt {{\ttsl #2}\let\next=\relax}% {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% \next } \def\smartslanted{\dosmartslant\sl} \def\smartitalic{\dosmartslant\it} % Output an italic correction unless \next (presumed to be the following % character) is such as not to need one. \def\smartitaliccorrection{% \ifx\next,% \else\ifx\next-% \else\ifx\next.% \else\ifx\next\.% \else\ifx\next\comma% \else\ptexslash \fi\fi\fi\fi\fi \aftersmartic } % Unconditional use \ttsl, and no ic. @var is set to this for defuns. \def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} \def\aftersmartic{} \def\var#1{% \let\saveaftersmartic = \aftersmartic \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% \smartslanted{#1}% } \let\i=\smartitalic \let\slanted=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic % Explicit font changes: @r, @sc, undocumented @ii. \def\r#1{{\rm #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } % Set sfcode to normal for the chars that usually have another value. % Can't use plain's \frenchspacing because it uses the `\x notation, and % sometimes \x has an active definition that messes things up. % \catcode`@=11 \def\plainfrenchspacing{% \sfcode`\.=\@m \sfcode`\?=\@m \sfcode`\!=\@m \sfcode`\:=\@m \sfcode`\;=\@m \sfcode`\,=\@m \def\endofsentencespacefactor{1000}% for @. and friends } \def\plainnonfrenchspacing{% \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other \def\endofsentencespacefactor{3000}% default % @t, explicit typewriter. \def\t#1{% {\tt \plainfrenchspacing #1}% \null } % @samp. \def\samp#1{{\setcodequotes\lq\tclose{#1}\rq\null}} % @indicateurl is \samp, that is, with quotes. \let\indicateurl=\samp % @code (and similar) prints in typewriter, but with spaces the same % size as normal in the surrounding text, without hyphenation, etc. % This is a subroutine for that. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. % (But see \codedashfinish below.) % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. % % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. -- rms. { \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active \catcode`\`=\active \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup \setcodequotes \catcode\dashChar=\active \catcode\underChar=\active \ifallowcodebreaks \let-\codedash \let_\codeunder \else \let-\normaldash \let_\realunder \fi % Given -foo (with a single dash), we do not want to allow a break % after the hyphen. \global\let\codedashprev=\codedash % \codex } % \gdef\codedash{\futurelet\next\codedashfinish} \gdef\codedashfinish{% \normaldash % always output the dash character itself. % % Now, output a discretionary to allow a line break, unless % (a) the next character is a -, or % (b) the preceding character is a -. % E.g., given --posix, we do not want to allow a break after either -. % Given --foo-bar, we do want to allow a break between the - and the b. \ifx\next\codedash \else \ifx\codedashprev\codedash \else \discretionary{}{}{}\fi \fi % we need the space after the = for the case when \next itself is a % space token; it would get swallowed otherwise. As in @code{- a}. \global\let\codedashprev= \next } } \def\normaldash{-} % \def\codex #1{\tclose{#1}\endgroup} \def\codeunder{% % this is all so @math{@code{var_name}+1} can work. In math mode, _ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) % will therefore expand the active definition of _, which is us % (inside @code that is), therefore an endless loop. \ifusingtt{\ifmmode \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. \else\normalunderscore \fi \discretionary{}{}{}}% {\_}% } % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is bad. % @allowcodebreaks provides a document-level way to turn breaking at - % and _ on and off. % \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} \def\keywordfalse{false} \parseargdef\allowcodebreaks{% \def\txiarg{#1}% \ifx\txiarg\keywordtrue \allowcodebreakstrue \else\ifx\txiarg\keywordfalse \allowcodebreaksfalse \else \errhelp = \EMsimple \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% \fi\fi } % For @command, @env, @file, @option quotes seem unnecessary, % so use \code rather than \samp. \let\command=\code \let\env=\code \let\file=\code \let\option=\code % @uref (abbreviation for `urlref') aka @url takes an optional % (comma-separated) second argument specifying the text to display and % an optional third arg as text to display instead of (rather than in % addition to) the url itself. First (mandatory) arg is the url. % TeX-only option to allow changing PDF output to show only the second % arg (if given), and not the url (which is then just the link target). \newif\ifurefurlonlylink % The default \pretolerance setting stops the penalty inserted in % \urefallowbreak being a discouragement to line breaking. Set it to % a negative value for this paragraph only. Hopefully this does not % conflict with redefinitions of \par done elsewhere. \def\nopretolerance{% \pretolerance=-1 \def\par{\endgraf\pretolerance=100 \let\par\endgraf}% } % The main macro is \urefbreak, which allows breaking at expected % places within the url. \def\urefbreak{\nopretolerance \begingroup \urefcatcodes \dourefbreak} \let\uref=\urefbreak % \def\dourefbreak#1{\urefbreakfinish #1,,,\finish} \def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% look for second arg \ifdim\wd0 > 0pt \ifpdf % For pdfTeX and LuaTeX \ifurefurlonlylink % PDF plus option to not display url, show just arg \unhbox0 \else % PDF, normally display both arg and url for consistency, % visibility, if the pdf is eventually used to print, etc. \unhbox0\ (\urefcode{#1})% \fi \else \ifx\XeTeXrevision\thisisundefined \unhbox0\ (\urefcode{#1})% DVI, always show arg and url \else % For XeTeX \ifurefurlonlylink % PDF plus option to not display url, show just arg \unhbox0 \else % PDF, normally display both arg and url for consistency, % visibility, if the pdf is eventually used to print, etc. \unhbox0\ (\urefcode{#1})% \fi \fi \fi \else \urefcode{#1}% only url given, so show it \fi \fi \endlink \endgroup} % Allow line breaks around only a few characters (only). \def\urefcatcodes{% \catcode`\&=\active \catcode`\.=\active \catcode`\#=\active \catcode`\?=\active \catcode`\/=\active } { \urefcatcodes % \global\def\urefcode{\begingroup \setcodequotes \urefcatcodes \let&\urefcodeamp \let.\urefcodedot \let#\urefcodehash \let?\urefcodequest \let/\urefcodeslash \codex } % % By default, they are just regular characters. \global\def&{\normalamp} \global\def.{\normaldot} \global\def#{\normalhash} \global\def?{\normalquest} \global\def/{\normalslash} } \def\urefcodeamp{\urefprebreak \&\urefpostbreak} \def\urefcodedot{\urefprebreak .\urefpostbreak} \def\urefcodehash{\urefprebreak \#\urefpostbreak} \def\urefcodequest{\urefprebreak ?\urefpostbreak} \def\urefcodeslash{\futurelet\next\urefcodeslashfinish} { \catcode`\/=\active \global\def\urefcodeslashfinish{% \urefprebreak \slashChar % Allow line break only after the final / in a sequence of % slashes, to avoid line break between the slashes in http://. \ifx\next/\else \urefpostbreak \fi } } % By default we'll break after the special characters, but some people like to % break before the special chars, so allow that. Also allow no breaking at % all, for manual control. % \parseargdef\urefbreakstyle{% \def\txiarg{#1}% \ifx\txiarg\wordnone \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordbefore \def\urefprebreak{\urefallowbreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordafter \def\urefprebreak{\nobreak}\def\urefpostbreak{\urefallowbreak} \else \errhelp = \EMsimple \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% \fi\fi\fi } \def\wordafter{after} \def\wordbefore{before} \def\wordnone{none} % Allow a ragged right output to aid breaking long URL's. There can % be a break at the \allowbreak with no extra glue (if the existing stretch in % the line is sufficient), a break at the \penalty with extra glue added % at the end of the line, or no break at all here. % Changing the value of the penalty and/or the amount of stretch affects how % preferable one choice is over the other. \def\urefallowbreak{% \penalty0\relax \hskip 0pt plus 2 em\relax \penalty1000\relax \hskip 0pt plus -2 em\relax } \urefbreakstyle after % @url synonym for @uref, since that's how everyone uses it. % \let\url=\uref % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. % %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdforxetex \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup} \else \let\email=\uref \fi % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \parseargdef\kbdinputstyle{% \def\txiarg{#1}% \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is `distinct'. \kbdinputstyle distinct % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}} \def\xkey{\key} \def\kbdsub#1#2#3\par{% \def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\setcodequotes\look}}\fi \else{\tclose{\kbdfont\setcodequotes\look}}\fi } % definition of @key that produces a lozenge. Doesn't adjust to text size. %\setfont\keyrm\rmshape{8}{1000}{OT1} %\font\keysy=cmsy9 %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% % \vbox{\hrule\kern-0.4pt % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% % \kern-0.4pt\hrule}% % \kern-.06em\raise0.4pt\hbox{\angleright}}}} % definition of @key with no lozenge. If the current font is already % monospace, don't change it; that way, we respect @kbdinputstyle. But % if it isn't monospace, then use \tt. % \def\key#1{{\setregularquotes \nohyphenation \ifmonospace\else\tt\fi #1}\null} % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} % @clickstyle @arrow (by default) \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. % \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\switchtolsize #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { \catcode`\_ = \active \gdef\mathunderscore{% \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } % Another complication: we want \\ (and @\) to output a math (or tt) \. % FYI, plain.tex uses \\ as a temporary control sequence (for no % particular reason), but this is not advertised and we don't care. % % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \ifmmode\else % only go into math if not in math mode already \tex \mathunderscore \let\\ = \mathbackslash \mathactive % make the texinfo accent commands work in math mode \let\"=\ddot \let\'=\acute \let\==\bar \let\^=\hat \let\`=\grave \let\u=\breve \let\v=\check \let\~=\tilde \let\dotaccent=\dot % have to provide another name for sup operator \let\mathopsup=\sup $\expandafter\finishmath\fi } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. % Some active characters (such as <) are spaced differently in math. % We have to reset their definitions in case the @math was an argument % to a command which sets the catcodes (such as @item or @section). % { \catcode`^ = \active \catcode`< = \active \catcode`> = \active \catcode`+ = \active \catcode`' = \active \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus \let' = \ptexquoteright } } % for @sub and @sup, if in math mode, just do a normal sub/superscript. % If in text, use math to place as sub/superscript, but switch % into text mode, with smaller fonts. This is a different font than the % one used for real math sub/superscripts (8pt vs. 7pt), but let's not % fix it (significant additions to font machinery) until someone notices. % \def\sub{\ifmmode \expandafter\sb \else \expandafter\finishsub\fi} \def\finishsub#1{$\sb{\hbox{\switchtolllsize #1}}$}% % \def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi} \def\finishsup#1{$\ptexsp{\hbox{\switchtolllsize #1}}$}% % provide this command from LaTeX as it is very common \def\frac#1#2{{{#1}\over{#2}}} % @displaymath. % \globaldefs is needed to recognize the end lines in \tex and % \end tex. Set \thisenv as @end displaymath is seen before @end tex. {\obeylines \globaldefs=1 \envdef\displaymath{% \tex% \def\thisenv{\displaymath}% \begingroup\let\end\displaymathend% $$% } \def\displaymathend{$$\endgroup\end}% \def\Edisplaymath{% \def\thisenv{\tex}% \end tex }} % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, % except specified as a normal braced arg, so no newlines to worry about. % \def\outfmtnametex{tex} % \long\def\inlinefmt#1{\doinlinefmt #1,\finish} \long\def\doinlinefmt#1,#2,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi } % % @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if % FMTNAME is tex, else ELSE-TEXT. \long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish} \long\def\doinlinefmtifelse#1,#2,#3,#4,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\else \ignorespaces #3\fi } % % For raw, must switch into @tex before parsing the argument, to avoid % setting catcodes prematurely. Doing it this way means that, for % example, @inlineraw{html, foo{bar} gets a parse error instead of being % ignored. But this isn't important because if people want a literal % *right* brace they would have to use a command anyway, so they may as % well use a command to get a left brace too. We could re-use the % delimiter character idea from \verb, but it seems like overkill. % \long\def\inlineraw{\tex \doinlineraw} \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} \def\doinlinerawtwo#1,#2,\finish{% \def\inlinerawname{#1}% \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi \endgroup % close group opened by \tex. } % @inlineifset{VAR, TEXT} expands TEXT if VAR is @set. % \long\def\inlineifset#1{\doinlineifset #1,\finish} \long\def\doinlineifset#1,#2,\finish{% \def\inlinevarname{#1}% \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \else\ignorespaces#2\fi } % @inlineifclear{VAR, TEXT} expands TEXT if VAR is not @set. % \long\def\inlineifclear#1{\doinlineifclear #1,\finish} \long\def\doinlineifclear#1,#2,\finish{% \def\inlinevarname{#1}% \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \ignorespaces#2\fi } \message{glyphs,} % and logos. % @@ prints an @, as does @atchar{}. \def\@{\char64 } \let\atchar=\@ % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. \def\lbracechar{{\ifmonospace\char123\else\ensuremath\lbrace\fi}} \def\rbracechar{{\ifmonospace\char125\else\ensuremath\rbrace\fi}} \let\{=\lbracechar \let\}=\rbracechar % @comma{} to avoid , parsing problems. \let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \ptexc \let\dotaccent = \ptexdot \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \ptext \let\ubaraccent = \ptexb \let\udotaccent = \d % Other special characters: @questiondown @exclamdown @ordf @ordm % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} \def\ordf{\leavevmode\raise1ex\hbox{\switchtolllsize \underbar{a}}} \def\ordm{\leavevmode\raise1ex\hbox{\switchtolllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % The \TeX{} logo, as in plain, but resetting the spacing so that a % period following counts as ending a sentence. (Idea found in latex.) % \edef\TeX{\TeX \spacefactor=1000 } % @LaTeX{} logo. Not quite the same results as the definition in % latex.ltx, since we use a different font for the raised A; it's most % convenient for us to use an explicitly smaller font, rather than using % the \scriptstyle font (since we don't reset \scriptstyle and % \scriptscriptstyle). % \def\LaTeX{% L\kern-.36em {\setbox0=\hbox{T}% \vbox to \ht0{\hbox{% \ifx\textnominalsize\xwordpt % for 10pt running text, lllsize (8pt) is too small for the A in LaTeX. % Revert to plain's \scriptsize, which is 7pt. \count255=\the\fam $\fam\count255 \scriptstyle A$% \else % For 11pt, we can use our lllsize. \switchtolllsize A% \fi }% \vss }}% \kern-.15em \TeX } % Some math mode symbols. Define \ensuremath to switch into math mode % unless we are already there. Expansion tricks may not be needed here, % but safer, and can't hurt. \def\ensuremath{\ifmmode \expandafter\asis \else\expandafter\ensuredmath \fi} \def\ensuredmath#1{$\relax#1$} % \def\bullet{\ensuremath\ptexbullet} \def\geq{\ensuremath\ge} \def\leq{\ensuremath\le} \def\minus{\ensuremath-} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in the cm % typewriter fonts as three actual period characters; on the other hand, % in other typewriter fonts three periods are wider than 1.5em. So do % whichever is larger. % \def\dots{% \leavevmode \setbox0=\hbox{...}% get width of three periods \ifdim\wd0 > 1.5em \dimen0 = \wd0 \else \dimen0 = 1.5em \fi \hbox to \dimen0{% \hskip 0pt plus.25fil .\hskip 0pt plus1fil .\hskip 0pt plus1fil .\hskip 0pt plus.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \dots \spacefactor=\endofsentencespacefactor } % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, they should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. % \newbox\errorbox % {\ttfont \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. \vbox{% \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} % \def\error{\leavevmode\lower.7ex\copy\errorbox} % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{\ifmonospace{\ecfont\char"BF}\else{\it\$}\fi} % @euro{} comes from a separate font, depending on the current style. % We use the free feym* fonts from the eurosym package by Henrik % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. % % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. % % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted % % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. % % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. % % \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } % Glyphs from the EC fonts. We don't use \let for the aliases, because % sometimes we redefine the original macro, and the alias should reflect % the redefinition. % % Use LaTeX names for the Icelandic letters. \def\DH{{\ecfont \char"D0}} % Eth \def\dh{{\ecfont \char"F0}} % eth \def\TH{{\ecfont \char"DE}} % Thorn \def\th{{\ecfont \char"FE}} % thorn % \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} \def\guillemotright{\guillemetright} \def\guilsinglleft{{\ecfont \char"0E}} \def\guilsinglright{{\ecfont \char"0F}} \def\quotedblbase{{\ecfont \char"12}} \def\quotesinglbase{{\ecfont \char"0D}} % % This positioning is not perfect (see the ogonek LaTeX package), but % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. \def\ogonek#1{{% \def\temp{#1}% \ifx\temp\macrocharA\Aogonek \else\ifx\temp\macrochara\aogonek \else\ifx\temp\macrocharE\Eogonek \else\ifx\temp\macrochare\eogonek \else \ecfont \setbox0=\hbox{#1}% \ifdim\ht0=1ex\accent"0C #1% \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% \fi \fi\fi\fi\fi }% } \def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} \def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % % Use the European Computer Modern fonts (cm-super in outline format) % for non-CM glyphs. That is ec* for regular text and tc* for the text % companion symbols (LaTeX TS1 encoding). Both are part of the ec % package and follow the same conventions. % \def\ecfont{\etcfont{e}} \def\tcfont{\etcfont{t}} % \def\etcfont#1{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German % quotes to documents typeset with CM, where we lose kerning), so % hopefully nobody will notice/care. \edef\ecsize{\csname\curfontsize ecsize\endcsname}% \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% \ifmonospace % typewriter: \font\thisecfont = #1ctt\ecsize \space at \nominalsize \else \ifx\curfontstyle\bfstylename % bold: \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize \else % regular: \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi \fi \thisecfont } % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. % \def\registeredsymbol{% $^{{\ooalign{\hfil\raise.07ex\hbox{\switchtolllsize R}% \hfil\crcr\Orb}}% }$% } % @textdegree - the normal degrees sign. % \def\textdegree{$^\circ$} % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % \ifx\Orb\thisisundefined \def\Orb{\mathhexbox20D} \fi % Quotes. \chardef\quoteleft=`\` \chardef\quoteright=`\' % only change font for tt for correct kerning and to avoid using % \ecfont unless necessary. \def\quotedblleft{% \ifmonospace{\ecfont\char"10}\else{\char"5C}\fi } \def\quotedblright{% \ifmonospace{\ecfont\char"11}\else{\char`\"}\fi } \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. \newif\ifseenauthor \newif\iffinishedtitlepage % @setcontentsaftertitlepage used to do an implicit @contents or % @shortcontents after @end titlepage, but it is now obsolete. \def\setcontentsaftertitlepage{% \errmessage{@setcontentsaftertitlepage has been removed as a Texinfo command; move your @contents command if you want the contents after the title page.}}% \def\setshortcontentsaftertitlepage{% \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo command; move your @shortcontents and @contents commands if you want the contents after the title page.}}% \parseargdef\shorttitlepage{% \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. \begingroup \parindent=0pt \textfonts % Leave some space at the very top of the page. \vglue\titlepagetopglue % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue % % Most title ``pages'' are actually two pages long, with space % at the top of the second. We don't want the ragged left on the second. \let\oldpage = \page \def\page{% \iffinishedtitlepage\else \finishtitlepage \fi \let\page = \oldpage \page \null }% } \def\Etitlepage{% \iffinishedtitlepage\else \finishtitlepage \fi % It is important to do the page break before ending the group, % because the headline and footline are only empty inside the group. % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage \endgroup % % Need this before the \...aftertitlepage checks so that if they are % in effect the toc pages will come out with page numbers. \HEADINGSon } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } % Settings used for typesetting titles: no hyphenation, no indentation, % don't worry much about spacing, ragged right. This should be used % inside a \vbox, and fonts need to be set appropriately first. \par should % be specified before the end of the \vbox, since a vbox is a group. % \def\raggedtitlesettings{% \rm \hyphenpenalty=10000 \parindent=0pt \tolerance=5000 \ptexraggedright } % Macros to be used within @titlepage: \let\subtitlerm=\rmfont \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \parseargdef\title{% \checkenv\titlepage \vbox{\titlefonts \raggedtitlesettings #1\par}% % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt } \parseargdef\subtitle{% \checkenv\titlepage {\subtitlefont \rightline{#1}}% } % @author should come last, but may come many times. % It can also be used inside @quotation. % \parseargdef\author{% \def\temp{\quotation}% \ifx\thisenv\temp \def\quotationauthor{#1}% printed in \Equotation. \else \checkenv\titlepage \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi {\secfonts\rm \leftline{#1}}% \fi } % Set up page headings and footings. \let\thispage=\folio \newtoks\evenheadline % headline on even pages \newtoks\oddheadline % headline on odd pages \newtoks\evenchapheadline% headline on even pages with a new chapter \newtoks\oddchapheadline % headline on odd pages with a new chapter \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make \makeheadline and \makefootline in Plain TeX use those variables \headline={{\textfonts\rm \ifchapterpage \ifodd\pageno\the\oddchapheadline\else\the\evenchapheadline\fi \else \ifodd\pageno\the\oddheadline\else\the\evenheadline\fi \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}\HEADINGShook} \let\HEADINGShook=\relax % Commands to set those variables. % For example, this is what @headings on does % @evenheading @thistitle|@thispage|@thischapter % @oddheading @thischapter|@thispage|@thistitle % @evenfooting @thisfile|| % @oddfooting ||@thisfile \def\evenheading{\parsearg\evenheadingxxx} \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} \def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}} \global\evenchapheadline=\evenheadline} \def\oddheading{\parsearg\oddheadingxxx} \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} \def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}% \global\oddchapheadline=\oddheadline} \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \def\evenfooting{\parsearg\evenfootingxxx} \def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} \def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddfooting{\parsearg\oddfootingxxx} \def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} \def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. \global\advance\txipageheight by -12pt \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} % @evenheadingmarks top \thischapter <- chapter at the top of a page % @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page % % The same set of arguments for: % % @oddheadingmarks % @evenfootingmarks % @oddfootingmarks % @everyheadingmarks % @everyfootingmarks % These define \getoddheadingmarks, \getevenheadingmarks, % \getoddfootingmarks, and \getevenfootingmarks, each to one of % \gettopheadingmarks, \getbottomheadingmarks. % \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} \def\oddfootingmarks{\headingmarks{odd}{footing}} \parseargdef\everyheadingmarks{\headingmarks{even}{heading}{#1} \headingmarks{odd}{heading}{#1} } \parseargdef\everyfootingmarks{\headingmarks{even}{footing}{#1} \headingmarks{odd}{footing}{#1} } % #1 = even/odd, #2 = heading/footing, #3 = top/bottom. \def\headingmarks#1#2#3 {% \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname \global\expandafter\let\csname get#1#2marks\endcsname \temp } \everyheadingmarks bottom \everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \parseargdef\headings{\csname HEADINGS#1\endcsname} \def\headingsoff{% non-global headings elimination \evenheadline={\hfil}\evenfootline={\hfil}\evenchapheadline={\hfil}% \oddheadline={\hfil}\oddfootline={\hfil}\oddchapheadline={\hfil}% } \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting \HEADINGSoff % it's the default % When we turn headings on, set the page number to 1. \def\pageone{ \global\pageno=1 \global\arabiccount = \pagecount } % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. \def\HEADINGSdouble{% \pageone \HEADINGSdoublex } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{% \pageone \HEADINGSsinglex } \def\HEADINGSon{\HEADINGSdouble} \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter \def\HEADINGSdoublex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\evenchapheadline={\line{\folio\hfil}} \global\oddchapheadline={\line{\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\evenchapheadline={\line{\hfil\folio}} \global\oddchapheadline={\line{\hfil\folio}} \global\let\contentsalignmacro = \chappager } % for @setchapternewpage off \def\HEADINGSsinglechapoff{% \pageone \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\evenchapheadline=\evenheadline \global\oddchapheadline=\oddheadline \global\let\contentsalignmacro = \chappager } % Subroutines used in generating headings % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). \ifx\today\thisisundefined \def\today{% \number\day\space \ifcase\month \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec \fi \space\number\year} \fi % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} \def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} % Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in % default indentation of @itemize and @enumerate text \newdimen\itemindent \itemindent=.3in % margin between end of table item and start of table text. \newdimen\itemmargin \itemmargin=.1in % used internally for \itemindent minus \itemmargin \newdimen\itemmax % Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). \newif\ifitemxneedsnegativevskip \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % % If the item text does not fit in the space we have, put it on a line % by itself, and do not allow a page break either before or after that % line. We do not start a paragraph here because then if the next % command is, e.g., @kindex, the whatsit would get put into the % horizontal list on a line by itself, resulting in extra blank space. \ifdim \wd0>\itemmax % % Make this a paragraph so we get the \parskip glue and wrapping, % but leave it ragged-right. \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % % We're going to be starting a paragraph, but we don't want the % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % % Stop a page break at the \parskip glue coming up. However, if % what follows is an environment such as @example, there will be no % \parskip glue; then the negative vskip we just inserted would % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else % The item text fits into the space. Start a paragraph, so that the % following text (if any) will end up on the same line. \noindent % Do this with kerns and \unhbox so that if there is a footnote in % the item text, it can migrate to the main vertical list and % eventually be printed. \nobreak\kern-\tableindent \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 \unhbox0 \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue \fi } \def\item{\errmessage{@item while not in a list environment}} \def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. \envdef\table{% \let\itemindex\gobble \tablecheck{table}% } \envdef\ftable{% \def\itemindex ##1{\doind {fn}{\code{##1}}}% \tablecheck{ftable}% } \envdef\vtable{% \def\itemindex ##1{\doind {vr}{\code{##1}}}% \tablecheck{vtable}% } \def\tablecheck#1{% \ifnum \the\catcode`\^^M=\active \endgroup \errmessage{This command won't work in this context; perhaps the problem is that we are \inenvironment\thisenv}% \def\next{\doignore{#1}}% \else \let\next\tablex \fi \next } \def\tablex#1{% \def\itemindicate{#1}% \parsearg\tabley } \def\tabley#1{% {% \makevalueexpandable \edef\temp{\noexpand\tablez #1\space\space\space}% \expandafter }\temp \endtablez } \def\tablez #1 #2 #3 #4\endtablez{% \aboveenvbreak \ifnum 0#1>0 \advance \leftskip by #1\mil \fi \ifnum 0#2>0 \tableindent=#2\mil \fi \ifnum 0#3>0 \advance \rightskip by #3\mil \fi \itemmax=\tableindent \advance \itemmax by -\itemmargin \advance \leftskip by \tableindent \exdentamount=\tableindent \parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi \let\item = \internalBitem \let\itemx = \internalBitemx } \def\Etable{\endgraf\afterenvbreak} \let\Eftable\Etable \let\Evtable\Etable \let\Eitemize\Etable \let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno \envdef\itemize{\parsearg\doitemize} \def\doitemize#1{% \aboveenvbreak \itemmax=\itemindent \advance\itemmax by -\itemmargin \advance\leftskip by \itemindent \exdentamount=\itemindent \parindent=0pt \parskip=\smallskipamount \ifdim\parskip=0pt \parskip=2pt \fi % % Try typesetting the item mark so that if the document erroneously says % something like @itemize @samp (intending @table), there's an error % right away at the @itemize. It's not the best error message in the % world, but it's better than leaving it to the @item. This means if % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% \setbox0 = \hbox{\itemcontents}% % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi % \let\item=\itemizeitem } % Definition of @item while inside @itemize and @enumerate. % \def\itemizeitem{% \advance\itemno by 1 % for enumerations {\let\par=\endgraf \smallbreak}% reasonable place to break {% % If the document has an @itemize directly after a section title, a % \nobreak will be last on the list, and \sectionheading will have % done a \vskip-\parskip. In that case, we don't want to zero % parskip, or the item text will crash with the heading. On the % other hand, when there is normal text preceding the item (as there % usually is), we do want to zero parskip, or there would be too much % space. In that case, we won't have a \nobreak before. At least % that's the theory. \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% % \ifinner\else \vadjust{\penalty 1200}% not good to break after first line of item. \fi % We can be in inner vertical mode in a footnote, although an % @itemize looks awful there. }% \flushcr } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. % \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% % Allow an optional argument of an uppercase letter, lowercase letter, % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % \envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi % % Detect if the argument is a single token. If so, it might be a % letter. Otherwise, the only valid thing it can be is a number. % (We will always have one token, because of the test we just made. % This is a good thing, since \splitoff doesn't work given nothing at % all -- the first parameter is undelimited.) \expandafter\splitoff\thearg\endmark \ifx\rest\empty % Only one token in the argument. It could still be anything. % A ``lowercase letter'' is one whose \lccode is nonzero. % An ``uppercase letter'' is one whose \lccode is both nonzero, and % not equal to itself. % Otherwise, we assume it's a number. % % We need the \relax at the end of the \ifnum lines to stop TeX from % continuing to look for a <number>. % \ifnum\lccode\expandafter`\thearg=0\relax \numericenumerate % a number (we hope) \else % It's a letter. \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax \lowercaseenumerate % lowercase letter \else \uppercaseenumerate % uppercase letter \fi \fi \else % Multiple tokens in the argument. We hope it's a number. \numericenumerate \fi } % An @enumerate whose labels are integers. The starting integer is % given in \thearg. % \def\numericenumerate{% \itemno = \thearg \startenumeration{\the\itemno}% } % The starting (lowercase) letter is in \thearg. \def\lowercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more lowercase letters in @enumerate; get a bigger alphabet}% \fi \char\lccode\itemno }% } % The starting (uppercase) letter is in \thearg. \def\uppercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more uppercase letters in @enumerate; get a bigger alphabet} \fi \char\uccode\itemno }% } % Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 \doitemize{#1.}\flushcr } % @multitable macros % Macros used to set up halign preamble: % \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} \let\columnfractions\relax \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent % #1 is the @columnfraction, usually a decimal number like .5, but might % be just 1. We just use it, whatever it is. % \def\pickupwholefraction#1 {% \global\advance\colcount by 1 \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } \newcount\colcount \def\setuptable#1{% \def\firstarg{#1}% \ifx\firstarg\xendsetuptable \let\go = \relax \else \ifx\firstarg\xcolumnfractions \global\setpercenttrue \else \ifsetpercent \let\go\pickupwholefraction \else \global\advance\colcount by 1 \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi \ifx\go\pickupwholefraction % Put the argument back for the \pickupwholefraction call, so % we'll always have a period there to be parsed. \def\go{\pickupwholefraction#1}% \else \let\go = \setuptable \fi% \fi \go } % @headitem starts a heading row, which we typeset in bold. Assignments % have to be global since we are inside the implicit group of an % alignment entry. \everycr below resets \everytab so we don't have to % undo it ourselves. \def\headitemfont{\b}% for people to use in the template row; not changeable \def\headitem{% \checkenv\multitable \crcr \gdef\headitemcrhook{\nobreak}% attempt to avoid page break after headings \global\everytab={\bf}% can't use \headitemfont since the parsing differs \the\everytab % for the first item }% % % default for tables with no headings. \let\headitemcrhook=\relax % \def\tab{\checkenv\multitable &\the\everytab}% \newtoks\everytab % insert after every tab. % \envdef\multitable{% \vskip\parskip \startsavinginserts % % @item within a multitable starts a normal row. % We use \def instead of \let so that if one of the multitable entries % contains an @itemize, we don't choke on the \item (seen as \crcr aka % \endtemplate) expanding \doitemize. \def\item{\crcr}% % \tolerance=9500 \hbadness=9500 \parskip=0pt \parindent=6pt \overfullrule=0pt \global\colcount=0 % \everycr = {% \noalign{% \global\everytab={}% Reset from possible headitem. \global\colcount=0 % Reset the column counter. % % Check for saved footnotes, etc.: \checkinserts % % Perhaps a \nobreak, then reset: \headitemcrhook \global\let\headitemcrhook=\relax }% }% % \parsearg\domultitable } \def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup &% \global\advance\colcount by 1 \strut \vtop{% \advance\hsize by -1\leftskip % Find the correct column width \hsize=\expandafter\csname col\the\colcount\endcsname % \rightskip=0pt \ifnum\colcount=1 \advance\hsize by\leftskip % Add indent of surrounding text \else % In order to keep entries from bumping into each other. \leftskip=12pt \ifsetpercent \else % If a template has been used \advance\hsize by \leftskip \fi \fi \noindent\ignorespaces##\unskip\strut }\cr } \def\Emultitable{% \crcr \egroup % end the \halign \global\setpercentfalse } \message{conditionals,} % @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, % @ifnotxml always succeed. They currently do nothing; we don't % attempt to check whether the conditionals are properly nested. But we % have to remember that they are conditionals, so that @end doesn't % attempt to close an environment group. % \def\makecond#1{% \expandafter\let\csname #1\endcsname = \relax \expandafter\let\csname iscond.#1\endcsname = 1 } \makecond{iftex} \makecond{ifnotdocbook} \makecond{ifnothtml} \makecond{ifnotinfo} \makecond{ifnotplaintext} \makecond{ifnotxml} % Ignore @ignore, @ifhtml, @ifinfo, and the like. % \def\direntry{\doignore{direntry}} \def\documentdescription{\doignore{documentdescription}} \def\docbook{\doignore{docbook}} \def\html{\doignore{html}} \def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} \def\ifnottex{\doignore{ifnottex}} \def\ifplaintext{\doignore{ifplaintext}} \def\ifxml{\doignore{ifxml}} \def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} \def\xml{\doignore{xml}} % Ignore text until a line `@end #1', keeping track of nested conditionals. % % A count to remember the depth of nesting. \newcount\doignorecount \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. \spaceisspace % % Count number of #1's that we've seen. \doignorecount = 0 % % Swallow text until we reach the matching `@end #1'. \dodoignore{#1}% } { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. \obeylines % % \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % % Define a command to find the next `@end #1'. \long\def\doignoretext##1^^M@end #1{% \doignoretextyyy##1^^M@#1\_STOP_}% % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. \doignoretext ^^M% }% } \def\doignoreyyy#1{% \def\temp{#1}% \ifx\temp\empty % Nothing found. \let\next\doignoretextzzz \else % Found a nested condition, ... \advance\doignorecount by 1 \let\next\doignoretextyyy % ..., look for another. % If we're here, #1 ends with ^^M\ifinfo (for example). \fi \next #1% the token \_STOP_ is present just after this macro. } % We have to swallow the remaining "\_STOP_". % \def\doignoretextzzz#1{% \ifnum\doignorecount = 0 % We have just found the outermost @end. \let\next\enddoignore \else % Still inside a nested condition. \advance\doignorecount by -1 \let\next\doignoretext % Look for the next @end. \fi \next } % Finish off ignored text. { \obeylines% % Ignore anything after the last `@end #1'; this matters in verbatim % environments, where otherwise the newline after an ignored conditional % would result in a blank line in the output. \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. % We rely on the fact that \parsearg sets \catcode`\ =10. % \parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% {% \makevalueexpandable \def\temp{#2}% \edef\next{\gdef\makecsname{SET#1}}% \ifx\temp\empty \next{}% \else \setzzz#2\endsetzzz \fi }% } % Remove the trailing space \setxxx inserted. \def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % \parseargdef\clear{% {% \makevalueexpandable \global\expandafter\let\csname SET#1\endcsname=\relax }% } % @value{foo} gets the text saved in variable foo. \def\value{\begingroup\makevalueexpandable\valuexxx} \def\valuexxx#1{\expandablevalue{#1}\endgroup} { \catcode`\-=\active \catcode`\_=\active % \gdef\makevalueexpandable{% \let\value = \expandablevalue % We don't want these characters active, ... \catcode`\-=\other \catcode`\_=\other % ..., but we might end up with active ones in the argument if % we're called from @code, as @code{@value{foo-bar_}}, though. % So \let them to their normal equivalents. \let-\normaldash \let_\normalunderscore } } \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi } % Like \expandablevalue, but completely expandable (the \message in the % definition above operates at the execution level of TeX). Used when % writing to auxiliary files, due to the expansion that \write does. % If flag is undefined, pass through an unexpanded @value command: maybe it % will be set by the time it is read back in. % % NB flag names containing - or _ may not work here. \def\dummyvalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax \string\value{#1}% \else \csname SET#1\endcsname \fi } % Used for @value's in index entries to form the sort key: expand the @value % if possible, otherwise sort late. \def\indexnofontsvalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax ZZZZZZZ% \else \csname SET#1\endcsname \fi } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % % To get the special treatment we need for `@end ifset,' we call % \makecond and then redefine. % \makecond{ifset} \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} \def\doifset#1#2{% {% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname SET#2\endcsname\relax #1% If not set, redefine \next. \fi \expandafter }\next } \def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end executes the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % % The `\else' inside the `\doifset' parameter is a trick to reuse the % above code: if the variable is not set, do nothing, if it is set, % then redefine \next to \ifclearfail. % \makecond{ifclear} \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} \def\ifclearfail{\doignore{ifclear}} % @ifcommandisdefined CMD ... @end executes the `...' if CMD (written % without the @) is in fact defined. We can only feasibly check at the % TeX level, so something like `mathcode' is going to considered % defined even though it is not a Texinfo command. % \makecond{ifcommanddefined} \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} % \def\doifcmddefined#1#2{{% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname #2\endcsname\relax #1% If not defined, \let\next as above. \fi \expandafter }\next } \def\ifcmddefinedfail{\doignore{ifcommanddefined}} % @ifcommandnotdefined CMD ... handled similar to @ifclear above. \makecond{ifcommandnotdefined} \def\ifcommandnotdefined{% \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} \def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}} % Set the `txicommandconditionals' variable, so documents have a way to % test if the @ifcommand...defined conditionals are available. \set txicommandconditionals % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment \message{indexing,} % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite % except not \outer, so it can be used within macros and \if's. \edef\newwrite{\makecsname{ptexnewwrite}} % \newindex {foo} defines an index named IX. % It automatically defines \IXindex such that % \IXindex ...rest of line... puts an entry in the index IX. % It also defines \IXindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is IX. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \expandafter\chardef\csname#1indfile\endcsname=0 \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} % \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. % \def\defcodeindex{\parsearg\newcodeindex} % \def\newcodeindex#1{% \expandafter\chardef\csname#1indfile\endcsname=0 \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } % The default indices: \newindex{cp}% concepts, \newcodeindex{fn}% functions, \newcodeindex{vr}% variables, \newcodeindex{tp}% types, \newcodeindex{ky}% keys \newcodeindex{pg}% and programs. % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. % % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. % \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), % #3 the target index (bar). \def\dosynindex#1#2#3{% \requireopenindexfile{#3}% % redefine \fooindfile: \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname \expandafter\let\csname#2indfile\endcsname=\temp % redefine \fooindex: \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% } % Define \doindex, the driver for all index macros. % Argument #1 is generated by the calling \fooindex macro, % and it is the two-letter name of the index. \def\doindex#1{\edef\indexname{#1}\parsearg\doindexxxx} \def\doindexxxx #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx} \def\docodeindexxxx #1{\docind{\indexname}{#1}} % Used for the aux, toc and index files to prevent expansion of Texinfo % commands. % \def\atdummies{% \definedummyletter\@% \definedummyletter\ % \definedummyletter\{% \definedummyletter\}% \definedummyletter\&% % % Do the redefinitions. \definedummies \otherbackslash } % \definedummyword defines \#1 as \string\#1\space, thus effectively % preventing its expansion. This is used only for control words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. % % These can be used both for control words that take an argument and % those that do not. If it is followed by {arg} in the input, then % that will dutifully get written to the index (or wherever). % % For control letters, we have \definedummyletter, which omits the % space. % \def\definedummyword #1{\def#1{\string#1\space}}% \def\definedummyletter#1{\def#1{\string#1}}% \let\definedummyaccent\definedummyletter % Called from \atdummies to prevent the expansion of commands. % \def\definedummies{% % \let\commondummyword\definedummyword \let\commondummyletter\definedummyletter \let\commondummyaccent\definedummyaccent \commondummiesnofonts % \definedummyletter\_% \definedummyletter\-% % % Non-English letters. \definedummyword\AA \definedummyword\AE \definedummyword\DH \definedummyword\L \definedummyword\O \definedummyword\OE \definedummyword\TH \definedummyword\aa \definedummyword\ae \definedummyword\dh \definedummyword\exclamdown \definedummyword\l \definedummyword\o \definedummyword\oe \definedummyword\ordf \definedummyword\ordm \definedummyword\questiondown \definedummyword\ss \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf \definedummyword\gtr \definedummyword\hat \definedummyword\less \definedummyword\sf \definedummyword\sl \definedummyword\tclose \definedummyword\tt % \definedummyword\LaTeX \definedummyword\TeX % % Assorted special characters. \definedummyword\ampchar \definedummyword\atchar \definedummyword\arrow \definedummyword\backslashchar \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro \definedummyword\expansion \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright \definedummyword\lbracechar \definedummyword\leq \definedummyword\mathopsup \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\quotedblbase \definedummyword\quotedblleft \definedummyword\quotedblright \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase \definedummyword\rbracechar \definedummyword\result \definedummyword\sub \definedummyword\sup \definedummyword\textdegree % \definedummyword\subentry % % We want to disable all macros so that they are not expanded by \write. \macrolist \let\value\dummyvalue % \normalturnoffactive } % \commondummiesnofonts: common to \definedummies and \indexnofonts. % Define \commondummyletter, \commondummyaccent and \commondummyword before % using. Used for accents, font commands, and various control letters. % \def\commondummiesnofonts{% % Control letters and accents. \commondummyletter\!% \commondummyaccent\"% \commondummyaccent\'% \commondummyletter\*% \commondummyaccent\,% \commondummyletter\.% \commondummyletter\/% \commondummyletter\:% \commondummyaccent\=% \commondummyletter\?% \commondummyaccent\^% \commondummyaccent\`% \commondummyaccent\~% \commondummyword\u \commondummyword\v \commondummyword\H \commondummyword\dotaccent \commondummyword\ogonek \commondummyword\ringaccent \commondummyword\tieaccent \commondummyword\ubaraccent \commondummyword\udotaccent \commondummyword\dotless % % Texinfo font commands. \commondummyword\b \commondummyword\i \commondummyword\r \commondummyword\sansserif \commondummyword\sc \commondummyword\slanted \commondummyword\t % % Commands that take arguments. \commondummyword\abbr \commondummyword\acronym \commondummyword\anchor \commondummyword\cite \commondummyword\code \commondummyword\command \commondummyword\dfn \commondummyword\dmn \commondummyword\email \commondummyword\emph \commondummyword\env \commondummyword\file \commondummyword\image \commondummyword\indicateurl \commondummyword\inforef \commondummyword\kbd \commondummyword\key \commondummyword\math \commondummyword\option \commondummyword\pxref \commondummyword\ref \commondummyword\samp \commondummyword\strong \commondummyword\tie \commondummyword\U \commondummyword\uref \commondummyword\url \commondummyword\var \commondummyword\verb \commondummyword\w \commondummyword\xref } \let\indexlbrace\relax \let\indexrbrace\relax \let\indexatchar\relax \let\indexbackslash\relax {\catcode`\@=0 \catcode`\\=13 @gdef@backslashdisappear{@def\{}} } { \catcode`\<=13 \catcode`\-=13 \catcode`\`=13 \gdef\indexnonalnumdisappear{% \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax\else % @set txiindexlquoteignore makes us ignore left quotes in the sort term. % (Introduced for FSFS 2nd ed.) \let`=\empty \fi % \expandafter\ifx\csname SETtxiindexbackslashignore\endcsname\relax\else \backslashdisappear \fi % \expandafter\ifx\csname SETtxiindexhyphenignore\endcsname\relax\else \def-{}% \fi \expandafter\ifx\csname SETtxiindexlessthanignore\endcsname\relax\else \def<{}% \fi \expandafter\ifx\csname SETtxiindexatsignignore\endcsname\relax\else \def\@{}% \fi } \gdef\indexnonalnumreappear{% \let-\normaldash \let<\normalless } } % \indexnofonts is used when outputting the strings to sort the index % by, and when constructing control sequence names. It eliminates all % control sequences and just writes whatever the best ASCII sort string % would be for a given command (usually its argument). % \def\indexnofonts{% % Accent commands should become @asis. \def\commondummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\commondummyletter##1{\let##1\empty}% % All control words become @asis by default; overrides below. \let\commondummyword\commondummyaccent \commondummiesnofonts % % Don't no-op \tt, since it isn't a user-level command % and is used in the definitions of the active chars like <, >, |, etc. % Likewise with the other plain tex font commands. %\let\tt=\asis % \def\ { }% \def\@{@}% \def\_{\normalunderscore}% \def\-{}% @- shouldn't affect sorting % \uccode`\1=`\{ \uppercase{\def\{{1}}% \uccode`\1=`\} \uppercase{\def\}{1}}% \let\lbracechar\{% \let\rbracechar\}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\TH{TH}% \def\aa{aa}% \def\ae{ae}% \def\dh{dzz}% \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% \def\ordf{a}% \def\ordm{o}% \def\o{o}% \def\questiondown{?}% \def\ss{ss}% \def\th{th}% % \let\do\indexnofontsdef % \do\LaTeX{LaTeX}% \do\TeX{TeX}% % % Assorted special characters. \do\atchar{@}% \do\arrow{->}% \do\bullet{bullet}% \do\comma{,}% \do\copyright{copyright}% \do\dots{...}% \do\enddots{...}% \do\equiv{==}% \do\error{error}% \do\euro{euro}% \do\expansion{==>}% \do\geq{>=}% \do\guillemetleft{<<}% \do\guillemetright{>>}% \do\guilsinglleft{<}% \do\guilsinglright{>}% \do\leq{<=}% \do\lbracechar{\{}% \do\minus{-}% \do\point{.}% \do\pounds{pounds}% \do\print{-|}% \do\quotedblbase{"}% \do\quotedblleft{"}% \do\quotedblright{"}% \do\quoteleft{`}% \do\quoteright{'}% \do\quotesinglbase{,}% \do\rbracechar{\}}% \do\registeredsymbol{R}% \do\result{=>}% \do\textdegree{o}% % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. % \macrolist \let\value\indexnofontsvalue } % Give the control sequence a definition that removes the {} that follows % its use, e.g. @AA{} -> AA \def\indexnofontsdef#1#2{\def#1##1{#2}}% % #1 is the index name, #2 is the entry text. \def\doind#1#2{% \iflinks {% % \requireopenindexfile{#1}% \edef\writeto{\csname#1indfile\endcsname}% % \def\indextext{#2}% \safewhatsit\doindwrite }% \fi } % Same as \doind, but for code indices \def\docind#1#2{% \iflinks {% % \requireopenindexfile{#1}% \edef\writeto{\csname#1indfile\endcsname}% % \def\indextext{#2}% \safewhatsit\docindwrite }% \fi } % Check if an index file has been opened, and if not, open it. \def\requireopenindexfile#1{% \ifnum\csname #1indfile\endcsname=0 \expandafter\newwrite \csname#1indfile\endcsname \edef\suffix{#1}% % A .fls suffix would conflict with the file extension for the output % of -recorder, so use .f1s instead. \ifx\suffix\indexisfl\def\suffix{f1}\fi % Open the file \immediate\openout\csname#1indfile\endcsname \jobname.\suffix % Using \immediate above here prevents an object entering into the current % box, which could confound checks such as those in \safewhatsit for % preceding skips. \typeout{Writing index file \jobname.\suffix}% \fi} \def\indexisfl{fl} % Definition for writing index entry sort key. { \catcode`\-=13 \gdef\indexwritesortas{% \begingroup \indexnonalnumreappear \indexwritesortasxxx} \gdef\indexwritesortasxxx#1{% \xdef\indexsortkey{#1}\endgroup} } \def\indexwriteseealso#1{ \gdef\pagenumbertext{\string\seealso{#1}}% } \def\indexwriteseeentry#1{ \gdef\pagenumbertext{\string\seeentry{#1}}% } % The default definitions \def\sortas#1{}% \def\seealso#1{\i{\putwordSeeAlso}\ #1}% for sorted index file only \def\putwordSeeAlso{See also} \def\seeentry#1{\i{\putwordSee}\ #1}% for sorted index file only % Given index entry text like "aaa @subentry bbb @sortas{ZZZ}": % * Set \bracedtext to "{aaa}{bbb}" % * Set \fullindexsortkey to "aaa @subentry ZZZ" % * If @seealso occurs, set \pagenumbertext % \def\splitindexentry#1{% \gdef\fullindexsortkey{}% \xdef\bracedtext{}% \def\sep{}% \def\seealso##1{}% \def\seeentry##1{}% \expandafter\doindexsegment#1\subentry\finish\subentry } % append the results from the next segment \def\doindexsegment#1\subentry{% \def\segment{#1}% \ifx\segment\isfinish \else % % Fully expand the segment, throwing away any @sortas directives, and % trim spaces. \edef\trimmed{\segment}% \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}% \ifincodeindex \edef\trimmed{\noexpand\code{\trimmed}}% \fi % \xdef\bracedtext{\bracedtext{\trimmed}}% % % Get the string to sort by. Process the segment with all % font commands turned off. \bgroup \let\sortas\indexwritesortas \let\seealso\indexwriteseealso \let\seeentry\indexwriteseeentry \indexnofonts % The braces around the commands are recognized by texindex. \def\lbracechar{{\string\indexlbrace}}% \def\rbracechar{{\string\indexrbrace}}% \let\{=\lbracechar \let\}=\rbracechar \def\@{{\string\indexatchar}}% \def\atchar##1{\@}% \def\backslashchar{{\string\indexbackslash}}% \uccode`\~=`\\ \uppercase{\let~\backslashchar}% % \let\indexsortkey\empty \global\let\pagenumbertext\empty % Execute the segment and throw away the typeset output. This executes % any @sortas or @seealso commands in this segment. \setbox\dummybox = \hbox{\segment}% \ifx\indexsortkey\empty{% \indexnonalnumdisappear \xdef\trimmed{\segment}% \xdef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}% \xdef\indexsortkey{\trimmed}% \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi }\fi % % Append to \fullindexsortkey. \edef\tmp{\gdef\noexpand\fullindexsortkey{% \fullindexsortkey\sep\indexsortkey}}% \tmp \egroup \def\sep{\subentry}% % \expandafter\doindexsegment \fi } \def\isfinish{\finish}% \newbox\dummybox % used above \let\subentry\relax % Use \ instead of @ in index files. To support old texi2dvi and texindex. % This works without changing the escape character used in the toc or aux % files because the index entries are fully expanded here, and \string uses % the current value of \escapechar. \def\escapeisbackslash{\escapechar=`\\} % Use \ in index files by default. texi2dvi didn't support @ as the escape % character (as it checked for "\entry" in the files, and not "@entry"). When % the new version of texi2dvi has had a chance to become more prevalent, then % the escape character can change back to @ again. This should be an easy % change to make now because both @ and \ are only used as escape characters in % index files, never standing for themselves. % \set txiindexescapeisbackslash % Write the entry in \indextext to the index file. % \newif\ifincodeindex \def\doindwrite{\incodeindexfalse\doindwritex} \def\docindwrite{\incodeindextrue\doindwritex} \def\doindwritex{% \maybemarginindex % \atdummies % \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax\else \escapeisbackslash \fi % % For texindex which always views { and } as separators. \def\{{\lbracechar{}}% \def\}{\rbracechar{}}% \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}% % % Split the entry into primary entry and any subentries, and get the index % sort key. \splitindexentry\indextext % % Set up the complete index entry, with both the sort key and % the original text, including any font commands. We write % three arguments to \entry to the .?? file (four in the % subentry case), texindex reduces to two when writing the .??s % sorted result. % \edef\temp{% \write\writeto{% \string\entry{\fullindexsortkey}% {\ifx\pagenumbertext\empty\noexpand\folio\else\pagenumbertext\fi}% \bracedtext}% }% \temp } % Put the index entry in the margin if desired (undocumented). \def\maybemarginindex{% \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \relax\indextext}}% \fi } \let\SETmarginindex=\relax % Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write or \pdfdest will make \lastskip zero. The result is that % sequences like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % % But wait, there is a catch there: % We'll have to check whether \lastskip is zero skip. \ifdim is not % sufficient for this purpose, as it ignores stretch and shrink parts % of the skip. The only way seems to be to check the textual % representation of the skip. % % The following is almost like \def\zeroskipmacro{0.0pt} except that % the ``p'' and ``t'' characters have catcode \other, not 11 (letter). % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % \newskip\whatsitskip \newcount\whatsitpenalty % % ..., ready, GO: % \def\safewhatsit#1{\ifhmode #1% \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else \vskip-\whatsitskip \fi % #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and % perhaps it was >=10000, e.g., a \nobreak. In that case, we want % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: % @deffn deffn-whatever % @vindex index-whatever % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi \fi} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % \entry {topic}{} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each subtopic. % \secondary {subtopic}{} % for a subtopic with sub-subtopics % \tertiary {subtopic}{subsubtopic}{pagelist} % for each sub-subtopic. % Define the user-accessible indexing commands % @findex, @vindex, @kindex, @cindex. \def\findex {\fnindex} \def\kindex {\kyindex} \def\cindex {\cpindex} \def\vindex {\vrindex} \def\tindex {\tpindex} \def\pindex {\pgindex} % Define the macros used in formatting output of the sorted index material. % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % \parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See comment in \requireopenindexfile. \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi % % See if the index file exists and is nonempty. \openin 1 \jobname.\indexname s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the % index. The easiest way to prevent this problem is to make sure % there is some text. \putwordIndexNonexistent \typeout{No file \jobname.\indexname s.}% \else % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. \read 1 to \thisline \ifeof 1 \putwordIndexIsEmpty \else \expandafter\printindexzz\thisline\relax\relax\finish% \fi \fi \closein 1 \endgroup} % If the index file starts with a backslash, forgo reading the index % file altogether. If somebody upgrades texinfo.tex they may still have % old index files using \ as the escape character. Reading this would % at best lead to typesetting garbage, at worst a TeX syntax error. \def\printindexzz#1#2\finish{% \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1 \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax \errmessage{% ERROR: A sorted index file in an obsolete format was skipped. To fix this problem, please upgrade your version of 'texi2dvi' or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>. If you are using an old version of 'texindex' (part of the Texinfo distribution), you may also need to upgrade to a newer version (at least 6.0). You may be able to typeset the index if you run 'texindex \jobname.\indexname' yourself. You could also try setting the 'txiindexescapeisbackslash' flag by running a command like 'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do this, Texinfo will try to use index files in the old format. If you continue to have problems, deleting the index files and starting again might help (with 'rm \jobname.?? \jobname.??s')% }% \else (Skipped sorted index file in obsolete format) \fi \else \begindoublecolumns \input \jobname.\indexname s \enddoublecolumns \fi \else \begindoublecolumns \catcode`\\=0\relax % % Make @ an escape character to give macros a chance to work. This % should work because we (hopefully) don't otherwise use @ in index files. %\catcode`\@=12\relax \catcode`\@=0\relax \input \jobname.\indexname s \enddoublecolumns \fi } % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. {\catcode`\/=13 \catcode`\-=13 \catcode`\^=13 \catcode`\~=13 \catcode`\_=13 \catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13 \catcode`\$=3 \gdef\initialglyphs{% % special control sequences used in the index sort key \let\indexlbrace\{% \let\indexrbrace\}% \let\indexatchar\@% \def\indexbackslash{\math{\backslash}}% % % Some changes for non-alphabetic characters. Using the glyphs from the % math fonts looks more consistent than the typewriter font used elsewhere % for these characters. \uccode`\~=`\\ \uppercase{\def~{\math{\backslash}}} % % In case @\ is used for backslash \uppercase{\let\\=~} % Can't get bold backslash so don't use bold forward slash \catcode`\/=13 \def/{{\secrmnotbold \normalslash}}% \def-{{\normaldash\normaldash}}% en dash `--' \def^{{\chapbf \normalcaret}}% \def~{{\chapbf \normaltilde}}% \def\_{% \leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }% \def|{$\vert$}% \def<{$\less$}% \def>{$\gtr$}% \def+{$\normalplus$}% }} \def\initial{% \bgroup \initialglyphs \initialx } \def\initialx#1{% % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. % The glue before the bonus allows a little bit of space at the % bottom of a column to reduce an increase in inter-line spacing. \nobreak \vskip 0pt plus 5\baselineskip \penalty -300 \vskip 0pt plus -5\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column % to column. It still won't often be perfect, because of the stretch % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus 1\baselineskip \leftline{\secfonts \kern-0.05em \secbf #1}% % \secfonts is inside the argument of \leftline so that the change of % \baselineskip will not affect any glue inserted before the vbox that % \leftline creates. % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip \egroup % \initialglyphs } \newdimen\entryrightmargin \entryrightmargin=0pt % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. % \def\entry{% \begingroup % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % No extra space above this paragraph. \parskip = 0in % % When reading the text of entry, convert explicit line breaks % from @* into spaces. The user might give these in long section % titles, for instance. \def\*{\unskip\space\ignorespaces}% \def\entrybreak{\hfil\break}% An undocumented command % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% % Save the text of the entry \global\setbox\boxA=\hbox\bgroup \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. % Not absorbing as a macro argument reduces the chance of problems % with catcodes occurring. } {\catcode`\@=11 \gdef\finishentry#1{% \egroup % end box A \dimen@ = \wd\boxA % Length of text of entry \global\setbox\boxA=\hbox\bgroup \unhbox\boxA % #1 is the page number. % % Get the width of the page numbers, and only use % leaders if they are present. \global\setbox\boxB = \hbox{#1}% \ifdim\wd\boxB = 0pt \null\nobreak\hfill\ % \else % \null\nobreak\indexdotfill % Have leaders before the page number. % \ifpdforxetex \pdfgettoks#1.% \hskip\skip\thinshrinkable\the\toksA \else \hskip\skip\thinshrinkable #1% \fi \fi \egroup % end \boxA \ifdim\wd\boxB = 0pt \noindent\unhbox\boxA\par \nobreak \else\bgroup % We want the text of the entries to be aligned to the left, and the % page numbers to be aligned to the right. % \parindent = 0pt \advance\leftskip by 0pt plus 1fil \advance\leftskip by 0pt plus -1fill \rightskip = 0pt plus -1fil \advance\rightskip by 0pt plus 1fill % Cause last line, which could consist of page numbers on their own % if the list of page numbers is long, to be aligned to the right. \parfillskip=0pt plus -1fill % \advance\rightskip by \entryrightmargin % Determine how far we can stretch into the margin. % This allows, e.g., "Appendix H GNU Free Documentation License" to % fit on one line in @letterpaper format. \ifdim\entryrightmargin>2.1em \dimen@i=2.1em \else \dimen@i=0em \fi \advance \parfillskip by 0pt minus 1\dimen@i % \dimen@ii = \hsize \advance\dimen@ii by -1\leftskip \advance\dimen@ii by -1\entryrightmargin \advance\dimen@ii by 1\dimen@i \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line \ifdim\dimen@ > 0.8\dimen@ii % due to long index text % Try to split the text roughly evenly. \dimen@ will be the length of % the first line. \dimen@ = 0.7\dimen@ \dimen@ii = \hsize \ifnum\dimen@>\dimen@ii % If the entry is too long (for example, if it needs more than % two lines), use all the space in the first line. \dimen@ = \dimen@ii \fi \advance\leftskip by 0pt plus 1fill % ragged right \advance \dimen@ by 1\rightskip \parshape = 2 0pt \dimen@ 0em \dimen@ii % Ideally we'd add a finite glue at the end of the first line only, % instead of using \parshape with explicit line lengths, but TeX % doesn't seem to provide a way to do such a thing. % % Indent all lines but the first one. \advance\leftskip by 1em \advance\parindent by -1em \fi\fi \indent % start paragraph \unhbox\boxA % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % Word spacing - no stretch \spaceskip=\fontdimen2\font minus \fontdimen4\font % \linepenalty=1000 % Discourage line breaks. \hyphenpenalty=5000 % Discourage hyphenation. % \par % format the paragraph \egroup % The \vbox \fi \endgroup }} \newskip\thinshrinkable \skip\thinshrinkable=.15em minus .15em % Like plain.tex's \dotfill, except uses up at least 1 em. % The filll stretch here overpowers both the fil and fill stretch to push % the page number to the right. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1filll} \def\primary #1{\line{#1\hfil}} \def\secondary{\indententry{0.5cm}} \def\tertiary{\indententry{1cm}} \def\indententry#1#2#3{% \bgroup \leftskip=#1 \entry{#2}{#3}% \egroup } % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. \catcode`\@=11 % private names \newbox\partialpage \newdimen\doublecolumnhsize \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % If not much space left on page, start a new page. \ifdim\pagetotal>0.8\vsize\vfill\eject\fi % % Grab any single-column material above us. \output = {% \savetopmark % \global\setbox\partialpage = \vbox{% % Unvbox the main output page. \unvbox\PAGE \kern-\topskip \kern\baselineskip }% }% \eject % run that output routine to set \partialpage % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant % below is chosen so that the gutter has the same value (well, +-<1pt) % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) % been clobbered. % \doublecolumnhsize = \hsize \advance\doublecolumnhsize by -.04154\hsize \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \advance\vsize by -\ht\partialpage \vsize = 2\vsize % % For the benefit of balancing columns \advance\baselineskip by 0pt plus 0.5pt } % The double-column output routine for all double-column pages except % the last, which is done by \balancecolumns. % \def\doublecolumnout{% % \savetopmark \splittopskip=\topskip \splitmaxdepth=\maxdepth \dimen@ = \vsize \divide\dimen@ by 2 % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit\PAGE to\dimen@ \setbox2=\vsplit\PAGE to\dimen@ \global\advance\vsize by 2\ht\partialpage \onepageout\pagesofar % empty except for the first time we are called \unvbox\PAGE \penalty\outputpenalty } % % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split, in box0 and box2. \def\pagesofar{% \unvbox\partialpage % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\txipagewidth{\box0\hfil\box2}% } % Finished with double columns. \def\enddoublecolumns{% % The following penalty ensures that the page builder is exercised % _before_ we change the output routine. This is necessary in the % following situation: % % The last section of the index consists only of a single entry. % Before this section, \pagetotal is less than \pagegoal, so no % break occurs before the last section starts. However, the last % section, consisting of \initial and the single \entry, does not % fit on the page and has to be broken off. Without the following % penalty the page builder will not be exercised until \eject % below, and by that time we'll already have changed the output % routine to the \balancecolumns version, so the next-to-last % double-column page will be processed with \balancecolumns, which % is wrong: The two columns will go to the main vertical list, with % the broken-off section in the recent contributions. As soon as % the output routine finishes, TeX starts reconsidering the page % break. The two columns and the broken-off section both fit on the % page, because the two columns now take up only half of the page % goal. When TeX sees \eject from below which follows the final % section, it invokes the new output routine that we've set after % \balancecolumns below; \onepageout will try to fit the two columns % and the final section into the vbox of \txipageheight (see % \pagebody), causing an overfull box. % % Note that glue won't work here, because glue does not exercise the % page builder, unlike penalties (see The TeXbook, pp. 280-281). \penalty0 % \output = {% % Split the last of the double-column material. \savetopmark \balancecolumns }% \eject % call the \output just set \ifdim\pagetotal=0pt % Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. \global\output=\expandafter{\the\defaultoutput} % \endgroup % started in \begindoublecolumns % Leave the double-column material on the current page, no automatic % page break. \box\balancedcolumns % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column % typesetting, so reset \pagegoal to the normal \vsize. \global\vsize = \txipageheight % \pagegoal = \txipageheight % \else % We had some left-over material. This might happen when \doublecolumnout % is called in \balancecolumns. Try again. \expandafter\enddoublecolumns \fi } \newbox\balancedcolumns \setbox\balancedcolumns=\vbox{shouldnt see this}% % % Only called for the last of the double column material. \doublecolumnout % does the others. \def\balancecolumns{% \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \ifdim\dimen@<7\baselineskip % Don't split a short final column in two. \setbox2=\vbox{}% \global\setbox\balancedcolumns=\vbox{\pagesofar}% \else % double the leading vertical space \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 % target to split to \dimen@ii = \dimen@ \splittopskip = \topskip % Loop until left column is at least as high as the right column. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht1<\ht3 \global\advance\dimen@ by 1pt \repeat }% % Now the left column is in box 1, and the right column in box 3. % % Check whether the left column has come out higher than the page itself. % (Note that we have doubled \vsize for the double columns, so % the actual height of the page is 0.5\vsize). \ifdim2\ht1>\vsize % It appears that we have been called upon to balance too much material. % Output some of it with \doublecolumnout, leaving the rest on the page. \setbox\PAGE=\box0 \doublecolumnout \else % Compare the heights of the two columns. \ifdim4\ht1>5\ht3 % Column heights are too different, so don't make their bottoms % flush with each other. \setbox2=\vbox to \ht1 {\unvbox3\vfill}% \setbox0=\vbox to \ht1 {\unvbox1\vfill}% \else % Make column bottoms flush with each other. \setbox2=\vbox to\ht1{\unvbox3\unskip}% \setbox0=\vbox to\ht1{\unvbox1\unskip}% \fi \global\setbox\balancedcolumns=\vbox{\pagesofar}% \fi \fi % } \catcode`\@ = \other \message{sectioning,} % Chapters, sections, etc. % Let's start with @part. \outer\parseargdef\part{\partzzz{#1}} \def\partzzz#1{% \chapoddpage \null \vskip.3\vsize % move it down on the page a bit \begingroup \noindent \titlefonts\rm #1\par % the text \let\lastnode=\empty % no node to associate with \writetocentry{part}{#1}{}% but put it in the toc \headingsoff % no headline or footline on the part page % This outputs a mark at the end of the page that clears \thischapter % and \thissection, as is done in \startcontents. \let\pchapsepmacro\relax \chapmacro{}{Yomitfromtoc}{}% \chapoddpage \endgroup } % \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 % chapters, we're in trouble anyway, I'm sure.) \newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 \newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ % % \def\appendixletter{\char\the\appendixno} % We do the following ugly conditional instead of the above simple % construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. % \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% \else\ifnum\appendixno=`C C% \else\ifnum\appendixno=`D D% \else\ifnum\appendixno=`E E% \else\ifnum\appendixno=`F F% \else\ifnum\appendixno=`G G% \else\ifnum\appendixno=`H H% \else\ifnum\appendixno=`I I% \else\ifnum\appendixno=`J J% \else\ifnum\appendixno=`K K% \else\ifnum\appendixno=`L L% \else\ifnum\appendixno=`M M% \else\ifnum\appendixno=`N N% \else\ifnum\appendixno=`O O% \else\ifnum\appendixno=`P P% \else\ifnum\appendixno=`Q Q% \else\ifnum\appendixno=`R R% \else\ifnum\appendixno=`S S% \else\ifnum\appendixno=`T T% \else\ifnum\appendixno=`U U% \else\ifnum\appendixno=`V V% \else\ifnum\appendixno=`W W% \else\ifnum\appendixno=`X X% \else\ifnum\appendixno=`Y Y% \else\ifnum\appendixno=`Z Z% % The \the is necessary, despite appearances, because \appendixletter is % expanded while writing the .toc file. \char\appendixno is not % expandable, thus it is written literally, thus all appendixes come out % with the same letter (or @) in the toc without it. \else\char\the\appendixno \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} % Each @chapter defines these (using marks) as the number+name, number % and name of the chapter. Page headings and footings can use % these. @section does likewise. \def\thischapter{} \def\thischapternum{} \def\thischaptername{} \def\thissection{} \def\thissectionnum{} \def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} % we only have subsub. \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. % To achieve this, remember the "biggest" unnum. sec. we are currently in: \chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. \def\chapheadtype{N} % Choose a heading macro % #1 is heading type % #2 is heading level % #3 is text for heading \def\genhead#1#2#3{% % Compute the abs. sec. level: \absseclevel=#2 \advance\absseclevel by \secbase % Make sure \absseclevel doesn't fall outside the range: \ifnum \absseclevel < 0 \absseclevel = 0 \else \ifnum \absseclevel > 3 \absseclevel = 3 \fi \fi % The heading type: \def\headtype{#1}% \if \headtype U% \ifnum \absseclevel < \unnlevel \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: \ifnum \absseclevel = 0 \edef\chapheadtype{\headtype}% \else \if \headtype A\if \chapheadtype N% \errmessage{@appendix... within a non-appendix chapter}% \fi\fi \fi % Check for numbered within unnumbered: \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else \chardef\unnlevel = 3 \fi \fi % Now print the heading: \if \headtype U% \ifcase\absseclevel \unnumberedzzz{#3}% \or \unnumberedseczzz{#3}% \or \unnumberedsubseczzz{#3}% \or \unnumberedsubsubseczzz{#3}% \fi \else \if \headtype A% \ifcase\absseclevel \appendixzzz{#3}% \or \appendixsectionzzz{#3}% \or \appendixsubseczzz{#3}% \or \appendixsubsubseczzz{#3}% \fi \else \ifcase\absseclevel \chapterzzz{#3}% \or \seczzz{#3}% \or \numberedsubseczzz{#3}% \or \numberedsubsubseczzz{#3}% \fi \fi \fi \suppressfirstparagraphindent } % an interface: \def\numhead{\genhead N} \def\apphead{\genhead A} \def\unnmhead{\genhead U} % @chapter, @appendix, @unnumbered. Increment top-level counter, reset % all lower-level sectioning counters to zero. % % Also set \chaplevelprefix, which we prepend to @float sequence numbers % (e.g., figures), q.v. By default (before any chapter), that is empty. \let\chaplevelprefix = \empty % \outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz#1{% % section resetting is \global in case the chapter is in a group, such % as an @include file. \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\chapno by 1 % % Used for \float. \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % % \putwordChapter can contain complex things in translations. \toks0=\expandafter{\putwordChapter}% \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% % % So @section and the like are numbered underneath this chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz % \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % % \putwordAppendix can contain complex things in translations. \toks0=\expandafter{\putwordAppendix}% \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } % normally unnmhead0 calls unnumberedzzz: \outer\parseargdef\unnumbered{\unnmhead0{#1}} \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 % % Since an unnumbered has no number, no prefix for figures. \global\let\chaplevelprefix = \empty \resetallfloatnos % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX % expanded them. For example, in `@unnumbered The @cite{Book}', TeX % expanded @cite (which turns out to cause errors because \cite is meant % to be executed, not expanded). % % Anyway, we don't want the fully-expanded definition of @cite to appear % as a result of the \message, we just want `@cite' itself. We use % \the<toks register> to achieve this: TeX expands \the<toks> only once, % simply yielding the contents of <toks register>. (We also do this for % the toc entries.) \toks0 = {#1}% \message{(\the\toks0)}% % \chapmacro{#1}{Ynothing}{\the\unnumberedno}% % \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. \outer\parseargdef\centerchap{% \let\centerparametersmaybe = \centerparameters \unnmhead0{#1}% \let\centerparametersmaybe = \relax } % @top is like @unnumbered. \let\top\unnumbered % Sections. % \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } % normally calls appendixsectionzzz: \outer\parseargdef\appendixsection{\apphead1{#1}} \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection % normally calls unnumberedseczzz: \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. % % normally calls numberedsubseczzz: \outer\parseargdef\numberedsubsec{\numhead2{#1}} \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } % normally calls appendixsubseczzz: \outer\parseargdef\appendixsubsec{\apphead2{#1}} \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } % normally calls unnumberedsubseczzz: \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. % % normally numberedsubsubseczzz: \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally appendixsubsubseczzz: \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally unnumberedsubsubseczzz: \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% } % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. \let\section = \numberedsec \let\subsection = \numberedsubsec \let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz } \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% \vbox{\chapfonts \raggedtitlesettings #1\par}% \nobreak\bigskip \nobreak \suppressfirstparagraphindent } % @heading, @subheading, @subsubheading. \parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. % Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip % Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} % Start a new page \def\chappager{\par\vfill\supereject} % \chapoddpage - start on an odd page for a new chapter % Because \domark is called before \chapoddpage, the filler page will % get the headings for the next chapter, which is wrong. But we don't % care -- we just disable all headings on the filler page. \def\chapoddpage{% \chappager \ifodd\pageno \else \begingroup \headingsoff \null \chappager \endgroup \fi } \parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\def\HEADINGSon{\HEADINGSsinglechapoff}} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon % \chapmacro - Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. % Not used for @heading series. % % To test against our argument. \def\Ynothingkeyword{Ynothing} \def\Yappendixkeyword{Yappendix} \def\Yomitfromtockeyword{Yomitfromtoc} % \def\chapmacro#1#2#3{% \expandafter\ifx\thisenv\titlepage\else \checkenv{}% chapters, etc., should not start inside an environment. \fi % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\currentchapterdefs \let\prevsectiondefs=\currentsectiondefs \gdef\currentsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% \gdef\thissection{}}% % \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{\thischaptername}}% \else\ifx\temptype\Yomitfromtockeyword \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{}}% \else\ifx\temptype\Yappendixkeyword \toks0={#1}% \xdef\currentchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% % \noexpand\putwordAppendix avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \else \toks0={#1}% \xdef\currentchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% % \noexpand\putwordChapter avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordChapter{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert the chapter heading break. \pchapsepmacro % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevchapterdefs=\currentchapterdefs \let\prevsectiondefs=\currentsectiondefs \domark % {% \chapfonts \rm \let\footnote=\errfootnoteheading % give better error message % % Have to define \currentsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. \gdef\currentsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the % \donoderef, because we include the current node name in the toc % entry, and \donoderef resets it to empty. \writetocentry{\toctype}{#1}{#3}% % % For pdftex, we have to write out the node definition (aka, make % the pdfdest) after any page break, but before the actual text has % been typeset. If the destination for the pdf outline is after the % text, then jumping from the outline may wind up with the text not % being visible, for instance under high magnification. \donoderef{#2}% % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax \def\centerparameters{% \advance\rightskip by 3\rightskip \leftskip = \rightskip \parfillskip = 0pt } % Section titles. These macros combine the section number parts and % call the generic \sectionheading to do the printing. % \newskip\secheadingskip \def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. \newskip\subsecheadingskip \def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. \def\subsubsecheadingskip{\subsecheadingskip} \def\subsubsecheadingbreak{\subsecheadingbreak} % Print any size, any type, section title. % % #1 is the text of the title, % #2 is the section level (sec/subsec/subsubsec), % #3 is the section type (Ynumbered, Ynothing, Yappendix, Yomitfromtoc), % #4 is the section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% \def\sectionlevel{#2}% \def\temptype{#3}% % % It is ok for the @heading series commands to appear inside an % environment (it's been historically allowed, though the logic is % dubious), but not the others. \ifx\temptype\Yomitfromtockeyword\else \checkenv{}% non-@*heading should not be in an environment. \fi \let\footnote=\errfootnoteheading % % Switch to the right set of fonts. \csname #2fonts\endcsname \rm % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\currentsectiondefs \ifx\temptype\Ynothingkeyword \ifx\sectionlevel\seckeyword \gdef\currentsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% \gdef\thissection{\thissectionname}}% \fi \else\ifx\temptype\Yomitfromtockeyword % Don't redefine \thissection. \else\ifx\temptype\Yappendixkeyword \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\currentsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \else \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\currentsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % % Go into vertical mode. Usually we'll already be there, but we % don't want the following whatsit to end up in a preceding paragraph % if the document didn't happen to have a blank line. \par % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert space above the heading. \csname #2headingbreak\endcsname % % Now the second mark, after the heading break. No break points % between here and the heading. \global\let\prevsectiondefs=\currentsectiondefs \domark % % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% \gdef\currentsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, % and don't redefine \currentsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% \gdef\currentsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% \gdef\currentsection{#1}% \fi\fi\fi % % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). % Again, see comments in \chapmacro. \donoderef{#3}% % % Interline glue will be inserted when the vbox is completed. % That glue will be a valid breakpoint for the page, since it'll be % preceded by a whatsit (usually from the \donoderef, or from the % \writetocentry if there was no node). We don't want to allow that % break, since then the whatsits could end up on page n while the % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. \nobreak % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% % Add extra space after the heading -- half of whatever came above it. % Don't allow stretch, though. \kern .5 \csname #2headingskip\endcsname % % Do not let the kern be a potential breakpoint, as it would be if it % was followed by glue. \nobreak % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) However, when a paragraph is not started next % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out % or the negative glue will cause weirdly wrong output, typically % obscuring the section heading with something else. \vskip-\parskip % % This is so the last item on the main vertical list is a known % \penalty > 10000, so \startdefun, etc., can recognize the situation % and do the needful. \penalty 10001 } \message{toc,} % Table of contents. \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. % Called from @chapter, etc. % % Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} % We append the current node name (if any) and page number as additional % arguments for the \{chap,sec,...}entry macros which will eventually % read this. The node name is used in the pdf outlines as the % destination to jump to. % % We open the .toc file for writing here instead of at @setfilename (or % any other fixed time) so that @contents can be anywhere in the document. % But if #1 is `omit', then we don't do anything. This is used for the % table of contents chapter openings themselves. % \newif\iftocfileopened \def\omitkeyword{omit}% % \def\writetocentry#1#2#3{% \edef\writetoctype{#1}% \ifx\writetoctype\omitkeyword \else \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi % \iflinks {\atdummies \edef\temp{% \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% \temp }% \fi \fi % % Tell \shipout to create a pdf destination on each page, if we're % writing pdf. These are used in the table of contents. We can't % just write one on every page because the title pages are numbered % 1 and 2 (the page numbers aren't printed), and so are the first % two pages of the document. Thus, we'd have two destinations named % `1', and two named `2'. \ifpdforxetex \global\pdfmakepagedesttrue \fi } % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. % \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active \catcode`\<=\active \catcode`\>=\active \catcode`\\=\active \catcode`\^=\active \catcode`\_=\active \catcode`\|=\active \catcode`\~=\active } % Read the toc file, which is essentially Texinfo input. \def\readtocfile{% \setupdatafile \activecatcodes \input \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Prepare to read what we've written to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. \raggedbottom % Worry more about breakpoints than the bottom. \entryrightmargin=\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi \def\thistitle{}% no title in double-sided headings % Record where the Roman numerals started. \ifnum\romancount=0 \global\romancount=\pagecount \fi } % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. % \def\contents{% \startcontents{\putwordTOC}% \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \ifeof 1 \else \pdfmakeoutlines \fi \closein 1 \endgroup \contentsendroman } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortTOC}% % \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry % We want a true roman here for the page numbers. \secfonts \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\numsecentry##1##2##3##4{} \let\appsecentry = \numsecentry \let\unnsecentry = \numsecentry \let\numsubsecentry = \numsecentry \let\appsubsecentry = \numsecentry \let\unnsubsecentry = \numsecentry \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \closein 1 \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \contentsendroman } \let\shortcontents = \summarycontents % Get ready to use Arabic numerals again \def\contentsendroman{% \lastnegativepageno = \pageno \global\pageno = \savepageno % % If \romancount > \arabiccount, the contents are at the end of the % document. Otherwise, advance where the Arabic numerals start for % the page numbers. \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi } % Typeset the label for a chapter or appendix for the short contents. % The arg is, e.g., `A' for an appendix, or `3' for a chapter. % \def\shortchaplabel#1{% % This space should be enough, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % But use \hss just in case. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) % % We'd like to right-justify chapter numbers, but that looks strange % with appendix letters. And right-justifying numbers and % left-justifying letters looks strange when there is less than 10 % chapters. Have to read the whole toc once to know how many chapters % there are before deciding ... \hbox to 1em{#1\hss}% } % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. % The last argument is the page number. % The arguments in between are the chapter number, section number, ... % Parts, in the main contents. Replace the part number, which doesn't % exist, with an empty box. Let's hope all the numbers have the same width. % Also ignore the page number, which is conventionally not printed. \def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} \def\partentry#1#2#3#4{% % Add stretch and a bonus for breaking the page before the part heading. % This reduces the chance of the page being broken immediately after the % part heading, before a following chapter heading. \vskip 0pt plus 5\baselineskip \penalty-300 \vskip 0pt plus -5\baselineskip \dochapentry{\numeralbox\labelspace#1}{}% } % % Parts, in the short toc. \def\shortpartentry#1#2#3#4{% \penalty-300 \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip \shortchapentry{{\bf #1}}{\numeralbox}{}{}% } % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. % Need the word Appendix, and a fixed-size box. % \def\appendixbox#1{% % We use M since it's probably the widest letter. \setbox0 = \hbox{\putwordAppendix{} M}% \hbox to \wd0{\putwordAppendix{} #1\hss}} % \def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\hskip.7em#1}{#4}} % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} \def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} \let\appsecentry=\numsecentry \def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} \let\appsubsecentry=\numsubsecentry \def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. \def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} \let\appsubsubsecentry=\numsubsubsecentry \def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. % Same as \defaultparindent. \newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. % % If the toc has to be broken over pages, we want it to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup % Move the page numbers slightly to the right \advance\entryrightmargin by -0.05em \chapentryfonts \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} % We use the same \entry macro as for the index entries. \let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} \def\dopageno#1{{\rm #1}} \def\doshortpageno#1{{\rm #1}} \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \def\subsecentryfonts{\textfonts} \def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. % @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain @ character. \envdef\tex{% \setregularquotes \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 \catcode `\+=\other \catcode `\"=\other \catcode `\|=\other \catcode `\<=\other \catcode `\>=\other \catcode `\`=\other \catcode `\'=\other % % ' is active in math mode (mathcode"8000). So reset it, and all our % other math active characters (just in case), to plain's definitions. \mathactive % % Inverse of the list at the beginning of the file. \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc \let\,=\ptexcomma \let\.=\ptexdot \let\dots=\ptexdots \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi \let\indent=\ptexindent \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace \let\/=\ptexslash \let\sp=\ptexsp \let\*=\ptexstar %\let\sup=\ptexsup % do not redefine, we want @sup to work in math mode \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % we've made it outer \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% } % There is no need to define \Etex. % Define @lisp ... @end lisp. % @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip \ifnum\lastpenalty<10000 % Penalize breaking before the environment, because preceding text % often leads into it. \penalty100 \fi \vskip\envskipamount \fi \fi }} \def\afterenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip % it's not a good place to break if the last penalty was \nobreak % or better ... \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi }} % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will % also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around % environment contents. % \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth \def\ctr{{\hskip 6pt\circle\char'010}} \def\cbl{{\circle\char'012\hskip -6pt}} \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip \ctl\leaders\hrule height\circthick\hfil\ctr \hskip\rskip}} \def\cartbot{\hbox to \cartouter{\hskip\lskip \cbl\leaders\hrule height\circthick\hfil\cbr \hskip\rskip}} % \newskip\lskip\newskip\rskip % only require the font if @cartouche is actually used \def\cartouchefontdefs{% \font\circle=lcircle10\relax \circthick=\fontdimen8\circle } \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \envdef\cartouche{% \cartouchefontdefs \ifhmode\par\fi % can't be in the midst of a paragraph. \startsavinginserts \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt % we want these *outside*. \cartinner=\hsize \advance\cartinner by-\lskip \advance\cartinner by-\rskip \cartouter=\hsize \advance\cartouter by 18.4pt % allow for 3pt kerns on either % side, and for 6pt waste from % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % % If this cartouche directly follows a sectioning command, we need the % \parskip glue (backspaced over by default) or the cartouche can % collide with the section heading. \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi % \setbox\groupbox=\vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup \hskip\lskip \vrule\kern3pt \vbox\bgroup \kern3pt \hsize=\cartinner \baselineskip=\normbskip \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip \comment % For explanation, see the end of def\group. } \def\Ecartouche{% \ifhmode\par\fi \kern3pt \egroup \kern3pt\vrule \hskip\rskip \egroup \cartbot \egroup \addgroupbox \checkinserts } % This macro is called at the beginning of all the @example variants, % inside a group. \newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \ifdim\hfuzz < 12pt \hfuzz = 12pt \fi % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt % Turn off paragraph indentation but redefine \indent to emulate % the normal \indent. \nonfillparindent=\parindent \parindent = 0pt \let\indent\nonfillindent % \emergencystretch = 0pt % don't try to avoid overfull boxes \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \else \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } \begingroup \obeyspaces % We want to swallow spaces (but not other tokens) after the fake % @indent in our nonfill-environments, where spaces are normally % active and set to @tie, resulting in them not being ignored after % @indent. \gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% \gdef\nonfillindentcheck{% \ifx\temp % \expandafter\nonfillindentgobble% \else% \leavevmode\nonfillindentbox% \fi% }% \endgroup \def\nonfillindentgobble#1{\nonfillindent} \def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: % @example, @display, @format, @lisp, @verbatim % \def\smallword{small} \def\nosmallword{nosmall} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword % end paragraph for sake of leading, in case document has no blank % line. This is redundant with what happens in \aboveenvbreak, but % we need to do it before changing the fonts, and it's inconvenient % to change the fonts afterward. \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. % Let's do it in one command. #1 is the env name, #2 the definition. \def\makedispenvdef#1#2{% \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } % Define two environment synonyms (#1 and #2) for an environment. \def\maketwodispenvdef#1#2#3{% \makedispenvdef{#1}{#3}% \makedispenvdef{#2}{#3}% } % % @lisp: indented, narrowed, typewriter font; % @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % \maketwodispenvdef{lisp}{example}{% \nonfillstart \tt\setcodequotes \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \parsearg\gobble } % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % \makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble } % @flushleft: same as @format, but doesn't obey \SETdispenvsize. \envdef\flushleft{% \let\nonarrowing = t% \nonfillstart \gobble } \let\Eflushleft = \afterenvbreak % @flushright. % \envdef\flushright{% \let\nonarrowing = t% \nonfillstart \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak % @raggedright does more-or-less normal line breaking but no right % justification. From plain.tex. \envdef\raggedright{% \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax } \let\Eraggedright\par \envdef\raggedleft{% \parindent=0pt \leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedleft\par \envdef\raggedcenter{% \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedcenter\par % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % \makedispenvdef{quotation}{\quotationstart} % \def\quotationstart{% \indentedblockstart % same as \indentedblock, but increase right margin too. \ifx\nonarrowing\relax \advance\rightskip by \lispnarrowing \fi \parsearg\quotationlabel } % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par \ifx\quotationauthor\thisisundefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } \def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% \def\temp{#1}% \ifx\temp\empty \else {\bf #1: }% \fi } % @indentedblock is like @quotation, but indents only on the left and % has no optional argument. % \makedispenvdef{indentedblock}{\indentedblockstart} % \def\indentedblockstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \exdentamount = \lispnarrowing \else \let\nonarrowing = \relax \fi } % Keep a nonzero parskip for the environment, since we're doing normal filling. % \def\Eindentedblock{% \par {\parskip=0pt \afterenvbreak}% } \def\Esmallindentedblock{\Eindentedblock} % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>} % If we want to allow any <char> as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % % [Knuth] p.344; only we need to do the other characters Texinfo sets % active too. Otherwise, they get lost as the first character on a % verbatim line. \def\dospecials{% \do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% \do\<\do\>\do\|\do\@\do+\do\"% % Don't do the quotes -- if we do, @set txicodequoteundirected and % @set txicodequotebacktick will not have effect on @verb and % @verbatim, and ?` and !` ligatures won't get disabled. %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % % Setup for the @verb command. % % Eight spaces for a tab \begingroup \catcode`\^^I=\active \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} \endgroup % \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% \setcodequotes \tabeightspaces % Respect line breaks, % print special symbols as themselves, and % make each space count % must do in this order: \obeylines \uncatcodespecials \sepspaces } % Setup for the @verbatim environment % % Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % % We typeset each line of the verbatim in an \hbox, so we can handle % tabs. \newbox\verbbox \def\starttabbox{\setbox\verbbox=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab \divide\dimen\verbbox by\tabw \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw \wd\verbbox=\dimen\verbbox \leavevmode\box\verbbox \starttabbox }% } \endgroup % start the verbatim environment. \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart \tt % easiest (and conventionally used) font for verbatim \def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}% \tabexpand \setcodequotes % Respect line breaks, % print special symbols as themselves, and % make each space count. % Must do in this order: \obeylines \uncatcodespecials \sepspaces } % Do the @verb magic: verbatim text is quoted by unique % delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'<char>#1<char>'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % \def\verb{\begingroup\setupverb\doverb} % % % Do the @verbatim magic: define the macro \doverbatim so that % the (first) argument ends when '@end verbatim' is reached, ie: % % \def\doverbatim#1@end verbatim{#1} % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] % \begingroup \catcode`\ =\active \obeylines % % ignore everything up to the first ^^M, that's the newline at the end % of the @verbatim input line itself. Otherwise we get an extra blank % line in the output. \xdef\doverbatim#1^^M#2@end verbatim{% \starttabbox#2\egroup\noexpand\end\gobble verbatim}% % We really want {...\end verbatim} in the body of the macro, but % without the active space; thus we have to use \xdef and \gobble. % The \egroup ends the \verbbox started at the end of the last line in % the block. \endgroup % \envdef\verbatim{% \setnormaldispenv\setupverbatim\doverbatim } \let\Everbatim = \afterenvbreak % @verbatiminclude FILE - insert text of file in verbatim environment. % \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% {% \makevalueexpandable \setupverbatim {% \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \edef\tmp{\noexpand\input #1 } \expandafter }\expandafter\starttabbox\tmp\egroup \afterenvbreak }% } % @copying ... @end copying. % Save the text away for @insertcopying later. % % We save the uninterpreted tokens, rather than creating a box. % Saving the text in a box would be much easier, but then all the % typesetting commands (@smallbook, font changes, etc.) have to be done % beforehand -- and a) we want @copying to be done first in the source % file; b) letting users define the frontmatter in as flexible order as % possible is desirable. % \def\copying{\checkenv{}\begingroup\scanargctxt\docopying} \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} % \def\insertcopying{% \begingroup \parindent = 0pt % paragraph indentation looks wrong on title page \scanexp\copyingtext \endgroup } \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak \defunpenalty=10003 % Will keep this @deffn together with the % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % % As a further refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. \medskip % preceded by discardable penalty, so not a breakpoint \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } \def\dodefunx#1{% % First, check whether we are in the right environment: \checkenv#1% % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% } \def\gobbledefun#1\startdefun{} % \printdefunline \deffnheader{text} % \def\printdefunline#1#2{% \begingroup % call \deffnheader: #1#2 \endheader % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts \endgroup } \def\Edefun{\endgraf\medbreak} % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; % the only thing remaining is to define \deffnheader. % \def\makedefun#1{% \expandafter\let\csname E#1\endcsname = \Edefun \edef\temp{\noexpand\domakedefun \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% \temp } % \domakedefun \deffn \deffnx \deffnheader { (defn. of \deffnheader) } % % Define \deffn and \deffnx, without parameters. % \deffnheader has to be defined explicitly. % \def\domakedefun#1#2#3{% \envdef#1{% \startdefun \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } \newif\ifdoingtypefn % doing typed function? \newif\ifrettypeownline % typeset return type on its own line? % @deftypefnnewline on|off says whether the return type of typed functions % are printed on their own line. This affects @deftypefn, @deftypefun, % @deftypeop, and @deftypemethod. % \parseargdef\deftypefnnewline{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxideftypefnnl\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETtxideftypefnnl\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @txideftypefnnl value `\temp', must be on|off}% \fi\fi } % \dosubind {index}{topic}{subtopic} % % If SUBTOPIC is present, precede it with a space, and call \doind. % (At some time during the 20th century, this made a two-level entry in an % index such as the operation index. Nobody seemed to notice the change in % behaviour though.) \def\dosubind#1#2#3{% \def\thirdarg{#3}% \ifx\thirdarg\empty \doind{#1}{#2}% \else \doind{#1}{#2\space#3}% \fi } % Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} % @deffn category class name args \makedefun{defop}#1 {\defopon{#1\ \putwordon}} % \defopon {category on}class name args \def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deffngeneral {subind}category name args % \def\deffngeneral#1#2 #3 #4\endheader{% \dosubind{fn}{\code{#3}}{#1}% \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } % Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} % @deftypeop category class type name args \makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} % \deftypeopon {category on}class type name args \def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deftypefngeneral {subind}category type name args % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} % \deftypecvof {category of}class type var args \def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } % \deftypecvgeneral {subind}category type var args % \def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% \dosubind{vr}{\code{#4}}{#1}% \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } % @defcv category class var args \makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } % Types: % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% \defname{#1}{}{#2}\defunargs{#3\unskip}% } % Remaining @defun-like shortcuts: \makedefun{defun}{\deffnheader{\putwordDeffunc} } \makedefun{defmac}{\deffnheader{\putwordDefmac} } \makedefun{defspec}{\deffnheader{\putwordDefspec} } \makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } \makedefun{defvar}{\defvrheader{\putwordDefvar} } \makedefun{defopt}{\defvrheader{\putwordDefopt} } \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } \makedefun{defmethod}{\defopon\putwordMethodon} \makedefun{deftypemethod}{\deftypeopon\putwordMethodon} \makedefun{defivar}{\defcvof\putwordInstanceVariableof} \makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} % \defname, which formats the name of the @def (not the args). % #1 is the category, such as "Function". % #2 is the return type, if any. % #3 is the function name. % % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % % Determine if we are typesetting the return type of a typed function % on a line by itself. \rettypeownlinefalse \ifdoingtypefn % doing a typed function specifically? % then check user option for putting return type on its own line: \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else \rettypeownlinetrue \fi \fi % % How we'll format the category name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % % Figure out line sizes for the paragraph shape. We'll always have at % least two. \tempnum = 2 % % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip % % If doing a return type on its own line, we'll have another line. \ifrettypeownline \advance\tempnum by 1 \def\maybeshapeline{0in \hsize}% \else \def\maybeshapeline{}% \fi % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent % % The final paragraph shape: \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 % % Put the category name at the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize % \hsize has to be shortened this way: \kern\leftskip % Intentionally do not respect \rightskip, since we need the space. }% % % Allow all lines to be underfull without complaint: \tolerance=10000 \hbadness=10000 \exdentamount=\defbodyindent {% % defun fonts. We use typewriter by default (used to be bold) because: % . we're printing identifiers, they should be in tt in principle. % . in languages with many accents, such as Czech or French, it's % common to leave accents off identifiers. The result looks ok in % tt, but exceedingly strange in rm. % . we don't want -- and --- to be treated as ligatures. % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt \def\temp{#2}% text of the return type \ifx\temp\empty\else \tclose{\temp}% typeset the return type \ifrettypeownline % put return type on its own line; prohibit line break following: \hfil\vadjust{\nobreak}\break \else \space % type on same line, so just followed by a space \fi \fi % no return type #3% output function name }% {\rm\enskip}% hskip 0.5 em of \rmfont % \boldbrax % arguments will be output next, if any. } % Print arguments in slanted roman (not ttsl), inconsistently with using % tt for the name. This is because literal text is sometimes needed in % the argument list (groff manual), and ttsl and tt are not very % distinguishable. Prevent hyphenation at `-' chars. % \def\defunargs#1{% % use sl by default (not ttsl), % tt for the names. \df \sl \hyphenchar\font=0 % % On the other hand, if an argument has two dashes (for instance), we % want a way to get ttsl. We used to recommend @var for that, so % leave the code in, but it's strange for @var to lead to typewriter. % Nowadays we recommend @code, since the difference between a ttsl hyphen % and a tt hyphen is pretty tiny. @code also disables ?` !`. \def\var##1{{\setregularquotes\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45 } % We want ()&[] to print specially on the defun line. % \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\[=\active \catcode`\]=\active \catcode`\&=\active } % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. { \activeparens \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \global\let& = \& \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } \let\ampchar\& \newcount\parencount % If we encounter &foo, then turn on ()-hacking afterwards \newif\ifampseen \def\amprm#1 {\ampseentrue{\bf\ }} \def\parenfont{% \ifampseen % At the first level, print parens in roman, % otherwise use the default font. \ifnum \parencount=1 \rm \fi \else % The \sf parens (in \boldbrax) actually are a little bolder than % the contained text. This is especially needed for [ and ] . \sf \fi } \def\infirstlevel#1{% \ifampseen \ifnum\parencount=1 #1% \fi \fi } \def\bfafterword#1 {#1 \bf} \def\opnr{% \global\advance\parencount by 1 {\parenfont(}% \infirstlevel \bfafterword } \def\clnr{% {\parenfont)}% \infirstlevel \sl \global\advance\parencount by -1 } \newcount\brackcount \def\lbrb{% \global\advance\brackcount by 1 {\bf[}% } \def\rbrb{% {\bf]}% \global\advance\brackcount by -1 } \def\checkparencounts{% \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } % these should not use \errmessage; the glibc manual, at least, actually % has such constructs (when documenting function pointers). \def\badparencount{% \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\thisisundefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{\the\toks0}% \immediate\closeout\macscribble \input \jobname.tmp } \fi \let\E=\expandafter % Used at the time of macro expansion. % Argument is macro body with arguments substituted \def\scanmacro#1{% \newlinechar`\^^M % expand the expansion of \eatleadingcr twice to maybe remove a leading % newline (and \else and \fi tokens), then call \eatspaces on the result. \def\xeatspaces##1{% \E\E\E\E\E\E\E\eatspaces\E\E\E\E\E\E\E{\eatleadingcr##1% }}% \def\xempty##1{}% % % Process the macro body under the current catcode regime. \scantokens{#1@comment}% % % The \comment is to remove the \newlinechar added by \scantokens, and % can be noticed by \parsearg. Note \c isn't used because this means cedilla % in math mode. } % Used for copying and captions \def\scanexp#1{% \expandafter\scanmacro\expandafter{#1}% } \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % List of all defined macros in the form % \commondummyword\macro1\commondummyword\macro2... % Currently is also contains all @aliases; the list can be split % if there is a need. \def\macrolist{} % Add the macro to \macrolist \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} \def\addtomacrolistxxx#1{% \toks0 = \expandafter{\macrolist\commondummyword#1}% \xdef\macrolist{\the\toks0}% } % Utility routines. % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). % \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname \csname#2\endcsname } % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). {\catcode`\@=11 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} \def\unbrace#1{#1} \unbrace{\gdef\trim@@@ #1 } #2@{#1} } {\catcode`\^^M=\other% \gdef\eatleadingcr#1{\if\noexpand#1\noexpand^^M\else\E#1\fi}}% % Warning: this won't work for a delimited argument % or for an empty argument % Trim a single trailing ^^M off a string. {\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% } % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \ % to recognize macro arguments; this is the job of \mbodybackslash. % % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. % % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. % \def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other \passthroughcharstrue } \def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\@=\other \catcode`\\=\other \catcode`\^^M=\other } \def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\ =\other \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other \usembodybackslash } % Used when scanning braced macro arguments. Note, however, that catcode % changes here are ineffectual if the macro invocation was nested inside % an argument to another Texinfo command. \def\macroargctxt{% \scanctxt \catcode`\ =\active \catcode`\@=\other \catcode`\^^M=\other \catcode`\\=\active } \def\macrolineargctxt{% used for whole-line arguments without braces \scanctxt \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other } % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. % {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} \def\margbackslash#1{\char`\#1 } \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments \paramno=0\relax \else \expandafter\parsemargdef \argl;% \if\paramno>256\relax \ifx\eTeXversion\thisisundefined \errhelp = \EMsimple \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} \fi \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% \else \expandafter\ifx\csname \the\macname\endcsname \relax \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} \parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax \let\commondummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } % Called by \do from \dounmacro on each macro. The idea is to omit any % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% \ifx #1\relax % remove this \else \noexpand\commondummyword \noexpand#1% \fi } % \getargs -- Parse the arguments to a @macro line. Set \macname to % the name of the macro, and \argl to the braced argument list. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % This made use of the feature that if the last token of a % <parameter list> is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. % Parse the optional {params} list to @macro or @rmacro. % Set \paramno to the number of arguments, % and \paramlist to a parameter text for the macro (e.g. #1,#2,#3 for a % three-param macro.) Define \macarg.BLAH for each BLAH in the params % list to some hook where the argument is to be expanded. If there are % less than 10 arguments that hook is to be replaced by ##N where N % is the position in that list, that is to say the macro arguments are to be % defined `a la TeX in the macro body. % % That gets used by \mbodybackslash (above). % % If there are 10 or more arguments, a different technique is used: see % \parsemmanyargdef. % \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax % \hash is redefined to `#' later to get it into definitions \let\xeatspaces\relax \let\xempty\relax \parsemargdefxxx#1,;,% \ifnum\paramno<10\relax\else \paramno0\relax \parsemmanyargdef@@#1,;,% 10 or more arguments \fi } \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno\noexpand\xempty{}}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} % the \xempty{} is to give \eatleadingcr an argument in the case of an % empty macro argument. % \parsemacbody, \parsermacbody % % Read recursive and nonrecursive macro bodies. (They're different since % rec and nonrec macros end differently.) % % We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro % body to be transformed. % Set \macrobody to the body of the macro, and call \defmacro. % {\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{% \xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% {\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{% \xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% % Make @ a letter, so that we can make private-to-Texinfo macro names. \edef\texiatcatcode{\the\catcode`\@} \catcode `@=11\relax %%%%%%%%%%%%%% Code for > 10 arguments only %%%%%%%%%%%%%%%%%% % If there are 10 or more arguments, a different technique is used, where the % hook remains in the body, and when macro is to be expanded the body is % processed again to replace the arguments. % % In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the % argument N value and then \edef the body (nothing else will expand because of % the catcode regime under which the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more % arguments, no macro can have more than 256 arguments (else error). % % In case that there are 10 or more arguments we parse again the arguments % list to set new definitions for the \macarg.BLAH macros corresponding to % each BLAH argument. It was anyhow needed to parse already once this list % in order to count the arguments, and as macros with at most 9 arguments % are by far more frequent than macro with 10 or more arguments, defining % twice the \macarg.BLAH macros does not cost too much processing power. \def\parsemmanyargdef@@#1,{% \if#1;\let\next=\relax \else \let\next=\parsemmanyargdef@@ \edef\tempb{\eatspaces{#1}}% \expandafter\def\expandafter\tempa \expandafter{\csname macarg.\tempb\endcsname}% % Note that we need some extra \noexpand\noexpand, this is because we % don't want \the to be expanded in the \parsermacbody as it uses an % \xdef . \expandafter\edef\tempa {\noexpand\noexpand\noexpand\the\toks\the\paramno}% \advance\paramno by 1\relax \fi\next} \let\endargs@\relax \let\nil@\relax \def\nilm@{\nil@}% \long\def\nillm@{\nil@}% % This macro is expanded during the Texinfo macro expansion, not during its % definition. It gets all the arguments' values and assigns them to macros % macarg.ARGNAME % % #1 is the macro name % #2 is the list of argument names % #3 is the list of argument values \def\getargvals@#1#2#3{% \def\macargdeflist@{}% \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. \def\paramlist{#2,\nil@}% \def\macroname{#1}% \begingroup \macroargctxt \def\argvaluelist{#3,\nil@}% \def\@tempa{#3}% \ifx\@tempa\empty \setemptyargvalues@ \else \getargvals@@ \fi } \def\getargvals@@{% \ifx\paramlist\nilm@ % Some sanity check needed here that \argvaluelist is also empty. \ifx\argvaluelist\nillm@ \else \errhelp = \EMsimple \errmessage{Too many arguments in macro `\macroname'!}% \fi \let\next\macargexpandinbody@ \else \ifx\argvaluelist\nillm@ % No more arguments values passed to macro. Set remaining named-arg % macros to empty. \let\next\setemptyargvalues@ \else % pop current arg name into \@tempb \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% \expandafter\@tempa\expandafter{\paramlist}% % pop current argument value into \@tempc \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% \expandafter\@tempa\expandafter{\argvaluelist}% % Here \@tempb is the current arg name and \@tempc is the current arg value. % First place the new argument macro definition into \@tempd \expandafter\macname\expandafter{\@tempc}% \expandafter\let\csname macarg.\@tempb\endcsname\relax \expandafter\def\expandafter\@tempe\expandafter{% \csname macarg.\@tempb\endcsname}% \edef\@tempd{\long\def\@tempe{\the\macname}}% \push@\@tempd\macargdeflist@ \let\next\getargvals@@ \fi \fi \next } \def\push@#1#2{% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter#2% \expandafter\expandafter\expandafter{% \expandafter#1#2}% } % Replace arguments by their values in the macro body, and place the result % in macro \@tempa. % \def\macvalstoargs@{% % To do this we use the property that token registers that are \the'ed % within an \edef expand only once. So we are going to place all argument % values into respective token registers. % % First we save the token context, and initialize argument numbering. \begingroup \paramno0\relax % Then, for each argument number #N, we place the corresponding argument % value into a new token list register \toks#N \expandafter\putargsintokens@\saveparamlist@,;,% % Then, we expand the body so that argument are replaced by their % values. The trick for values not to be expanded themselves is that they % are within tokens and that tokens expand only once in an \edef . \edef\@tempc{\csname mac.\macroname .body\endcsname}% % Now we restore the token stack pointer to free the token list registers % which we have used, but we make sure that expanded body is saved after % group. \expandafter \endgroup \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% } % Define the named-macro outside of this group and then close this group. % \def\macargexpandinbody@{% \expandafter \endgroup \macargdeflist@ % First the replace in body the macro arguments by their values, the result % is in \@tempa . \macvalstoargs@ % Then we point at the \norecurse or \gobble (for recursive) macro value % with \@tempb . \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname % Depending on whether it is recursive or not, we need some tailing % \egroup . \ifx\@tempb\gobble \let\@tempc\relax \else \let\@tempc\egroup \fi % And now we do the real job: \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% \@tempd } \def\putargsintokens@#1,{% \if#1;\let\next\relax \else \let\next\putargsintokens@ % First we allocate the new token list register, and give it a temporary % alias \@tempb . \toksdef\@tempb\the\paramno % Then we place the argument value into that token list register. \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname \expandafter\@tempb\expandafter{\@tempa}% \advance\paramno by 1\relax \fi \next } % Trailing missing arguments are set to empty. % \def\setemptyargvalues@{% \ifx\paramlist\nilm@ \let\next\macargexpandinbody@ \else \expandafter\setemptyargvaluesparser@\paramlist\endargs@ \let\next\setemptyargvalues@ \fi \next } \def\setemptyargvaluesparser@#1,#2\endargs@{% \expandafter\def\expandafter\@tempa\expandafter{% \expandafter\def\csname macarg.#1\endcsname{}}% \push@\@tempa\macargdeflist@ \def\paramlist{#2}% } % #1 is the element target macro % #2 is the list macro % #3,#4\endargs@ is the list value \def\pop@#1#2#3,#4\endargs@{% \def#1{#3}% \def#2{#4}% } \long\def\longpop@#1#2#3,#4\endargs@{% \long\def#1{#3}% \long\def#2{#4}% } %%%%%%%%%%%%%% End of code for > 10 arguments %%%%%%%%%%%%%%%%%% % This defines a Texinfo @macro or @rmacro, called by \parsemacbody. % \macrobody has the body of the macro in it, with placeholders for % its parameters, looking like "\xeatspaces{\hash 1}". % \paramno is the number of parameters % \paramlist is a TeX parameter text, e.g. "#1,#2,#3," % There are four cases: macros of zero, one, up to nine, and many arguments. % \xdef is used so that macro definitions will survive the file % they're defined in: @include reads the file inside a group. % \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifnum\paramno=1 \def\xeatspaces##1{##1}% % This removes the pair of braces around the argument. We don't % use \eatspaces, because this can cause ends of lines to be lost % when the argument to \eatspaces is read, leading to line-based % commands like "@itemize" not being read correctly. \else \let\xeatspaces\relax % suppress expansion \fi \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\spaceisspace \noexpand\endlineisspace \noexpand\expandafter % skip any whitespace after the macro name. \expandafter\noexpand\csname\the\macname @@@\endcsname}% \expandafter\xdef\csname\the\macname @@@\endcsname{% \egroup \noexpand\scanmacro{\macrobody}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\braceorline \expandafter\noexpand\csname\the\macname @@@\endcsname}% \expandafter\xdef\csname\the\macname @@@\endcsname##1{% \egroup \noexpand\scanmacro{\macrobody}% }% \else % at most 9 \ifnum\paramno<10\relax % @MACNAME sets the context for reading the macro argument % @MACNAME@@ gets the argument, processes backslashes and appends a % comma. % @MACNAME@@@ removes braces surrounding the argument list. % @MACNAME@@@@ scans the macro body with arguments substituted. \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\expandafter % This \expandafter skip any spaces after the \noexpand\macroargctxt % macro before we change the catcode of space. \noexpand\expandafter \expandafter\noexpand\csname\the\macname @@\endcsname}% \expandafter\xdef\csname\the\macname @@\endcsname##1{% \noexpand\passargtomacro \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% \expandafter\xdef\csname\the\macname @@@\endcsname##1{% \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname @@@@\endcsname\paramlist{% \egroup\noexpand\scanmacro{\macrobody}}% \else % 10 or more: \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble \fi \fi} \catcode `\@\texiatcatcode\relax % end private-to-Texinfo catcodes \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % {\catcode`\@=0 \catcode`\\=13 % We need to manipulate \ so use @ as escape @catcode`@_=11 % private names @catcode`@!=11 % used as argument separator % \passargtomacro#1#2 - % Call #1 with a list of tokens #2, with any doubled backslashes in #2 % compressed to one. % % This implementation works by expansion, and not execution (so we cannot use % \def or similar). This reduces the risk of this failing in contexts where % complete expansion is done with no execution (for example, in writing out to % an auxiliary file for an index entry). % % State is kept in the input stream: the argument passed to % @look_ahead, @gobble_and_check_finish and @add_segment is % % THE_MACRO ARG_RESULT ! {PENDING_BS} NEXT_TOKEN (... rest of input) % % where: % THE_MACRO - name of the macro we want to call % ARG_RESULT - argument list we build to pass to that macro % PENDING_BS - either a backslash or nothing % NEXT_TOKEN - used to look ahead in the input stream to see what's coming next @gdef@passargtomacro#1#2{% @add_segment #1!{}@relax#2\@_finish\% } @gdef@_finish{@_finishx} @global@let@_finishx@relax % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 used to look ahead % % If the next token is not a backslash, process the rest of the argument; % otherwise, remove the next token. @gdef@look_ahead#1!#2#3#4{% @ifx#4\% @expandafter@gobble_and_check_finish @else @expandafter@add_segment @fi#1!{#2}#4#4% } % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 should be a backslash, which is gobbled. % #5 looks ahead % % Double backslash found. Add a single backslash, and look ahead. @gdef@gobble_and_check_finish#1!#2#3#4#5{% @add_segment#1\!{}#5#5% } @gdef@is_fi{@fi} % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 is input stream until next backslash % % Input stream is either at the start of the argument, or just after a % backslash sequence, either a lone backslash, or a doubled backslash. % NEXT_TOKEN contains the first token in the input stream: if it is \finish, % finish; otherwise, append to ARG_RESULT the segment of the argument up until % the next backslash. PENDING_BACKSLASH contains a backslash to represent % a backslash just before the start of the input stream that has not been % added to ARG_RESULT. @gdef@add_segment#1!#2#3#4\{% @ifx#3@_finish @call_the_macro#1!% @else % append the pending backslash to the result, followed by the next segment @expandafter@is_fi@look_ahead#1#2#4!{\}@fi % this @fi is discarded by @look_ahead. % we can't get rid of it with \expandafter because we don't know how % long #4 is. } % #1 - THE_MACRO % #2 - ARG_RESULT % #3 discards the res of the conditional in @add_segment, and @is_fi ends the % conditional. @gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \braceorline MAC is used for a one-argument macro MAC. It checks % whether the next non-whitespace character is a {. It sets the context % for reading the argument (slightly different in the two cases). Then, % to read the argument, in the whole-line case, it then calls the regular % \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC. % \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup \macroargctxt \expandafter\passargtomacro \else \macrolineargctxt\expandafter\parsearg \fi \macnamexxx} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Make them active and then expand them all to nothing. % \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next } \message{cross references,} \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} \def\inforefzzz #1,#2,#3,#4**{% \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in % cross-references. The @node line might or might not have commas, and % might or might not have spaces before the first comma, like: % @node foo , bar , ... % We don't want such trailing spaces in the node name. % \parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} % % also remove a trailing comma, in case of something like this: % @node Help-Cross, , , Cross-refs \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} \def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}\omittopnode} % Used so that the @top node doesn't have to be wrapped in an @ifnottex % conditional. % \doignore goes to more effort to skip nested conditionals but we don't need % that here. \def\omittopnode{% \ifx\lastnode\wordTop \expandafter\ignorenode\fi } \def\wordTop{Top} % Until the next @node or @bye command, divert output to a box that is not % output. \def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}% \ignorenodebye } {\let\bye\relax \gdef\ignorenodebye{\let\bye\ignorenodebyedef} \gdef\ignorenodebyedef{\egroup(`Top' node ignored)\bye}} % The redefinition of \bye here is because it is declared \outer \let\lastnode=\empty % Write a cross-reference definition for the current node. #1 is the % type (Ynumbered, Yappendix, Ynothing). % \def\donoderef#1{% \ifx\lastnode\empty\else \setref{\lastnode}{#1}% \global\let\lastnode=\empty \fi } % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister % \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: % 1) NAME-title - the current sectioning name taken from \currentsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. % 3) NAME-pg - the page number. % % This is called from \donoderef, \anchor, and \dofloat. In the case of % floats, there is an additional part, which is not written here: % 4) NAME-lof - the text as it should appear in a @listoffloats. % \def\setref#1#2{% \pdfmkdest{#1}% \iflinks {% \requireauxfile \atdummies % preserve commands, but don't expand them % match definition in \xrdef, \refx, \xrefX. \def\value##1{##1}% \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% \toks0 = \expandafter{\currentsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout }% \fi } % @xrefautosectiontitle on|off says whether @section(ing) names are used % automatically in xrefs, if the third arg is not explicitly specified. % This was provided as a "secret" @set xref-automatic-section-title % variable, now it's official. % \parseargdef\xrefautomaticsectiontitle{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', must be on|off}% \fi\fi } % % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % \def\pxref{\putwordsee{} \xrefXX} \def\xref{\putwordSee{} \xrefXX} \def\ref{\xrefXX} \def\xrefXX#1{\def\xrefXXarg{#1}\futurelet\tokenafterxref\xrefXXX} \def\xrefXXX{\expandafter\xrefX\expandafter[\xrefXXarg,,,,,,,]} % \newbox\toprefbox \newbox\printedrefnamebox \newbox\infofilenamebox \newbox\printedmanualbox % \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces % % Get args without leading/trailing spaces. \def\printedrefname{\ignorespaces #3}% \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% % \def\infofilename{\ignorespaces #4}% \setbox\infofilenamebox = \hbox{\infofilename\unskip}% % \def\printedmanual{\ignorespaces #5}% \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% % % If the printed reference name (arg #3) was not explicitly given in % the @xref, figure out what we want to use. \ifdim \wd\printedrefnamebox = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax % Not auto section-title: use node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else % Auto section-title: use chapter/section title inside % the square brackets if we have it. \ifdim \wd\printedmanualbox > 0pt % It is in another manual, so we don't have it; use node name. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We (should) know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}}% \else % Otherwise just copy the Info node name. \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % % Make link in pdf output. \ifpdf % For pdfTeX and LuaTeX {\indexnofonts \makevalueexpandable \turnoffactive % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. This ignores all spaces in % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % % This (wrongly) does not take account of leading or trailing % spaces in #1, which should be ignored. \setpdfdestname{#1}% % \ifx\pdfdestname\empty \def\pdfdestname{Top}% no empty targets \fi % \leavevmode \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 goto file{\the\filename.pdf} name{\pdfdestname}% \else goto name{\pdfmkpgn{\pdfdestname}}% \fi }% \setcolor{\linkcolor}% \else \ifx\XeTeXrevision\thisisundefined \else % For XeTeX {\indexnofonts \makevalueexpandable \turnoffactive % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. This ignores all spaces in % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % % This (wrongly) does not take account of leading or trailing % spaces in #1, which should be ignored. \setpdfdestname{#1}% % \ifx\pdfdestname\empty \def\pdfdestname{Top}% no empty targets \fi % \leavevmode \ifnum\filenamelength>0 % With default settings, % XeTeX (xdvipdfmx) replaces link destination names with integers. % In this case, the replaced destination names of % remote PDFs are no longer known. In order to avoid a replacement, % you can use xdvipdfmx's command line option `-C 0x0010'. % If you use XeTeX 0.99996+ (TeX Live 2016+), % this command line option is no longer necessary % because we can use the `dvipdfmx:config' special. \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoToR /F (\the\filename.pdf) /D (\pdfdestname) >> >>}% \else \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoTo /D (\pdfdestname) >> >>}% \fi }% \setcolor{\linkcolor}% \fi \fi {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. \indexnofonts \turnoffactive \def\value##1{##1}% \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% % % Float references are printed completely differently: "Figure 1.2" % instead of "[somenode], p.3". \iffloat distinguishes them by % \Xthisreftitle being set to a magic string. \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd\printedrefnamebox = 0pt \refx{#1-snt}% \else \printedrefname \fi % % If the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". \ifdim \wd\printedmanualbox > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. % % If we use \unhbox to print the node names, TeX does not insert % empty discretionaries after hyphens, which means that it will not % find a line break at a hyphen in a node names. Since some manuals % are best written with fairly long node names, containing hyphens, % this is a loss. Therefore, we give the text of the node name % again, so it is as if TeX is seeing it for the first time. % \ifdim \wd\printedmanualbox > 0pt % Cross-manual reference with a printed manual name. % \crossmanualxref{\cite{\printedmanual\unskip}}% % \else\ifdim \wd\infofilenamebox > 0pt % Cross-manual reference with only an info filename (arg 4), no % printed manual name (arg 5). This is essentially the same as % the case above; we output the filename, since we have nothing else. % \crossmanualxref{\code{\infofilename\unskip}}% % \else % Reference within this manual. % % Only output a following space if the -snt ref is nonempty, as the ref % will be empty for @unnumbered and @anchor. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi % % output the `[mynode]' via the macro below so it can be overridden. \xrefprintnodename\printedrefname % \expandafter\ifx\csname SETtxiomitxrefpg\endcsname\relax % But we always want a comma and a space: ,\space % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}% % Add a , if xref followed by a space \if\space\noexpand\tokenafterxref ,% \else\ifx\ \tokenafterxref ,% @TAB \else\ifx\*\tokenafterxref ,% @* \else\ifx\ \tokenafterxref ,% @SPACE \else\ifx\ \tokenafterxref ,% @NL \else\ifx\tie\tokenafterxref ,% @tie \fi\fi\fi\fi\fi\fi \fi \fi\fi \fi \endlink \endgroup} % Output a cross-manual xref to #1. Used just above (twice). % % Only include the text "Section ``foo'' in" if the foo is neither % missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply % "see The Foo Manual", the idea being to refer to the whole manual. % % But, this being TeX, we can't easily compare our node name against the % string "Top" while ignoring the possible spaces before and after in % the input. By adding the arbitrary 7sp below, we make it much less % likely that a real node name would have the same width as "Top" (e.g., % in a monospaced font). Hopefully it will never happen in practice. % % For the same basic reason, we retypeset the "Top" at every % reference, since the current font is indeterminate. % \def\crossmanualxref#1{% \setbox\toprefbox = \hbox{Top\kern7sp}% \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% \ifdim \wd2 > 7sp % nonempty? \ifdim \wd2 = \wd\toprefbox \else % same as Top? \putwordSection{} ``\printedrefname'' \putwordin{}\space \fi \fi #1% } % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly % one that Bob is working on :). % \def\xrefprintnodename#1{[#1]} % Things referred to by \setref. % \def\Ynothing{} \def\Yomitfromtoc{} \def\Ynumbered{% \ifnum\secno=0 \putwordChapter@tie \the\chapno \else \ifnum\subsecno=0 \putwordSection@tie \the\chapno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie \the\chapno.\the\secno.\the\subsecno \else \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } \def\Yappendix{% \ifnum\secno=0 \putwordAppendix@tie @char\the\appendixno{}% \else \ifnum\subsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno \else \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } % \refx{NAME} - reference a cross-reference string named NAME. \def\refx#1{% \requireauxfile {% \indexnofonts \turnoffactive \def\value##1{##1}% \expandafter\global\expandafter\let\expandafter\thisrefX \csname XR#1\endcsname }% \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs {\toks0 = {#1}% avoid expansion of possibly-complex value \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue \message{Cross reference values unknown; you must run TeX again.}% \fi \fi \fi \else % It's defined, so just use it. \thisrefX \fi } % This is the macro invoked by entries in the aux file. Define a control % sequence for a cross-reference target (we prepend XR to the control sequence % name to avoid collisions). The value is the page number. If this is a float % type, we have more work to do. % \def\xrdef#1#2{% {% Expand the node or anchor name to remove control sequences. % \turnoffactive stops 8-bit characters being changed to commands % like @'e. \refx does the same to retrieve the value in the definition. \indexnofonts \turnoffactive \def\value##1{##1}% \xdef\safexrefname{#1}% }% % \bgroup \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% \egroup % We put the \gdef inside a group to avoid the definitions building up on % TeX's save stack, which can cause it to run out of space for aux files with % thousands of lines. \gdef doesn't use the save stack, but \csname does % when it defines an unknown control sequence as \relax. % % Was that xref control sequence that we just defined for a float? \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname % % Is this the first time we've seen this float type? \expandafter\ifx\floatlist\relax \toks0 = {\do}% yes, so just \do \else % had it before, so preserve previous elements in list. \toks0 = \expandafter{\floatlist\do}% \fi % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 {\safexrefname}}% \fi } % If working on a large document in chapters, it is convenient to % be able to disable indexing, cross-referencing, and contents, for test runs. % This is done with @novalidate at the beginning of the file. % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % Used when writing to the aux file, or when using data from it. \def\requireauxfile{% \iflinks \tryauxfile % Open the new aux file. TeX will close it automatically at exit. \immediate\openout\auxfile=\jobname.aux \fi \global\let\requireauxfile=\relax % Only do this once. } % Read the last existing aux file, if any. No error if none exists. % \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } \def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other \catcode`\^^C=\other \catcode`\^^D=\other \catcode`\^^E=\other \catcode`\^^F=\other \catcode`\^^G=\other \catcode`\^^H=\other \catcode`\^^K=\other \catcode`\^^L=\other \catcode`\^^N=\other \catcode`\^^P=\other \catcode`\^^Q=\other \catcode`\^^R=\other \catcode`\^^S=\other \catcode`\^^T=\other \catcode`\^^U=\other \catcode`\^^V=\other \catcode`\^^W=\other \catcode`\^^X=\other \catcode`\^^Z=\other \catcode`\^^[=\other \catcode`\^^\=\other \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other \catcode`\^=\other % % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\active \catcode`\|=\active \catcode`\<=\active \catcode`\>=\active \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % \catcode`\\=\active % % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 } \def\readdatafile#1{% \begingroup \setupdatafile \input\jobname.#1 \endgroup} \message{insertions,} % including footnotes. \newcount \footnoteno % The trailing space in the following definition for supereject is % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is % removed. (Generally, numeric constants should always be followed by a % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } % @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf \dofootnote }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % % Oh yes, they do; otherwise, @ifset (and anything else that uses % \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % \gdef\dofootnote{% \insert\footins\bgroup % % Nested footnotes are not supported in TeX, that would take a lot % more work. (\startsavinginserts does not suffice.) \let\footnote=\errfootnotenest % % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \hsize=\txipagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox \floatingpenalty\@MM \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip \parindent\defaultparindent % \smallfonts \rm % % Because we use hanging indentation in footnotes, a @noindent appears % to exdent this text, so make it be a no-op. makeinfo does not use % hanging indentation so @noindent can still be needed within footnote % text after an @example or the like (not that this is good style). \let\noindent = \relax % % Hang the footnote text off the number. Use \everypar in case the % footnote extends for more than one paragraph. \everypar = {\hang}% \textindent{\thisfootno}% % % Don't crash into the line above the footnote text. Since this % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut % % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 \def\errfootnotenest{% \errhelp=\EMsimple \errmessage{Nested footnotes not supported in texinfo.tex, even though they work in makeinfo; sorry} } \def\errfootnoteheading{% \errhelp=\EMsimple \errmessage{Footnotes in chapters, sections, etc., are not supported} } % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. % Similarly, if a @footnote appears inside an alignment, save the footnote % text to a box and make the \insert when a row of the table is finished. % And the same can be done for other insert classes. --kasal, 16nov03. % % Replace the \insert primitive by a cheating macro. % Deeper inside, just make sure that the saved insertions are not spilled % out prematurely. % \def\startsavinginserts{% \ifx \insert\ptexinsert \let\insert\saveinsert \else \let\checkinserts\relax \fi } % This \insert replacement works for both \insert\footins{foo} and % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % \def\saveinsert#1{% \edef\next{\noexpand\savetobox \makeSAVEname#1}% \afterassignment\next % swallow the left brace \let\temp = } \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} \def\placesaveins#1{% \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname {\box#1}% } % eat @SAVE -- beware, all of them have catcode \other: { \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) \gdef\gobblesave @SAVE{} } % initialization: \def\newsaveins #1{% \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% \next } \def\newsaveinsX #1{% \csname newbox\endcsname #1% \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts \checksaveins #1}% } % initialize: \let\checkinserts\empty \newsaveins\footins \newsaveins\margin % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else % Do not bother showing banner with epsf.tex v2.7k (available in % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi \closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from https://ctan.org/texarchive/macros/texinfo/texinfo/doc/epsf.tex.} % \def\image#1{% \ifx\epsfbox\thisisundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% \global\warnednoepsftrue \fi \else \imagexxx #1,,,,,\finish \fi } % % Arguments to @image: % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. % #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example \normalturnoffactive % allow _ et al. in names \makevalueexpandable % If the image is by itself, center it. \ifvmode \imagevmodetrue \else \ifx\centersub\centerV % for @center @image, we need a vbox so we can have our vertical space \imagevmodetrue \vbox\bgroup % vbox has better behavior than vtop herev \fi\fi % \ifimagevmode \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak \fi % % Leave vertical mode so that indentation from an enclosing % environment such as @quotation is respected. % However, if we're at the top level, we don't want the % normal paragraph indentation. % On the other hand, if we are in the case of @center @image, we don't % want to start a paragraph, which will create a hsize-width box and % eradicate the centering. \ifx\centersub\centerV \else \imageindent \fi % % Output the image. \ifpdf % For pdfTeX and LuaTeX <= 0.80 \dopdfimage{#1}{#2}{#3}% \else \ifx\XeTeXrevision\thisisundefined % For epsf.tex % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \epsfysize=#3\relax \fi \epsfbox{#1.eps}% \else % For XeTeX \doxeteximage{#1}{#2}{#3}% \fi \fi % \ifimagevmode \medskip % space after a standalone image \fi \ifx\centersub\centerV \egroup \fi \endgroup} % @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, % etc. We don't actually implement floating yet, we always include the % float "here". But it seemed the best name for the future. % \envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} % There may be a space before second and/or third parameter; delete it. \def\eatcommaspace#1, {#1,} % #1 is the optional FLOATTYPE, the text label for this float, typically % "Figure", "Table", "Example", etc. Can't contain commas. If omitted, % this float will not be numbered and cannot be referred to. % % #2 is the optional xref label. Also must be present for the float to % be referable. % % #3 is the optional positioning argument; for now, it is ignored. It % will somehow specify the positions allowed to float to (here, top, bottom). % % We keep a separate counter for each FLOATTYPE, which we reset at each % chapter-level command. \let\resetallfloatnos=\empty % \def\dofloat#1,#2,#3,#4\finish{% \let\thiscaption=\empty \let\thisshortcaption=\empty % % don't lose footnotes inside @float. % % BEWARE: when the floats start float, we have to issue warning whenever an % insert appears inside a float which could possibly float. --kasal, 26may04 % \startsavinginserts % % We can't be used inside a paragraph. \par % \vtop\bgroup \def\floattype{#1}% \def\floatlabel{#2}% \def\floatloc{#3}% we do nothing with this yet. % \ifx\floattype\empty \let\safefloattype=\empty \else {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% \fi % % If label is given but no type, we handle that as the empty type. \ifx\floatlabel\empty \else % We want each FLOATTYPE to be numbered separately (Figure 1, % Table 1, Figure 2, ...). (And if no label, no number.) % \expandafter\getfloatno\csname\safefloattype floatno\endcsname \global\advance\floatno by 1 % {% % This magic value for \currentsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % \edef\currentsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi % % start with \parskip glue, I guess. \vskip\parskip % % Don't suppress indentation if a float happens to start a section. \restorefirstparagraphindent } % we have these possibilities: % @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap % @float Foo,lbl & no caption: Foo 1.1 % @float Foo & @caption{Cap}: Foo: Cap % @float Foo & no caption: Foo % @float ,lbl & Caption{Cap}: 1.1: Cap % @float ,lbl & no caption: 1.1 % @float & @caption{Cap}: Cap % @float & no caption: % \def\Efloat{% \let\floatident = \empty % % In all cases, if we have a float type, it comes first. \ifx\floattype\empty \else \def\floatident{\floattype}\fi % % If we have an xref label, the number comes next. \ifx\floatlabel\empty \else \ifx\floattype\empty \else % if also had float type, need tie first. \appendtomacro\floatident{\tie}% \fi % the number. \appendtomacro\floatident{\chaplevelprefix\the\floatno}% \fi % % Start the printed caption with what we've constructed in % \floatident, but keep it separate; we need \floatident again. \let\captionline = \floatident % \ifx\thiscaption\empty \else \ifx\floatident\empty \else \appendtomacro\captionline{: }% had ident, so need a colon between \fi % % caption text. \appendtomacro\captionline{\scanexp\thiscaption}% \fi % % If we have anything to print, print it, with space before. % Eventually this needs to become an \insert. \ifx\captionline\empty \else \vskip.5\parskip \captionline % % Space below caption. \vskip\parskip \fi % % If have an xref label, write the list of floats info. Do this % after the caption, to avoid chance of it being a breakpoint. \ifx\floatlabel\empty \else % Write the text that goes in the lof to the aux file as % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% \requireauxfile \atdummies % \ifx\thisshortcaption\empty \def\gtemp{\thiscaption}% \else \def\gtemp{\thisshortcaption}% \fi \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident \ifx\gtemp\empty \else : \gtemp \fi}}% }% \fi \egroup % end of \vtop % \checkinserts } % Append the tokens #2 to the definition of macro #1, not expanding either. % \def\appendtomacro#1#2{% \expandafter\def\expandafter#1\expandafter{#1#2}% } % @caption, @shortcaption % \def\caption{\docaption\thiscaption} \def\shortcaption{\docaption\thisshortcaption} \def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} \def\defcaption#1#2{\egroup \def#1{#2}} % The parameter is the control sequence identifying the counter we are % going to use. Create it if it doesn't exist and assign it to \floatno. \def\getfloatno#1{% \ifx#1\relax % Haven't seen this figure type before. \csname newcount\endcsname #1% % % Remember to reset this floatno at the next chap. \expandafter\gdef\expandafter\resetallfloatnos \expandafter{\resetallfloatnos #1=0 }% \fi \let\floatno#1% } % \setref calls this to get the XREFLABEL-snt value. We want an @xref % to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we % first read the @float command. % \def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% % Magic string used for the XREFLABEL-title value, so \xrefX can % distinguish floats from other xref types. \def\floatmagic{!!float!!} % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic % \currentsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % % #1 is (maybe) the \floatmagic string. If so, #2 will be the % (safe) float type for this float. We set \iffloattype to #2. % \def\doiffloat#1=#2=#3\finish{% \def\temp{#1}% \def\iffloattype{#2}% \ifx\temp\floatmagic } % @listoffloats FLOATTYPE - print a list of floats like a table of contents. % \parseargdef\listoffloats{% \def\floattype{#1}% floattype {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% % % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax \ifhavexrefs % if the user said @listoffloats foo but never @float foo. \message{\linenumber No `\safefloattype' floats to list.}% \fi \else \begingroup \leftskip=\tocindent % indent these entries like a toc \let\do=\listoffloatsdo \csname floatlist\safefloattype\endcsname \endgroup \fi } % This is called on each entry in a list of floats. We're passed the % xref label, in the form LABEL-title, which is how we save it in the % aux file. We strip off the -title and look up \XRLABEL-lof, which % has the text we're supposed to typeset here. % % Figures without xref labels will not be included in the list (since % they won't appear in the aux file). % \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} \def\listoffloatsdoentry#1-title\finish{{% % Can't fully expand XR#1-lof because it can contain anything. Just % pass the control sequence. On the other hand, XR#1-pg is just the % page number, and we want to fully expand that so we can get a link % in pdf output. \toksA = \expandafter{\csname XR#1-lof\endcsname}% % % use the same \entry macro we use to generate the TOC and index. \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% \writeentry }} \message{localization,} % For single-language documents, @documentlanguage is usually given very % early, just after @documentencoding. Single argument is the language % (de) or locale (de_DE) abbreviation. % { \catcode`\_ = \active \globaldefs=1 \parseargdef\documentlanguage{% \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. \let_ = \normalunderscore % normal _ character for filename test \openin 1 txi-#1.tex \ifeof 1 \documentlanguagetrywithoutunderscore #1_\finish \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 \endgroup % end raw TeX } % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. % \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } }% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current directory should work if nowhere else does.} % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. \expandafter\ifx\csname lang@#1\endcsname \relax \message{no patterns for #1}% \else \global\language = \csname lang@#1\endcsname \fi % but there is no harm in adjusting the hyphenmin values regardless. \global\lefthyphenmin = #2\relax \global\righthyphenmin = #3\relax } % XeTeX and LuaTeX can handle Unicode natively. % Their default I/O uses UTF-8 sequences instead of a byte-wise operation. % Other TeX engines' I/O (pdfTeX, etc.) is byte-wise. % \newif\iftxinativeunicodecapable \newif\iftxiusebytewiseio \ifx\XeTeXrevision\thisisundefined \ifx\luatexversion\thisisundefined \txinativeunicodecapablefalse \txiusebytewiseiotrue \else \txinativeunicodecapabletrue \txiusebytewiseiofalse \fi \else \txinativeunicodecapabletrue \txiusebytewiseiofalse \fi % Set I/O by bytes instead of UTF-8 sequence for XeTeX and LuaTex % for non-UTF-8 (byte-wise) encodings. % \def\setbytewiseio{% \ifx\XeTeXrevision\thisisundefined \else \XeTeXdefaultencoding "bytes" % For subsequent files to be read \XeTeXinputencoding "bytes" % For document root file % Unfortunately, there seems to be no corresponding XeTeX command for % output encoding. This is a problem for auxiliary index and TOC files. % The only solution would be perhaps to write out @U{...} sequences in % place of non-ASCII characters. \fi \ifx\luatexversion\thisisundefined \else \directlua{ local utf8_char, byte, gsub = unicode.utf8.char, string.byte, string.gsub local function convert_char (char) return utf8_char(byte(char)) end local function convert_line (line) return gsub(line, ".", convert_char) end callback.register("process_input_buffer", convert_line) local function convert_line_out (line) local line_out = "" for c in string.utfvalues(line) do line_out = line_out .. string.char(c) end return line_out end callback.register("process_output_buffer", convert_line_out) } \fi \txiusebytewiseiotrue } % Helpers for encodings. % Set the catcode of characters 128 through 255 to the specified number. % \def\setnonasciicharscatcode#1{% \count255=128 \loop\ifnum\count255<256 \global\catcode\count255=#1\relax \advance\count255 by 1 \repeat } \def\setnonasciicharscatcodenonglobal#1{% \count255=128 \loop\ifnum\count255<256 \catcode\count255=#1\relax \advance\count255 by 1 \repeat } % @documentencoding sets the definition of non-ASCII characters % according to the specified encoding. % \def\documentencoding{\parseargusing\filenamecatcodes\documentencodingzzz} \def\documentencodingzzz#1{% % % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % % Supported encodings: names converted to tokens in order to be able % to compare them with \ifx. \def\ascii{\csname US-ASCII.enc\endcsname}% \def\latnine{\csname ISO-8859-15.enc\endcsname}% \def\latone{\csname ISO-8859-1.enc\endcsname}% \def\lattwo{\csname ISO-8859-2.enc\endcsname}% \def\utfeight{\csname UTF-8.enc\endcsname}% % \ifx \declaredencoding \ascii \asciichardefs % \else \ifx \declaredencoding \lattwo \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \lattwochardefs % \else \ifx \declaredencoding \latone \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \latonechardefs % \else \ifx \declaredencoding \latnine \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \latninechardefs % \else \ifx \declaredencoding \utfeight \iftxinativeunicodecapable % For native Unicode handling (XeTeX and LuaTeX) \nativeunicodechardefs \else % For treating UTF-8 as byte sequences (TeX, eTeX and pdfTeX) \setnonasciicharscatcode\active % since we already invoked \utfeightchardefs at the top level % (below), do not re-invoke it, otherwise our check for duplicated % definitions gets triggered. Making non-ascii chars active is % sufficient. \fi % \else \message{Ignoring unknown document encoding: #1.}% % \fi % utfeight \fi % latnine \fi % latone \fi % lattwo \fi % ascii % \ifx\XeTeXrevision\thisisundefined \else \ifx \declaredencoding \utfeight \else \ifx \declaredencoding \ascii \else \message{Warning: XeTeX with non-UTF-8 encodings cannot handle % non-ASCII characters in auxiliary files.}% \fi \fi \fi } % emacs-page % A message to be logged when using a character that isn't available % the default font encoding (OT1). % \def\missingcharmsg#1{\message{Character missing, sorry: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} % First, make active non-ASCII characters in order for them to be % correctly categorized when TeX reads the replacement text of % macros containing the character definitions. \setnonasciicharscatcode\active % \def\gdefchar#1#2{% \gdef#1{% \ifpassthroughchars \string#1% \else #2% \fi }} % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% \gdefchar^^a0{\tie} \gdefchar^^a1{\exclamdown} \gdefchar^^a2{{\tcfont \char162}} % cent \gdefchar^^a3{\pounds{}} \gdefchar^^a4{{\tcfont \char164}} % currency \gdefchar^^a5{{\tcfont \char165}} % yen \gdefchar^^a6{{\tcfont \char166}} % broken bar \gdefchar^^a7{\S} \gdefchar^^a8{\"{}} \gdefchar^^a9{\copyright{}} \gdefchar^^aa{\ordf} \gdefchar^^ab{\guillemetleft{}} \gdefchar^^ac{\ensuremath\lnot} \gdefchar^^ad{\-} \gdefchar^^ae{\registeredsymbol{}} \gdefchar^^af{\={}} % \gdefchar^^b0{\textdegree} \gdefchar^^b1{$\pm$} \gdefchar^^b2{$^2$} \gdefchar^^b3{$^3$} \gdefchar^^b4{\'{}} \gdefchar^^b5{$\mu$} \gdefchar^^b6{\P} \gdefchar^^b7{\ensuremath\cdot} \gdefchar^^b8{\cedilla\ } \gdefchar^^b9{$^1$} \gdefchar^^ba{\ordm} \gdefchar^^bb{\guillemetright{}} \gdefchar^^bc{$1\over4$} \gdefchar^^bd{$1\over2$} \gdefchar^^be{$3\over4$} \gdefchar^^bf{\questiondown} % \gdefchar^^c0{\`A} \gdefchar^^c1{\'A} \gdefchar^^c2{\^A} \gdefchar^^c3{\~A} \gdefchar^^c4{\"A} \gdefchar^^c5{\ringaccent A} \gdefchar^^c6{\AE} \gdefchar^^c7{\cedilla C} \gdefchar^^c8{\`E} \gdefchar^^c9{\'E} \gdefchar^^ca{\^E} \gdefchar^^cb{\"E} \gdefchar^^cc{\`I} \gdefchar^^cd{\'I} \gdefchar^^ce{\^I} \gdefchar^^cf{\"I} % \gdefchar^^d0{\DH} \gdefchar^^d1{\~N} \gdefchar^^d2{\`O} \gdefchar^^d3{\'O} \gdefchar^^d4{\^O} \gdefchar^^d5{\~O} \gdefchar^^d6{\"O} \gdefchar^^d7{$\times$} \gdefchar^^d8{\O} \gdefchar^^d9{\`U} \gdefchar^^da{\'U} \gdefchar^^db{\^U} \gdefchar^^dc{\"U} \gdefchar^^dd{\'Y} \gdefchar^^de{\TH} \gdefchar^^df{\ss} % \gdefchar^^e0{\`a} \gdefchar^^e1{\'a} \gdefchar^^e2{\^a} \gdefchar^^e3{\~a} \gdefchar^^e4{\"a} \gdefchar^^e5{\ringaccent a} \gdefchar^^e6{\ae} \gdefchar^^e7{\cedilla c} \gdefchar^^e8{\`e} \gdefchar^^e9{\'e} \gdefchar^^ea{\^e} \gdefchar^^eb{\"e} \gdefchar^^ec{\`{\dotless i}} \gdefchar^^ed{\'{\dotless i}} \gdefchar^^ee{\^{\dotless i}} \gdefchar^^ef{\"{\dotless i}} % \gdefchar^^f0{\dh} \gdefchar^^f1{\~n} \gdefchar^^f2{\`o} \gdefchar^^f3{\'o} \gdefchar^^f4{\^o} \gdefchar^^f5{\~o} \gdefchar^^f6{\"o} \gdefchar^^f7{$\div$} \gdefchar^^f8{\o} \gdefchar^^f9{\`u} \gdefchar^^fa{\'u} \gdefchar^^fb{\^u} \gdefchar^^fc{\"u} \gdefchar^^fd{\'y} \gdefchar^^fe{\th} \gdefchar^^ff{\"y} } % Latin9 (ISO-8859-15) encoding character definitions. \def\latninechardefs{% % Encoding is almost identical to Latin1. \latonechardefs % \gdefchar^^a4{\euro{}} \gdefchar^^a6{\v S} \gdefchar^^a8{\v s} \gdefchar^^b4{\v Z} \gdefchar^^b8{\v z} \gdefchar^^bc{\OE} \gdefchar^^bd{\oe} \gdefchar^^be{\"Y} } % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% \gdefchar^^a0{\tie} \gdefchar^^a1{\ogonek{A}} \gdefchar^^a2{\u{}} \gdefchar^^a3{\L} \gdefchar^^a4{\missingcharmsg{CURRENCY SIGN}} \gdefchar^^a5{\v L} \gdefchar^^a6{\'S} \gdefchar^^a7{\S} \gdefchar^^a8{\"{}} \gdefchar^^a9{\v S} \gdefchar^^aa{\cedilla S} \gdefchar^^ab{\v T} \gdefchar^^ac{\'Z} \gdefchar^^ad{\-} \gdefchar^^ae{\v Z} \gdefchar^^af{\dotaccent Z} % \gdefchar^^b0{\textdegree{}} \gdefchar^^b1{\ogonek{a}} \gdefchar^^b2{\ogonek{ }} \gdefchar^^b3{\l} \gdefchar^^b4{\'{}} \gdefchar^^b5{\v l} \gdefchar^^b6{\'s} \gdefchar^^b7{\v{}} \gdefchar^^b8{\cedilla\ } \gdefchar^^b9{\v s} \gdefchar^^ba{\cedilla s} \gdefchar^^bb{\v t} \gdefchar^^bc{\'z} \gdefchar^^bd{\H{}} \gdefchar^^be{\v z} \gdefchar^^bf{\dotaccent z} % \gdefchar^^c0{\'R} \gdefchar^^c1{\'A} \gdefchar^^c2{\^A} \gdefchar^^c3{\u A} \gdefchar^^c4{\"A} \gdefchar^^c5{\'L} \gdefchar^^c6{\'C} \gdefchar^^c7{\cedilla C} \gdefchar^^c8{\v C} \gdefchar^^c9{\'E} \gdefchar^^ca{\ogonek{E}} \gdefchar^^cb{\"E} \gdefchar^^cc{\v E} \gdefchar^^cd{\'I} \gdefchar^^ce{\^I} \gdefchar^^cf{\v D} % \gdefchar^^d0{\DH} \gdefchar^^d1{\'N} \gdefchar^^d2{\v N} \gdefchar^^d3{\'O} \gdefchar^^d4{\^O} \gdefchar^^d5{\H O} \gdefchar^^d6{\"O} \gdefchar^^d7{$\times$} \gdefchar^^d8{\v R} \gdefchar^^d9{\ringaccent U} \gdefchar^^da{\'U} \gdefchar^^db{\H U} \gdefchar^^dc{\"U} \gdefchar^^dd{\'Y} \gdefchar^^de{\cedilla T} \gdefchar^^df{\ss} % \gdefchar^^e0{\'r} \gdefchar^^e1{\'a} \gdefchar^^e2{\^a} \gdefchar^^e3{\u a} \gdefchar^^e4{\"a} \gdefchar^^e5{\'l} \gdefchar^^e6{\'c} \gdefchar^^e7{\cedilla c} \gdefchar^^e8{\v c} \gdefchar^^e9{\'e} \gdefchar^^ea{\ogonek{e}} \gdefchar^^eb{\"e} \gdefchar^^ec{\v e} \gdefchar^^ed{\'{\dotless{i}}} \gdefchar^^ee{\^{\dotless{i}}} \gdefchar^^ef{\v d} % \gdefchar^^f0{\dh} \gdefchar^^f1{\'n} \gdefchar^^f2{\v n} \gdefchar^^f3{\'o} \gdefchar^^f4{\^o} \gdefchar^^f5{\H o} \gdefchar^^f6{\"o} \gdefchar^^f7{$\div$} \gdefchar^^f8{\v r} \gdefchar^^f9{\ringaccent u} \gdefchar^^fa{\'u} \gdefchar^^fb{\H u} \gdefchar^^fc{\"u} \gdefchar^^fd{\'y} \gdefchar^^fe{\cedilla t} \gdefchar^^ff{\dotaccent{}} } % UTF-8 character definitions. % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz \gdef\UTFviiiTwoOctets#1#2{\expandafter \UTFviiiDefined\csname u8:#1\string #2\endcsname} % \gdef\UTFviiiThreeOctets#1#2#3{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} \gdef\UTFviiiDefined#1{% \ifx #1\relax \message{\linenumber Unicode char \string #1 not defined for Texinfo}% \else \expandafter #1% \fi } % Give non-ASCII bytes the active definitions for processing UTF-8 sequences \begingroup \catcode`\~13 \catcode`\$12 \catcode`\"12 % Loop from \countUTFx to \countUTFy, performing \UTFviiiTmp % substituting ~ and $ with a character token of that value. \def\UTFviiiLoop{% \global\catcode\countUTFx\active \uccode`\~\countUTFx \uccode`\$\countUTFx \uppercase\expandafter{\UTFviiiTmp}% \advance\countUTFx by 1 \ifnum\countUTFx < \countUTFy \expandafter\UTFviiiLoop \fi} % For bytes other than the first in a UTF-8 sequence. Not expected to % be expanded except when writing to auxiliary files. \countUTFx = "80 \countUTFy = "C2 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $\fi}}% \UTFviiiLoop \countUTFx = "C2 \countUTFy = "E0 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiTwoOctets\expandafter$\fi}}% \UTFviiiLoop \countUTFx = "E0 \countUTFy = "F0 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiThreeOctets\expandafter$\fi}}% \UTFviiiLoop \countUTFx = "F0 \countUTFy = "F4 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiFourOctets\expandafter$\fi }}% \UTFviiiLoop \endgroup \def\globallet{\global\let} % save some \expandafter's below % @U{xxxx} to produce U+xxxx, if we support it. \def\U#1{% \expandafter\ifx\csname uni:#1\endcsname \relax \iftxinativeunicodecapable % All Unicode characters can be used if native Unicode handling is % active. However, if the font does not have the glyph, % letters are missing. \begingroup \uccode`\.="#1\relax \uppercase{.} \endgroup \else \errhelp = \EMsimple \errmessage{Unicode character U+#1 not supported, sorry}% \fi \else \csname uni:#1\endcsname \fi } % These macros are used here to construct the name of a control % sequence to be defined. \def\UTFviiiTwoOctetsName#1#2{% \csname u8:#1\string #2\endcsname}% \def\UTFviiiThreeOctetsName#1#2#3{% \csname u8:#1\string #2\string #3\endcsname}% \def\UTFviiiFourOctetsName#1#2#3#4{% \csname u8:#1\string #2\string #3\string #4\endcsname}% % For UTF-8 byte sequences (TeX, e-TeX and pdfTeX), % provide a definition macro to replace a Unicode character; % this gets used by the @U command % \begingroup \catcode`\"=12 \catcode`\<=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 \gdef\DeclareUnicodeCharacterUTFviii#1#2{% \countUTFz = "#1\relax \begingroup \parseXMLCharref % Give \u8:... its definition. The sequence of seven \expandafter's % expands after the \gdef three times, e.g. % % 1. \UTFviiTwoOctetsName B1 B2 % 2. \csname u8:B1 \string B2 \endcsname % 3. \u8: B1 B2 (a single control sequence token) % \expandafter\expandafter \expandafter\expandafter \expandafter\expandafter \expandafter\gdef \UTFviiiTmp{#2}% % \expandafter\ifx\csname uni:#1\endcsname \relax \else \message{Internal error, already defined: #1}% \fi % % define an additional control sequence for this code point. \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp \endgroup} % % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp % to the corresponding UTF-8 sequence. \gdef\parseXMLCharref{% \ifnum\countUTFz < "A0\relax \errhelp = \EMsimple \errmessage{Cannot define Unicode char value < 00A0}% \else\ifnum\countUTFz < "800\relax \parseUTFviiiA,% \parseUTFviiiB C\UTFviiiTwoOctetsName.,% \else\ifnum\countUTFz < "10000\relax \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiB E\UTFviiiThreeOctetsName.{,;}% \else \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiA!% \parseUTFviiiB F\UTFviiiFourOctetsName.{!,;}% \fi\fi\fi } % Extract a byte from the end of the UTF-8 representation of \countUTFx. % It must be a non-initial byte in the sequence. % Change \uccode of #1 for it to be used in \parseUTFviiiB as one % of the bytes. \gdef\parseUTFviiiA#1{% \countUTFx = \countUTFz \divide\countUTFz by 64 \countUTFy = \countUTFz % Save to be the future value of \countUTFz. \multiply\countUTFz by 64 % \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract % in order to get the last five bits. \advance\countUTFx by -\countUTFz % Convert this to the byte in the UTF-8 sequence. \advance\countUTFx by 128 \uccode `#1\countUTFx \countUTFz = \countUTFy} % Used to put a UTF-8 byte sequence into \UTFviiiTmp % #1 is the increment for \countUTFz to yield a the first byte of the UTF-8 % sequence. % #2 is one of the \UTFviii*OctetsName macros. % #3 is always a full stop (.) % #4 is a template for the other bytes in the sequence. The values for these % bytes is substituted in here with \uppercase using the \uccode's. \gdef\parseUTFviiiB#1#2#3#4{% \advance\countUTFz by "#10\relax \uccode `#3\countUTFz \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} \endgroup % For native Unicode handling (XeTeX and LuaTeX), % provide a definition macro that sets a catcode to `other' non-globally % \def\DeclareUnicodeCharacterNativeOther#1#2{% \catcode"#1=\other } % https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M % U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block) % U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block) % U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A % U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B % % Many of our renditions are less than wonderful, and all the missing % characters are available somewhere. Loading the necessary fonts % awaits user request. We can't truly support Unicode without % reimplementing everything that's been done in LaTeX for many years, % plus probably using luatex or xetex, and who knows what else. % We won't be doing that here in this simple file. But we can try to at % least make most of the characters not bomb out. % \def\unicodechardefs{% \DeclareUnicodeCharacter{00A0}{\tie}% \DeclareUnicodeCharacter{00A1}{\exclamdown}% \DeclareUnicodeCharacter{00A2}{{\tcfont \char162}}% 0242=cent \DeclareUnicodeCharacter{00A3}{\pounds{}}% \DeclareUnicodeCharacter{00A4}{{\tcfont \char164}}% 0244=currency \DeclareUnicodeCharacter{00A5}{{\tcfont \char165}}% 0245=yen \DeclareUnicodeCharacter{00A6}{{\tcfont \char166}}% 0246=brokenbar \DeclareUnicodeCharacter{00A7}{\S}% \DeclareUnicodeCharacter{00A8}{\"{ }}% \DeclareUnicodeCharacter{00A9}{\copyright{}}% \DeclareUnicodeCharacter{00AA}{\ordf}% \DeclareUnicodeCharacter{00AB}{\guillemetleft{}}% \DeclareUnicodeCharacter{00AC}{\ensuremath\lnot}% \DeclareUnicodeCharacter{00AD}{\-}% \DeclareUnicodeCharacter{00AE}{\registeredsymbol{}}% \DeclareUnicodeCharacter{00AF}{\={ }}% % \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}% \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}% \DeclareUnicodeCharacter{00B2}{$^2$}% \DeclareUnicodeCharacter{00B3}{$^3$}% \DeclareUnicodeCharacter{00B4}{\'{ }}% \DeclareUnicodeCharacter{00B5}{$\mu$}% \DeclareUnicodeCharacter{00B6}{\P}% \DeclareUnicodeCharacter{00B7}{\ensuremath\cdot}% \DeclareUnicodeCharacter{00B8}{\cedilla{ }}% \DeclareUnicodeCharacter{00B9}{$^1$}% \DeclareUnicodeCharacter{00BA}{\ordm}% \DeclareUnicodeCharacter{00BB}{\guillemetright{}}% \DeclareUnicodeCharacter{00BC}{$1\over4$}% \DeclareUnicodeCharacter{00BD}{$1\over2$}% \DeclareUnicodeCharacter{00BE}{$3\over4$}% \DeclareUnicodeCharacter{00BF}{\questiondown}% % \DeclareUnicodeCharacter{00C0}{\`A}% \DeclareUnicodeCharacter{00C1}{\'A}% \DeclareUnicodeCharacter{00C2}{\^A}% \DeclareUnicodeCharacter{00C3}{\~A}% \DeclareUnicodeCharacter{00C4}{\"A}% \DeclareUnicodeCharacter{00C5}{\AA}% \DeclareUnicodeCharacter{00C6}{\AE}% \DeclareUnicodeCharacter{00C7}{\cedilla{C}}% \DeclareUnicodeCharacter{00C8}{\`E}% \DeclareUnicodeCharacter{00C9}{\'E}% \DeclareUnicodeCharacter{00CA}{\^E}% \DeclareUnicodeCharacter{00CB}{\"E}% \DeclareUnicodeCharacter{00CC}{\`I}% \DeclareUnicodeCharacter{00CD}{\'I}% \DeclareUnicodeCharacter{00CE}{\^I}% \DeclareUnicodeCharacter{00CF}{\"I}% % \DeclareUnicodeCharacter{00D0}{\DH}% \DeclareUnicodeCharacter{00D1}{\~N}% \DeclareUnicodeCharacter{00D2}{\`O}% \DeclareUnicodeCharacter{00D3}{\'O}% \DeclareUnicodeCharacter{00D4}{\^O}% \DeclareUnicodeCharacter{00D5}{\~O}% \DeclareUnicodeCharacter{00D6}{\"O}% \DeclareUnicodeCharacter{00D7}{\ensuremath\times}% \DeclareUnicodeCharacter{00D8}{\O}% \DeclareUnicodeCharacter{00D9}{\`U}% \DeclareUnicodeCharacter{00DA}{\'U}% \DeclareUnicodeCharacter{00DB}{\^U}% \DeclareUnicodeCharacter{00DC}{\"U}% \DeclareUnicodeCharacter{00DD}{\'Y}% \DeclareUnicodeCharacter{00DE}{\TH}% \DeclareUnicodeCharacter{00DF}{\ss}% % \DeclareUnicodeCharacter{00E0}{\`a}% \DeclareUnicodeCharacter{00E1}{\'a}% \DeclareUnicodeCharacter{00E2}{\^a}% \DeclareUnicodeCharacter{00E3}{\~a}% \DeclareUnicodeCharacter{00E4}{\"a}% \DeclareUnicodeCharacter{00E5}{\aa}% \DeclareUnicodeCharacter{00E6}{\ae}% \DeclareUnicodeCharacter{00E7}{\cedilla{c}}% \DeclareUnicodeCharacter{00E8}{\`e}% \DeclareUnicodeCharacter{00E9}{\'e}% \DeclareUnicodeCharacter{00EA}{\^e}% \DeclareUnicodeCharacter{00EB}{\"e}% \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}% \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}% \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}% \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}% % \DeclareUnicodeCharacter{00F0}{\dh}% \DeclareUnicodeCharacter{00F1}{\~n}% \DeclareUnicodeCharacter{00F2}{\`o}% \DeclareUnicodeCharacter{00F3}{\'o}% \DeclareUnicodeCharacter{00F4}{\^o}% \DeclareUnicodeCharacter{00F5}{\~o}% \DeclareUnicodeCharacter{00F6}{\"o}% \DeclareUnicodeCharacter{00F7}{\ensuremath\div}% \DeclareUnicodeCharacter{00F8}{\o}% \DeclareUnicodeCharacter{00F9}{\`u}% \DeclareUnicodeCharacter{00FA}{\'u}% \DeclareUnicodeCharacter{00FB}{\^u}% \DeclareUnicodeCharacter{00FC}{\"u}% \DeclareUnicodeCharacter{00FD}{\'y}% \DeclareUnicodeCharacter{00FE}{\th}% \DeclareUnicodeCharacter{00FF}{\"y}% % \DeclareUnicodeCharacter{0100}{\=A}% \DeclareUnicodeCharacter{0101}{\=a}% \DeclareUnicodeCharacter{0102}{\u{A}}% \DeclareUnicodeCharacter{0103}{\u{a}}% \DeclareUnicodeCharacter{0104}{\ogonek{A}}% \DeclareUnicodeCharacter{0105}{\ogonek{a}}% \DeclareUnicodeCharacter{0106}{\'C}% \DeclareUnicodeCharacter{0107}{\'c}% \DeclareUnicodeCharacter{0108}{\^C}% \DeclareUnicodeCharacter{0109}{\^c}% \DeclareUnicodeCharacter{010A}{\dotaccent{C}}% \DeclareUnicodeCharacter{010B}{\dotaccent{c}}% \DeclareUnicodeCharacter{010C}{\v{C}}% \DeclareUnicodeCharacter{010D}{\v{c}}% \DeclareUnicodeCharacter{010E}{\v{D}}% \DeclareUnicodeCharacter{010F}{d'}% % \DeclareUnicodeCharacter{0110}{\DH}% \DeclareUnicodeCharacter{0111}{\dh}% \DeclareUnicodeCharacter{0112}{\=E}% \DeclareUnicodeCharacter{0113}{\=e}% \DeclareUnicodeCharacter{0114}{\u{E}}% \DeclareUnicodeCharacter{0115}{\u{e}}% \DeclareUnicodeCharacter{0116}{\dotaccent{E}}% \DeclareUnicodeCharacter{0117}{\dotaccent{e}}% \DeclareUnicodeCharacter{0118}{\ogonek{E}}% \DeclareUnicodeCharacter{0119}{\ogonek{e}}% \DeclareUnicodeCharacter{011A}{\v{E}}% \DeclareUnicodeCharacter{011B}{\v{e}}% \DeclareUnicodeCharacter{011C}{\^G}% \DeclareUnicodeCharacter{011D}{\^g}% \DeclareUnicodeCharacter{011E}{\u{G}}% \DeclareUnicodeCharacter{011F}{\u{g}}% % \DeclareUnicodeCharacter{0120}{\dotaccent{G}}% \DeclareUnicodeCharacter{0121}{\dotaccent{g}}% \DeclareUnicodeCharacter{0122}{\cedilla{G}}% \DeclareUnicodeCharacter{0123}{\cedilla{g}}% \DeclareUnicodeCharacter{0124}{\^H}% \DeclareUnicodeCharacter{0125}{\^h}% \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}% \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}% \DeclareUnicodeCharacter{0128}{\~I}% \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}% \DeclareUnicodeCharacter{012A}{\=I}% \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}% \DeclareUnicodeCharacter{012C}{\u{I}}% \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}% \DeclareUnicodeCharacter{012E}{\ogonek{I}}% \DeclareUnicodeCharacter{012F}{\ogonek{i}}% % \DeclareUnicodeCharacter{0130}{\dotaccent{I}}% \DeclareUnicodeCharacter{0131}{\dotless{i}}% \DeclareUnicodeCharacter{0132}{IJ}% \DeclareUnicodeCharacter{0133}{ij}% \DeclareUnicodeCharacter{0134}{\^J}% \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}% \DeclareUnicodeCharacter{0136}{\cedilla{K}}% \DeclareUnicodeCharacter{0137}{\cedilla{k}}% \DeclareUnicodeCharacter{0138}{\ensuremath\kappa}% \DeclareUnicodeCharacter{0139}{\'L}% \DeclareUnicodeCharacter{013A}{\'l}% \DeclareUnicodeCharacter{013B}{\cedilla{L}}% \DeclareUnicodeCharacter{013C}{\cedilla{l}}% \DeclareUnicodeCharacter{013D}{L'}% should kern \DeclareUnicodeCharacter{013E}{l'}% should kern \DeclareUnicodeCharacter{013F}{L\U{00B7}}% % \DeclareUnicodeCharacter{0140}{l\U{00B7}}% \DeclareUnicodeCharacter{0141}{\L}% \DeclareUnicodeCharacter{0142}{\l}% \DeclareUnicodeCharacter{0143}{\'N}% \DeclareUnicodeCharacter{0144}{\'n}% \DeclareUnicodeCharacter{0145}{\cedilla{N}}% \DeclareUnicodeCharacter{0146}{\cedilla{n}}% \DeclareUnicodeCharacter{0147}{\v{N}}% \DeclareUnicodeCharacter{0148}{\v{n}}% \DeclareUnicodeCharacter{0149}{'n}% \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}% \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}% \DeclareUnicodeCharacter{014C}{\=O}% \DeclareUnicodeCharacter{014D}{\=o}% \DeclareUnicodeCharacter{014E}{\u{O}}% \DeclareUnicodeCharacter{014F}{\u{o}}% % \DeclareUnicodeCharacter{0150}{\H{O}}% \DeclareUnicodeCharacter{0151}{\H{o}}% \DeclareUnicodeCharacter{0152}{\OE}% \DeclareUnicodeCharacter{0153}{\oe}% \DeclareUnicodeCharacter{0154}{\'R}% \DeclareUnicodeCharacter{0155}{\'r}% \DeclareUnicodeCharacter{0156}{\cedilla{R}}% \DeclareUnicodeCharacter{0157}{\cedilla{r}}% \DeclareUnicodeCharacter{0158}{\v{R}}% \DeclareUnicodeCharacter{0159}{\v{r}}% \DeclareUnicodeCharacter{015A}{\'S}% \DeclareUnicodeCharacter{015B}{\'s}% \DeclareUnicodeCharacter{015C}{\^S}% \DeclareUnicodeCharacter{015D}{\^s}% \DeclareUnicodeCharacter{015E}{\cedilla{S}}% \DeclareUnicodeCharacter{015F}{\cedilla{s}}% % \DeclareUnicodeCharacter{0160}{\v{S}}% \DeclareUnicodeCharacter{0161}{\v{s}}% \DeclareUnicodeCharacter{0162}{\cedilla{T}}% \DeclareUnicodeCharacter{0163}{\cedilla{t}}% \DeclareUnicodeCharacter{0164}{\v{T}}% \DeclareUnicodeCharacter{0165}{\v{t}}% \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}% \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}% \DeclareUnicodeCharacter{0168}{\~U}% \DeclareUnicodeCharacter{0169}{\~u}% \DeclareUnicodeCharacter{016A}{\=U}% \DeclareUnicodeCharacter{016B}{\=u}% \DeclareUnicodeCharacter{016C}{\u{U}}% \DeclareUnicodeCharacter{016D}{\u{u}}% \DeclareUnicodeCharacter{016E}{\ringaccent{U}}% \DeclareUnicodeCharacter{016F}{\ringaccent{u}}% % \DeclareUnicodeCharacter{0170}{\H{U}}% \DeclareUnicodeCharacter{0171}{\H{u}}% \DeclareUnicodeCharacter{0172}{\ogonek{U}}% \DeclareUnicodeCharacter{0173}{\ogonek{u}}% \DeclareUnicodeCharacter{0174}{\^W}% \DeclareUnicodeCharacter{0175}{\^w}% \DeclareUnicodeCharacter{0176}{\^Y}% \DeclareUnicodeCharacter{0177}{\^y}% \DeclareUnicodeCharacter{0178}{\"Y}% \DeclareUnicodeCharacter{0179}{\'Z}% \DeclareUnicodeCharacter{017A}{\'z}% \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}% \DeclareUnicodeCharacter{017C}{\dotaccent{z}}% \DeclareUnicodeCharacter{017D}{\v{Z}}% \DeclareUnicodeCharacter{017E}{\v{z}}% \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}% % \DeclareUnicodeCharacter{01C4}{D\v{Z}}% \DeclareUnicodeCharacter{01C5}{D\v{z}}% \DeclareUnicodeCharacter{01C6}{d\v{z}}% \DeclareUnicodeCharacter{01C7}{LJ}% \DeclareUnicodeCharacter{01C8}{Lj}% \DeclareUnicodeCharacter{01C9}{lj}% \DeclareUnicodeCharacter{01CA}{NJ}% \DeclareUnicodeCharacter{01CB}{Nj}% \DeclareUnicodeCharacter{01CC}{nj}% \DeclareUnicodeCharacter{01CD}{\v{A}}% \DeclareUnicodeCharacter{01CE}{\v{a}}% \DeclareUnicodeCharacter{01CF}{\v{I}}% % \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}% \DeclareUnicodeCharacter{01D1}{\v{O}}% \DeclareUnicodeCharacter{01D2}{\v{o}}% \DeclareUnicodeCharacter{01D3}{\v{U}}% \DeclareUnicodeCharacter{01D4}{\v{u}}% % \DeclareUnicodeCharacter{01E2}{\={\AE}}% \DeclareUnicodeCharacter{01E3}{\={\ae}}% \DeclareUnicodeCharacter{01E6}{\v{G}}% \DeclareUnicodeCharacter{01E7}{\v{g}}% \DeclareUnicodeCharacter{01E8}{\v{K}}% \DeclareUnicodeCharacter{01E9}{\v{k}}% % \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}% \DeclareUnicodeCharacter{01F1}{DZ}% \DeclareUnicodeCharacter{01F2}{Dz}% \DeclareUnicodeCharacter{01F3}{dz}% \DeclareUnicodeCharacter{01F4}{\'G}% \DeclareUnicodeCharacter{01F5}{\'g}% \DeclareUnicodeCharacter{01F8}{\`N}% \DeclareUnicodeCharacter{01F9}{\`n}% \DeclareUnicodeCharacter{01FC}{\'{\AE}}% \DeclareUnicodeCharacter{01FD}{\'{\ae}}% \DeclareUnicodeCharacter{01FE}{\'{\O}}% \DeclareUnicodeCharacter{01FF}{\'{\o}}% % \DeclareUnicodeCharacter{021E}{\v{H}}% \DeclareUnicodeCharacter{021F}{\v{h}}% % \DeclareUnicodeCharacter{0226}{\dotaccent{A}}% \DeclareUnicodeCharacter{0227}{\dotaccent{a}}% \DeclareUnicodeCharacter{0228}{\cedilla{E}}% \DeclareUnicodeCharacter{0229}{\cedilla{e}}% \DeclareUnicodeCharacter{022E}{\dotaccent{O}}% \DeclareUnicodeCharacter{022F}{\dotaccent{o}}% % \DeclareUnicodeCharacter{0232}{\=Y}% \DeclareUnicodeCharacter{0233}{\=y}% \DeclareUnicodeCharacter{0237}{\dotless{j}}% % \DeclareUnicodeCharacter{02BC}{'}% % \DeclareUnicodeCharacter{02DB}{\ogonek{ }}% % % Greek letters upper case \DeclareUnicodeCharacter{0391}{{\it A}}% \DeclareUnicodeCharacter{0392}{{\it B}}% \DeclareUnicodeCharacter{0393}{\ensuremath{\mit\Gamma}}% \DeclareUnicodeCharacter{0394}{\ensuremath{\mit\Delta}}% \DeclareUnicodeCharacter{0395}{{\it E}}% \DeclareUnicodeCharacter{0396}{{\it Z}}% \DeclareUnicodeCharacter{0397}{{\it H}}% \DeclareUnicodeCharacter{0398}{\ensuremath{\mit\Theta}}% \DeclareUnicodeCharacter{0399}{{\it I}}% \DeclareUnicodeCharacter{039A}{{\it K}}% \DeclareUnicodeCharacter{039B}{\ensuremath{\mit\Lambda}}% \DeclareUnicodeCharacter{039C}{{\it M}}% \DeclareUnicodeCharacter{039D}{{\it N}}% \DeclareUnicodeCharacter{039E}{\ensuremath{\mit\Xi}}% \DeclareUnicodeCharacter{039F}{{\it O}}% \DeclareUnicodeCharacter{03A0}{\ensuremath{\mit\Pi}}% \DeclareUnicodeCharacter{03A1}{{\it P}}% %\DeclareUnicodeCharacter{03A2}{} % none - corresponds to final sigma \DeclareUnicodeCharacter{03A3}{\ensuremath{\mit\Sigma}}% \DeclareUnicodeCharacter{03A4}{{\it T}}% \DeclareUnicodeCharacter{03A5}{\ensuremath{\mit\Upsilon}}% \DeclareUnicodeCharacter{03A6}{\ensuremath{\mit\Phi}}% \DeclareUnicodeCharacter{03A7}{{\it X}}% \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}}% \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}}% % % Vowels with accents \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}}% \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}}% \DeclareUnicodeCharacter{03AD}{\ensuremath{\acute\epsilon}}% \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}}% \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}}% \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}}% % % Standalone accent \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}}% % % Greek letters lower case \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha}% \DeclareUnicodeCharacter{03B2}{\ensuremath\beta}% \DeclareUnicodeCharacter{03B3}{\ensuremath\gamma}% \DeclareUnicodeCharacter{03B4}{\ensuremath\delta}% \DeclareUnicodeCharacter{03B5}{\ensuremath\epsilon}% \DeclareUnicodeCharacter{03B6}{\ensuremath\zeta}% \DeclareUnicodeCharacter{03B7}{\ensuremath\eta}% \DeclareUnicodeCharacter{03B8}{\ensuremath\theta}% \DeclareUnicodeCharacter{03B9}{\ensuremath\iota}% \DeclareUnicodeCharacter{03BA}{\ensuremath\kappa}% \DeclareUnicodeCharacter{03BB}{\ensuremath\lambda}% \DeclareUnicodeCharacter{03BC}{\ensuremath\mu}% \DeclareUnicodeCharacter{03BD}{\ensuremath\nu}% \DeclareUnicodeCharacter{03BE}{\ensuremath\xi}% \DeclareUnicodeCharacter{03BF}{{\it o}}% omicron \DeclareUnicodeCharacter{03C0}{\ensuremath\pi}% \DeclareUnicodeCharacter{03C1}{\ensuremath\rho}% \DeclareUnicodeCharacter{03C2}{\ensuremath\varsigma}% \DeclareUnicodeCharacter{03C3}{\ensuremath\sigma}% \DeclareUnicodeCharacter{03C4}{\ensuremath\tau}% \DeclareUnicodeCharacter{03C5}{\ensuremath\upsilon}% \DeclareUnicodeCharacter{03C6}{\ensuremath\phi}% \DeclareUnicodeCharacter{03C7}{\ensuremath\chi}% \DeclareUnicodeCharacter{03C8}{\ensuremath\psi}% \DeclareUnicodeCharacter{03C9}{\ensuremath\omega}% % % More Greek vowels with accents \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}}% \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}}% \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}}% \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}}% \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}}% % % Variant Greek letters \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta}% \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi}% \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho}% % \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}% \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}% \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}% \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}% \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}% \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}% \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}% \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}% \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}% \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}% \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}% \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}% % \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}% \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}% % \DeclareUnicodeCharacter{1E20}{\=G}% \DeclareUnicodeCharacter{1E21}{\=g}% \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}% \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}% \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}% \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}% \DeclareUnicodeCharacter{1E26}{\"H}% \DeclareUnicodeCharacter{1E27}{\"h}% % \DeclareUnicodeCharacter{1E30}{\'K}% \DeclareUnicodeCharacter{1E31}{\'k}% \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}% \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}% \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}% \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}% \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}% \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}% \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}% \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}% \DeclareUnicodeCharacter{1E3E}{\'M}% \DeclareUnicodeCharacter{1E3F}{\'m}% % \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}% \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}% \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}% \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}% \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}% \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}% \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}% \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}% \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}% \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}% % \DeclareUnicodeCharacter{1E54}{\'P}% \DeclareUnicodeCharacter{1E55}{\'p}% \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}% \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}% \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}% \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}% \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}% \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}% \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}% \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}% % \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}% \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}% \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}% \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}% \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}% \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}% \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}% \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}% \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}% \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}% % \DeclareUnicodeCharacter{1E7C}{\~V}% \DeclareUnicodeCharacter{1E7D}{\~v}% \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}% \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}% % \DeclareUnicodeCharacter{1E80}{\`W}% \DeclareUnicodeCharacter{1E81}{\`w}% \DeclareUnicodeCharacter{1E82}{\'W}% \DeclareUnicodeCharacter{1E83}{\'w}% \DeclareUnicodeCharacter{1E84}{\"W}% \DeclareUnicodeCharacter{1E85}{\"w}% \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}% \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}% \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}% \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}% \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}% \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}% \DeclareUnicodeCharacter{1E8C}{\"X}% \DeclareUnicodeCharacter{1E8D}{\"x}% \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}% \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}% % \DeclareUnicodeCharacter{1E90}{\^Z}% \DeclareUnicodeCharacter{1E91}{\^z}% \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}% \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}% \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}% \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}% \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}% \DeclareUnicodeCharacter{1E97}{\"t}% \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}% \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}% % \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}% \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}% % \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}% \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}% \DeclareUnicodeCharacter{1EBC}{\~E}% \DeclareUnicodeCharacter{1EBD}{\~e}% % \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}% \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}% \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}% \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}% % \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}% \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}% % \DeclareUnicodeCharacter{1EF2}{\`Y}% \DeclareUnicodeCharacter{1EF3}{\`y}% \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}% % \DeclareUnicodeCharacter{1EF8}{\~Y}% \DeclareUnicodeCharacter{1EF9}{\~y}% % % Punctuation \DeclareUnicodeCharacter{2013}{--}% \DeclareUnicodeCharacter{2014}{---}% \DeclareUnicodeCharacter{2018}{\quoteleft{}}% \DeclareUnicodeCharacter{2019}{\quoteright{}}% \DeclareUnicodeCharacter{201A}{\quotesinglbase{}}% \DeclareUnicodeCharacter{201C}{\quotedblleft{}}% \DeclareUnicodeCharacter{201D}{\quotedblright{}}% \DeclareUnicodeCharacter{201E}{\quotedblbase{}}% \DeclareUnicodeCharacter{2020}{\ensuremath\dagger}% \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger}% \DeclareUnicodeCharacter{2022}{\bullet{}}% \DeclareUnicodeCharacter{202F}{\thinspace}% \DeclareUnicodeCharacter{2026}{\dots{}}% \DeclareUnicodeCharacter{2039}{\guilsinglleft{}}% \DeclareUnicodeCharacter{203A}{\guilsinglright{}}% % \DeclareUnicodeCharacter{20AC}{\euro{}}% % \DeclareUnicodeCharacter{2192}{\expansion{}}% \DeclareUnicodeCharacter{21D2}{\result{}}% % % Mathematical symbols \DeclareUnicodeCharacter{2200}{\ensuremath\forall}% \DeclareUnicodeCharacter{2203}{\ensuremath\exists}% \DeclareUnicodeCharacter{2208}{\ensuremath\in}% \DeclareUnicodeCharacter{2212}{\minus{}}% \DeclareUnicodeCharacter{2217}{\ast}% \DeclareUnicodeCharacter{221E}{\ensuremath\infty}% \DeclareUnicodeCharacter{2225}{\ensuremath\parallel}% \DeclareUnicodeCharacter{2227}{\ensuremath\wedge}% \DeclareUnicodeCharacter{2229}{\ensuremath\cap}% \DeclareUnicodeCharacter{2261}{\equiv{}}% \DeclareUnicodeCharacter{2264}{\ensuremath\leq}% \DeclareUnicodeCharacter{2265}{\ensuremath\geq}% \DeclareUnicodeCharacter{2282}{\ensuremath\subset}% \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}% % \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}% \DeclareUnicodeCharacter{2032}{\ensuremath\prime}% \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}% \DeclareUnicodeCharacter{2111}{\ensuremath\Im}% \DeclareUnicodeCharacter{2113}{\ensuremath\ell}% \DeclareUnicodeCharacter{2118}{\ensuremath\wp}% \DeclareUnicodeCharacter{211C}{\ensuremath\Re}% \DeclareUnicodeCharacter{2135}{\ensuremath\aleph}% \DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow}% \DeclareUnicodeCharacter{2191}{\ensuremath\uparrow}% \DeclareUnicodeCharacter{2193}{\ensuremath\downarrow}% \DeclareUnicodeCharacter{2194}{\ensuremath\leftrightarrow}% \DeclareUnicodeCharacter{2195}{\ensuremath\updownarrow}% \DeclareUnicodeCharacter{2196}{\ensuremath\nwarrow}% \DeclareUnicodeCharacter{2197}{\ensuremath\nearrow}% \DeclareUnicodeCharacter{2198}{\ensuremath\searrow}% \DeclareUnicodeCharacter{2199}{\ensuremath\swarrow}% \DeclareUnicodeCharacter{21A6}{\ensuremath\mapsto}% \DeclareUnicodeCharacter{21A9}{\ensuremath\hookleftarrow}% \DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow}% \DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup}% \DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown}% \DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup}% \DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown}% \DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons}% \DeclareUnicodeCharacter{21D0}{\ensuremath\Leftarrow}% \DeclareUnicodeCharacter{21D1}{\ensuremath\Uparrow}% \DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow}% \DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow}% \DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow}% \DeclareUnicodeCharacter{2202}{\ensuremath\partial}% \DeclareUnicodeCharacter{2205}{\ensuremath\emptyset}% \DeclareUnicodeCharacter{2207}{\ensuremath\nabla}% \DeclareUnicodeCharacter{2209}{\ensuremath\notin}% \DeclareUnicodeCharacter{220B}{\ensuremath\owns}% \DeclareUnicodeCharacter{220F}{\ensuremath\prod}% \DeclareUnicodeCharacter{2210}{\ensuremath\coprod}% \DeclareUnicodeCharacter{2211}{\ensuremath\sum}% \DeclareUnicodeCharacter{2213}{\ensuremath\mp}% \DeclareUnicodeCharacter{2218}{\ensuremath\circ}% \DeclareUnicodeCharacter{221A}{\ensuremath\surd}% \DeclareUnicodeCharacter{221D}{\ensuremath\propto}% \DeclareUnicodeCharacter{2220}{\ensuremath\angle}% \DeclareUnicodeCharacter{2223}{\ensuremath\mid}% \DeclareUnicodeCharacter{2228}{\ensuremath\vee}% \DeclareUnicodeCharacter{222A}{\ensuremath\cup}% \DeclareUnicodeCharacter{222B}{\ensuremath\smallint}% \DeclareUnicodeCharacter{222E}{\ensuremath\oint}% \DeclareUnicodeCharacter{223C}{\ensuremath\sim}% \DeclareUnicodeCharacter{2240}{\ensuremath\wr}% \DeclareUnicodeCharacter{2243}{\ensuremath\simeq}% \DeclareUnicodeCharacter{2245}{\ensuremath\cong}% \DeclareUnicodeCharacter{2248}{\ensuremath\approx}% \DeclareUnicodeCharacter{224D}{\ensuremath\asymp}% \DeclareUnicodeCharacter{2250}{\ensuremath\doteq}% \DeclareUnicodeCharacter{2260}{\ensuremath\neq}% \DeclareUnicodeCharacter{226A}{\ensuremath\ll}% \DeclareUnicodeCharacter{226B}{\ensuremath\gg}% \DeclareUnicodeCharacter{227A}{\ensuremath\prec}% \DeclareUnicodeCharacter{227B}{\ensuremath\succ}% \DeclareUnicodeCharacter{2283}{\ensuremath\supset}% \DeclareUnicodeCharacter{2286}{\ensuremath\subseteq}% \DeclareUnicodeCharacter{228E}{\ensuremath\uplus}% \DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq}% \DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq}% \DeclareUnicodeCharacter{2293}{\ensuremath\sqcap}% \DeclareUnicodeCharacter{2294}{\ensuremath\sqcup}% \DeclareUnicodeCharacter{2295}{\ensuremath\oplus}% \DeclareUnicodeCharacter{2296}{\ensuremath\ominus}% \DeclareUnicodeCharacter{2297}{\ensuremath\otimes}% \DeclareUnicodeCharacter{2298}{\ensuremath\oslash}% \DeclareUnicodeCharacter{2299}{\ensuremath\odot}% \DeclareUnicodeCharacter{22A2}{\ensuremath\vdash}% \DeclareUnicodeCharacter{22A3}{\ensuremath\dashv}% \DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop}% \DeclareUnicodeCharacter{22A5}{\ensuremath\bot}% \DeclareUnicodeCharacter{22A8}{\ensuremath\models}% \DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge}% \DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee}% \DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap}% \DeclareUnicodeCharacter{22C3}{\ensuremath\bigcup}% \DeclareUnicodeCharacter{22C4}{\ensuremath\diamond}% \DeclareUnicodeCharacter{22C5}{\ensuremath\cdot}% \DeclareUnicodeCharacter{22C6}{\ensuremath\star}% \DeclareUnicodeCharacter{22C8}{\ensuremath\bowtie}% \DeclareUnicodeCharacter{2308}{\ensuremath\lceil}% \DeclareUnicodeCharacter{2309}{\ensuremath\rceil}% \DeclareUnicodeCharacter{230A}{\ensuremath\lfloor}% \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor}% \DeclareUnicodeCharacter{2322}{\ensuremath\frown}% \DeclareUnicodeCharacter{2323}{\ensuremath\smile}% % \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}% \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}% \DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown}% \DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft}% \DeclareUnicodeCharacter{25C7}{\ensuremath\diamond}% \DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit}% \DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit}% \DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit}% \DeclareUnicodeCharacter{2663}{\ensuremath\clubsuit}% \DeclareUnicodeCharacter{266D}{\ensuremath\flat}% \DeclareUnicodeCharacter{266E}{\ensuremath\natural}% \DeclareUnicodeCharacter{266F}{\ensuremath\sharp}% \DeclareUnicodeCharacter{26AA}{\ensuremath\bigcirc}% \DeclareUnicodeCharacter{27B9}{\ensuremath\rangle}% \DeclareUnicodeCharacter{27C2}{\ensuremath\perp}% \DeclareUnicodeCharacter{27E8}{\ensuremath\langle}% \DeclareUnicodeCharacter{27F5}{\ensuremath\longleftarrow}% \DeclareUnicodeCharacter{27F6}{\ensuremath\longrightarrow}% \DeclareUnicodeCharacter{27F7}{\ensuremath\longleftrightarrow}% \DeclareUnicodeCharacter{27FC}{\ensuremath\longmapsto}% \DeclareUnicodeCharacter{29F5}{\ensuremath\setminus}% \DeclareUnicodeCharacter{2A00}{\ensuremath\bigodot}% \DeclareUnicodeCharacter{2A01}{\ensuremath\bigoplus}% \DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes}% \DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus}% \DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup}% \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}% \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}% \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}% % \global\mathchardef\checkmark="1370% actually the square root sign \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}% }% end of \unicodechardefs % UTF-8 byte sequence (pdfTeX) definitions (replacing and @U command) % It makes the setting that replace UTF-8 byte sequence. \def\utfeightchardefs{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterUTFviii \unicodechardefs } % Whether the active definitions of non-ASCII characters expand to % non-active tokens with the same character code. This is used to % write characters literally, instead of using active definitions for % printing the correct glyphs. \newif\ifpassthroughchars \passthroughcharsfalse % For native Unicode handling (XeTeX and LuaTeX), % provide a definition macro to replace/pass-through a Unicode character % \def\DeclareUnicodeCharacterNative#1#2{% \catcode"#1=\active \def\dodeclareunicodecharacternative##1##2##3{% \begingroup \uccode`\~="##2\relax \uppercase{\gdef~}{% \ifpassthroughchars ##1% \else ##3% \fi } \endgroup } \begingroup \uccode`\.="#1\relax \uppercase{\def\UTFNativeTmp{.}}% \expandafter\dodeclareunicodecharacternative\UTFNativeTmp{#1}{#2}% \endgroup } % Native Unicode handling (XeTeX and LuaTeX) character replacing definition. % It activates the setting that replaces Unicode characters. \def\nativeunicodechardefs{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative \unicodechardefs } % For native Unicode handling (XeTeX and LuaTeX), % make the character token expand % to the sequences given in \unicodechardefs for printing. \def\DeclareUnicodeCharacterNativeAtU#1#2{% \def\UTFAtUTmp{#2} \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp } % @U command definitions for native Unicode handling (XeTeX and LuaTeX). \def\nativeunicodechardefsatu{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU \unicodechardefs } % US-ASCII character definitions. \def\asciichardefs{% nothing need be done \relax } % Define all Unicode characters we know about. This makes UTF-8 the default % input encoding and allows @U to work. \iftxinativeunicodecapable \nativeunicodechardefsatu \else \utfeightchardefs \fi \message{formatting,} \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be very finicky about underfull hboxes, either. \hbadness = 6666 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. We call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = .15\hsize \fi } % Parameters in order: 1) textheight; 2) textwidth; % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; % 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. % \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 2\topandbottommargin \txipageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \txipagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax % if we don't reset these, they will remain at "1 true in" of % whatever layout pdftex was dumped with. \pdfhorigin = 1 true in \pdfvorigin = 1 true in \else \ifx\XeTeXrevision\thisisundefined \special{papersize=#8,#7}% \else \pdfpageheight #7\relax \pdfpagewidth #8\relax % XeTeX does not have \pdfhorigin and \pdfvorigin. \fi \fi % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \contentsrightmargin = 0pt \defbodyindent = .5cm }} % Use @smallerbook to reset parameters for 6x9 trim size. % (Just testing, parameters still in flux.) \def\smallerbook{{\globaldefs = 1 \parskip = 1.5pt plus 1pt \textleading = 12pt % \internalpagesizes{7.4in}{4.8in}% {-.2in}{-.4in}% {0pt}{14pt}% {9in}{6in}% % \lispnarrowing = 0.25in \tolerance = 700 \contentsrightmargin = 0pt \defbodyindent = .4cm }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % Double-side printing via postscript on Laserjet 4050 % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. % To change the settings for a different printer or situation, adjust % \normaloffset until the front-side and back-side texts align. Then % do the same for \bindingoffset. You can set these for testing in % your texinfo source file like this: % @tex % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% % \tolerance = 700 \contentsrightmargin = 0pt \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. % From romildo@urano.iceb.ufop.br, 2 July 2000. % He also recommends making @example and @lisp be small. \def\afivepaper{{\globaldefs = 1 \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % \internalpagesizes{160mm}{120mm}% {\voffset}{\hoffset}% {\bindingoffset}{8pt}% {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm }} % A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper \internalpagesizes{237mm}{150mm}% {\voffset}{4.6mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% % % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} % Use @afourwide to print on A4 paper in landscape format. \def\afourwide{{\globaldefs = 1 \afourpaper \internalpagesizes{241mm}{165mm}% {\voffset}{-2.95mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% \globaldefs = 0 }} \def\bsixpaper{{\globaldefs = 1 \afourpaper \internalpagesizes{140mm}{100mm}% {-6.35mm}{-12.7mm}% {\bindingoffset}{14pt}% {176mm}{125mm}% \let\SETdispenvsize=\smallword \lispnarrowing = 0.2in \globaldefs = 0 }} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % \parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 % \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % \dimen0 = #1\relax \advance\dimen0 by 2.5in % default 1in margin above heading line % and 1.5in to include heading, footing and % bottom margin % \dimen2 = \hsize \advance\dimen2 by 2in % default to 1 inch margin on each side % \internalpagesizes{#1}{\hsize}% {\voffset}{\normaloffset}% {\bindingoffset}{44pt}% {\dimen0}{\dimen2}% }} % Set default to letter. % \letterpaper % Default value of \hfuzz, for suppressing warnings about overfull hboxes. \hfuzz = 1pt \message{and turning on texinfo input format.} \def^^L{\par} % remove \outer, so ^L can appear in an @comment % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \def\normaldoublequote{"} \catcode`\$=\other \def\normaldollar{$}%$ font-lock fix \catcode`\+=\other \def\normalplus{+} \catcode`\<=\other \def\normalless{<} \catcode`\>=\other \def\normalgreater{>} \catcode`\^=\other \def\normalcaret{^} \catcode`\_=\other \def\normalunderscore{_} \catcode`\|=\other \def\normalverticalbar{|} \catcode`\~=\other \def\normaltilde{~} % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print % otherwise. Since all the Computer Modern typewriter fonts have zero % interword stretch (and shrink), and it is reasonable to expect all % typewriter fonts to have this, we can check that font parameter. % \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} % Same as above, but check for italic font. Actually this also catches % non-italic slanted fonts since it is impossible to distinguish them from % italic fonts. But since this is only used by $ and it uses \sl anyway % this is not a problem. \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} % Set catcodes for Texinfo file % Active characters for printing the wanted glyph. % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. % \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote \catcode`\~=\active \def\activetilde{{\tt\char126}} \let~ = \activetilde \chardef\hatchar=`\^ \catcode`\^=\active \def\activehat{{\tt \hatchar}} \let^ = \activehat \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \let\realunder=_ \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def\activeless{{\tt \less}}\let< = \activeless \chardef \gtr=`\> \catcode`\>=\active \def\activegtr{{\tt \gtr}}\let> = \activegtr \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix \catcode`\-=\active \let-=\normaldash % used for headline/footline in the output routine, in case the page % breaks in the middle of an @tex block. \def\texinfochars{% \let< = \activeless \let> = \activegtr \let~ = \activetilde \let^ = \activehat \setregularquotes \let\b = \strong \let\i = \smartitalic % in principle, all other definitions in \tex have to be undone too. } % Used sometimes to turn off (effectively) the active characters even after % parsing them. \def\turnoffactive{% \normalturnoffactive \otherbackslash } \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, % as in \char`\\. \global\chardef\backslashcurfont=`\\ % \realbackslash is an actual character `\' with catcode other. {\catcode`\\=\other @gdef@realbackslash{\}} % In Texinfo, backslash is an active character; it prints the backslash % in fixed width font. \catcode`\\=\active % @ for escape char from now on. % Print a typewriter backslash. For math mode, we can't simply use % \backslashcurfont: the story here is that in math mode, the \char % of \backslashcurfont ends up printing the roman \ from the math symbol % font (because \char in math mode uses the \mathcode, and plain.tex % sets \mathcode`\\="026E). Hence we use an explicit \mathchar, % which is the decimal equivalent of "715c (class 7, e.g., use \fam; % ignored family value; char position "5C). We can't use " for the % usual hex value because it has already been made active. @def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} @let@backslashchar = @ttbackslash % @backslashchar{} is for user documents. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. @gdef@otherbackslash{@let\=@realbackslash} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. % {@catcode`- = @active @gdef@normalturnoffactive{% @passthroughcharstrue @let-=@normaldash @let"=@normaldoublequote @let$=@normaldollar %$ font-lock fix @let+=@normalplus @let<=@normalless @let>=@normalgreater @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let~=@normaltilde @let\=@ttbackslash @setregularquotes @unsepspaces } } % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have @fixbackslash turn them back on. @catcode`+=@other @catcode`@_=@other % \enablebackslashhack - allow file to begin `\input texinfo' % % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. % If the file did not have a `\input texinfo', then it is turned off after % the first line; otherwise the first `\' in the file would cause an error. % This is used on the very last line of this file, texinfo.tex. % We also use @c to call @fixbackslash, in case ends of lines are hidden. { @catcode`@^=7 @catcode`@^^M=13@gdef@enablebackslashhack{% @global@let\ = @eatinput% @catcode`@^^M=13% @def@c{@fixbackslash@c}% % Definition for the newline at the end of this file. @def ^^M{@let^^M@secondlinenl}% % Definition for a newline in the main Texinfo file. @gdef @secondlinenl{@fixbackslash}% % In case the first line has a whole-line command on it @let@originalparsearg@parsearg @def@parsearg{@fixbackslash@originalparsearg} }} {@catcode`@^=7 @catcode`@^^M=13% @gdef@eatinput input texinfo#1^^M{@fixbackslash}} % Emergency active definition of newline, in case an active newline token % appears by mistake. {@catcode`@^=7 @catcode13=13% @gdef@enableemergencynewline{% @gdef^^M{% @par% %<warning: active newline>@par% }}} @gdef@fixbackslash{% @ifx\@eatinput @let\ = @ttbackslash @fi @catcode13=5 % regular end of line @enableemergencynewline @let@c=@comment @let@parsearg@originalparsearg % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. @catcode`+=@active @catcode`@_=@active % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. This macro, @fixbackslash, gets % called at the beginning of every Texinfo file. Not opening texinfo.cnf % directly in this file, texinfo.tex, makes it possible to make a format % file for Texinfo. % @openin 1 texinfo.cnf @ifeof 1 @else @input texinfo.cnf @fi @closein 1 } % Say @foo, not \foo, in error messages. @escapechar = `@@ % These (along with & and #) are made active for url-breaking, so need % active definitions as the normal characters. @def@normaldot{.} @def@normalquest{?} @def@normalslash{/} % These look ok in all fonts, so just make them not special. % @hashchar{} gets its own user-level command, because of #line. @catcode`@& = @other @def@normalamp{&} @catcode`@# = @other @def@normalhash{#} @catcode`@% = @other @def@normalpercent{%} @let @hashchar = @normalhash @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we @c don't make ` and ' active, @code will not get them as active chars. @c Do this last of all since we use ` in the previous @catcode assignments. @catcode`@'=@active @catcode`@`=@active @setregularquotes @c Local variables: @c eval: (add-hook 'before-save-hook 'time-stamp) @c page-delimiter: "^\\\\message\\|emacs-page" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: @c vim:sw=2: @enablebackslashhack ������������������������������������������a2ps-4.15.5/build-aux/update-ogonkify.sh������������������������������������������������������������0000754�0000000�0000000�00000002775�14235572622�014722� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh if test $# != 2; then echo "Usage: $0 SOURCE DESTINATION" echo "Update the directory DESTINATION with the content of SOURCE." echo "SOURCE is destroyed." exit 1 fi srcdir=$1 dstdir=$2 if test ! -d $srcdir || test ! -d $dstdir; then "$srcdir or $dstdir does not exist" exit 1 fi # Some of the files should just be ignored ( cd $srcdir rm INSTALL clean config instogonki distribution test.html test makecomp cd doc rm clean makedoc ogonkify.man ogonkify.info ) # Update all the AFM files for i in `cd $srcdir && echo *.afm` do if test ! -r $dstdir/$i; then echo "The file $i is new" fi mv $srcdir/$i $dstdir/$i done # Install auxiliary files for i in compose.ps allchars.ps fontname.dat helper.ps README VERSION do if test ! -r $dstdir/$i; then echo "The file $i is new" fi mv $srcdir/$i $dstdir/$i done # composeglyphs needs PERL cat $srcdir/composeglyphs | sed -e 's|/usr/local/bin/perl|@PERL@|' > $dstdir/composeglyphs.in rm $srcdir/composeglyphs # Juliusz does not seem to want to change IBM fonts access in ogonkify cat $srcdir/ogonkify.in | sed -e 's|$IBMFONTDIR="@IBMFONTDIR@"|$IBMFONTS="@IBMFONTS@"|' \ -e 's|<$IBMFONTDIR/@IBMFONTS@>|<$IBMFONTS>|' > $dstdir/ogonkify.in.in rm $srcdir/ogonkify.in # The documentation for i in `cd $srcdir && echo doc/*` do if test ! -r $dstdir/$i; then echo "The file $i is new" fi mv $srcdir/$i $dstdir/$i done # At this point $srcdir should be empty. rmdir $srcdir/doc rmdir $srcdir echo "$dstdir updated." exit 0 ���a2ps-4.15.5/build-aux/useless-if-before-free��������������������������������������������������������0000754�0000000�0000000�00000017016�14374751113�015432� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh #! -*-perl-*- # Detect instances of "if (p) free (p);". # Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces. # Copyright (C) 2008-2023 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # Written by Jim Meyering # This is a prologue that allows to run a perl script as an executable # on systems that are compliant to a POSIX version before POSIX:2017. # On such systems, the usual invocation of an executable through execlp() # or execvp() fails with ENOEXEC if it is a script that does not start # with a #! line. The script interpreter mentioned in the #! line has # to be /bin/sh, because on GuixSD systems that is the only program that # has a fixed file name. The second line is essential for perl and is # also useful for editing this file in Emacs. The next two lines below # are valid code in both sh and perl. When executed by sh, they re-execute # the script through the perl program found in $PATH. The '-x' option # is essential as well; without it, perl would re-execute the script # through /bin/sh. When executed by perl, the next two lines are a no-op. eval 'exec perl -wSx "$0" "$@"' if 0; my $VERSION = '2022-01-27 18:51'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. my $copyright_year = '2022'; use strict; use warnings; use Getopt::Long; (my $ME = $0) =~ s|.*/||; # use File::Coda; # https://meyering.net/code/Coda/ END { defined fileno STDOUT or return; close STDOUT and return; warn "$ME: failed to close standard output: $!\n"; $? ||= 1; } sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { print $STREAM <<EOF; Usage: $ME [OPTIONS] FILE... Detect any instance in FILE of a useless "if" test before a free call, e.g., "if (p) free (p);". Any such test may be safely removed without affecting the semantics of the C code in FILE. Use --name=FOO --name=BAR to also detect free-like functions named FOO and BAR. OPTIONS: --list print only the name of each matching FILE (\\0-terminated) --name=N add name N to the list of \'free\'-like functions to detect; may be repeated --help display this help and exit --version output version information and exit Exit status: 0 one or more matches 1 no match 2 an error EXAMPLE: For example, this command prints all removable "if" tests before "free" and "kfree" calls in the linux kernel sources: git ls-files -z |xargs -0 $ME --name=kfree EOF } exit $exit_code; } sub is_NULL ($) { my ($expr) = @_; return ($expr eq 'NULL' || $expr eq '0'); } { sub EXIT_MATCH {0} sub EXIT_NO_MATCH {1} sub EXIT_ERROR {2} my $err = EXIT_NO_MATCH; my $list; my @name = qw(free); GetOptions ( help => sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; print "Copyright (C) $copyright_year Free Software Foundation, Inc.\n"; print "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n" . "This is free software: you are free to change and redistribute it.\n" . "There is NO WARRANTY, to the extent permitted by law.\n"; print "\n"; my $author = "Jim Meyering"; print "Written by $author.\n"; exit }, list => \$list, 'name=s@' => \@name, ) or usage 1; # Make sure we have the right number of non-option arguments. # Always tell the user why we fail. @ARGV < 1 and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR; my $or = join '|', @name; my $regexp = qr/(?:$or)/; # Set the input record separator. # Note: this makes it impractical to print line numbers. $/ = '"'; my $found_match = 0; FILE: foreach my $file (@ARGV) { open FH, '<', $file or (warn "$ME: can't open '$file' for reading: $!\n"), $err = EXIT_ERROR, next; while (defined (my $line = <FH>)) { # Skip non-matching lines early to save time $line =~ /\bif\b/ or next; while ($line =~ /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\) # 1 2 3 (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;| \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg) { my $all = $1; my ($lhs, $rhs) = ($2, $3); my ($free_opnd, $braced_free_opnd) = ($4, $5); my $non_NULL; if (!defined $rhs) { $non_NULL = $lhs } elsif (is_NULL $rhs) { $non_NULL = $lhs } elsif (is_NULL $lhs) { $non_NULL = $rhs } else { next } # Compare the non-NULL part of the "if" expression and the # free'd expression, without regard to white space. $non_NULL =~ tr/ \t//d; my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd; $e2 =~ tr/ \t//d; if ($non_NULL eq $e2) { $found_match = 1; $list and (print "$file\0"), next FILE; print "$file: $all\n"; } } } } continue { close FH; } $found_match && $err == EXIT_NO_MATCH and $err = EXIT_MATCH; exit $err; } my $foo = <<'EOF'; # The above is to *find* them. # This adjusts them, removing the unnecessary "if (p)" part. # FIXME: do something like this as an option (doesn't do braces): free=xfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0x3b -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s' # Use the following to remove redundant uses of kfree inside braces. # Note that -0777 puts perl in slurp-whole-file mode; # but we have plenty of memory, these days... free=kfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0777 -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms' Be careful that the result of the above transformation is valid. If the matched string is followed by "else", then obviously, it won't be. When modifying files, refuse to process anything other than a regular file. EOF ## Local Variables: ## mode: perl ## indent-tabs-mode: nil ## eval: (add-hook 'before-save-hook 'time-stamp) ## time-stamp-line-limit: 50 ## time-stamp-start: "my $VERSION = '" ## time-stamp-format: "%:y-%02m-%02d %02H:%02M" ## time-stamp-time-zone: "UTC0" ## time-stamp-end: "'; # UTC" ## End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/vc-list-files�����������������������������������������������������������������0000754�0000000�0000000�00000007367�14374751113�013665� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # List version-controlled file names. # Print a version string. scriptversion=2018-03-07.03; # UTC # Copyright (C) 2006-2023 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # List the specified version-controlled files. # With no argument, list them all. With a single DIRECTORY argument, # list the version-controlled files in that directory. # If there's an argument, it must be a single, "."-relative directory name. # cvsu is part of the cvsutils package: https://www.red-bean.com/cvsutils/ postprocess= case $1 in --help) cat <<EOF Usage: $0 [-C SRCDIR] [DIR...] Output a list of version-controlled files in DIR (default .), relative to SRCDIR (default .). SRCDIR must be the top directory of a checkout. Options: --help print this help, then exit --version print version number, then exit -C SRCDIR change directory to SRCDIR before generating list Report bugs and patches to <bug-gnulib@gnu.org>. EOF exit ;; --version) year=`echo "$scriptversion" | sed 's/[^0-9].*//'` cat <<EOF vc-list-files $scriptversion Copyright (C) $year Free Software Foundation, Inc, License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit ;; -C) test "$2" = . || postprocess="| sed 's|^|$2/|'" cd "$2" || exit 1 shift; shift ;; esac test $# = 0 && set . for dir do if test -d .git || test -f .git; then test "x$dir" = x. \ && dir= sed_esc= \ || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; } # Ignore git symlinks - either they point into the tree, in which case # we don't need to visit the target twice, or they point somewhere # else (often into a submodule), in which case the content does not # belong to this package. eval exec git ls-tree -r 'HEAD:"$dir"' \ \| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess elif test -d .hg; then eval exec hg locate '"$dir/*"' $postprocess elif test -d .bzr; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" eval exec bzr ls -R --versioned '"$dir"' $postprocess elif test -d CVS; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" if test -x build-aux/cvsu; then eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess elif (cvsu --help) >/dev/null 2>&1; then eval cvsu --find --types=AFGM '"$dir"' $postprocess else eval awk -F/ \''{ \ if (!$1 && $3 !~ /^-/) { \ f=FILENAME; \ if (f ~ /CVS\/Entries$/) \ f = substr(f, 1, length(f)-11); \ print f $2; \ }}'\'' \ `find "$dir" -name Entries -print` /dev/null' $postprocess fi elif test -d .svn; then eval exec svn list -R '"$dir"' $postprocess else echo "$0: Failed to determine type of version control used in `pwd`" 1>&2 exit 1 fi done # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/x-to-1.in���������������������������������������������������������������������0000644�0000000�0000000�00000011112�14374751113�012613� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # # Copyright (C) 2001-2023 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # This program creates a program's manual from the .x skeleton and its --help # output. # # Usage: x-to-1 [OPTIONS] PERL HELP2MAN [HELP2MAN-OPTIONS] EXECUTABLE PROGRAM.x PROGRAM.1 # where # # PERL The file name of the perl program. # HELP2MAN Either the file name of the help2man perl script, or a complete # command such as "$PERL -w -- help2man". # HELP2MAN-OPTIONS Options to pass to the help2man perl script. # EXECUTABLE The file name of the program to invoke with --help. # PROGRAM The name of the program. # PROGRAM.x The .x skeleton is a file containing manual page text that is # not part of the --help output. It is passed to help2man via # its --include option. Its format is described in the help2man # documentation. # PROGRAM.1 The output file, a manual page in mandoc format. # # Options: # --update Don't overwrite the output if nothing would change. # # Configure-time prerequisites: # # PERL Can be set through # ac_aux_dir_abs=`cd $ac_aux_dir && pwd` # AC_PATH_PROG([PERL], [perl], [$ac_aux_dir_abs/missing perl]) # or, alternatively, by the Gnulib 'perl' module. # # CROSS_COMPILING Can be set through # CROSS_COMPILING=$cross_compiling # AC_SUBST([CROSS_COMPILING]) # The variable 'cross_compiling' is set by AC_PROG_CC. update= while true; do case "$1" in --update) update=yes; shift;; *) break;; esac done if test $# -lt 5; then echo "Usage: x-to-1 [OPTIONS] PERL HELP2MAN [HELP2MAN-OPTIONS] executable program.x program.1" 1>&2 exit 1 fi # In order to construct a command that invokes HELP2MAN [HELP2MAN-OPTIONS] ... # we need 'eval'. command_for_print= command_for_eval= # Protecting special characters, hiding them from 'eval': # Double each backslash. sed_protect_1='s/\\/\\\\/g' # Escape each dollar, backquote, double-quote. sed_protect_2a='s/\$/\\$/g' sed_protect_2b='s/`/\\`/g' sed_protect_2c='s/"/\\"/g' # Add double-quotes at the beginning and end of the word. sed_protect_3a='1s/^/"/' sed_protect_3b='$s/$/"/' func_add_word_to_command () { command_for_print="${command_for_print:+$command_for_print }$1" word_protected=`echo "$1" | sed -e "$sed_protect_1" -e "$sed_protect_2a" -e "$sed_protect_2b" -e "$sed_protect_2c" -e "$sed_protect_3a" -e "$sed_protect_3b"` command_for_eval="${command_for_eval:+$command_for_eval }$word_protected" } PERL="$1"; shift HELP2MAN="$1"; shift # Accommodate both possible forms of the HELP2MAN argument. case "$HELP2MAN" in "$PERL "*) ;; *) HELP2MAN="$PERL $HELP2MAN" ;; esac # Do word-splitting of $HELP2MAN, but carefully. for word in $HELP2MAN; do func_add_word_to_command "$word" done # Now grok the HELP2MAN-OPTIONS. while test $# -gt 3; do arg="$1"; shift func_add_word_to_command "$arg" done # Grok the final arguments. executable="$1" aux="$2" output="$3" progname=`basename $aux .x` # configure determined whether perl exists. case "$PERL" in *"/missing perl") perlok=no ;; *) # Determine whether all the perl modules that help2man needs are installed. if $HELP2MAN --help >/dev/null 2>/dev/null; then perlok=yes else perlok=no fi ;; esac if test @CROSS_COMPILING@ = no && test -f $executable && test $perlok = yes; then echo "Updating man page $output" func_add_word_to_command "--include=$aux" func_add_word_to_command "$executable" echo "$command_for_print > $output" rm -f t-$progname.1 eval "$command_for_eval" > t-$progname.1 || exit 1 if test -n "$update"; then # In --update mode, don't overwrite the output if nothing would change. if cmp t-$progname.1 $output >/dev/null 2>&1; then rm -f t-$progname.1 else mv t-$progname.1 $output fi else mv t-$progname.1 $output fi else echo "WARNING: The man page $output cannot be updated yet." fi ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/build-aux/ylwrap������������������������������������������������������������������������0000755�0000000�0000000�00000015314�14215102164�012500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # ylwrap - wrapper for lex/yacc invocations. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1996-2021 Free Software Foundation, Inc. # # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to <bug-automake@gnu.org> or send patches to # <automake-patches@gnu.org>. get_dirname () { case $1 in */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; # Otherwise, we want the empty string (not "."). esac } # guard FILE # ---------- # The CPP macro used to guard inclusion of FILE. guard () { printf '%s\n' "$1" \ | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ -e 's/__*/_/g' } # quote_for_sed [STRING] # ---------------------- # Return STRING (or stdin) quoted to be used as a sed pattern. quote_for_sed () { case $# in 0) cat;; 1) printf '%s\n' "$1";; esac \ | sed -e 's|[][\\.*]|\\&|g' } case "$1" in '') echo "$0: No files given. Try '$0 --help' for more information." 1>&2 exit 1 ;; --basedir) basedir=$2 shift 2 ;; -h|--h*) cat <<\EOF Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... Wrapper for lex/yacc invocations, renaming files as desired. INPUT is the input file OUTPUT is one file PROG generates DESIRED is the file we actually want instead of OUTPUT PROGRAM is program to run ARGS are passed to PROG Any number of OUTPUT,DESIRED pairs may be used. Report bugs to <bug-automake@gnu.org>. EOF exit $? ;; -v|--v*) echo "ylwrap $scriptversion" exit $? ;; esac # The input. input=$1 shift # We'll later need for a correct munging of "#line" directives. input_sub_rx=`get_dirname "$input" | quote_for_sed` case $input in [\\/]* | ?:[\\/]*) # Absolute path; do nothing. ;; *) # Relative path. Make it absolute. input=`pwd`/$input ;; esac input_rx=`get_dirname "$input" | quote_for_sed` # Since DOS filename conventions don't allow two dots, # the DOS version of Bison writes out y_tab.c instead of y.tab.c # and y_tab.h instead of y.tab.h. Test to see if this is the case. y_tab_nodot=false if test -f y_tab.c || test -f y_tab.h; then y_tab_nodot=true fi # The parser itself, the first file, is the destination of the .y.c # rule in the Makefile. parser=$1 # A sed program to s/FROM/TO/g for all the FROM/TO so that, for # instance, we rename #include "y.tab.h" into #include "parse.h" # during the conversion from y.tab.c to parse.c. sed_fix_filenames= # Also rename header guards, as Bison 2.7 for instance uses its header # guard in its implementation file. sed_fix_header_guards= while test $# -ne 0; do if test x"$1" = x"--"; then shift break fi from=$1 # Handle y_tab.c and y_tab.h output by DOS if $y_tab_nodot; then case $from in "y.tab.c") from=y_tab.c;; "y.tab.h") from=y_tab.h;; esac fi shift to=$1 shift sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" done # The program to run. prog=$1 shift # Make any relative path in $prog absolute. case $prog in [\\/]* | ?:[\\/]*) ;; *[\\/]*) prog=`pwd`/$prog ;; esac dirname=ylwrap$$ do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 mkdir $dirname || exit 1 cd $dirname case $# in 0) "$prog" "$input" ;; *) "$prog" "$@" "$input" ;; esac ret=$? if test $ret -eq 0; then for from in * do to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` if test -f "$from"; then # If $2 is an absolute path name, then just use that, # otherwise prepend '../'. case $to in [\\/]* | ?:[\\/]*) target=$to;; *) target=../$to;; esac # Do not overwrite unchanged header files to avoid useless # recompilations. Always update the parser itself: it is the # destination of the .y.c rule in the Makefile. Divert the # output of all other files to a temporary file so we can # compare them to existing versions. if test $from != $parser; then realtarget=$target target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` fi # Munge "#line" or "#" directives. Don't let the resulting # debug information point at an absolute srcdir. Use the real # output file name, not yy.lex.c for instance. Adjust the # include guards too. sed -e "/^#/!b" \ -e "s|$input_rx|$input_sub_rx|" \ -e "$sed_fix_filenames" \ -e "$sed_fix_header_guards" \ "$from" >"$target" || ret=$? # Check whether files must be updated. if test "$from" != "$parser"; then if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then echo "$to is unchanged" rm -f "$target" else echo "updating $to" mv -f "$target" "$realtarget" fi fi else # A missing file is only an error for the parser. This is a # blatant hack to let us support using "yacc -d". If -d is not # specified, don't fail when the header file is "missing". if test "$from" = "$parser"; then ret=1 fi fi done fi # Remove the directory. cd .. rm -rf $dirname exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/config.h.in�����������������������������������������������������������������������������0000644�0000000�0000000�00000205534�14445132153�011400� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to the number of bits in type 'ptrdiff_t'. */ #undef BITSIZEOF_PTRDIFF_T /* Define to the number of bits in type 'sig_atomic_t'. */ #undef BITSIZEOF_SIG_ATOMIC_T /* Define to the number of bits in type 'size_t'. */ #undef BITSIZEOF_SIZE_T /* Define to the number of bits in type 'wchar_t'. */ #undef BITSIZEOF_WCHAR_T /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T /* Define to 1 if using 'alloca.c'. */ #undef C_ALLOCA /* The char used to separate component of a path */ #undef DIRECTORY_SEPARATOR /* the name of the file descriptor member of DIR */ #undef DIR_FD_MEMBER_NAME #ifdef DIR_FD_MEMBER_NAME # define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) #else # define DIR_TO_FD(Dir_p) -1 #endif /* Define to 1 if // is a file system root distinct from /. */ #undef DOUBLE_SLASH_IS_DISTINCT_ROOT /* Define if struct dirent has a member d_ino that actually works. */ #undef D_INO_IN_DIRENT /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define this to 1 if F_DUPFD behavior does not match POSIX */ #undef FCNTL_DUPFD_BUGGY /* Define to 1 if realpath() can malloc memory, always gives an absolute path, and handles a trailing slash correctly. */ #undef FUNC_REALPATH_NEARLY_WORKS /* Define to 1 if realpath() can malloc memory, always gives an absolute path, and handles leading slashes and a trailing slash correctly. */ #undef FUNC_REALPATH_WORKS /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module canonicalize-lgpl shall be considered present. */ #undef GNULIB_CANONICALIZE_LGPL /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module dirname shall be considered present. */ #undef GNULIB_DIRNAME /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fcntl-safer shall be considered present. */ #undef GNULIB_FCNTL_SAFER /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fdopendir shall be considered present. */ #undef GNULIB_FDOPENDIR /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fd-safer-flag shall be considered present. */ #undef GNULIB_FD_SAFER_FLAG /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module filenamecat shall be considered present. */ #undef GNULIB_FILENAMECAT /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module msvc-nothrow shall be considered present. */ #undef GNULIB_MSVC_NOTHROW /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module openat shall be considered present. */ #undef GNULIB_OPENAT /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module openat-safer shall be considered present. */ #undef GNULIB_OPENAT_SAFER /* Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__" */ #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module reallocarray shall be considered present. */ #undef GNULIB_REALLOCARRAY /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module scanf shall be considered present. */ #undef GNULIB_SCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module strerror shall be considered present. */ #undef GNULIB_STRERROR /* Define to 1 when the gnulib module calloc-gnu should be tested. */ #undef GNULIB_TEST_CALLOC_GNU /* Define to 1 when the gnulib module calloc-posix should be tested. */ #undef GNULIB_TEST_CALLOC_POSIX /* Define to 1 when the gnulib module canonicalize_file_name should be tested. */ #undef GNULIB_TEST_CANONICALIZE_FILE_NAME /* Define to 1 when the gnulib module chdir should be tested. */ #undef GNULIB_TEST_CHDIR /* Define to 1 when the gnulib module cloexec should be tested. */ #undef GNULIB_TEST_CLOEXEC /* Define to 1 when the gnulib module close should be tested. */ #undef GNULIB_TEST_CLOSE /* Define to 1 when the gnulib module closedir should be tested. */ #undef GNULIB_TEST_CLOSEDIR /* Define to 1 when the gnulib module dirfd should be tested. */ #undef GNULIB_TEST_DIRFD /* Define to 1 when the gnulib module dup should be tested. */ #undef GNULIB_TEST_DUP /* Define to 1 when the gnulib module dup2 should be tested. */ #undef GNULIB_TEST_DUP2 /* Define to 1 when the gnulib module fchdir should be tested. */ #undef GNULIB_TEST_FCHDIR /* Define to 1 when the gnulib module fcntl should be tested. */ #undef GNULIB_TEST_FCNTL /* Define to 1 when the gnulib module fdopendir should be tested. */ #undef GNULIB_TEST_FDOPENDIR /* Define to 1 when the gnulib module fgetc should be tested. */ #undef GNULIB_TEST_FGETC /* Define to 1 when the gnulib module fgets should be tested. */ #undef GNULIB_TEST_FGETS /* Define to 1 when the gnulib module fprintf should be tested. */ #undef GNULIB_TEST_FPRINTF /* Define to 1 when the gnulib module fputc should be tested. */ #undef GNULIB_TEST_FPUTC /* Define to 1 when the gnulib module fputs should be tested. */ #undef GNULIB_TEST_FPUTS /* Define to 1 when the gnulib module fread should be tested. */ #undef GNULIB_TEST_FREAD /* Define to 1 when the gnulib module free-posix should be tested. */ #undef GNULIB_TEST_FREE_POSIX /* Define to 1 when the gnulib module fscanf should be tested. */ #undef GNULIB_TEST_FSCANF /* Define to 1 when the gnulib module fstat should be tested. */ #undef GNULIB_TEST_FSTAT /* Define to 1 when the gnulib module fstatat should be tested. */ #undef GNULIB_TEST_FSTATAT /* Define to 1 when the gnulib module fwrite should be tested. */ #undef GNULIB_TEST_FWRITE /* Define to 1 when the gnulib module getc should be tested. */ #undef GNULIB_TEST_GETC /* Define to 1 when the gnulib module getchar should be tested. */ #undef GNULIB_TEST_GETCHAR /* Define to 1 when the gnulib module getcwd should be tested. */ #undef GNULIB_TEST_GETCWD /* Define to 1 when the gnulib module getdtablesize should be tested. */ #undef GNULIB_TEST_GETDTABLESIZE /* Define to 1 when the gnulib module gethostname should be tested. */ #undef GNULIB_TEST_GETHOSTNAME /* Define to 1 when the gnulib module getprogname should be tested. */ #undef GNULIB_TEST_GETPROGNAME /* Define to 1 when the gnulib module lstat should be tested. */ #undef GNULIB_TEST_LSTAT /* Define to 1 when the gnulib module malloc-gnu should be tested. */ #undef GNULIB_TEST_MALLOC_GNU /* Define to 1 when the gnulib module malloc-posix should be tested. */ #undef GNULIB_TEST_MALLOC_POSIX /* Define to 1 when the gnulib module mbrtowc should be tested. */ #undef GNULIB_TEST_MBRTOWC /* Define to 1 when the gnulib module mbsinit should be tested. */ #undef GNULIB_TEST_MBSINIT /* Define to 1 when the gnulib module memchr should be tested. */ #undef GNULIB_TEST_MEMCHR /* Define to 1 when the gnulib module mempcpy should be tested. */ #undef GNULIB_TEST_MEMPCPY /* Define to 1 when the gnulib module memrchr should be tested. */ #undef GNULIB_TEST_MEMRCHR /* Define to 1 when the gnulib module open should be tested. */ #undef GNULIB_TEST_OPEN /* Define to 1 when the gnulib module openat should be tested. */ #undef GNULIB_TEST_OPENAT /* Define to 1 when the gnulib module opendir should be tested. */ #undef GNULIB_TEST_OPENDIR /* Define to 1 when the gnulib module pipe should be tested. */ #undef GNULIB_TEST_PIPE /* Define to 1 when the gnulib module printf should be tested. */ #undef GNULIB_TEST_PRINTF /* Define to 1 when the gnulib module putc should be tested. */ #undef GNULIB_TEST_PUTC /* Define to 1 when the gnulib module putchar should be tested. */ #undef GNULIB_TEST_PUTCHAR /* Define to 1 when the gnulib module puts should be tested. */ #undef GNULIB_TEST_PUTS /* Define to 1 when the gnulib module rawmemchr should be tested. */ #undef GNULIB_TEST_RAWMEMCHR /* Define to 1 when the gnulib module readdir should be tested. */ #undef GNULIB_TEST_READDIR /* Define to 1 when the gnulib module readlink should be tested. */ #undef GNULIB_TEST_READLINK /* Define to 1 when the gnulib module readlinkat should be tested. */ #undef GNULIB_TEST_READLINKAT /* Define to 1 when the gnulib module reallocarray should be tested. */ #undef GNULIB_TEST_REALLOCARRAY /* Define to 1 when the gnulib module realloc-gnu should be tested. */ #undef GNULIB_TEST_REALLOC_GNU /* Define to 1 when the gnulib module realloc-posix should be tested. */ #undef GNULIB_TEST_REALLOC_POSIX /* Define to 1 when the gnulib module realpath should be tested. */ #undef GNULIB_TEST_REALPATH /* Define to 1 when the gnulib module rename should be tested. */ #undef GNULIB_TEST_RENAME /* Define to 1 when the gnulib module rmdir should be tested. */ #undef GNULIB_TEST_RMDIR /* Define to 1 when the gnulib module scanf should be tested. */ #undef GNULIB_TEST_SCANF /* Define to 1 when the gnulib module setlocale_null should be tested. */ #undef GNULIB_TEST_SETLOCALE_NULL /* Define to 1 when the gnulib module stat should be tested. */ #undef GNULIB_TEST_STAT /* Define to 1 when the gnulib module stpncpy should be tested. */ #undef GNULIB_TEST_STPNCPY /* Define to 1 when the gnulib module strchrnul should be tested. */ #undef GNULIB_TEST_STRCHRNUL /* Define to 1 when the gnulib module strdup should be tested. */ #undef GNULIB_TEST_STRDUP /* Define to 1 when the gnulib module strerror should be tested. */ #undef GNULIB_TEST_STRERROR /* Define to 1 when the gnulib module strndup should be tested. */ #undef GNULIB_TEST_STRNDUP /* Define to 1 when the gnulib module strnlen should be tested. */ #undef GNULIB_TEST_STRNLEN /* Define to 1 when the gnulib module strverscmp should be tested. */ #undef GNULIB_TEST_STRVERSCMP /* Define to 1 when the gnulib module vfprintf should be tested. */ #undef GNULIB_TEST_VFPRINTF /* Define to 1 when the gnulib module vprintf should be tested. */ #undef GNULIB_TEST_VPRINTF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module xalloc shall be considered present. */ #undef GNULIB_XALLOC /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module xalloc-die shall be considered present. */ #undef GNULIB_XALLOC_DIE /* The concatenation of the strings `GNU ', and PACKAGE. */ #undef GNU_PACKAGE /* Define to 1 if you have 'alloca' after including <alloca.h>, a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA /* Define to 1 if <alloca.h> works. */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the <bp-sym.h> header file. */ #undef HAVE_BP_SYM_H /* Define to 1 if you have the `canonicalize_file_name' function. */ #undef HAVE_CANONICALIZE_FILE_NAME /* Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define to 1 if you have the `closedir' function. */ #undef HAVE_CLOSEDIR /* Define to 1 if you have the <crtdefs.h> header file. */ #undef HAVE_CRTDEFS_H /* Define to 1 if the alignas and alignof keywords work. */ #undef HAVE_C_ALIGNASOF /* Define to 1 if bool, true and false work as per C2023. */ #undef HAVE_C_BOOL /* Define to 1 if the static_assert keyword works. */ #undef HAVE_C_STATIC_ASSERT /* Define to 1 if C supports variable-length arrays. */ #undef HAVE_C_VARARRAYS /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `dirfd', and to 0 if you don't. */ #undef HAVE_DECL_DIRFD /* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't. */ #undef HAVE_DECL_ECVT /* Define to 1 if you have the declaration of `execvpe', and to 0 if you don't. */ #undef HAVE_DECL_EXECVPE /* Define to 1 if you have the declaration of `fchdir', and to 0 if you don't. */ #undef HAVE_DECL_FCHDIR /* Define to 1 if you have the declaration of `fcloseall', and to 0 if you don't. */ #undef HAVE_DECL_FCLOSEALL /* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't. */ #undef HAVE_DECL_FCVT /* Define to 1 if you have the declaration of `fdopendir', and to 0 if you don't. */ #undef HAVE_DECL_FDOPENDIR /* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't. */ #undef HAVE_DECL_GCVT /* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you don't. */ #undef HAVE_DECL_GETDTABLESIZE /* Define to 1 if you have the declaration of `getw', and to 0 if you don't. */ #undef HAVE_DECL_GETW /* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you don't. */ #undef HAVE_DECL_MBRTOWC /* Define to 1 if you have the declaration of `mbsinit', and to 0 if you don't. */ #undef HAVE_DECL_MBSINIT /* Define to 1 if you have the declaration of `memrchr', and to 0 if you don't. */ #undef HAVE_DECL_MEMRCHR /* Define to 1 if you have the declaration of `program_invocation_name', and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_NAME /* Define to 1 if you have the declaration of `program_invocation_short_name', and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* Define to 1 if you have the declaration of `putw', and to 0 if you don't. */ #undef HAVE_DECL_PUTW /* Define to 1 if you have the declaration of `stpncpy', and to 0 if you don't. */ #undef HAVE_DECL_STPNCPY /* Define to 1 if you have the declaration of `strdup', and to 0 if you don't. */ #undef HAVE_DECL_STRDUP /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R /* Define to 1 if you have the declaration of `strndup', and to 0 if you don't. */ #undef HAVE_DECL_STRNDUP /* Define to 1 if you have the declaration of `strnlen', and to 0 if you don't. */ #undef HAVE_DECL_STRNLEN /* Define to 1 if you have the declaration of `towlower', and to 0 if you don't. */ #undef HAVE_DECL_TOWLOWER /* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't. */ #undef HAVE_DECL_WCSDUP /* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. */ #undef HAVE_DECL___ARGV /* Define to 1 if you have the <dirent.h> header file. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the `dirfd' function. */ #undef HAVE_DIRFD /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the `error' function. */ #undef HAVE_ERROR /* Define to 1 if you have the <error.h> header file. */ #undef HAVE_ERROR_H /* Define to 1 if you have the `faccessat' function. */ #undef HAVE_FACCESSAT /* Define to 1 if you have the `fchdir' function. */ #undef HAVE_FCHDIR /* Define to 1 if you have the `fcntl' function. */ #undef HAVE_FCNTL /* Define to 1 if you have the `fdopendir' function. */ #undef HAVE_FDOPENDIR /* Define to 1 if you have the <features.h> header file. */ #undef HAVE_FEATURES_H /* Define if the 'free' function is guaranteed to preserve errno. */ #undef HAVE_FREE_POSIX /* Define to 1 if you have the `fstatat' function. */ #undef HAVE_FSTATAT /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `getdtablesize' function. */ #undef HAVE_GETDTABLESIZE /* Define to 1 if you have the `getexecname' function. */ #undef HAVE_GETEXECNAME /* Define to 1 if you have the `gethostname' function. */ #undef HAVE_GETHOSTNAME /* Define to 1 if you have the `getprogname' function. */ #undef HAVE_GETPROGNAME /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `iswcntrl' function. */ #undef HAVE_ISWCNTRL /* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define to 1 if you have the <limits.h> header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the `link' function. */ #undef HAVE_LINK /* Define to 1 if you have the <linux/fs.h> header file. */ #undef HAVE_LINUX_FS_H /* Define to 1 if you support file names longer than 14 characters. */ #undef HAVE_LONG_FILE_NAMES /* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT /* Define if malloc, realloc, and calloc set errno on allocation failure. */ #undef HAVE_MALLOC_POSIX /* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including config.h and <sys/mman.h>. */ #undef HAVE_MAP_ANONYMOUS /* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define to 1 if you have the `mbsinit' function. */ #undef HAVE_MBSINIT /* Define to 1 if <wchar.h> declares mbstate_t. */ #undef HAVE_MBSTATE_T /* Define to 1 if you have the `mempcpy' function. */ #undef HAVE_MEMPCPY /* Define to 1 if you have the `memrchr' function. */ #undef HAVE_MEMRCHR /* Define to 1 if you have the <minix/config.h> header file. */ #undef HAVE_MINIX_CONFIG_H /* Define to 1 if <limits.h> defines the MIN and MAX macros. */ #undef HAVE_MINMAX_IN_LIMITS_H /* Define to 1 if <sys/param.h> defines the MIN and MAX macros. */ #undef HAVE_MINMAX_IN_SYS_PARAM_H /* Define to 1 if you have the `mprotect' function. */ #undef HAVE_MPROTECT /* Define to 1 on MSVC platforms that have the "invalid parameter handler" concept. */ #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Define to 1 if you have the <netdb.h> header file. */ #undef HAVE_NETDB_H /* Define to 1 if the system has obstacks that work with any size object. */ #undef HAVE_OBSTACK /* Define to 1 if you have the `openat' function. */ #undef HAVE_OPENAT /* Define to 1 if you have the `opendir' function. */ #undef HAVE_OPENDIR /* Define to 1 if you have the <paper.h> header file. */ #undef HAVE_PAPER_H /* Define to 1 if you have the `pathconf' function. */ #undef HAVE_PATHCONF /* Define to 1 if you have the `pipe' function. */ #undef HAVE_PIPE /* Define if you have the <pthread.h> header and the POSIX threads API. */ #undef HAVE_PTHREAD_API /* Define to 1 if you have the `rawmemchr' function. */ #undef HAVE_RAWMEMCHR /* Define to 1 if you have the `readdir' function. */ #undef HAVE_READDIR /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK /* Define to 1 if you have the `readlinkat' function. */ #undef HAVE_READLINKAT /* Define to 1 if you have the `reallocarray' function. */ #undef HAVE_REALLOCARRAY /* Define to 1 if you have the `realpath' function. */ #undef HAVE_REALPATH /* Define to 1 if you have the `renameat' function. */ #undef HAVE_RENAMEAT /* Define to 1 if you have the `renameat2' function. */ #undef HAVE_RENAMEAT2 /* Define to 1 if the system has the type `sa_family_t'. */ #undef HAVE_SA_FAMILY_T /* Define to 1 if you have the <sdkddkver.h> header file. */ #undef HAVE_SDKDDKVER_H /* Define to 1 if you have the `setdtablesize' function. */ #undef HAVE_SETDTABLESIZE /* Define to 1 if you have the `shutdown' function. */ #undef HAVE_SHUTDOWN /* Define to 1 if you have the `sig2str' function. */ #undef HAVE_SIG2STR /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ #undef HAVE_SIGNED_SIG_ATOMIC_T /* Define to 1 if 'wchar_t' is a signed integer type. */ #undef HAVE_SIGNED_WCHAR_T /* Define to 1 if 'wint_t' is a signed integer type. */ #undef HAVE_SIGNED_WINT_T /* Define to 1 if you have the <stdbool.h> header file. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the <stdckdint.h> header file. */ #undef HAVE_STDCKDINT_H /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the <stdio.h> header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H /* Define if you have the stpncpy() function and it works. */ #undef HAVE_STPNCPY /* Define to 1 if you have the `strchrnul' function. */ #undef HAVE_STRCHRNUL /* Define if you have `strerror_r'. */ #undef HAVE_STRERROR_R /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strndup' function. */ #undef HAVE_STRNDUP /* Define to 1 if the system has the type `struct sockaddr_storage'. */ #undef HAVE_STRUCT_SOCKADDR_STORAGE /* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */ #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY /* Define to 1 if `st_atimensec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIMENSEC /* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC /* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC /* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC /* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC /* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC /* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC /* Define to 1 if you have the `strverscmp' function. */ #undef HAVE_STRVERSCMP /* Define to 1 if you have the `symlink' function. */ #undef HAVE_SYMLINK /* Define if you have the systempapername function */ #undef HAVE_SYSTEMPAPERNAME /* Define to 1 if you have the <sys/bitypes.h> header file. */ #undef HAVE_SYS_BITYPES_H /* Define to 1 if you have the <sys/inttypes.h> header file. */ #undef HAVE_SYS_INTTYPES_H /* Define to 1 if you have the <sys/mman.h> header file. */ #undef HAVE_SYS_MMAN_H /* Define to 1 if you have the <sys/param.h> header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the <sys/socket.h> header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the <sys/time.h> header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the <sys/uio.h> header file. */ #undef HAVE_SYS_UIO_H /* Define to 1 if you have the <threads.h> header file. */ #undef HAVE_THREADS_H /* Define to 1 if you have the `towlower' function. */ #undef HAVE_TOWLOWER /* Define to 1 if you have the `uname' function. */ #undef HAVE_UNAME /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT /* Define if you have a global __progname variable */ #undef HAVE_VAR___PROGNAME /* Define to 1 or 0, depending whether the compiler supports simple visibility declarations. */ #undef HAVE_VISIBILITY /* Define to 1 if you have the <wchar.h> header file. */ #undef HAVE_WCHAR_H /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T /* Define to 1 if you have the <wctype.h> header file. */ #undef HAVE_WCTYPE_H /* Define to 1 if the compiler and linker support weak declarations of symbols. */ #undef HAVE_WEAK_SYMBOLS /* Define to 1 if you have the <winsock2.h> header file. */ #undef HAVE_WINSOCK2_H /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T /* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX 7.1. */ #undef HAVE_WORKING_FSTATAT_ZERO_FLAG /* Define to 1 if O_NOATIME works. */ #undef HAVE_WORKING_O_NOATIME /* Define to 1 if O_NOFOLLOW works. */ #undef HAVE_WORKING_O_NOFOLLOW /* Define to 1 if you have the <ws2tcpip.h> header file. */ #undef HAVE_WS2TCPIP_H /* Define to 1 if you have the <xlocale.h> header file. */ #undef HAVE_XLOCALE_H /* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ #undef HAVE__SET_INVALID_PARAMETER_HANDLER /* Define to 1 if the compiler supports __builtin_expect, and to 2 if <builtins.h> does. */ #undef HAVE___BUILTIN_EXPECT #ifndef HAVE___BUILTIN_EXPECT # define __builtin_expect(e, c) (e) #elif HAVE___BUILTIN_EXPECT == 2 # include <builtins.h> #endif /* Define to 1 if ctype.h defines __header_inline. */ #undef HAVE___HEADER_INLINE /* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>. Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Oracle Developer Studio 12.6 (Sun C 5.15 SunOS_sparc 2017/05/30). Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) on configurations that mistakenly use 'static inline' to implement functions or macros in standard C headers like <ctype.h>. For example, if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions from calling static functions (ISO C 99 section 6.7.4.(3). This bug is known to occur on: OS X 10.8 and earlier; see: https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html DragonFly; see http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log FreeBSD; see: https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see <https://trac.macports.org/ticket/41033>. Assume DragonFly and FreeBSD will be similar. GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. It defines a macro __GNUC_STDC_INLINE__ to indicate this situation or a macro __GNUC_GNU_INLINE__ to indicate the opposite situation. GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline semantics but warns, unless -fgnu89-inline is used: warning: C99 inline functions are not supported; using GNU89 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined HAVE___HEADER_INLINE \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ : ((! defined _DONT_USE_CTYPE_INLINE_ \ && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern # define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE _GL_UNUSED static # define _GL_EXTERN_INLINE _GL_UNUSED static #endif /* In GCC 4.6 (inclusive) to 5.1 (exclusive), suppress bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif /* Define to 1 if the compiler supports the keyword '__inline'. */ #undef HAVE___INLINE /* Define HOST_NAME_MAX when <limits.h> does not define it. */ #undef HOST_NAME_MAX /* Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ #undef MALLOC_0_IS_NONNULL /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ #undef MAP_ANONYMOUS /* Define if the mbrtowc function does not return (size_t) -2 for empty input. */ #undef MBRTOWC_EMPTY_INPUT_BUG /* Define if the mbrtowc function may signal encoding errors in the C locale. */ #undef MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ /* Define if the mbrtowc function has the NULL pwc argument bug. */ #undef MBRTOWC_NULL_ARG1_BUG /* Define if the mbrtowc function has the NULL string argument bug. */ #undef MBRTOWC_NULL_ARG2_BUG /* Define if the mbrtowc function does not return 0 for a NUL character. */ #undef MBRTOWC_NUL_RETVAL_BUG /* Define if the mbrtowc function returns a wrong return value. */ #undef MBRTOWC_RETVAL_BUG /* Define if the mbrtowc function stores a wide character when reporting incomplete input. */ #undef MBRTOWC_STORES_INCOMPLETE_BUG /* Use GNU style printf and scanf. */ #ifndef __USE_MINGW_ANSI_STDIO # undef __USE_MINGW_ANSI_STDIO #endif /* Define to 1 if open() fails to recognize a trailing slash. */ #undef OPEN_TRAILING_SLASH_BUG /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* String identifying the packager of this software */ #undef PACKAGE_PACKAGER /* Packager info for bug reports (URL/e-mail/...) */ #undef PACKAGE_PACKAGER_BUG_REPORTS /* Packager-specific version information */ #undef PACKAGE_PACKAGER_VERSION /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* The char used to separate paths. */ #undef PATH_SEPARATOR /* Define to the type that is the result of default argument promotions of type mode_t. */ #undef PROMOTED_MODE_T /* Define if the pthread_in_use() detection is hard. */ #undef PTHREAD_IN_USE_DETECTION_HARD /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX /* Define to 1 if readlink fails to recognize a trailing slash. */ #undef READLINK_TRAILING_SLASH_BUG /* Define to 1 if readlink sets errno instead of truncating a too-long link. */ #undef READLINK_TRUNCATE_BUG /* Define if rename does not work when the destination file exists, as on Cygwin 1.5 or Windows. */ #undef RENAME_DEST_EXISTS_BUG /* Define if rename fails to leave hard links alone, as on NetBSD 1.6 or Cygwin 1.5. */ #undef RENAME_HARD_LINK_BUG /* Define if rename does not correctly handle slashes on the destination argument, such as on Solaris 11 or NetBSD 1.6. */ #undef RENAME_TRAILING_SLASH_DEST_BUG /* Define if rename does not correctly handle slashes on the source argument, such as on Solaris 9 or cygwin 1.5. */ #undef RENAME_TRAILING_SLASH_SOURCE_BUG /* Define to 1 if gnulib's dirfd() replacement is used. */ #undef REPLACE_DIRFD /* Define to 1 if gnulib's fchdir() replacement is used. */ #undef REPLACE_FCHDIR /* Define to 1 if stat needs help when passed a file name with a trailing slash */ #undef REPLACE_FUNC_STAT_FILE /* Define to 1 if open() should work around the inability to open a directory. */ #undef REPLACE_OPEN_DIRECTORY /* Define to 1 if strerror(0) does not return a message implying success. */ #undef REPLACE_STRERROR_0 /* Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe. */ #undef SETLOCALE_NULL_ALL_MTSAFE /* Define to 1 if setlocale (category, NULL) is multithread-safe. */ #undef SETLOCALE_NULL_ONE_MTSAFE /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'sig_atomic_t'. */ #undef SIG_ATOMIC_T_SUFFIX /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'size_t'. */ #undef SIZE_T_SUFFIX /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */ #undef STAT_MACROS_BROKEN /* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Define to 1 if strerror_r returns char *. */ #undef STRERROR_R_CHAR_P /* Define to enable syntax table support in `regex'. */ #undef SYNTAX_TABLE /* Define to 1 if the type of the st_atim member of a struct stat is struct timespec. */ #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on macOS. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable X/Open compliant socket functions that do not require linking with -lxnet on HP-UX 11.11. */ #ifndef _HPUX_ALT_XOPEN_SOCKET_API # undef _HPUX_ALT_XOPEN_SOCKET_API #endif /* Identify the host operating system as Minix. This macro does not affect the system headers' behavior. A future release of Autoconf may stop defining this macro. */ #ifndef _MINIX # undef _MINIX #endif /* Enable general extensions on NetBSD. Enable NetBSD compatibility extensions on Minix. */ #ifndef _NETBSD_SOURCE # undef _NETBSD_SOURCE #endif /* Enable OpenBSD compatibility extensions on NetBSD. Oddly enough, this does nothing on OpenBSD. */ #ifndef _OPENBSD_SOURCE # undef _OPENBSD_SOURCE #endif /* Define to 1 if needed for POSIX-compatible behavior. */ #ifndef _POSIX_SOURCE # undef _POSIX_SOURCE #endif /* Define to 2 if needed for POSIX-compatible behavior. */ #ifndef _POSIX_1_SOURCE # undef _POSIX_1_SOURCE #endif /* Enable POSIX-compatible threading on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ # undef __STDC_WANT_IEC_60559_BFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif /* Enable extensions specified by C23 Annex F. */ #ifndef __STDC_WANT_IEC_60559_EXT__ # undef __STDC_WANT_IEC_60559_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif /* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif /* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ #ifndef __STDC_WANT_LIB_EXT2__ # undef __STDC_WANT_LIB_EXT2__ #endif /* Enable extensions specified by ISO/IEC 24747:2009. */ #ifndef __STDC_WANT_MATH_SPEC_FUNCS__ # undef __STDC_WANT_MATH_SPEC_FUNCS__ #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions. Define to 500 only if necessary to make mbstate_t available. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Version number of package */ #undef VERSION /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ #undef WCHAR_T_SUFFIX /* Define if WSAStartup is needed. */ #undef WINDOWS_SOCKETS /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wint_t'. */ #undef WINT_T_SUFFIX /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ #undef YYTEXT_POINTER /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* True if the compiler says it groks GNU C version MAJOR.MINOR. */ #if defined __GNUC__ && defined __GNUC_MINOR__ # define _GL_GNUC_PREREQ(major, minor) \ ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) #else # define _GL_GNUC_PREREQ(major, minor) 0 #endif /* Define to enable the declarations of ISO C 11 types and functions. */ #undef _ISOC11_SOURCE /* Define to 1 on platforms where this makes off_t a 64-bit type. */ #undef _LARGE_FILES /* Define to 1 on Solaris. */ #undef _LCONV_C99 /* The _Noreturn keyword of C11. */ #ifndef _Noreturn # if (defined __cplusplus \ && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ || (defined _MSC_VER && 1900 <= _MSC_VER)) \ && 0) /* [[noreturn]] is not practically usable, because with it the syntax extern _Noreturn void func (...); would not be valid; such a declaration would only be valid with 'extern' and '_Noreturn' swapped, or without the 'extern' keyword. However, some AIX system header files and several gnulib header files use precisely this syntax with 'extern'. */ # define _Noreturn [[noreturn]] # elif (defined __clang__ && __clang_major__ < 16 \ && defined _GL_WORK_AROUND_LLVM_BUG_59792) /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around that rare LLVM bug, though you may get many false-alarm warnings. */ # define _Noreturn # elif ((!defined __cplusplus || defined __clang__) \ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ || (!defined __STRICT_ANSI__ \ && (_GL_GNUC_PREREQ (4, 7) \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 3 < __clang_major__ + (5 <= __clang_minor__)))))) /* _Noreturn works as-is. */ # elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif /* Define to 1 in order to get the POSIX compatible declarations of socket functions. */ #undef _POSIX_PII_SOCKET /* Number of bits in time_t, on hosts where this is settable. */ #undef _TIME_BITS /* For standard stat data types on VMS. */ #undef _USE_STD_STAT /* Define to 1 on platforms where this makes time_t a 64-bit type. */ #undef __MINGW_USE_VC2005_COMPAT /* Define to 1 if the system <stdint.h> predates C++11. */ #undef __STDC_CONSTANT_MACROS /* Define to 1 if the system <stdint.h> predates C++11. */ #undef __STDC_LIMIT_MACROS /* Define to 1 if C does not support variable-length arrays, and if the compiler does not already define this. */ #undef __STDC_NO_VLA__ /* The _GL_ASYNC_SAFE marker should be attached to functions that are signal handlers (for signals other than SIGABRT, SIGPIPE) or can be invoked from such signal handlers. Such functions have some restrictions: * All functions that it calls should be marked _GL_ASYNC_SAFE as well, or should be listed as async-signal-safe in POSIX <https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04> section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in particular, are NOT async-signal-safe. * All memory locations (variables and struct fields) that these functions access must be marked 'volatile'. This holds for both read and write accesses. Otherwise the compiler might optimize away stores to and reads from such locations that occur in the program, depending on its data flow analysis. For example, when the program contains a loop that is intended to inspect a variable set from within a signal handler while (!signal_occurred) ; the compiler is allowed to transform this into an endless loop if the variable 'signal_occurred' is not declared 'volatile'. Additionally, recall that: * A signal handler should not modify errno (except if it is a handler for a fatal signal and ends by raising the same signal again, thus provoking the termination of the process). If it invokes a function that may clobber errno, it needs to save and restore the value of errno. */ #define _GL_ASYNC_SAFE /* Attributes. */ #if (defined __has_attribute \ && (!defined __clang_minor__ \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 5 <= __clang_major__))) # define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) #else # define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr # define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) # define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) # define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_diagnose_if 0 # define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) # define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) # define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) # define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) # ifdef _ICC # define _GL_ATTR_may_alias 0 # else # define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) # endif # define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) # define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) # define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) # define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) # define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) # define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) # define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) #endif /* Disable GCC -Wpedantic if using __has_c_attribute and this is not C23+. */ #if (defined __has_c_attribute && _GL_GNUC_PREREQ (4, 6) \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710) # pragma GCC diagnostic ignored "-Wpedantic" #endif /* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function is the size of the returned memory block. _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied by the Nth argument of the function is the size of the returned memory block. */ /* Applies to: function, pointer to function, function types. */ #ifndef _GL_ATTRIBUTE_ALLOC_SIZE # if _GL_HAS_ATTRIBUTE (alloc_size) # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) # else # define _GL_ATTRIBUTE_ALLOC_SIZE(args) # endif #endif /* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the function and report an error if it cannot do so. */ /* Applies to: function. */ #ifndef _GL_ATTRIBUTE_ALWAYS_INLINE # if _GL_HAS_ATTRIBUTE (always_inline) # define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) # else # define _GL_ATTRIBUTE_ALWAYS_INLINE # endif #endif /* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show in stack traces when debugging. The compiler should omit the function from stack traces. */ /* Applies to: function. */ #ifndef _GL_ATTRIBUTE_ARTIFICIAL # if _GL_HAS_ATTRIBUTE (artificial) # define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) # else # define _GL_ATTRIBUTE_ARTIFICIAL # endif #endif /* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ /* Applies to: functions. */ /* Avoid __attribute__ ((cold)) on MinGW; see thread starting at <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>. Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ #ifndef _GL_ATTRIBUTE_COLD # if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ # ifndef __SUNPRO_C # define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) # else # define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) # endif # else # define _GL_ATTRIBUTE_COLD # endif #endif /* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate calls to the function with the same arguments. This attribute is safe for a function that neither depends on nor affects observable state, and always returns exactly once - e.g., does not loop forever, and does not call longjmp. (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_CONST # if _GL_HAS_ATTRIBUTE (const) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) # else # define _GL_ATTRIBUTE_CONST # endif #endif /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers that can be freed by passing them as the Ith argument to the function F. _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that can be freed via 'free'; it can be used only after declaring 'free'. */ /* Applies to: functions. Cannot be used on inline functions. */ #ifndef _GL_ATTRIBUTE_DEALLOC # if _GL_GNUC_PREREQ (11, 0) # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) # else # define _GL_ATTRIBUTE_DEALLOC(f, i) # endif #endif /* If gnulib's <string.h> or <wchar.h> has already defined this macro, continue to use this earlier definition, since <stdlib.h> may not have been included yet. */ #ifndef _GL_ATTRIBUTE_DEALLOC_FREE # if defined __cplusplus && defined __GNUC__ && !defined __clang__ /* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */ # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) # else # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC (free, 1) # endif #endif /* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. The compiler may warn if the entity is used. */ /* Applies to: - function, variable, - struct, union, struct/union member, - enumeration, enumeration item, - typedef, in C++ also: namespace, class, template specialization. */ #ifndef _GL_ATTRIBUTE_DEPRECATED # ifdef __has_c_attribute # if __has_c_attribute (__deprecated__) # define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] # endif # endif # if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated) # define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) # endif # ifndef _GL_ATTRIBUTE_DEPRECATED # define _GL_ATTRIBUTE_DEPRECATED # endif #endif /* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and the function call is not optimized away. _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and the function call is not optimized away. */ /* Applies to: functions. */ #if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING) # if _GL_HAS_ATTRIBUTE (error) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) # elif _GL_HAS_ATTRIBUTE (diagnose_if) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) # else # define _GL_ATTRIBUTE_ERROR(msg) # define _GL_ATTRIBUTE_WARNING(msg) # endif #endif /* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain visible to debuggers etc., even with '-fwhole-program'. */ /* Applies to: functions, variables. */ #ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE # if _GL_HAS_ATTRIBUTE (externally_visible) # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) # else # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE # endif #endif /* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if the control flow falls through to the immediately following 'case' or 'default' label. The compiler should not warn in this case. */ /* Applies to: Empty statement (;), inside a 'switch' statement. */ /* Always expands to something. */ #ifndef _GL_ATTRIBUTE_FALLTHROUGH # ifdef __has_c_attribute # if __has_c_attribute (__fallthrough__) # define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] # endif # endif # if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough) # define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) # endif # ifndef _GL_ATTRIBUTE_FALLTHROUGH # define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) # endif #endif /* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) declares that the STRING-INDEXth function argument is a format string of style ARCHETYPE, which is one of: printf, gnu_printf scanf, gnu_scanf, strftime, gnu_strftime, strfmon, or the same thing prefixed and suffixed with '__'. If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK are suitable for the format string. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_FORMAT # if _GL_HAS_ATTRIBUTE (format) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) # else # define _GL_ATTRIBUTE_FORMAT(spec) # endif #endif /* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other compilation unit, it executes code from that unit only by return or by exception handling. This declaration lets the compiler optimize that unit more aggressively. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_LEAF # if _GL_HAS_ATTRIBUTE (leaf) # define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) # else # define _GL_ATTRIBUTE_LEAF # endif #endif /* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly allocated memory. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_MALLOC # if _GL_HAS_ATTRIBUTE (malloc) # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) # else # define _GL_ATTRIBUTE_MALLOC # endif #endif /* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the same storage as pointers to other types. Thus this declaration disables strict aliasing optimization. */ /* Applies to: types. */ /* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ #ifndef _GL_ATTRIBUTE_MAY_ALIAS # if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C # define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) # else # define _GL_ATTRIBUTE_MAY_ALIAS # endif #endif /* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if the entity is not used. The compiler should not warn if the entity is not used. */ /* Applies to: - function, variable, - struct, union, struct/union member, - enumeration, enumeration item, - typedef, in C++ also: class. */ /* In C++ and C23, this is spelled [[__maybe_unused__]]. GCC's syntax is __attribute__ ((__unused__)). clang supports both syntaxes. Except that with clang ≥ 6, < 10, in C++ mode, __has_c_attribute (__maybe_unused__) yields true but the use of [[__maybe_unused__]] nevertheless produces a warning. */ #ifndef _GL_ATTRIBUTE_MAYBE_UNUSED # if defined __clang__ && defined __cplusplus # if !defined __apple_build_version__ && __clang_major__ >= 10 # define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] # endif # elif defined __has_c_attribute # if __has_c_attribute (__maybe_unused__) # define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] # endif # endif # ifndef _GL_ATTRIBUTE_MAYBE_UNUSED # define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED # endif #endif /* Alternative spelling of this macro, for convenience and for compatibility with glibc/include/libc-symbols.h. */ #define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED /* Earlier spellings of this macro. */ #define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED /* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not discard the return value. The compiler may warn if the caller does not use the return value, unless the caller uses something like ignore_value. */ /* Applies to: function, enumeration, class. */ #ifndef _GL_ATTRIBUTE_NODISCARD # if defined __clang__ && defined __cplusplus /* With clang up to 15.0.6 (at least), in C++ mode, [[__nodiscard__]] produces a warning. The 1000 below means a yet unknown threshold. When clang++ version X starts supporting [[__nodiscard__]] without warning about it, you can replace the 1000 with X. */ # if __clang_major__ >= 1000 # define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] # endif # elif defined __has_c_attribute # if __has_c_attribute (__nodiscard__) # define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] # endif # endif # if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result) # define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) # endif # ifndef _GL_ATTRIBUTE_NODISCARD # define _GL_ATTRIBUTE_NODISCARD # endif #endif /* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the function. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_NOINLINE # if _GL_HAS_ATTRIBUTE (noinline) # define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) # else # define _GL_ATTRIBUTE_NOINLINE # endif #endif /* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... must not be NULL. _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be null. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_NONNULL # if _GL_HAS_ATTRIBUTE (nonnull) # define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) # else # define _GL_ATTRIBUTE_NONNULL(args) # endif #endif /* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is not meant to be NUL-terminated. */ /* Applies to: struct/union members and variables that are arrays of element type '[[un]signed] char'. */ #ifndef _GL_ATTRIBUTE_NONSTRING # if _GL_HAS_ATTRIBUTE (nonstring) # define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) # else # define _GL_ATTRIBUTE_NONSTRING # endif #endif /* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ /* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_NOTHROW # if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus # define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) # else # define _GL_ATTRIBUTE_NOTHROW # endif #endif /* _GL_ATTRIBUTE_PACKED declares: For struct members: The member has the smallest possible alignment. For struct, union, class: All members have the smallest possible alignment, minimizing the memory required. */ /* Applies to: struct members, struct, union, in C++ also: class. */ #ifndef _GL_ATTRIBUTE_PACKED # if _GL_HAS_ATTRIBUTE (packed) # define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) # else # define _GL_ATTRIBUTE_PACKED # endif #endif /* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate calls to the function with the same arguments if observable state is not changed between calls. This attribute is safe for a function that does not affect observable state, and always returns exactly once. (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_PURE # if _GL_HAS_ATTRIBUTE (pure) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE # endif #endif /* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is a non-NULL pointer. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_RETURNS_NONNULL # if _GL_HAS_ATTRIBUTE (returns_nonnull) # define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) # else # define _GL_ATTRIBUTE_RETURNS_NONNULL # endif #endif /* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a trailing NULL argument. _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_SENTINEL # if _GL_HAS_ATTRIBUTE (sentinel) # define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) # else # define _GL_ATTRIBUTE_SENTINEL(pos) # endif #endif /* A helper macro. Don't use it directly. */ #ifndef _GL_ATTRIBUTE_UNUSED # if _GL_HAS_ATTRIBUTE (unused) # define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define _GL_ATTRIBUTE_UNUSED # endif #endif /* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the immediately preceding label is not used. The compiler should not warn if the label is not used. */ /* Applies to: label (both in C and C++). */ /* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' syntax. But clang does. */ #ifndef _GL_UNUSED_LABEL # if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ # define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED # else # define _GL_UNUSED_LABEL # endif #endif /* A replacement for va_copy, if needed. */ #define gl_va_copy(a,b) ((a) = (b)) /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif /* Define to a type if <wchar.h> does not define. */ #undef mbstate_t /* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where n1 and n2 are expressions without side effects, that evaluate to real numbers (excluding NaN). It returns 1 if n1 > n2 0 if n1 == n2 -1 if n1 < n2 The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional jump with nearly all GCC versions up to GCC 10. This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many GCC versions up to GCC 9. The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 avoids conditional jumps in all GCC versions >= 3.4. */ #define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) /* Define to `int' if <sys/types.h> does not define. */ #undef mode_t /* Define to the type of st_nlink in struct stat, or a supertype. */ #undef nlink_t /* Define as a signed integer type capable of holding a process identifier. */ #undef pid_t /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported only directly. */ #undef restrict /* Work around a bug in older versions of Sun C++, which did not #define __restrict__ or support _Restrict or __restrict__ even though the corresponding Sun C compiler ended up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. This workaround can be removed once we assume Oracle Developer Studio 12.5 (2016) or later. */ #if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ # define _Restrict # define __restrict__ #endif /* Define to `unsigned int' if <sys/types.h> does not define. */ #undef size_t /* type to use in place of socklen_t if not defined */ #undef socklen_t /* Define as a signed type of the same size as size_t. */ #undef ssize_t /* Define as a macro for copying va_list variables. */ #undef va_copy #if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof # if HAVE_STDALIGN_H # include <stdalign.h> # endif /* ISO C23 alignas and alignof for platforms that lack it. References: ISO C23 (latest free draft <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>) sections 6.5.3.4, 6.7.5, 7.15. C++11 (latest free draft <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>) section 18.10. */ /* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment requirement of a structure member (i.e., slot or field) that is of type TYPE, as an integer constant expression. This differs from GCC's and clang's __alignof__ operator, which can yield a better-performing alignment for an object of that type. For example, on x86 with GCC and on Linux/x86 with clang, __alignof__ (double) and __alignof__ (long long) are 8, whereas alignof (double) and alignof (long long) are 4 unless the option '-malign-double' is used. The result cannot be used as a value for an 'enum' constant, if you want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */ /* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. clang versions < 8.0.0 have the same bug. */ # if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ && !defined __clang__) \ || (defined __clang__ && __clang_major__ < 8)) # undef/**/_Alignof # ifdef __cplusplus # if (201103 <= __cplusplus || defined _MSC_VER) # define _Alignof(type) alignof (type) # else template <class __t> struct __alignof_helper { char __a; __t __b; }; # define _Alignof(type) offsetof (__alignof_helper<type>, __b) # define _GL_STDALIGN_NEEDS_STDDEF 1 # endif # else # if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ # define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) # else # define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) # define _GL_STDALIGN_NEEDS_STDDEF 1 # endif # endif # endif # if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) # undef/**/alignof # define alignof _Alignof # endif /* alignas (A), also known as _Alignas (A), aligns a variable or type to the alignment A, where A is an integer constant expression. For example: int alignas (8) foo; struct s { int a; int alignas (8) bar; }; aligns the address of FOO and the offset of BAR to be multiples of 8. A should be a power of two that is at least the type's alignment and at most the implementation's alignment limit. This limit is 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable to MSVC through at least version 10.0, A should be an integer constant, as MSVC does not support expressions such as 1 << 3. To be portable to Sun C 5.11, do not align auto variables to anything stricter than their default alignment. The following C23 requirements are not supported here: - If A is zero, alignas has no effect. - alignas can be used multiple times; the strictest one wins. - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). */ # if !HAVE_STDALIGN_H # if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 # if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) # define _Alignas(a) alignas (a) # elif (!defined __attribute__ \ && ((defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__ && !defined __ibmxl__) \ || (4 <= __clang_major__) \ || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) # define _Alignas(a) __attribute__ ((__aligned__ (a))) # elif 1300 <= _MSC_VER # define _Alignas(a) __declspec (align (a)) # endif # endif # if ((defined _Alignas \ && !(defined __cplusplus \ && (201103 <= __cplusplus || defined _MSC_VER))) \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # define alignas _Alignas # endif # endif # if _GL_STDALIGN_NEEDS_STDDEF # include <stddef.h> # endif #endif #ifndef HAVE_C_BOOL # if !defined __cplusplus && !defined __bool_true_false_are_defined # if HAVE_STDBOOL_H # include <stdbool.h> # else # if defined __SUNPRO_C # error "<stdbool.h> is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC." # else # error "<stdbool.h> does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'." # endif # endif # endif # if !true # define true (!false) # endif #endif #if (!defined HAVE_C_STATIC_ASSERT && !defined assert \ && (!defined __cplusplus \ || (__cpp_static_assert < 201411 \ && __GNUG__ < 6 && __clang_major__ < 6))) #include <assert.h> #undef/**/assert #ifdef __sgi #undef/**/__ASSERT_H__ #endif /* Solaris 11.4 <assert.h> defines static_assert as a macro with 2 arguments. We need it also to be invocable with a single argument. */ #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus #undef/**/static_assert #define static_assert _Static_assert #endif #endif #define malloc GC_malloc #define calloc GC_calloc #define realloc GC_realloc #ifndef free #define free GC_free #endif #define strdup GC_strdup #define strndup GC_strndup #define reallocarray a2ps_reallocarray ��������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/configure�������������������������������������������������������������������������������0000754�0000000�0000000�00004255726�14445132133�011275� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for GNU a2ps 4.15.5. # # Report bugs to <bug-a2ps@gnu.org>. # # Copyright 2023 Free Software Foundation, Inc. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and bug-a2ps@gnu.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 </dev/null exec 6>&1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU a2ps' PACKAGE_TARNAME='a2ps' PACKAGE_VERSION='4.15.5' PACKAGE_STRING='GNU a2ps 4.15.5' PACKAGE_BUGREPORT='bug-a2ps@gnu.org' PACKAGE_URL='https://www.gnu.org/software/a2ps/' # Factoring default headers for most tests. ac_includes_default="\ #include <stddef.h> #ifdef HAVE_STDIO_H # include <stdio.h> #endif #ifdef HAVE_STDLIB_H # include <stdlib.h> #endif #ifdef HAVE_STRING_H # include <string.h> #endif #ifdef HAVE_INTTYPES_H # include <inttypes.h> #endif #ifdef HAVE_STDINT_H # include <stdint.h> #endif #ifdef HAVE_STRINGS_H # include <strings.h> #endif #ifdef HAVE_SYS_TYPES_H # include <sys/types.h> #endif #ifdef HAVE_SYS_STAT_H # include <sys/stat.h> #endif #ifdef HAVE_UNISTD_H # include <unistd.h> #endif" ac_header_c_list= ac_func_c_list= gt_needs= enable_option_checking=no enable_year2038=no enable_largefile=yes ac_subst_vars='gltests_LIBOBJDEPS gltests_LTLIBOBJS gltests_LIBOBJS gl_LIBOBJDEPS gl_LTLIBOBJS gl_LIBOBJS CONFIG_INCLUDE am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS CLOC_OPTS CLOC CROSS_COMPILING HELP2MAN subdirs COM_LATEX COM_TEXI latex COM_latex tex COM_tex makeinfo COM_makeinfo grog COM_grog COM_PSUTILS psnup COM_psnup psselect COM_psselect COM_PS2PDF ps2pdf COM_ps2pdf pdf2ps COM_pdf2ps html2ps COM_html2ps convert COM_convert dvips COM_dvips bzip2 COM_bzip2 bzip COM_bzip gzip COM_gzip COM_DISPLAY ghostview COM_ghostview gv COM_gv ENCODING FILE_LINK file_prog PSFONT_PATH EXTENSIONS_FALSE EXTENSIONS_TRUE lispdir EMACSLOADPATH EMACS POSUB INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS XGETTEXT_EXTRA_OPTIONS MSGMERGE_FOR_MSGFMT_OPTION MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS BDW_GC_LIBS BDW_GC_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG GL_CFLAG_GNULIB_WARNINGS GL_CFLAG_ALLOW_WARNINGS gltests_WITNESS GL_GNULIB_TOWCTRANS GL_GNULIB_WCTRANS GL_GNULIB_ISWCTYPE GL_GNULIB_WCTYPE GL_GNULIB_ISWXDIGIT GL_GNULIB_ISWDIGIT GL_GNULIB_ISWBLANK REPLACE_TOWLOWER REPLACE_ISWCNTRL HAVE_WCTYPE_H NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H NEXT_WCTYPE_H HAVE_ISWCNTRL REPLACE_ISWXDIGIT REPLACE_ISWDIGIT REPLACE_ISWBLANK HAVE_WCTRANS_T HAVE_WCTYPE_T HAVE_ISWBLANK HAVE_CRTDEFS_H HAVE_WINT_T HAVE_FEATURES_H NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H HAVE_UNISTD_H NEXT_AS_FIRST_DIRECTIVE_UNISTD_H NEXT_UNISTD_H GL_GNULIB_MDA_TZSET GL_GNULIB_TZSET GL_GNULIB_TIME_RZ GL_GNULIB_TIME_R GL_GNULIB_TIMESPEC_GETRES GL_GNULIB_TIMESPEC_GET GL_GNULIB_TIMEGM GL_GNULIB_STRPTIME GL_GNULIB_STRFTIME GL_GNULIB_NANOSLEEP GL_GNULIB_LOCALTIME GL_GNULIB_MKTIME GL_GNULIB_CTIME TIME_H_DEFINES_TIME_UTC UNISTD_H_DEFINES_STRUCT_TIMESPEC PTHREAD_H_DEFINES_STRUCT_TIMESPEC SYS_TIME_H_DEFINES_STRUCT_TIMESPEC TIME_H_DEFINES_STRUCT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_TIME_H NEXT_TIME_H REPLACE_LOCALTIME REPLACE_GMTIME GNULIB_GETTIMEOFDAY REPLACE_TZSET REPLACE_TIMESPEC_GET REPLACE_TIMEGM REPLACE_STRFTIME REPLACE_NANOSLEEP REPLACE_MKTIME REPLACE_LOCALTIME_R REPLACE_CTIME HAVE_TIMEZONE_T HAVE_TIMESPEC_GETRES HAVE_TIMESPEC_GET HAVE_TIMEGM HAVE_STRPTIME HAVE_NANOSLEEP HAVE_DECL_LOCALTIME_R HAVE_SYS_UIO_H NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H NEXT_SYS_UIO_H WINDOWS_STAT_INODES WINDOWS_64_BIT_OFF_T NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H NEXT_SYS_TYPES_H GL_GNULIB_ACCEPT4 GL_GNULIB_SHUTDOWN GL_GNULIB_SETSOCKOPT GL_GNULIB_SENDTO GL_GNULIB_RECVFROM GL_GNULIB_SEND GL_GNULIB_RECV GL_GNULIB_LISTEN GL_GNULIB_GETSOCKOPT GL_GNULIB_GETSOCKNAME GL_GNULIB_GETPEERNAME GL_GNULIB_BIND GL_GNULIB_ACCEPT GL_GNULIB_CONNECT GL_GNULIB_SOCKET HAVE_WS2TCPIP_H HAVE_SYS_SOCKET_H NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H NEXT_SYS_SOCKET_H HAVE_ACCEPT4 HAVE_SA_FAMILY_T HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY HAVE_STRUCT_SOCKADDR_STORAGE GL_COND_OBJ_STRVERSCMP_FALSE GL_COND_OBJ_STRVERSCMP_TRUE GL_COND_OBJ_STRNLEN_FALSE GL_COND_OBJ_STRNLEN_TRUE GL_COND_OBJ_STRNDUP_FALSE GL_COND_OBJ_STRNDUP_TRUE NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H GL_COND_OBJ_STRERROR_OVERRIDE_FALSE GL_COND_OBJ_STRERROR_OVERRIDE_TRUE GL_COND_OBJ_STRERROR_FALSE GL_COND_OBJ_STRERROR_TRUE GL_COND_OBJ_STRDUP_FALSE GL_COND_OBJ_STRDUP_TRUE GL_COND_OBJ_STRCHRNUL_FALSE GL_COND_OBJ_STRCHRNUL_TRUE GL_COND_OBJ_STPNCPY_FALSE GL_COND_OBJ_STPNCPY_TRUE NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H GL_COND_OBJ_STDIO_WRITE_FALSE GL_COND_OBJ_STDIO_WRITE_TRUE GL_COND_OBJ_STDIO_READ_FALSE GL_COND_OBJ_STDIO_READ_TRUE NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H GL_GENERATE_STDINT_H_FALSE GL_GENERATE_STDINT_H_TRUE STDINT_H GL_GENERATE_STDDEF_H_FALSE GL_GENERATE_STDDEF_H_TRUE STDDEF_H GL_GENERATE_STDCKDINT_H_FALSE GL_GENERATE_STDCKDINT_H_TRUE STDCKDINT_H GL_GENERATE_STDARG_H_FALSE GL_GENERATE_STDARG_H_TRUE STDARG_H NEXT_AS_FIRST_DIRECTIVE_STDARG_H NEXT_STDARG_H GL_COND_OBJ_STAT_FALSE GL_COND_OBJ_STAT_TRUE LIBSOCKET GL_COND_OBJ_SIG2STR_FALSE GL_COND_OBJ_SIG2STR_TRUE GL_COND_OBJ_SETLOCALE_LOCK_FALSE GL_COND_OBJ_SETLOCALE_LOCK_TRUE GL_COND_OBJ_RMDIR_FALSE GL_COND_OBJ_RMDIR_TRUE GL_GNULIB_MDA_TEMPNAM GL_GNULIB_MDA_PUTW GL_GNULIB_MDA_GETW GL_GNULIB_MDA_FILENO GL_GNULIB_MDA_FDOPEN GL_GNULIB_MDA_FCLOSEALL GL_GNULIB_VSPRINTF_POSIX GL_GNULIB_VSNPRINTF GL_GNULIB_VPRINTF_POSIX GL_GNULIB_VPRINTF GL_GNULIB_VFPRINTF_POSIX GL_GNULIB_VFPRINTF GL_GNULIB_VDPRINTF GL_GNULIB_VSCANF GL_GNULIB_VFSCANF GL_GNULIB_VASPRINTF GL_GNULIB_TMPFILE GL_GNULIB_STDIO_H_SIGPIPE GL_GNULIB_STDIO_H_NONBLOCKING GL_GNULIB_SPRINTF_POSIX GL_GNULIB_SNPRINTF GL_GNULIB_SCANF GL_GNULIB_RENAMEAT GL_GNULIB_RENAME GL_GNULIB_REMOVE GL_GNULIB_PUTS GL_GNULIB_PUTCHAR GL_GNULIB_PUTC GL_GNULIB_PRINTF_POSIX GL_GNULIB_PRINTF GL_GNULIB_POPEN GL_GNULIB_PERROR GL_GNULIB_PCLOSE GL_GNULIB_OBSTACK_PRINTF_POSIX GL_GNULIB_OBSTACK_PRINTF GL_GNULIB_GETLINE GL_GNULIB_GETDELIM GL_GNULIB_GETCHAR GL_GNULIB_GETC GL_GNULIB_FWRITE GL_GNULIB_FTELLO GL_GNULIB_FTELL GL_GNULIB_FSEEKO GL_GNULIB_FSEEK GL_GNULIB_FSCANF GL_GNULIB_FREOPEN GL_GNULIB_FREAD GL_GNULIB_FPUTS GL_GNULIB_FPUTC GL_GNULIB_FPURGE GL_GNULIB_FPRINTF_POSIX GL_GNULIB_FPRINTF GL_GNULIB_FOPEN_GNU GL_GNULIB_FOPEN GL_GNULIB_FGETS GL_GNULIB_FGETC GL_GNULIB_FFLUSH GL_GNULIB_FDOPEN GL_GNULIB_FCLOSE GL_GNULIB_DPRINTF GL_COND_OBJ_RENAME_FALSE GL_COND_OBJ_RENAME_TRUE REPLACE_VSPRINTF REPLACE_VSNPRINTF REPLACE_VPRINTF REPLACE_VFPRINTF REPLACE_VDPRINTF REPLACE_VASPRINTF REPLACE_TMPFILE REPLACE_STDIO_WRITE_FUNCS REPLACE_STDIO_READ_FUNCS REPLACE_SPRINTF REPLACE_SNPRINTF REPLACE_RENAMEAT REPLACE_RENAME REPLACE_REMOVE REPLACE_PRINTF REPLACE_POPEN REPLACE_PERROR REPLACE_OBSTACK_PRINTF REPLACE_GETLINE REPLACE_GETDELIM REPLACE_FTELLO REPLACE_FTELL REPLACE_FSEEKO REPLACE_FSEEK REPLACE_FREOPEN REPLACE_FPURGE REPLACE_FPRINTF REPLACE_FOPEN_FOR_FOPEN_GNU REPLACE_FOPEN REPLACE_FFLUSH REPLACE_FDOPEN REPLACE_FCLOSE REPLACE_DPRINTF HAVE_VDPRINTF HAVE_VASPRINTF HAVE_RENAMEAT HAVE_POPEN HAVE_PCLOSE HAVE_FTELLO HAVE_FSEEKO HAVE_DPRINTF HAVE_DECL_VSNPRINTF HAVE_DECL_SNPRINTF HAVE_DECL_PUTW HAVE_DECL_OBSTACK_PRINTF HAVE_DECL_GETW HAVE_DECL_GETLINE HAVE_DECL_GETDELIM HAVE_DECL_FTELLO HAVE_DECL_FSEEKO HAVE_DECL_FPURGE HAVE_DECL_FCLOSEALL GL_COND_OBJ_REALLOCARRAY_FALSE GL_COND_OBJ_REALLOCARRAY_TRUE GL_COND_OBJ_READLINKAT_FALSE GL_COND_OBJ_READLINKAT_TRUE GL_COND_OBJ_READLINK_FALSE GL_COND_OBJ_READLINK_TRUE GL_COND_OBJ_READDIR_FALSE GL_COND_OBJ_READDIR_TRUE GL_COND_OBJ_RAWMEMCHR_FALSE GL_COND_OBJ_RAWMEMCHR_TRUE GL_COND_OBJ_PIPE_FALSE GL_COND_OBJ_PIPE_TRUE GL_COND_OBJ_OPENDIR_FALSE GL_COND_OBJ_OPENDIR_TRUE GL_COND_OBJ_OPENAT_FALSE GL_COND_OBJ_OPENAT_TRUE GL_COND_OBJ_OPEN_FALSE GL_COND_OBJ_OPEN_TRUE GL_COND_OBJ_OBSTACK_FALSE GL_COND_OBJ_OBSTACK_TRUE GL_COND_OBJ_MSVC_NOTHROW_FALSE GL_COND_OBJ_MSVC_NOTHROW_TRUE GL_COND_OBJ_MSVC_INVAL_FALSE GL_COND_OBJ_MSVC_INVAL_TRUE GL_COND_OBJ_MEMRCHR_FALSE GL_COND_OBJ_MEMRCHR_TRUE GL_COND_OBJ_MEMPCPY_FALSE GL_COND_OBJ_MEMPCPY_TRUE GL_GNULIB_MDA_STRDUP GL_GNULIB_MDA_MEMCCPY GL_GNULIB_STRVERSCMP GL_GNULIB_STRSIGNAL GL_GNULIB_SIGDESCR_NP GL_GNULIB_SIGABBREV_NP GL_GNULIB_STRERRORNAME_NP GL_GNULIB_STRERROR_R GL_GNULIB_STRERROR GL_GNULIB_MBSTOK_R GL_GNULIB_MBSSEP GL_GNULIB_MBSSPN GL_GNULIB_MBSPBRK GL_GNULIB_MBSCSPN GL_GNULIB_MBSCASESTR GL_GNULIB_MBSPCASECMP GL_GNULIB_MBSNCASECMP GL_GNULIB_MBSCASECMP GL_GNULIB_MBSSTR GL_GNULIB_MBSRCHR GL_GNULIB_MBSCHR GL_GNULIB_MBSNLEN GL_GNULIB_MBSLEN GL_GNULIB_STRTOK_R GL_GNULIB_STRCASESTR GL_GNULIB_STRSTR GL_GNULIB_STRSEP GL_GNULIB_STRPBRK GL_GNULIB_STRNLEN GL_GNULIB_STRNDUP GL_GNULIB_STRNCAT GL_GNULIB_STRDUP GL_GNULIB_STRCHRNUL GL_GNULIB_STPNCPY GL_GNULIB_STPCPY GL_GNULIB_RAWMEMCHR GL_GNULIB_MEMSET_EXPLICIT GL_GNULIB_MEMRCHR GL_GNULIB_MEMPCPY GL_GNULIB_MEMMEM GL_GNULIB_MEMCHR GL_GNULIB_FFSLL GL_GNULIB_FFSL GL_GNULIB_EXPLICIT_BZERO GL_COND_OBJ_MEMCHR_FALSE GL_COND_OBJ_MEMCHR_TRUE UNDEFINE_STRTOK_R REPLACE_STRSIGNAL REPLACE_STRERRORNAME_NP REPLACE_STRERROR_R REPLACE_STRERROR REPLACE_STRTOK_R REPLACE_STRCASESTR REPLACE_STRSTR REPLACE_STRNLEN REPLACE_STRNDUP REPLACE_STRNCAT REPLACE_STRDUP REPLACE_STRCHRNUL REPLACE_STPNCPY REPLACE_STPCPY REPLACE_MEMPCPY REPLACE_MEMMEM REPLACE_MEMCHR REPLACE_FFSLL HAVE_STRVERSCMP HAVE_DECL_STRSIGNAL HAVE_SIGDESCR_NP HAVE_SIGABBREV_NP HAVE_STRERRORNAME_NP HAVE_DECL_STRERROR_R HAVE_DECL_STRTOK_R HAVE_STRCASESTR HAVE_STRSEP HAVE_STRPBRK HAVE_DECL_STRNLEN HAVE_DECL_STRNDUP HAVE_DECL_STRDUP HAVE_STRCHRNUL HAVE_STPNCPY HAVE_STPCPY HAVE_RAWMEMCHR HAVE_DECL_MEMRCHR HAVE_MEMSET_EXPLICIT HAVE_MEMPCPY HAVE_DECL_MEMMEM HAVE_FFSLL HAVE_FFSL HAVE_EXPLICIT_BZERO HAVE_MBSLEN GL_COND_OBJ_MBSINIT_FALSE GL_COND_OBJ_MBSINIT_TRUE GL_GNULIB_MDA_WCSDUP GL_GNULIB_WCSFTIME GL_GNULIB_WCSWIDTH GL_GNULIB_WCSTOK GL_GNULIB_WCSSTR GL_GNULIB_WCSPBRK GL_GNULIB_WCSSPN GL_GNULIB_WCSCSPN GL_GNULIB_WCSRCHR GL_GNULIB_WCSCHR GL_GNULIB_WCSDUP GL_GNULIB_WCSXFRM GL_GNULIB_WCSCOLL GL_GNULIB_WCSNCASECMP GL_GNULIB_WCSCASECMP GL_GNULIB_WCSNCMP GL_GNULIB_WCSCMP GL_GNULIB_WCSNCAT GL_GNULIB_WCSCAT GL_GNULIB_WCPNCPY GL_GNULIB_WCSNCPY GL_GNULIB_WCPCPY GL_GNULIB_WCSCPY GL_GNULIB_WCSNLEN GL_GNULIB_WCSLEN GL_GNULIB_WMEMSET GL_GNULIB_WMEMPCPY GL_GNULIB_WMEMMOVE GL_GNULIB_WMEMCPY GL_GNULIB_WMEMCMP GL_GNULIB_WMEMCHR GL_GNULIB_WCWIDTH GL_GNULIB_WCSNRTOMBS GL_GNULIB_WCSRTOMBS GL_GNULIB_WCRTOMB GL_GNULIB_MBSNRTOWCS GL_GNULIB_MBSRTOWCS GL_GNULIB_MBRLEN GL_GNULIB_MBRTOWC GL_GNULIB_MBSINIT GL_GNULIB_WCTOB GL_GNULIB_BTOWC HAVE_VISIBILITY CFLAG_VISIBILITY GL_COND_OBJ_MBRTOWC_FALSE GL_COND_OBJ_MBRTOWC_TRUE LIB_MBRTOWC MBRTOWC_LIB LOCALE_ZH_CN LOCALE_FR_UTF8 LOCALE_JA REPLACE_WMEMPCPY REPLACE_WCSTOK REPLACE_WCSFTIME REPLACE_WCSWIDTH REPLACE_WCWIDTH REPLACE_WCSNRTOMBS REPLACE_WCSRTOMBS REPLACE_WCRTOMB REPLACE_MBSNRTOWCS REPLACE_MBSRTOWCS REPLACE_MBRLEN REPLACE_MBRTOWC REPLACE_MBSINIT REPLACE_WCTOB REPLACE_BTOWC REPLACE_MBSTATE_T HAVE_DECL_WCWIDTH HAVE_DECL_WCSDUP HAVE_DECL_WCTOB HAVE_WCSFTIME HAVE_WCSWIDTH HAVE_WCSTOK HAVE_WCSSTR HAVE_WCSPBRK HAVE_WCSSPN HAVE_WCSCSPN HAVE_WCSRCHR HAVE_WCSCHR HAVE_WCSDUP HAVE_WCSXFRM HAVE_WCSCOLL HAVE_WCSNCASECMP HAVE_WCSCASECMP HAVE_WCSNCMP HAVE_WCSCMP HAVE_WCSNCAT HAVE_WCSCAT HAVE_WCPNCPY HAVE_WCSNCPY HAVE_WCPCPY HAVE_WCSCPY HAVE_WCSNLEN HAVE_WCSLEN HAVE_WMEMSET HAVE_WMEMPCPY HAVE_WMEMMOVE HAVE_WMEMCPY HAVE_WMEMCMP HAVE_WMEMCHR HAVE_WCSNRTOMBS HAVE_WCSRTOMBS HAVE_WCRTOMB HAVE_MBSNRTOWCS HAVE_MBSRTOWCS HAVE_MBRLEN HAVE_MBRTOWC HAVE_MBSINIT HAVE_BTOWC GL_COND_OBJ_LSTAT_FALSE GL_COND_OBJ_LSTAT_TRUE GL_GNULIB_LOCALENAME GL_GNULIB_DUPLOCALE GL_GNULIB_SETLOCALE_NULL GL_GNULIB_SETLOCALE GL_GNULIB_LOCALECONV NEXT_AS_FIRST_DIRECTIVE_LOCALE_H NEXT_LOCALE_H HAVE_XLOCALE_H NEXT_AS_FIRST_DIRECTIVE_STDDEF_H NEXT_STDDEF_H HAVE_WCHAR_T HAVE_MAX_ALIGN_T REPLACE_NULL LOCALENAME_ENHANCE_LOCALE_FUNCS REPLACE_STRUCT_LCONV REPLACE_FREELOCALE REPLACE_DUPLOCALE REPLACE_NEWLOCALE REPLACE_SETLOCALE REPLACE_LOCALECONV HAVE_FREELOCALE HAVE_DUPLOCALE HAVE_NEWLOCALE LOCALCHARSET_TESTS_ENVIRONMENT GL_GENERATE_LIMITS_H_FALSE GL_GENERATE_LIMITS_H_TRUE LIMITS_H GL_GNULIB_STRTOUMAX GL_GNULIB_STRTOIMAX GL_GNULIB_IMAXDIV GL_GNULIB_IMAXABS NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H NEXT_INTTYPES_H UINT64_MAX_EQ_ULONG_MAX UINT32_MAX_LT_UINTMAX_MAX PRIPTR_PREFIX INT64_MAX_EQ_LONG_MAX INT32_MAX_LT_INTMAX_MAX REPLACE_STRTOUMAX REPLACE_STRTOIMAX REPLACE_IMAXDIV REPLACE_IMAXABS HAVE_IMAXDIV HAVE_IMAXABS HAVE_IMAXDIV_T HAVE_DECL_STRTOUMAX HAVE_DECL_STRTOIMAX HAVE_DECL_IMAXDIV HAVE_DECL_IMAXABS HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H HAVE_C99_STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX SIG_ATOMIC_T_SUFFIX SIZE_T_SUFFIX PTRDIFF_T_SUFFIX HAVE_SIGNED_WINT_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_SIG_ATOMIC_T BITSIZEOF_WINT_T BITSIZEOF_WCHAR_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_PTRDIFF_T APPLE_UNIVERSAL_BUILD HAVE_STDINT_H NEXT_AS_FIRST_DIRECTIVE_STDINT_H NEXT_STDINT_H HAVE_SYS_TYPES_H HAVE_INTTYPES_H HAVE_WCHAR_H GNULIBHEADERS_OVERRIDE_WINT_T NEXT_AS_FIRST_DIRECTIVE_LIMITS_H NEXT_LIMITS_H LIB_HARD_LOCALE HARD_LOCALE_LIB LIB_SETLOCALE_NULL SETLOCALE_NULL_LIB LIB_SCHED_YIELD SCHED_YIELD_LIB LIBPMULTITHREAD LIBPTHREAD LTLIBINTL LIBINTL GL_COND_OBJ_GETPROGNAME_FALSE GL_COND_OBJ_GETPROGNAME_TRUE GL_COND_OBJ_GETHOSTNAME_FALSE GL_COND_OBJ_GETHOSTNAME_TRUE GETHOSTNAME_LIB GL_COND_OBJ_GETDTABLESIZE_FALSE GL_COND_OBJ_GETDTABLESIZE_TRUE GL_COND_OBJ_GETCWD_LGPL_FALSE GL_COND_OBJ_GETCWD_LGPL_TRUE GL_COND_OBJ_FSTATAT_FALSE GL_COND_OBJ_FSTATAT_TRUE GL_GNULIB_MDA_UMASK GL_GNULIB_MDA_MKDIR GL_GNULIB_MDA_CHMOD GL_GNULIB_OVERRIDES_STRUCT_STAT GL_GNULIB_UTIMENSAT GL_GNULIB_STAT GL_GNULIB_MKNODAT GL_GNULIB_MKNOD GL_GNULIB_MKFIFOAT GL_GNULIB_MKFIFO GL_GNULIB_MKDIRAT GL_GNULIB_MKDIR GL_GNULIB_LSTAT GL_GNULIB_LCHMOD GL_GNULIB_GETUMASK GL_GNULIB_FUTIMENS GL_GNULIB_FSTATAT GL_GNULIB_FSTAT GL_GNULIB_FCHMODAT GL_GNULIB_CHMOD WINDOWS_64_BIT_ST_SIZE WINDOWS_STAT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H GL_COND_OBJ_FSTAT_FALSE GL_COND_OBJ_FSTAT_TRUE REPLACE_UTIMENSAT REPLACE_STAT REPLACE_MKNODAT REPLACE_MKNOD REPLACE_MKFIFOAT REPLACE_MKFIFO REPLACE_MKDIR REPLACE_LSTAT REPLACE_FUTIMENS REPLACE_FSTATAT REPLACE_FSTAT REPLACE_FCHMODAT REPLACE_CHMOD HAVE_UTIMENSAT HAVE_MKNODAT HAVE_MKNOD HAVE_MKFIFOAT HAVE_MKFIFO HAVE_MKDIRAT HAVE_LSTAT HAVE_LCHMOD HAVE_GETUMASK HAVE_FUTIMENS HAVE_FSTATAT HAVE_FCHMODAT GL_COND_OBJ_FREE_FALSE GL_COND_OBJ_FREE_TRUE GL_COND_OBJ_FDOPENDIR_FALSE GL_COND_OBJ_FDOPENDIR_TRUE NEXT_AS_FIRST_DIRECTIVE_FCNTL_H NEXT_FCNTL_H GL_GNULIB_MDA_OPEN GL_GNULIB_MDA_CREAT GL_GNULIB_OPENAT GL_GNULIB_OPEN GL_GNULIB_NONBLOCKING GL_GNULIB_FCNTL GL_GNULIB_CREAT GL_COND_OBJ_FCNTL_FALSE GL_COND_OBJ_FCNTL_TRUE REPLACE_OPENAT REPLACE_OPEN REPLACE_FCNTL REPLACE_CREAT HAVE_OPENAT HAVE_FCNTL GL_COND_OBJ_FCHDIR_FALSE GL_COND_OBJ_FCHDIR_TRUE GL_GENERATE_ERROR_H_FALSE GL_GENERATE_ERROR_H_TRUE ERROR_H GL_COND_OBJ_ERROR_FALSE GL_COND_OBJ_ERROR_TRUE REPLACE_ERROR_AT_LINE REPLACE_ERROR HAVE_ERROR_AT_LINE HAVE_ERROR HAVE_ERROR_H NEXT_AS_FIRST_DIRECTIVE_ERROR_H NEXT_ERROR_H GL_GENERATE_ERRNO_H_FALSE GL_GENERATE_ERRNO_H_TRUE ERRNO_H EOVERFLOW_VALUE EOVERFLOW_HIDDEN ENOLINK_VALUE ENOLINK_HIDDEN EMULTIHOP_VALUE EMULTIHOP_HIDDEN NEXT_AS_FIRST_DIRECTIVE_ERRNO_H NEXT_ERRNO_H GL_COND_OBJ_DUP2_FALSE GL_COND_OBJ_DUP2_TRUE GL_COND_OBJ_DUP_FALSE GL_COND_OBJ_DUP_TRUE GL_COND_OBJ_DIRFD_FALSE GL_COND_OBJ_DIRFD_TRUE HAVE_DIRENT_H NEXT_AS_FIRST_DIRECTIVE_DIRENT_H NEXT_DIRENT_H GL_GNULIB_ALPHASORT GL_GNULIB_SCANDIR GL_GNULIB_FDOPENDIR GL_GNULIB_DIRFD GL_GNULIB_CLOSEDIR GL_GNULIB_REWINDDIR GL_GNULIB_READDIR GL_GNULIB_OPENDIR GL_COND_OBJ_CLOSEDIR_FALSE GL_COND_OBJ_CLOSEDIR_TRUE REPLACE_FDOPENDIR REPLACE_DIRFD REPLACE_CLOSEDIR REPLACE_OPENDIR HAVE_ALPHASORT HAVE_SCANDIR HAVE_FDOPENDIR HAVE_DECL_FDOPENDIR HAVE_DECL_DIRFD HAVE_CLOSEDIR HAVE_REWINDDIR HAVE_READDIR HAVE_OPENDIR GL_COND_OBJ_CLOSE_FALSE GL_COND_OBJ_CLOSE_TRUE HAVE_WINSOCK2_H HAVE_MSVC_INVALID_PARAMETER_HANDLER GL_COND_OBJ_CHDIR_LONG_FALSE GL_COND_OBJ_CHDIR_LONG_TRUE UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H UNISTD_H_HAVE_SYS_RANDOM_H REPLACE_WRITE REPLACE_USLEEP REPLACE_UNLINKAT REPLACE_UNLINK REPLACE_TTYNAME_R REPLACE_TRUNCATE REPLACE_SYMLINKAT REPLACE_SYMLINK REPLACE_SLEEP REPLACE_SETHOSTNAME REPLACE_RMDIR REPLACE_READLINKAT REPLACE_READLINK REPLACE_READ REPLACE_PWRITE REPLACE_PREAD REPLACE_PIPE2 REPLACE_LSEEK REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY REPLACE_GETPASS_FOR_GETPASS_GNU REPLACE_GETPASS REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R REPLACE_GETENTROPY REPLACE_GETDTABLESIZE REPLACE_GETDOMAINNAME REPLACE_GETCWD REPLACE_FTRUNCATE REPLACE_FDATASYNC REPLACE_FCHOWNAT REPLACE_FACCESSAT REPLACE_EXECVPE REPLACE_EXECVP REPLACE_EXECVE REPLACE_EXECV REPLACE_EXECLP REPLACE_EXECLE REPLACE_EXECL REPLACE_DUP3 REPLACE_DUP2 REPLACE_DUP REPLACE_COPY_FILE_RANGE REPLACE_CLOSE REPLACE_CHOWN REPLACE_ACCESS HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R HAVE_DECL_TRUNCATE HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE HAVE_DECL_GETLOGIN_R HAVE_DECL_GETLOGIN HAVE_DECL_GETDOMAINNAME HAVE_DECL_FDATASYNC HAVE_DECL_FCHDIR HAVE_DECL_EXECVPE HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT HAVE_SYMLINKAT HAVE_SYMLINK HAVE_SLEEP HAVE_SETHOSTNAME HAVE_READLINKAT HAVE_READLINK HAVE_PWRITE HAVE_PREAD HAVE_PIPE2 HAVE_PIPE HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER HAVE_GETPASS HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME HAVE_GETGROUPS HAVE_GETENTROPY HAVE_GETDTABLESIZE HAVE_FTRUNCATE HAVE_FSYNC HAVE_FDATASYNC HAVE_FCHOWNAT HAVE_FCHDIR HAVE_FACCESSAT HAVE_EXECVPE HAVE_EUIDACCESS HAVE_DUP3 HAVE_COPY_FILE_RANGE HAVE_CHOWN GL_GNULIB_MDA_WRITE GL_GNULIB_MDA_UNLINK GL_GNULIB_MDA_SWAB GL_GNULIB_MDA_RMDIR GL_GNULIB_MDA_READ GL_GNULIB_MDA_LSEEK GL_GNULIB_MDA_ISATTY GL_GNULIB_MDA_GETPID GL_GNULIB_MDA_GETCWD GL_GNULIB_MDA_EXECVPE GL_GNULIB_MDA_EXECVP GL_GNULIB_MDA_EXECVE GL_GNULIB_MDA_EXECV GL_GNULIB_MDA_EXECLP GL_GNULIB_MDA_EXECLE GL_GNULIB_MDA_EXECL GL_GNULIB_MDA_DUP2 GL_GNULIB_MDA_DUP GL_GNULIB_MDA_CLOSE GL_GNULIB_MDA_CHDIR GL_GNULIB_MDA_ACCESS GL_GNULIB_WRITE GL_GNULIB_USLEEP GL_GNULIB_UNLINKAT GL_GNULIB_UNLINK GL_GNULIB_UNISTD_H_SIGPIPE GL_GNULIB_UNISTD_H_NONBLOCKING GL_GNULIB_UNISTD_H_GETOPT GL_GNULIB_TTYNAME_R GL_GNULIB_TRUNCATE GL_GNULIB_SYMLINKAT GL_GNULIB_SYMLINK GL_GNULIB_SLEEP GL_GNULIB_SETHOSTNAME GL_GNULIB_RMDIR GL_GNULIB_READLINKAT GL_GNULIB_READLINK GL_GNULIB_READ GL_GNULIB_PWRITE GL_GNULIB_PREAD GL_GNULIB_PIPE2 GL_GNULIB_PIPE GL_GNULIB_LSEEK GL_GNULIB_LINKAT GL_GNULIB_LINK GL_GNULIB_LCHOWN GL_GNULIB_ISATTY GL_GNULIB_GROUP_MEMBER GL_GNULIB_GETUSERSHELL GL_GNULIB_GETPASS_GNU GL_GNULIB_GETPASS GL_GNULIB_GETPAGESIZE GL_GNULIB_GETOPT_POSIX GL_GNULIB_GETLOGIN_R GL_GNULIB_GETLOGIN GL_GNULIB_GETHOSTNAME GL_GNULIB_GETGROUPS GL_GNULIB_GETENTROPY GL_GNULIB_GETDTABLESIZE GL_GNULIB_GETDOMAINNAME GL_GNULIB_GETCWD GL_GNULIB_FTRUNCATE GL_GNULIB_FSYNC GL_GNULIB_FDATASYNC GL_GNULIB_FCHOWNAT GL_GNULIB_FCHDIR GL_GNULIB_FACCESSAT GL_GNULIB_EXECVPE GL_GNULIB_EXECVP GL_GNULIB_EXECVE GL_GNULIB_EXECV GL_GNULIB_EXECLP GL_GNULIB_EXECLE GL_GNULIB_EXECL GL_GNULIB_EUIDACCESS GL_GNULIB_ENVIRON GL_GNULIB_DUP3 GL_GNULIB_DUP2 GL_GNULIB_DUP GL_GNULIB_COPY_FILE_RANGE GL_GNULIB_CLOSE GL_GNULIB_CHOWN GL_GNULIB_CHDIR GL_GNULIB_ACCESS GL_COND_OBJ_CANONICALIZE_LGPL_FALSE GL_COND_OBJ_CANONICALIZE_LGPL_TRUE GL_GNULIB_MDA_PUTENV GL_GNULIB_MDA_MKTEMP GL_GNULIB_MDA_GCVT GL_GNULIB_MDA_FCVT GL_GNULIB_MDA_ECVT GL_GNULIB_WCTOMB GL_GNULIB_UNSETENV GL_GNULIB_UNLOCKPT GL_GNULIB_SYSTEM_POSIX GL_GNULIB_STRTOULL GL_GNULIB_STRTOUL GL_GNULIB_STRTOLL GL_GNULIB_STRTOLD GL_GNULIB_STRTOL GL_GNULIB_STRTOD GL_GNULIB_SETENV GL_GNULIB_SECURE_GETENV GL_GNULIB_RPMATCH GL_GNULIB_REALPATH GL_GNULIB_REALLOC_POSIX GL_GNULIB_REALLOC_GNU GL_GNULIB_REALLOCARRAY GL_GNULIB_RANDOM_R GL_GNULIB_RANDOM GL_GNULIB_QSORT_R GL_GNULIB_PUTENV GL_GNULIB_PTSNAME_R GL_GNULIB_PTSNAME GL_GNULIB_POSIX_OPENPT GL_GNULIB_POSIX_MEMALIGN GL_GNULIB_MKSTEMPS GL_GNULIB_MKSTEMP GL_GNULIB_MKOSTEMPS GL_GNULIB_MKOSTEMP GL_GNULIB_MKDTEMP GL_GNULIB_MBTOWC GL_GNULIB_MALLOC_POSIX GL_GNULIB_MALLOC_GNU GL_GNULIB_GRANTPT GL_GNULIB_GETSUBOPT GL_GNULIB_GETPROGNAME GL_GNULIB_GETLOADAVG GL_GNULIB_FREE_POSIX GL_GNULIB_CANONICALIZE_FILE_NAME GL_GNULIB_CALLOC_POSIX GL_GNULIB_CALLOC_GNU GL_GNULIB_ATOLL GL_GNULIB_ALIGNED_ALLOC GL_GNULIB__EXIT REPLACE_WCTOMB REPLACE_UNSETENV REPLACE_STRTOULL REPLACE_STRTOUL REPLACE_STRTOLL REPLACE_STRTOLD REPLACE_STRTOL REPLACE_STRTOD REPLACE_SETSTATE REPLACE_SETENV REPLACE_REALPATH REPLACE_REALLOCARRAY REPLACE_REALLOC_FOR_REALLOC_POSIX REPLACE_REALLOC_FOR_REALLOC_GNU REPLACE_RANDOM_R REPLACE_RANDOM REPLACE_QSORT_R REPLACE_PUTENV REPLACE_PTSNAME_R REPLACE_PTSNAME REPLACE_POSIX_OPENPT REPLACE_POSIX_MEMALIGN REPLACE_MKSTEMP REPLACE_MKOSTEMPS REPLACE_MKOSTEMP REPLACE_MBTOWC REPLACE_MALLOC_FOR_MALLOC_POSIX REPLACE_MALLOC_FOR_MALLOC_GNU REPLACE_INITSTATE REPLACE_GETSUBOPT REPLACE_GETPROGNAME REPLACE_GETLOADAVG REPLACE_FREE REPLACE_CANONICALIZE_FILE_NAME REPLACE_CALLOC_FOR_CALLOC_POSIX REPLACE_CALLOC_FOR_CALLOC_GNU REPLACE_ALIGNED_ALLOC REPLACE__EXIT HAVE_DECL_UNSETENV HAVE_UNLOCKPT HAVE_SYS_LOADAVG_H HAVE_STRUCT_RANDOM_DATA HAVE_STRTOULL HAVE_STRTOUL HAVE_STRTOLL HAVE_STRTOLD HAVE_STRTOL HAVE_STRTOD HAVE_DECL_SETSTATE HAVE_SETSTATE HAVE_DECL_SETENV HAVE_SETENV HAVE_SECURE_GETENV HAVE_RPMATCH HAVE_REALPATH HAVE_REALLOCARRAY HAVE_RANDOM_R HAVE_RANDOM_H HAVE_RANDOM HAVE_QSORT_R HAVE_PTSNAME_R HAVE_PTSNAME HAVE_POSIX_OPENPT HAVE_POSIX_MEMALIGN HAVE_MKSTEMPS HAVE_MKSTEMP HAVE_MKOSTEMPS HAVE_MKOSTEMP HAVE_MKDTEMP HAVE_MBTOWC HAVE_DECL_INITSTATE HAVE_INITSTATE HAVE_GRANTPT HAVE_GETSUBOPT HAVE_GETPROGNAME HAVE_DECL_GETLOADAVG HAVE_DECL_GCVT HAVE_DECL_FCVT HAVE_DECL_ECVT HAVE_CANONICALIZE_FILE_NAME HAVE_ATOLL HAVE_ALIGNED_ALLOC HAVE__EXIT GL_GENERATE_ASSERT_H_FALSE GL_GENERATE_ASSERT_H_TRUE ASSERT_H NEXT_AS_FIRST_DIRECTIVE_ASSERT_H NEXT_ASSERT_H PRAGMA_COLUMNS PRAGMA_SYSTEM_HEADER INCLUDE_NEXT_AS_FIRST_DIRECTIVE INCLUDE_NEXT GL_GENERATE_ALLOCA_H_FALSE GL_GENERATE_ALLOCA_H_TRUE ALLOCA_H HAVE_ALLOCA_H ALLOCA GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL DLLTOOL OBJDUMP FILECMD NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL LEXLIB LEX_OUTPUT_ROOT LEX YFLAGS YACC ISYSTEM WARN_CFLAGS RANLIB ARFLAGS ac_ct_AR AR EGREP GREP CPP host_os host_vendor host_cpu host build_os build_vendor build_cpu build am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC PERL LN_S GNU_PACKAGE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V CSCOPE ETAGS CTAGS am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_gcc_warnings enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_cross_guesses with_packager with_packager_version with_packager_bug_reports enable_nls enable_rpath with_libiconv_prefix with_libintl_prefix with_lispdir enable_paths enable_extensions with_encoding enable_year2038 enable_largefile ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP YACC YFLAGS LT_SYS_LIBRARY_PATH PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR BDW_GC_CFLAGS BDW_GC_LIBS EMACS EMACSLOADPATH' ac_subdirs_all='ogonkify' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures GNU a2ps 4.15.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/a2ps] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of GNU a2ps 4.15.5:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-gcc-warnings turn on lots of GCC warnings (for developers) --enable-shared[=PKGS] build shared libraries [default=no] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-cross-guesses={conservative|risky} specify policy for cross-compilation guesses --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --enable-paths hard code the path of the tools --disable-extensions small foot print installation --enable-year2038 support timestamps after 2038 --disable-largefile omit support for large files Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-packager String identifying the packager of this software --with-packager-version Packager-specific version information --with-packager-bug-reports Packager info for bug reports (URL/e-mail/...) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-lispdir override the default lisp directory --with-encoding=enc specify the default encoding (ascii, latin1, latin2... latin6, hp etc.) [default=latin1] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> LIBS libraries to pass to the linker, e.g. -l<library> CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CPP C preprocessor YACC The `Yet Another Compiler Compiler' implementation to use. Defaults to the first program found out of: `bison -y', `byacc', `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. LT_SYS_LIBRARY_PATH User-defined run-time library search path. PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path BDW_GC_CFLAGS C compiler flags for BDW_GC, overriding pkg-config BDW_GC_LIBS linker flags for BDW_GC, overriding pkg-config EMACS the Emacs editor command EMACSLOADPATH the Emacs library search path Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to <bug-a2ps@gnu.org>. GNU a2ps home page: <https://www.gnu.org/software/a2ps/>. General help using GNU software: <https://www.gnu.org/gethelp/>. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF GNU a2ps configure 4.15.5 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2023 Free Software Foundation, Inc. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case <limits.h> declares $2. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. */ #include <limits.h> #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main (void) { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_try_run LINENO # ---------------------- # Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that # executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: program exited with status $ac_status" >&5 printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR # ------------------------------------------------------------------ # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. ac_fn_check_decl () { ac_save_ac_compile="$ac_compile" if test -n "$ac_compile_for_check_decl"; then ac_compile="$ac_compile_for_check_decl" fi as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 printf %s "checking whether $as_decl_name is declared... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` eval ac_save_FLAGS=\$$6 as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval $6=\$ac_save_FLAGS fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ac_compile="$ac_save_ac_compile" } # ac_fn_check_decl # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=$ac_mid; break else $as_nop as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_lo=$ac_mid; break else $as_nop as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done else $as_nop ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=$ac_mid else $as_nop as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval (void) { return $2; } static unsigned long int ulongval (void) { return $2; } #include <stdio.h> #include <stdlib.h> int main (void) { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : echo >>conftest.val; read $3 <conftest.val; ac_retval=0 else $as_nop ac_retval=1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext rm -f conftest.val fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including # INCLUDES, setting cache variable VAR accordingly. ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 printf %s "checking for $2.$3... " >&6; } if eval test \${$4+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main (void) { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$4=yes" else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main (void) { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$4=yes" else $as_nop eval "$4=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$4 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by GNU a2ps $as_me 4.15.5, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include <stddef.h> #include <stdarg.h> struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated as an "x". The following induces an error, until -std is added to get proper ANSI mode. Curiously \x00 != x always comes out true, for an array size at least. It is necessary to write \x00 == 0 to get something that is true only with -std. */ int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) '\''x'\'' int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' // Does the compiler advertise C99 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif #include <stdbool.h> extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' // Does the compiler advertise C11 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H" as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H" as_fn_append ac_func_c_list " pathconf HAVE_PATHCONF" as_fn_append ac_func_c_list " canonicalize_file_name HAVE_CANONICALIZE_FILE_NAME" as_fn_append ac_func_c_list " realpath HAVE_REALPATH" as_fn_append ac_func_c_list " lstat HAVE_LSTAT" as_fn_append ac_header_c_list " sys/param.h sys_param_h HAVE_SYS_PARAM_H" as_fn_append ac_func_c_list " _set_invalid_parameter_handler HAVE__SET_INVALID_PARAMETER_HANDLER" as_fn_append ac_header_c_list " sys/socket.h sys_socket_h HAVE_SYS_SOCKET_H" as_fn_append ac_func_c_list " fchdir HAVE_FCHDIR" as_fn_append ac_header_c_list " dirent.h dirent_h HAVE_DIRENT_H" as_fn_append ac_header_c_list " error.h error_h HAVE_ERROR_H" as_fn_append ac_func_c_list " fcntl HAVE_FCNTL" as_fn_append ac_func_c_list " symlink HAVE_SYMLINK" as_fn_append ac_func_c_list " fdopendir HAVE_FDOPENDIR" as_fn_append ac_func_c_list " fstatat HAVE_FSTATAT" as_fn_append ac_func_c_list " getdtablesize HAVE_GETDTABLESIZE" as_fn_append ac_header_c_list " netdb.h netdb_h HAVE_NETDB_H" as_fn_append ac_func_c_list " getexecname HAVE_GETEXECNAME" as_fn_append ac_header_c_list " threads.h threads_h HAVE_THREADS_H" as_fn_append ac_header_c_list " limits.h limits_h HAVE_LIMITS_H" as_fn_append ac_header_c_list " xlocale.h xlocale_h HAVE_XLOCALE_H" as_fn_append ac_func_c_list " mbsinit HAVE_MBSINIT" as_fn_append ac_func_c_list " mbrtowc HAVE_MBRTOWC" as_fn_append ac_header_c_list " sys/mman.h sys_mman_h HAVE_SYS_MMAN_H" as_fn_append ac_func_c_list " mprotect HAVE_MPROTECT" as_fn_append ac_func_c_list " openat HAVE_OPENAT" as_fn_append ac_func_c_list " pipe HAVE_PIPE" as_fn_append ac_func_c_list " readlink HAVE_READLINK" as_fn_append ac_func_c_list " link HAVE_LINK" as_fn_append ac_func_c_list " renameat HAVE_RENAMEAT" as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H" as_fn_append ac_header_c_list " stdbool.h stdbool_h HAVE_STDBOOL_H" as_fn_append ac_header_c_list " stdckdint.h stdckdint_h HAVE_STDCKDINT_H" as_fn_append ac_func_c_list " strndup HAVE_STRNDUP" as_fn_append ac_header_c_list " sys/uio.h sys_uio_h HAVE_SYS_UIO_H" as_fn_append ac_header_c_list " features.h features_h HAVE_FEATURES_H" as_fn_append ac_header_c_list " crtdefs.h crtdefs_h HAVE_CRTDEFS_H" as_fn_append ac_func_c_list " iswcntrl HAVE_ISWCNTRL" as_fn_append ac_header_c_list " wctype.h wctype_h HAVE_WCTYPE_H" gt_needs="$gt_needs need-ngettext" # Auxiliary files required by this configure script. ac_aux_files="config.rpath ltmain.sh ar-lib config.guess config.sub compile missing install-sh" # Locations in which to look for auxiliary files. ac_aux_dir_candidates="${srcdir}/build-aux" # Search for a directory containing all of the required auxiliary files, # $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. # If we don't find one directory that contains all the files we need, # we report the set of missing files from the *first* directory in # $ac_aux_dir_candidates and give up. ac_missing_aux_files="" ac_first_candidate=: printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in $ac_aux_dir_candidates do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 ac_aux_dir_found=yes ac_install_sh= for ac_aux in $ac_aux_files do # As a special case, if "install-sh" is required, that requirement # can be satisfied by any of "install-sh", "install.sh", or "shtool", # and $ac_install_sh is set appropriately for whichever one is found. if test x"$ac_aux" = x"install-sh" then if test -f "${as_dir}install-sh"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 ac_install_sh="${as_dir}install-sh -c" elif test -f "${as_dir}install.sh"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 ac_install_sh="${as_dir}install.sh -c" elif test -f "${as_dir}shtool"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 ac_install_sh="${as_dir}shtool install -c" else ac_aux_dir_found=no if $ac_first_candidate; then ac_missing_aux_files="${ac_missing_aux_files} install-sh" else break fi fi else if test -f "${as_dir}${ac_aux}"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 else ac_aux_dir_found=no if $ac_first_candidate; then ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" else break fi fi fi done if test "$ac_aux_dir_found" = yes; then ac_aux_dir="$as_dir" break fi ac_first_candidate=false as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. if test -f "${ac_aux_dir}config.guess"; then ac_config_guess="$SHELL ${ac_aux_dir}config.guess" fi if test -f "${ac_aux_dir}config.sub"; then ac_config_sub="$SHELL ${ac_aux_dir}config.sub" fi if test -f "$ac_aux_dir/configure"; then ac_configure="$SHELL ${ac_aux_dir}configure" fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Initialize automake am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test ${ac_cv_path_install+y} then : printf %s "(cached) " >&6 else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac # Account for fact that we put trailing slashes in our PATH walk. case $as_dir in #(( ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 printf "%s\n" "$STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 printf "%s\n" "$ac_ct_STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 printf %s "checking for a race-free mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test ${ac_cv_path_mkdir+y} then : printf %s "(cached) " >&6 else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir ('*'coreutils) '* | \ 'BusyBox '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 printf "%s\n" "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 printf "%s\n" "$AWK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } SET_MAKE= else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test ${enable_silent_rules+y} then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 printf %s "checking whether $am_make supports nested variables... " >&6; } if test ${am_cv_make_support_nested_variables+y} then : printf %s "(cached) " >&6 else $as_nop if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='a2ps' VERSION='4.15.5' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # Variables for tags utilities; see am/tags.am if test -z "$CTAGS"; then CTAGS=ctags fi if test -z "$ETAGS"; then ETAGS=etags fi if test -z "$CSCOPE"; then CSCOPE=cscope fi # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: <https://www.gnu.org/software/coreutils/>. If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi ac_config_headers="$ac_config_headers config.h" # Define the package name GNU_PACKAGE="GNU $PACKAGE" printf "%s\n" "#define GNU_PACKAGE \"$GNU_PACKAGE\"" >>confdefs.h ## --------------------- ## ## Checks for programs. ## ## --------------------- ## for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 printf "%s\n" "$AWK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 printf %s "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 printf "%s\n" "no, using $LN_S" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } SET_MAKE= else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PERL+y} then : printf %s "(cached) " >&6 else $as_nop case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 printf "%s\n" "$PERL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Check for the C compiler and the various oddities that may exist ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else $as_nop ac_file='' fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> int main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 printf %s "checking whether $CC understands -c and -o together... " >&6; } if test ${am_cv_prog_cc_c_o+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler is clang" >&5 printf %s "checking whether the compiler is clang... " >&6; } if test ${gl_cv_compiler_clang+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __clang__ barfbarf #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_compiler_clang=no else $as_nop gl_cv_compiler_clang=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_clang" >&5 printf "%s\n" "$gl_cv_compiler_clang" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option needed when checking for declarations" >&5 printf %s "checking for compiler option needed when checking for declarations... " >&6; } if test ${gl_cv_compiler_check_decl_option+y} then : printf %s "(cached) " >&6 else $as_nop if test $gl_cv_compiler_clang = yes; then save_ac_compile="$ac_compile" ac_compile="$ac_compile -Werror=implicit-function-declaration" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration' else $as_nop gl_cv_compiler_check_decl_option=none fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_compile="$save_ac_compile" else gl_cv_compiler_check_decl_option=none fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_check_decl_option" >&5 printf "%s\n" "$gl_cv_compiler_check_decl_option" >&6; } if test "x$gl_cv_compiler_check_decl_option" != xnone; then ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" else ac_compile_for_check_decl="$ac_compile" fi DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } case $?:`cat confinc.out 2>/dev/null` in #( '0:this is the am__doit target') : case $s in #( BSD) : am__include='.include' am__quote='"' ;; #( *) : am__include='include' am__quote='' ;; esac ;; #( *) : ;; esac if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 printf "%s\n" "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test ${enable_dependency_tracking+y} then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CC_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 else $as_nop if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_header= ac_cache= for ac_item in $ac_header_c_list do if test $ac_cache; then ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then printf "%s\n" "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then ac_cache=$ac_item else ac_header=$ac_item fi done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } if test ${ac_cv_safe_to_define___extensions__+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_safe_to_define___extensions__=yes else $as_nop ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } if test ${ac_cv_should_define__xopen_source+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_should_define__xopen_source=no if test $ac_cv_header_wchar_h = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> mbstate_t x; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 #include <wchar.h> mbstate_t x; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_should_define__xopen_source=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h if test $ac_cv_header_minix_config_h = yes then : MINIX=yes printf "%s\n" "#define _MINIX 1" >>confdefs.h printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h else $as_nop MINIX= fi if test $ac_cv_safe_to_define___extensions__ = yes then : printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h fi if test $ac_cv_should_define__xopen_source = yes then : printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h fi # Make sure we can run config.sub. $SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 printf %s "checking build system type... " >&6; } if test ${ac_cv_build+y} then : printf %s "(cached) " >&6 else $as_nop ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 printf "%s\n" "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 printf %s "checking host system type... " >&6; } if test ${ac_cv_host+y} then : printf %s "(cached) " >&6 else $as_nop if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 printf "%s\n" "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac case "$host_os" in openbsd*) printf "%s\n" "#define _ISOC11_SOURCE 1" >>confdefs.h ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 printf %s "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test ${ac_cv_prog_CPP+y} then : printf %s "(cached) " >&6 else $as_nop # Double quotes because $CC needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 printf "%s\n" "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 printf %s "checking for grep that handles long lines and -e... " >&6; } if test ${ac_cv_path_GREP+y} then : printf %s "(cached) " >&6 else $as_nop if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in grep ggrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 printf "%s\n" "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 else $as_nop if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in egrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 printf %s "checking for Minix Amsterdam compiler... " >&6; } if test ${gl_cv_c_amsterdam_compiler+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ACK__ Amsterdam #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Amsterdam" >/dev/null 2>&1 then : gl_cv_c_amsterdam_compiler=yes else $as_nop gl_cv_c_amsterdam_compiler=no fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 printf "%s\n" "$gl_cv_c_amsterdam_compiler" >&6; } if test $gl_cv_c_amsterdam_compiler = yes; then if test -z "$AR"; then AR='cc -c.a' fi if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 printf "%s\n" "$AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 printf "%s\n" "$ac_ct_AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 printf %s "checking the archiver ($AR) interface... " >&6; } if test ${am_cv_ar_interface+y} then : printf %s "(cached) " >&6 else $as_nop ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO" then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 printf "%s\n" "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 printf "%s\n" "$AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 printf "%s\n" "$ac_ct_AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="ar" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -z "$ARFLAGS"; then ARFLAGS='cr' fi if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RANLIB+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 printf "%s\n" "$RANLIB" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_RANLIB+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 printf "%s\n" "$ac_ct_RANLIB" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi fi fi if test "$enable_largefile" != no then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5 printf %s "checking for $CC option to enable large file support... " >&6; } if test ${ac_cv_sys_largefile_opts+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_CC="$CC" ac_opt_found=no for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do if test x"$ac_opt" != x"none needed" then : CC="$ac_save_CC $ac_opt" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_sys_largefile_opts="$ac_opt" ac_opt_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test $ac_opt_found = no || break done CC="$ac_save_CC" test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5 printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; } ac_have_largefile=yes case $ac_cv_sys_largefile_opts in #( "none needed") : ;; #( "support not detected") : ac_have_largefile=no ;; #( "-D_FILE_OFFSET_BITS=64") : printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h ;; #( "-D_LARGE_FILES=1") : printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h ;; #( "-n32") : CC="$CC -n32" ;; #( *) : as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;; esac if test "$enable_year2038" != no then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable timestamps after Jan 2038" >&5 printf %s "checking for $CC option to enable timestamps after Jan 2038... " >&6; } if test ${ac_cv_sys_year2038_opts+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_CPPFLAGS="$CPPFLAGS" ac_opt_found=no for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do if test x"$ac_opt" != x"none needed" then : CPPFLAGS="$ac_save_CPPFLAGS $ac_opt" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <time.h> /* Check that time_t can represent 2**32 - 1 correctly. */ #define LARGE_TIME_T \\ ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 && LARGE_TIME_T % 65537 == 0) ? 1 : -1]; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_sys_year2038_opts="$ac_opt" ac_opt_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test $ac_opt_found = no || break done CPPFLAGS="$ac_save_CPPFLAGS" test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5 printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; } ac_have_year2038=yes case $ac_cv_sys_year2038_opts in #( "none needed") : ;; #( "support not detected") : ac_have_year2038=no case $enable_year2038 in #( yes) : # If we're not cross compiling and 'touch' works with a large # timestamp, then we can presume the system supports wider time_t # *somehow* and we just weren't able to detect it. One common # case that we deliberately *don't* probe for is a system that # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers # wide time_t. (It would be inappropriate for us to override an # intentional use of -m32.) Error out, demanding use of # --disable-year2038 if this is intentional. if test $cross_compiling = no then : if TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null then : case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in #( *'Feb 7 2106'* | *'Feb 7 17:10'*) : { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "this system appears to support timestamps after January 2038, but no mechanism for enabling wide 'time_t' was detected. Did you mean to build a 64-bit binary? (e.g. 'CC=\"${CC} -m64\"'.) To proceed with 32-bit time_t, configure with '--disable-year2038'. See \`config.log' for more details" "$LINENO" 5; } ;; #( *) : ;; esac fi fi ;; #( *) : ;; esac ;; #( "-D_TIME_BITS=64") : printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h ;; #( "-D__MINGW_USE_VC2005_COMPAT=1") : printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h ;; #( "-U_USE_32_BIT_TIME_T"*) : { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It will stop working after January 2038. Remove _USE_32BIT_TIME_T from the compiler flags. See \`config.log' for more details" "$LINENO" 5; } ;; #( *) : as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;; esac fi fi # Pre-early section. # Code from module absolute-header: # Code from module alignasof: # Code from module alignof: # Code from module alloca-opt: # Code from module announce-gen: # Code from module argmatch: # Code from module assert-h: # Code from module assure: # Code from module at-internal: # Code from module attribute: # Code from module backupfile: # Code from module basename-lgpl: # Code from module bootstrap: # Code from module builtin-expect: # Code from module c-ctype: # Code from module c-strcase: # Code from module c-strcaseeq: # Code from module c99: # Code from module calloc-gnu: # Code from module calloc-posix: # Code from module canonicalize-lgpl: # Code from module chdir: # Code from module chdir-long: # Code from module cloexec: # Code from module close: # Code from module closedir: # Code from module d-ino: # Code from module dirent: # Code from module dirfd: # Code from module dirname: # Code from module dirname-lgpl: # Code from module do-release-commit-and-tag: # Code from module double-slash-root: # Code from module dup: # Code from module dup2: # Code from module eloop-threshold: # Code from module errno: # Code from module error: # Code from module error-h: # Code from module exitfail: # Code from module extensions: # Code from module extern-inline: # Code from module extract-trace: # Code from module fchdir: # Code from module fcntl: # Code from module fcntl-h: # Code from module fcntl-safer: # Code from module fd-hook: # Code from module fd-safer-flag: # Code from module fdopendir: # Code from module filename: # Code from module filenamecat: # Code from module filenamecat-lgpl: # Code from module free-posix: # Code from module fstat: # Code from module fstatat: # Code from module funclib.sh: # Code from module gen-header: # Code from module gendocs: # Code from module getcwd-lgpl: # Code from module getdtablesize: # Code from module gethostname: # Code from module getprogname: # Code from module gettext-h: # Code from module glibc-internal/scratch_buffer: # Code from module gnu-web-doc-update: # Code from module gnumakefile: # Code from module gnupload: # Code from module hard-locale: # Code from module havelib: # Code from module ialloc: # Code from module idx: # Code from module include_next: # Code from module inline-source: # Code from module intprops: # Code from module inttypes-incomplete: # Code from module isdir: # Code from module largefile: # Code from module libc-config: # Code from module limits-h: # Code from module localcharset: # Code from module locale: # Code from module lstat: # Code from module maintainer-makefile: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module malloca: # Code from module manywarnings: # Code from module mbrtowc: # Code from module mbsinit: # Code from module memchr: # Code from module mempcpy: # Code from module memrchr: # Code from module minmax: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nocrash: # Code from module obstack: # Code from module open: # Code from module openat: # Code from module openat-die: # Code from module openat-h: # Code from module openat-safer: # Code from module opendir: # Code from module opendirat: # Code from module options-parser: # Code from module pathmax: # Code from module pipe-posix: # Code from module quote: # Code from module quotearg: # Code from module quotearg-simple: # Code from module rawmemchr: # Code from module readdir: # Code from module readlink: # Code from module readlinkat: # Code from module readme-release: # Code from module realloc-gnu: # Code from module realloc-posix: # Code from module reallocarray: # Code from module rename: # Code from module renameatu: # Code from module rmdir: # Code from module same-inode: # Code from module save-cwd: # Code from module setlocale-null: # Code from module sig2str: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/warn-on-use: # Code from module socketlib: # Code from module sockets: # Code from module socklen: # Code from module ssize_t: # Code from module stat: # Code from module stat-time: # Code from module std-gnu11: # Code from module stdarg: # Code from module stdbool: # Code from module stdckdint: # Code from module stddef: # Code from module stdint: # Code from module stdio: # Code from module stdlib: # Code from module stpncpy: # Code from module strchrnul: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: # Code from module strerror-override: # Code from module string: # Code from module strndup: # Code from module strnlen: # Code from module strverscmp: # Code from module sys_socket: # Code from module sys_stat: # Code from module sys_types: # Code from module sys_uio: # Code from module time: # Code from module unistd: # Code from module unistd-safer: # Code from module useless-if-before-free: # Code from module vararrays: # Code from module vc-list-files: # Code from module verify: # Code from module version-etc: # Code from module version-etc-fsf: # Code from module warnings: # Code from module wchar: # Code from module wctype-h: # Code from module xalloc: # Code from module xalloc-die: # Code from module xalloc-oversized: # Code from module xgethostname: # Code from module xstrndup: # Code from module xstrtol: # Check whether --enable-gcc-warnings was given. if test ${enable_gcc_warnings+y} then : enableval=$enable_gcc_warnings; case $enableval in yes|no) ;; *) as_fn_error $? "bad value $enableval for gcc-warnings option" "$LINENO" 5 ;; esac gl_gcc_warnings=$enableval else $as_nop gl_gcc_warnings=no fi if test "$gl_gcc_warnings" = yes; then nw= nw="$nw -Wsystem-headers" # Don’t let system headers trigger warnings nw="$nw -Wvla -Wstack-protector" # We use variable-length arrays ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$GCC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is supported" >&5 printf %s "checking whether -Wno-missing-field-initializers is supported... " >&6; } if test ${gl_cv_cc_nomfi_supported+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Werror -Wno-missing-field-initializers" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_cc_nomfi_supported=yes else $as_nop gl_cv_cc_nomfi_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5 printf "%s\n" "$gl_cv_cc_nomfi_supported" >&6; } if test "$gl_cv_cc_nomfi_supported" = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is needed" >&5 printf %s "checking whether -Wno-missing-field-initializers is needed... " >&6; } if test ${gl_cv_cc_nomfi_needed+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int f (void) { typedef struct { int a; int b; } s_t; s_t s1 = { 0, }; return s1.b; } int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_cc_nomfi_needed=no else $as_nop gl_cv_cc_nomfi_needed=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5 printf "%s\n" "$gl_cv_cc_nomfi_needed" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5 printf %s "checking whether -Wuninitialized is supported... " >&6; } if test ${gl_cv_cc_uninitialized_supported+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror -Wuninitialized" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_cc_uninitialized_supported=yes else $as_nop gl_cv_cc_uninitialized_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5 printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; } fi # List all gcc warning categories. # To compare this list to your installed GCC's, run this Bash command: # # comm -3 \ # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\).*/\1/p' manywarnings.m4; \ # awk '/^[^#]/ {print warnings}' ../build-aux/gcc-warning.spec) | sort) \ # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort) warnings= for gl_manywarn_item in -fanalyzer -fno-common \ -Wall \ -Warith-conversion \ -Wbad-function-cast \ -Wcast-align=strict \ -Wdate-time \ -Wdisabled-optimization \ -Wdouble-promotion \ -Wduplicated-branches \ -Wduplicated-cond \ -Wextra \ -Wformat-signedness \ -Winit-self \ -Winline \ -Winvalid-pch \ -Wlogical-op \ -Wmissing-declarations \ -Wmissing-include-dirs \ -Wmissing-prototypes \ -Wnested-externs \ -Wnull-dereference \ -Wold-style-definition \ -Wopenmp-simd \ -Woverlength-strings \ -Wpacked \ -Wpointer-arith \ -Wshadow \ -Wstack-protector \ -Wstrict-overflow \ -Wstrict-prototypes \ -Wsuggest-attribute=cold \ -Wsuggest-attribute=const \ -Wsuggest-attribute=format \ -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn \ -Wsuggest-attribute=pure \ -Wsuggest-final-methods \ -Wsuggest-final-types \ -Wsync-nand \ -Wsystem-headers \ -Wtrampolines \ -Wuninitialized \ -Wunknown-pragmas \ -Wunsafe-loop-optimizations \ -Wunused-macros \ -Wvariadic-macros \ -Wvector-operation-performance \ -Wvla \ -Wwrite-strings \ \ ; do as_fn_append warnings " $gl_manywarn_item" done # gcc --help=warnings outputs an unusual form for these options; list # them here so that the above 'comm' command doesn't report a false match. as_fn_append warnings ' -Warray-bounds=2' as_fn_append warnings ' -Wattribute-alias=2' as_fn_append warnings ' -Wbidi-chars=any,ucn' as_fn_append warnings ' -Wformat-overflow=2' as_fn_append warnings ' -Wformat=2' as_fn_append warnings ' -Wformat-truncation=2' as_fn_append warnings ' -Wimplicit-fallthrough=5' as_fn_append warnings ' -Wshift-overflow=2' as_fn_append warnings ' -Wuse-after-free=3' as_fn_append warnings ' -Wunused-const-variable=2' as_fn_append warnings ' -Wvla-larger-than=4031' # These are needed for older GCC versions. if test -n "$GCC"; then case `($CC --version) 2>/dev/null` in 'gcc (GCC) '[0-3].* | \ 'gcc (GCC) '4.[0-7].*) as_fn_append warnings ' -fdiagnostics-show-option' as_fn_append warnings ' -funit-at-a-time' ;; esac fi # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then as_fn_append warnings ' -Wno-missing-field-initializers' fi if test "$gl_cv_cc_uninitialized_supported" = no; then as_fn_append warnings ' -Wno-uninitialized' fi # This warning have too many false alarms in GCC 11.2.1. # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101713 as_fn_append warnings ' -Wno-analyzer-malloc-leak' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu gl_warn_set= set x $warnings; shift for gl_warn_item do case " $nw " in *" $gl_warn_item "*) ;; *) as_fn_append gl_warn_set " $gl_warn_item" ;; esac done warnings=$gl_warn_set for w in $warnings; do ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5 printf %s "checking whether C compiler handles -Werror -Wunknown-warning-option... " >&6; } if test ${gl_cv_warn_c__Werror__Wunknown_warning_option+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_warn_c__Werror__Wunknown_warning_option=yes else $as_nop gl_cv_warn_c__Werror__Wunknown_warning_option=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror__Wunknown_warning_option" >&5 printf "%s\n" "$gl_cv_warn_c__Werror__Wunknown_warning_option" >&6; } if test "x$gl_cv_warn_c__Werror__Wunknown_warning_option" = xyes then : gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else $as_nop gl_unknown_warnings_are_errors= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu as_gl_Warn=`printf "%s\n" "gl_cv_warn_c_$w" | $as_tr_sh` gl_positive="$w" case $gl_positive in -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles $w" >&5 printf %s "checking whether C compiler handles $w... " >&6; } if eval test \${$as_gl_Warn+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors $gl_positive" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_gl_Warn=yes" else $as_nop eval "$as_gl_Warn=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi eval ac_res=\$$as_gl_Warn { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_gl_Warn"\" = x"yes" then : as_fn_append WARN_CFLAGS " $w" fi done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wconversion" >&5 printf %s "checking whether C compiler handles -Wconversion... " >&6; } if test ${gl_cv_warn_c__Wconversion+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wconversion" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_warn_c__Wconversion=yes else $as_nop gl_cv_warn_c__Wconversion=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wconversion" >&5 printf "%s\n" "$gl_cv_warn_c__Wconversion" >&6; } if test "x$gl_cv_warn_c__Wconversion" = xyes then : as_fn_append WARN_CFLAGS " -Wconversion" fi # When compiling with GCC, prefer -isystem to -I when including system # include files, to avoid generating useless diagnostics for the files. ISYSTEM='-isystem ' else ISYSTEM='-I' fi for ac_prog in 'bison -y' byacc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_YACC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_YACC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi YACC=$ac_cv_prog_YACC if test -n "$YACC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 printf "%s\n" "$YACC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$YACC" && break done test -n "$YACC" || YACC="yacc" if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 printf "%s\n" "$AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 printf "%s\n" "$ac_ct_AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 printf %s "checking the archiver ($AR) interface... " >&6; } if test ${am_cv_ar_interface+y} then : printf %s "(cached) " >&6 else $as_nop ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO" then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 printf "%s\n" "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac # I want flex, and only flex for ac_prog in flex lex do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LEX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LEX"; then ac_cv_prog_LEX="$LEX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LEX="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LEX=$ac_cv_prog_LEX if test -n "$LEX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 printf "%s\n" "$LEX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$LEX" && break done test -n "$LEX" || LEX=":" if test "x$LEX" != "x:"; then cat >conftest.l <<_ACEOF %{ #ifdef __cplusplus extern "C" #endif int yywrap(void); %} %% a { ECHO; } b { REJECT; } c { yymore (); } d { yyless (1); } e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */ #ifdef __cplusplus yyless ((yyinput () != 0)); #else yyless ((input () != 0)); #endif } f { unput (yytext[0]); } . { BEGIN INITIAL; } %% #ifdef YYTEXT_POINTER extern char *yytext; #endif int yywrap (void) { return 1; } int main (void) { return ! yylex (); } _ACEOF { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex output file root" >&5 printf %s "checking for lex output file root... " >&6; } if test ${ac_cv_prog_lex_root+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_lex_root=unknown { { ac_try="$LEX conftest.l" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$LEX conftest.l") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && if test -f lex.yy.c; then ac_cv_prog_lex_root=lex.yy elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 printf "%s\n" "$ac_cv_prog_lex_root" >&6; } if test "$ac_cv_prog_lex_root" = unknown then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find output from $LEX; giving up on $LEX" >&5 printf "%s\n" "$as_me: WARNING: cannot find output from $LEX; giving up on $LEX" >&2;} LEX=: LEXLIB= fi LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root if test ${LEXLIB+y} then : else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex library" >&5 printf %s "checking for lex library... " >&6; } if test ${ac_cv_lib_lex+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_LIBS="$LIBS" ac_found=false for ac_cv_lib_lex in 'none needed' -lfl -ll 'not found'; do case $ac_cv_lib_lex in #( 'none needed') : ;; #( 'not found') : break ;; #( *) : LIBS="$ac_cv_lib_lex $ac_save_LIBS" ;; #( *) : ;; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_found=: fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if $ac_found; then break fi done LIBS="$ac_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 printf "%s\n" "$ac_cv_lib_lex" >&6; } if test "$ac_cv_lib_lex" = 'not found' then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: required lex library not found; giving up on $LEX" >&5 printf "%s\n" "$as_me: WARNING: required lex library not found; giving up on $LEX" >&2;} LEX=: LEXLIB= elif test "$ac_cv_lib_lex" = 'none needed' then : LEXLIB='' else $as_nop LEXLIB=$ac_cv_lib_lex fi fi if test "$LEX" != : then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 printf %s "checking whether yytext is a pointer... " >&6; } if test ${ac_cv_prog_lex_yytext_pointer+y} then : printf %s "(cached) " >&6 else $as_nop # POSIX says lex can declare yytext either as a pointer or an array; the # default is implementation-dependent. Figure out which it is, since # not all implementations provide the %pointer and %array declarations. ac_cv_prog_lex_yytext_pointer=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_lex_yytext_pointer=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 printf "%s\n" "$ac_cv_prog_lex_yytext_pointer" >&6; } if test $ac_cv_prog_lex_yytext_pointer = yes; then printf "%s\n" "#define YYTEXT_POINTER 1" >>confdefs.h fi fi rm -f conftest.l $LEX_OUTPUT_ROOT.c fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether LEX is flex" >&5 printf %s "checking whether LEX is flex... " >&6; } case `$LEX --version` in #( flex*) : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } ;; #( *) : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } LEX="$SHELL $missing_dir/missing flex" LEX_OUTPUT_ROOT=lex.yy LEXLIB='' ;; esac # Libtool. By default, don't do shared libs, liba2ps is not widely used. case `pwd` in *\ * | *\ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.7' macro_revision='2.4.7' ltmain=$ac_aux_dir/ltmain.sh # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 printf %s "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 printf "%s\n" "printf" >&6; } ;; print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 printf "%s\n" "print -r" >&6; } ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 printf "%s\n" "cat" >&6; } ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 printf %s "checking for a sed that does not truncate output... " >&6; } if test ${ac_cv_path_SED+y} then : printf %s "(cached) " >&6 else $as_nop ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in sed gsed do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 printf "%s\n" "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 printf %s "checking for fgrep... " >&6; } if test ${ac_cv_path_FGREP+y} then : printf %s "(cached) " >&6 else $as_nop if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in fgrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 printf "%s\n" "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test ${with_gnu_ld+y} then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else $as_nop with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 printf %s "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 printf %s "checking for GNU ld... " >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 printf %s "checking for non-GNU ld... " >&6; } fi if test ${lt_cv_path_LD+y} then : printf %s "(cached) " >&6 else $as_nop if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test no != "$with_gnu_ld" && break ;; *) test yes != "$with_gnu_ld" && break ;; esac fi done IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. fi fi LD=$lt_cv_path_LD if test -n "$LD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 printf "%s\n" "$LD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 printf %s "checking if the linker ($LD) is GNU ld... " >&6; } if test ${lt_cv_prog_gnu_ld+y} then : printf %s "(cached) " >&6 else $as_nop # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) lt_cv_prog_gnu_ld=yes ;; *) lt_cv_prog_gnu_ld=no ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test ${lt_cv_path_NM+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 printf "%s\n" "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DUMPBIN+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 printf "%s\n" "$DUMPBIN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DUMPBIN+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 printf "%s\n" "$ac_ct_DUMPBIN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 printf %s "checking the name lister ($NM) interface... " >&6; } if test ${lt_cv_nm_interface+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 printf "%s\n" "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 printf %s "checking the maximum length of command line arguments... " >&6; } if test ${lt_cv_sys_max_cmd_len+y} then : printf %s "(cached) " >&6 else $as_nop i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n "$lt_cv_sys_max_cmd_len"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 printf "%s\n" "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 printf %s "checking how to convert $build file names to $host format... " >&6; } if test ${lt_cv_to_host_file_cmd+y} then : printf %s "(cached) " >&6 else $as_nop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 printf %s "checking how to convert $build file names to toolchain format... " >&6; } if test ${lt_cv_to_tool_file_cmd+y} then : printf %s "(cached) " >&6 else $as_nop #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 printf %s "checking for $LD option to reload object files... " >&6; } if test ${lt_cv_ld_reload_flag+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_ld_reload_flag='-r' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args. set dummy ${ac_tool_prefix}file; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_FILECMD+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$FILECMD"; then ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_FILECMD="${ac_tool_prefix}file" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi FILECMD=$ac_cv_prog_FILECMD if test -n "$FILECMD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 printf "%s\n" "$FILECMD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_FILECMD"; then ac_ct_FILECMD=$FILECMD # Extract the first word of "file", so it can be a program name with args. set dummy file; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_FILECMD+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_FILECMD"; then ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_FILECMD="file" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD if test -n "$ac_ct_FILECMD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5 printf "%s\n" "$ac_ct_FILECMD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_FILECMD" = x; then FILECMD=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac FILECMD=$ac_ct_FILECMD fi else FILECMD="$ac_cv_prog_FILECMD" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OBJDUMP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 printf "%s\n" "$OBJDUMP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OBJDUMP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 printf "%s\n" "$ac_ct_OBJDUMP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 printf %s "checking how to recognize dependent libraries... " >&6; } if test ${lt_cv_deplibs_check_method+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DLLTOOL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 printf "%s\n" "$DLLTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DLLTOOL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 printf "%s\n" "$ac_ct_DLLTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 printf %s "checking how to associate runtime and link libraries... " >&6; } if test ${lt_cv_sharedlib_from_linklib_cmd+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 printf "%s\n" "$AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 printf "%s\n" "$ac_ct_AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} # Use ARFLAGS variable as AR's operation code to sync the variable naming with # Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have # higher priority because thats what people were doing historically (setting # ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS # variable obsoleted/removed. test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} lt_ar_flags=$AR_FLAGS # Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override # by AR_FLAGS because that was never working and AR_FLAGS is about to die. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 printf %s "checking for archiver @FILE support... " >&6; } if test ${lt_cv_ar_at_file+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 printf "%s\n" "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 printf "%s\n" "$STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 printf "%s\n" "$ac_ct_STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RANLIB+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 printf "%s\n" "$RANLIB" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_RANLIB+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 printf "%s\n" "$ac_ct_RANLIB" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 printf %s "checking command to parse $NM output from $compiler object... " >&6; } if test ${lt_cv_sys_global_symbol_pipe+y} then : printf %s "(cached) " >&6 else $as_nop # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 printf "%s\n" "failed" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 printf "%s\n" "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 printf %s "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test ${with_sysroot+y} then : withval=$with_sysroot; else $as_nop with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 printf "%s\n" "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 printf "%s\n" "${lt_sysroot:-no}" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 printf %s "checking for a working dd... " >&6; } if test ${ac_cv_path_lt_DD+y} then : printf %s "(cached) " >&6 else $as_nop printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in dd do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 printf "%s\n" "$ac_cv_path_lt_DD" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 printf %s "checking how to truncate binary pipes... " >&6; } if test ${lt_cv_truncate_bin+y} then : printf %s "(cached) " >&6 else $as_nop printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 printf "%s\n" "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test ${enable_libtool_lock+y} then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 printf %s "checking whether the C compiler needs -belf... " >&6; } if test ${lt_cv_cc_needs_belf+y} then : printf %s "(cached) " >&6 else $as_nop ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_cc_needs_belf=yes else $as_nop lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 printf "%s\n" "$MANIFEST_TOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if test ${lt_cv_path_mainfest_tool+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DSYMUTIL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 printf "%s\n" "$DSYMUTIL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_NMEDIT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 printf "%s\n" "$NMEDIT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_NMEDIT+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 printf "%s\n" "$ac_ct_NMEDIT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LIPO+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 printf "%s\n" "$LIPO" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_LIPO+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 printf "%s\n" "$ac_ct_LIPO" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 printf "%s\n" "$OTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 printf "%s\n" "$ac_ct_OTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL64+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 printf "%s\n" "$OTOOL64" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL64+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 printf "%s\n" "$ac_ct_OTOOL64" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 printf %s "checking for -single_module linker flag... " >&6; } if test ${lt_cv_apple_cc_single_mod+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 printf %s "checking for -exported_symbols_list linker flag... " >&6; } if test ${lt_cv_ld_exported_symbols_list+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_ld_exported_symbols_list=yes else $as_nop lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 printf %s "checking for -force_load linker flag... " >&6; } if test ${lt_cv_ld_force_load+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 printf "%s\n" "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) case $MACOSX_DEPLOYMENT_TARGET,$host in 10.[012],*|,*powerpc*-darwin[5-8]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; *) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes then : printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h fi # Set options # Check whether --enable-shared was given. if test ${enable_shared+y} then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac else $as_nop enable_shared=no fi # Check whether --enable-static was given. if test ${enable_static+y} then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else $as_nop enable_static=yes fi enable_dlopen=no enable_win32_dll=no # Check whether --with-pic was given. if test ${with_pic+y} then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else $as_nop pic_mode=default fi # Check whether --enable-fast-install was given. if test ${enable_fast_install+y} then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else $as_nop enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 printf %s "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. if test ${with_aix_soname+y} then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else $as_nop if test ${lt_cv_with_aix_soname+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 printf "%s\n" "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 printf %s "checking for objdir... " >&6; } if test ${lt_cv_objdir+y} then : printf %s "(cached) " >&6 else $as_nop rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 printf "%s\n" "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC and # ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o func_cc_basename $compiler cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 printf %s "checking for ${ac_tool_prefix}file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 else $as_nop case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/${ac_tool_prefix}file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 printf "%s\n" "$MAGIC_CMD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 printf %s "checking for file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 else $as_nop case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 printf "%s\n" "$MAGIC_CMD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test ${lt_cv_prog_compiler_rtti_exceptions+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test ${lt_cv_prog_compiler_pic_works+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test ${lt_cv_prog_compiler_static_works+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 printf %s "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 printf "%s\n" "$hard_links" >&6; } if test no = "$hard_links"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes file_list_spec='@' ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' $wl-bernotok' allow_undefined_flag=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl* | icl*) # Native MSVC or ICC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC and ICC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly* | midnightbsd*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 printf %s "checking if $CC understands -b... " >&6; } if test ${lt_cv_prog_compiler__b+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if test ${lt_cv_irix_exported_symbol+y} then : printf %s "(cached) " >&6 else $as_nop save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_irix_exported_symbol=yes else $as_nop lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' else archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes file_list_spec='@' ;; osf3*) if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='$wl-z,text' allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 printf "%s\n" "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 printf %s "checking whether -lc should be explicitly linked in... " >&6; } if test ${lt_cv_archive_cmds_need_lc+y} then : printf %s "(cached) " >&6 else $as_nop $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 printf %s "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib<name>.so # instead of lib<name>.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl* | *,icl*) # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if test ${lt_cv_shlibpath_overrides_runpath+y} then : printf %s "(cached) " >&6 else $as_nop lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 printf "%s\n" "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 printf %s "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 printf "%s\n" "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char dlopen (); int main (void) { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes else $as_nop ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else $as_nop lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes then : lt_cv_dlopen=shl_load else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 printf %s "checking for shl_load in -ldld... " >&6; } if test ${ac_cv_lib_dld_shl_load+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char shl_load (); int main (void) { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_shl_load=yes else $as_nop ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else $as_nop ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes then : lt_cv_dlopen=dlopen else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char dlopen (); int main (void) { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes else $as_nop ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 printf %s "checking for dlopen in -lsvld... " >&6; } if test ${ac_cv_lib_svld_dlopen+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char dlopen (); int main (void) { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_svld_dlopen=yes else $as_nop ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 printf %s "checking for dld_link in -ldld... " >&6; } if test ${ac_cv_lib_dld_dld_link+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char dld_link (); int main (void) { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_dld_link=yes else $as_nop ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 printf %s "checking whether a program can dlopen itself... " >&6; } if test ${lt_cv_dlopen_self+y} then : printf %s "(cached) " >&6 else $as_nop if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 printf "%s\n" "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 printf %s "checking whether a statically linked program can dlopen itself... " >&6; } if test ${lt_cv_dlopen_self_static+y} then : printf %s "(cached) " >&6 else $as_nop if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 printf %s "checking whether stripping libraries is possible... " >&6; } if test -z "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } else if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then old_striplib="$STRIP --strip-debug" striplib="$STRIP --strip-unneeded" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else case $host_os in darwin*) # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } ;; freebsd*) if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then old_striplib="$STRIP --strip-debug" striplib="$STRIP --strip-unneeded" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } ;; esac fi fi # Report what library types will actually be built { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 printf %s "checking if libtool supports shared libraries... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 printf "%s\n" "$can_build_shared" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 printf %s "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 printf "%s\n" "$enable_shared" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 printf %s "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 printf "%s\n" "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC ac_config_commands="$ac_config_commands libtool" # Only expand once: # Check whether --enable-cross-guesses was given. if test ${enable_cross_guesses+y} then : enableval=$enable_cross_guesses; if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-cross-guesses" >&5 printf "%s\n" "$as_me: WARNING: invalid argument supplied to --enable-cross-guesses" >&2;} enableval=conservative fi gl_cross_guesses="$enableval" else $as_nop gl_cross_guesses=conservative fi if test $gl_cross_guesses = risky; then gl_cross_guess_normal="guessing yes" gl_cross_guess_inverted="guessing no" else gl_cross_guess_normal="guessing no" gl_cross_guess_inverted="guessing yes" fi LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes then : else $as_nop printf "%s\n" "#define size_t unsigned int" >>confdefs.h fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 printf %s "checking for working alloca.h... " >&6; } if test ${ac_cv_working_alloca_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <alloca.h> int main (void) { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_working_alloca_h=yes else $as_nop ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 printf "%s\n" "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 printf %s "checking for alloca... " >&6; } if test ${ac_cv_func_alloca_works+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_working_alloca_h = yes; then ac_cv_func_alloca_works=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <stddef.h> #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _MSC_VER # include <malloc.h> # define alloca _alloca # else # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif int main (void) { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_func_alloca_works=yes else $as_nop ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 printf "%s\n" "$ac_cv_func_alloca_works" >&6; } fi if test $ac_cv_func_alloca_works = yes; then printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 printf %s "checking stack direction for C alloca... " >&6; } if test ${ac_cv_c_stack_direction+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : ac_cv_c_stack_direction=0 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_c_stack_direction=1 else $as_nop ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 printf "%s\n" "$ac_cv_c_stack_direction" >&6; } printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 printf %s "checking whether the preprocessor supports include_next... " >&6; } if test ${gl_cv_have_include_next+y} then : printf %s "(cached) " >&6 else $as_nop rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 cat <<EOF > conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include <stdio.h> #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <conftest.h> _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_have_include_next=yes else $as_nop CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <conftest.h> _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_have_include_next=buggy else $as_nop gl_cv_have_include_next=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5 printf "%s\n" "$gl_cv_have_include_next" >&6; } PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether source code line length is unlimited" >&5 printf %s "checking whether source code line length is unlimited... " >&6; } if test ${gl_cv_source_line_length_unlimited+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __TANDEM choke me #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "choke me" >/dev/null 2>&1 then : gl_cv_source_line_length_unlimited=no else $as_nop gl_cv_source_line_length_unlimited=yes fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_source_line_length_unlimited" >&5 printf "%s\n" "$gl_cv_source_line_length_unlimited" >&6; } if test $gl_cv_source_line_length_unlimited = no; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5 printf %s "checking for d_ino member in directory struct... " >&6; } if test ${gl_cv_struct_dirent_d_ino+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on glibc systems with Linux kernel. linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess yes on musl systems with Linux kernel. linux*-musl*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_struct_dirent_d_ino="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_struct_dirent_d_ino="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> int main (void) { DIR *dp = opendir ("."); struct dirent *e; struct stat st; if (! dp) return 1; e = readdir (dp); if (! e) { closedir (dp); return 2; } if (lstat (e->d_name, &st) != 0) { closedir (dp); return 3; } if (e->d_ino != st.st_ino) { closedir (dp); return 4; } closedir (dp); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_struct_dirent_d_ino=yes else $as_nop gl_cv_struct_dirent_d_ino=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5 printf "%s\n" "$gl_cv_struct_dirent_d_ino" >&6; } case "$gl_cv_struct_dirent_d_ino" in *yes) printf "%s\n" "#define D_INO_IN_DIRENT 1" >>confdefs.h ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5 printf %s "checking for long file names... " >&6; } if test ${ac_cv_sys_long_file_names+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_sys_long_file_names=yes # Test for long file names in all the places we know might matter: # . the current directory, where building will happen # $prefix/lib where we will be installing things # $exec_prefix/lib likewise # $TMPDIR if set, where it might want to write temporary files # /tmp where it might want to write temporary files # /var/tmp likewise # /usr/tmp likewise for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib"; do # Skip $TMPDIR if it is empty or bogus, and skip $exec_prefix/lib # in the usual case where exec_prefix is '${prefix}'. case $ac_dir in #( . | /* | ?:[\\/]*) ;; #( *) continue;; esac test -w "$ac_dir/." || continue # It is less confusing to not echo anything here. ac_xdir=$ac_dir/cf$$ (umask 077 && mkdir "$ac_xdir" 2>/dev/null) || continue ac_tf1=$ac_xdir/conftest9012345 ac_tf2=$ac_xdir/conftest9012346 touch "$ac_tf1" 2>/dev/null && test -f "$ac_tf1" && test ! -f "$ac_tf2" || ac_cv_sys_long_file_names=no rm -f -r "$ac_xdir" 2>/dev/null test $ac_cv_sys_long_file_names = no && break done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_long_file_names" >&5 printf "%s\n" "$ac_cv_sys_long_file_names" >&6; } if test $ac_cv_sys_long_file_names = yes; then printf "%s\n" "#define HAVE_LONG_FILE_NAMES 1" >>confdefs.h fi ac_func= for ac_item in $ac_func_c_list do if test $ac_func; then ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then echo "#define $ac_item 1" >> confdefs.h fi ac_func= else ac_func=$ac_item fi done HAVE__EXIT=1; HAVE_ALIGNED_ALLOC=1; HAVE_ATOLL=1; HAVE_CANONICALIZE_FILE_NAME=1; HAVE_DECL_ECVT=1; HAVE_DECL_FCVT=1; HAVE_DECL_GCVT=1; HAVE_DECL_GETLOADAVG=1; HAVE_GETPROGNAME=1; HAVE_GETSUBOPT=1; HAVE_GRANTPT=1; HAVE_INITSTATE=1; HAVE_DECL_INITSTATE=1; HAVE_MBTOWC=1; HAVE_MKDTEMP=1; HAVE_MKOSTEMP=1; HAVE_MKOSTEMPS=1; HAVE_MKSTEMP=1; HAVE_MKSTEMPS=1; HAVE_POSIX_MEMALIGN=1; HAVE_POSIX_OPENPT=1; HAVE_PTSNAME=1; HAVE_PTSNAME_R=1; HAVE_QSORT_R=1; HAVE_RANDOM=1; HAVE_RANDOM_H=1; HAVE_RANDOM_R=1; HAVE_REALLOCARRAY=1; HAVE_REALPATH=1; HAVE_RPMATCH=1; HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; HAVE_SETSTATE=1; HAVE_DECL_SETSTATE=1; HAVE_STRTOD=1; HAVE_STRTOL=1; HAVE_STRTOLD=1; HAVE_STRTOLL=1; HAVE_STRTOUL=1; HAVE_STRTOULL=1; HAVE_STRUCT_RANDOM_DATA=1; HAVE_SYS_LOADAVG_H=0; HAVE_UNLOCKPT=1; HAVE_DECL_UNSETENV=1; REPLACE__EXIT=0; REPLACE_ALIGNED_ALLOC=0; REPLACE_CALLOC_FOR_CALLOC_GNU=0; REPLACE_CALLOC_FOR_CALLOC_POSIX=0; REPLACE_CANONICALIZE_FILE_NAME=0; REPLACE_FREE=0; REPLACE_GETLOADAVG=0; REPLACE_GETPROGNAME=0; REPLACE_GETSUBOPT=0; REPLACE_INITSTATE=0; REPLACE_MALLOC_FOR_MALLOC_GNU=0; REPLACE_MALLOC_FOR_MALLOC_POSIX=0; REPLACE_MBTOWC=0; REPLACE_MKOSTEMP=0; REPLACE_MKOSTEMPS=0; REPLACE_MKSTEMP=0; REPLACE_POSIX_MEMALIGN=0; REPLACE_POSIX_OPENPT=0; REPLACE_PTSNAME=0; REPLACE_PTSNAME_R=0; REPLACE_PUTENV=0; REPLACE_QSORT_R=0; REPLACE_RANDOM=0; REPLACE_RANDOM_R=0; REPLACE_REALLOC_FOR_REALLOC_GNU=0; REPLACE_REALLOC_FOR_REALLOC_POSIX=0; REPLACE_REALLOCARRAY=0; REPLACE_REALPATH=0; REPLACE_SETENV=0; REPLACE_SETSTATE=0; REPLACE_STRTOD=0; REPLACE_STRTOL=0; REPLACE_STRTOLD=0; REPLACE_STRTOLL=0; REPLACE_STRTOUL=0; REPLACE_STRTOULL=0; REPLACE_UNSETENV=0; REPLACE_WCTOMB=0; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc is ptrdiff_t safe" >&5 printf %s "checking whether malloc is ptrdiff_t safe... " >&6; } if test ${gl_cv_malloc_ptrdiff+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdint.h> int main (void) { /* 64-bit ptrdiff_t is so wide that no practical platform can exceed it. */ #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) /* On rare machines where size_t fits in ptrdiff_t there is no problem. */ #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t bounds even on 32-bit platforms. We don't know which non-glibc systems are safe. */ #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE return 0; #else #error "malloc might not be ptrdiff_t safe" syntax error #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_malloc_ptrdiff=yes else $as_nop gl_cv_malloc_ptrdiff=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_malloc_ptrdiff" >&5 printf "%s\n" "$gl_cv_malloc_ptrdiff" >&6; } test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc set errno on failure" >&5 printf %s "checking whether malloc, realloc, calloc set errno on failure... " >&6; } if test ${gl_cv_func_malloc_posix+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in mingw*) gl_cv_func_malloc_posix=no ;; irix* | solaris*) gl_cv_func_malloc_posix=no ;; *) gl_cv_func_malloc_posix=yes ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 printf "%s\n" "$gl_cv_func_malloc_posix" >&6; } if test "$gl_cv_func_malloc_posix" = yes; then printf "%s\n" "#define HAVE_MALLOC_POSIX 1" >>confdefs.h else REPLACE_MALLOC_FOR_MALLOC_POSIX=1 fi if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then REPLACE_CALLOC_FOR_CALLOC_POSIX=1 fi GL_GNULIB__EXIT=0 GL_GNULIB_ALIGNED_ALLOC=0 GL_GNULIB_ATOLL=0 GL_GNULIB_CALLOC_GNU=0 GL_GNULIB_CALLOC_POSIX=0 GL_GNULIB_CANONICALIZE_FILE_NAME=0 GL_GNULIB_FREE_POSIX=0 GL_GNULIB_GETLOADAVG=0 GL_GNULIB_GETPROGNAME=0 GL_GNULIB_GETSUBOPT=0 GL_GNULIB_GRANTPT=0 GL_GNULIB_MALLOC_GNU=0 GL_GNULIB_MALLOC_POSIX=0 GL_GNULIB_MBTOWC=0 GL_GNULIB_MKDTEMP=0 GL_GNULIB_MKOSTEMP=0 GL_GNULIB_MKOSTEMPS=0 GL_GNULIB_MKSTEMP=0 GL_GNULIB_MKSTEMPS=0 GL_GNULIB_POSIX_MEMALIGN=0 GL_GNULIB_POSIX_OPENPT=0 GL_GNULIB_PTSNAME=0 GL_GNULIB_PTSNAME_R=0 GL_GNULIB_PUTENV=0 GL_GNULIB_QSORT_R=0 GL_GNULIB_RANDOM=0 GL_GNULIB_RANDOM_R=0 GL_GNULIB_REALLOCARRAY=0 GL_GNULIB_REALLOC_GNU=0 GL_GNULIB_REALLOC_POSIX=0 GL_GNULIB_REALPATH=0 GL_GNULIB_RPMATCH=0 GL_GNULIB_SECURE_GETENV=0 GL_GNULIB_SETENV=0 GL_GNULIB_STRTOD=0 GL_GNULIB_STRTOL=0 GL_GNULIB_STRTOLD=0 GL_GNULIB_STRTOLL=0 GL_GNULIB_STRTOUL=0 GL_GNULIB_STRTOULL=0 GL_GNULIB_SYSTEM_POSIX=0 GL_GNULIB_UNLOCKPT=0 GL_GNULIB_UNSETENV=0 GL_GNULIB_WCTOMB=0 GL_GNULIB_MDA_ECVT=1 GL_GNULIB_MDA_FCVT=1 GL_GNULIB_MDA_GCVT=1 GL_GNULIB_MDA_MKTEMP=1 GL_GNULIB_MDA_PUTENV=1 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 printf %s "checking whether lstat correctly handles trailing slash... " >&6; } if test ${gl_cv_func_lstat_dereferences_slashed_symlink+y} then : printf %s "(cached) " >&6 else $as_nop rm -f conftest.sym conftest.file echo >conftest.file if test "$cross_compiling" = yes then : case "$host_os" in linux-* | linux) # Guess yes on Linux systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; midipix*) # Guess yes on systems that emulate the Linux system calls. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; *-gnu* | gnu*) # Guess yes on glibc systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; mingw*) # Guess no on native Windows. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; *) # If we don't know, obey --enable-cross-guesses. gl_cv_func_lstat_dereferences_slashed_symlink="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main (void) { struct stat sbuf; if (symlink ("conftest.file", "conftest.sym") != 0) return 1; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_lstat_dereferences_slashed_symlink=yes else $as_nop gl_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sym conftest.file fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 printf "%s\n" "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) printf "%s\n" "#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1" >>confdefs.h ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } if test ${ac_cv_c_undeclared_builtin_options+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_CFLAGS=$CFLAGS ac_cv_c_undeclared_builtin_options='cannot detect' for ac_arg in '' -fno-builtin; do CFLAGS="$ac_save_CFLAGS $ac_arg" # This test program should *not* compile successfully. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { (void) strchr; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop # This test program should compile successfully. # No library function is consistently available on # freestanding implementations, so test against a dummy # declaration. Include always-available headers on the # off chance that they somehow elicit warnings. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <float.h> #include <limits.h> #include <stdarg.h> #include <stddef.h> extern void ac_decl (int, char *); int main (void) { (void) ac_decl (0, (char *) 0); (void) ac_decl; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : if test x"$ac_arg" = x then : ac_cv_c_undeclared_builtin_options='none needed' else $as_nop ac_cv_c_undeclared_builtin_options=$ac_arg fi break fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done CFLAGS=$ac_save_CFLAGS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } case $ac_cv_c_undeclared_builtin_options in #( 'cannot detect') : { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot make $CC report undeclared builtins See \`config.log' for more details" "$LINENO" 5; } ;; #( 'none needed') : ac_c_undeclared_builtin_options='' ;; #( *) : ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 printf %s "checking whether // is distinct from /... " >&6; } if test ${gl_cv_double_slash_root+y} then : printf %s "(cached) " >&6 else $as_nop if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # <bug-gnulib@gnu.org>. case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 printf "%s\n" "$gl_cv_double_slash_root" >&6; } if test "$gl_cv_double_slash_root" = yes; then printf "%s\n" "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5 printf %s "checking whether realpath works... " >&6; } if test ${gl_cv_func_realpath_works+y} then : printf %s "(cached) " >&6 else $as_nop rm -rf conftest.a conftest.d touch conftest.a # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.a conftest.l fi mkdir conftest.d if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;; # Guess 'nearly' on musl systems. *-musl*) gl_cv_func_realpath_works="guessing nearly" ;; # Guess no on Cygwin. cygwin*) gl_cv_func_realpath_works="guessing no" ;; # Guess no on native Windows. mingw*) gl_cv_func_realpath_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_realpath_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include <mach/mach.h> #include <mach/mach_error.h> #include <mach/thread_status.h> #include <mach/exception.h> #include <mach/task.h> #include <pthread.h> /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winerror.h> static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include <signal.h> #include <unistd.h> /* A POSIX signal handler. */ static void exception_handler (int sig) { _exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif #include <errno.h> #include <stdlib.h> #include <string.h> int main (void) { int result = 0; /* This test fails on Solaris 10. */ { char *name = realpath ("conftest.a", NULL); if (!(name && *name == '/')) result |= 1; free (name); } /* This test fails on older versions of Cygwin. */ { char *name = realpath ("conftest.b/../conftest.a", NULL); if (name != NULL) result |= 2; free (name); } /* This test fails on Cygwin 2.9. */ #if HAVE_LSTAT { char *name = realpath ("conftest.l/../conftest.a", NULL); if (name != NULL || errno != ENOTDIR) result |= 4; free (name); } #endif /* This test fails on Mac OS X 10.13, OpenBSD 6.0. */ { char *name = realpath ("conftest.a/", NULL); if (name != NULL) result |= 8; free (name); } /* This test fails on AIX 7, Solaris 10. */ { char *name1 = realpath (".", NULL); char *name2 = realpath ("conftest.d//./..", NULL); if (! name1 || ! name2 || strcmp (name1, name2)) result |= 16; free (name1); free (name2); } #ifdef __linux__ /* On Linux, // is the same as /. See also double-slash-root.m4. realpath() should respect this. This test fails on musl libc 1.2.2. */ { char *name = realpath ("//", NULL); if (! name || strcmp (name, "/")) result |= 32; free (name); } #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_realpath_works=yes else $as_nop case $? in 32) gl_cv_func_realpath_works=nearly ;; *) gl_cv_func_realpath_works=no ;; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -rf conftest.a conftest.l conftest.d fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_realpath_works" >&5 printf "%s\n" "$gl_cv_func_realpath_works" >&6; } case "$gl_cv_func_realpath_works" in *yes) printf "%s\n" "#define FUNC_REALPATH_WORKS 1" >>confdefs.h ;; *nearly) printf "%s\n" "#define FUNC_REALPATH_NEARLY_WORKS 1" >>confdefs.h ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for faccessat" >&5 printf %s "checking for faccessat... " >&6; } if test ${gl_cv_onwards_func_faccessat+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "faccessat" "ac_cv_have_decl_faccessat" "#include <unistd.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_faccessat" = xyes then : fi if test $ac_cv_have_decl_faccessat = yes; then ac_fn_c_check_func "$LINENO" "faccessat" "ac_cv_func_faccessat" if test "x$ac_cv_func_faccessat" = xyes then : fi if test $ac_cv_func_faccessat = yes; then gl_cv_onwards_func_faccessat=yes else gl_cv_onwards_func_faccessat='future OS version' fi else gl_cv_onwards_func_faccessat='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "faccessat" "ac_cv_func_faccessat" if test "x$ac_cv_func_faccessat" = xyes then : fi gl_cv_onwards_func_faccessat=$ac_cv_func_faccessat ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_faccessat" >&5 printf "%s\n" "$gl_cv_onwards_func_faccessat" >&6; } case "$gl_cv_onwards_func_faccessat" in future*) ac_cv_func_faccessat=no ;; *) ac_cv_func_faccessat=$gl_cv_onwards_func_faccessat ;; esac if test $ac_cv_func_faccessat = yes; then printf "%s\n" "#define HAVE_FACCESSAT 1" >>confdefs.h fi case "$host_os" in mingw*) ;; *) ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" if test "x$ac_cv_func_getcwd" = xyes then : printf "%s\n" "#define HAVE_GETCWD 1" >>confdefs.h fi ;; esac GL_GNULIB_ACCESS=0 GL_GNULIB_CHDIR=0 GL_GNULIB_CHOWN=0 GL_GNULIB_CLOSE=0 GL_GNULIB_COPY_FILE_RANGE=0 GL_GNULIB_DUP=0 GL_GNULIB_DUP2=0 GL_GNULIB_DUP3=0 GL_GNULIB_ENVIRON=0 GL_GNULIB_EUIDACCESS=0 GL_GNULIB_EXECL=0 GL_GNULIB_EXECLE=0 GL_GNULIB_EXECLP=0 GL_GNULIB_EXECV=0 GL_GNULIB_EXECVE=0 GL_GNULIB_EXECVP=0 GL_GNULIB_EXECVPE=0 GL_GNULIB_FACCESSAT=0 GL_GNULIB_FCHDIR=0 GL_GNULIB_FCHOWNAT=0 GL_GNULIB_FDATASYNC=0 GL_GNULIB_FSYNC=0 GL_GNULIB_FTRUNCATE=0 GL_GNULIB_GETCWD=0 GL_GNULIB_GETDOMAINNAME=0 GL_GNULIB_GETDTABLESIZE=0 GL_GNULIB_GETENTROPY=0 GL_GNULIB_GETGROUPS=0 GL_GNULIB_GETHOSTNAME=0 GL_GNULIB_GETLOGIN=0 GL_GNULIB_GETLOGIN_R=0 GL_GNULIB_GETOPT_POSIX=0 GL_GNULIB_GETPAGESIZE=0 GL_GNULIB_GETPASS=0 GL_GNULIB_GETPASS_GNU=0 GL_GNULIB_GETUSERSHELL=0 GL_GNULIB_GROUP_MEMBER=0 GL_GNULIB_ISATTY=0 GL_GNULIB_LCHOWN=0 GL_GNULIB_LINK=0 GL_GNULIB_LINKAT=0 GL_GNULIB_LSEEK=0 GL_GNULIB_PIPE=0 GL_GNULIB_PIPE2=0 GL_GNULIB_PREAD=0 GL_GNULIB_PWRITE=0 GL_GNULIB_READ=0 GL_GNULIB_READLINK=0 GL_GNULIB_READLINKAT=0 GL_GNULIB_RMDIR=0 GL_GNULIB_SETHOSTNAME=0 GL_GNULIB_SLEEP=0 GL_GNULIB_SYMLINK=0 GL_GNULIB_SYMLINKAT=0 GL_GNULIB_TRUNCATE=0 GL_GNULIB_TTYNAME_R=0 GL_GNULIB_UNISTD_H_GETOPT=0 GL_GNULIB_UNISTD_H_NONBLOCKING=0 GL_GNULIB_UNISTD_H_SIGPIPE=0 GL_GNULIB_UNLINK=0 GL_GNULIB_UNLINKAT=0 GL_GNULIB_USLEEP=0 GL_GNULIB_WRITE=0 GL_GNULIB_MDA_ACCESS=1 GL_GNULIB_MDA_CHDIR=1 GL_GNULIB_MDA_CLOSE=1 GL_GNULIB_MDA_DUP=1 GL_GNULIB_MDA_DUP2=1 GL_GNULIB_MDA_EXECL=1 GL_GNULIB_MDA_EXECLE=1 GL_GNULIB_MDA_EXECLP=1 GL_GNULIB_MDA_EXECV=1 GL_GNULIB_MDA_EXECVE=1 GL_GNULIB_MDA_EXECVP=1 GL_GNULIB_MDA_EXECVPE=1 GL_GNULIB_MDA_GETCWD=1 GL_GNULIB_MDA_GETPID=1 GL_GNULIB_MDA_ISATTY=1 GL_GNULIB_MDA_LSEEK=1 GL_GNULIB_MDA_READ=1 GL_GNULIB_MDA_RMDIR=1 GL_GNULIB_MDA_SWAB=1 GL_GNULIB_MDA_UNLINK=1 GL_GNULIB_MDA_WRITE=1 HAVE_CHOWN=1; HAVE_COPY_FILE_RANGE=1; HAVE_DUP3=1; HAVE_EUIDACCESS=1; HAVE_EXECVPE=1; HAVE_FACCESSAT=1; HAVE_FCHDIR=1; HAVE_FCHOWNAT=1; HAVE_FDATASYNC=1; HAVE_FSYNC=1; HAVE_FTRUNCATE=1; HAVE_GETDTABLESIZE=1; HAVE_GETENTROPY=1; HAVE_GETGROUPS=1; HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; HAVE_GETPASS=1; HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; HAVE_LINKAT=1; HAVE_PIPE=1; HAVE_PIPE2=1; HAVE_PREAD=1; HAVE_PWRITE=1; HAVE_READLINK=1; HAVE_READLINKAT=1; HAVE_SETHOSTNAME=1; HAVE_SLEEP=1; HAVE_SYMLINK=1; HAVE_SYMLINKAT=1; HAVE_UNLINKAT=1; HAVE_USLEEP=1; HAVE_DECL_ENVIRON=1; HAVE_DECL_EXECVPE=1; HAVE_DECL_FCHDIR=1; HAVE_DECL_FDATASYNC=1; HAVE_DECL_GETDOMAINNAME=1; HAVE_DECL_GETLOGIN=1; HAVE_DECL_GETLOGIN_R=1; HAVE_DECL_GETPAGESIZE=1; HAVE_DECL_GETUSERSHELL=1; HAVE_DECL_SETHOSTNAME=1; HAVE_DECL_TRUNCATE=1; HAVE_DECL_TTYNAME_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; REPLACE_ACCESS=0; REPLACE_CHOWN=0; REPLACE_CLOSE=0; REPLACE_COPY_FILE_RANGE=0; REPLACE_DUP=0; REPLACE_DUP2=0; REPLACE_DUP3=0; REPLACE_EXECL=0; REPLACE_EXECLE=0; REPLACE_EXECLP=0; REPLACE_EXECV=0; REPLACE_EXECVE=0; REPLACE_EXECVP=0; REPLACE_EXECVPE=0; REPLACE_FACCESSAT=0; REPLACE_FCHOWNAT=0; REPLACE_FDATASYNC=0; REPLACE_FTRUNCATE=0; REPLACE_GETCWD=0; REPLACE_GETDOMAINNAME=0; REPLACE_GETDTABLESIZE=0; REPLACE_GETENTROPY=0; REPLACE_GETLOGIN_R=0; REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; REPLACE_GETPASS=0; REPLACE_GETPASS_FOR_GETPASS_GNU=0; REPLACE_ISATTY=0; REPLACE_LCHOWN=0; REPLACE_LINK=0; REPLACE_LINKAT=0; REPLACE_LSEEK=0; REPLACE_PIPE2=0; REPLACE_PREAD=0; REPLACE_PWRITE=0; REPLACE_READ=0; REPLACE_READLINK=0; REPLACE_READLINKAT=0; REPLACE_RMDIR=0; REPLACE_SETHOSTNAME=0; REPLACE_SLEEP=0; REPLACE_SYMLINK=0; REPLACE_SYMLINKAT=0; REPLACE_TRUNCATE=0; REPLACE_TTYNAME_R=0; REPLACE_UNLINK=0; REPLACE_UNLINKAT=0; REPLACE_USLEEP=0; REPLACE_WRITE=0; UNISTD_H_HAVE_SYS_RANDOM_H=0; UNISTD_H_HAVE_WINSOCK2_H=0; UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi HAVE_OPENDIR=1; HAVE_READDIR=1; HAVE_REWINDDIR=1; HAVE_CLOSEDIR=1; HAVE_DECL_DIRFD=1; HAVE_DECL_FDOPENDIR=1; HAVE_FDOPENDIR=1; HAVE_SCANDIR=1; HAVE_ALPHASORT=1; REPLACE_OPENDIR=0; REPLACE_CLOSEDIR=0; REPLACE_DIRFD=0; REPLACE_FDOPENDIR=0; GL_GNULIB_OPENDIR=0 GL_GNULIB_READDIR=0 GL_GNULIB_REWINDDIR=0 GL_GNULIB_CLOSEDIR=0 GL_GNULIB_DIRFD=0 GL_GNULIB_FDOPENDIR=0 GL_GNULIB_SCANDIR=0 GL_GNULIB_ALPHASORT=0 if test $gl_cv_have_include_next = yes; then gl_cv_next_dirent_h='<'dirent.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <dirent.h>" >&5 printf %s "checking absolute name of <dirent.h>... " >&6; } if test ${gl_cv_next_dirent_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_dirent_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <dirent.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'dirent.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_dirent_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_dirent_h gl_cv_next_dirent_h='"'$gl_header'"' else gl_cv_next_dirent_h='<'dirent.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_dirent_h" >&5 printf "%s\n" "$gl_cv_next_dirent_h" >&6; } fi NEXT_DIRENT_H=$gl_cv_next_dirent_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'dirent.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_dirent_h fi NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive if test $ac_cv_header_dirent_h = yes; then HAVE_DIRENT_H=1 else HAVE_DIRENT_H=0 fi gl_mda_defines=' #if defined _WIN32 && !defined __CYGWIN__ #define access _access #define chdir _chdir #define chmod _chmod #define close _close #define creat _creat #define dup _dup #define dup2 _dup2 #define ecvt _ecvt #define execl _execl #define execle _execle #define execlp _execlp #define execv _execv #define execve _execve #define execvp _execvp #define execvpe _execvpe #define fcloseall _fcloseall #define fcvt _fcvt #define fdopen _fdopen #define fileno _fileno #define gcvt _gcvt #define getcwd _getcwd #define getpid _getpid #define getw _getw #define isatty _isatty #define j0 _j0 #define j1 _j1 #define jn _jn #define lfind _lfind #define lsearch _lsearch #define lseek _lseek #define memccpy _memccpy #define mkdir _mkdir #define mktemp _mktemp #define open _open #define putenv _putenv #define putw _putw #define read _read #define rmdir _rmdir #define strdup _strdup #define swab _swab #define tempnam _tempnam #define tzset _tzset #define umask _umask #define unlink _unlink #define utime _utime #define wcsdup _wcsdup #define write _write #define y0 _y0 #define y1 _y1 #define yn _yn #endif ' { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 printf %s "checking for complete errno.h... " >&6; } if test ${gl_cv_header_errno_h_complete+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "booboo" >/dev/null 2>&1 then : gl_cv_header_errno_h_complete=no else $as_nop gl_cv_header_errno_h_complete=yes fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 printf "%s\n" "$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_header_errno_h_complete = yes; then GL_GENERATE_ERRNO_H=false else if test $gl_cv_have_include_next = yes; then gl_cv_next_errno_h='<'errno.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <errno.h>" >&5 printf %s "checking absolute name of <errno.h>... " >&6; } if test ${gl_cv_next_errno_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'errno.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_errno_h gl_cv_next_errno_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 printf "%s\n" "$gl_cv_next_errno_h" >&6; } fi NEXT_ERRNO_H=$gl_cv_next_errno_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'errno.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_errno_h fi NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive GL_GENERATE_ERRNO_H=true fi if $GL_GENERATE_ERRNO_H; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 printf %s "checking for EMULTIHOP value... " >&6; } if test ${gl_cv_header_errno_h_EMULTIHOP+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1 then : gl_cv_header_errno_h_EMULTIHOP=yes else $as_nop gl_cv_header_errno_h_EMULTIHOP=no fi rm -rf conftest* if test $gl_cv_header_errno_h_EMULTIHOP = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1 then : gl_cv_header_errno_h_EMULTIHOP=hidden fi rm -rf conftest* if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> " then : fi fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 printf "%s\n" "$gl_cv_header_errno_h_EMULTIHOP" >&6; } case $gl_cv_header_errno_h_EMULTIHOP in yes | no) EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= ;; *) EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" ;; esac fi if $GL_GENERATE_ERRNO_H; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 printf %s "checking for ENOLINK value... " >&6; } if test ${gl_cv_header_errno_h_ENOLINK+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1 then : gl_cv_header_errno_h_ENOLINK=yes else $as_nop gl_cv_header_errno_h_ENOLINK=no fi rm -rf conftest* if test $gl_cv_header_errno_h_ENOLINK = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1 then : gl_cv_header_errno_h_ENOLINK=hidden fi rm -rf conftest* if test $gl_cv_header_errno_h_ENOLINK = hidden; then if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> " then : fi fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 printf "%s\n" "$gl_cv_header_errno_h_ENOLINK" >&6; } case $gl_cv_header_errno_h_ENOLINK in yes | no) ENOLINK_HIDDEN=0; ENOLINK_VALUE= ;; *) ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" ;; esac fi if $GL_GENERATE_ERRNO_H; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 printf %s "checking for EOVERFLOW value... " >&6; } if test ${gl_cv_header_errno_h_EOVERFLOW+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1 then : gl_cv_header_errno_h_EOVERFLOW=yes else $as_nop gl_cv_header_errno_h_EOVERFLOW=no fi rm -rf conftest* if test $gl_cv_header_errno_h_EOVERFLOW = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1 then : gl_cv_header_errno_h_EOVERFLOW=hidden fi rm -rf conftest* if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> " then : fi fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 printf "%s\n" "$gl_cv_header_errno_h_EOVERFLOW" >&6; } case $gl_cv_header_errno_h_EOVERFLOW in yes | no) EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= ;; *) EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" ;; esac fi if test $gl_cv_have_include_next = yes; then gl_cv_next_error_h='<'error.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <error.h>" >&5 printf %s "checking absolute name of <error.h>... " >&6; } if test ${gl_cv_next_error_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_error_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <error.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'error.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_error_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_error_h gl_cv_next_error_h='"'$gl_header'"' else gl_cv_next_error_h='<'error.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_error_h" >&5 printf "%s\n" "$gl_cv_next_error_h" >&6; } fi NEXT_ERROR_H=$gl_cv_next_error_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'error.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_error_h fi NEXT_AS_FIRST_DIRECTIVE_ERROR_H=$gl_next_as_first_directive if test $ac_cv_header_error_h = yes; then HAVE_ERROR_H=1 else HAVE_ERROR_H=0 fi REPLACE_ERROR=0 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error" >&5 printf %s "checking for error... " >&6; } if test ${gl_cv_onwards_func_error+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "error" "ac_cv_have_decl_error" "#include <error.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_error" = xyes then : fi if test $ac_cv_have_decl_error = yes; then ac_fn_c_check_func "$LINENO" "error" "ac_cv_func_error" if test "x$ac_cv_func_error" = xyes then : fi if test $ac_cv_func_error = yes; then gl_cv_onwards_func_error=yes else gl_cv_onwards_func_error='future OS version' fi else gl_cv_onwards_func_error='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "error" "ac_cv_func_error" if test "x$ac_cv_func_error" = xyes then : fi gl_cv_onwards_func_error=$ac_cv_func_error ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_error" >&5 printf "%s\n" "$gl_cv_onwards_func_error" >&6; } case "$gl_cv_onwards_func_error" in future*) ac_cv_func_error=no ;; *) ac_cv_func_error=$gl_cv_onwards_func_error ;; esac if test $ac_cv_func_error = yes; then printf "%s\n" "#define HAVE_ERROR 1" >>confdefs.h fi if test $ac_cv_func_error = yes; then HAVE_ERROR=1 else HAVE_ERROR=0 case "$gl_cv_onwards_func_error" in future*) REPLACE_ERROR=1 ;; esac fi ac_fn_check_decl "$LINENO" "error_at_line" "ac_cv_have_decl_error_at_line" "#include <error.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_error_at_line" = xyes then : fi if test $ac_cv_have_decl_error_at_line = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 printf %s "checking for error_at_line... " >&6; } if test ${ac_cv_lib_error_at_line+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <error.h> int main (void) { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_error_at_line=yes else $as_nop ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 printf "%s\n" "$ac_cv_lib_error_at_line" >&6; } else ac_cv_lib_error_at_line=no fi if test $ac_cv_lib_error_at_line = yes; then HAVE_ERROR_AT_LINE=1 else HAVE_ERROR_AT_LINE=0 fi REPLACE_ERROR_AT_LINE=0 if test $ac_cv_func_error = yes && test $ac_cv_lib_error_at_line = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working error function" >&5 printf %s "checking for working error function... " >&6; } if test ${gl_cv_func_working_error+y} then : printf %s "(cached) " >&6 else $as_nop if test $cross_compiling != yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <error.h> static void print_no_progname (void) {} int main (void) { error_print_progname = print_no_progname; error (0, 0, "foo"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : rm -f conftest.out if test -s conftest$ac_exeext \ && ./conftest$ac_exeext 2> conftest.out; then if grep ' ' conftest.out >/dev/null; then gl_cv_func_working_error=no else gl_cv_func_working_error=yes fi else gl_cv_func_working_error=no fi rm -f conftest.out else $as_nop gl_cv_func_working_error=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <error.h> int main (void) { error (0, 0, "foo"); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_working_error="guessing yes" ;; # Guess no on Android. linux*-android*) gl_cv_func_working_error="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_working_error="$gl_cross_guess_normal" ;; esac else $as_nop gl_cv_func_working_error=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_error" >&5 printf "%s\n" "$gl_cv_func_working_error" >&6; } case "$gl_cv_func_working_error" in *no) REPLACE_ERROR=1 REPLACE_ERROR_AT_LINE=1 ;; esac fi if test $HAVE_ERROR = 0 || test $REPLACE_ERROR = 1 \ || test $HAVE_ERROR_AT_LINE = 0 || test $REPLACE_ERROR_AT_LINE = 1; then GL_GENERATE_ERROR_H=true else GL_GENERATE_ERROR_H=false fi ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_strerror_r" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h if test $ac_cv_have_decl_strerror_r = yes; then # For backward compatibility's sake, define HAVE_STRERROR_R. # (We used to run AC_CHECK_FUNCS_ONCE for strerror_r, as well # as AC_CHECK_DECLS_ONCE.) printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 printf %s "checking whether strerror_r returns char *... " >&6; } if test ${ac_cv_func_strerror_r_char_p+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> int main (void) { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); char *p = strerror_r (0, buf, sizeof buf); return !p || x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_func_strerror_r_char_p=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 printf "%s\n" "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then printf "%s\n" "#define STRERROR_R_CHAR_P 1" >>confdefs.h fi XGETTEXT_EXTRA_OPTIONS= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ctype.h defines __header_inline" >&5 printf %s "checking whether ctype.h defines __header_inline... " >&6; } if test ${gl_cv_have___header_inline+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ctype.h> #ifndef __header_inline #error "<ctype.h> does not define __header_inline" #endif _ACEOF if ac_fn_c_try_cpp "$LINENO" then : gl_cv_have___header_inline=yes else $as_nop gl_cv_have___header_inline=no fi rm -f conftest.err conftest.i conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___header_inline" >&5 printf "%s\n" "$gl_cv_have___header_inline" >&6; } if test "$gl_cv_have___header_inline" = yes; then printf "%s\n" "#define HAVE___HEADER_INLINE 1" >>confdefs.h fi ac_fn_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_fchdir" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_FCHDIR $ac_have_decl" >>confdefs.h HAVE_FCNTL=1; HAVE_OPENAT=1; REPLACE_CREAT=0; REPLACE_FCNTL=0; REPLACE_OPEN=0; REPLACE_OPENAT=0; GL_GNULIB_CREAT=0 GL_GNULIB_FCNTL=0 GL_GNULIB_NONBLOCKING=0 GL_GNULIB_OPEN=0 GL_GNULIB_OPENAT=0 GL_GNULIB_MDA_CREAT=1 GL_GNULIB_MDA_OPEN=1 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 printf %s "checking for working fcntl.h... " >&6; } if test ${gl_cv_header_working_fcntl_h+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess 'no' on native Windows. mingw*) gl_cv_header_working_fcntl_h='no' ;; *) gl_cv_header_working_fcntl_h=cross-compiling ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/stat.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* on Windows with MSVC */ # include <io.h> # include <stdlib.h> # defined sleep(n) _sleep ((n) * 1000) #endif #include <fcntl.h> $gl_mda_defines #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; int main (void) { int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_header_working_fcntl_h=yes else $as_nop case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 printf "%s\n" "$gl_cv_header_working_fcntl_h" >&6; } case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac printf "%s\n" "#define HAVE_WORKING_O_NOATIME $ac_val" >>confdefs.h case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac printf "%s\n" "#define HAVE_WORKING_O_NOFOLLOW $ac_val" >>confdefs.h ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default " if test "x$ac_cv_type_pid_t" = xyes then : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _WIN64 && !defined __CYGWIN__ LLP64 #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_pid_type='int' else $as_nop ac_pid_type='__int64' fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes then : else $as_nop printf "%s\n" "#define mode_t int" >>confdefs.h fi if test $gl_cv_have_include_next = yes; then gl_cv_next_fcntl_h='<'fcntl.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <fcntl.h>" >&5 printf %s "checking absolute name of <fcntl.h>... " >&6; } if test ${gl_cv_next_fcntl_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <fcntl.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'fcntl.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_fcntl_h gl_cv_next_fcntl_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5 printf "%s\n" "$gl_cv_next_fcntl_h" >&6; } fi NEXT_FCNTL_H=$gl_cv_next_fcntl_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'fcntl.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_fcntl_h fi NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 printf %s "checking for promoted mode_t type... " >&6; } if test ${gl_cv_promoted_mode_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> int main (void) { typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_promoted_mode_t='int' else $as_nop gl_cv_promoted_mode_t='mode_t' fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5 printf "%s\n" "$gl_cv_promoted_mode_t" >&6; } printf "%s\n" "#define PROMOTED_MODE_T $gl_cv_promoted_mode_t" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mempcpy" >&5 printf %s "checking for mempcpy... " >&6; } if test ${gl_cv_onwards_func_mempcpy+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "mempcpy" "ac_cv_have_decl_mempcpy" "#include <string.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_mempcpy" = xyes then : fi if test $ac_cv_have_decl_mempcpy = yes; then ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" if test "x$ac_cv_func_mempcpy" = xyes then : fi if test $ac_cv_func_mempcpy = yes; then gl_cv_onwards_func_mempcpy=yes else gl_cv_onwards_func_mempcpy='future OS version' fi else gl_cv_onwards_func_mempcpy='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" if test "x$ac_cv_func_mempcpy" = xyes then : fi gl_cv_onwards_func_mempcpy=$ac_cv_func_mempcpy ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_mempcpy" >&5 printf "%s\n" "$gl_cv_onwards_func_mempcpy" >&6; } case "$gl_cv_onwards_func_mempcpy" in future*) ac_cv_func_mempcpy=no ;; *) ac_cv_func_mempcpy=$gl_cv_onwards_func_mempcpy ;; esac if test $ac_cv_func_mempcpy = yes; then printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h fi HAVE_FCHMODAT=1; HAVE_FSTATAT=1; HAVE_FUTIMENS=1; HAVE_GETUMASK=1; HAVE_LCHMOD=1; HAVE_LSTAT=1; HAVE_MKDIRAT=1; HAVE_MKFIFO=1; HAVE_MKFIFOAT=1; HAVE_MKNOD=1; HAVE_MKNODAT=1; HAVE_UTIMENSAT=1; REPLACE_CHMOD=0; REPLACE_FCHMODAT=0; REPLACE_FSTAT=0; REPLACE_FSTATAT=0; REPLACE_FUTIMENS=0; REPLACE_LSTAT=0; REPLACE_MKDIR=0; REPLACE_MKFIFO=0; REPLACE_MKFIFOAT=0; REPLACE_MKNOD=0; REPLACE_MKNODAT=0; REPLACE_STAT=0; REPLACE_UTIMENSAT=0; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 printf %s "checking whether stat file-mode macros are broken... " >&6; } if test ${ac_cv_header_stat_broken+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/stat.h> #if defined S_ISBLK && defined S_IFDIR extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; #endif #if defined S_ISBLK && defined S_IFCHR extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; #endif #if defined S_ISLNK && defined S_IFREG extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; #endif #if defined S_ISSOCK && defined S_IFREG extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_header_stat_broken=no else $as_nop ac_cv_header_stat_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 printf "%s\n" "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then printf "%s\n" "#define STAT_MACROS_BROKEN 1" >>confdefs.h fi case "$host_os" in mingw*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 printf %s "checking for 64-bit off_t... " >&6; } if test ${gl_cv_type_off_t_64+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_type_off_t_64=yes else $as_nop gl_cv_type_off_t_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 printf "%s\n" "$gl_cv_type_off_t_64" >&6; } if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit st_size" >&5 printf %s "checking for 64-bit st_size... " >&6; } if test ${gl_cv_member_st_size_64+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> struct stat buf; int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_member_st_size_64=yes else $as_nop gl_cv_member_st_size_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_member_st_size_64" >&5 printf "%s\n" "$gl_cv_member_st_size_64" >&6; } if test $gl_cv_member_st_size_64 = no; then WINDOWS_64_BIT_ST_SIZE=1 else WINDOWS_64_BIT_ST_SIZE=0 fi ;; *) WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 printf %s "checking for C/C++ restrict keyword... " >&6; } if test ${ac_cv_c_restrict+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_c_restrict=no # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html # Put 'restrict' last, because C++ lacks it. for ac_kw in __restrict__ __restrict _Restrict restrict; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int *int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ int bar (int ip[$ac_kw]) { return ip[0]; } int main (void) { int s[1]; int *$ac_kw t = s; t[0] = 0; return foo (t) + bar (t); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_restrict=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$ac_cv_c_restrict" != no && break done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 printf "%s\n" "$ac_cv_c_restrict" >&6; } case $ac_cv_c_restrict in restrict) ;; no) printf "%s\n" "#define restrict /**/" >>confdefs.h ;; *) printf "%s\n" "#define restrict $ac_cv_c_restrict" >>confdefs.h ;; esac if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5 printf %s "checking absolute name of <sys/stat.h>... " >&6; } if test ${gl_cv_next_sys_stat_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/stat.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_stat_h gl_cv_next_sys_stat_h='"'$gl_header'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 printf "%s\n" "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive WINDOWS_STAT_TIMESPEC=0 ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_type_nlink_t" = xyes then : else $as_nop printf "%s\n" "#define nlink_t int" >>confdefs.h fi case "$host_os" in mingw*) ac_fn_c_check_header_compile "$LINENO" "sdkddkver.h" "ac_cv_header_sdkddkver_h" "$ac_includes_default" if test "x$ac_cv_header_sdkddkver_h" = xyes then : printf "%s\n" "#define HAVE_SDKDDKVER_H 1" >>confdefs.h fi ;; esac GL_GNULIB_CHMOD=0 GL_GNULIB_FCHMODAT=0 GL_GNULIB_FSTAT=0 GL_GNULIB_FSTATAT=0 GL_GNULIB_FUTIMENS=0 GL_GNULIB_GETUMASK=0 GL_GNULIB_LCHMOD=0 GL_GNULIB_LSTAT=0 GL_GNULIB_MKDIR=0 GL_GNULIB_MKDIRAT=0 GL_GNULIB_MKFIFO=0 GL_GNULIB_MKFIFOAT=0 GL_GNULIB_MKNOD=0 GL_GNULIB_MKNODAT=0 GL_GNULIB_STAT=0 GL_GNULIB_UTIMENSAT=0 GL_GNULIB_OVERRIDES_STRUCT_STAT=0 GL_GNULIB_MDA_CHMOD=1 GL_GNULIB_MDA_MKDIR=1 GL_GNULIB_MDA_UMASK=1 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5 printf %s "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; } if test ${gl_cv_func_getcwd_null+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on musl systems. *-musl*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_getcwd_null="guessing yes";; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_getcwd_null="$gl_cross_guess_normal";; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include <stdlib.h> # if HAVE_UNISTD_H # include <unistd.h> # else /* on Windows with MSVC */ # include <direct.h> # endif $gl_mda_defines # ifndef getcwd char *getcwd (); # endif int main (void) { #if defined _WIN32 && ! defined __CYGWIN__ /* mingw cwd does not start with '/', but _getcwd does allocate. However, mingw fails to honor non-zero size. */ #else if (chdir ("/") != 0) return 1; else { char *f = getcwd (NULL, 0); if (! f) return 2; if (f[0] != '/') { free (f); return 3; } if (f[1] != '\0') { free (f); return 4; } free (f); return 0; } #endif ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_getcwd_null=yes else $as_nop gl_cv_func_getcwd_null=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5 printf "%s\n" "$gl_cv_func_getcwd_null" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5 printf %s "checking for getcwd with POSIX signature... " >&6; } if test ${gl_cv_func_getcwd_posix_signature+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> $gl_mda_defines int main (void) { extern #ifdef __cplusplus "C" #endif char *getcwd (char *, size_t); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_func_getcwd_posix_signature=yes else $as_nop gl_cv_func_getcwd_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5 printf "%s\n" "$gl_cv_func_getcwd_posix_signature" >&6; } ac_fn_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_getdtablesize" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_GETDTABLESIZE $ac_have_decl" >>confdefs.h if test -z "$gl_anythreadlib_early_done"; then case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks <pthread.h>. cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in <errno.h>. case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac gl_anythreadlib_early_done=done fi if test -z "$gl_pthreadlib_body_done"; then gl_pthread_api=no LIBPTHREAD= LIBPMULTITHREAD= # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks <pthread.h>. It's added above, in gl_ANYTHREADLIB_EARLY. ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" if test "x$ac_cv_header_pthread_h" = xyes then : gl_have_pthread_h=yes else $as_nop gl_have_pthread_h=no fi if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. # # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 # needs -pthread for some reason. See: # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html save_LIBS=$LIBS for gl_pthread in '' '-pthread'; do LIBS="$LIBS $gl_pthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <pthread.h> pthread_mutex_t m; pthread_mutexattr_t ma; int main (void) { pthread_mutex_lock (&m); pthread_mutexattr_init (&ma); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_pthread_api=yes LIBPTHREAD=$gl_pthread LIBPMULTITHREAD=$gl_pthread fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$save_LIBS test $gl_pthread_api = yes && break done echo "$as_me:20364: gl_pthread_api=$gl_pthread_api" >&5 echo "$as_me:20365: LIBPTHREAD=$LIBPTHREAD" >&5 gl_pthread_in_glibc=no # On Linux with glibc >= 2.34, libc contains the fully functional # pthread functions. case "$host_os" in linux*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) Lucky user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1 then : gl_pthread_in_glibc=yes fi rm -rf conftest* ;; esac echo "$as_me:20391: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 printf %s "checking for pthread_kill in -lpthread... " >&6; } if test ${ac_cv_lib_pthread_pthread_kill+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char pthread_kill (); int main (void) { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_pthread_pthread_kill=yes else $as_nop ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes then : if test $gl_pthread_in_glibc = yes; then LIBPMULTITHREAD= else LIBPMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. # On Solaris 10 or newer, this test is no longer needed, because # libc contains the fully functional pthread functions. case "$host_os" in solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h esac fi fi elif test $gl_pthread_api != yes; then # Some library is needed. Try libpthread and libc_r. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 printf %s "checking for pthread_kill in -lpthread... " >&6; } if test ${ac_cv_lib_pthread_pthread_kill+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char pthread_kill (); int main (void) { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_pthread_pthread_kill=yes else $as_nop ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes then : gl_pthread_api=yes LIBPTHREAD=-lpthread LIBPMULTITHREAD=-lpthread fi if test $gl_pthread_api != yes; then # For FreeBSD 4. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 printf %s "checking for pthread_kill in -lc_r... " >&6; } if test ${ac_cv_lib_c_r_pthread_kill+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char pthread_kill (); int main (void) { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_c_r_pthread_kill=yes else $as_nop ac_cv_lib_c_r_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; } if test "x$ac_cv_lib_c_r_pthread_kill" = xyes then : gl_pthread_api=yes LIBPTHREAD=-lc_r LIBPMULTITHREAD=-lc_r fi fi fi echo "$as_me:20545: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 printf %s "checking whether POSIX threads API is available... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 printf "%s\n" "$gl_pthread_api" >&6; } if test $gl_pthread_api = yes; then printf "%s\n" "#define HAVE_PTHREAD_API 1" >>confdefs.h fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sched.h> int main (void) { sched_yield (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : SCHED_YIELD_LIB= else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 printf %s "checking for sched_yield in -lrt... " >&6; } if test ${ac_cv_lib_rt_sched_yield+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char sched_yield (); int main (void) { return sched_yield (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_rt_sched_yield=yes else $as_nop ac_cv_lib_rt_sched_yield=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; } if test "x$ac_cv_lib_rt_sched_yield" = xyes then : SCHED_YIELD_LIB=-lrt else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 printf %s "checking for sched_yield in -lposix4... " >&6; } if test ${ac_cv_lib_posix4_sched_yield+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lposix4 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char sched_yield (); int main (void) { return sched_yield (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_posix4_sched_yield=yes else $as_nop ac_cv_lib_posix4_sched_yield=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; } if test "x$ac_cv_lib_posix4_sched_yield" = xyes then : SCHED_YIELD_LIB=-lposix4 fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIB_SCHED_YIELD="$SCHED_YIELD_LIB" gl_pthreadlib_body_done=done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (LC_ALL, NULL) is multithread-safe" >&5 printf %s "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&6; } if test ${gl_cv_func_setlocale_null_all_mtsafe+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku. *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku*) gl_cv_func_setlocale_null_all_mtsafe=no ;; # Guess no on Cygwin < 3.4.6. cygwin*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __CYGWIN__ #include <cygwin/version.h> #if CYGWIN_VERSION_DLL_COMBINED >= CYGWIN_VERSION_DLL_MAKE_COMBINED (3004, 6) Lucky user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1 then : gl_cv_func_setlocale_null_all_mtsafe=yes else $as_nop gl_cv_func_setlocale_null_all_mtsafe=no fi rm -rf conftest* ;; # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) gl_cv_func_setlocale_null_all_mtsafe=yes ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5 printf "%s\n" "$gl_cv_func_setlocale_null_all_mtsafe" >&6; } case "$host_os" in mingw*) ;; *) if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then gl_cv_func_setlocale_null_all_mtsafe="trivially yes" fi ;; esac case "$gl_cv_func_setlocale_null_all_mtsafe" in *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; esac printf "%s\n" "#define SETLOCALE_NULL_ALL_MTSAFE $SETLOCALE_NULL_ALL_MTSAFE" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (category, NULL) is multithread-safe" >&5 printf %s "checking whether setlocale (category, NULL) is multithread-safe... " >&6; } if test ${gl_cv_func_setlocale_null_one_mtsafe+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on OpenBSD, AIX. openbsd* | aix*) gl_cv_func_setlocale_null_one_mtsafe=no ;; # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. *-gnu* | gnu* | *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) gl_cv_func_setlocale_null_one_mtsafe=yes ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5 printf "%s\n" "$gl_cv_func_setlocale_null_one_mtsafe" >&6; } case "$host_os" in mingw*) ;; *) if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then gl_cv_func_setlocale_null_one_mtsafe="trivially yes" fi ;; esac case "$gl_cv_func_setlocale_null_one_mtsafe" in *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; esac printf "%s\n" "#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE" >>confdefs.h if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then case "$host_os" in mingw*) SETLOCALE_NULL_LIB= ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 printf %s "checking whether imported symbols can be declared weak... " >&6; } if test ${gl_cv_have_weak+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in cygwin*) gl_cv_have_weak="guessing no" ;; *) gl_cv_have_weak=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy int main (void) { xyzzy(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_have_weak=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test $gl_cv_have_weak = maybe; then if test "$cross_compiling" = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1 then : gl_cv_have_weak="guessing yes" else $as_nop gl_cv_have_weak="guessing no" fi rm -rf conftest* else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> #pragma weak fputs int main () { return (fputs == NULL); } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_have_weak=yes else $as_nop gl_cv_have_weak=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi ;; esac case " $LDFLAGS " in *" -static "*) gl_cv_have_weak=no ;; esac case "$gl_cv_have_weak" in *yes) case "$host_os" in freebsd* | dragonfly* | midnightbsd*) : > conftest1.c $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 cat <<EOF > conftest2.c #include <pthread.h> #pragma weak pthread_mutexattr_gettype int main () { return (pthread_mutexattr_gettype != NULL); } EOF $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ || gl_cv_have_weak=no rm -f conftest1.c libempty.so conftest2.c conftest ;; esac ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 printf "%s\n" "$gl_cv_have_weak" >&6; } case "$gl_cv_have_weak" in *yes) printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h ;; esac case "$gl_cv_have_weak" in *yes) SETLOCALE_NULL_LIB= ;; *) SETLOCALE_NULL_LIB="$LIBPTHREAD" ;; esac ;; esac else SETLOCALE_NULL_LIB= fi LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB" if test $gl_cv_have_include_next = yes; then gl_cv_next_limits_h='<'limits.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <limits.h>" >&5 printf %s "checking absolute name of <limits.h>... " >&6; } if test ${gl_cv_next_limits_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_limits_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'limits.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_limits_h gl_cv_next_limits_h='"'$gl_header'"' else gl_cv_next_limits_h='<'limits.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5 printf "%s\n" "$gl_cv_next_limits_h" >&6; } fi NEXT_LIMITS_H=$gl_cv_next_limits_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'limits.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_limits_h fi NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether limits.h has WORD_BIT, BOOL_WIDTH etc." >&5 printf %s "checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... " >&6; } if test ${gl_cv_header_limits_width+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include <limits.h> long long llm = LLONG_MAX; int wb = WORD_BIT; int ullw = ULLONG_WIDTH; int bw = BOOL_WIDTH; int bm = BOOL_MAX; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_header_limits_width=yes else $as_nop gl_cv_header_limits_width=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5 printf "%s\n" "$gl_cv_header_limits_width" >&6; } if test "$gl_cv_header_limits_width" = yes; then GL_GENERATE_LIMITS_H=false else GL_GENERATE_LIMITS_H=true fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 printf %s "checking for wint_t... " >&6; } if test ${gt_cv_c_wint_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> wint_t foo = (wchar_t)'\0'; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gt_cv_c_wint_t=yes else $as_nop gt_cv_c_wint_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 printf "%s\n" "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then printf "%s\n" "#define HAVE_WINT_T 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wint_t is large enough" >&5 printf %s "checking whether wint_t is large enough... " >&6; } if test ${gl_cv_type_wint_t_large_enough+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_type_wint_t_large_enough=yes else $as_nop gl_cv_type_wint_t_large_enough=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wint_t_large_enough" >&5 printf "%s\n" "$gl_cv_type_wint_t_large_enough" >&6; } if test $gl_cv_type_wint_t_large_enough = no; then GNULIBHEADERS_OVERRIDE_WINT_T=1 else GNULIBHEADERS_OVERRIDE_WINT_T=0 fi else GNULIBHEADERS_OVERRIDE_WINT_T=0 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler produces multi-arch binaries" >&5 printf %s "checking whether the compiler produces multi-arch binaries... " >&6; } if test ${gl_cv_c_multiarch+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_c_multiarch=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO" then : arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64 | arm | arm64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_multiarch" >&5 printf "%s\n" "$gl_cv_c_multiarch" >&6; } if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_stdint_h='<'stdint.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5 printf %s "checking absolute name of <stdint.h>... " >&6; } if test ${gl_cv_next_stdint_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_stdint_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdint.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdint.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdint_h gl_cv_next_stdint_h='"'$gl_header'"' else gl_cv_next_stdint_h='<'stdint.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 printf "%s\n" "$gl_cv_next_stdint_h" >&6; } fi NEXT_STDINT_H=$gl_cv_next_stdint_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdint.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdint_h fi NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi if test $ac_cv_header_stdint_h = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 printf %s "checking whether stdint.h conforms to C99... " >&6; } if test ${gl_cv_header_working_stdint_h+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_header_working_stdint_h=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include <stdint.h> /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>" #endif #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ #if 201112 <= __STDC_VERSION__ int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__)) extern size_t k; extern __typeof__ (SIZE_MAX) k; #endif #include <limits.h> /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; # In general, assume it works. *) gl_cv_header_working_stdint_h="guessing yes" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include <stdint.h> #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif #include <stdio.h> #include <string.h> #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; int main (void) { const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_header_working_stdint_h=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 printf "%s\n" "$gl_cv_header_working_stdint_h" >&6; } fi HAVE_C99_STDINT_H=0 HAVE_SYS_BITYPES_H=0 HAVE_SYS_INTTYPES_H=0 GL_GENERATE_STDINT_H=true case "$gl_cv_header_working_stdint_h" in *yes) HAVE_C99_STDINT_H=1 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h works without ISO C predefines" >&5 printf %s "checking whether stdint.h works without ISO C predefines... " >&6; } if test ${gl_cv_header_stdint_without_STDC_macros+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_header_stdint_without_STDC_macros=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include <stdint.h> #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif intmax_t im = INTMAX_MAX; int32_t i32 = INT32_C (0x7fffffff); int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_header_stdint_without_STDC_macros=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_without_STDC_macros" >&5 printf "%s\n" "$gl_cv_header_stdint_without_STDC_macros" >&6; } if test $gl_cv_header_stdint_without_STDC_macros = no; then printf "%s\n" "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h printf "%s\n" "#define __STDC_LIMIT_MACROS 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5 printf %s "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; } if test ${gl_cv_header_stdint_width+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_header_stdint_width=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include <stdint.h> #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif int iw = UINTMAX_WIDTH; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_header_stdint_width=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5 printf "%s\n" "$gl_cv_header_stdint_width" >&6; } if test "$gl_cv_header_stdint_width" = yes; then GL_GENERATE_STDINT_H=false fi ;; *) ac_fn_c_check_header_compile "$LINENO" "sys/inttypes.h" "ac_cv_header_sys_inttypes_h" "$ac_includes_default" if test "x$ac_cv_header_sys_inttypes_h" = xyes then : printf "%s\n" "#define HAVE_SYS_INTTYPES_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/bitypes.h" "ac_cv_header_sys_bitypes_h" "$ac_includes_default" if test "x$ac_cv_header_sys_bitypes_h" = xyes then : printf "%s\n" "#define HAVE_SYS_BITYPES_H 1" >>confdefs.h fi if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 fi if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 printf %s "checking for bit size of $gltype... " >&6; } if eval test \${gl_cv_bitsizeof_${gltype}+y} then : printf %s "(cached) " >&6 else $as_nop if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif #include <limits.h>" then : else $as_nop result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` printf "%s\n" "#define BITSIZEOF_${GLTYPE} $result" >>confdefs.h eval BITSIZEOF_${GLTYPE}=\$result done fi for gltype in sig_atomic_t wchar_t wint_t ; do { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 printf %s "checking for bit size of $gltype... " >&6; } if eval test \${gl_cv_bitsizeof_${gltype}+y} then : printf %s "(cached) " >&6 else $as_nop if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif #include <limits.h>" then : else $as_nop result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` printf "%s\n" "#define BITSIZEOF_${GLTYPE} $result" >>confdefs.h eval BITSIZEOF_${GLTYPE}=\$result done for gltype in sig_atomic_t wchar_t wint_t ; do { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 printf %s "checking whether $gltype is signed... " >&6; } if eval test \${gl_cv_type_${gltype}_signed+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : result=yes else $as_nop result=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval gl_cv_type_${gltype}_signed=\$result fi eval ac_res=\$gl_cv_type_${gltype}_signed { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then printf "%s\n" "#define HAVE_SIGNED_${GLTYPE} 1" >>confdefs.h eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 printf %s "checking for $gltype integer literal suffix... " >&6; } if eval test \${gl_cv_type_${gltype}_suffix+y} then : printf %s "(cached) " >&6 else $as_nop eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif extern $gltype foo; extern $gltype1 foo; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result printf "%s\n" "#define ${GLTYPE}_SUFFIX $result" >>confdefs.h done fi for gltype in sig_atomic_t wchar_t wint_t ; do { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 printf %s "checking for $gltype integer literal suffix... " >&6; } if eval test \${gl_cv_type_${gltype}_suffix+y} then : printf %s "(cached) " >&6 else $as_nop eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif extern $gltype foo; extern $gltype1 foo; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result printf "%s\n" "#define ${GLTYPE}_SUFFIX $result" >>confdefs.h done if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then BITSIZEOF_WINT_T=32 fi ;; esac GL_GENERATE_LIMITS_H=true HAVE_DECL_IMAXABS=1; HAVE_DECL_IMAXDIV=1; HAVE_DECL_STRTOIMAX=1; HAVE_DECL_STRTOUMAX=1; HAVE_IMAXDIV_T=1; HAVE_IMAXABS=1; HAVE_IMAXDIV=1; REPLACE_IMAXABS=0; REPLACE_IMAXDIV=0; REPLACE_STRTOIMAX=0; REPLACE_STRTOUMAX=0; INT32_MAX_LT_INTMAX_MAX=1; INT64_MAX_EQ_LONG_MAX='defined _LP64'; PRIPTR_PREFIX=__PRIPTR_PREFIX; UINT32_MAX_LT_UINTMAX_MAX=1; UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; if test $gl_cv_have_include_next = yes; then gl_cv_next_inttypes_h='<'inttypes.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5 printf %s "checking absolute name of <inttypes.h>... " >&6; } if test ${gl_cv_next_inttypes_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_inttypes_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <inttypes.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'inttypes.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_inttypes_h gl_cv_next_inttypes_h='"'$gl_header'"' else gl_cv_next_inttypes_h='<'inttypes.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5 printf "%s\n" "$gl_cv_next_inttypes_h" >&6; } fi NEXT_INTTYPES_H=$gl_cv_next_inttypes_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'inttypes.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_inttypes_h fi NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive GL_GNULIB_IMAXABS=0 GL_GNULIB_IMAXDIV=0 GL_GNULIB_STRTOIMAX=0 GL_GNULIB_STRTOUMAX=0 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 printf %s "checking for nl_langinfo and CODESET... " >&6; } if test ${am_cv_langinfo_codeset+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <langinfo.h> int main (void) { char* cs = nl_langinfo(CODESET); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : am_cv_langinfo_codeset=yes else $as_nop am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 printf "%s\n" "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then printf "%s\n" "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi HAVE_NEWLOCALE=1; HAVE_DUPLOCALE=1; HAVE_FREELOCALE=1; REPLACE_LOCALECONV=0; REPLACE_SETLOCALE=0; REPLACE_NEWLOCALE=0; REPLACE_DUPLOCALE=0; REPLACE_FREELOCALE=0; REPLACE_STRUCT_LCONV=0; LOCALENAME_ENHANCE_LOCALE_FUNCS=0; REPLACE_NULL=0; HAVE_MAX_ALIGN_T=1; HAVE_WCHAR_T=1; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 printf %s "checking for wchar_t... " >&6; } if test ${gt_cv_c_wchar_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> wchar_t foo = (wchar_t)'\0'; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gt_cv_c_wchar_t=yes else $as_nop gt_cv_c_wchar_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 printf "%s\n" "$gt_cv_c_wchar_t" >&6; } if test $gt_cv_c_wchar_t = yes; then printf "%s\n" "#define HAVE_WCHAR_T 1" >>confdefs.h fi GL_GENERATE_STDDEF_H=false { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 printf %s "checking for good max_align_t... " >&6; } if test ${gl_cv_type_max_align_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* On FreeBSD 12.0/x86, max_align_t defined by <stddef.h> has the correct alignment with the default (wrong) definition of _Alignof, but a wrong alignment as soon as we activate an ISO C compliant _Alignof definition. */ #if ((defined __GNUC__ && 4 <= __GNUC__) || defined __clang__) && !defined __cplusplus #define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) #endif #include <stddef.h> unsigned int s = sizeof (max_align_t); #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; #endif typedef struct { char a; max_align_t b; } max_helper; typedef struct { char a; long b; } long_helper; typedef struct { char a; double b; } double_helper; typedef struct { char a; long double b; } long_double_helper; int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_type_max_align_t=yes else $as_nop gl_cv_type_max_align_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5 printf "%s\n" "$gl_cv_type_max_align_t" >&6; } if test $gl_cv_type_max_align_t = no; then HAVE_MAX_ALIGN_T=0 GL_GENERATE_STDDEF_H=true fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 GL_GENERATE_STDDEF_H=true fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 printf %s "checking whether NULL can be used in arbitrary expressions... " >&6; } if test ${gl_cv_decl_null_works+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_decl_null_works=yes else $as_nop gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 printf "%s\n" "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 GL_GENERATE_STDDEF_H=true fi if $GL_GENERATE_STDDEF_H; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5 printf %s "checking absolute name of <stddef.h>... " >&6; } if test ${gl_cv_next_stddef_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stddef.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stddef_h gl_cv_next_stddef_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 printf "%s\n" "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 printf %s "checking whether locale.h defines locale_t... " >&6; } if test ${gl_cv_header_locale_has_locale_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> locale_t x; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_header_locale_has_locale_t=yes else $as_nop gl_cv_header_locale_has_locale_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 printf "%s\n" "$gl_cv_header_locale_has_locale_t" >&6; } if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi HAVE_LOCALE_T=1 else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no if test $gl_cv_header_locale_has_locale_t = yes; then HAVE_LOCALE_T=1 else HAVE_LOCALE_T=0 fi fi case "$host_os" in solaris*) printf "%s\n" "#define _LCONV_C99 1" >>confdefs.h ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 printf %s "checking whether locale.h conforms to POSIX:2001... " >&6; } if test ${gl_cv_header_locale_h_posix2001+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point); int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_header_locale_h_posix2001=yes else $as_nop gl_cv_header_locale_h_posix2001=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 printf "%s\n" "$gl_cv_header_locale_h_posix2001" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 printf %s "checking whether struct lconv is properly defined... " >&6; } if test ${gl_cv_sys_struct_lconv_ok+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes); int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_sys_struct_lconv_ok=yes else $as_nop gl_cv_sys_struct_lconv_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 printf "%s\n" "$gl_cv_sys_struct_lconv_ok" >&6; } if test $gl_cv_sys_struct_lconv_ok = no; then case "$host_os" in mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _MSC_VER Special #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Special" >/dev/null 2>&1 then : else $as_nop REPLACE_STRUCT_LCONV=1 fi rm -rf conftest* ;; *) REPLACE_STRUCT_LCONV=1 ;; esac fi if test $gl_cv_have_include_next = yes; then gl_cv_next_locale_h='<'locale.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <locale.h>" >&5 printf %s "checking absolute name of <locale.h>... " >&6; } if test ${gl_cv_next_locale_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'locale.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_locale_h gl_cv_next_locale_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 printf "%s\n" "$gl_cv_next_locale_h" >&6; } fi NEXT_LOCALE_H=$gl_cv_next_locale_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'locale.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_locale_h fi NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive GL_GNULIB_LOCALECONV=0 GL_GNULIB_SETLOCALE=0 GL_GNULIB_SETLOCALE_NULL=0 GL_GNULIB_DUPLOCALE=0 GL_GNULIB_LOCALENAME=0 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5 printf %s "checking whether malloc (0) returns nonnull... " >&6; } if test ${ac_cv_func_malloc_0_nonnull+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ | gnu* | *-musl* | midipix* | midnightbsd* \ | hpux* | solaris* | cygwin* | mingw* | msys* ) ac_cv_func_malloc_0_nonnull="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> int main (void) { void *p = malloc (0); int result = !p; free (p); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_malloc_0_nonnull=yes else $as_nop ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; } case $ac_cv_func_malloc_0_nonnull in #( *yes) : gl_cv_func_malloc_0_nonnull=1 ;; #( *) : gl_cv_func_malloc_0_nonnull=0 ;; esac printf "%s\n" "#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull" >>confdefs.h HAVE_BTOWC=1; HAVE_MBSINIT=1; HAVE_MBRTOWC=1; HAVE_MBRLEN=1; HAVE_MBSRTOWCS=1; HAVE_MBSNRTOWCS=1; HAVE_WCRTOMB=1; HAVE_WCSRTOMBS=1; HAVE_WCSNRTOMBS=1; HAVE_WMEMCHR=1; HAVE_WMEMCMP=1; HAVE_WMEMCPY=1; HAVE_WMEMMOVE=1; HAVE_WMEMPCPY=1; HAVE_WMEMSET=1; HAVE_WCSLEN=1; HAVE_WCSNLEN=1; HAVE_WCSCPY=1; HAVE_WCPCPY=1; HAVE_WCSNCPY=1; HAVE_WCPNCPY=1; HAVE_WCSCAT=1; HAVE_WCSNCAT=1; HAVE_WCSCMP=1; HAVE_WCSNCMP=1; HAVE_WCSCASECMP=1; HAVE_WCSNCASECMP=1; HAVE_WCSCOLL=1; HAVE_WCSXFRM=1; HAVE_WCSDUP=1; HAVE_WCSCHR=1; HAVE_WCSRCHR=1; HAVE_WCSCSPN=1; HAVE_WCSSPN=1; HAVE_WCSPBRK=1; HAVE_WCSSTR=1; HAVE_WCSTOK=1; HAVE_WCSWIDTH=1; HAVE_WCSFTIME=1; HAVE_DECL_WCTOB=1; HAVE_DECL_WCSDUP=1; HAVE_DECL_WCWIDTH=1; REPLACE_MBSTATE_T=0; REPLACE_BTOWC=0; REPLACE_WCTOB=0; REPLACE_MBSINIT=0; REPLACE_MBRTOWC=0; REPLACE_MBRLEN=0; REPLACE_MBSRTOWCS=0; REPLACE_MBSNRTOWCS=0; REPLACE_WCRTOMB=0; REPLACE_WCSRTOMBS=0; REPLACE_WCSNRTOMBS=0; REPLACE_WCWIDTH=0; REPLACE_WCSWIDTH=0; REPLACE_WCSFTIME=0; REPLACE_WCSTOK=0; REPLACE_WMEMPCPY=0; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 printf %s "checking for mbstate_t... " >&6; } if test ${ac_cv_type_mbstate_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include <wchar.h> int main (void) { mbstate_t x; return sizeof x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_type_mbstate_t=yes else $as_nop ac_cv_type_mbstate_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 printf "%s\n" "$ac_cv_type_mbstate_t" >&6; } if test $ac_cv_type_mbstate_t = yes; then printf "%s\n" "#define HAVE_MBSTATE_T 1" >>confdefs.h else printf "%s\n" "#define mbstate_t int" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 printf %s "checking for a traditional japanese locale... " >&6; } if test ${gt_cv_locale_ja+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 printf "%s\n" "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 printf %s "checking for a french Unicode locale... " >&6; } if test ${gt_cv_locale_fr_utf8+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 printf %s "checking for a transitional chinese locale... " >&6; } if test ${gt_cv_locale_zh_CN+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 printf "%s\n" "$gt_cv_locale_zh_CN" >&6; } LOCALE_ZH_CN=$gt_cv_locale_zh_CN { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 printf %s "checking for inline... " >&6; } if test ${ac_cv_c_inline+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo (void) {return 0; } $ac_kw foo_t foo (void) {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 printf "%s\n" "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac GL_GNULIB_BTOWC=0 GL_GNULIB_WCTOB=0 GL_GNULIB_MBSINIT=0 GL_GNULIB_MBRTOWC=0 GL_GNULIB_MBRLEN=0 GL_GNULIB_MBSRTOWCS=0 GL_GNULIB_MBSNRTOWCS=0 GL_GNULIB_WCRTOMB=0 GL_GNULIB_WCSRTOMBS=0 GL_GNULIB_WCSNRTOMBS=0 GL_GNULIB_WCWIDTH=0 GL_GNULIB_WMEMCHR=0 GL_GNULIB_WMEMCMP=0 GL_GNULIB_WMEMCPY=0 GL_GNULIB_WMEMMOVE=0 GL_GNULIB_WMEMPCPY=0 GL_GNULIB_WMEMSET=0 GL_GNULIB_WCSLEN=0 GL_GNULIB_WCSNLEN=0 GL_GNULIB_WCSCPY=0 GL_GNULIB_WCPCPY=0 GL_GNULIB_WCSNCPY=0 GL_GNULIB_WCPNCPY=0 GL_GNULIB_WCSCAT=0 GL_GNULIB_WCSNCAT=0 GL_GNULIB_WCSCMP=0 GL_GNULIB_WCSNCMP=0 GL_GNULIB_WCSCASECMP=0 GL_GNULIB_WCSNCASECMP=0 GL_GNULIB_WCSCOLL=0 GL_GNULIB_WCSXFRM=0 GL_GNULIB_WCSDUP=0 GL_GNULIB_WCSCHR=0 GL_GNULIB_WCSRCHR=0 GL_GNULIB_WCSCSPN=0 GL_GNULIB_WCSSPN=0 GL_GNULIB_WCSPBRK=0 GL_GNULIB_WCSSTR=0 GL_GNULIB_WCSTOK=0 GL_GNULIB_WCSWIDTH=0 GL_GNULIB_WCSFTIME=0 GL_GNULIB_MDA_WCSDUP=1 # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" if test "x$ac_cv_func_mmap" = xyes then : gl_have_mmap=yes else $as_nop gl_have_mmap=no fi # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 printf %s "checking for MAP_ANONYMOUS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/mman.h> #ifdef MAP_ANONYMOUS I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1 then : gl_have_mmap_anonymous=yes fi rm -rf conftest* if test $gl_have_mmap_anonymous != yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/mman.h> #ifdef MAP_ANON I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1 then : printf "%s\n" "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h gl_have_mmap_anonymous=yes fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 printf "%s\n" "$gl_have_mmap_anonymous" >&6; } if test $gl_have_mmap_anonymous = yes; then printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h fi fi HAVE_MBSLEN=0; HAVE_EXPLICIT_BZERO=1; HAVE_FFSL=1; HAVE_FFSLL=1; HAVE_DECL_MEMMEM=1; HAVE_MEMPCPY=1; HAVE_MEMSET_EXPLICIT=1; HAVE_DECL_MEMRCHR=1; HAVE_RAWMEMCHR=1; HAVE_STPCPY=1; HAVE_STPNCPY=1; HAVE_STRCHRNUL=1; HAVE_DECL_STRDUP=1; HAVE_DECL_STRNDUP=1; HAVE_DECL_STRNLEN=1; HAVE_STRPBRK=1; HAVE_STRSEP=1; HAVE_STRCASESTR=1; HAVE_DECL_STRTOK_R=1; HAVE_DECL_STRERROR_R=1; HAVE_STRERRORNAME_NP=1; HAVE_SIGABBREV_NP=1; HAVE_SIGDESCR_NP=1; HAVE_DECL_STRSIGNAL=1; HAVE_STRVERSCMP=1; REPLACE_FFSLL=0; REPLACE_MEMCHR=0; REPLACE_MEMMEM=0; REPLACE_MEMPCPY=0; REPLACE_STPCPY=0; REPLACE_STPNCPY=0; REPLACE_STRCHRNUL=0; REPLACE_STRDUP=0; REPLACE_STRNCAT=0; REPLACE_STRNDUP=0; REPLACE_STRNLEN=0; REPLACE_STRSTR=0; REPLACE_STRCASESTR=0; REPLACE_STRTOK_R=0; REPLACE_STRERROR=0; REPLACE_STRERROR_R=0; REPLACE_STRERRORNAME_NP=0; REPLACE_STRSIGNAL=0; UNDEFINE_STRTOK_R=0; # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # https://bugzilla.redhat.com/show_bug.cgi?id=499689 # memchr should not dereference overestimated length after a match # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 # memchr should cast the second argument to 'unsigned char'. # This bug exists in Android 4.3. # Assume that memchr works on platforms that lack mprotect. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 printf %s "checking whether memchr works... " >&6; } if test ${gl_cv_func_memchr_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess no on Android. linux*-android*) gl_cv_func_memchr_works="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_memchr_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> #if HAVE_SYS_MMAN_H # include <fcntl.h> # include <unistd.h> # include <sys/types.h> # include <sys/mman.h> # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif int main (void) { int result = 0; char *fence = NULL; #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) fence = two_pages + pagesize; } #endif if (fence) { /* Test against bugs on glibc systems. */ if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); if (memchr (fence - 9, 0, 79) != fence - 1) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; /* Test against bug on AIX 7.2. */ if (memchr (fence - 4, '6', 16) != fence - 4) result |= 8; } /* Test against bug on Android 4.3. */ { char input[3]; input[0] = 'a'; input[1] = 'b'; input[2] = 'c'; if (memchr (input, 0x789abc00 | 'b', 3) != input + 1) result |= 16; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_memchr_works=yes else $as_nop gl_cv_func_memchr_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 printf "%s\n" "$gl_cv_func_memchr_works" >&6; } case "$gl_cv_func_memchr_works" in *yes) ;; *) REPLACE_MEMCHR=1 ;; esac GL_GNULIB_EXPLICIT_BZERO=0 GL_GNULIB_FFSL=0 GL_GNULIB_FFSLL=0 GL_GNULIB_MEMCHR=0 GL_GNULIB_MEMMEM=0 GL_GNULIB_MEMPCPY=0 GL_GNULIB_MEMRCHR=0 GL_GNULIB_MEMSET_EXPLICIT=0 GL_GNULIB_RAWMEMCHR=0 GL_GNULIB_STPCPY=0 GL_GNULIB_STPNCPY=0 GL_GNULIB_STRCHRNUL=0 GL_GNULIB_STRDUP=0 GL_GNULIB_STRNCAT=0 GL_GNULIB_STRNDUP=0 GL_GNULIB_STRNLEN=0 GL_GNULIB_STRPBRK=0 GL_GNULIB_STRSEP=0 GL_GNULIB_STRSTR=0 GL_GNULIB_STRCASESTR=0 GL_GNULIB_STRTOK_R=0 GL_GNULIB_MBSLEN=0 GL_GNULIB_MBSNLEN=0 GL_GNULIB_MBSCHR=0 GL_GNULIB_MBSRCHR=0 GL_GNULIB_MBSSTR=0 GL_GNULIB_MBSCASECMP=0 GL_GNULIB_MBSNCASECMP=0 GL_GNULIB_MBSPCASECMP=0 GL_GNULIB_MBSCASESTR=0 GL_GNULIB_MBSCSPN=0 GL_GNULIB_MBSPBRK=0 GL_GNULIB_MBSSPN=0 GL_GNULIB_MBSSEP=0 GL_GNULIB_MBSTOK_R=0 GL_GNULIB_STRERROR=0 GL_GNULIB_STRERROR_R=0 GL_GNULIB_STRERRORNAME_NP=0 GL_GNULIB_SIGABBREV_NP=0 GL_GNULIB_SIGDESCR_NP=0 GL_GNULIB_STRSIGNAL=0 GL_GNULIB_STRVERSCMP=0 GL_GNULIB_MDA_MEMCCPY=1 GL_GNULIB_MDA_STRDUP=1 ac_fn_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_memrchr" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_MEMRCHR $ac_have_decl" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <limits.h> defines MIN and MAX" >&5 printf %s "checking whether <limits.h> defines MIN and MAX... " >&6; } if test ${gl_cv_minmax_in_limits_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> int x = MIN (42, 17); int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_minmax_in_limits_h=yes else $as_nop gl_cv_minmax_in_limits_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_limits_h" >&5 printf "%s\n" "$gl_cv_minmax_in_limits_h" >&6; } if test $gl_cv_minmax_in_limits_h = yes; then printf "%s\n" "#define HAVE_MINMAX_IN_LIMITS_H 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/param.h> defines MIN and MAX" >&5 printf %s "checking whether <sys/param.h> defines MIN and MAX... " >&6; } if test ${gl_cv_minmax_in_sys_param_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/param.h> int x = MIN (42, 17); int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_minmax_in_sys_param_h=yes else $as_nop gl_cv_minmax_in_sys_param_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_sys_param_h" >&5 printf "%s\n" "$gl_cv_minmax_in_sys_param_h" >&6; } if test $gl_cv_minmax_in_sys_param_h = yes; then printf "%s\n" "#define HAVE_MINMAX_IN_SYS_PARAM_H 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 printf %s "checking for O_CLOEXEC... " >&6; } if test ${gl_cv_macro_O_CLOEXEC+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <fcntl.h> #ifndef O_CLOEXEC choke me; #endif int main (void) { return O_CLOEXEC; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_macro_O_CLOEXEC=yes else $as_nop gl_cv_macro_O_CLOEXEC=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_macro_O_CLOEXEC" >&5 printf "%s\n" "$gl_cv_macro_O_CLOEXEC" >&6; } if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then REPLACE_REALLOC_FOR_REALLOC_POSIX=1 fi HAVE_DECL_FCLOSEALL=1; HAVE_DECL_FPURGE=1; HAVE_DECL_FSEEKO=1; HAVE_DECL_FTELLO=1; HAVE_DECL_GETDELIM=1; HAVE_DECL_GETLINE=1; HAVE_DECL_GETW=1; HAVE_DECL_OBSTACK_PRINTF=1; HAVE_DECL_PUTW=1; HAVE_DECL_SNPRINTF=1; HAVE_DECL_VSNPRINTF=1; HAVE_DPRINTF=1; HAVE_FSEEKO=1; HAVE_FTELLO=1; HAVE_PCLOSE=1; HAVE_POPEN=1; HAVE_RENAMEAT=1; HAVE_VASPRINTF=1; HAVE_VDPRINTF=1; REPLACE_DPRINTF=0; REPLACE_FCLOSE=0; REPLACE_FDOPEN=0; REPLACE_FFLUSH=0; REPLACE_FOPEN=0; REPLACE_FOPEN_FOR_FOPEN_GNU=0; REPLACE_FPRINTF=0; REPLACE_FPURGE=0; REPLACE_FREOPEN=0; REPLACE_FSEEK=0; REPLACE_FSEEKO=0; REPLACE_FTELL=0; REPLACE_FTELLO=0; REPLACE_GETDELIM=0; REPLACE_GETLINE=0; REPLACE_OBSTACK_PRINTF=0; REPLACE_PERROR=0; REPLACE_POPEN=0; REPLACE_PRINTF=0; REPLACE_REMOVE=0; REPLACE_RENAME=0; REPLACE_RENAMEAT=0; REPLACE_SNPRINTF=0; REPLACE_SPRINTF=0; REPLACE_STDIO_READ_FUNCS=0; REPLACE_STDIO_WRITE_FUNCS=0; REPLACE_TMPFILE=0; REPLACE_VASPRINTF=0; REPLACE_VDPRINTF=0; REPLACE_VFPRINTF=0; REPLACE_VPRINTF=0; REPLACE_VSNPRINTF=0; REPLACE_VSPRINTF=0; GL_GNULIB_DPRINTF=0 GL_GNULIB_FCLOSE=0 GL_GNULIB_FDOPEN=0 GL_GNULIB_FFLUSH=0 GL_GNULIB_FGETC=0 GL_GNULIB_FGETS=0 GL_GNULIB_FOPEN=0 GL_GNULIB_FOPEN_GNU=0 GL_GNULIB_FPRINTF=0 GL_GNULIB_FPRINTF_POSIX=0 GL_GNULIB_FPURGE=0 GL_GNULIB_FPUTC=0 GL_GNULIB_FPUTS=0 GL_GNULIB_FREAD=0 GL_GNULIB_FREOPEN=0 GL_GNULIB_FSCANF=0 GL_GNULIB_FSEEK=0 GL_GNULIB_FSEEKO=0 GL_GNULIB_FTELL=0 GL_GNULIB_FTELLO=0 GL_GNULIB_FWRITE=0 GL_GNULIB_GETC=0 GL_GNULIB_GETCHAR=0 GL_GNULIB_GETDELIM=0 GL_GNULIB_GETLINE=0 GL_GNULIB_OBSTACK_PRINTF=0 GL_GNULIB_OBSTACK_PRINTF_POSIX=0 GL_GNULIB_PCLOSE=0 GL_GNULIB_PERROR=0 GL_GNULIB_POPEN=0 GL_GNULIB_PRINTF=0 GL_GNULIB_PRINTF_POSIX=0 GL_GNULIB_PUTC=0 GL_GNULIB_PUTCHAR=0 GL_GNULIB_PUTS=0 GL_GNULIB_REMOVE=0 GL_GNULIB_RENAME=0 GL_GNULIB_RENAMEAT=0 GL_GNULIB_SCANF=0 GL_GNULIB_SNPRINTF=0 GL_GNULIB_SPRINTF_POSIX=0 GL_GNULIB_STDIO_H_NONBLOCKING=0 GL_GNULIB_STDIO_H_SIGPIPE=0 GL_GNULIB_TMPFILE=0 GL_GNULIB_VASPRINTF=0 GL_GNULIB_VFSCANF=0 GL_GNULIB_VSCANF=0 GL_GNULIB_VDPRINTF=0 GL_GNULIB_VFPRINTF=0 GL_GNULIB_VFPRINTF_POSIX=0 GL_GNULIB_VPRINTF=0 GL_GNULIB_VPRINTF_POSIX=0 GL_GNULIB_VSNPRINTF=0 GL_GNULIB_VSPRINTF_POSIX=0 GL_GNULIB_MDA_FCLOSEALL=1 GL_GNULIB_MDA_FDOPEN=1 GL_GNULIB_MDA_FILENO=1 GL_GNULIB_MDA_GETW=1 GL_GNULIB_MDA_PUTW=1 GL_GNULIB_MDA_TEMPNAM=1 if test $ac_cv_header_sys_socket_h != yes; then ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes then : printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h fi fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi LIBSOCKET= if test $HAVE_WINSOCK2_H = 1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for WSAStartup" >&5 printf %s "checking for WSAStartup... " >&6; } if test ${gl_cv_func_wsastartup+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WINSOCK2_H # include <winsock2.h> #endif int main (void) { WORD wVersionRequested = MAKEWORD(1, 1); WSADATA wsaData; int err = WSAStartup(wVersionRequested, &wsaData); WSACleanup (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_func_wsastartup=yes else $as_nop gl_cv_func_wsastartup=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wsastartup" >&5 printf "%s\n" "$gl_cv_func_wsastartup" >&6; } if test "$gl_cv_func_wsastartup" = "yes"; then printf "%s\n" "#define WINDOWS_SOCKETS 1" >>confdefs.h LIBSOCKET='-lws2_32' fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 printf %s "checking for library containing setsockopt... " >&6; } if test ${gl_cv_lib_socket+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_lib_socket= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern #ifdef __cplusplus "C" #endif char setsockopt(); int main (void) { setsockopt(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : else $as_nop gl_save_LIBS="$LIBS" LIBS="$gl_save_LIBS -lsocket" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern #ifdef __cplusplus "C" #endif char setsockopt(); int main (void) { setsockopt(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_lib_socket="-lsocket" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$gl_cv_lib_socket"; then LIBS="$gl_save_LIBS -lnetwork" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern #ifdef __cplusplus "C" #endif char setsockopt(); int main (void) { setsockopt(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_lib_socket="-lnetwork" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$gl_cv_lib_socket"; then LIBS="$gl_save_LIBS -lnet" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern #ifdef __cplusplus "C" #endif char setsockopt(); int main (void) { setsockopt(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_lib_socket="-lnet" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi fi LIBS="$gl_save_LIBS" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$gl_cv_lib_socket"; then gl_cv_lib_socket="none needed" fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_socket" >&5 printf "%s\n" "$gl_cv_lib_socket" >&6; } if test "$gl_cv_lib_socket" != "none needed"; then LIBSOCKET="$gl_cv_lib_socket" fi fi : if test $ac_cv_header_sys_socket_h = no; then ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" if test "x$ac_cv_header_ws2tcpip_h" = xyes then : printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h fi fi ac_fn_check_decl "$LINENO" "fcloseall" "ac_cv_have_decl_fcloseall" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_fcloseall" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_FCLOSEALL $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "getw" "ac_cv_have_decl_getw" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_getw" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_GETW $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "putw" "ac_cv_have_decl_putw" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_putw" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_PUTW $ac_have_decl" >>confdefs.h printf "%s\n" "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_stdio_h='<'stdio.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdio.h>" >&5 printf %s "checking absolute name of <stdio.h>... " >&6; } if test ${gl_cv_next_stdio_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdio_h gl_cv_next_stdio_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 printf "%s\n" "$gl_cv_next_stdio_h" >&6; } fi NEXT_STDIO_H=$gl_cv_next_stdio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdio_h fi NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which flavor of printf attribute matches inttypes macros" >&5 printf %s "checking which flavor of printf attribute matches inttypes macros... " >&6; } if test ${gl_cv_func_printf_attribute_flavor+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define __STDC_FORMAT_MACROS 1 #include <stdio.h> #include <inttypes.h> /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_func_printf_attribute_flavor=system else $as_nop gl_cv_func_printf_attribute_flavor=gnu fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_attribute_flavor" >&5 printf "%s\n" "$gl_cv_func_printf_attribute_flavor" >&6; } if test "$gl_cv_func_printf_attribute_flavor" = gnu; then printf "%s\n" "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h fi if test $ac_cv_have_decl_fcloseall = no; then HAVE_DECL_FCLOSEALL=0 fi if test $ac_cv_have_decl_getw = no; then HAVE_DECL_GETW=0 fi if test $ac_cv_have_decl_putw = no; then HAVE_DECL_PUTW=0 fi ac_fn_check_decl "$LINENO" "ecvt" "ac_cv_have_decl_ecvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_ecvt" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_ECVT $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "fcvt" "ac_cv_have_decl_fcvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_fcvt" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_FCVT $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "gcvt" "ac_cv_have_decl_gcvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_gcvt" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_GCVT $ac_have_decl" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_stdlib_h='<'stdlib.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5 printf %s "checking absolute name of <stdlib.h>... " >&6; } if test ${gl_cv_next_stdlib_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdlib.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdlib_h gl_cv_next_stdlib_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 printf "%s\n" "$gl_cv_next_stdlib_h" >&6; } fi NEXT_STDLIB_H=$gl_cv_next_stdlib_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdlib.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdlib_h fi NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive if test $ac_cv_have_decl_ecvt = no; then HAVE_DECL_ECVT=0 fi if test $ac_cv_have_decl_fcvt = no; then HAVE_DECL_FCVT=0 fi if test $ac_cv_have_decl_gcvt = no; then HAVE_DECL_GCVT=0 fi ac_fn_check_decl "$LINENO" "stpncpy" "ac_cv_have_decl_stpncpy" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_stpncpy" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_STPNCPY $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_strdup" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_STRDUP $ac_have_decl" >>confdefs.h REPLACE_STRERROR_0=0 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5 printf %s "checking whether strerror(0) succeeds... " >&6; } if test ${gl_cv_func_strerror_0_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on musl systems. *-musl* | midipix*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> #include <errno.h> int main (void) { int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_strerror_0_works=yes else $as_nop gl_cv_func_strerror_0_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5 printf "%s\n" "$gl_cv_func_strerror_0_works" >&6; } case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 printf "%s\n" "#define REPLACE_STRERROR_0 1" >>confdefs.h ;; esac if test $gl_cv_have_include_next = yes; then gl_cv_next_string_h='<'string.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5 printf %s "checking absolute name of <string.h>... " >&6; } if test ${gl_cv_next_string_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'string.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_string_h gl_cv_next_string_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 printf "%s\n" "$gl_cv_next_string_h" >&6; } fi NEXT_STRING_H=$gl_cv_next_string_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'string.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_string_h fi NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive ac_fn_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_strndup" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_STRNDUP $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_strnlen" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_STRNLEN $ac_have_decl" >>confdefs.h HAVE_STRUCT_SOCKADDR_STORAGE=1; HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; HAVE_SA_FAMILY_T=1; HAVE_ACCEPT4=1; case "$host_os" in osf*) printf "%s\n" "#define _POSIX_PII_SOCKET 1" >>confdefs.h ;; esac GL_GENERATE_SYS_SOCKET_H=false { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/socket.h> is self-contained" >&5 printf %s "checking whether <sys/socket.h> is self-contained... " >&6; } if test ${gl_cv_header_sys_socket_h_selfcontained+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/socket.h> int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_header_sys_socket_h_selfcontained=yes else $as_nop gl_cv_header_sys_socket_h_selfcontained=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 printf "%s\n" "$gl_cv_header_sys_socket_h_selfcontained" >&6; } if test $gl_cv_header_sys_socket_h_selfcontained = yes; then ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" if test "x$ac_cv_func_shutdown" = xyes then : printf "%s\n" "#define HAVE_SHUTDOWN 1" >>confdefs.h fi if test $ac_cv_func_shutdown = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/socket.h> defines the SHUT_* macros" >&5 printf %s "checking whether <sys/socket.h> defines the SHUT_* macros... " >&6; } if test ${gl_cv_header_sys_socket_h_shut+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/socket.h> int main (void) { int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_header_sys_socket_h_shut=yes else $as_nop gl_cv_header_sys_socket_h_shut=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5 printf "%s\n" "$gl_cv_header_sys_socket_h_shut" >&6; } if test $gl_cv_header_sys_socket_h_shut = no; then GL_GENERATE_SYS_SOCKET_H=true fi fi fi # We need to check for ws2tcpip.h now. if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_socket_h='<'sys/socket.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/socket.h>" >&5 printf %s "checking absolute name of <sys/socket.h>... " >&6; } if test ${gl_cv_next_sys_socket_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_sys_socket_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/socket.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/socket.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_socket_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_socket_h gl_cv_next_sys_socket_h='"'$gl_header'"' else gl_cv_next_sys_socket_h='<'sys/socket.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5 printf "%s\n" "$gl_cv_next_sys_socket_h" >&6; } fi NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/socket.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_socket_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 else HAVE_SYS_SOCKET_H=0 fi if test $ac_cv_header_sys_socket_h = yes; then HAVE_WS2TCPIP_H=0 else if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif " if test "x$ac_cv_type_struct_sockaddr_storage" = xyes then : printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif " if test "x$ac_cv_type_sa_family_t" = xyes then : printf "%s\n" "#define HAVE_SA_FAMILY_T 1" >>confdefs.h fi if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif " if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes then : printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h else $as_nop HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0 fi fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then GL_GENERATE_SYS_SOCKET_H=true fi if test $ac_cv_header_sys_socket_h != yes; then ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes then : printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h fi fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi GL_GNULIB_SOCKET=0 GL_GNULIB_CONNECT=0 GL_GNULIB_ACCEPT=0 GL_GNULIB_BIND=0 GL_GNULIB_GETPEERNAME=0 GL_GNULIB_GETSOCKNAME=0 GL_GNULIB_GETSOCKOPT=0 GL_GNULIB_LISTEN=0 GL_GNULIB_RECV=0 GL_GNULIB_SEND=0 GL_GNULIB_RECVFROM=0 GL_GNULIB_SENDTO=0 GL_GNULIB_SETSOCKOPT=0 GL_GNULIB_SHUTDOWN=0 GL_GNULIB_ACCEPT4=0 printf "%s\n" "#define _USE_STD_STAT 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_types_h='<'sys/types.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5 printf %s "checking absolute name of <sys/types.h>... " >&6; } if test ${gl_cv_next_sys_types_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/types.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_types_h gl_cv_next_sys_types_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 printf "%s\n" "$gl_cv_next_sys_types_h" >&6; } fi NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/types.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_types_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive WINDOWS_STAT_INODES=0 if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_uio_h='<'sys/uio.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/uio.h>" >&5 printf %s "checking absolute name of <sys/uio.h>... " >&6; } if test ${gl_cv_next_sys_uio_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_sys_uio_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/uio.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/uio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_uio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_uio_h gl_cv_next_sys_uio_h='"'$gl_header'"' else gl_cv_next_sys_uio_h='<'sys/uio.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_uio_h" >&5 printf "%s\n" "$gl_cv_next_sys_uio_h" >&6; } fi NEXT_SYS_UIO_H=$gl_cv_next_sys_uio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/uio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_uio_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H=$gl_next_as_first_directive if test $ac_cv_header_sys_uio_h = yes; then HAVE_SYS_UIO_H=1 else HAVE_SYS_UIO_H=0 fi HAVE_DECL_LOCALTIME_R=1; HAVE_NANOSLEEP=1; HAVE_STRPTIME=1; HAVE_TIMEGM=1; HAVE_TIMESPEC_GET=1; HAVE_TIMESPEC_GETRES=1; HAVE_TIMEZONE_T=0; REPLACE_CTIME=GNULIB_PORTCHECK; REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; REPLACE_MKTIME=GNULIB_PORTCHECK; REPLACE_NANOSLEEP=GNULIB_PORTCHECK; REPLACE_STRFTIME=GNULIB_PORTCHECK; REPLACE_TIMEGM=GNULIB_PORTCHECK; REPLACE_TIMESPEC_GET=GNULIB_PORTCHECK; REPLACE_TZSET=GNULIB_PORTCHECK; : ${GNULIB_GETTIMEOFDAY=0}; REPLACE_GMTIME=0; REPLACE_LOCALTIME=0; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5 printf %s "checking for struct timespec in <time.h>... " >&6; } if test ${gl_cv_sys_struct_timespec_in_time_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <time.h> int main (void) { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_sys_struct_timespec_in_time_h=yes else $as_nop gl_cv_sys_struct_timespec_in_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 printf "%s\n" "$gl_cv_sys_struct_timespec_in_time_h" >&6; } TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5 printf %s "checking for struct timespec in <sys/time.h>... " >&6; } if test ${gl_cv_sys_struct_timespec_in_sys_time_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/time.h> int main (void) { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_sys_struct_timespec_in_sys_time_h=yes else $as_nop gl_cv_sys_struct_timespec_in_sys_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 printf "%s\n" "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5 printf %s "checking for struct timespec in <pthread.h>... " >&6; } if test ${gl_cv_sys_struct_timespec_in_pthread_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <pthread.h> int main (void) { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_sys_struct_timespec_in_pthread_h=yes else $as_nop gl_cv_sys_struct_timespec_in_pthread_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5 printf "%s\n" "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <unistd.h>" >&5 printf %s "checking for struct timespec in <unistd.h>... " >&6; } if test ${gl_cv_sys_struct_timespec_in_unistd_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> int main (void) { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_sys_struct_timespec_in_unistd_h=yes else $as_nop gl_cv_sys_struct_timespec_in_unistd_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5 printf "%s\n" "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; } if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi fi if test $gl_cv_have_include_next = yes; then gl_cv_next_time_h='<'time.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5 printf %s "checking absolute name of <time.h>... " >&6; } if test ${gl_cv_next_time_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <time.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'time.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_time_h gl_cv_next_time_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5 printf "%s\n" "$gl_cv_next_time_h" >&6; } fi NEXT_TIME_H=$gl_cv_next_time_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'time.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_time_h fi NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIME_UTC in <time.h>" >&5 printf %s "checking for TIME_UTC in <time.h>... " >&6; } if test ${gl_cv_time_h_has_TIME_UTC+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <time.h> int main (void) { static int x = TIME_UTC; x++; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_time_h_has_TIME_UTC=yes else $as_nop gl_cv_time_h_has_TIME_UTC=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_h_has_TIME_UTC" >&5 printf "%s\n" "$gl_cv_time_h_has_TIME_UTC" >&6; } if test $gl_cv_time_h_has_TIME_UTC = yes; then TIME_H_DEFINES_TIME_UTC=1 else TIME_H_DEFINES_TIME_UTC=0 fi GL_GNULIB_CTIME=0 GL_GNULIB_MKTIME=0 GL_GNULIB_LOCALTIME=0 GL_GNULIB_NANOSLEEP=0 GL_GNULIB_STRFTIME=0 GL_GNULIB_STRPTIME=0 GL_GNULIB_TIMEGM=0 GL_GNULIB_TIMESPEC_GET=0 GL_GNULIB_TIMESPEC_GETRES=0 GL_GNULIB_TIME_R=0 GL_GNULIB_TIME_RZ=0 GL_GNULIB_TZSET=0 GL_GNULIB_MDA_TZSET=1 ac_fn_check_decl "$LINENO" "execvpe" "ac_cv_have_decl_execvpe" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_execvpe" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_EXECVPE $ac_have_decl" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5 printf %s "checking absolute name of <unistd.h>... " >&6; } if test ${gl_cv_next_unistd_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_unistd_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'unistd.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_unistd_h gl_cv_next_unistd_h='"'$gl_header'"' else gl_cv_next_unistd_h='<'unistd.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 printf "%s\n" "$gl_cv_next_unistd_h" >&6; } fi NEXT_UNISTD_H=$gl_cv_next_unistd_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'unistd.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_unistd_h fi NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi if test $ac_cv_have_decl_execvpe = no; then HAVE_DECL_EXECVPE=0 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5 printf %s "checking whether <wchar.h> uses 'inline' correctly... " >&6; } if test ${gl_cv_header_wchar_h_correct_inline+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_header_wchar_h_correct_inline=yes case "$host_os" in *-gnu* | gnu*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod #include <wchar.h> extern int zero (void); int main () { return zero(); } _ACEOF save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` if echo '#include "conftest.c"' >conftest1.c \ && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod #include <wchar.h> int zero (void) { return 0; } _ACEOF ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` if echo '#include "conftest.c"' >conftest2.c \ && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi ac_compile="$save_ac_compile" rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 printf "%s\n" "$gl_cv_header_wchar_h_correct_inline" >&6; } if test $gl_cv_header_wchar_h_correct_inline = no; then as_fn_error $? "<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted." "$LINENO" 5 fi if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi if test $ac_cv_header_crtdefs_h = yes; then HAVE_CRTDEFS_H=1 else HAVE_CRTDEFS_H=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_wchar_h='<'wchar.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5 printf %s "checking absolute name of <wchar.h>... " >&6; } if test ${gl_cv_next_wchar_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_wchar_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wchar.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_wchar_h gl_cv_next_wchar_h='"'$gl_header'"' else gl_cv_next_wchar_h='<'wchar.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 printf "%s\n" "$gl_cv_next_wchar_h" >&6; } fi NEXT_WCHAR_H=$gl_cv_next_wchar_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wchar.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wchar_h fi NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi ac_fn_check_decl "$LINENO" "wcsdup" "ac_cv_have_decl_wcsdup" " #include <wchar.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_wcsdup" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_WCSDUP $ac_have_decl" >>confdefs.h if test $ac_cv_have_decl_wcsdup = no; then HAVE_DECL_WCSDUP=0 fi HAVE_ISWBLANK=1; HAVE_WCTYPE_T=1; HAVE_WCTRANS_T=1; REPLACE_ISWBLANK=0; REPLACE_ISWDIGIT=0; REPLACE_ISWXDIGIT=0; if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_wctype_h='<'wctype.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5 printf %s "checking absolute name of <wctype.h>... " >&6; } if test ${gl_cv_next_wctype_h+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_header_wctype_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wctype.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wctype.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_wctype_h gl_cv_next_wctype_h='"'$gl_header'"' else gl_cv_next_wctype_h='<'wctype.h'>' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 printf "%s\n" "$gl_cv_next_wctype_h" >&6; } fi NEXT_WCTYPE_H=$gl_cv_next_wctype_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wctype.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wctype_h fi NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 printf %s "checking whether iswcntrl works... " >&6; } if test ${gl_cv_func_iswcntrl_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_func_iswcntrl_works="guessing yes" else $as_nop gl_cv_func_iswcntrl_works="guessing no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> #include <wctype.h> int main () { return iswprint ('x') == 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_iswcntrl_works=yes else $as_nop gl_cv_func_iswcntrl_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 printf "%s\n" "$gl_cv_func_iswcntrl_works" >&6; } fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then REPLACE_ISWCNTRL=1 else case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" if test "x$ac_cv_func_towlower" = xyes then : printf "%s\n" "#define HAVE_TOWLOWER 1" >>confdefs.h fi if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else ac_fn_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "#include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_towlower" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_TOWLOWER $ac_have_decl" >>confdefs.h if test $ac_cv_have_decl_towlower = yes; then REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then : fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 printf %s "checking for wctype_t... " >&6; } if test ${gl_cv_type_wctype_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif wctype_t a; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_type_wctype_t=yes else $as_nop gl_cv_type_wctype_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 printf "%s\n" "$gl_cv_type_wctype_t" >&6; } if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 printf %s "checking for wctrans_t... " >&6; } if test ${gl_cv_type_wctrans_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> #include <wctype.h> wctrans_t a; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_type_wctrans_t=yes else $as_nop gl_cv_type_wctrans_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 printf "%s\n" "$gl_cv_type_wctrans_t" >&6; } if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi GL_GNULIB_ISWBLANK=0 GL_GNULIB_ISWDIGIT=0 GL_GNULIB_ISWXDIGIT=0 GL_GNULIB_WCTYPE=0 GL_GNULIB_ISWCTYPE=0 GL_GNULIB_WCTRANS=0 GL_GNULIB_TOWCTRANS=0 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler option to allow warnings" >&5 printf %s "checking for C compiler option to allow warnings... " >&6; } if test ${gl_cv_cc_wallow+y} then : printf %s "(cached) " >&6 else $as_nop rm -f conftest* echo 'int dummy;' > conftest.c { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } >/dev/null { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } >/dev/null if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then gl_cv_cc_wallow='-Wno-error' else gl_cv_cc_wallow=none fi rm -f conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_wallow" >&5 printf "%s\n" "$gl_cv_cc_wallow" >&6; } case "$gl_cv_cc_wallow" in none) GL_CFLAG_ALLOW_WARNINGS='' ;; *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; esac GL_CFLAG_GNULIB_WARNINGS='' if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then cat > conftest.c <<\EOF #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wno-cast-qual -Wno-conversion -Wno-float-equal -Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter #endif #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wno-float-conversion #endif #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wimplicit-fallthrough #endif #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wno-pedantic #endif #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wno-sign-conversion -Wno-type-limits #endif #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4 -Wno-unsuffixed-float-constants #endif EOF gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gl_command\""; } >&5 (eval $gl_command) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then gl_options=`grep -v '#' conftest.out` for word in $gl_options; do GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word" done fi rm -f conftest.c conftest.out fi if true; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' else GL_COND_LIBTOOL_TRUE='#' GL_COND_LIBTOOL_FALSE= fi gl_cond_libtool=true gl_m4_base='m4' gl_source_base='lib' gl_source_base_prefix= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alignas and alignof" >&5 printf %s "checking for alignas and alignof... " >&6; } if test ${gl_cv_header_working_stdalign_h+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS=$CFLAGS for gl_working in "yes, keywords" "yes, <stdalign.h> macros"; do case $gl_working in #( *stdalign.h*) : CFLAGS="$gl_save_CFLAGS -DINCLUDE_STDALIGN_H" ;; #( *) : ;; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdint.h> #ifdef INCLUDE_STDALIGN_H #include <stdalign.h> #endif #include <stddef.h> /* Test that alignof yields a result consistent with offsetof. This catches GCC bug 52023 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */ #ifdef __cplusplus template <class t> struct alignof_helper { char a; t b; }; # define ao(type) offsetof (alignof_helper<type>, b) #else # define ao(type) offsetof (struct { char a; type b; }, b) #endif char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; /* Test alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ || (__TINYC__ && defined __attribute__) \ || (defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__) \ || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_header_working_stdalign_h=$gl_working else $as_nop gl_cv_header_working_stdalign_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$gl_save_CFLAGS test "$gl_cv_header_working_stdalign_h" != no && break done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5 printf "%s\n" "$gl_cv_header_working_stdalign_h" >&6; } case $gl_cv_header_working_stdalign_h in #( yes*keyword*) : printf "%s\n" "#define HAVE_C_ALIGNASOF 1" >>confdefs.h ;; #( *) : ;; esac if test $ac_cv_func_alloca_works = no; then : fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 printf %s "checking for alloca as a compiler built-in... " >&6; } if test ${gl_cv_rpl_alloca+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Need own alloca" >/dev/null 2>&1 then : gl_cv_rpl_alloca=yes else $as_nop gl_cv_rpl_alloca=no fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 printf "%s\n" "$gl_cv_rpl_alloca" >&6; } if test $gl_cv_rpl_alloca = yes; then printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h GL_GENERATE_ALLOCA_H=true else GL_GENERATE_ALLOCA_H=false fi else GL_GENERATE_ALLOCA_H=true fi if test $ac_cv_working_alloca_h = yes; then HAVE_ALLOCA_H=1 else HAVE_ALLOCA_H=0 fi case "$GL_GENERATE_ALLOCA_H" in false) ALLOCA_H='' ;; true) if test -z "$ALLOCA_H"; then ALLOCA_H="${gl_source_base_prefix}alloca.h" fi ;; *) echo "*** GL_GENERATE_ALLOCA_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_ALLOCA_H; then GL_GENERATE_ALLOCA_H_TRUE= GL_GENERATE_ALLOCA_H_FALSE='#' else GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE= fi : if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE='#' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for static_assert" >&5 printf %s "checking for static_assert... " >&6; } if test ${gl_cv_static_assert+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS=$CFLAGS for gl_working in "yes, a keyword" "yes, an <assert.h> macro"; do case $gl_working in #( *assert.h*) : CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H" ;; #( *) : ;; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __clang__ && __STDC_VERSION__ < 202311 #pragma clang diagnostic error "-Wc2x-extensions" #pragma clang diagnostic error "-Wc++1z-extensions" #endif #ifdef INCLUDE_ASSERT_H #include <assert.h> #endif static_assert (2 + 2 == 4, "arithmetic does not work"); static_assert (2 + 2 == 4); int main (void) { static_assert (sizeof (char) == 1, "sizeof does not work"); static_assert (sizeof (char) == 1); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_static_assert=$gl_working else $as_nop gl_cv_static_assert=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$gl_save_CFLAGS test "$gl_cv_static_assert" != no && break done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_static_assert" >&5 printf "%s\n" "$gl_cv_static_assert" >&6; } GL_GENERATE_ASSERT_H=false case $gl_cv_static_assert in #( yes*keyword*) : printf "%s\n" "#define HAVE_C_STATIC_ASSERT 1" >>confdefs.h ;; #( no) : GL_GENERATE_ASSERT_H=true if test $gl_cv_have_include_next = yes; then gl_cv_next_assert_h='<'assert.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <assert.h>" >&5 printf %s "checking absolute name of <assert.h>... " >&6; } if test ${gl_cv_next_assert_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <assert.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'assert.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_assert_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_assert_h gl_cv_next_assert_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_assert_h" >&5 printf "%s\n" "$gl_cv_next_assert_h" >&6; } fi NEXT_ASSERT_H=$gl_cv_next_assert_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'assert.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_assert_h fi NEXT_AS_FIRST_DIRECTIVE_ASSERT_H=$gl_next_as_first_directive ;; #( *) : ;; esac case "$GL_GENERATE_ASSERT_H" in false) ASSERT_H='' ;; true) if test -z "$ASSERT_H"; then ASSERT_H="${gl_source_base_prefix}assert.h" fi ;; *) echo "*** GL_GENERATE_ASSERT_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_ASSERT_H; then GL_GENERATE_ASSERT_H_TRUE= GL_GENERATE_ASSERT_H_FALSE='#' else GL_GENERATE_ASSERT_H_TRUE='#' GL_GENERATE_ASSERT_H_FALSE= fi : if test -z "${GL_GENERATE_ASSERT_H_TRUE}" && test -z "${GL_GENERATE_ASSERT_H_FALSE}"; then GL_GENERATE_ASSERT_H_TRUE='#' GL_GENERATE_ASSERT_H_FALSE='#' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 printf %s "checking for __builtin_expect... " >&6; } if test ${gl_cv___builtin_expect+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv___builtin_expect=yes else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <builtins.h> int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv___builtin_expect="in <builtins.h>" else $as_nop gl_cv___builtin_expect=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5 printf "%s\n" "$gl_cv___builtin_expect" >&6; } if test "$gl_cv___builtin_expect" = yes; then printf "%s\n" "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h elif test "$gl_cv___builtin_expect" = "in <builtins.h>"; then printf "%s\n" "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h fi REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX" if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether calloc (0, n) and calloc (n, 0) return nonnull" >&5 printf %s "checking whether calloc (0, n) and calloc (n, 0) return nonnull... " >&6; } if test ${ac_cv_func_calloc_0_nonnull+y} then : printf %s "(cached) " >&6 else $as_nop if test $cross_compiling != yes; then ac_cv_func_calloc_0_nonnull=yes if test "$cross_compiling" = yes then : { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main (void) { int result = 0; char * volatile p = calloc (0, 0); if (!p) result |= 1; free (p); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : else $as_nop ac_cv_func_calloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; # Guess yes on musl systems. *-musl* | midipix*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; # Guess yes on native Windows. mingw*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;; esac fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_calloc_0_nonnull" >&5 printf "%s\n" "$ac_cv_func_calloc_0_nonnull" >&6; } case $ac_cv_func_calloc_0_nonnull in #( *yes) : ;; #( *) : REPLACE_CALLOC_FOR_CALLOC_GNU=1 ;; esac fi if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext" fi GL_GNULIB_CALLOC_GNU=1 printf "%s\n" "#define GNULIB_TEST_CALLOC_GNU 1" >>confdefs.h if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then REPLACE_CALLOC_FOR_CALLOC_POSIX=1 fi if test $REPLACE_CALLOC_FOR_CALLOC_POSIX = 1; then gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext" fi GL_GNULIB_CALLOC_POSIX=1 printf "%s\n" "#define GNULIB_TEST_CALLOC_POSIX 1" >>confdefs.h if test $ac_cv_func_canonicalize_file_name = no; then HAVE_CANONICALIZE_FILE_NAME=0 if test $ac_cv_func_realpath = no; then HAVE_REALPATH=0 else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_REALPATH=1 ;; esac fi else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_CANONICALIZE_FILE_NAME=1 REPLACE_REALPATH=1 ;; esac fi if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then GL_COND_OBJ_CANONICALIZE_LGPL_TRUE= GL_COND_OBJ_CANONICALIZE_LGPL_FALSE='#' else GL_COND_OBJ_CANONICALIZE_LGPL_TRUE='#' GL_COND_OBJ_CANONICALIZE_LGPL_FALSE= fi : if test -z "${GL_COND_OBJ_CANONICALIZE_LGPL_TRUE}" && test -z "${GL_COND_OBJ_CANONICALIZE_LGPL_FALSE}"; then GL_COND_OBJ_CANONICALIZE_LGPL_TRUE='#' GL_COND_OBJ_CANONICALIZE_LGPL_FALSE='#' fi printf "%s\n" "#define GNULIB_CANONICALIZE_LGPL 1" >>confdefs.h GL_GNULIB_CANONICALIZE_FILE_NAME=1 printf "%s\n" "#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h GL_GNULIB_REALPATH=1 printf "%s\n" "#define GNULIB_TEST_REALPATH 1" >>confdefs.h GL_GNULIB_CHDIR=1 printf "%s\n" "#define GNULIB_TEST_CHDIR 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether this system supports file names of any length" >&5 printf %s "checking whether this system supports file names of any length... " >&6; } if test ${gl_cv_have_unlimited_file_name_length+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Arrange to define PATH_MAX, like "pathmax.h" does. */ #if HAVE_UNISTD_H # include <unistd.h> #endif #include <limits.h> #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include <sys/param.h> #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifdef __hpux # undef PATH_MAX # define PATH_MAX 1024 #endif #if defined _WIN32 && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif #ifdef PATH_MAX have_arbitrary_file_name_length_limit #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "have_arbitrary_file_name_length_limit" >/dev/null 2>&1 then : gl_cv_have_unlimited_file_name_length=no else $as_nop gl_cv_have_unlimited_file_name_length=yes fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_unlimited_file_name_length" >&5 printf "%s\n" "$gl_cv_have_unlimited_file_name_length" >&6; } if test $gl_cv_have_unlimited_file_name_length = no; then GL_COND_OBJ_CHDIR_LONG_TRUE= GL_COND_OBJ_CHDIR_LONG_FALSE='#' else GL_COND_OBJ_CHDIR_LONG_TRUE='#' GL_COND_OBJ_CHDIR_LONG_FALSE= fi : if test -z "${GL_COND_OBJ_CHDIR_LONG_TRUE}" && test -z "${GL_COND_OBJ_CHDIR_LONG_FALSE}"; then GL_COND_OBJ_CHDIR_LONG_TRUE='#' GL_COND_OBJ_CHDIR_LONG_FALSE='#' fi if test -z "$GL_COND_OBJ_CHDIR_LONG_TRUE"; then : : fi printf "%s\n" "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi if test $ac_cv_header_sys_socket_h != yes; then ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes then : printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h fi fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then REPLACE_CLOSE=1 fi if test $REPLACE_CLOSE = 0; then if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then REPLACE_CLOSE=1 fi fi if test $REPLACE_CLOSE = 1; then GL_COND_OBJ_CLOSE_TRUE= GL_COND_OBJ_CLOSE_FALSE='#' else GL_COND_OBJ_CLOSE_TRUE='#' GL_COND_OBJ_CLOSE_FALSE= fi : if test -z "${GL_COND_OBJ_CLOSE_TRUE}" && test -z "${GL_COND_OBJ_CLOSE_FALSE}"; then GL_COND_OBJ_CLOSE_TRUE='#' GL_COND_OBJ_CLOSE_FALSE='#' fi GL_GNULIB_CLOSE=1 printf "%s\n" "#define GNULIB_TEST_CLOSE 1" >>confdefs.h ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir" if test "x$ac_cv_func_closedir" = xyes then : printf "%s\n" "#define HAVE_CLOSEDIR 1" >>confdefs.h fi if test $ac_cv_func_closedir = no; then HAVE_CLOSEDIR=0 fi if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then if test $HAVE_CLOSEDIR = 1; then REPLACE_CLOSEDIR=1 fi fi case $host_os,$HAVE_CLOSEDIR in os2*,1) REPLACE_CLOSEDIR=1;; esac if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then GL_COND_OBJ_CLOSEDIR_TRUE= GL_COND_OBJ_CLOSEDIR_FALSE='#' else GL_COND_OBJ_CLOSEDIR_TRUE='#' GL_COND_OBJ_CLOSEDIR_FALSE= fi : if test -z "${GL_COND_OBJ_CLOSEDIR_TRUE}" && test -z "${GL_COND_OBJ_CLOSEDIR_FALSE}"; then GL_COND_OBJ_CLOSEDIR_TRUE='#' GL_COND_OBJ_CLOSEDIR_FALSE='#' fi GL_GNULIB_CLOSEDIR=1 printf "%s\n" "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5 printf %s "checking for d_ino member in directory struct... " >&6; } if test ${gl_cv_struct_dirent_d_ino+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on glibc systems with Linux kernel. linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess yes on musl systems with Linux kernel. linux*-musl*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_struct_dirent_d_ino="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_struct_dirent_d_ino="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> int main (void) { DIR *dp = opendir ("."); struct dirent *e; struct stat st; if (! dp) return 1; e = readdir (dp); if (! e) { closedir (dp); return 2; } if (lstat (e->d_name, &st) != 0) { closedir (dp); return 3; } if (e->d_ino != st.st_ino) { closedir (dp); return 4; } closedir (dp); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_struct_dirent_d_ino=yes else $as_nop gl_cv_struct_dirent_d_ino=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5 printf "%s\n" "$gl_cv_struct_dirent_d_ino" >&6; } case "$gl_cv_struct_dirent_d_ino" in *yes) printf "%s\n" "#define D_INO_IN_DIRENT 1" >>confdefs.h ;; esac ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd" if test "x$ac_cv_func_dirfd" = xyes then : printf "%s\n" "#define HAVE_DIRFD 1" >>confdefs.h fi ac_fn_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h> #include <dirent.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_dirfd" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_DIRFD $ac_have_decl" >>confdefs.h if test $ac_cv_have_decl_dirfd = no; then HAVE_DECL_DIRFD=0 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5 printf %s "checking whether dirfd is a macro... " >&6; } if test ${gl_cv_func_dirfd_macro+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <dirent.h> #ifdef dirfd dirent_header_defines_dirfd #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1 then : gl_cv_func_dirfd_macro=yes else $as_nop gl_cv_func_dirfd_macro=no fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dirfd_macro" >&5 printf "%s\n" "$gl_cv_func_dirfd_macro" >&6; } # Use the replacement if we have no function or macro with that name, # or if OS/2 kLIBC whose dirfd() does not work. # Replace only if the system declares dirfd already. case $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro,$host_os,$ac_cv_have_decl_dirfd in no,no,*,yes | *,*,os2*,yes) REPLACE_DIRFD=1 printf "%s\n" "#define REPLACE_DIRFD 1" >>confdefs.h ;; esac if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no || test $REPLACE_DIRFD = 1; then GL_COND_OBJ_DIRFD_TRUE= GL_COND_OBJ_DIRFD_FALSE='#' else GL_COND_OBJ_DIRFD_TRUE='#' GL_COND_OBJ_DIRFD_FALSE= fi : if test -z "${GL_COND_OBJ_DIRFD_TRUE}" && test -z "${GL_COND_OBJ_DIRFD_FALSE}"; then GL_COND_OBJ_DIRFD_TRUE='#' GL_COND_OBJ_DIRFD_FALSE='#' fi if test -z "$GL_COND_OBJ_DIRFD_TRUE"; then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to get the file descriptor associated with an open DIR*" >&5 printf %s "checking how to get the file descriptor associated with an open DIR*... " >&6; } if test ${gl_cv_sys_dir_fd_member_name+y} then : printf %s "(cached) " >&6 else $as_nop dirfd_save_CFLAGS=$CFLAGS for ac_expr in d_fd dd_fd; do CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <dirent.h> int main (void) { DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : dir_fd_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$dirfd_save_CFLAGS test "$dir_fd_found" = yes && break done test "$dir_fd_found" = yes || ac_expr=no_such_member gl_cv_sys_dir_fd_member_name=$ac_expr fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_dir_fd_member_name" >&5 printf "%s\n" "$gl_cv_sys_dir_fd_member_name" >&6; } if test $gl_cv_sys_dir_fd_member_name != no_such_member; then printf "%s\n" "#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name" >>confdefs.h fi fi GL_GNULIB_DIRFD=1 printf "%s\n" "#define GNULIB_TEST_DIRFD 1" >>confdefs.h printf "%s\n" "#define GNULIB_DIRNAME 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 printf %s "checking whether // is distinct from /... " >&6; } if test ${gl_cv_double_slash_root+y} then : printf %s "(cached) " >&6 else $as_nop if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # <bug-gnulib@gnu.org>. case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 printf "%s\n" "$gl_cv_double_slash_root" >&6; } if test "$gl_cv_double_slash_root" = yes; then printf "%s\n" "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_DUP=1 fi if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then REPLACE_DUP=1 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dup works" >&5 printf %s "checking whether dup works... " >&6; } if test ${gl_cv_func_dup_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_dup_works="guessing no" ;; *) gl_cv_func_dup_works="guessing yes" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> #include <fcntl.h> #include <errno.h> $gl_mda_defines int main (void) { /* On OS/2 kLIBC, dup does not work on a directory fd. */ int fd = open (".", O_RDONLY); return fd < 0 ? 1 : dup (fd) < 0 ? 2 : 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_dup_works=yes else $as_nop gl_cv_func_dup_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup_works" >&5 printf "%s\n" "$gl_cv_func_dup_works" >&6; } case "$gl_cv_func_dup_works" in *yes) ;; *) REPLACE_DUP=1 ;; esac if test $REPLACE_DUP = 1; then GL_COND_OBJ_DUP_TRUE= GL_COND_OBJ_DUP_FALSE='#' else GL_COND_OBJ_DUP_TRUE='#' GL_COND_OBJ_DUP_FALSE= fi : if test -z "${GL_COND_OBJ_DUP_TRUE}" && test -z "${GL_COND_OBJ_DUP_FALSE}"; then GL_COND_OBJ_DUP_TRUE='#' GL_COND_OBJ_DUP_FALSE='#' fi if test -z "$GL_COND_OBJ_DUP_TRUE"; then : : fi GL_GNULIB_DUP=1 printf "%s\n" "#define GNULIB_TEST_DUP 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 printf %s "checking whether dup2 works... " >&6; } if test ${gl_cv_func_dup2_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; aix* | freebsd*) # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, # not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #include <fcntl.h> #include <limits.h> #include <sys/resource.h> #include <unistd.h> $gl_mda_defines #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif int main (void) { int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) != 1) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, bad_fd) == -1 && errno != EBADF) result |= 16; /* Flush out some cygwin core dumps. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; dup2 (2, 255); dup2 (2, 256); /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ { int fd = open (".", O_RDONLY); if (fd == -1) result |= 64; else if (dup2 (fd, fd + 1) == -1) result |= 128; close (fd); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_dup2_works=yes else $as_nop gl_cv_func_dup2_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 printf "%s\n" "$gl_cv_func_dup2_works" >&6; } case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize" if test "x$ac_cv_func_setdtablesize" = xyes then : printf "%s\n" "#define HAVE_SETDTABLESIZE 1" >>confdefs.h fi ;; esac if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then REPLACE_DUP2=1 fi if test $REPLACE_DUP2 = 1; then GL_COND_OBJ_DUP2_TRUE= GL_COND_OBJ_DUP2_FALSE='#' else GL_COND_OBJ_DUP2_TRUE='#' GL_COND_OBJ_DUP2_FALSE= fi : if test -z "${GL_COND_OBJ_DUP2_TRUE}" && test -z "${GL_COND_OBJ_DUP2_FALSE}"; then GL_COND_OBJ_DUP2_TRUE='#' GL_COND_OBJ_DUP2_FALSE='#' fi if test -z "$GL_COND_OBJ_DUP2_TRUE"; then : fi GL_GNULIB_DUP2=1 printf "%s\n" "#define GNULIB_TEST_DUP2 1" >>confdefs.h case "$GL_GENERATE_ERRNO_H" in false) ERRNO_H='' ;; true) if test -z "$ERRNO_H"; then ERRNO_H="${gl_source_base_prefix}errno.h" fi ;; *) echo "*** GL_GENERATE_ERRNO_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_ERRNO_H; then GL_GENERATE_ERRNO_H_TRUE= GL_GENERATE_ERRNO_H_FALSE='#' else GL_GENERATE_ERRNO_H_TRUE='#' GL_GENERATE_ERRNO_H_FALSE= fi : if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then GL_GENERATE_ERRNO_H_TRUE='#' GL_GENERATE_ERRNO_H_FALSE='#' fi if test $GL_GENERATE_ERROR_H = true; then GL_COND_OBJ_ERROR_TRUE= GL_COND_OBJ_ERROR_FALSE='#' else GL_COND_OBJ_ERROR_TRUE='#' GL_COND_OBJ_ERROR_FALSE= fi : if test -z "${GL_COND_OBJ_ERROR_TRUE}" && test -z "${GL_COND_OBJ_ERROR_FALSE}"; then GL_COND_OBJ_ERROR_TRUE='#' GL_COND_OBJ_ERROR_FALSE='#' fi if test -z "$GL_COND_OBJ_ERROR_TRUE"; then : : fi XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" case "$GL_GENERATE_ERROR_H" in false) ERROR_H='' ;; true) if test -z "$ERROR_H"; then ERROR_H="${gl_source_base_prefix}error.h" fi ;; *) echo "*** GL_GENERATE_ERROR_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_ERROR_H; then GL_GENERATE_ERROR_H_TRUE= GL_GENERATE_ERROR_H_FALSE='#' else GL_GENERATE_ERROR_H_TRUE='#' GL_GENERATE_ERROR_H_FALSE= fi : if test -z "${GL_GENERATE_ERROR_H_TRUE}" && test -z "${GL_GENERATE_ERROR_H_FALSE}"; then GL_GENERATE_ERROR_H_TRUE='#' GL_GENERATE_ERROR_H_FALSE='#' fi if test $ac_cv_have_decl_fchdir = no; then HAVE_DECL_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then printf "%s\n" "#define REPLACE_FCHDIR 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5 printf %s "checking whether open can visit directories... " >&6; } if test ${gl_cv_func_open_directory_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_open_directory_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_open_directory_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_open_directory_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_open_directory_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_open_directory_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <fcntl.h> $gl_mda_defines int main (void) { return open(".", O_RDONLY) < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_open_directory_works=yes else $as_nop gl_cv_func_open_directory_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_directory_works" >&5 printf "%s\n" "$gl_cv_func_open_directory_works" >&6; } case "$gl_cv_func_open_directory_works" in *yes) ;; *) printf "%s\n" "#define REPLACE_OPEN_DIRECTORY 1" >>confdefs.h ;; esac fi if test $HAVE_FCHDIR = 0; then GL_COND_OBJ_FCHDIR_TRUE= GL_COND_OBJ_FCHDIR_FALSE='#' else GL_COND_OBJ_FCHDIR_TRUE='#' GL_COND_OBJ_FCHDIR_FALSE= fi : if test -z "${GL_COND_OBJ_FCHDIR_TRUE}" && test -z "${GL_COND_OBJ_FCHDIR_FALSE}"; then GL_COND_OBJ_FCHDIR_TRUE='#' GL_COND_OBJ_FCHDIR_FALSE='#' fi if test -z "$GL_COND_OBJ_FCHDIR_TRUE"; then : : fi GL_GNULIB_FCHDIR=1 printf "%s\n" "#define GNULIB_TEST_FCHDIR 1" >>confdefs.h if test $ac_cv_func_fcntl = no; then if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 printf %s "checking whether fcntl handles F_DUPFD correctly... " >&6; } if test ${gl_cv_func_fcntl_f_dupfd_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case $host_os in aix* | cygwin* | haiku*) gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <errno.h> #include <fcntl.h> #include <limits.h> #include <sys/resource.h> #include <unistd.h> $gl_mda_defines #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif int main (void) { int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ { int fd; fd = open (".", O_RDONLY); if (fd == -1) result |= 16; else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) result |= 32; close (fd); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_fcntl_f_dupfd_works=yes else $as_nop gl_cv_func_fcntl_f_dupfd_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5 printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_works" >&6; } case $gl_cv_func_fcntl_f_dupfd_works in *yes) ;; *) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi printf "%s\n" "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 printf %s "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } if test ${gl_cv_func_fcntl_f_dupfd_cloexec+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess no on NetBSD. netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <fcntl.h> #include <unistd.h> int main (int argc, char *argv[]) { if (argc == 1) /* parent process */ { if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) return 1; return execl ("./conftest", "./conftest", "child", NULL); } else /* child process */ return (fcntl (10, F_GETFL) < 0 ? 0 : 42); } _ACEOF if ac_fn_c_try_run "$LINENO" then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __linux__ /* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace it to support the semantics on older kernels that failed with EINVAL. */ choke me #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_func_fcntl_f_dupfd_cloexec=yes else $as_nop gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext else $as_nop gl_cv_func_fcntl_f_dupfd_cloexec=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5 printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; } case "$gl_cv_func_fcntl_f_dupfd_cloexec" in *yes) ;; *) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi ;; esac fi if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi fi if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then GL_COND_OBJ_FCNTL_TRUE= GL_COND_OBJ_FCNTL_FALSE='#' else GL_COND_OBJ_FCNTL_TRUE='#' GL_COND_OBJ_FCNTL_FALSE= fi : if test -z "${GL_COND_OBJ_FCNTL_TRUE}" && test -z "${GL_COND_OBJ_FCNTL_FALSE}"; then GL_COND_OBJ_FCNTL_TRUE='#' GL_COND_OBJ_FCNTL_FALSE='#' fi GL_GNULIB_FCNTL=1 printf "%s\n" "#define GNULIB_TEST_FCNTL 1" >>confdefs.h printf "%s\n" "#define GNULIB_FCNTL_SAFER 1" >>confdefs.h printf "%s\n" "#define GNULIB_FD_SAFER_FLAG 1" >>confdefs.h ac_fn_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" " #include <dirent.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_fdopendir" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_FDOPENDIR $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : else $as_nop HAVE_DECL_FDOPENDIR=0 fi if test $ac_cv_func_fdopendir = no; then HAVE_FDOPENDIR=0 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5 printf %s "checking whether fdopendir works... " >&6; } if test ${gl_cv_func_fdopendir_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;; # Guess yes on musl systems. *-musl* | midipix*) gl_cv_func_fdopendir_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_fdopendir_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <dirent.h> #include <fcntl.h> #include <unistd.h> $gl_mda_defines #if !HAVE_DECL_FDOPENDIR extern # ifdef __cplusplus "C" # endif DIR *fdopendir (int); #endif int main (void) { int result = 0; int fd = open ("conftest.c", O_RDONLY); if (fd < 0) result |= 1; if (fdopendir (fd)) result |= 2; if (close (fd)) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_fdopendir_works=yes else $as_nop gl_cv_func_fdopendir_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopendir_works" >&5 printf "%s\n" "$gl_cv_func_fdopendir_works" >&6; } case "$gl_cv_func_fdopendir_works" in *yes) ;; *) REPLACE_FDOPENDIR=1 ;; esac fi if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then GL_COND_OBJ_FDOPENDIR_TRUE= GL_COND_OBJ_FDOPENDIR_FALSE='#' else GL_COND_OBJ_FDOPENDIR_TRUE='#' GL_COND_OBJ_FDOPENDIR_FALSE= fi : if test -z "${GL_COND_OBJ_FDOPENDIR_TRUE}" && test -z "${GL_COND_OBJ_FDOPENDIR_FALSE}"; then GL_COND_OBJ_FDOPENDIR_TRUE='#' GL_COND_OBJ_FDOPENDIR_FALSE='#' fi GL_GNULIB_FDOPENDIR=1 printf "%s\n" "#define GNULIB_TEST_FDOPENDIR 1" >>confdefs.h printf "%s\n" "#define GNULIB_FDOPENDIR 1" >>confdefs.h printf "%s\n" "#define GNULIB_FILENAMECAT 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mempcpy" >&5 printf %s "checking for mempcpy... " >&6; } if test ${gl_cv_onwards_func_mempcpy+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "mempcpy" "ac_cv_have_decl_mempcpy" "#include <string.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_mempcpy" = xyes then : fi if test $ac_cv_have_decl_mempcpy = yes; then ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" if test "x$ac_cv_func_mempcpy" = xyes then : fi if test $ac_cv_func_mempcpy = yes; then gl_cv_onwards_func_mempcpy=yes else gl_cv_onwards_func_mempcpy='future OS version' fi else gl_cv_onwards_func_mempcpy='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" if test "x$ac_cv_func_mempcpy" = xyes then : fi gl_cv_onwards_func_mempcpy=$ac_cv_func_mempcpy ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_mempcpy" >&5 printf "%s\n" "$gl_cv_onwards_func_mempcpy" >&6; } case "$gl_cv_onwards_func_mempcpy" in future*) ac_cv_func_mempcpy=no ;; *) ac_cv_func_mempcpy=$gl_cv_onwards_func_mempcpy ;; esac if test $ac_cv_func_mempcpy = yes; then printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether free is known to preserve errno" >&5 printf %s "checking whether free is known to preserve errno... " >&6; } if test ${gl_cv_func_free_preserves_errno+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> int main (void) { #if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) #elif defined __OpenBSD__ #elif defined __sun #else #error "'free' is not known to preserve errno" #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_func_free_preserves_errno=yes else $as_nop gl_cv_func_free_preserves_errno=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_free_preserves_errno" >&5 printf "%s\n" "$gl_cv_func_free_preserves_errno" >&6; } case $gl_cv_func_free_preserves_errno in *yes) printf "%s\n" "#define HAVE_FREE_POSIX 1" >>confdefs.h ;; *) REPLACE_FREE=1 ;; esac if test $REPLACE_FREE = 1; then GL_COND_OBJ_FREE_TRUE= GL_COND_OBJ_FREE_FALSE='#' else GL_COND_OBJ_FREE_TRUE='#' GL_COND_OBJ_FREE_FALSE= fi : if test -z "${GL_COND_OBJ_FREE_TRUE}" && test -z "${GL_COND_OBJ_FREE_FALSE}"; then GL_COND_OBJ_FREE_TRUE='#' GL_COND_OBJ_FREE_FALSE='#' fi if test -z "$GL_COND_OBJ_FREE_TRUE"; then : : fi GL_GNULIB_FREE_POSIX=1 printf "%s\n" "#define GNULIB_TEST_FREE_POSIX 1" >>confdefs.h case "$host_os" in mingw* | solaris*) REPLACE_FSTAT=1 ;; esac if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then case "$gl_cv_func_open_directory_works" in *yes) ;; *) REPLACE_FSTAT=1 ;; esac fi if test $REPLACE_FSTAT = 1; then GL_COND_OBJ_FSTAT_TRUE= GL_COND_OBJ_FSTAT_FALSE='#' else GL_COND_OBJ_FSTAT_TRUE='#' GL_COND_OBJ_FSTAT_FALSE= fi : if test -z "${GL_COND_OBJ_FSTAT_TRUE}" && test -z "${GL_COND_OBJ_FSTAT_FALSE}"; then GL_COND_OBJ_FSTAT_TRUE='#' GL_COND_OBJ_FSTAT_FALSE='#' fi if test -z "$GL_COND_OBJ_FSTAT_TRUE"; then : case "$host_os" in mingw*) gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" ;; esac : fi GL_GNULIB_FSTAT=1 printf "%s\n" "#define GNULIB_TEST_FSTAT 1" >>confdefs.h if test $ac_cv_func_fstatat = no; then HAVE_FSTATAT=0 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5 printf %s "checking whether fstatat (..., 0) works... " >&6; } if test ${gl_cv_func_fstatat_zero_flag+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in aix*) gl_cv_func_fstatat_zero_flag="guessing no";; *) gl_cv_func_fstatat_zero_flag="guessing yes";; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <fcntl.h> #include <sys/stat.h> int main (void) { struct stat a; return fstatat (AT_FDCWD, ".", &a, 0) != 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_fstatat_zero_flag=yes else $as_nop gl_cv_func_fstatat_zero_flag=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5 printf "%s\n" "$gl_cv_func_fstatat_zero_flag" >&6; } case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in *yes+*yes) ;; *) REPLACE_FSTATAT=1 ;; esac case $host_os in solaris*) REPLACE_FSTATAT=1 ;; esac case $REPLACE_FSTATAT,$gl_cv_func_fstatat_zero_flag in 1,*yes) printf "%s\n" "#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h ;; esac fi if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then GL_COND_OBJ_FSTATAT_TRUE= GL_COND_OBJ_FSTATAT_FALSE='#' else GL_COND_OBJ_FSTATAT_TRUE='#' GL_COND_OBJ_FSTATAT_FALSE= fi : if test -z "${GL_COND_OBJ_FSTATAT_TRUE}" && test -z "${GL_COND_OBJ_FSTATAT_FALSE}"; then GL_COND_OBJ_FSTATAT_TRUE='#' GL_COND_OBJ_FSTATAT_FALSE='#' fi GL_GNULIB_FSTATAT=1 printf "%s\n" "#define GNULIB_TEST_FSTATAT 1" >>confdefs.h case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in *yes,yes) ;; *) REPLACE_GETCWD=1 ;; esac if test $REPLACE_GETCWD = 1; then GL_COND_OBJ_GETCWD_LGPL_TRUE= GL_COND_OBJ_GETCWD_LGPL_FALSE='#' else GL_COND_OBJ_GETCWD_LGPL_TRUE='#' GL_COND_OBJ_GETCWD_LGPL_FALSE= fi : if test -z "${GL_COND_OBJ_GETCWD_LGPL_TRUE}" && test -z "${GL_COND_OBJ_GETCWD_LGPL_FALSE}"; then GL_COND_OBJ_GETCWD_LGPL_TRUE='#' GL_COND_OBJ_GETCWD_LGPL_FALSE='#' fi GL_GNULIB_GETCWD=1 printf "%s\n" "#define GNULIB_TEST_GETCWD 1" >>confdefs.h if test $ac_cv_func_getdtablesize = yes && test $ac_cv_have_decl_getdtablesize = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5 printf %s "checking whether getdtablesize works... " >&6; } if test ${gl_cv_func_getdtablesize_works+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; *) if test "$cross_compiling" = yes then : case "$host_os" in cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows gl_cv_func_getdtablesize_works="guessing no" ;; *) gl_cv_func_getdtablesize_works="guessing yes" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> $gl_mda_defines int main (void) { int size = getdtablesize(); if (dup2 (0, getdtablesize()) != -1) return 1; if (size != getdtablesize()) return 2; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_getdtablesize_works=yes else $as_nop gl_cv_func_getdtablesize_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5 printf "%s\n" "$gl_cv_func_getdtablesize_works" >&6; } case "$gl_cv_func_getdtablesize_works" in *yes | "no (limitation)") ;; *) REPLACE_GETDTABLESIZE=1 ;; esac else HAVE_GETDTABLESIZE=0 fi if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then GL_COND_OBJ_GETDTABLESIZE_TRUE= GL_COND_OBJ_GETDTABLESIZE_FALSE='#' else GL_COND_OBJ_GETDTABLESIZE_TRUE='#' GL_COND_OBJ_GETDTABLESIZE_FALSE= fi : if test -z "${GL_COND_OBJ_GETDTABLESIZE_TRUE}" && test -z "${GL_COND_OBJ_GETDTABLESIZE_FALSE}"; then GL_COND_OBJ_GETDTABLESIZE_TRUE='#' GL_COND_OBJ_GETDTABLESIZE_FALSE='#' fi if test -z "$GL_COND_OBJ_GETDTABLESIZE_TRUE"; then : : fi GL_GNULIB_GETDTABLESIZE=1 printf "%s\n" "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h if test $ac_cv_header_sys_socket_h != yes; then ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes then : printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h fi fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi GETHOSTNAME_LIB= for ac_func in gethostname do : ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname" if test "x$ac_cv_func_gethostname" = xyes then : printf "%s\n" "#define HAVE_GETHOSTNAME 1" >>confdefs.h else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostname in winsock2.h and -lws2_32" >&5 printf %s "checking for gethostname in winsock2.h and -lws2_32... " >&6; } if test ${gl_cv_w32_gethostname+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_w32_gethostname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WINSOCK2_H #include <winsock2.h> #endif #include <stddef.h> int main (void) { gethostname(NULL, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_w32_gethostname=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_w32_gethostname" >&5 printf "%s\n" "$gl_cv_w32_gethostname" >&6; } if test "$gl_cv_w32_gethostname" = "yes"; then GETHOSTNAME_LIB="-lws2_32" fi fi done if test "$ac_cv_func_gethostname" = no; then HAVE_GETHOSTNAME=0 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HOST_NAME_MAX" >&5 printf %s "checking for HOST_NAME_MAX... " >&6; } if test ${gl_cv_decl_HOST_NAME_MAX+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_decl_HOST_NAME_MAX= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> #ifdef HOST_NAME_MAX lucky #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "lucky" >/dev/null 2>&1 then : gl_cv_decl_HOST_NAME_MAX=yes fi rm -rf conftest* if test -z "$gl_cv_decl_HOST_NAME_MAX"; then if test "$gl_cv_w32_gethostname" = yes; then gl_cv_decl_HOST_NAME_MAX=256 else if ac_fn_c_compute_int "$LINENO" "MAXHOSTNAMELEN" "gl_cv_decl_HOST_NAME_MAX" " #include <sys/types.h> #if HAVE_SYS_PARAM_H # include <sys/param.h> #endif #if HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif #if HAVE_NETDB_H # include <netdb.h> #endif " then : else $as_nop gl_cv_decl_HOST_NAME_MAX=256 fi fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_HOST_NAME_MAX" >&5 printf "%s\n" "$gl_cv_decl_HOST_NAME_MAX" >&6; } if test "$gl_cv_decl_HOST_NAME_MAX" != yes; then printf "%s\n" "#define HOST_NAME_MAX $gl_cv_decl_HOST_NAME_MAX" >>confdefs.h fi if test $HAVE_GETHOSTNAME = 0; then GL_COND_OBJ_GETHOSTNAME_TRUE= GL_COND_OBJ_GETHOSTNAME_FALSE='#' else GL_COND_OBJ_GETHOSTNAME_TRUE='#' GL_COND_OBJ_GETHOSTNAME_FALSE= fi : if test -z "${GL_COND_OBJ_GETHOSTNAME_TRUE}" && test -z "${GL_COND_OBJ_GETHOSTNAME_FALSE}"; then GL_COND_OBJ_GETHOSTNAME_TRUE='#' GL_COND_OBJ_GETHOSTNAME_FALSE='#' fi if test -z "$GL_COND_OBJ_GETHOSTNAME_TRUE"; then : if test "$gl_cv_w32_gethostname" != "yes"; then ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname" if test "x$ac_cv_func_uname" = xyes then : printf "%s\n" "#define HAVE_UNAME 1" >>confdefs.h fi fi fi GL_GNULIB_GETHOSTNAME=1 printf "%s\n" "#define GNULIB_TEST_GETHOSTNAME 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getprogname" >&5 printf %s "checking for getprogname... " >&6; } if test ${gl_cv_onwards_func_getprogname+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "getprogname" "ac_cv_have_decl_getprogname" "#include <stdlib.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_getprogname" = xyes then : fi if test $ac_cv_have_decl_getprogname = yes; then ac_fn_c_check_func "$LINENO" "getprogname" "ac_cv_func_getprogname" if test "x$ac_cv_func_getprogname" = xyes then : fi if test $ac_cv_func_getprogname = yes; then gl_cv_onwards_func_getprogname=yes else gl_cv_onwards_func_getprogname='future OS version' fi else gl_cv_onwards_func_getprogname='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "getprogname" "ac_cv_func_getprogname" if test "x$ac_cv_func_getprogname" = xyes then : fi gl_cv_onwards_func_getprogname=$ac_cv_func_getprogname ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_getprogname" >&5 printf "%s\n" "$gl_cv_onwards_func_getprogname" >&6; } case "$gl_cv_onwards_func_getprogname" in future*) ac_cv_func_getprogname=no ;; *) ac_cv_func_getprogname=$gl_cv_onwards_func_getprogname ;; esac if test $ac_cv_func_getprogname = yes; then printf "%s\n" "#define HAVE_GETPROGNAME 1" >>confdefs.h fi if test $ac_cv_func_getprogname = no; then HAVE_GETPROGNAME=0 case "$gl_cv_onwards_func_getprogname" in future*) REPLACE_GETPROGNAME=1 ;; esac fi if test $HAVE_GETPROGNAME = 0 || test $REPLACE_GETPROGNAME = 1; then GL_COND_OBJ_GETPROGNAME_TRUE= GL_COND_OBJ_GETPROGNAME_FALSE='#' else GL_COND_OBJ_GETPROGNAME_TRUE='#' GL_COND_OBJ_GETPROGNAME_FALSE= fi : if test -z "${GL_COND_OBJ_GETPROGNAME_TRUE}" && test -z "${GL_COND_OBJ_GETPROGNAME_FALSE}"; then GL_COND_OBJ_GETPROGNAME_TRUE='#' GL_COND_OBJ_GETPROGNAME_FALSE='#' fi if test -z "$GL_COND_OBJ_GETPROGNAME_TRUE"; then : ac_found=0 ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_program_invocation_name" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : ac_found=1 fi ac_fn_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : ac_found=1 fi ac_fn_check_decl "$LINENO" "__argv" "ac_cv_have_decl___argv" "#include <stdlib.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl___argv" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL___ARGV $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : ac_found=1 fi # Incur the cost of this test only if none of the above worked. if test $ac_found = 0; then # On OpenBSD 5.1, using the global __progname variable appears to be # the only way to implement getprogname. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether __progname is defined in default libraries" >&5 printf %s "checking whether __progname is defined in default libraries... " >&6; } if test ${gl_cv_var___progname+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_var___progname= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern char *__progname; int main (void) { return *__progname; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_var___progname=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var___progname" >&5 printf "%s\n" "$gl_cv_var___progname" >&6; } if test "$gl_cv_var___progname" = yes; then printf "%s\n" "#define HAVE_VAR___PROGNAME 1" >>confdefs.h fi fi fi GL_GNULIB_GETPROGNAME=1 printf "%s\n" "#define GNULIB_TEST_GETPROGNAME 1" >>confdefs.h # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" HARD_LOCALE_LIB="$SETLOCALE_NULL_LIB" LIB_HARD_LOCALE="$HARD_LOCALE_LIB" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the __inline keyword" >&5 printf %s "checking whether the compiler supports the __inline keyword... " >&6; } if test ${gl_cv_c___inline+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int foo_t; static __inline foo_t foo (void) { return 0; } int main (void) { return foo (); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_c___inline=yes else $as_nop gl_cv_c___inline=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c___inline" >&5 printf "%s\n" "$gl_cv_c___inline" >&6; } if test $gl_cv_c___inline = yes; then printf "%s\n" "#define HAVE___INLINE 1" >>confdefs.h fi case "$GL_GENERATE_LIMITS_H" in false) LIMITS_H='' ;; true) if test -z "$LIMITS_H"; then LIMITS_H="${gl_source_base_prefix}limits.h" fi ;; *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_LIMITS_H; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' else GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE= fi : if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE='#' fi LOCALCHARSET_TESTS_ENVIRONMENT= if test $ac_cv_func_lstat = yes; then case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in solaris* | *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi if test $REPLACE_LSTAT = 1; then GL_COND_OBJ_LSTAT_TRUE= GL_COND_OBJ_LSTAT_FALSE='#' else GL_COND_OBJ_LSTAT_TRUE='#' GL_COND_OBJ_LSTAT_FALSE= fi : if test -z "${GL_COND_OBJ_LSTAT_TRUE}" && test -z "${GL_COND_OBJ_LSTAT_FALSE}"; then GL_COND_OBJ_LSTAT_TRUE='#' GL_COND_OBJ_LSTAT_FALSE='#' fi if test -z "$GL_COND_OBJ_LSTAT_TRUE"; then : : fi GL_GNULIB_LSTAT=1 printf "%s\n" "#define GNULIB_TEST_LSTAT 1" >>confdefs.h REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX" if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5 printf %s "checking whether malloc (0) returns nonnull... " >&6; } if test ${ac_cv_func_malloc_0_nonnull+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ | gnu* | *-musl* | midipix* | midnightbsd* \ | hpux* | solaris* | cygwin* | mingw* | msys* ) ac_cv_func_malloc_0_nonnull="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> int main (void) { void *p = malloc (0); int result = !p; free (p); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_malloc_0_nonnull=yes else $as_nop ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; } case $ac_cv_func_malloc_0_nonnull in #( *yes) : ;; #( *) : REPLACE_MALLOC_FOR_MALLOC_GNU=1 ;; esac fi if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1; then gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" fi GL_GNULIB_MALLOC_GNU=1 printf "%s\n" "#define GNULIB_TEST_MALLOC_GNU 1" >>confdefs.h if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" fi GL_GNULIB_MALLOC_POSIX=1 printf "%s\n" "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h if case "$host_os" in mingw*) true ;; *) test $ac_cv_func_mbsinit = yes ;; esac \ && test $ac_cv_func_mbrtowc = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } if test ${gl_cv_func_mbrtowc_incomplete_state+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_incomplete_state=yes else $as_nop gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { const char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_incomplete_state=yes else $as_nop gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; } if test ${gl_cv_func_mbrtowc_sanitycheck+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <string.h> #include <wchar.h> int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_sanitycheck=yes else $as_nop gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 ac_fn_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" " #include <wchar.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_mbrtowc" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_MBRTOWC $ac_have_decl" >>confdefs.h if test $ac_cv_have_decl_mbrtowc = yes; then REPLACE_MBRTOWC=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBRTOWC=1 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5 printf %s "checking whether mbrtowc handles a NULL pwc argument... " >&6; } if test ${gl_cv_func_mbrtowc_null_arg1+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <string.h> #include <wchar.h> int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "\303\237er"; mbstate_t state; wchar_t wc; size_t ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 5, &state); if (ret != 2) result |= 1; if (!mbsinit (&state)) result |= 2; memset (&state, '\0', sizeof (mbstate_t)); ret = mbrtowc (NULL, input, 5, &state); if (ret != 2) /* Solaris 7 fails here: ret is -1. */ result |= 4; if (!mbsinit (&state)) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_null_arg1=yes else $as_nop gl_cv_func_mbrtowc_null_arg1=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_null_arg1" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5 printf %s "checking whether mbrtowc handles a NULL string argument... " >&6; } if test ${gl_cv_func_mbrtowc_null_arg2+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on OSF/1. osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { mbstate_t state; wchar_t wc; int ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_null_arg2=yes else $as_nop gl_cv_func_mbrtowc_null_arg2=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_null_arg2" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5 printf %s "checking whether mbrtowc has a correct return value... " >&6; } if test ${gl_cv_func_mbrtowc_retval+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on HP-UX, Solaris, native Windows. hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { int result = 0; int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } found_some_locale = 1; } /* This fails on native Windows. */ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 4; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 8; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 16; } found_some_locale = 1; } return (found_some_locale ? result : 77); } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_retval=yes else $as_nop if test $? != 77; then gl_cv_func_mbrtowc_retval=no fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_retval" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 printf %s "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } if test ${gl_cv_func_mbrtowc_nul_retval+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on Solaris 8 and 9. solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_nul_retval=yes else $as_nop gl_cv_func_mbrtowc_nul_retval=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_nul_retval" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc stores incomplete characters" >&5 printf %s "checking whether mbrtowc stores incomplete characters... " >&6; } if test ${gl_cv_func_mbrtowc_stores_incomplete+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;; *) gl_cv_func_mbrtowc_stores_incomplete="guessing no" ;; esac case "$host_os" in mingw*) if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { int result = 0; if (setlocale (LC_ALL, "French_France.65001") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) result |= 1; } if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) result |= 2; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) result |= 4; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_stores_incomplete=no else $as_nop gl_cv_func_mbrtowc_stores_incomplete=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi ;; *) if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_stores_incomplete=no else $as_nop gl_cv_func_mbrtowc_stores_incomplete=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_stores_incomplete" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_stores_incomplete" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5 printf %s "checking whether mbrtowc works on empty input... " >&6; } if test ${gl_cv_func_mbrtowc_empty_input+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on AIX and glibc systems. aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <wchar.h> static wchar_t wc; static mbstate_t mbs; int main (void) { return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_empty_input=yes else $as_nop gl_cv_func_mbrtowc_empty_input=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_empty_input" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5 printf %s "checking whether the C locale is free of encoding errors... " >&6; } if test ${gl_cv_func_mbrtowc_C_locale_sans_EILSEQ+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal" if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> #include <locale.h> #include <wchar.h> int main (void) { int i; char *locale = setlocale (LC_ALL, "C"); if (! locale) return 2; for (i = CHAR_MIN; i <= CHAR_MAX; i++) { char c = i; wchar_t wc; mbstate_t mbs = { 0, }; size_t ss = mbrtowc (&wc, &c, 1, &mbs); if (1 < ss) return 3; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes else $as_nop gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&6; } case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) printf "%s\n" "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_null_arg2" in *yes) ;; *) printf "%s\n" "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_retval" in *yes) ;; *) printf "%s\n" "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_nul_retval" in *yes) ;; *) printf "%s\n" "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_stores_incomplete" in *no) ;; *) printf "%s\n" "#define MBRTOWC_STORES_INCOMPLETE_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_empty_input" in *yes) ;; *) printf "%s\n" "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in *yes) ;; *) printf "%s\n" "#define MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac fi fi if test $REPLACE_MBSTATE_T = 1; then case "$host_os" in mingw*) MBRTOWC_LIB= ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 printf %s "checking whether imported symbols can be declared weak... " >&6; } if test ${gl_cv_have_weak+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in cygwin*) gl_cv_have_weak="guessing no" ;; *) gl_cv_have_weak=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy int main (void) { xyzzy(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_have_weak=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test $gl_cv_have_weak = maybe; then if test "$cross_compiling" = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1 then : gl_cv_have_weak="guessing yes" else $as_nop gl_cv_have_weak="guessing no" fi rm -rf conftest* else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> #pragma weak fputs int main () { return (fputs == NULL); } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_have_weak=yes else $as_nop gl_cv_have_weak=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi ;; esac case " $LDFLAGS " in *" -static "*) gl_cv_have_weak=no ;; esac case "$gl_cv_have_weak" in *yes) case "$host_os" in freebsd* | dragonfly* | midnightbsd*) : > conftest1.c $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 cat <<EOF > conftest2.c #include <pthread.h> #pragma weak pthread_mutexattr_gettype int main () { return (pthread_mutexattr_gettype != NULL); } EOF $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ || gl_cv_have_weak=no rm -f conftest1.c libempty.so conftest2.c conftest ;; esac ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 printf "%s\n" "$gl_cv_have_weak" >&6; } case "$gl_cv_have_weak" in *yes) printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h ;; esac case "$gl_cv_have_weak" in *yes) MBRTOWC_LIB= ;; *) MBRTOWC_LIB="$LIBPTHREAD" ;; esac ;; esac else MBRTOWC_LIB= fi LIB_MBRTOWC="$MBRTOWC_LIB" if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then GL_COND_OBJ_MBRTOWC_TRUE= GL_COND_OBJ_MBRTOWC_FALSE='#' else GL_COND_OBJ_MBRTOWC_TRUE='#' GL_COND_OBJ_MBRTOWC_FALSE= fi : if test -z "${GL_COND_OBJ_MBRTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBRTOWC_FALSE}"; then GL_COND_OBJ_MBRTOWC_TRUE='#' GL_COND_OBJ_MBRTOWC_FALSE='#' fi if test -z "$GL_COND_OBJ_MBRTOWC_TRUE"; then : if test $REPLACE_MBSTATE_T = 1; then gl_LIBOBJS="$gl_LIBOBJS lc-charset-dispatch.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS mbtowc-lock.$ac_objext" CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 printf %s "checking whether the -Werror option is usable... " >&6; } if test ${gl_cv_cc_vis_werror+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_cc_vis_werror=yes else $as_nop gl_cv_cc_vis_werror=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 printf %s "checking for simple visibility declarations... " >&6; } if test ${gl_cv_cc_visibility+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void); int hiddenvar; int exportedvar; int hiddenfunc (void) { return 51; } int exportedfunc (void) { return 1225736919; } void dummyfunc (void) {} int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_cc_visibility=yes else $as_nop gl_cv_cc_visibility=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 printf "%s\n" "$gl_cv_cc_visibility" >&6; } if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h fi : fi GL_GNULIB_MBRTOWC=1 printf "%s\n" "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h if case "$host_os" in mingw*) true ;; *) test $ac_cv_func_mbsinit = yes ;; esac \ && test $ac_cv_func_mbrtowc = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } if test ${gl_cv_func_mbrtowc_incomplete_state+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_incomplete_state=yes else $as_nop gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { const char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_incomplete_state=yes else $as_nop gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 printf %s "checking whether mbrtowc works as well as mbtowc... " >&6; } if test ${gl_cv_func_mbrtowc_sanitycheck+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <locale.h> #include <stdlib.h> #include <string.h> #include <wchar.h> int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_mbrtowc_sanitycheck=yes else $as_nop gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 ac_fn_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" " #include <wchar.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_mbsinit" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_MBSINIT $ac_have_decl" >>confdefs.h if test $ac_cv_have_decl_mbsinit = yes; then REPLACE_MBSINIT=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 else case "$host_os" in mingw*) REPLACE_MBSINIT=1 ;; esac fi fi if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then GL_COND_OBJ_MBSINIT_TRUE= GL_COND_OBJ_MBSINIT_FALSE='#' else GL_COND_OBJ_MBSINIT_TRUE='#' GL_COND_OBJ_MBSINIT_FALSE= fi : if test -z "${GL_COND_OBJ_MBSINIT_TRUE}" && test -z "${GL_COND_OBJ_MBSINIT_FALSE}"; then GL_COND_OBJ_MBSINIT_TRUE='#' GL_COND_OBJ_MBSINIT_FALSE='#' fi if test -z "$GL_COND_OBJ_MBSINIT_TRUE"; then : : fi GL_GNULIB_MBSINIT=1 printf "%s\n" "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h if test $REPLACE_MEMCHR = 1; then GL_COND_OBJ_MEMCHR_TRUE= GL_COND_OBJ_MEMCHR_FALSE='#' else GL_COND_OBJ_MEMCHR_TRUE='#' GL_COND_OBJ_MEMCHR_FALSE= fi : if test -z "${GL_COND_OBJ_MEMCHR_TRUE}" && test -z "${GL_COND_OBJ_MEMCHR_FALSE}"; then GL_COND_OBJ_MEMCHR_TRUE='#' GL_COND_OBJ_MEMCHR_FALSE='#' fi if test -z "$GL_COND_OBJ_MEMCHR_TRUE"; then : ac_fn_c_check_header_compile "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" if test "x$ac_cv_header_bp_sym_h" = xyes then : printf "%s\n" "#define HAVE_BP_SYM_H 1" >>confdefs.h fi fi GL_GNULIB_MEMCHR=1 printf "%s\n" "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mempcpy" >&5 printf %s "checking for mempcpy... " >&6; } if test ${gl_cv_onwards_func_mempcpy+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "mempcpy" "ac_cv_have_decl_mempcpy" "#include <string.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_mempcpy" = xyes then : fi if test $ac_cv_have_decl_mempcpy = yes; then ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" if test "x$ac_cv_func_mempcpy" = xyes then : fi if test $ac_cv_func_mempcpy = yes; then gl_cv_onwards_func_mempcpy=yes else gl_cv_onwards_func_mempcpy='future OS version' fi else gl_cv_onwards_func_mempcpy='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy" if test "x$ac_cv_func_mempcpy" = xyes then : fi gl_cv_onwards_func_mempcpy=$ac_cv_func_mempcpy ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_mempcpy" >&5 printf "%s\n" "$gl_cv_onwards_func_mempcpy" >&6; } case "$gl_cv_onwards_func_mempcpy" in future*) ac_cv_func_mempcpy=no ;; *) ac_cv_func_mempcpy=$gl_cv_onwards_func_mempcpy ;; esac if test $ac_cv_func_mempcpy = yes; then printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h fi if test $ac_cv_func_mempcpy = no; then HAVE_MEMPCPY=0 case "$gl_cv_onwards_func_mempcpy" in future*) REPLACE_MEMPCPY=1 ;; esac fi if test $HAVE_MEMPCPY = 0 || test $REPLACE_MEMPCPY = 1; then GL_COND_OBJ_MEMPCPY_TRUE= GL_COND_OBJ_MEMPCPY_FALSE='#' else GL_COND_OBJ_MEMPCPY_TRUE='#' GL_COND_OBJ_MEMPCPY_FALSE= fi : if test -z "${GL_COND_OBJ_MEMPCPY_TRUE}" && test -z "${GL_COND_OBJ_MEMPCPY_FALSE}"; then GL_COND_OBJ_MEMPCPY_TRUE='#' GL_COND_OBJ_MEMPCPY_FALSE='#' fi if test -z "$GL_COND_OBJ_MEMPCPY_TRUE"; then : : fi GL_GNULIB_MEMPCPY=1 printf "%s\n" "#define GNULIB_TEST_MEMPCPY 1" >>confdefs.h if test $ac_cv_have_decl_memrchr = no; then HAVE_DECL_MEMRCHR=0 fi ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr" if test "x$ac_cv_func_memrchr" = xyes then : printf "%s\n" "#define HAVE_MEMRCHR 1" >>confdefs.h fi if test $ac_cv_func_memrchr = no; then GL_COND_OBJ_MEMRCHR_TRUE= GL_COND_OBJ_MEMRCHR_FALSE='#' else GL_COND_OBJ_MEMRCHR_TRUE='#' GL_COND_OBJ_MEMRCHR_FALSE= fi : if test -z "${GL_COND_OBJ_MEMRCHR_TRUE}" && test -z "${GL_COND_OBJ_MEMRCHR_FALSE}"; then GL_COND_OBJ_MEMRCHR_TRUE='#' GL_COND_OBJ_MEMRCHR_FALSE='#' fi if test -z "$GL_COND_OBJ_MEMRCHR_TRUE"; then : : fi GL_GNULIB_MEMRCHR=1 printf "%s\n" "#define GNULIB_TEST_MEMRCHR 1" >>confdefs.h if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then GL_COND_OBJ_MSVC_INVAL_TRUE= GL_COND_OBJ_MSVC_INVAL_FALSE='#' else GL_COND_OBJ_MSVC_INVAL_TRUE='#' GL_COND_OBJ_MSVC_INVAL_FALSE= fi : if test -z "${GL_COND_OBJ_MSVC_INVAL_TRUE}" && test -z "${GL_COND_OBJ_MSVC_INVAL_FALSE}"; then GL_COND_OBJ_MSVC_INVAL_TRUE='#' GL_COND_OBJ_MSVC_INVAL_FALSE='#' fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then GL_COND_OBJ_MSVC_NOTHROW_TRUE= GL_COND_OBJ_MSVC_NOTHROW_FALSE='#' else GL_COND_OBJ_MSVC_NOTHROW_TRUE='#' GL_COND_OBJ_MSVC_NOTHROW_FALSE= fi : if test -z "${GL_COND_OBJ_MSVC_NOTHROW_TRUE}" && test -z "${GL_COND_OBJ_MSVC_NOTHROW_FALSE}"; then GL_COND_OBJ_MSVC_NOTHROW_TRUE='#' GL_COND_OBJ_MSVC_NOTHROW_FALSE='#' fi printf "%s\n" "#define GNULIB_MSVC_NOTHROW 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for obstacks that work with any size object" >&5 printf %s "checking for obstacks that work with any size object... " >&6; } if test ${gl_cv_func_obstack+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include "obstack.h" void *obstack_chunk_alloc (size_t n) { return 0; } void obstack_chunk_free (void *p) { } /* Check that an internal function returns size_t, not int. */ size_t _obstack_memory_used (struct obstack *); int main (void) { struct obstack mem; obstack_init (&mem); obstack_free (&mem, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_func_obstack=yes else $as_nop gl_cv_func_obstack=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_obstack" >&5 printf "%s\n" "$gl_cv_func_obstack" >&6; } if test "$gl_cv_func_obstack" = yes; then printf "%s\n" "#define HAVE_OBSTACK 1" >>confdefs.h fi if test "$gl_cv_func_obstack" != yes; then GL_COND_OBJ_OBSTACK_TRUE= GL_COND_OBJ_OBSTACK_FALSE='#' else GL_COND_OBJ_OBSTACK_TRUE='#' GL_COND_OBJ_OBSTACK_FALSE= fi : if test -z "${GL_COND_OBJ_OBSTACK_TRUE}" && test -z "${GL_COND_OBJ_OBSTACK_FALSE}"; then GL_COND_OBJ_OBSTACK_TRUE='#' GL_COND_OBJ_OBSTACK_FALSE='#' fi case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) if test "$gl_cv_macro_O_CLOEXEC" != yes; then REPLACE_OPEN=1 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 printf %s "checking whether open recognizes a trailing slash... " >&6; } if test ${gl_cv_func_open_slash+y} then : printf %s "(cached) " >&6 else $as_nop # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes then : case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <fcntl.h> #if HAVE_UNISTD_H # include <unistd.h> #endif $gl_mda_defines int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_open_slash=yes else $as_nop gl_cv_func_open_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sl conftest.tmp conftest.lnk fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5 printf "%s\n" "$gl_cv_func_open_slash" >&6; } case "$gl_cv_func_open_slash" in *no) printf "%s\n" "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h ;; esac case "$gl_cv_func_open_slash" in *no) REPLACE_OPEN=1 ;; esac ;; esac if test $REPLACE_OPEN = 0; then if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then REPLACE_OPEN=1 fi fi if test $REPLACE_OPEN = 1; then GL_COND_OBJ_OPEN_TRUE= GL_COND_OBJ_OPEN_FALSE='#' else GL_COND_OBJ_OPEN_TRUE='#' GL_COND_OBJ_OPEN_FALSE= fi : if test -z "${GL_COND_OBJ_OPEN_TRUE}" && test -z "${GL_COND_OBJ_OPEN_FALSE}"; then GL_COND_OBJ_OPEN_TRUE='#' GL_COND_OBJ_OPEN_FALSE='#' fi if test -z "$GL_COND_OBJ_OPEN_TRUE"; then : : fi GL_GNULIB_OPEN=1 printf "%s\n" "#define GNULIB_TEST_OPEN 1" >>confdefs.h case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink+$gl_cv_macro_O_CLOEXEC in yes+*yes+yes) ;; yes+*) # Solaris 10 lacks O_CLOEXEC. # Solaris 9 has *at functions, but uniformly mishandles trailing # slash in all of them. REPLACE_OPENAT=1 ;; *) HAVE_OPENAT=0 ;; esac if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then GL_COND_OBJ_OPENAT_TRUE= GL_COND_OBJ_OPENAT_FALSE='#' else GL_COND_OBJ_OPENAT_TRUE='#' GL_COND_OBJ_OPENAT_FALSE= fi : if test -z "${GL_COND_OBJ_OPENAT_TRUE}" && test -z "${GL_COND_OBJ_OPENAT_FALSE}"; then GL_COND_OBJ_OPENAT_TRUE='#' GL_COND_OBJ_OPENAT_FALSE='#' fi if test -z "$GL_COND_OBJ_OPENAT_TRUE"; then : : fi printf "%s\n" "#define GNULIB_OPENAT 1" >>confdefs.h GL_GNULIB_OPENAT=1 printf "%s\n" "#define GNULIB_TEST_OPENAT 1" >>confdefs.h printf "%s\n" "#define GNULIB_OPENAT_SAFER 1" >>confdefs.h ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir" if test "x$ac_cv_func_opendir" = xyes then : printf "%s\n" "#define HAVE_OPENDIR 1" >>confdefs.h fi if test $ac_cv_func_opendir = no; then HAVE_OPENDIR=0 fi if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi if test $HAVE_FCHDIR = 0; then if test $HAVE_OPENDIR = 1; then REPLACE_OPENDIR=1 fi fi case $host_os,$HAVE_OPENDIR in os2*,1) REPLACE_OPENDIR=1;; esac if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then GL_COND_OBJ_OPENDIR_TRUE= GL_COND_OBJ_OPENDIR_FALSE='#' else GL_COND_OBJ_OPENDIR_TRUE='#' GL_COND_OBJ_OPENDIR_FALSE= fi : if test -z "${GL_COND_OBJ_OPENDIR_TRUE}" && test -z "${GL_COND_OBJ_OPENDIR_FALSE}"; then GL_COND_OBJ_OPENDIR_TRUE='#' GL_COND_OBJ_OPENDIR_FALSE='#' fi GL_GNULIB_OPENDIR=1 printf "%s\n" "#define GNULIB_TEST_OPENDIR 1" >>confdefs.h if test $ac_cv_func_pipe != yes; then HAVE_PIPE=0 fi if test $HAVE_PIPE = 0; then GL_COND_OBJ_PIPE_TRUE= GL_COND_OBJ_PIPE_FALSE='#' else GL_COND_OBJ_PIPE_TRUE='#' GL_COND_OBJ_PIPE_FALSE= fi : if test -z "${GL_COND_OBJ_PIPE_TRUE}" && test -z "${GL_COND_OBJ_PIPE_FALSE}"; then GL_COND_OBJ_PIPE_TRUE='#' GL_COND_OBJ_PIPE_FALSE='#' fi GL_GNULIB_PIPE=1 printf "%s\n" "#define GNULIB_TEST_PIPE 1" >>confdefs.h : : ac_fn_c_check_func "$LINENO" "rawmemchr" "ac_cv_func_rawmemchr" if test "x$ac_cv_func_rawmemchr" = xyes then : printf "%s\n" "#define HAVE_RAWMEMCHR 1" >>confdefs.h fi if test $ac_cv_func_rawmemchr = no; then HAVE_RAWMEMCHR=0 fi if test $HAVE_RAWMEMCHR = 0; then GL_COND_OBJ_RAWMEMCHR_TRUE= GL_COND_OBJ_RAWMEMCHR_FALSE='#' else GL_COND_OBJ_RAWMEMCHR_TRUE='#' GL_COND_OBJ_RAWMEMCHR_FALSE= fi : if test -z "${GL_COND_OBJ_RAWMEMCHR_TRUE}" && test -z "${GL_COND_OBJ_RAWMEMCHR_FALSE}"; then GL_COND_OBJ_RAWMEMCHR_TRUE='#' GL_COND_OBJ_RAWMEMCHR_FALSE='#' fi if test -z "$GL_COND_OBJ_RAWMEMCHR_TRUE"; then : : fi GL_GNULIB_RAWMEMCHR=1 printf "%s\n" "#define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir" if test "x$ac_cv_func_readdir" = xyes then : printf "%s\n" "#define HAVE_READDIR 1" >>confdefs.h fi if test $ac_cv_func_readdir = no; then HAVE_READDIR=0 fi if test $HAVE_READDIR = 0; then GL_COND_OBJ_READDIR_TRUE= GL_COND_OBJ_READDIR_FALSE='#' else GL_COND_OBJ_READDIR_TRUE='#' GL_COND_OBJ_READDIR_FALSE= fi : if test -z "${GL_COND_OBJ_READDIR_TRUE}" && test -z "${GL_COND_OBJ_READDIR_FALSE}"; then GL_COND_OBJ_READDIR_TRUE='#' GL_COND_OBJ_READDIR_FALSE='#' fi GL_GNULIB_READDIR=1 printf "%s\n" "#define GNULIB_TEST_READDIR 1" >>confdefs.h if test $ac_cv_func_readlink = no; then HAVE_READLINK=0 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5 printf %s "checking whether readlink signature is correct... " >&6; } if test ${gl_cv_decl_readlink_works+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> /* Cause compilation failure if original declaration has wrong type. */ ssize_t readlink (const char *, char *, size_t); int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_decl_readlink_works=yes else $as_nop gl_cv_decl_readlink_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlink_works" >&5 printf "%s\n" "$gl_cv_decl_readlink_works" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5 printf %s "checking whether readlink handles trailing slash correctly... " >&6; } if test ${gl_cv_func_readlink_trailing_slash+y} then : printf %s "(cached) " >&6 else $as_nop # We have readlink, so assume ln -s works. ln -s conftest.no-such conftest.link ln -s conftest.link conftest.lnk2 if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on Linux or glibc systems. linux-* | linux | *-gnu* | gnu*) gl_cv_func_readlink_trailing_slash="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_readlink_trailing_slash="guessing yes" ;; # Guess no on AIX or HP-UX. aix* | hpux*) gl_cv_func_readlink_trailing_slash="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_readlink_trailing_slash="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> int main (void) { char buf[20]; return readlink ("conftest.lnk2/", buf, sizeof buf) != -1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_readlink_trailing_slash=yes else $as_nop gl_cv_func_readlink_trailing_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.link conftest.lnk2 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_readlink_trailing_slash" >&5 printf "%s\n" "$gl_cv_func_readlink_trailing_slash" >&6; } case "$gl_cv_func_readlink_trailing_slash" in *yes) if test "$gl_cv_decl_readlink_works" != yes; then REPLACE_READLINK=1 fi ;; *) printf "%s\n" "#define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h REPLACE_READLINK=1 ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlink truncates results correctly" >&5 printf %s "checking whether readlink truncates results correctly... " >&6; } if test ${gl_cv_func_readlink_truncate+y} then : printf %s "(cached) " >&6 else $as_nop # We have readlink, so assume ln -s works. ln -s ab conftest.link if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on Linux or glibc systems. linux-* | linux | *-gnu* | gnu*) gl_cv_func_readlink_truncate="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_readlink_truncate="guessing yes" ;; # Guess no on AIX or HP-UX. aix* | hpux*) gl_cv_func_readlink_truncate="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_readlink_truncate="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> int main (void) { char c; return readlink ("conftest.link", &c, 1) != 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_readlink_truncate=yes else $as_nop gl_cv_func_readlink_truncate=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.link conftest.lnk2 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_readlink_truncate" >&5 printf "%s\n" "$gl_cv_func_readlink_truncate" >&6; } case $gl_cv_func_readlink_truncate in *yes) if test "$gl_cv_decl_readlink_works" != yes; then REPLACE_READLINK=1 fi ;; *) printf "%s\n" "#define READLINK_TRUNCATE_BUG 1" >>confdefs.h REPLACE_READLINK=1 ;; esac fi if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then GL_COND_OBJ_READLINK_TRUE= GL_COND_OBJ_READLINK_FALSE='#' else GL_COND_OBJ_READLINK_TRUE='#' GL_COND_OBJ_READLINK_FALSE= fi : if test -z "${GL_COND_OBJ_READLINK_TRUE}" && test -z "${GL_COND_OBJ_READLINK_FALSE}"; then GL_COND_OBJ_READLINK_TRUE='#' GL_COND_OBJ_READLINK_FALSE='#' fi if test -z "$GL_COND_OBJ_READLINK_TRUE"; then : : fi GL_GNULIB_READLINK=1 printf "%s\n" "#define GNULIB_TEST_READLINK 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readlinkat" >&5 printf %s "checking for readlinkat... " >&6; } if test ${gl_cv_onwards_func_readlinkat+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "readlinkat" "ac_cv_have_decl_readlinkat" "#include <unistd.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_readlinkat" = xyes then : fi if test $ac_cv_have_decl_readlinkat = yes; then ac_fn_c_check_func "$LINENO" "readlinkat" "ac_cv_func_readlinkat" if test "x$ac_cv_func_readlinkat" = xyes then : fi if test $ac_cv_func_readlinkat = yes; then gl_cv_onwards_func_readlinkat=yes else gl_cv_onwards_func_readlinkat='future OS version' fi else gl_cv_onwards_func_readlinkat='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "readlinkat" "ac_cv_func_readlinkat" if test "x$ac_cv_func_readlinkat" = xyes then : fi gl_cv_onwards_func_readlinkat=$ac_cv_func_readlinkat ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_readlinkat" >&5 printf "%s\n" "$gl_cv_onwards_func_readlinkat" >&6; } case "$gl_cv_onwards_func_readlinkat" in future*) ac_cv_func_readlinkat=no ;; *) ac_cv_func_readlinkat=$gl_cv_onwards_func_readlinkat ;; esac if test $ac_cv_func_readlinkat = yes; then printf "%s\n" "#define HAVE_READLINKAT 1" >>confdefs.h fi if test $ac_cv_func_readlinkat = no; then HAVE_READLINKAT=0 case "$gl_cv_onwards_func_readlinkat" in future*) REPLACE_READLINKAT=1 ;; esac else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlinkat signature is correct" >&5 printf %s "checking whether readlinkat signature is correct... " >&6; } if test ${gl_cv_decl_readlinkat_works+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> /* Check whether original declaration has correct type. */ ssize_t readlinkat (int, char const *, char *, size_t); int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_decl_readlinkat_works=yes else $as_nop gl_cv_decl_readlinkat_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlinkat_works" >&5 printf "%s\n" "$gl_cv_decl_readlinkat_works" >&6; } # Assume readlinkat has the same bugs as readlink, # as is the case on OS X 10.10 with trailing slashes. case $gl_cv_decl_readlinkat_works,$gl_cv_func_readlink_trailing_slash,$gl_cv_func_readlink_truncate in *yes,*yes,*yes) ;; *) REPLACE_READLINKAT=1 ;; esac fi if test $HAVE_READLINKAT = 0 || test $REPLACE_READLINKAT = 1; then GL_COND_OBJ_READLINKAT_TRUE= GL_COND_OBJ_READLINKAT_FALSE='#' else GL_COND_OBJ_READLINKAT_TRUE='#' GL_COND_OBJ_READLINKAT_FALSE= fi : if test -z "${GL_COND_OBJ_READLINKAT_TRUE}" && test -z "${GL_COND_OBJ_READLINKAT_FALSE}"; then GL_COND_OBJ_READLINKAT_TRUE='#' GL_COND_OBJ_READLINKAT_FALSE='#' fi GL_GNULIB_READLINKAT=1 printf "%s\n" "#define GNULIB_TEST_READLINKAT 1" >>confdefs.h if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether realloc (0, 0) returns nonnull" >&5 printf %s "checking whether realloc (0, 0) returns nonnull... " >&6; } if test ${ac_cv_func_realloc_0_nonnull+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ | gnu* | *-musl* | midipix* | midnightbsd* \ | hpux* | solaris* | cygwin* | mingw* | msys* ) ac_cv_func_realloc_0_nonnull="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> int main (void) { void *p = realloc (0, 0); int result = !p; free (p); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_realloc_0_nonnull=yes else $as_nop ac_cv_func_realloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5 printf "%s\n" "$ac_cv_func_realloc_0_nonnull" >&6; } case $ac_cv_func_realloc_0_nonnull in #( *yes) : ;; #( *) : REPLACE_REALLOC_FOR_REALLOC_GNU=1 ;; esac fi if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" fi GL_GNULIB_REALLOC_GNU=1 printf "%s\n" "#define GNULIB_TEST_REALLOC_GNU 1" >>confdefs.h if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then REPLACE_REALLOC_FOR_REALLOC_POSIX=1 fi if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" fi GL_GNULIB_REALLOC_POSIX=1 printf "%s\n" "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for reallocarray" >&5 printf %s "checking for reallocarray... " >&6; } if test ${gl_cv_onwards_func_reallocarray+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "reallocarray" "ac_cv_have_decl_reallocarray" "#include <stdlib.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_reallocarray" = xyes then : fi if test $ac_cv_have_decl_reallocarray = yes; then ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray" if test "x$ac_cv_func_reallocarray" = xyes then : fi if test $ac_cv_func_reallocarray = yes; then gl_cv_onwards_func_reallocarray=yes else gl_cv_onwards_func_reallocarray='future OS version' fi else gl_cv_onwards_func_reallocarray='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray" if test "x$ac_cv_func_reallocarray" = xyes then : fi gl_cv_onwards_func_reallocarray=$ac_cv_func_reallocarray ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_reallocarray" >&5 printf "%s\n" "$gl_cv_onwards_func_reallocarray" >&6; } case "$gl_cv_onwards_func_reallocarray" in future*) ac_cv_func_reallocarray=no ;; *) ac_cv_func_reallocarray=$gl_cv_onwards_func_reallocarray ;; esac if test $ac_cv_func_reallocarray = yes; then printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h fi if test "$ac_cv_func_reallocarray" = no; then HAVE_REALLOCARRAY=0 case "$gl_cv_onwards_func_reallocarray" in future*) REPLACE_REALLOCARRAY=1 ;; esac elif test "$gl_cv_malloc_ptrdiff" = no; then REPLACE_REALLOCARRAY=1 fi if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then GL_COND_OBJ_REALLOCARRAY_TRUE= GL_COND_OBJ_REALLOCARRAY_FALSE='#' else GL_COND_OBJ_REALLOCARRAY_TRUE='#' GL_COND_OBJ_REALLOCARRAY_FALSE= fi : if test -z "${GL_COND_OBJ_REALLOCARRAY_TRUE}" && test -z "${GL_COND_OBJ_REALLOCARRAY_FALSE}"; then GL_COND_OBJ_REALLOCARRAY_TRUE='#' GL_COND_OBJ_REALLOCARRAY_FALSE='#' fi if test -z "$GL_COND_OBJ_REALLOCARRAY_TRUE"; then : : fi printf "%s\n" "#define GNULIB_REALLOCARRAY 1" >>confdefs.h GL_GNULIB_REALLOCARRAY=1 printf "%s\n" "#define GNULIB_TEST_REALLOCARRAY 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5 printf %s "checking whether rename honors trailing slash on destination... " >&6; } if test ${gl_cv_func_rename_slash_dst_works+y} then : printf %s "(cached) " >&6 else $as_nop rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk touch conftest.f && touch conftest.f1 && mkdir conftest.d1 || as_fn_error $? "cannot create temporary files" "$LINENO" 5 # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.f conftest.lnk fi if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rename_slash_dst_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_rename_slash_dst_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu*) gl_cv_func_rename_slash_dst_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_rename_slash_dst_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rename_slash_dst_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include <stdio.h> # include <stdlib.h> int main (void) { int result = 0; if (rename ("conftest.f1", "conftest.f2/") == 0) result |= 1; if (rename ("conftest.d1", "conftest.d2/") != 0) result |= 2; #if HAVE_LSTAT if (rename ("conftest.f", "conftest.lnk/") == 0) result |= 4; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_rename_slash_dst_works=yes else $as_nop gl_cv_func_rename_slash_dst_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_dst_works" >&5 printf "%s\n" "$gl_cv_func_rename_slash_dst_works" >&6; } case "$gl_cv_func_rename_slash_dst_works" in *yes) ;; *) REPLACE_RENAME=1 printf "%s\n" "#define RENAME_TRAILING_SLASH_DEST_BUG 1" >>confdefs.h ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on source" >&5 printf %s "checking whether rename honors trailing slash on source... " >&6; } if test ${gl_cv_func_rename_slash_src_works+y} then : printf %s "(cached) " >&6 else $as_nop rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk touch conftest.f && touch conftest.f1 && mkdir conftest.d1 || as_fn_error $? "cannot create temporary files" "$LINENO" 5 # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.f conftest.lnk fi if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rename_slash_src_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_rename_slash_src_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu*) gl_cv_func_rename_slash_src_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_rename_slash_src_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rename_slash_src_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include <stdio.h> # include <stdlib.h> int main (void) { int result = 0; if (rename ("conftest.f1/", "conftest.d3") == 0) result |= 1; if (rename ("conftest.d1/", "conftest.d2") != 0) result |= 2; #if HAVE_LSTAT if (rename ("conftest.lnk/", "conftest.f") == 0) result |= 4; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_rename_slash_src_works=yes else $as_nop gl_cv_func_rename_slash_src_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_src_works" >&5 printf "%s\n" "$gl_cv_func_rename_slash_src_works" >&6; } case "$gl_cv_func_rename_slash_src_works" in *yes) ;; *) REPLACE_RENAME=1 printf "%s\n" "#define RENAME_TRAILING_SLASH_SOURCE_BUG 1" >>confdefs.h ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rename manages hard links correctly" >&5 printf %s "checking whether rename manages hard links correctly... " >&6; } if test ${gl_cv_func_rename_link_works+y} then : printf %s "(cached) " >&6 else $as_nop if test $ac_cv_func_link = yes; then if test $cross_compiling != yes; then rm -rf conftest.f conftest.f1 conftest.f2 if touch conftest.f conftest.f2 && ln conftest.f conftest.f1 && set x `ls -i conftest.f conftest.f1` && test "" = ""; then if test "$cross_compiling" = yes then : : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include <errno.h> # include <stdio.h> # include <stdlib.h> # include <unistd.h> $gl_mda_defines int main (void) { int result = 0; if (rename ("conftest.f", "conftest.f1")) result |= 1; if (unlink ("conftest.f1")) result |= 2; /* Allow either the POSIX-required behavior, where the previous rename kept conftest.f, or the (better) NetBSD behavior, where it removed conftest.f. */ if (rename ("conftest.f", "conftest.f") != 0 && errno != ENOENT) result |= 4; if (rename ("conftest.f1", "conftest.f1") == 0) result |= 8; if (rename ("conftest.f2", "conftest.f2") != 0) result |= 16; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_rename_link_works=yes else $as_nop gl_cv_func_rename_link_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else gl_cv_func_rename_link_works="guessing no" fi rm -rf conftest.f conftest.f1 conftest.f2 else case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rename_link_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_rename_link_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu*) gl_cv_func_rename_link_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_rename_link_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rename_link_works="$gl_cross_guess_normal" ;; esac fi else gl_cv_func_rename_link_works=yes fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_link_works" >&5 printf "%s\n" "$gl_cv_func_rename_link_works" >&6; } case "$gl_cv_func_rename_link_works" in *yes) ;; *) REPLACE_RENAME=1 printf "%s\n" "#define RENAME_HARD_LINK_BUG 1" >>confdefs.h ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rename manages existing destinations correctly" >&5 printf %s "checking whether rename manages existing destinations correctly... " >&6; } if test ${gl_cv_func_rename_dest_works+y} then : printf %s "(cached) " >&6 else $as_nop rm -rf conftest.f conftest.d1 conftest.d2 touch conftest.f && mkdir conftest.d1 conftest.d2 || as_fn_error $? "cannot create temporary files" "$LINENO" 5 if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rename_dest_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu*) gl_cv_func_rename_dest_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_rename_dest_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rename_dest_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include <stdio.h> # include <stdlib.h> int main (void) { int result = 0; if (rename ("conftest.d1", "conftest.d2") != 0) result |= 1; if (rename ("conftest.d2", "conftest.f") == 0) result |= 2; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_rename_dest_works=yes else $as_nop gl_cv_func_rename_dest_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -rf conftest.f conftest.d1 conftest.d2 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_dest_works" >&5 printf "%s\n" "$gl_cv_func_rename_dest_works" >&6; } case "$gl_cv_func_rename_dest_works" in *yes) ;; *) REPLACE_RENAME=1 printf "%s\n" "#define RENAME_DEST_EXISTS_BUG 1" >>confdefs.h ;; esac if test $REPLACE_RENAME = 1; then GL_COND_OBJ_RENAME_TRUE= GL_COND_OBJ_RENAME_FALSE='#' else GL_COND_OBJ_RENAME_TRUE='#' GL_COND_OBJ_RENAME_FALSE= fi : if test -z "${GL_COND_OBJ_RENAME_TRUE}" && test -z "${GL_COND_OBJ_RENAME_FALSE}"; then GL_COND_OBJ_RENAME_TRUE='#' GL_COND_OBJ_RENAME_FALSE='#' fi GL_GNULIB_RENAME=1 printf "%s\n" "#define GNULIB_TEST_RENAME 1" >>confdefs.h ac_fn_c_check_header_compile "$LINENO" "linux/fs.h" "ac_cv_header_linux_fs_h" "$ac_includes_default" if test "x$ac_cv_header_linux_fs_h" = xyes then : printf "%s\n" "#define HAVE_LINUX_FS_H 1" >>confdefs.h fi if test $ac_cv_func_renameat = no; then HAVE_RENAMEAT=0 elif test $REPLACE_RENAME = 1; then REPLACE_RENAMEAT=1 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for renameat2" >&5 printf %s "checking for renameat2... " >&6; } if test ${gl_cv_onwards_func_renameat2+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "renameat2" "ac_cv_have_decl_renameat2" "#include <stdio.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_renameat2" = xyes then : fi if test $ac_cv_have_decl_renameat2 = yes; then ac_fn_c_check_func "$LINENO" "renameat2" "ac_cv_func_renameat2" if test "x$ac_cv_func_renameat2" = xyes then : fi if test $ac_cv_func_renameat2 = yes; then gl_cv_onwards_func_renameat2=yes else gl_cv_onwards_func_renameat2='future OS version' fi else gl_cv_onwards_func_renameat2='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "renameat2" "ac_cv_func_renameat2" if test "x$ac_cv_func_renameat2" = xyes then : fi gl_cv_onwards_func_renameat2=$ac_cv_func_renameat2 ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_renameat2" >&5 printf "%s\n" "$gl_cv_onwards_func_renameat2" >&6; } case "$gl_cv_onwards_func_renameat2" in future*) ac_cv_func_renameat2=no ;; *) ac_cv_func_renameat2=$gl_cv_onwards_func_renameat2 ;; esac if test $ac_cv_func_renameat2 = yes; then printf "%s\n" "#define HAVE_RENAMEAT2 1" >>confdefs.h fi if test $HAVE_RENAMEAT = 0; then gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5 printf %s "checking whether rmdir works... " >&6; } if test ${gl_cv_func_rmdir_works+y} then : printf %s "(cached) " >&6 else $as_nop mkdir conftest.dir touch conftest.file if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rmdir_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_rmdir_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_rmdir_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_rmdir_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rmdir_works="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> #include <errno.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* on Windows with MSVC */ # include <direct.h> #endif $gl_mda_defines int main (void) { int result = 0; if (!rmdir ("conftest.file/")) result |= 1; else if (errno != ENOTDIR) result |= 2; if (!rmdir ("conftest.dir/./")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_rmdir_works=yes else $as_nop gl_cv_func_rmdir_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -rf conftest.dir conftest.file fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rmdir_works" >&5 printf "%s\n" "$gl_cv_func_rmdir_works" >&6; } case "$gl_cv_func_rmdir_works" in *yes) ;; *) REPLACE_RMDIR=1 ;; esac if test $REPLACE_RMDIR = 1; then GL_COND_OBJ_RMDIR_TRUE= GL_COND_OBJ_RMDIR_FALSE='#' else GL_COND_OBJ_RMDIR_TRUE='#' GL_COND_OBJ_RMDIR_FALSE= fi : if test -z "${GL_COND_OBJ_RMDIR_TRUE}" && test -z "${GL_COND_OBJ_RMDIR_FALSE}"; then GL_COND_OBJ_RMDIR_TRUE='#' GL_COND_OBJ_RMDIR_FALSE='#' fi GL_GNULIB_RMDIR=1 printf "%s\n" "#define GNULIB_TEST_RMDIR 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (LC_ALL, NULL) is multithread-safe" >&5 printf %s "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&6; } if test ${gl_cv_func_setlocale_null_all_mtsafe+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku. *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku*) gl_cv_func_setlocale_null_all_mtsafe=no ;; # Guess no on Cygwin < 3.4.6. cygwin*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __CYGWIN__ #include <cygwin/version.h> #if CYGWIN_VERSION_DLL_COMBINED >= CYGWIN_VERSION_DLL_MAKE_COMBINED (3004, 6) Lucky user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1 then : gl_cv_func_setlocale_null_all_mtsafe=yes else $as_nop gl_cv_func_setlocale_null_all_mtsafe=no fi rm -rf conftest* ;; # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) gl_cv_func_setlocale_null_all_mtsafe=yes ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5 printf "%s\n" "$gl_cv_func_setlocale_null_all_mtsafe" >&6; } case "$host_os" in mingw*) ;; *) if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then gl_cv_func_setlocale_null_all_mtsafe="trivially yes" fi ;; esac case "$gl_cv_func_setlocale_null_all_mtsafe" in *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; esac printf "%s\n" "#define SETLOCALE_NULL_ALL_MTSAFE $SETLOCALE_NULL_ALL_MTSAFE" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (category, NULL) is multithread-safe" >&5 printf %s "checking whether setlocale (category, NULL) is multithread-safe... " >&6; } if test ${gl_cv_func_setlocale_null_one_mtsafe+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in # Guess no on OpenBSD, AIX. openbsd* | aix*) gl_cv_func_setlocale_null_one_mtsafe=no ;; # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. *-gnu* | gnu* | *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) gl_cv_func_setlocale_null_one_mtsafe=yes ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5 printf "%s\n" "$gl_cv_func_setlocale_null_one_mtsafe" >&6; } case "$host_os" in mingw*) ;; *) if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then gl_cv_func_setlocale_null_one_mtsafe="trivially yes" fi ;; esac case "$gl_cv_func_setlocale_null_one_mtsafe" in *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; esac printf "%s\n" "#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE" >>confdefs.h if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then case "$host_os" in mingw*) SETLOCALE_NULL_LIB= ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 printf %s "checking whether imported symbols can be declared weak... " >&6; } if test ${gl_cv_have_weak+y} then : printf %s "(cached) " >&6 else $as_nop case "$host_os" in cygwin*) gl_cv_have_weak="guessing no" ;; *) gl_cv_have_weak=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy int main (void) { xyzzy(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gl_cv_have_weak=maybe fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test $gl_cv_have_weak = maybe; then if test "$cross_compiling" = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1 then : gl_cv_have_weak="guessing yes" else $as_nop gl_cv_have_weak="guessing no" fi rm -rf conftest* else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> #pragma weak fputs int main () { return (fputs == NULL); } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_have_weak=yes else $as_nop gl_cv_have_weak=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi ;; esac case " $LDFLAGS " in *" -static "*) gl_cv_have_weak=no ;; esac case "$gl_cv_have_weak" in *yes) case "$host_os" in freebsd* | dragonfly* | midnightbsd*) : > conftest1.c $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 cat <<EOF > conftest2.c #include <pthread.h> #pragma weak pthread_mutexattr_gettype int main () { return (pthread_mutexattr_gettype != NULL); } EOF $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ || gl_cv_have_weak=no rm -f conftest1.c libempty.so conftest2.c conftest ;; esac ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 printf "%s\n" "$gl_cv_have_weak" >&6; } case "$gl_cv_have_weak" in *yes) printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h ;; esac case "$gl_cv_have_weak" in *yes) SETLOCALE_NULL_LIB= ;; *) SETLOCALE_NULL_LIB="$LIBPTHREAD" ;; esac ;; esac else SETLOCALE_NULL_LIB= fi LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB" if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then GL_COND_OBJ_SETLOCALE_LOCK_TRUE= GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#' else GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#' GL_COND_OBJ_SETLOCALE_LOCK_FALSE= fi : if test -z "${GL_COND_OBJ_SETLOCALE_LOCK_TRUE}" && test -z "${GL_COND_OBJ_SETLOCALE_LOCK_FALSE}"; then GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#' GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#' fi if test -z "$GL_COND_OBJ_SETLOCALE_LOCK_TRUE"; then : CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 printf %s "checking whether the -Werror option is usable... " >&6; } if test ${gl_cv_cc_vis_werror+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_cc_vis_werror=yes else $as_nop gl_cv_cc_vis_werror=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 printf %s "checking for simple visibility declarations... " >&6; } if test ${gl_cv_cc_visibility+y} then : printf %s "(cached) " >&6 else $as_nop gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void); int hiddenvar; int exportedvar; int hiddenfunc (void) { return 51; } int exportedfunc (void) { return 1225736919; } void dummyfunc (void) {} int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_cc_visibility=yes else $as_nop gl_cv_cc_visibility=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 printf "%s\n" "$gl_cv_cc_visibility" >&6; } if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h fi GL_GNULIB_SETLOCALE_NULL=1 printf "%s\n" "#define GNULIB_TEST_SETLOCALE_NULL 1" >>confdefs.h ac_fn_c_check_func "$LINENO" "sig2str" "ac_cv_func_sig2str" if test "x$ac_cv_func_sig2str" = xyes then : printf "%s\n" "#define HAVE_SIG2STR 1" >>confdefs.h fi if test $ac_cv_func_sig2str = no; then GL_COND_OBJ_SIG2STR_TRUE= GL_COND_OBJ_SIG2STR_FALSE='#' else GL_COND_OBJ_SIG2STR_TRUE='#' GL_COND_OBJ_SIG2STR_FALSE= fi : if test -z "${GL_COND_OBJ_SIG2STR_TRUE}" && test -z "${GL_COND_OBJ_SIG2STR_FALSE}"; then GL_COND_OBJ_SIG2STR_TRUE='#' GL_COND_OBJ_SIG2STR_FALSE='#' fi if test -z "$GL_COND_OBJ_SIG2STR_TRUE"; then : : fi ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" " /* <sys/types.h> is not needed according to POSIX, but the <sys/socket.h> in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include <sys/types.h> #if HAVE_SYS_SOCKET_H # include <sys/socket.h> #elif HAVE_WS2TCPIP_H # include <ws2tcpip.h> #endif " if test "x$ac_cv_type_socklen_t" = xyes then : else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5 printf %s "checking for socklen_t equivalent... " >&6; } if test ${gl_cv_socklen_t_equiv+y} then : printf %s "(cached) " >&6 else $as_nop # Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername gl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t "unsigned int" "long int" "unsigned long int"; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/socket.h> int getpeername (int, $arg2 *, $t *); int main (void) { $t len; getpeername (0, 0, &len); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_socklen_t_equiv="$t" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$gl_cv_socklen_t_equiv" != "" && break done test "$gl_cv_socklen_t_equiv" != "" && break done if test "$gl_cv_socklen_t_equiv" = ""; then as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5 fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5 printf "%s\n" "$gl_cv_socklen_t_equiv" >&6; } printf "%s\n" "#define socklen_t $gl_cv_socklen_t_equiv" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 printf %s "checking for ssize_t... " >&6; } if test ${gt_cv_ssize_t+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> int main (void) { int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gt_cv_ssize_t=yes else $as_nop gt_cv_ssize_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 printf "%s\n" "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then printf "%s\n" "#define ssize_t int" >>confdefs.h fi case "$host_os" in mingw*) REPLACE_STAT=1 ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 printf %s "checking whether stat handles trailing slashes on files... " >&6; } if test ${gl_cv_func_stat_file_slash+y} then : printf %s "(cached) " >&6 else $as_nop touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_stat_file_slash="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/stat.h> int main (void) { int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_stat_file_slash=yes else $as_nop gl_cv_func_stat_file_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.tmp conftest.lnk fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 printf "%s\n" "$gl_cv_func_stat_file_slash" >&6; } case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 printf "%s\n" "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h ;; esac case $host_os in solaris*) REPLACE_FSTAT=1 ;; esac ;; esac if test $REPLACE_STAT = 1; then GL_COND_OBJ_STAT_TRUE= GL_COND_OBJ_STAT_FALSE='#' else GL_COND_OBJ_STAT_TRUE='#' GL_COND_OBJ_STAT_FALSE= fi : if test -z "${GL_COND_OBJ_STAT_TRUE}" && test -z "${GL_COND_OBJ_STAT_FALSE}"; then GL_COND_OBJ_STAT_TRUE='#' GL_COND_OBJ_STAT_FALSE='#' fi if test -z "$GL_COND_OBJ_STAT_TRUE"; then : case "$host_os" in mingw*) gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" ;; esac : fi GL_GNULIB_STAT=1 printf "%s\n" "#define GNULIB_TEST_STAT 1" >>confdefs.h ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes then : printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5 printf %s "checking whether struct stat.st_atim is of type struct timespec... " >&6; } if test ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/stat.h> #if HAVE_SYS_TIME_H # include <sys/time.h> #endif #include <time.h> struct timespec ts; struct stat st; int main (void) { st.st_atim = ts; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes else $as_nop ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 printf "%s\n" "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then printf "%s\n" "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h fi else $as_nop ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes then : printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1" >>confdefs.h else $as_nop ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes then : printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1" >>confdefs.h else $as_nop ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes then : printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1" >>confdefs.h fi fi fi fi ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes then : printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1" >>confdefs.h else $as_nop ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes then : printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1" >>confdefs.h else $as_nop ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include <sys/types.h> #include <sys/stat.h> " if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes then : printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1" >>confdefs.h fi fi fi GL_GENERATE_STDARG_H=false NEXT_STDARG_H='<stdarg.h>' { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 printf %s "checking for va_copy... " >&6; } if test ${gl_cv_func_va_copy+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> int main (void) { #ifndef va_copy void (*func) (va_list, va_list) = va_copy; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_func_va_copy=yes else $as_nop gl_cv_func_va_copy=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_va_copy" >&5 printf "%s\n" "$gl_cv_func_va_copy" >&6; } if test $gl_cv_func_va_copy = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _AIX && !defined __GNUC__ AIX vaccine #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "vaccine" >/dev/null 2>&1 then : gl_aixcc=yes else $as_nop gl_aixcc=no fi rm -rf conftest* if test $gl_aixcc = yes; then GL_GENERATE_STDARG_H=true if test $gl_cv_have_include_next = yes; then gl_cv_next_stdarg_h='<'stdarg.h'>' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdarg.h>" >&5 printf %s "checking absolute name of <stdarg.h>... " >&6; } if test ${gl_cv_next_stdarg_h+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdarg.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdarg_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdarg_h gl_cv_next_stdarg_h='"'$gl_header'"' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdarg_h" >&5 printf "%s\n" "$gl_cv_next_stdarg_h" >&6; } fi NEXT_STDARG_H=$gl_cv_next_stdarg_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdarg.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdarg_h fi NEXT_AS_FIRST_DIRECTIVE_STDARG_H=$gl_next_as_first_directive if test "$gl_cv_next_stdarg_h" = '""'; then gl_cv_next_stdarg_h='"///usr/include/stdarg.h"' NEXT_STDARG_H="$gl_cv_next_stdarg_h" fi else exec 9>&6 6>/dev/null if test ${gl_cv_func___va_copy+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> int main (void) { #ifndef __va_copy error, bail out #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_func___va_copy=yes else $as_nop gl_cv_func___va_copy=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi exec 6>&9 9>&- if test $gl_cv_func___va_copy = yes; then printf "%s\n" "#define va_copy __va_copy" >>confdefs.h else printf "%s\n" "#define va_copy gl_va_copy" >>confdefs.h fi fi fi case "$GL_GENERATE_STDARG_H" in false) STDARG_H='' ;; true) if test -z "$STDARG_H"; then STDARG_H="${gl_source_base_prefix}stdarg.h" fi ;; *) echo "*** GL_GENERATE_STDARG_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_STDARG_H; then GL_GENERATE_STDARG_H_TRUE= GL_GENERATE_STDARG_H_FALSE='#' else GL_GENERATE_STDARG_H_TRUE='#' GL_GENERATE_STDARG_H_FALSE= fi : if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then GL_GENERATE_STDARG_H_TRUE='#' GL_GENERATE_STDARG_H_FALSE='#' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bool, true, false" >&5 printf %s "checking for bool, true, false... " >&6; } if test ${gl_cv_c_bool+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if true == false #error "true == false" #endif extern bool b; bool b = true == false; _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_c_bool=yes else $as_nop gl_cv_c_bool=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_bool" >&5 printf "%s\n" "$gl_cv_c_bool" >&6; } if test "$gl_cv_c_bool" = yes; then printf "%s\n" "#define HAVE_C_BOOL 1" >>confdefs.h fi if test $ac_cv_header_stdckdint_h = yes; then GL_GENERATE_STDCKDINT_H=false else GL_GENERATE_STDCKDINT_H=true fi case "$GL_GENERATE_STDCKDINT_H" in false) STDCKDINT_H='' ;; true) if test -z "$STDCKDINT_H"; then STDCKDINT_H="${gl_source_base_prefix}stdckdint.h" fi ;; *) echo "*** GL_GENERATE_STDCKDINT_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_STDCKDINT_H; then GL_GENERATE_STDCKDINT_H_TRUE= GL_GENERATE_STDCKDINT_H_FALSE='#' else GL_GENERATE_STDCKDINT_H_TRUE='#' GL_GENERATE_STDCKDINT_H_FALSE= fi : if test -z "${GL_GENERATE_STDCKDINT_H_TRUE}" && test -z "${GL_GENERATE_STDCKDINT_H_FALSE}"; then GL_GENERATE_STDCKDINT_H_TRUE='#' GL_GENERATE_STDCKDINT_H_FALSE='#' fi case "$GL_GENERATE_STDDEF_H" in false) STDDEF_H='' ;; true) if test -z "$STDDEF_H"; then STDDEF_H="${gl_source_base_prefix}stddef.h" fi ;; *) echo "*** GL_GENERATE_STDDEF_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_STDDEF_H; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi : if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE='#' fi case "$GL_GENERATE_STDINT_H" in false) STDINT_H='' ;; true) if test -z "$STDINT_H"; then STDINT_H="${gl_source_base_prefix}stdint.h" fi ;; *) echo "*** GL_GENERATE_STDINT_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_STDINT_H; then GL_GENERATE_STDINT_H_TRUE= GL_GENERATE_STDINT_H_FALSE='#' else GL_GENERATE_STDINT_H_TRUE='#' GL_GENERATE_STDINT_H_FALSE= fi : if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then GL_GENERATE_STDINT_H_TRUE='#' GL_GENERATE_STDINT_H_FALSE='#' fi case "$GL_GENERATE_LIMITS_H" in false) LIMITS_H='' ;; true) if test -z "$LIMITS_H"; then LIMITS_H="${gl_source_base_prefix}limits.h" fi ;; *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;; esac if $GL_GENERATE_LIMITS_H; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' else GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE= fi : if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE='#' fi if test $REPLACE_STDIO_READ_FUNCS = 1; then GL_COND_OBJ_STDIO_READ_TRUE= GL_COND_OBJ_STDIO_READ_FALSE='#' else GL_COND_OBJ_STDIO_READ_TRUE='#' GL_COND_OBJ_STDIO_READ_FALSE= fi : if test -z "${GL_COND_OBJ_STDIO_READ_TRUE}" && test -z "${GL_COND_OBJ_STDIO_READ_FALSE}"; then GL_COND_OBJ_STDIO_READ_TRUE='#' GL_COND_OBJ_STDIO_READ_FALSE='#' fi if test $REPLACE_STDIO_WRITE_FUNCS = 1; then GL_COND_OBJ_STDIO_WRITE_TRUE= GL_COND_OBJ_STDIO_WRITE_FALSE='#' else GL_COND_OBJ_STDIO_WRITE_TRUE='#' GL_COND_OBJ_STDIO_WRITE_FALSE= fi : if test -z "${GL_COND_OBJ_STDIO_WRITE_TRUE}" && test -z "${GL_COND_OBJ_STDIO_WRITE_FALSE}"; then GL_COND_OBJ_STDIO_WRITE_TRUE='#' GL_COND_OBJ_STDIO_WRITE_FALSE='#' fi GL_GNULIB_FSCANF=1 printf "%s\n" "#define GNULIB_TEST_FSCANF 1" >>confdefs.h printf "%s\n" "#define GNULIB_FSCANF 1" >>confdefs.h GL_GNULIB_SCANF=1 printf "%s\n" "#define GNULIB_TEST_SCANF 1" >>confdefs.h printf "%s\n" "#define GNULIB_SCANF 1" >>confdefs.h GL_GNULIB_FGETC=1 printf "%s\n" "#define GNULIB_TEST_FGETC 1" >>confdefs.h GL_GNULIB_GETC=1 printf "%s\n" "#define GNULIB_TEST_GETC 1" >>confdefs.h GL_GNULIB_GETCHAR=1 printf "%s\n" "#define GNULIB_TEST_GETCHAR 1" >>confdefs.h GL_GNULIB_FGETS=1 printf "%s\n" "#define GNULIB_TEST_FGETS 1" >>confdefs.h GL_GNULIB_FREAD=1 printf "%s\n" "#define GNULIB_TEST_FREAD 1" >>confdefs.h GL_GNULIB_FPRINTF=1 printf "%s\n" "#define GNULIB_TEST_FPRINTF 1" >>confdefs.h GL_GNULIB_PRINTF=1 printf "%s\n" "#define GNULIB_TEST_PRINTF 1" >>confdefs.h GL_GNULIB_VFPRINTF=1 printf "%s\n" "#define GNULIB_TEST_VFPRINTF 1" >>confdefs.h GL_GNULIB_VPRINTF=1 printf "%s\n" "#define GNULIB_TEST_VPRINTF 1" >>confdefs.h GL_GNULIB_FPUTC=1 printf "%s\n" "#define GNULIB_TEST_FPUTC 1" >>confdefs.h GL_GNULIB_PUTC=1 printf "%s\n" "#define GNULIB_TEST_PUTC 1" >>confdefs.h GL_GNULIB_PUTCHAR=1 printf "%s\n" "#define GNULIB_TEST_PUTCHAR 1" >>confdefs.h GL_GNULIB_FPUTS=1 printf "%s\n" "#define GNULIB_TEST_FPUTS 1" >>confdefs.h GL_GNULIB_PUTS=1 printf "%s\n" "#define GNULIB_TEST_PUTS 1" >>confdefs.h GL_GNULIB_FWRITE=1 printf "%s\n" "#define GNULIB_TEST_FWRITE 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stpncpy" >&5 printf %s "checking for stpncpy... " >&6; } if test ${gl_cv_onwards_func_stpncpy+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "stpncpy" "ac_cv_have_decl_stpncpy" "#include <string.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_stpncpy" = xyes then : fi if test $ac_cv_have_decl_stpncpy = yes; then ac_fn_c_check_func "$LINENO" "stpncpy" "ac_cv_func_stpncpy" if test "x$ac_cv_func_stpncpy" = xyes then : fi if test $ac_cv_func_stpncpy = yes; then gl_cv_onwards_func_stpncpy=yes else gl_cv_onwards_func_stpncpy='future OS version' fi else gl_cv_onwards_func_stpncpy='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "stpncpy" "ac_cv_func_stpncpy" if test "x$ac_cv_func_stpncpy" = xyes then : fi gl_cv_onwards_func_stpncpy=$ac_cv_func_stpncpy ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_stpncpy" >&5 printf "%s\n" "$gl_cv_onwards_func_stpncpy" >&6; } case "$gl_cv_onwards_func_stpncpy" in future*) ac_cv_func_stpncpy=no ;; *) ac_cv_func_stpncpy=$gl_cv_onwards_func_stpncpy ;; esac if test $ac_cv_func_stpncpy = yes; then printf "%s\n" "#define HAVE_STPNCPY 1" >>confdefs.h fi if test $ac_cv_func_stpncpy = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working stpncpy" >&5 printf %s "checking for working stpncpy... " >&6; } if test ${gl_cv_func_stpncpy+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <features.h> #ifdef __GNU_LIBRARY__ Thanks for using GNU #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Thanks for using GNU" >/dev/null 2>&1 then : gl_cv_func_stpncpy="guessing yes" else $as_nop case "$host_os" in *-musl* | midipix*) gl_cv_func_stpncpy="guessing yes" ;; *) gl_cv_func_stpncpy="$gl_cross_guess_normal" ;; esac fi rm -rf conftest* else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <string.h> /* for strcpy */ /* The stpncpy prototype is missing in <string.h> on AIX 4. */ #if !HAVE_DECL_STPNCPY extern # ifdef __cplusplus "C" # endif char *stpncpy (char *dest, const char *src, size_t n); #endif int main () { int result = 0; const char *src = "Hello"; char dest[10]; /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+1 here. */ { strcpy (dest, "\377\377\377\377\377\377"); if (stpncpy (dest, src, 2) != dest + 2) result |= 1; } /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+4 here. */ { strcpy (dest, "\377\377\377\377\377\377"); if (stpncpy (dest, src, 5) != dest + 5) result |= 2; } /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+6 here. */ { strcpy (dest, "\377\377\377\377\377\377"); if (stpncpy (dest, src, 7) != dest + 5) result |= 4; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_stpncpy=yes else $as_nop gl_cv_func_stpncpy=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stpncpy" >&5 printf "%s\n" "$gl_cv_func_stpncpy" >&6; } case "$gl_cv_func_stpncpy" in *yes) printf "%s\n" "#define HAVE_STPNCPY 1" >>confdefs.h ;; *) REPLACE_STPNCPY=1 ;; esac else HAVE_STPNCPY=0 case "$gl_cv_onwards_func_stpncpy" in future*) REPLACE_STPNCPY=1 ;; esac fi if test $HAVE_STPNCPY = 0 || test $REPLACE_STPNCPY = 1; then GL_COND_OBJ_STPNCPY_TRUE= GL_COND_OBJ_STPNCPY_FALSE='#' else GL_COND_OBJ_STPNCPY_TRUE='#' GL_COND_OBJ_STPNCPY_FALSE= fi : if test -z "${GL_COND_OBJ_STPNCPY_TRUE}" && test -z "${GL_COND_OBJ_STPNCPY_FALSE}"; then GL_COND_OBJ_STPNCPY_TRUE='#' GL_COND_OBJ_STPNCPY_FALSE='#' fi if test -z "$GL_COND_OBJ_STPNCPY_TRUE"; then : : fi GL_GNULIB_STPNCPY=1 printf "%s\n" "#define GNULIB_TEST_STPNCPY 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for strchrnul" >&5 printf %s "checking for strchrnul... " >&6; } if test ${gl_cv_onwards_func_strchrnul+y} then : printf %s "(cached) " >&6 else $as_nop exec 9>&6 6>/dev/null case "$host_os" in linux*-android*) ac_fn_check_decl "$LINENO" "strchrnul" "ac_cv_have_decl_strchrnul" "#include <string.h> " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_strchrnul" = xyes then : fi if test $ac_cv_have_decl_strchrnul = yes; then ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul" if test "x$ac_cv_func_strchrnul" = xyes then : fi if test $ac_cv_func_strchrnul = yes; then gl_cv_onwards_func_strchrnul=yes else gl_cv_onwards_func_strchrnul='future OS version' fi else gl_cv_onwards_func_strchrnul='future OS version' fi ;; *) ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul" if test "x$ac_cv_func_strchrnul" = xyes then : fi gl_cv_onwards_func_strchrnul=$ac_cv_func_strchrnul ;; esac exec 6>&9 9>&- fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_onwards_func_strchrnul" >&5 printf "%s\n" "$gl_cv_onwards_func_strchrnul" >&6; } case "$gl_cv_onwards_func_strchrnul" in future*) ac_cv_func_strchrnul=no ;; *) ac_cv_func_strchrnul=$gl_cv_onwards_func_strchrnul ;; esac if test $ac_cv_func_strchrnul = yes; then printf "%s\n" "#define HAVE_STRCHRNUL 1" >>confdefs.h fi if test $ac_cv_func_strchrnul = no; then HAVE_STRCHRNUL=0 case "$gl_cv_onwards_func_strchrnul" in future*) REPLACE_STRCHRNUL=1 ;; esac else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strchrnul works" >&5 printf %s "checking whether strchrnul works... " >&6; } if test ${gl_cv_func_strchrnul_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __CYGWIN__ #include <cygwin/version.h> #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1 then : gl_cv_func_strchrnul_works="guessing yes" else $as_nop gl_cv_func_strchrnul_works="guessing no" fi rm -rf conftest* else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> /* for strchrnul */ int main (void) { const char *buf = "a"; return strchrnul (buf, 'b') != buf + 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_strchrnul_works=yes else $as_nop gl_cv_func_strchrnul_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strchrnul_works" >&5 printf "%s\n" "$gl_cv_func_strchrnul_works" >&6; } case "$gl_cv_func_strchrnul_works" in *yes) ;; *) REPLACE_STRCHRNUL=1 ;; esac fi if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then GL_COND_OBJ_STRCHRNUL_TRUE= GL_COND_OBJ_STRCHRNUL_FALSE='#' else GL_COND_OBJ_STRCHRNUL_TRUE='#' GL_COND_OBJ_STRCHRNUL_FALSE= fi : if test -z "${GL_COND_OBJ_STRCHRNUL_TRUE}" && test -z "${GL_COND_OBJ_STRCHRNUL_FALSE}"; then GL_COND_OBJ_STRCHRNUL_TRUE='#' GL_COND_OBJ_STRCHRNUL_FALSE='#' fi if test -z "$GL_COND_OBJ_STRCHRNUL_TRUE"; then : : fi GL_GNULIB_STRCHRNUL=1 printf "%s\n" "#define GNULIB_TEST_STRCHRNUL 1" >>confdefs.h if test $gl_cv_func_malloc_posix != yes; then REPLACE_STRDUP=1 fi if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi if test $REPLACE_STRDUP = 1; then GL_COND_OBJ_STRDUP_TRUE= GL_COND_OBJ_STRDUP_FALSE='#' else GL_COND_OBJ_STRDUP_TRUE='#' GL_COND_OBJ_STRDUP_FALSE= fi : if test -z "${GL_COND_OBJ_STRDUP_TRUE}" && test -z "${GL_COND_OBJ_STRDUP_FALSE}"; then GL_COND_OBJ_STRDUP_TRUE='#' GL_COND_OBJ_STRDUP_FALSE='#' fi if test -z "$GL_COND_OBJ_STRDUP_TRUE"; then : : fi GL_GNULIB_STRDUP=1 printf "%s\n" "#define GNULIB_TEST_STRDUP 1" >>confdefs.h if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 printf %s "checking for working strerror function... " >&6; } if test ${gl_cv_func_working_strerror+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; # Guess yes on musl systems. *-musl* | midipix*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> int main (void) { if (!*strerror (-2)) return 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_working_strerror=yes else $as_nop gl_cv_func_working_strerror=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 printf "%s\n" "$gl_cv_func_working_strerror" >&6; } case "$gl_cv_func_working_strerror" in *yes) ;; *) REPLACE_STRERROR=1 ;; esac else REPLACE_STRERROR=1 fi if test $REPLACE_STRERROR = 1; then GL_COND_OBJ_STRERROR_TRUE= GL_COND_OBJ_STRERROR_FALSE='#' else GL_COND_OBJ_STRERROR_TRUE='#' GL_COND_OBJ_STRERROR_FALSE= fi : if test -z "${GL_COND_OBJ_STRERROR_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_FALSE}"; then GL_COND_OBJ_STRERROR_TRUE='#' GL_COND_OBJ_STRERROR_FALSE='#' fi printf "%s\n" "#define GNULIB_STRERROR 1" >>confdefs.h GL_GNULIB_STRERROR=1 printf "%s\n" "#define GNULIB_TEST_STRERROR 1" >>confdefs.h if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then GL_COND_OBJ_STRERROR_OVERRIDE_TRUE= GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#' else GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#' GL_COND_OBJ_STRERROR_OVERRIDE_FALSE= fi : if test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_FALSE}"; then GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#' GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#' fi if test -z "$GL_COND_OBJ_STRERROR_OVERRIDE_TRUE"; then : if test $ac_cv_header_sys_socket_h != yes; then ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes then : printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h fi fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi fi if test $ac_cv_have_decl_strndup = no; then HAVE_DECL_STRNDUP=0 fi if test $ac_cv_func_strndup = yes; then HAVE_STRNDUP=1 # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5 printf %s "checking for working strndup... " >&6; } if test ${gl_cv_func_strndup_works+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : case $host_os in aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";; *) gl_cv_func_strndup_works="guessing yes";; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> #include <stdlib.h> int main (void) { #if !HAVE_DECL_STRNDUP extern #ifdef __cplusplus "C" #endif char *strndup (const char *, size_t); #endif int result; char *s; s = strndup ("some longer string", 15); free (s); s = strndup ("shorter string", 13); result = s[13] != '\0'; free (s); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : gl_cv_func_strndup_works=yes else $as_nop gl_cv_func_strndup_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strndup_works" >&5 printf "%s\n" "$gl_cv_func_strndup_works" >&6; } case $gl_cv_func_strndup_works in *no) REPLACE_STRNDUP=1 ;; esac else HAVE_STRNDUP=0 fi if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then GL_COND_OBJ_STRNDUP_TRUE= GL_COND_OBJ_STRNDUP_FALSE='#' else GL_COND_OBJ_STRNDUP_TRUE='#' GL_COND_OBJ_STRNDUP_FALSE= fi : if test -z "${GL_COND_OBJ_STRNDUP_TRUE}" && test -z "${GL_COND_OBJ_STRNDUP_FALSE}"; then GL_COND_OBJ_STRNDUP_TRUE='#' GL_COND_OBJ_STRNDUP_FALSE='#' fi GL_GNULIB_STRNDUP=1 printf "%s\n" "#define GNULIB_TEST_STRNDUP 1" >>confdefs.h if test $ac_cv_have_decl_strnlen = no; then HAVE_DECL_STRNLEN=0 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5 printf %s "checking for working strnlen... " >&6; } if test ${ac_cv_func_strnlen_working+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : # Guess no on AIX systems, yes otherwise. case "$host_os" in aix*) ac_cv_func_strnlen_working=no;; *) ac_cv_func_strnlen_working=yes;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main (void) { #define S "foobar" #define S_LEN (sizeof S - 1) /* At least one implementation is buggy: that of AIX 4.3 would give strnlen (S, 1) == 3. */ int i; for (i = 0; i < S_LEN + 1; ++i) { int expected = i <= S_LEN ? i : S_LEN; if (strnlen (S, i) != expected) return 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_strnlen_working=yes else $as_nop ac_cv_func_strnlen_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5 printf "%s\n" "$ac_cv_func_strnlen_working" >&6; } test $ac_cv_func_strnlen_working = no && : if test $ac_cv_func_strnlen_working = no; then REPLACE_STRNLEN=1 fi fi if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then GL_COND_OBJ_STRNLEN_TRUE= GL_COND_OBJ_STRNLEN_FALSE='#' else GL_COND_OBJ_STRNLEN_TRUE='#' GL_COND_OBJ_STRNLEN_FALSE= fi : if test -z "${GL_COND_OBJ_STRNLEN_TRUE}" && test -z "${GL_COND_OBJ_STRNLEN_FALSE}"; then GL_COND_OBJ_STRNLEN_TRUE='#' GL_COND_OBJ_STRNLEN_FALSE='#' fi if test -z "$GL_COND_OBJ_STRNLEN_TRUE"; then : : fi GL_GNULIB_STRNLEN=1 printf "%s\n" "#define GNULIB_TEST_STRNLEN 1" >>confdefs.h ac_fn_c_check_func "$LINENO" "strverscmp" "ac_cv_func_strverscmp" if test "x$ac_cv_func_strverscmp" = xyes then : printf "%s\n" "#define HAVE_STRVERSCMP 1" >>confdefs.h fi if test $ac_cv_func_strverscmp = no; then HAVE_STRVERSCMP=0 fi if test $HAVE_STRVERSCMP = 0; then GL_COND_OBJ_STRVERSCMP_TRUE= GL_COND_OBJ_STRVERSCMP_FALSE='#' else GL_COND_OBJ_STRVERSCMP_TRUE='#' GL_COND_OBJ_STRVERSCMP_FALSE= fi : if test -z "${GL_COND_OBJ_STRVERSCMP_TRUE}" && test -z "${GL_COND_OBJ_STRVERSCMP_FALSE}"; then GL_COND_OBJ_STRVERSCMP_TRUE='#' GL_COND_OBJ_STRVERSCMP_FALSE='#' fi if test -z "$GL_COND_OBJ_STRVERSCMP_TRUE"; then : : fi GL_GNULIB_STRVERSCMP=1 printf "%s\n" "#define GNULIB_TEST_STRVERSCMP 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variable-length arrays" >&5 printf %s "checking for variable-length arrays... " >&6; } if test ${ac_cv_c_vararrays+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC_NO_VLA__ defined #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "defined" >/dev/null 2>&1 then : ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined' else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test for VLA support. This test is partly inspired from examples in the C standard. Use at least two VLA functions to detect the GCC 3.4.3 bug described in: https://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html */ #ifdef __STDC_NO_VLA__ syntax error; #else extern int n; int B[100]; int fvla (int m, int C[m][m]); int simple (int count, int all[static count]) { return all[count - 1]; } int fvla (int m, int C[m][m]) { typedef int VLA[m][m]; VLA x; int D[m]; static int (*q)[m] = &B; int (*s)[n] = q; return C && &x[0][0] == &D[0] && &D[0] == s[0]; } #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_vararrays=yes else $as_nop ac_cv_c_vararrays=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_vararrays" >&5 printf "%s\n" "$ac_cv_c_vararrays" >&6; } if test "$ac_cv_c_vararrays" = yes; then printf "%s\n" "#define HAVE_C_VARARRAYS 1" >>confdefs.h elif test "$ac_cv_c_vararrays" = no; then printf "%s\n" "#define __STDC_NO_VLA__ 1" >>confdefs.h fi # Check whether --with-packager was given. if test ${with_packager+y} then : withval=$with_packager; case $withval in yes|no) ;; *) printf "%s\n" "#define PACKAGE_PACKAGER \"$withval\"" >>confdefs.h ;; esac fi # Check whether --with-packager-version was given. if test ${with_packager_version+y} then : withval=$with_packager_version; case $withval in yes|no) ;; *) printf "%s\n" "#define PACKAGE_PACKAGER_VERSION \"$withval\"" >>confdefs.h ;; esac fi # Check whether --with-packager-bug-reports was given. if test ${with_packager_bug_reports+y} then : withval=$with_packager_bug_reports; case $withval in yes|no) ;; *) printf "%s\n" "#define PACKAGE_PACKAGER_BUG_REPORTS \"$withval\"" >>confdefs.h ;; esac fi if test "X$with_packager" = "X" && \ test "X$with_packager_version$with_packager_bug_reports" != "X" then as_fn_error $? "The --with-packager-{bug-reports,version} options require --with-packager" "$LINENO" 5 fi : printf "%s\n" "#define GNULIB_XALLOC 1" >>confdefs.h printf "%s\n" "#define GNULIB_XALLOC_DIE 1" >>confdefs.h : : # End of code from modules gltests_libdeps= gltests_ltlibdeps= gl_source_base='tests' gl_source_base_prefix= gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$gltests_WITNESS ## ------------------------------ ## ## checks for library functions. ## ## ------------------------------ ## # libgc (BDW garbage collector) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PKG_CONFIG+y} then : printf %s "(cached) " >&6 else $as_nop case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 printf "%s\n" "$PKG_CONFIG" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} then : printf %s "(cached) " >&6 else $as_nop case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bdw-gc >= 7.2" >&5 printf %s "checking for bdw-gc >= 7.2... " >&6; } if test -n "$BDW_GC_CFLAGS"; then pkg_cv_BDW_GC_CFLAGS="$BDW_GC_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bdw-gc >= 7.2\""; } >&5 ($PKG_CONFIG --exists --print-errors "bdw-gc >= 7.2") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_BDW_GC_CFLAGS=`$PKG_CONFIG --cflags "bdw-gc >= 7.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$BDW_GC_LIBS"; then pkg_cv_BDW_GC_LIBS="$BDW_GC_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bdw-gc >= 7.2\""; } >&5 ($PKG_CONFIG --exists --print-errors "bdw-gc >= 7.2") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_BDW_GC_LIBS=`$PKG_CONFIG --libs "bdw-gc >= 7.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then BDW_GC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "bdw-gc >= 7.2" 2>&1` else BDW_GC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "bdw-gc >= 7.2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$BDW_GC_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (bdw-gc >= 7.2) were not met: $BDW_GC_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables BDW_GC_CFLAGS and BDW_GC_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables BDW_GC_CFLAGS and BDW_GC_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://pkg-config.freedesktop.org/>. See \`config.log' for more details" "$LINENO" 5; } else BDW_GC_CFLAGS=$pkg_cv_BDW_GC_CFLAGS BDW_GC_LIBS=$pkg_cv_BDW_GC_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for systempapername in -lpaper" >&5 printf %s "checking for systempapername in -lpaper... " >&6; } if test ${ac_cv_lib_paper_systempapername+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lpaper $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char systempapername (); int main (void) { return systempapername (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_paper_systempapername=yes else $as_nop ac_cv_lib_paper_systempapername=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_paper_systempapername" >&5 printf "%s\n" "$ac_cv_lib_paper_systempapername" >&6; } if test "x$ac_cv_lib_paper_systempapername" = xyes then : printf "%s\n" "#define HAVE_SYSTEMPAPERNAME 1" >>confdefs.h LIBS="$LIBS -lpaper" ac_fn_c_check_header_compile "$LINENO" "paper.h" "ac_cv_header_paper_h" "$ac_includes_default" if test "x$ac_cv_header_paper_h" = xyes then : printf "%s\n" "#define HAVE_PAPER_H 1" >>confdefs.h fi fi if test "$ac_cv_lib_paper_systempapername" = "no" then : as_fn_error $? "a2ps needs libpaper to work" "$LINENO" 5 fi # Internationalization. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 printf %s "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test ${enable_nls+y} then : enableval=$enable_nls; USE_NLS=$enableval else $as_nop USE_NLS=yes fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 printf "%s\n" "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.20 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_MSGFMT+y} then : printf %s "(cached) " >&6 else $as_nop case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 printf "%s\n" "$MSGFMT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_GMSGFMT+y} then : printf %s "(cached) " >&6 else $as_nop case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 printf "%s\n" "$GMSGFMT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_XGETTEXT+y} then : printf %s "(cached) " >&6 else $as_nop case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 printf "%s\n" "$XGETTEXT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_MSGMERGE+y} then : printf %s "(cached) " >&6 else $as_nop case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 printf "%s\n" "$MSGMERGE" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' else if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' else MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' fi fi test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test ${with_gnu_ld+y} then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else $as_nop with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi if test -n "$LD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 printf %s "checking for ld... " >&6; } elif test "$GCC" = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 printf %s "checking for ld used by $CC... " >&6; } elif test "$with_gnu_ld" = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 printf %s "checking for GNU ld... " >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 printf %s "checking for non-GNU ld... " >&6; } fi if test -n "$LD"; then # Let the user override the test with a path. : else if test ${acl_cv_path_LD+y} then : printf %s "(cached) " >&6 else $as_nop acl_cv_path_LD= # Final result of this test ac_prog=ld # Program to search in $PATH if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) acl_output=`($CC -print-prog-name=ld) 2>&5` ;; esac case $acl_output in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` done # Got the pathname. No search in PATH is needed. acl_cv_path_LD="$acl_output" ac_prog= ;; "") # If it fails, then pretend we aren't using GCC. ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac fi if test -n "$ac_prog"; then # Search for $ac_prog in $PATH. acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$acl_save_ifs" fi case $host in *-*-aix*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : # The compiler produces 64-bit code. Add option '-b64' so that the # linker groks 64-bit object files. case "$acl_cv_path_LD " in *" -b64 "*) ;; *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; sparc64-*-netbsd*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop # The compiler produces 32-bit code. Add option '-m elf32_sparc' # so that the linker groks 32-bit object files. case "$acl_cv_path_LD " in *" -m elf32_sparc "*) ;; *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi LD="$acl_cv_path_LD" fi if test -n "$LD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 printf "%s\n" "$LD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 printf %s "checking if the linker ($LD) is GNU ld... " >&6; } if test ${acl_cv_prog_gnu_ld+y} then : printf %s "(cached) " >&6 else $as_nop # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) acl_cv_prog_gnu_ld=yes ;; *) acl_cv_prog_gnu_ld=no ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5 printf "%s\n" "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 printf %s "checking for shared library run path origin... " >&6; } if test ${acl_cv_rpath+y} then : printf %s "(cached) " >&6 else $as_nop CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 printf "%s\n" "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test ${enable_rpath+y} then : enableval=$enable_rpath; : else $as_nop enable_rpath=yes fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 printf %s "checking 32-bit host C ABI... " >&6; } if test ${gl_cv_host_cpu_c_abi_32bit+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$gl_cv_host_cpu_c_abi"; then case "$gl_cv_host_cpu_c_abi" in i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) gl_cv_host_cpu_c_abi_32bit=yes ;; x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 ) gl_cv_host_cpu_c_abi_32bit=no ;; *) gl_cv_host_cpu_c_abi_32bit=unknown ;; esac else case "$host_cpu" in # CPUs that only support a 32-bit ABI. arc \ | bfin \ | cris* \ | csky \ | epiphany \ | ft32 \ | h8300 \ | m68k \ | microblaze | microblazeel \ | nds32 | nds32le | nds32be \ | nios2 | nios2eb | nios2el \ | or1k* \ | or32 \ | sh | sh1234 | sh1234elb \ | tic6x \ | xtensa* ) gl_cv_host_cpu_c_abi_32bit=yes ;; # CPUs that only support a 64-bit ABI. alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \ | mmix ) gl_cv_host_cpu_c_abi_32bit=no ;; i[34567]86 ) gl_cv_host_cpu_c_abi_32bit=yes ;; x86_64 ) # On x86_64 systems, the C compiler may be generating code in one of # these ABIs: # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 # with native Windows (mingw, MSVC). # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if (defined __x86_64__ || defined __amd64__ \ || defined _M_X64 || defined _M_AMD64) \ && !(defined __ILP32__ || defined _ILP32) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=no else $as_nop gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; arm* | aarch64 ) # Assume arm with EABI. # On arm64 systems, the C compiler may be generating code in one of # these ABIs: # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=no else $as_nop gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) # On hppa, the C compiler may be generating 32-bit code or 64-bit # code. In the latter case, it defines _LP64 and __LP64__. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=no else $as_nop gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; ia64* ) # On ia64 on HP-UX, the C compiler may be generating 64-bit code or # 32-bit code. In the latter case, it defines _ILP32. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _ILP32 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=yes else $as_nop gl_cv_host_cpu_c_abi_32bit=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; mips* ) # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this # at 32. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=no else $as_nop gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; powerpc* ) # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. # No need to distinguish them here; the caller may distinguish # them based on the OS. # On powerpc64 systems, the C compiler may still be generating # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may # be generating 64-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=no else $as_nop gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; rs6000 ) gl_cv_host_cpu_c_abi_32bit=yes ;; riscv32 | riscv64 ) # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. # Size of 'long' and 'void *': cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=no else $as_nop gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __s390x__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=no else $as_nop gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; sparc | sparc64 ) # UltraSPARCs running Linux have `uname -m` = "sparc64", but the # C compiler still generates 32-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : gl_cv_host_cpu_c_abi_32bit=no else $as_nop gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; *) gl_cv_host_cpu_c_abi_32bit=unknown ;; esac fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; } HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5 printf %s "checking for ELF binary format... " >&6; } if test ${gl_cv_elf+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __ELF__ || (defined __linux__ && defined __EDG__) Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1 then : gl_cv_elf=yes else $as_nop gl_cv_elf=no fi rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5 printf "%s\n" "$gl_cv_elf" >&6; } if test $gl_cv_elf = yes; then # Extract the ELF class of a file (5th byte) in decimal. # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header if od -A x < /dev/null >/dev/null 2>/dev/null; then # Use POSIX od. func_elfclass () { od -A n -t d1 -j 4 -N 1 } else # Use BSD hexdump. func_elfclass () { dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' echo } fi # Use 'expr', not 'test', to compare the values of func_elfclass, because on # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, # not 1 or 2. case $HOST_CPU_C_ABI_32BIT in yes) # 32-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null } ;; no) # 64-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null } ;; *) # Unknown. acl_is_expected_elfclass () { : } ;; esac else acl_is_expected_elfclass () { : } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 printf %s "checking for the common suffixes of directories in the library search path... " >&6; } if test ${acl_cv_libdirstems+y} then : printf %s "(cached) " >&6 else $as_nop acl_libdirstem=lib acl_libdirstem2= acl_libdirstem3= case "$host_os" in solaris*) if test $HOST_CPU_C_ABI_32BIT = no; then acl_libdirstem2=lib/64 case "$host_cpu" in sparc*) acl_libdirstem3=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test $HOST_CPU_C_ABI_32BIT != no; then # 32-bit or unknown ABI. if test -d /usr/lib32; then acl_libdirstem2=lib32 fi fi if test $HOST_CPU_C_ABI_32BIT != yes; then # 64-bit or unknown ABI. if test -d /usr/lib64; then acl_libdirstem3=lib64 fi fi if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib32 ) acl_libdirstem2=lib32 ;; */lib64 ) acl_libdirstem3=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" if test $HOST_CPU_C_ABI_32BIT = yes; then # 32-bit ABI. acl_libdirstem3= fi if test $HOST_CPU_C_ABI_32BIT = no; then # 64-bit ABI. acl_libdirstem2= fi fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 printf "%s\n" "$acl_cv_libdirstems" >&6; } acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test ${with_libiconv_prefix+y} then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" additional_libdir2="$withval/$acl_libdirstem2" additional_libdir3="$withval/$acl_libdirstem3" fi fi fi if test "X$additional_libdir2" = "X$additional_libdir"; then additional_libdir2= fi if test "X$additional_libdir3" = "X$additional_libdir"; then additional_libdir3= fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do if test "X$found_dir" = "X"; then eval dir=\$$additional_libdir_variable if test -n "$dir"; then if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi fi done fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem3 | */$acl_libdirstem3/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then haveit= if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dep=`echo "X$dep" | sed -e 's/^X-l//'` if test "X$dep" != Xc \ || case $host_os in linux* | gnu* | k*bsd*-gnu) false ;; *) true ;; esac; then names_next_round="$names_next_round $dep" fi ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 printf %s "checking for CFPreferencesCopyAppValue... " >&6; } if test ${gt_cv_func_CFPreferencesCopyAppValue+y} then : printf %s "(cached) " >&6 else $as_nop gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <CoreFoundation/CFPreferences.h> int main (void) { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gt_cv_func_CFPreferencesCopyAppValue=yes else $as_nop gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then printf "%s\n" "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5 printf %s "checking for CFLocaleCopyPreferredLanguages... " >&6; } if test ${gt_cv_func_CFLocaleCopyPreferredLanguages+y} then : printf %s "(cached) " >&6 else $as_nop gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <CoreFoundation/CFLocale.h> int main (void) { CFLocaleCopyPreferredLanguages(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : gt_cv_func_CFLocaleCopyPreferredLanguages=yes else $as_nop gt_cv_func_CFLocaleCopyPreferredLanguages=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyPreferredLanguages" >&5 printf "%s\n" "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; } if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then printf "%s\n" "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 printf %s "checking for GNU gettext in libc... " >&6; } if eval test \${$gt_func_gnugettext_libc+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <libintl.h> #ifndef __GNU_GETTEXT_SUPPORTED_REVISION extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) #else #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 #endif $gt_revision_test_code int main (void) { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$gt_func_gnugettext_libc=yes" else $as_nop eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 printf %s "checking for iconv... " >&6; } if test ${am_cv_func_iconv+y} then : printf %s "(cached) " >&6 else $as_nop am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <iconv.h> int main (void) { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <iconv.h> int main (void) { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 printf "%s\n" "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 printf %s "checking for working iconv... " >&6; } if test ${am_cv_func_iconv_works+y} then : printf %s "(cached) " >&6 else $as_nop am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do if test "$cross_compiling" = yes then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <iconv.h> #include <string.h> #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif int main (void) { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ { /* Try standardized names. */ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); /* Try IRIX, OSF/1 names. */ iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); /* Try AIX names. */ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); /* Try HP-UX names. */ iconv_t cd4 = iconv_open ("utf8", "eucJP"); if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) result |= 16; if (cd1 != (iconv_t)(-1)) iconv_close (cd1); if (cd2 != (iconv_t)(-1)) iconv_close (cd2); if (cd3 != (iconv_t)(-1)) iconv_close (cd3); if (cd4 != (iconv_t)(-1)) iconv_close (cd4); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : am_cv_func_iconv_works=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi test "$am_cv_func_iconv_works" = no || break done LIBS="$am_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 printf "%s\n" "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 printf %s "checking how to link with libiconv... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 printf "%s\n" "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test ${with_libintl_prefix+y} then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" additional_libdir2="$withval/$acl_libdirstem2" additional_libdir3="$withval/$acl_libdirstem3" fi fi fi if test "X$additional_libdir2" = "X$additional_libdir"; then additional_libdir2= fi if test "X$additional_libdir3" = "X$additional_libdir"; then additional_libdir3= fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do if test "X$found_dir" = "X"; then eval dir=\$$additional_libdir_variable if test -n "$dir"; then if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi fi done fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem3 | */$acl_libdirstem3/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then haveit= if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dep=`echo "X$dep" | sed -e 's/^X-l//'` if test "X$dep" != Xc \ || case $host_os in linux* | gnu* | k*bsd*-gnu) false ;; *) true ;; esac; then names_next_round="$names_next_round $dep" fi ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 printf %s "checking for GNU gettext in libintl... " >&6; } if eval test \${$gt_func_gnugettext_libintl+y} then : printf %s "(cached) " >&6 else $as_nop gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <libintl.h> #ifndef __GNU_GETTEXT_SUPPORTED_REVISION extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) #else #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 #endif $gt_revision_test_code int main (void) { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$gt_func_gnugettext_libintl=yes" else $as_nop eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <libintl.h> #ifndef __GNU_GETTEXT_SUPPORTED_REVISION extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) #else #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 #endif $gt_revision_test_code int main (void) { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 printf %s "checking whether to use NLS... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 printf "%s\n" "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 printf %s "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 printf "%s\n" "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 printf %s "checking how to link with libintl... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 printf "%s\n" "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi printf "%s\n" "#define HAVE_GETTEXT 1" >>confdefs.h printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" # In path separator character. printf "%s\n" "#define DIRECTORY_SEPARATOR '/'" >>confdefs.h # Between paths separator character. printf "%s\n" "#define PATH_SEPARATOR ':'" >>confdefs.h # We define SYNTAX_TABLE so that regex uses syntax tables printf "%s\n" "#define SYNTAX_TABLE 1" >>confdefs.h ## ---------------------------- ## ## Various extentions/options. ## ## ---------------------------- ## # Where to put the emacs files # If set to t, that means we are running in a shell under Emacs. # If you have an Emacs named "t", then use the full path. test x"$EMACS" = xt && EMACS= for ac_prog in emacs xemacs do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_EMACS+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$EMACS"; then ac_cv_prog_EMACS="$EMACS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_EMACS="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi EMACS=$ac_cv_prog_EMACS if test -n "$EMACS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EMACS" >&5 printf "%s\n" "$EMACS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$EMACS" && break done test -n "$EMACS" || EMACS="no" # Check whether --with-lispdir was given. if test ${with_lispdir+y} then : withval=$with_lispdir; lispdir="$withval" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 printf %s "checking where .elc files should go... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lispdir" >&5 printf "%s\n" "$lispdir" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 printf %s "checking where .elc files should go... " >&6; } if test ${am_cv_lispdir+y} then : printf %s "(cached) " >&6 else $as_nop if test $EMACS != "no"; then if test x${lispdir+set} != xset; then # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly # Some emacsen will start up in interactive mode, requiring C-x C-c to exit, # which is non-obvious for non-emacs users. # Redirecting /dev/null should help a bit; pity we can't detect "broken" # emacsen earlier and avoid running this altogether. { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' </dev/null >conftest.out"; } >&5 ($EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } am_cv_lispdir=`sed -n \ -e 's,/$,,' \ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \ -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \ conftest.out` rm conftest.out fi fi test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_lispdir" >&5 printf "%s\n" "$am_cv_lispdir" >&6; } lispdir="$am_cv_lispdir" fi # Shall the path to the tools be hardcoded? { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether paths should be hardcoded" >&5 printf %s "checking whether paths should be hardcoded... " >&6; } # Check whether --enable-paths was given. if test ${enable_paths+y} then : enableval=$enable_paths; fi test "$enable_paths" = "yes" || enable_paths=no { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_paths" >&5 printf "%s\n" "$enable_paths" >&6; } # What should get installed? # Check whether --enable-extensions was given. if test ${enable_extensions+y} then : enableval=$enable_extensions; case "${enableval}" in yes|no) ;; *) as_fn_error $? "bad value ${enableval} for --disable-extensions" "$LINENO" 5 ;; esac else $as_nop enable_extensions=yes fi if test x$enable_extensions = xyes; then EXTENSIONS_TRUE= EXTENSIONS_FALSE='#' else EXTENSIONS_TRUE='#' EXTENSIONS_FALSE= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PostScript fonts path" >&5 printf %s "checking for PostScript fonts path... " >&6; } # Try to find some PostScript fonts. # Find out if ghostscript is installed ac_psfont_path= for ac_dir in /usr/local/ghostscript/fonts \ /usr/local/share/ghostscript/fonts; do if test "cd $ac_dir 2>/dev/null && echo *.afm"; then ac_psfont_path="$ac_psfont_path:$ac_dir"; fi done if test -n "$ac_psfont_path"; then PSFONT_PATH=`echo "$ac_psfont_path" | sed -e 's/^://'` fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_psfont_path" >&5 printf "%s\n" "$ac_psfont_path" >&6; } ## ---------------------------------------------------------- ## ## Write a first sketch of a2ps.cfg. The user should check. ## ## ---------------------------------------------------------- ## # # Check for a file program that follows symlinks # # Extract the first word of "file", so it can be a program name with args. set dummy file; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_file_prog+y} then : printf %s "(cached) " >&6 else $as_nop case $file_prog in [\\/]* | ?:[\\/]*) ac_cv_path_file_prog="$file_prog" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_file_prog="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi file_prog=$ac_cv_path_file_prog if test -n "$file_prog"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $file_prog" >&5 printf "%s\n" "$file_prog" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the option for file to follow the links" >&5 printf %s "checking for the option for file to follow the links... " >&6; } if test ${ac_cv_prog_file_link_option+y} then : printf %s "(cached) " >&6 else $as_nop touch conftestfile ln -s conftestfile conftestfile1 for file_opt in '' ' -L' do res=`eval $file_prog $file_opt conftestfile1 2>&-` || res=symbolic case $res in *symbolic*) ;; *) ac_cv_prog_file_link_option=$file_opt ; break ;; esac done rm -f conftestfile conftestfile1 if test "X$ac_cv_prog_file_link_option" = X; then ac_cv_prog_file_link_option="no"; fi fi # If no flag were found, default to `file' with no options case "X$ac_cv_prog_file_link_option" in X) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none required" >&5 printf "%s\n" "none required" >&6; } ; FILE_LINK=${file_prog} ;; Xno) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no way" >&5 printf "%s\n" "no way" >&6; }; FILE_LINK=${file_prog} ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_file_link_option" >&5 printf "%s\n" "$ac_cv_prog_file_link_option" >&6; }; FILE_LINK=${file_prog}${ac_cv_prog_file_link_option} ;; esac # # default encoding to use (defaulted to latin1) # # Check whether --with-encoding was given. if test ${with_encoding+y} then : withval=$with_encoding; ENCODING=$with_encoding else $as_nop ENCODING=latin1 fi ######################## # Nice special printers ######################## # Look for GV or Ghostview if test "$enable_paths" = "no"; then # Extract the first word of "gv", so it can be a program name with args. set dummy gv; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_gv+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_gv"; then ac_cv_prog_COM_gv="$COM_gv" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_gv="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_gv" && ac_cv_prog_COM_gv="no" fi fi COM_gv=$ac_cv_prog_COM_gv if test -n "$COM_gv"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_gv" >&5 printf "%s\n" "$COM_gv" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi gv="gv"; if test "$COM_gv" = "yes"; then COM_gv=""; else COM_gv="#"; fi else # Extract the first word of "gv", so it can be a program name with args. set dummy gv; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_gv+y} then : printf %s "(cached) " >&6 else $as_nop case $gv in [\\/]* | ?:[\\/]*) ac_cv_path_gv="$gv" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_gv="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_gv" && ac_cv_path_gv="#" ;; esac fi gv=$ac_cv_path_gv if test -n "$gv"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gv" >&5 printf "%s\n" "$gv" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "gv" = "#"; then # not found gv="gv" # let the name of the program as path COM_gv="#" else COM_gv="" fi fi if test "$enable_paths" = "no"; then # Extract the first word of "ghostview", so it can be a program name with args. set dummy ghostview; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_ghostview+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_ghostview"; then ac_cv_prog_COM_ghostview="$COM_ghostview" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_ghostview="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_ghostview" && ac_cv_prog_COM_ghostview="no" fi fi COM_ghostview=$ac_cv_prog_COM_ghostview if test -n "$COM_ghostview"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_ghostview" >&5 printf "%s\n" "$COM_ghostview" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ghostview="ghostview"; if test "$COM_ghostview" = "yes"; then COM_ghostview=""; else COM_ghostview="#"; fi else # Extract the first word of "ghostview", so it can be a program name with args. set dummy ghostview; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_ghostview+y} then : printf %s "(cached) " >&6 else $as_nop case $ghostview in [\\/]* | ?:[\\/]*) ac_cv_path_ghostview="$ghostview" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_ghostview="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_ghostview" && ac_cv_path_ghostview="#" ;; esac fi ghostview=$ac_cv_path_ghostview if test -n "$ghostview"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ghostview" >&5 printf "%s\n" "$ghostview" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "ghostview" = "#"; then # not found ghostview="ghostview" # let the name of the program as path COM_ghostview="#" else COM_ghostview="" fi fi if test "$COM_gv$COM_ghostview" = "##"; then COM_DISPLAY="#" fi ################################# # Helping people with delegations ################################# # "Compressed" delegation if test "$enable_paths" = "no"; then # Extract the first word of "gzip", so it can be a program name with args. set dummy gzip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_gzip+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_gzip"; then ac_cv_prog_COM_gzip="$COM_gzip" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_gzip="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_gzip" && ac_cv_prog_COM_gzip="no" fi fi COM_gzip=$ac_cv_prog_COM_gzip if test -n "$COM_gzip"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_gzip" >&5 printf "%s\n" "$COM_gzip" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi gzip="gzip"; if test "$COM_gzip" = "yes"; then COM_gzip=""; else COM_gzip="#"; fi else # Extract the first word of "gzip", so it can be a program name with args. set dummy gzip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_gzip+y} then : printf %s "(cached) " >&6 else $as_nop case $gzip in [\\/]* | ?:[\\/]*) ac_cv_path_gzip="$gzip" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_gzip="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_gzip" && ac_cv_path_gzip="#" ;; esac fi gzip=$ac_cv_path_gzip if test -n "$gzip"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gzip" >&5 printf "%s\n" "$gzip" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "gzip" = "#"; then # not found gzip="gzip" # let the name of the program as path COM_gzip="#" else COM_gzip="" fi fi if test "$COM_gzip" = "#"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ============================================================ a2ps works better with gzip. Consider fetching gzip at any ftp site proposing GNU programs" >&5 printf "%s\n" "$as_me: WARNING: ============================================================ a2ps works better with gzip. Consider fetching gzip at any ftp site proposing GNU programs" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ============================================================" >&5 printf "%s\n" "$as_me: WARNING: ============================================================" >&2;} fi if test "$enable_paths" = "no"; then # Extract the first word of "bzip", so it can be a program name with args. set dummy bzip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_bzip+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_bzip"; then ac_cv_prog_COM_bzip="$COM_bzip" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_bzip="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_bzip" && ac_cv_prog_COM_bzip="no" fi fi COM_bzip=$ac_cv_prog_COM_bzip if test -n "$COM_bzip"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_bzip" >&5 printf "%s\n" "$COM_bzip" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi bzip="bzip"; if test "$COM_bzip" = "yes"; then COM_bzip=""; else COM_bzip="#"; fi else # Extract the first word of "bzip", so it can be a program name with args. set dummy bzip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_bzip+y} then : printf %s "(cached) " >&6 else $as_nop case $bzip in [\\/]* | ?:[\\/]*) ac_cv_path_bzip="$bzip" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_bzip="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_bzip" && ac_cv_path_bzip="#" ;; esac fi bzip=$ac_cv_path_bzip if test -n "$bzip"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bzip" >&5 printf "%s\n" "$bzip" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "bzip" = "#"; then # not found bzip="bzip" # let the name of the program as path COM_bzip="#" else COM_bzip="" fi fi if test "$enable_paths" = "no"; then # Extract the first word of "bzip2", so it can be a program name with args. set dummy bzip2; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_bzip2+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_bzip2"; then ac_cv_prog_COM_bzip2="$COM_bzip2" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_bzip2="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_bzip2" && ac_cv_prog_COM_bzip2="no" fi fi COM_bzip2=$ac_cv_prog_COM_bzip2 if test -n "$COM_bzip2"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_bzip2" >&5 printf "%s\n" "$COM_bzip2" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi bzip2="bzip2"; if test "$COM_bzip2" = "yes"; then COM_bzip2=""; else COM_bzip2="#"; fi else # Extract the first word of "bzip2", so it can be a program name with args. set dummy bzip2; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_bzip2+y} then : printf %s "(cached) " >&6 else $as_nop case $bzip2 in [\\/]* | ?:[\\/]*) ac_cv_path_bzip2="$bzip2" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_bzip2="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_bzip2" && ac_cv_path_bzip2="#" ;; esac fi bzip2=$ac_cv_path_bzip2 if test -n "$bzip2"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bzip2" >&5 printf "%s\n" "$bzip2" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "bzip2" = "#"; then # not found bzip2="bzip2" # let the name of the program as path COM_bzip2="#" else COM_bzip2="" fi fi # DVI delegation if test "$enable_paths" = "no"; then # Extract the first word of "dvips", so it can be a program name with args. set dummy dvips; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_dvips+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_dvips"; then ac_cv_prog_COM_dvips="$COM_dvips" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_dvips="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_dvips" && ac_cv_prog_COM_dvips="no" fi fi COM_dvips=$ac_cv_prog_COM_dvips if test -n "$COM_dvips"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_dvips" >&5 printf "%s\n" "$COM_dvips" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi dvips="dvips"; if test "$COM_dvips" = "yes"; then COM_dvips=""; else COM_dvips="#"; fi else # Extract the first word of "dvips", so it can be a program name with args. set dummy dvips; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_dvips+y} then : printf %s "(cached) " >&6 else $as_nop case $dvips in [\\/]* | ?:[\\/]*) ac_cv_path_dvips="$dvips" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_dvips="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_dvips" && ac_cv_path_dvips="#" ;; esac fi dvips=$ac_cv_path_dvips if test -n "$dvips"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dvips" >&5 printf "%s\n" "$dvips" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "dvips" = "#"; then # not found dvips="dvips" # let the name of the program as path COM_dvips="#" else COM_dvips="" fi fi # ImageMagick for most image formats if test "$enable_paths" = "no"; then # Extract the first word of "convert", so it can be a program name with args. set dummy convert; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_convert+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_convert"; then ac_cv_prog_COM_convert="$COM_convert" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_convert="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_convert" && ac_cv_prog_COM_convert="no" fi fi COM_convert=$ac_cv_prog_COM_convert if test -n "$COM_convert"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_convert" >&5 printf "%s\n" "$COM_convert" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi convert="convert"; if test "$COM_convert" = "yes"; then COM_convert=""; else COM_convert="#"; fi else # Extract the first word of "convert", so it can be a program name with args. set dummy convert; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_convert+y} then : printf %s "(cached) " >&6 else $as_nop case $convert in [\\/]* | ?:[\\/]*) ac_cv_path_convert="$convert" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_convert="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_convert" && ac_cv_path_convert="#" ;; esac fi convert=$ac_cv_path_convert if test -n "$convert"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $convert" >&5 printf "%s\n" "$convert" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "convert" = "#"; then # not found convert="convert" # let the name of the program as path COM_convert="#" else COM_convert="" fi fi # HTML delegation if test "$enable_paths" = "no"; then # Extract the first word of "html2ps", so it can be a program name with args. set dummy html2ps; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_html2ps+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_html2ps"; then ac_cv_prog_COM_html2ps="$COM_html2ps" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_html2ps="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_html2ps" && ac_cv_prog_COM_html2ps="no" fi fi COM_html2ps=$ac_cv_prog_COM_html2ps if test -n "$COM_html2ps"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_html2ps" >&5 printf "%s\n" "$COM_html2ps" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi html2ps="html2ps"; if test "$COM_html2ps" = "yes"; then COM_html2ps=""; else COM_html2ps="#"; fi else # Extract the first word of "html2ps", so it can be a program name with args. set dummy html2ps; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_html2ps+y} then : printf %s "(cached) " >&6 else $as_nop case $html2ps in [\\/]* | ?:[\\/]*) ac_cv_path_html2ps="$html2ps" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_html2ps="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_html2ps" && ac_cv_path_html2ps="#" ;; esac fi html2ps=$ac_cv_path_html2ps if test -n "$html2ps"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $html2ps" >&5 printf "%s\n" "$html2ps" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "html2ps" = "#"; then # not found html2ps="html2ps" # let the name of the program as path COM_html2ps="#" else COM_html2ps="" fi fi # PDF delegation if test "$enable_paths" = "no"; then # Extract the first word of "pdf2ps", so it can be a program name with args. set dummy pdf2ps; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_pdf2ps+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_pdf2ps"; then ac_cv_prog_COM_pdf2ps="$COM_pdf2ps" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_pdf2ps="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_pdf2ps" && ac_cv_prog_COM_pdf2ps="no" fi fi COM_pdf2ps=$ac_cv_prog_COM_pdf2ps if test -n "$COM_pdf2ps"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_pdf2ps" >&5 printf "%s\n" "$COM_pdf2ps" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi pdf2ps="pdf2ps"; if test "$COM_pdf2ps" = "yes"; then COM_pdf2ps=""; else COM_pdf2ps="#"; fi else # Extract the first word of "pdf2ps", so it can be a program name with args. set dummy pdf2ps; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_pdf2ps+y} then : printf %s "(cached) " >&6 else $as_nop case $pdf2ps in [\\/]* | ?:[\\/]*) ac_cv_path_pdf2ps="$pdf2ps" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_pdf2ps="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_pdf2ps" && ac_cv_path_pdf2ps="#" ;; esac fi pdf2ps=$ac_cv_path_pdf2ps if test -n "$pdf2ps"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdf2ps" >&5 printf "%s\n" "$pdf2ps" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "pdf2ps" = "#"; then # not found pdf2ps="pdf2ps" # let the name of the program as path COM_pdf2ps="#" else COM_pdf2ps="" fi fi # Outputting PDF if test "$enable_paths" = "no"; then # Extract the first word of "ps2pdf", so it can be a program name with args. set dummy ps2pdf; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_ps2pdf+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_ps2pdf"; then ac_cv_prog_COM_ps2pdf="$COM_ps2pdf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_ps2pdf="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_ps2pdf" && ac_cv_prog_COM_ps2pdf="no" fi fi COM_ps2pdf=$ac_cv_prog_COM_ps2pdf if test -n "$COM_ps2pdf"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_ps2pdf" >&5 printf "%s\n" "$COM_ps2pdf" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ps2pdf="ps2pdf"; if test "$COM_ps2pdf" = "yes"; then COM_ps2pdf=""; else COM_ps2pdf="#"; fi else # Extract the first word of "ps2pdf", so it can be a program name with args. set dummy ps2pdf; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_ps2pdf+y} then : printf %s "(cached) " >&6 else $as_nop case $ps2pdf in [\\/]* | ?:[\\/]*) ac_cv_path_ps2pdf="$ps2pdf" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_ps2pdf="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_ps2pdf" && ac_cv_path_ps2pdf="#" ;; esac fi ps2pdf=$ac_cv_path_ps2pdf if test -n "$ps2pdf"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ps2pdf" >&5 printf "%s\n" "$ps2pdf" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "ps2pdf" = "#"; then # not found ps2pdf="ps2pdf" # let the name of the program as path COM_ps2pdf="#" else COM_ps2pdf="" fi fi # PostScript delegation. Check for psutils >= 1.17 if test "$enable_paths" = "no"; then # Extract the first word of "psselect", so it can be a program name with args. set dummy psselect; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_psselect+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_psselect"; then ac_cv_prog_COM_psselect="$COM_psselect" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_psselect="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_psselect" && ac_cv_prog_COM_psselect="no" fi fi COM_psselect=$ac_cv_prog_COM_psselect if test -n "$COM_psselect"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_psselect" >&5 printf "%s\n" "$COM_psselect" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi psselect="psselect"; if test "$COM_psselect" = "yes"; then COM_psselect=""; else COM_psselect="#"; fi else # Extract the first word of "psselect", so it can be a program name with args. set dummy psselect; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_psselect+y} then : printf %s "(cached) " >&6 else $as_nop case $psselect in [\\/]* | ?:[\\/]*) ac_cv_path_psselect="$psselect" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_psselect="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_psselect" && ac_cv_path_psselect="#" ;; esac fi psselect=$ac_cv_path_psselect if test -n "$psselect"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $psselect" >&5 printf "%s\n" "$psselect" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "psselect" = "#"; then # not found psselect="psselect" # let the name of the program as path COM_psselect="#" else COM_psselect="" fi fi if test "$enable_paths" = "no"; then # Extract the first word of "psnup", so it can be a program name with args. set dummy psnup; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_psnup+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_psnup"; then ac_cv_prog_COM_psnup="$COM_psnup" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_psnup="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_psnup" && ac_cv_prog_COM_psnup="no" fi fi COM_psnup=$ac_cv_prog_COM_psnup if test -n "$COM_psnup"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_psnup" >&5 printf "%s\n" "$COM_psnup" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi psnup="psnup"; if test "$COM_psnup" = "yes"; then COM_psnup=""; else COM_psnup="#"; fi else # Extract the first word of "psnup", so it can be a program name with args. set dummy psnup; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_psnup+y} then : printf %s "(cached) " >&6 else $as_nop case $psnup in [\\/]* | ?:[\\/]*) ac_cv_path_psnup="$psnup" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_psnup="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_psnup" && ac_cv_path_psnup="#" ;; esac fi psnup=$ac_cv_path_psnup if test -n "$psnup"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $psnup" >&5 printf "%s\n" "$psnup" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "psnup" = "#"; then # not found psnup="psnup" # let the name of the program as path COM_psnup="#" else COM_psnup="" fi fi if test "$COM_psselect" = "#"; then COM_PSUTILS="#" else # We found psselect. Check we either have 1.17 or 2.x ac_prog_psselect_banner=`psselect -v 2>&1 | sed 1q` if test "${ac_prog_psselect_banner}" != "psselect release 1 patchlevel 17" && test `echo "${ac_prog_psselect_banner}" | cut -d " " -f 2 | cut -d . -f 1` -lt 2; then COM_PSUTILS="#" fi fi if test "$COM_PSUTILS" = "#"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ===========================================================" >&5 printf "%s\n" "$as_me: WARNING: ===========================================================" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: a2ps works much better with psutils. Available at:" >&5 printf "%s\n" "$as_me: WARNING: a2ps works much better with psutils. Available at:" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: https://github.com/rrthomas/psutils/" >&5 printf "%s\n" "$as_me: WARNING: https://github.com/rrthomas/psutils/" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You *really* should install it *before* installing a2ps." >&5 printf "%s\n" "$as_me: WARNING: You *really* should install it *before* installing a2ps." >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ===========================================================" >&5 printf "%s\n" "$as_me: WARNING: ===========================================================" >&2;} fi # ROFF delegation if test "$enable_paths" = "no"; then # Extract the first word of "grog", so it can be a program name with args. set dummy grog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_grog+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_grog"; then ac_cv_prog_COM_grog="$COM_grog" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_grog="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_grog" && ac_cv_prog_COM_grog="no" fi fi COM_grog=$ac_cv_prog_COM_grog if test -n "$COM_grog"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_grog" >&5 printf "%s\n" "$COM_grog" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi grog="grog"; if test "$COM_grog" = "yes"; then COM_grog=""; else COM_grog="#"; fi else # Extract the first word of "grog", so it can be a program name with args. set dummy grog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_grog+y} then : printf %s "(cached) " >&6 else $as_nop case $grog in [\\/]* | ?:[\\/]*) ac_cv_path_grog="$grog" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_grog="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_grog" && ac_cv_path_grog="#" ;; esac fi grog=$ac_cv_path_grog if test -n "$grog"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $grog" >&5 printf "%s\n" "$grog" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "grog" = "#"; then # not found grog="grog" # let the name of the program as path COM_grog="#" else COM_grog="" fi fi if test "$COM_grog" = "#"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ============================================================ a2ps works better with GNU roff. Consider fetching groff from https://ftp.gnu.org/pub/groff" >&5 printf "%s\n" "$as_me: WARNING: ============================================================ a2ps works better with GNU roff. Consider fetching groff from https://ftp.gnu.org/pub/groff" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ============================================================" >&5 printf "%s\n" "$as_me: WARNING: ============================================================" >&2;} fi # Texinfo delegation if test "$enable_paths" = "no"; then # Extract the first word of "makeinfo", so it can be a program name with args. set dummy makeinfo; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_makeinfo+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_makeinfo"; then ac_cv_prog_COM_makeinfo="$COM_makeinfo" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_makeinfo="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_makeinfo" && ac_cv_prog_COM_makeinfo="no" fi fi COM_makeinfo=$ac_cv_prog_COM_makeinfo if test -n "$COM_makeinfo"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_makeinfo" >&5 printf "%s\n" "$COM_makeinfo" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi makeinfo="makeinfo"; if test "$COM_makeinfo" = "yes"; then COM_makeinfo=""; else COM_makeinfo="#"; fi else # Extract the first word of "makeinfo", so it can be a program name with args. set dummy makeinfo; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_makeinfo+y} then : printf %s "(cached) " >&6 else $as_nop case $makeinfo in [\\/]* | ?:[\\/]*) ac_cv_path_makeinfo="$makeinfo" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_makeinfo="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_makeinfo" && ac_cv_path_makeinfo="#" ;; esac fi makeinfo=$ac_cv_path_makeinfo if test -n "$makeinfo"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $makeinfo" >&5 printf "%s\n" "$makeinfo" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "makeinfo" = "#"; then # not found makeinfo="makeinfo" # let the name of the program as path COM_makeinfo="#" else COM_makeinfo="" fi fi if test "$enable_paths" = "no"; then # Extract the first word of "tex", so it can be a program name with args. set dummy tex; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_tex+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_tex"; then ac_cv_prog_COM_tex="$COM_tex" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_tex="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_tex" && ac_cv_prog_COM_tex="no" fi fi COM_tex=$ac_cv_prog_COM_tex if test -n "$COM_tex"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_tex" >&5 printf "%s\n" "$COM_tex" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi tex="tex"; if test "$COM_tex" = "yes"; then COM_tex=""; else COM_tex="#"; fi else # Extract the first word of "tex", so it can be a program name with args. set dummy tex; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_tex+y} then : printf %s "(cached) " >&6 else $as_nop case $tex in [\\/]* | ?:[\\/]*) ac_cv_path_tex="$tex" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_tex="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_tex" && ac_cv_path_tex="#" ;; esac fi tex=$ac_cv_path_tex if test -n "$tex"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tex" >&5 printf "%s\n" "$tex" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "tex" = "#"; then # not found tex="tex" # let the name of the program as path COM_tex="#" else COM_tex="" fi fi if test "$enable_paths" = "no"; then # Extract the first word of "latex", so it can be a program name with args. set dummy latex; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_COM_latex+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$COM_latex"; then ac_cv_prog_COM_latex="$COM_latex" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_COM_latex="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_COM_latex" && ac_cv_prog_COM_latex="no" fi fi COM_latex=$ac_cv_prog_COM_latex if test -n "$COM_latex"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $COM_latex" >&5 printf "%s\n" "$COM_latex" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi latex="latex"; if test "$COM_latex" = "yes"; then COM_latex=""; else COM_latex="#"; fi else # Extract the first word of "latex", so it can be a program name with args. set dummy latex; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_latex+y} then : printf %s "(cached) " >&6 else $as_nop case $latex in [\\/]* | ?:[\\/]*) ac_cv_path_latex="$latex" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_latex="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_latex" && ac_cv_path_latex="#" ;; esac fi latex=$ac_cv_path_latex if test -n "$latex"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $latex" >&5 printf "%s\n" "$latex" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "latex" = "#"; then # not found latex="latex" # let the name of the program as path COM_latex="#" else COM_latex="" fi fi COM_TEXI="$COM_tex$COM_makeinfo$COM_dvips" COM_LATEX="$COM_latex$COM_dvips" ## ---------- ## ## Epilogue. ## ## ---------- ## subdirs="$subdirs ogonkify" # Shell scripts ac_config_files="$ac_config_files contrib/card" ac_config_files="$ac_config_files contrib/fixps" ac_config_files="$ac_config_files contrib/pdiff" ac_config_files="$ac_config_files contrib/lp2" ac_config_files="$ac_config_files Makefile src/Makefile doc/Makefile man/Makefile tests/Makefile tests/defs lib/Makefile liba2ps/Makefile build-aux/Makefile etc/Makefile etc/a2ps_cfg etc/a2ps-site.cfg po/Makefile.in po-gnulib/Makefile.in sheets/Makefile encoding/Makefile ps/Makefile afm/Makefile contrib/Makefile contrib/emacs/Makefile fonts/Makefile ppd/Makefile" # Extract the first word of "help2man", so it can be a program name with args. set dummy help2man; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_HELP2MAN+y} then : printf %s "(cached) " >&6 else $as_nop case $HELP2MAN in [\\/]* | ?:[\\/]*) ac_cv_path_HELP2MAN="$HELP2MAN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_HELP2MAN="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_HELP2MAN" && ac_cv_path_HELP2MAN="help2man" ;; esac fi HELP2MAN=$ac_cv_path_HELP2MAN if test -n "$HELP2MAN"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HELP2MAN" >&5 printf "%s\n" "$HELP2MAN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi CROSS_COMPILING=$cross_compiling ac_config_files="$ac_config_files build-aux/x-to-1" # Code counting # Extract the first word of "cloc", so it can be a program name with args. set dummy cloc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_CLOC+y} then : printf %s "(cached) " >&6 else $as_nop case $CLOC in [\\/]* | ?:[\\/]*) ac_cv_path_CLOC="$CLOC" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_CLOC="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_CLOC" && ac_cv_path_CLOC="true" ;; esac fi CLOC=$ac_cv_path_CLOC if test -n "$CLOC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CLOC" >&5 printf "%s\n" "$CLOC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi CLOC_OPTS="--autoconf --force-lang=C,h --force-lang=C,extract" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 printf %s "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 printf "%s\n" "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi # Check whether --enable-year2038 was given. if test ${enable_year2038+y} then : enableval=$enable_year2038; fi # Check whether --enable-largefile was given. if test ${enable_largefile+y} then : enableval=$enable_largefile; fi if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi CONFIG_INCLUDE=config.h gl_libobjs= gl_ltlibobjs= gl_libobjdeps= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' sed_dirname1='s,//*,/,g' sed_dirname2='s,\(.\)/$,\1,' sed_dirname3='s,^[^/]*$,.,' sed_dirname4='s,\(.\)/[^/]*$,\1,' sed_basename1='s,.*/,,' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` i_base=`echo "$i" | sed -e "$sed_basename1"` gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Plo" done fi gl_LIBOBJS=$gl_libobjs gl_LTLIBOBJS=$gl_ltlibobjs gl_LIBOBJDEPS=$gl_libobjdeps gltests_libobjs= gltests_ltlibobjs= gltests_libobjdeps= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' sed_dirname1='s,//*,/,g' sed_dirname2='s,\(.\)/$,\1,' sed_dirname3='s,^[^/]*$,.,' sed_dirname4='s,\(.\)/[^/]*$,\1,' sed_basename1='s,.*/,,' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` i_base=`echo "$i" | sed -e "$sed_basename1"` gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Plo" done fi gltests_LIBOBJS=$gltests_libobjs gltests_LTLIBOBJS=$gltests_ltlibobjs gltests_LIBOBJDEPS=$gltests_libobjdeps if test -z "${EXTENSIONS_TRUE}" && test -z "${EXTENSIONS_FALSE}"; then as_fn_error $? "conditional \"EXTENSIONS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by GNU a2ps $as_me 4.15.5, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_links="$ac_config_links" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration links: $config_links Configuration commands: $config_commands Report bugs to <bug-a2ps@gnu.org>. GNU a2ps home page: <https://www.gnu.org/software/a2ps/>. General help using GNU software: <https://www.gnu.org/gethelp/>." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ GNU a2ps config.status 4.15.5 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ FILECMD \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile' GNUmakefile=$GNUmakefile # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "contrib/card") CONFIG_FILES="$CONFIG_FILES contrib/card" ;; "contrib/fixps") CONFIG_FILES="$CONFIG_FILES contrib/fixps" ;; "contrib/pdiff") CONFIG_FILES="$CONFIG_FILES contrib/pdiff" ;; "contrib/lp2") CONFIG_FILES="$CONFIG_FILES contrib/lp2" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "tests/defs") CONFIG_FILES="$CONFIG_FILES tests/defs" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "liba2ps/Makefile") CONFIG_FILES="$CONFIG_FILES liba2ps/Makefile" ;; "build-aux/Makefile") CONFIG_FILES="$CONFIG_FILES build-aux/Makefile" ;; "etc/Makefile") CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;; "etc/a2ps_cfg") CONFIG_FILES="$CONFIG_FILES etc/a2ps_cfg" ;; "etc/a2ps-site.cfg") CONFIG_FILES="$CONFIG_FILES etc/a2ps-site.cfg" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "po-gnulib/Makefile.in") CONFIG_FILES="$CONFIG_FILES po-gnulib/Makefile.in" ;; "sheets/Makefile") CONFIG_FILES="$CONFIG_FILES sheets/Makefile" ;; "encoding/Makefile") CONFIG_FILES="$CONFIG_FILES encoding/Makefile" ;; "ps/Makefile") CONFIG_FILES="$CONFIG_FILES ps/Makefile" ;; "afm/Makefile") CONFIG_FILES="$CONFIG_FILES afm/Makefile" ;; "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;; "contrib/emacs/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/emacs/Makefile" ;; "fonts/Makefile") CONFIG_FILES="$CONFIG_FILES fonts/Makefile" ;; "ppd/Makefile") CONFIG_FILES="$CONFIG_FILES ppd/Makefile" ;; "build-aux/x-to-1") CONFIG_FILES="$CONFIG_FILES build-aux/x-to-1" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers test ${CONFIG_LINKS+y} || CONFIG_LINKS=$config_links test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' <conf$$subs.awk | sed ' /^[^""]/{ N s/\n// } ' >>$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' <confdefs.h | sed ' s/'"$ac_delim"'/"\\\ "/g' >>$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :L) # # CONFIG_LINK # if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then : else # Prefer the file from the source tree if names are identical. if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then ac_source=$srcdir/$ac_source fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 printf "%s\n" "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then as_fn_error $? "$ac_source: file not found" "$LINENO" 5 fi rm -f "$ac_file" # Try a relative symlink, then a hard link, then a copy. case $ac_source in [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; *) ac_rel_source=$ac_top_build_prefix$ac_source ;; esac ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || ln "$ac_source" "$ac_file" 2>/dev/null || cp -p "$ac_source" "$ac_file" || as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 fi ;; :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. case $CONFIG_FILES in #( *\'*) : eval set x "$CONFIG_FILES" ;; #( *) : set x $CONFIG_FILES ;; #( *) : ;; esac shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`$as_dirname -- "$am_mf" || $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` am_filepart=`$as_basename -- "$am_mf" || $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` { echo "$as_me:$LINENO: cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles" >&5 (cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE=\"gmake\" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} { am_mf=; unset am_mf;} { am_rc=; unset am_rc;} rm -f conftest-deps.mk } ;; "libtool":C) # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # The names of the tagged configurations supported by this script. available_tags='' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # A file(cmd) program that detects file types. FILECMD=$lt_FILECMD # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive (by configure). lt_ar_flags=$lt_ar_flags # Flags to create an archive. AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; "contrib/card":F) chmod +x contrib/card ;; "contrib/fixps":F) chmod +x contrib/fixps ;; "contrib/pdiff":F) chmod +x contrib/pdiff ;; "contrib/lp2":F) chmod +x contrib/lp2 ;; "build-aux/x-to-1":F) chmod +x build-aux/x-to-1 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi # # CONFIG_SUBDIRS section. # if test "$no_recursion" != yes; then # Remove --cache-file, --srcdir, and --disable-option-checking arguments # so they do not pile up. ac_sub_configure_args= ac_prev= eval "set x $ac_configure_args" shift for ac_arg do if test -n "$ac_prev"; then ac_prev= continue fi case $ac_arg in -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ | --c=*) ;; --config-cache | -C) ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ;; --disable-option-checking) ;; *) case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_sub_configure_args " '$ac_arg'" ;; esac done # Always prepend --prefix to ensure using the same prefix # in subdir configurations. ac_arg="--prefix=$prefix" case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" # Pass --silent if test "$silent" = yes; then ac_sub_configure_args="--silent $ac_sub_configure_args" fi # Always prepend --disable-option-checking to silence warnings, since # different subdirs can have different --enable and --with options. ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" ac_popdir=`pwd` for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue # Do not complain, so a configure script can configure whichever # parts of a large source tree are present. test -d "$srcdir/$ac_dir" || continue ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 printf "%s\n" "$ac_msg" >&6 as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then ac_sub_configure=$ac_srcdir/configure.gnu elif test -f "$ac_srcdir/configure"; then ac_sub_configure=$ac_srcdir/configure else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} ac_sub_configure= fi # The recursion is here. if test -n "$ac_sub_configure"; then # Make the cache file name correct relative to the subdirectory. case $cache_file in [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; *) # Relative name. ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 printf "%s\n" "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} # The eval makes quoting arguments work. eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 fi cd "$ac_popdir" done fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***************************************************************** * a2ps thinks it should be configured the following way: * - your charset is \`$ENCODING' * - to ask \`file(1)' to follow symlinks, run \`$FILE_LINK' * (\`file(1)' is used to guess the type of the files to print.) * * If a2ps is wrong somewhere, fix the \`System Dependent parameters' * in \`etc/a2ps-site.cfg'. See the README file. ***************************************************************** " >&5 printf "%s\n" " ***************************************************************** * a2ps thinks it should be configured the following way: * - your charset is \`$ENCODING' * - to ask \`file(1)' to follow symlinks, run \`$FILE_LINK' * (\`file(1)' is used to guess the type of the files to print.) * * If a2ps is wrong somewhere, fix the \`System Dependent parameters' * in \`etc/a2ps-site.cfg'. See the README file. ***************************************************************** " >&6; } ������������������������������������������a2ps-4.15.5/configure.ac����������������������������������������������������������������������������0000644�0000000�0000000�00000017150�14445131520�011633� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������AC_PREREQ([2.71]) AC_COPYRIGHT([Copyright 2023 Free Software Foundation, Inc.]) ## ---------------- ## ## Initialization. ## ## ---------------- ## AC_INIT([GNU a2ps],[4.15.5],[bug-a2ps@gnu.org]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) m4_pattern_forbid([^jm_[A-Z]]) # Initialize automake AM_INIT_AUTOMAKE([1.15 foreign subdir-objects silent-rules -Wall]) AC_CONFIG_HEADERS([config.h]) # Define the package name GNU_PACKAGE="GNU $PACKAGE" AC_DEFINE_UNQUOTED([GNU_PACKAGE], "$GNU_PACKAGE", [The concatenation of the strings `GNU ', and PACKAGE.]) AC_SUBST(GNU_PACKAGE) ## --------------------- ## ## Checks for programs. ## ## --------------------- ## AC_PROG_AWK AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PATH_PROG(PERL, perl) # Check for the C compiler and the various oddities that may exist AC_PROG_CC gl_EARLY dnl Extra warnings with GCC AC_ARG_ENABLE([gcc-warnings], [AS_HELP_STRING([--enable-gcc-warnings], [turn on lots of GCC warnings (for developers)])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;; esac gl_gcc_warnings=$enableval], [gl_gcc_warnings=no] ) if test "$gl_gcc_warnings" = yes; then dnl Set up the list of undesired warnings. nw= nw="$nw -Wsystem-headers" # Don’t let system headers trigger warnings nw="$nw -Wvla -Wstack-protector" # We use variable-length arrays gl_MANYWARN_ALL_GCC([warnings]) dnl Enable all GCC warnings not in this list. gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw]) for w in $warnings; do gl_WARN_ADD([$w]) done dnl Add an extra warning gl_WARN_ADD([-Wconversion]) # When compiling with GCC, prefer -isystem to -I when including system # include files, to avoid generating useless diagnostics for the files. ISYSTEM='-isystem ' else ISYSTEM='-I' fi AC_SUBST([ISYSTEM]) AC_USE_SYSTEM_EXTENSIONS AC_PROG_YACC AM_PROG_AR # I want flex, and only flex AC_PROG_LEX([noyywrap]) AC_MSG_CHECKING([whether LEX is flex]) AS_CASE([`$LEX --version`], [flex*], [AC_MSG_RESULT([yes])], [ AC_MSG_RESULT([no]) LEX="$SHELL $missing_dir/missing flex" AC_SUBST([LEX_OUTPUT_ROOT], [lex.yy]) AC_SUBST([LEXLIB], ['']) ]) # Libtool. By default, don't do shared libs, liba2ps is not widely used. LT_INIT([disable-shared static]) gl_INIT ## ------------------------------ ## ## checks for library functions. ## ## ------------------------------ ## # libgc (BDW garbage collector) PKG_CHECK_MODULES([BDW_GC], [bdw-gc >= 7.2]) AH_BOTTOM([ #define malloc GC_malloc #define calloc GC_calloc #define realloc GC_realloc #ifndef free #define free GC_free #endif #define strdup GC_strdup #define strndup GC_strndup #define reallocarray a2ps_reallocarray ]) ad_FUNC_SYSTEMPAPERNAME AS_IF([test "$ac_cv_lib_paper_systempapername" = "no"], [AC_MSG_ERROR([a2ps needs libpaper to work])]) # Internationalization. AM_GNU_GETTEXT_VERSION([0.20.2]) AM_GNU_GETTEXT([external], [need-ngettext]) # In path separator character. AC_DEFINE_UNQUOTED([DIRECTORY_SEPARATOR], '/', [The char used to separate component of a path]) # Between paths separator character. AC_DEFINE_UNQUOTED([PATH_SEPARATOR], ':', [The char used to separate paths.]) # We define SYNTAX_TABLE so that regex uses syntax tables AC_DEFINE([SYNTAX_TABLE], 1, [Define to enable syntax table support in `regex'.]) ## ---------------------------- ## ## Various extentions/options. ## ## ---------------------------- ## # Where to put the emacs files AM_PATH_LISPDIR # Shall the path to the tools be hardcoded? ad_ENABLE_PATHS # What should get installed? AC_ARG_ENABLE(extensions, AS_HELP_STRING(--disable-extensions,small foot print installation), [case "${enableval}" in yes|no) ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-extensions) ;; esac],[enable_extensions=yes]) AM_CONDITIONAL(EXTENSIONS, test x$enable_extensions = xyes) AC_MSG_CHECKING(for PostScript fonts path) # Try to find some PostScript fonts. # Find out if ghostscript is installed ac_psfont_path= for ac_dir in /usr/local/ghostscript/fonts \ /usr/local/share/ghostscript/fonts; do if test "cd $ac_dir 2>/dev/null && echo *.afm"; then ac_psfont_path="$ac_psfont_path:$ac_dir"; fi done dnl # Remove the leading `:' if test -n "$ac_psfont_path"; then PSFONT_PATH=`echo "$ac_psfont_path" | sed -e 's/^://'` fi AC_SUBST(PSFONT_PATH) AC_MSG_RESULT([$ac_psfont_path]) ## ---------------------------------------------------------- ## ## Write a first sketch of a2ps.cfg. The user should check. ## ## ---------------------------------------------------------- ## # # Check for a file program that follows symlinks # ad_PROG_FILE_LINK AC_SUBST(FILE_LINK) # # default encoding to use (defaulted to latin1) # AC_ARG_WITH(encoding, AS_HELP_STRING([--with-encoding=enc], [specify the default encoding (ascii, latin1, latin2... latin6, hp etc.) [default=latin1]]), ENCODING=$with_encoding, ENCODING=latin1) AC_SUBST(ENCODING) ######################## # Nice special printers ######################## # Look for GV or Ghostview ad_CHECK_PROGS([gv, ghostview]) if test "$COM_gv$COM_ghostview" = "##"; then COM_DISPLAY="#" fi AC_SUBST(COM_DISPLAY) ################################# # Helping people with delegations ################################# # "Compressed" delegation ad_CHECK_PROG(gzip, [a2ps works better with gzip. Consider fetching gzip at any ftp site proposing GNU programs]) ad_CHECK_PROGS([bzip, bzip2]) # DVI delegation ad_CHECK_PROG(dvips) # ImageMagick for most image formats ad_CHECK_PROG(convert) # HTML delegation ad_CHECK_PROGS([html2ps]) # PDF delegation ad_CHECK_PROGS([pdf2ps]) # Outputting PDF ad_CHECK_PROGS([ps2pdf]) AC_SUBST(COM_PS2PDF) # PostScript delegation. Check for psutils >= 1.17 a2_PSUTILS # ROFF delegation ad_CHECK_PROG(grog, [a2ps works better with GNU roff. Consider fetching groff from https://ftp.gnu.org/pub/groff]) # Texinfo delegation ad_CHECK_PROGS([makeinfo, tex, latex]) COM_TEXI="$COM_tex$COM_makeinfo$COM_dvips" COM_LATEX="$COM_latex$COM_dvips" AC_SUBST(COM_TEXI) AC_SUBST(COM_LATEX) ## ---------- ## ## Epilogue. ## ## ---------- ## AC_CONFIG_SUBDIRS(ogonkify) # Shell scripts AC_CONFIG_FILES([contrib/card], [chmod +x contrib/card]) AC_CONFIG_FILES([contrib/fixps], [chmod +x contrib/fixps]) AC_CONFIG_FILES([contrib/pdiff], [chmod +x contrib/pdiff]) AC_CONFIG_FILES([contrib/lp2], [chmod +x contrib/lp2]) AC_CONFIG_FILES([ Makefile src/Makefile doc/Makefile man/Makefile tests/Makefile tests/defs lib/Makefile liba2ps/Makefile build-aux/Makefile etc/Makefile etc/a2ps_cfg etc/a2ps-site.cfg po/Makefile.in po-gnulib/Makefile.in sheets/Makefile encoding/Makefile ps/Makefile afm/Makefile contrib/Makefile contrib/emacs/Makefile fonts/Makefile ppd/Makefile ]) dnl help2man dnl Set a value even if not found, so that x-to-1 gives a better error. AC_PATH_PROG([HELP2MAN], [help2man], [help2man]) CROSS_COMPILING=$cross_compiling AC_SUBST([CROSS_COMPILING]) AC_CONFIG_FILES([build-aux/x-to-1], [chmod +x build-aux/x-to-1]) # Code counting AM_EXTRA_RECURSIVE_TARGETS([loc]) AC_PATH_PROG(CLOC, cloc, true) CLOC_OPTS="--autoconf --force-lang=C,h --force-lang=C,extract" AC_SUBST([CLOC_OPTS]) AC_OUTPUT AC_MSG_RESULT([ ***************************************************************** * a2ps thinks it should be configured the following way: * - your charset is `$ENCODING' * - to ask `file(1)' to follow symlinks, run `$FILE_LINK' * (`file(1)' is used to guess the type of the files to print.) * * If a2ps is wrong somewhere, fix the `System Dependent parameters' * in `etc/a2ps-site.cfg'. See the README file. ***************************************************************** ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/��������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132372�011067� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/Makefile.am���������������������������������������������������������������������0000644�0000000�0000000�00000001537�14365732512�013054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # AM_CFLAGS = $(WARN_CFLAGS) SUBDIRS = emacs bin_SCRIPTS = card fixps lp2 pdiff EXTRA_DIST = card.in fixps.in lp2.in pdiff.in �����������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/Makefile.in���������������������������������������������������������������������0000644�0000000�0000000�00000201643�14445132053�013056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = contrib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = card fixps pdiff lp2 CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" SCRIPTS = $(bin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/card.in \ $(srcdir)/fixps.in $(srcdir)/lp2.in $(srcdir)/pdiff.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = $(WARN_CFLAGS) SUBDIRS = emacs bin_SCRIPTS = card fixps lp2 pdiff EXTRA_DIST = card.in fixps.in lp2.in pdiff.in all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign contrib/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): card: $(top_builddir)/config.status $(srcdir)/card.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ fixps: $(top_builddir)/config.status $(srcdir)/fixps.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ pdiff: $(top_builddir)/config.status $(srcdir)/pdiff.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ lp2: $(top_builddir)/config.status $(srcdir)/lp2.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" loc-local: ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: loc: loc-recursive loc-am: loc-local maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am loc-am loc-local \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-binSCRIPTS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/README��������������������������������������������������������������������������0000644�0000000�0000000�00000000173�14365455440�011675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ a2ps' Contrib Directory * emacs/ An emacs mode for style sheet files, and a useful package for generating regexps. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/card.in�������������������������������������������������������������������������0000644�0000000�0000000�00000017444�14273213734�012263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env sh # card --- smartly produce a printed reference card of a program # Copyright 1998-2017 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # Author: Akim Demaille <Akim.Demaille@freefriends.org> set -e # Name by which this script was invoked. program=`echo "$0" | sed -e 's/[^\/]*\///g'` card_version='1.3' # Initialize variables. # Don't use `unset' since old bourne shells don't have this command. # Instead, assign them an empty value. # Some of these, like A2PS, may be inherited from the environment. a2ps=${A2PS-a2ps} a2ps_options=-Ecard commands= debug= form_feed= help="Try \`$program --help' for more information." LC_ALL="${LC_ALL-C}" export LC_ALL print_form_feeds=: RM="/bin/rm -rf" tmp_dir=`mktemp -d -t card.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } tmp_file=$tmp_dir/card success=false verbose=: version_short="card $card_version (@GNU_PACKAGE@ @VERSION@)" usage="Usage: $program [OPTION]... PROGRAM... Print a reference card of the PROGRAMs thanks to their inline help. Options: -h, --help display this help and exit -v, --version display version information and exit -o, --output=FILE save the output in FILE -l, --language=LL print the help in the language LL (default: English) --command=CMD perform pretty-printing on the output of CMD (e.g. --command='a2ps --help') Options for a2ps are given after \`--', for instance $ card -lfr a2ps -- -Pdisplay -4 News, updates and documentation: https://www.gnu.org/software/a2ps/ Report bugs to <bug-a2ps@gnu.org>." version="$version_short Written by Akim Demaille. Copyright (c) 1997-99 Akim Demaille, Miguel Santana This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." # List of the possible ways to get the on line help. # -flags is used with Solaris' CC. possible_options="--help -h -help -\? -flags" # Parse command line arguments. option_without_arguments='vhsqDf' # As a first step, fetch all the options meant for a2ps, i.e. # everything after `--'. jam="$$card$$" set dummy "${1+"$@"}" "$jam" shift while test "x$1" != "x$jam" && test "x$1" != "x--"; do set dummy "${1+"$@"}" "$1" shift shift done # If $[1] is `--', then from here to the JAM are a2ps arguments. if test "x$1" = x--; then shift while test "x$1" != "x$jam" do a2ps_options="$a2ps_options $1" shift done fi # The current $1 is JAM. Pop up the JAM, pop it up, pop it out. shift # Proceed to card's options parsing. # Push a token among the arguments that will be used to notice when # we ended options/arguments parsing. arg_sep="$$--$$" set dummy ${1+"$@"} "$arg_sep" shift while test "x$1" != "x$arg_sep"; do # Handle --option=value by splitting apart and putting back on argv. case "$1" in --*=*) opt=`echo "$1" | sed -e 's/=.*//'` val=`echo "$1" | sed -e 's/[^=]*=//'` shift set dummy "$opt" "$val" ${1+"$@"} shift ;; -[$option_without_arguments]?*) # Prefix $1 with x to avoid running `echo -na' for instance. opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` rest=`echo "x$1" | sed -e 's/x-.\(.*\)/-\1/'` shift set dummy "$opt" "$rest" ${1+"$@"} shift ;; # This case needs to be protected so that the case `-??*' does # not split long options without arguments --*) ;; # This is an option with argument. Split apart and put back on argv. -??*) opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` arg=`echo "x$1" | sed -e 's/x-.\(.*\)/\1/'` shift set dummy "$opt" "$arg" ${1+"$@"} shift ;; esac # Now, handle the options. $1 is the option *only*. If it has an # argument, it is now necessarily in $2 etc. Remember to shift # when fetching an argument. case "$1" in -v | --v*) echo "$version"; exit 0;; -h | --h*) echo "$usage"; exit 0;; -s|-q|--q*|--s*) verbose=: ;; -D | --debug) debug=: ;; -o|--output) shift a2ps_options="$a2ps_options --output=$1" ;; --lan*|-l) shift; LC_ALL=$1 ;; --com*|-c) shift; commands="$commands $optarg" ;; --no-*|-f) print_form_feeds= ;; --) # What remains are not options. shift while test "x$1" != "x$arg_sep"; do set dummy ${1+"$@"} "$1" shift shift done break;; -*) echo "$program: Unknown or ambiguous option \`$1'." >&2 echo "$program: Try \`--help' for more information." >&2 exit 1;; *) set dummy ${1+"$@"} "$1" shift ;; esac shift done # Pop the token shift # ARG now contains both options for a2ps and the true arguments. if test $# = 0 && test "X$commands" = X; then exec 1>&2 echo "$program: no program given" echo "$help" exit 1 fi # Create a tmp dir and be ready to clean up trap "$RM $tmp_dir" 0 1 2 15 case $LC_ALL in fr) footer="Engendr par $version_short" ;; *) footer="Generated by $version_short" ;; esac # Set -x now if debugging test -n "$debug" && set -x # The files to process are in "$@" for file do success=false filename=`echo "$file" | sed -e 's/[^\/]*\///g'` $verbose "Working on \`$filename'" case $LC_ALL in fr) title="Carte de rfrence pour $filename" ;; *) title="Reference card of $filename" ;; esac # Try to find the help message for opt in $possible_options do $verbose "Trying \`$file $opt'" ($file $opt >$tmp_dir/foo 2>&1) >/dev/null 2>&1 && success=: && break # Netscape for example is stupid enough to `exit 255' when properly fed # with -help, as recommanded by -help itself... If there are really # many lines, consider it is still a success. if test "$success" = false; then if test `wc -l <$tmp_dir/foo` -gt 10; then success=: && break fi fi done # If the help message has been found, process it with a2ps if $success; then $verbose "Success" if test -n "$form_feed"; then echo " " >>$tmp_file fi cat <<EOF >>$tmp_file card_label($title) card_title($title) EOF cat $tmp_dir/foo >>$tmp_file # Be ready to insert a page break before next argument-program form_feed=$print_form_feeds else echo "$program: could not find help message for $file" exit 1 fi done SAVED_IFS="$IFS" IFS=" " for command in $commands do IFS="$SAVED_IFS" success=false case $LC_ALL in fr) title="Rsultat de \`$command'" ;; *) title="Result of \`$command'" ;; esac (eval $command >$tmp_dir/foo 2>&1) >/dev/null 2>&1 && success=: # If the help message has been found, process it with a2ps if $success; then $verbose "Success" if test -n "$form_feed"; then echo " " >>$tmp_file fi cat <<EOF >>$tmp_file card_label($title) card_title($title) EOF cat $tmp_dir/foo >>$tmp_file # Be ready to insert a page break before next argument-program form_feed=$print_form_feeds else echo "$program: command \"$command\" failed" exit 1 fi done IFS="$SAVED_IFS" # All the programs have been treated. Call a2ps on the produced file $a2ps $a2ps_options --footer="$footer" $tmp_file || exit 1 exit 0 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/emacs/��������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132372�012157� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/emacs/Makefile.am���������������������������������������������������������������0000644�0000000�0000000�00000000142�14235573156�014136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in dist_lisp_DATA = a2ps.el a2ps-print.el ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/emacs/Makefile.in���������������������������������������������������������������0000644�0000000�0000000�00000161376�14445132053�014156� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = contrib/emacs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(dist_lisp_DATA) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(lispdir)" DATA = $(dist_lisp_DATA) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_lisp_DATA = a2ps.el a2ps-print.el all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/emacs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign contrib/emacs/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_lispDATA: $(dist_lisp_DATA) @$(NORMAL_INSTALL) @list='$(dist_lisp_DATA)'; test -n "$(lispdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(lispdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(lispdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(lispdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(lispdir)" || exit $$?; \ done uninstall-dist_lispDATA: @$(NORMAL_UNINSTALL) @list='$(dist_lisp_DATA)'; test -n "$(lispdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(lispdir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(lispdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_lispDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_lispDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_lispDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs loc-am loc-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-dist_lispDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/emacs/a2ps-print.el�������������������������������������������������������������0000644�0000000�0000000�00000007546�14251171452�014431� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������;;a2ps-print.el: Postscript printing hook for a2ps. ;;This file is available at ftp://ftp.cppsig.org/pub/tools/emacs/a2ps-print.el ;;This requires a2ps to be installed in your PATH ;;a2ps is available at ftp://ftp.enst.fr/pub/unix/a2ps/ and others ;; Keywords: languages, faces, a2ps ;;Modified for enscript from lpr.el by Jim Robinson robinson@wdg.mot.com ;;Modified for a2ps by phanes@icon.com and docs by bingalls@panix.com ;;Tested on a2ps v4.10 on emacs & xemacs 20.2 on solaris ;;; This file is part of a2ps. ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3, or (at your option) ;;; any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program; see the file COPYING. If not, write to ;;; the Free Software Foundation, 59 Temple Place - Suite 330, ;;; Boston, MA 02111-1307, USA. ;;; ;; This file is (not yet) part of GNU Emacs. ;; $Id: a2ps-print.el,v 1.1.1.1.2.1 2007/12/29 01:58:11 mhatta Exp $ ;;Put the following into your .emacs: ;(load "a2ps-print") ;(global-set-key 'f22 'a2ps-buffer) ;f22 is Print Screen ;(global-set-key '(shift f22) 'a2ps-region-1) ;print selected text ;(add-menu-button '("File") ["a2ps-print" a2ps-buffer "--"]) ;on file menu ;;Someday I'll get menu to show PrtScr instead of f22... ;you can pass up to 4 command line switches to a2ps. ;Here's a recommended sample for your .emacs: ;(setq a2ps-switches `("-C" "--line-numbers=1")) (defvar a2ps-switches nil ;You can replace nil above with up to 4 hard coded switches: ;`("-C" "--line-numbers=1") "*List of strings to pass as extra switch args to a2ps when it is invo\ ked.") (defvar a2ps-command "a2ps" "Shell command for printing a file") (defun a2ps-buffer (argp) "Print buffer contents as with Unix command `a2ps'. `a2ps-switches' is a list of extra switches (strings) to pass to a2ps." (interactive "P") (a2ps-region (point-min) (point-max) argp)) (defun a2ps-region (start end argp) "Print region contents as with Unix command `a2ps'. `a2ps-switches' is a list of extra switches (strings) to pass to a2ps." (interactive "r\nP") (let ((switches a2ps-switches) (lpr-command a2ps-command)) (if argp (setq switches (append switches (list (read-string "switches: "))))) (a2ps-region-1 start end switches))) (defun a2ps-region-1 (start end switches) (let ( (name (buffer-name)) (filetype (substring (buffer-name) (string-match "[^.]*$" (buffer-name)))) (width tab-width)) ; this line doesn't work if switches actually contains anything ; (message (concat "Sending '" name "' to " lpr-command " switches: " ; switches " filetype: " filetype)) (save-excursion (message "Spooling...") (if (/= tab-width 8) (let ((oldbuf (current-buffer))) (set-buffer (get-buffer-create " *spool temp*")) (widen) (erase-buffer) (insert-buffer-substring oldbuf) (setq tab-width width) (untabify (point-min) (point-max)) (setq start (point-min) end (point-max)))) (apply 'call-process-region (nconc (list start end lpr-command nil nil nil ;above can be replaced with this debug line: ; nil '(nil "/tmp/EEE") nil ; (concat "--header=" name) (concat "--center-title=" name) (concat "--footer=" (concat name " Emacs buffer")) (concat "--pretty-print=" filetype) ;Uncommenting the following gives a print preview (only): ; (concat "--output=/tmp/foo.ps") ) switches)) (message "Spooling...done") ))) ����������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/emacs/a2ps.el�������������������������������������������������������������������0000644�0000000�0000000�00000014361�14236507210�013266� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������;;; a2ps.el --- Major mode for a2ps style sheets ;; Author: Akim Demaille (demaille@inf.enst.fr) ;; Maintainer: Akim Demaille (demaille@inf.enst.fr) ;; Keywords: languages, faces, a2ps ;;; Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana ;;; Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana ;;; ;;; This file is part of a2ps. ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3, or (at your option) ;;; any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program; see the file COPYING. If not, write to ;;; the Free Software Foundation, 59 Temple Place - Suite 330, ;;; Boston, MA 02111-1307, USA. ;;; ;;;###autoload (add-to-list 'auto-mode-alist '("\\.ssh\\'" . a2ps-mode)) ;; Name or full path of program invoked for a2ps (defvar a2ps-program "a2ps") ;;thank god for make-regexp.el! (defvar a2ps-font-lock-keywords `( ("^\\\#.*" . font-lock-comment-face) ; ("\\\$\\\*" . font-lock-variable-name-face) ; ("\\\$[0-9]" . font-lock-variable-name-face) ; ("\\\$\\\#" . font-lock-variable-name-face) ;; Keywords related to the LaTeX symbols ("\\b\\(---\\|\\\\\\(Alpha\\|Beta\\|Chi\\|D\\(elta\\|ownarrow\\)\\|E\\(psilon\\|ta\\)\\|Gamma\\|I\\(m\\|ota\\)\\|Kappa\\|L\\(ambda\\|eft\\(arrow\\|rightarrow\\)\\)\\|Mu\\|Nu\\|Om\\(ega\\|icron\\)\\|P\\(hi\\|i\\|si\\)\\|R\\(e\\|ho\\|ightarrow\\)\\|Sigma\\|T\\(au\\|heta\\)\\|Up\\(arrow\\|silon\\)\\|Xi\\|Zeta\\|a\\(l\\(eph\\|pha\\)\\|ngle\\|pp\\(le\\|rox\\)\\)\\|b\\(eta\\|ullet\\)\\|c\\(a\\(p\\|rriagereturn\\)\\|dot\\|hi\\|irc\\|lubsuit\\|o\\(ng\\|pyright\\)\\|up\\)\\|d\\(elta\\|i\\(amondsuit\\|v\\)\\|ownarrow\\)\\|e\\(mptyset\\|psilon\\|quiv\\|ta\\|xists\\)\\|f\\(lorin\\|orall\\)\\|g\\(amma\\|eq\\)\\|heartsuit\\|i\\(n\\(\\|fty\\|t\\)\\|ota\\)\\|kappa\\|l\\(a\\(mbda\\|ngle\\)\\|ceil\\|dots\\|e\\(ft\\(arrow\\|rightarrow\\)\\|q\\)\\|floor\\)\\|mu\\|n\\(abla\\|eq\\|ot\\(\\|\\\\\\(in\\|subset\\)\\)\\|u\\)\\|o\\(m\\(ega\\|icron\\)\\|plus\\|times\\)\\|p\\([im]\\|artial\\|erp\\|hi\\|r\\(ime\\|o\\(d\\|pto\\)\\)\\|si\\)\\|r\\(a\\(dicalex\\|ngle\\)\\|ceil\\|egister\\|floor\\|ho\\|ightarrow\\)\\|s\\(i\\(gma\\|m\\)\\|padesuit\\|u\\(bset\\(\\|eq\\)\\|chthat\\|m\\|pset\\(\\|eq\\)\\|rd\\)\\)\\|t\\(au\\|he\\(refore\\|ta\\)\\|imes\\|rademark\\)\\|up\\(arrow\\|silon\\)\\|v\\(ar\\(Upsilon\\|copyright\\|diamondsuit\\|p\\(hi\\|i\\)\\|register\\|sigma\\|t\\(heta\\|rademark\\)\\)\\|ee\\)\\|w\\(edge\\|p\\)\\|xi\\|zeta\\)\\)\\b" . font-lock-type-face) ;; Keywords related to the struture ("\\b\\(a\\(2ps\\|lphabets?\\|ncestors\\|re\\)\\|by\\|c\\(ase\\|losers\\)\\|documentation\\|e\\(nd\\|xceptions\\)\\|first\\|i\\([ns]\\|nsensitive\\)\\|keywords\\|op\\(erators\\|tional\\)\\|requires\\|s\\(e\\(cond\\|nsitive\\|quences\\)\\|tyle\\)\\|version\\|written\\)\\b" . font-lock-keyword-face) ;; Keywords related to the faces or special sequences ("\\b\\(C\\(-\\(char\\|string\\)\\|omment\\(\\|_strong\\)\\)\\|E\\(ncoding\\|rror\\)\\|In\\(dex[1234]\\|visible\\)\\|Keyword\\(\\|_strong\\)\\|Label\\(\\|_strong\\)\\|Plain\\|S\\(tring\\|ymbol\\)\\|Tag[1234]\\)\\b" . font-lock-type-face) "default font-lock-keywords") ) ;; this may still need some work (defvar a2ps-mode-syntax-table nil "syntax table used in a2ps mode") (setq a2ps-mode-syntax-table (make-syntax-table)) ;(modify-syntax-entry ?` "('" a2ps-mode-syntax-table) ;(modify-syntax-entry ?' ")`" a2ps-mode-syntax-table) (modify-syntax-entry ?# "<\n" a2ps-mode-syntax-table) (modify-syntax-entry ?\n ">#" a2ps-mode-syntax-table) (modify-syntax-entry ?/ "\"" a2ps-mode-syntax-table) ;(modify-syntax-entry ?{ "_" a2ps-mode-syntax-table) ;(modify-syntax-entry ?} "_" a2ps-mode-syntax-table) (modify-syntax-entry ?\\ "_" a2ps-mode-syntax-table) (modify-syntax-entry ?@ "w" a2ps-mode-syntax-table) (modify-syntax-entry ?_ "w" a2ps-mode-syntax-table) (modify-syntax-entry ?* "w" a2ps-mode-syntax-table) (defvar a2ps-mode-map (let ((map (make-sparse-keymap))) (define-key map "\C-c\C-b" 'a2ps-a2ps-buffer) ;;; (define-key map "\C-c\C-r" 'a2ps-a2ps-region) (define-key map "\C-c\C-c" 'comment-region) map)) (defun a2ps-check-buffer () "Check that the current style sheet is correct" (interactive) ;; This `let' is for protecting the previous value of compile-command. (let ((compile-command (concat a2ps-program " -q < /dev/null -o - > /dev/null -E" buffer-file-name))) (compile compile-command)) ) (defun a2ps-a2ps-region () "send contents of the current region to a2ps" (interactive) (start-process "a2psprocess" "*a2ps output*" a2ps-program "-e") (process-send-region "a2psprocess" (point) (mark)) (process-send-eof "a2psprocess") (switch-to-buffer "*a2ps output*") ) (easy-menu-define a2ps-mode-menu a2ps-mode-map "Menu used in a2ps mode." (list "a2ps" ["Documentation" a2ps-goto-info-page t] )) ;; Open info on the page on How to write a style sheet (defun a2ps-goto-info-page () "Read documentation for a2ps style sheets in the info system." (interactive) (require 'info) (Info-goto-node "(a2ps)Style sheets implementation")) ;;;###autoload (defun a2ps-mode () "A major-mode to edit a2ps style sheet files \\{a2ps-mode-map} " (interactive) (kill-all-local-variables) (use-local-map a2ps-mode-map) (make-local-variable 'comment-start) (setq comment-start "#") (make-local-variable 'parse-sexp-ignore-comments) (setq parse-sexp-ignore-comments t) ; Used for the menus (require 'easymenu) ; Install the menus (easy-menu-add a2ps-mode-menu a2ps-mode-map) ; The \ is used both as an escape in strings, and ; as a symbol constituent in LaTeX like symbols (setq words-include-escapes t) (make-local-variable 'font-lock-defaults) (setq major-mode 'a2ps-mode mode-name "a2ps" font-lock-defaults `(a2ps-font-lock-keywords nil) ) (set-syntax-table a2ps-mode-syntax-table) (run-hooks 'a2ps-mode-hook)) (provide 'a2ps-mode) ;;; a2ps.el ends here �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/fixps.in������������������������������������������������������������������������0000644�0000000�0000000�00000012256�14410122137�012464� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env sh # fixps --- fix as much as possible PS errors that break the psutils # Copyright 1998-2023 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # Author: Akim Demaille <Akim.Demaille@freefriends.org> set -e # Get the name of the program program=`echo $0 | sed 's#.*/##g'` # Local vars debug= file= # Look for a running ghostscript gs=${GHOSTSCRIPT:-${GS:-gs}} # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. if ($gs -v) >/dev/null 2>&1; then :; else gs= fi output=- # Default is stdout # What action to perform: cat, check, and gs task=gs tmpdir=`mktemp -d -t fixps.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } verbose=echo # The version/usage strings version="fixps 1.6 (@GNU_PACKAGE@ @VERSION@) Written by Akim Demaille. Copyright (c) 1998-2000 Akim Demaille, Miguel Santana Copyright (c) 2023 Reuben Thomas This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." usage="\ Usage: $program [OPTIONS] FILE Try to fix common PostScript problems that break postprocessing. Options: -h, --help display this help and exit -v, --version display version information and exit -q, --quiet don't print informational messages -o, --output=FILE save result in FILE. If FILE is \`-', send to stdout -c, --check, --dry-run don't perform any action Report bugs to <bug-a2ps@gnu.org>" help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhqc' # Push a token among the arguments that will be used to notice when # we ended options/arguments parsing. arg_sep="$$--$$" set dummy ${1+"$@"} "$arg_sep" shift while test "x$1" != "x$arg_sep"; do # Handle --option=value by splitting apart and putting back on argv. case "$1" in --*=*) opt=`echo "$1" | sed -e 's/=.*//'` val=`echo "$1" | sed -e 's/[^=]*=//'` shift set dummy "$opt" "$val" ${1+"$@"} shift ;; -[$option_without_arguments]?*) # Prefix $1 with x to avoid running `echo -na' for instance. opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` rest=`echo "x$1" | sed -e 's/x-.\(.*\)/-\1/'` shift set dummy "$opt" "$rest" ${1+"$@"} shift ;; # This case needs to be protected so that the case `-??*' does # not split long options without arguments --*) ;; # This is an option with argument. Split apart and put back on argv. -??*) opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` arg=`echo "x$1" | sed -e 's/x-.\(.*\)/\1/'` shift set dummy "$opt" "$arg" ${1+"$@"} shift ;; esac # Now, handle the options. $1 is the option *only*. If it has an # argument, it is now necessarily in $2 etc. Remember to shift # when fetching an argument. case "$1" in -v | --v*) echo "$version"; exit 0;; -h | --h*) echo "$usage"; exit 0;; -q | --q*) verbose=:;; # Delay debugging so that options parsing does not appear -D | --debug) debug=: ;; -o | --output) shift ; output=$1 ;; -c | --check | --dry-run) task=check ;; -) # We are working with stdin ;; set dummy "$@" "$1"; shift;; --) # What remains are not options. shift while test "x$1" != "x$arg_sep"; do set dummy ${1+"$@"} "$1" shift shift done break;; -*) echo "$program: Unknown or ambiguous option \`$1'." >&2 echo "$program: Try \`--help' for more information." >&2 exit 1;; *) set dummy ${1+"$@"} "$1" shift ;; esac shift done # Pop the token shift # Check the number of arguments. case $# in 0) file=-;; 1) file=$1;; *) echo "$program: too many arguments" 1>&2 echo "$help" 1>&2 exit 1;; esac if test -n "$debug"; then # Set -x now if debugging set -x else # Temp dir. Get ready not to leave junk (if not debugging) trap "/bin/rm -rf $tmpdir" 0 1 2 3 13 15 fi # If printing from stdin, save into a tmp file if test $file = '-'; then file=$tmpdir/stdin.ps cat >$file fi # For dry runs, the output should not even be redirected if test $task != check; then ( test "$output" != "-" && exec >"$output" case $task in cat) cat "$file" ;; gs) $verbose "$program: making a full rewrite of the file ($gs)." >&2 $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=ps2write -sOutputFile=- -c save pop -f $file ;; esac ) fi exit 0 ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/lp2.in��������������������������������������������������������������������������0000755�0000000�0000000�00000010575�14366261341�012050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env sh # lp2 --- print a document duplex on a simplex printer # Copyright 1999-2023 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # Author: Reuben Thomas <rrt@sc3d.org> # Shell version based on fixps by Akim Demaille set -e # Get the name of the program program=`echo $0 | sed 's#.*/##g'` # Local vars back=: # Print the back side pages. front=: # Print the front side pages. # The version/usage strings version="lp2 1.0 (@GNU_PACKAGE@ @VERSION@) Written by Reuben Thomas. Copyright (c) 2023 Reuben Thomas Based on fixps, copyright (c) 1998-2000 Akim Demaille This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." usage="\ Usage: $program [OPTIONS] FILE... Print a file duplex on a simplex printer.n First print the odd pages, then prompt the user to put the printed pages back in, then print the even pages in reverse order. Options: -h, --help display this help and exit -V, --version display version information and exit -f, --front print only the front pages (recto) -b, --back print only the back pages (verso) Report bugs to <bug-a2ps@gnu.org>" help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhqfb' # Push a token among the arguments that will be used to notice when # we ended options/arguments parsing. arg_sep="$$--$$" set dummy ${1+"$@"} "$arg_sep" shift while test "x$1" != "x$arg_sep"; do # Handle --option=value by splitting apart and putting back on argv. case "$1" in --*=*) opt=`echo "$1" | sed -e 's/=.*//'` val=`echo "$1" | sed -e 's/[^=]*=//'` shift set dummy "$opt" "$val" ${1+"$@"} shift ;; -[$option_without_arguments]?*) # Prefix $1 with x to avoid running `echo -na' for instance. opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` rest=`echo "x$1" | sed -e 's/x-.\(.*\)/-\1/'` shift set dummy "$opt" "$rest" ${1+"$@"} shift ;; # This case needs to be protected so that the case `-??*' does # not split long options without arguments --*) ;; # This is an option with argument. Split apart and put back on argv. -??*) opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` arg=`echo "x$1" | sed -e 's/x-.\(.*\)/\1/'` shift set dummy "$opt" "$arg" ${1+"$@"} shift ;; esac # Now, handle the options. $1 is the option *only*. If it has an # argument, it is now necessarily in $2 etc. Remember to shift # when fetching an argument. case "$1" in -V | --v*) echo "$version"; exit 0;; -h | --h*) echo "$usage"; exit 0;; -b | --bac*) front= ; back=: ;; -f | --fro*) front=: ; back= ;; --) # What remains are not options. shift while test "x$1" != "x$arg_sep"; do set dummy ${1+"$@"} "$1" shift shift done break;; -*) echo "$program: Unknown or ambiguous option \`$1'." >&2 echo "$program: Try \`--help' for more information." >&2 exit 1;; *) set dummy ${1+"$@"} "$1" shift ;; esac shift done # Pop the token shift # Check the number of arguments. if test $# = 0; then echo "$program: not enough arguments" 1>&2 echo "$help" 1>&2 exit 1 fi for file in "$@"; do if test -f "$file"; then if test -n "$front"; then lp -o page-set=odd "$file" fi if test -n "$front" && test -n "$back"; then echo "Turn the paper over and press <Return>" 1>&2 read fi if test -n "$back"; then lp -o page-set=even -o outputorder=reverse "$file" fi else printf "$program: \`$file' could not be read\n" 1>&2 fi done �����������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/contrib/pdiff.in������������������������������������������������������������������������0000644�0000000�0000000�00000012443�14273213734�012434� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env sh # pdiff --- Print diff in a nice way # Copyright 1998-2017 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # Author: Akim Demaille <demaille@inf.enst.fr> set -e # Get the name of the program program=`echo $0 | sed 's#.*/##g'` # Local vars a2ps=${A2PS:-a2ps} a2ps_options= debug= diff_on=words diff_prog=${DIFF:-diff} diff_options='-u' file= output= tmpdir=`mktemp -d -t pdiff.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } verbose=echo wdiff_prog=${WDIFF:-wdiff} wdiff_options='-w[wd- -x-wd] -y{wd+ -z+wd}' # The version/usage strings version="pdiff 0.4 (@GNU_PACKAGE@ @VERSION@) Written by Akim Demaille. Copyright (c) 1997-1999 Akim Demaille, Miguel Santana This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." usage="\ Usage: $program FILE1 FILE2 [-- A2PS-OPTIONS...] Pretty print the differences between FILE1 and FILE2. Options: -h, --help display this help and exit -v, --version display version information and exit -q, --quiet don't print informational messages -l, --lines search for line differences (\`diff') -w, --words search for word differences (\`wdiff') -o, --output=FILE save the output in FILE Options for a2ps are given after \`--', for instance $ pdiff COPYING COPYING.LIB -- -Pdisplay News, updates and documentation: https://www.gnu.org/software/a2ps/ Report bugs to <bug-a2ps@gnu.org>." help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhsqDlw' # Push a token among the arguments that will be used to notice when # we ended options/arguments parsing. arg_sep="$$--$$" set dummy ${1+"$@"} "$arg_sep" shift while test "x$1" != "x$arg_sep"; do # Handle --option=value by splitting apart and putting back on argv. case "$1" in --*=*) opt=`echo "$1" | sed -e 's/=.*//'` val=`echo "$1" | sed -e 's/[^=]*=//'` shift set dummy "$opt" "$val" ${1+"$@"} shift ;; -[$option_without_arguments]?*) # Prefix $1 with x to avoid running `echo -na' for instance. opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` rest=`echo "x$1" | sed -e 's/x-.\(.*\)/-\1/'` shift set dummy "$opt" "$rest" ${1+"$@"} shift ;; # This case needs to be protected so that the case `-??*' does # not split long options without arguments --*) ;; # This is an option with argument. Split apart and put back on argv. -??*) opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` arg=`echo "x$1" | sed -e 's/x-.\(.*\)/\1/'` shift set dummy "$opt" "$arg" ${1+"$@"} shift ;; esac # Now, handle the options. $1 is the option *only*. If it has an # argument, it is now necessarily in $2 etc. Remember to shift # when fetching an argument. case "$1" in -v | --v*) echo "$version"; exit 0;; -h | --h*) echo "$usage"; exit 0;; -s|-q|--q*|--s*) verbose=: ;; -D | --debug) debug=: ;; -o|--output) shift a2ps_options="$a2ps_options --output=$1" ;; -l|--lines) diff_on=lines;; -w|--words) diff_on=words;; -) # We are working with stdin set dummy "${1+"$@"}" "$1"; shift;; --) # What remains are not options. shift while test "x$1" != "x$arg_sep"; do set dummy ${1+"$@"} "$1" shift shift done break;; -*) echo "$program: Unknown or ambiguous option \`$1'." >&2 echo "$program: Try \`--help' for more information." >&2 exit 1;; *) set dummy ${1+"$@"} "$1" shift ;; esac shift done # Pop the token shift # What remains is ORIG NEW [A2PS_OPTIONS...] if test $# -lt 2; then exec 1>&2 echo "$program: not enough arguments" echo "$help" exit 1 fi file1="$1" shift file2="$1" shift # Set the titles a2ps_options="--left-title=$file1 --right-title=$file2 $a2ps_options" a2ps_options="--center-title $a2ps_options" # Use the right prologue a2ps_options="--prolog=diff $a2ps_options" # Give the additional arguments given by the user a2ps_options="$@ $a2ps_options" # Set -x now if debugging test $debug && set -x # Call the correct diffing program, and pipe into a2ps case $diff_on in words) # Word differences $wdiff_prog $wdiff_options $file1 $file2 \ | $a2ps -Ewdiff $a2ps_options || exit 1 ;; lines) # Line differences # We need the total number of lines lines=`wc -l $file1 $file2 | sed -n 3p` lines=`set -- $lines && echo $1` $diff_prog $diff_options -$lines $file1 $file2 \ | $a2ps -gEudiff $a2ps_options || exit 1 ;; esac exit 0 �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132372�010174� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/.a2psrc�����������������������������������������������������������������������������0000644�0000000�0000000�00000000627�14365732673�011327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Helpful printers to produce the documentation in various forms Options: -2Z Printer: printer-doc\ | gzip -c > $d/doc-$N.ps.gz UserOption: make-doc -2ZPprinter-doc Printer: printer-book\ | psbook | psnup -2 | gzip -c > $d/book-$N.ps.gz UserOption: make-book -1Pprinter-book Printer: printer-cover\ | psselect 2,1 | psnup -2 | gzip -c > $d/cover-$N.ps.gz UserOption: make-cover -1Pprinter-cover -a1,2 ���������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000005240�14445053504�012150� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # ## Process this file with automake to produce Makefile.in info_TEXINFOS = a2ps.texi regex.texi a2ps_TEXINFOS = a2ps.texi $(generated_texinfos) version.texi TEXI2DVIFLAGS = -b -c -t "@setchapternewpage odd" # The a2ps of this package xa2ps = $(top_builddir)/src/a2ps defs = $(top_builddir)/tests/defs A2PS = a2ps generated_texinfos = \ encoding.texi prologue.texi sheets.texi MAINTAINERCLEANFILES = $(generated_texinfos) CLEANFILES = a2ps.tmp a2ps.tps EXTRA_DIST = $(generated_texinfos) .a2psrc # This is really the minimum form of dependency... sheets.texi: $(top_srcdir)/sheets/Makefile.am . $(defs) ; LC_ALL= LC_COLLATE=fr \ $(xa2ps) --list=ssh-texi > sheets.texi || rm sheets.texi encoding.texi: $(top_srcdir)/encoding/Makefile.am . $(defs) ; LC_ALL= LC_COLLATE=fr \ $(xa2ps) --list=edf-texi > encoding.texi || rm encoding.texi prologue.texi: $(top_srcdir)/ps/Makefile.am . $(defs) ; LC_ALL= LC_COLLATE=fr \ $(xa2ps) --list=pro-texi > prologue.texi || rm prologue.texi # # Various other outputs formats # docs: doc-a4 doc-us book-a4 book-us cover-a4 cover-us usdvi = $(PACKAGE)-$(VERSION).us.dvi a4dvi = $(PACKAGE)-$(VERSION).a4.dvi $(a4dvi): a2ps.texi $(TEXI2DVI) $(TEXI2DVIFLAGS) -t @afourpaper a2ps.texi mv a2ps.dvi $(a4dvi) $(usdvi): a2ps.texi $(TEXI2DVI) $(TEXI2DVIFLAGS) a2ps.texi mv a2ps.dvi $(usdvi) doc-a4: $(a4dvi) $(A2PS) -=make-doc -MA4 $(a4dvi) gzip -c $(a4dvi) > doc-$(a4dvi).gz doc-us: $(usdvi) $(A2PS) -=make-doc -MLetter $(usdvi) gzip -c $(usdvi) > doc-$(usdvi).gz book-a4: $(a4dvi) $(A2PS) -=make-book -MA4 $(a4dvi) book-us: $(usdvi) $(A2PS) -=make-book -MLetter $(usdvi) cover-a4: $(a4dvi) $(A2PS) -=make-cover -MA4 $(a4dvi) cover-us: $(usdvi) $(A2PS) -=make-cover -MLetter $(usdvi) # Note: I use a2html which puts better background and hlines. # you can put texi2html without any problems. html-local: a2ps.texi $(MAKEINFO) -E /tmp/a2ps.texi -o /dev/null a2ps.texi a2html -expandinfo -split_chapter -number /tmp/a2ps.texi ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000214123�14445132053�012160� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/version.texi \ $(srcdir)/stamp-vti $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) am__v_DVIPS_0 = @echo " DVIPS " $@; am__v_DVIPS_1 = AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; am__v_MAKEINFO_1 = AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) am__v_INFOHTML_0 = @echo " INFOHTML" $@; am__v_INFOHTML_1 = AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; am__v_TEXI2DVI_1 = AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; am__v_TEXI2PDF_1 = AM_V_texinfo = $(am__v_texinfo_@AM_V@) am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) am__v_texinfo_0 = -q am__v_texinfo_1 = AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) am__v_texidevnull_0 = > /dev/null am__v_texidevnull_1 = INFO_DEPS = $(srcdir)/a2ps.info $(srcdir)/regex.info TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux DVIS = a2ps.dvi regex.dvi PDFS = a2ps.pdf regex.pdf PSS = a2ps.ps regex.ps HTMLS = a2ps.html regex.html TEXINFOS = a2ps.texi regex.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__installdirs = "$(DESTDIR)$(infodir)" am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(a2ps_TEXINFOS) $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/mdate-sh \ $(top_srcdir)/build-aux/texinfo.tex DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ info_TEXINFOS = a2ps.texi regex.texi a2ps_TEXINFOS = a2ps.texi $(generated_texinfos) version.texi TEXI2DVIFLAGS = -b -c -t "@setchapternewpage odd" # The a2ps of this package xa2ps = $(top_builddir)/src/a2ps defs = $(top_builddir)/tests/defs A2PS = a2ps generated_texinfos = \ encoding.texi prologue.texi sheets.texi MAINTAINERCLEANFILES = $(generated_texinfos) CLEANFILES = a2ps.tmp a2ps.tps EXTRA_DIST = $(generated_texinfos) .a2psrc usdvi = $(PACKAGE)-$(VERSION).us.dvi a4dvi = $(PACKAGE)-$(VERSION).a4.dvi all: all-am .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs .texi.info: $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ $(am__cd) $(srcdir); \ else \ rc=$$?; \ $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ $< .texi.pdf: $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ $< .texi.html: $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@ && mv $(@:.html=.htp) $@; \ else \ rm -rf $(@:.html=.htp); exit 1; \ fi $(srcdir)/a2ps.info: a2ps.texi $(srcdir)/version.texi $(a2ps_TEXINFOS) a2ps.dvi: a2ps.texi $(srcdir)/version.texi $(a2ps_TEXINFOS) a2ps.pdf: a2ps.texi $(srcdir)/version.texi $(a2ps_TEXINFOS) a2ps.html: a2ps.texi $(srcdir)/version.texi $(a2ps_TEXINFOS) $(srcdir)/version.texi: $(srcdir)/stamp-vti $(srcdir)/stamp-vti: a2ps.texi $(top_srcdir)/configure @(dir=.; test -f ./a2ps.texi || dir=$(srcdir); \ set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/a2ps.texi`; \ echo "@set UPDATED $$1 $$2 $$3"; \ echo "@set UPDATED-MONTH $$2 $$3"; \ echo "@set EDITION $(VERSION)"; \ echo "@set VERSION $(VERSION)") > vti.tmp$$$$ && \ (cmp -s vti.tmp$$$$ $(srcdir)/version.texi \ || (echo "Updating $(srcdir)/version.texi" && \ cp vti.tmp$$$$ $(srcdir)/version.texi.tmp$$$$ && \ mv $(srcdir)/version.texi.tmp$$$$ $(srcdir)/version.texi)) && \ rm -f vti.tmp$$$$ $(srcdir)/version.texi.$$$$ @cp $(srcdir)/version.texi $@ mostlyclean-vti: -rm -f vti.tmp* $(srcdir)/version.texi.tmp* maintainer-clean-vti: -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi $(srcdir)/regex.info: regex.texi regex.dvi: regex.texi regex.pdf: regex.texi regex.html: regex.texi .dvi.ps: $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) $(AM_V_texinfo) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-info-am: @$(PRE_UNINSTALL) @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done uninstall-pdf-am: @$(NORMAL_UNINSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f "$(distdir)/$$relfile" || \ cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf a2ps.t2d a2ps.t2p regex.t2d regex.t2p clean-aminfo: -test -z "a2ps.dvi a2ps.pdf a2ps.ps a2ps.html regex.dvi regex.pdf regex.ps \ regex.html" \ || rm -rf a2ps.dvi a2ps.pdf a2ps.ps a2ps.html regex.dvi regex.pdf regex.ps \ regex.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: check-am all-am: Makefile $(INFO_DEPS) installdirs: for dir in "$(DESTDIR)$(infodir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: $(DVIS) html: html-am html-am: $(HTMLS) html-local info: info-am info-am: $(INFO_DEPS) install-data-am: install-info-am install-dvi: install-dvi-am install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: install-html: install-html-am install-html-am: $(HTMLS) @$(NORMAL_INSTALL) @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ $(am__strip_dir) \ d2=$$d$$p; \ if test -d "$$d2"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ list2="$$list2 $$d2"; \ fi; \ done; \ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done; } install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ fi; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ done; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-pdf: install-pdf-am install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-am install-ps-am: $(PSS) @$(NORMAL_INSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic maintainer-clean-vti mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \ mostlyclean-libtool mostlyclean-vti pdf: pdf-am pdf-am: $(PDFS) ps: ps-am ps-am: $(PSS) uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-pdf-am uninstall-ps-am .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-aminfo clean-generic \ clean-libtool cscopelist-am ctags-am dist-info distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am html-local info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs loc-am loc-local \ maintainer-clean maintainer-clean-aminfo \ maintainer-clean-generic maintainer-clean-vti mostlyclean \ mostlyclean-aminfo mostlyclean-generic mostlyclean-libtool \ mostlyclean-vti pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-dvi-am uninstall-html-am \ uninstall-info-am uninstall-pdf-am uninstall-ps-am .PRECIOUS: Makefile # This is really the minimum form of dependency... sheets.texi: $(top_srcdir)/sheets/Makefile.am . $(defs) ; LC_ALL= LC_COLLATE=fr \ $(xa2ps) --list=ssh-texi > sheets.texi || rm sheets.texi encoding.texi: $(top_srcdir)/encoding/Makefile.am . $(defs) ; LC_ALL= LC_COLLATE=fr \ $(xa2ps) --list=edf-texi > encoding.texi || rm encoding.texi prologue.texi: $(top_srcdir)/ps/Makefile.am . $(defs) ; LC_ALL= LC_COLLATE=fr \ $(xa2ps) --list=pro-texi > prologue.texi || rm prologue.texi # # Various other outputs formats # docs: doc-a4 doc-us book-a4 book-us cover-a4 cover-us $(a4dvi): a2ps.texi $(TEXI2DVI) $(TEXI2DVIFLAGS) -t @afourpaper a2ps.texi mv a2ps.dvi $(a4dvi) $(usdvi): a2ps.texi $(TEXI2DVI) $(TEXI2DVIFLAGS) a2ps.texi mv a2ps.dvi $(usdvi) doc-a4: $(a4dvi) $(A2PS) -=make-doc -MA4 $(a4dvi) gzip -c $(a4dvi) > doc-$(a4dvi).gz doc-us: $(usdvi) $(A2PS) -=make-doc -MLetter $(usdvi) gzip -c $(usdvi) > doc-$(usdvi).gz book-a4: $(a4dvi) $(A2PS) -=make-book -MA4 $(a4dvi) book-us: $(usdvi) $(A2PS) -=make-book -MLetter $(usdvi) cover-a4: $(a4dvi) $(A2PS) -=make-cover -MA4 $(a4dvi) cover-us: $(usdvi) $(A2PS) -=make-cover -MLetter $(usdvi) # Note: I use a2html which puts better background and hlines. # you can put texi2html without any problems. html-local: a2ps.texi $(MAKEINFO) -E /tmp/a2ps.texi -o /dev/null a2ps.texi a2html -expandinfo -split_chapter -number /tmp/a2ps.texi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/a2ps.info���������������������������������������������������������������������������0000644�0000000�0000000�00000772257�14445132172�011660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This is a2ps.info, produced by makeinfo version 6.8 from a2ps.texi. INFO-DIR-SECTION Printing Tools START-INFO-DIR-ENTRY * a2ps: (a2ps). PostScript Generating Utility * PreScript: (a2ps) PreScript. Input language for a2ps * card: (a2ps) card. Print Reference Cards * fixps: (a2ps) fixps. Fixing Some Ill Designed PostScript Files * pdiff: (a2ps) pdiff. Produce Pretty Comparison of Files * lp2: (a2ps) lp2. Printing Duplex on Simplex Printers END-INFO-DIR-ENTRY This document describes GNU a2ps 4.15.5, a converter from various formats, included text, to PostScript converter, with pretty-printing abilities. Copyright 1988-2023 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled "Copying" is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the author.  File: a2ps.info, Node: Top, Next: Introduction, Up: (dir) a2ps **** GNU a2ps is a filter which generates PostScript from various formats, with pretty-printing features, strong support for many alphabets, and customizable layout. This is Edition 4.15.5 of the a2ps documentation, updated 22 June 2023. * Menu: * Introduction:: Foreword * User Guide:: Beginner should start here * Invoking a2ps:: The command line options * Configuration Files:: Tuning your a2ps * Library Files:: Dynamic extension of a2ps * Encodings:: Supporting various charsets * Pretty Printing:: Support for source files * PostScript:: PostScript specific informations * Contributions:: Tools around a2ps * FAQ:: Frequently Answered Questions * Glossary:: Small Dictionary * Genesis:: History of a2ps * Copying:: Your rights and ours * Concept Index:: Most words used in here Introduction * Description:: What a2ps is * Reporting Bugs:: What to do when you face problems * a2ps Mailing Lists:: Getting news about a2ps * Helping the Development:: How to contribute User's Guide * Purpose:: What a2ps is made for * How to print:: The basis * Important parameters:: What needs to be set * Localizing:: How to have a2ps speaking your language * Interfacing:: Using a2ps from common programs How to print * Basics for Printing:: Printing text files * Special Printers:: Some useful fake printers * Using Delegations:: Printing special files (PS, DVI etc.) * Printing Duplex:: Doing Fancy Things * Checking the Defaults:: Is it set the way you want? Interfacing with Other Programs * Interfacing With a Mailer:: Printing Mails or News * Post-processing:: Processing the output of other programs Invoking a2ps * Options:: Command line options * Escapes:: Strings ready to use in the headers Command line options * Tasks Options:: Exclusive options * Global Options:: Settings involving the whole process * Sheet Options:: Specify the layout on the sheet * Page Options:: Specify the virtual pages * Headings Options:: Specify the headers you want * Input Options:: How to process the input files * Pretty Print Options:: Source files support * Output Options:: What should be done of the output * PostScript Options:: PostScript specific options Escapes * Use of Escapes:: Where they are used * Structure of the Escapes:: Their syntax * Available Escapes:: Detailed list Configuration Files * Including Configuration Files:: Isolating site specific values * Your Library Path:: Setting the files search path * Your Default Options:: Default state of a2ps * Your Media:: Sheets dimensions * Your Printers:: How to access the printers * Your Shortcuts:: Your very own command line options * Your PostScript magic number:: Handling very old printers * Your Page Labels:: Page names as in 'Ghostview' * Your Variables:: Short cut for long sequences * Your Delegations:: Delegating some files to other filters * Your Internal Details:: Details you might want to tune Your Variables * Defining Variables:: Syntax and conventions * Predefined Variables:: Builtin variables Your Delegations * Defining a Delegation:: Syntax of the definitions of the delegations * Guide Line for Delegations:: What should be respected * Predefined Delegations:: Making the best use of these delegations Library Files * Documentation Format:: Special tags to write a documentation * Map Files:: Their general shape and rationale * Font Files:: Using other fonts * Style Sheet Files:: Defining pretty printing rules Font Files * Fonts Map File:: Mapping a font name to a file name * Fonts Description Files:: Needed files to use a Font * Adding More Font Support:: Using even more Fonts Encodings * What is an Encoding:: The concept of encoding explained * Encoding Files:: How a2ps handles the encodings Encoding Files * Encoding Map File:: Mapping an encoding name to a file name * Encoding Description Files:: Specifying an encoding * Some Encodings:: Classical or standard encodings Pretty Printing * Syntactic limits:: What can't be done * Known Style Sheets:: Some supported languages * Type Setting Style Sheets:: a2ps as a tiny word processor * Faces:: Encoding the look of pieces of text * Style sheets semantics:: What is to be defined * Style Sheets Implementation:: How they should be defined * A tutorial on style sheets:: Step by step example Type Setting Style Sheets * Symbol:: Access to the glyphs of the Symbol font * PreScript:: Typesetting in an a2ps like syntax * PreTeX:: Typesetting in a LaTeX like syntax * TeXScript:: Typesetting in a mixture of both PreScript * Syntax:: Lexical specifications * PreScript Commands:: * PreScript examples:: PreTeX * Special characters:: * PreTeX Commands:: * Differences with LaTeX:: Style Sheets Semantics * Name and key:: Both names of a style sheet * Comments:: Author name, version etc. * Alphabets:: What words are legal * Case sensitivity:: Is BEGIN different of begin * P-Rules:: Pretty Printing Rules * Sequences:: Strings, comments etc. * Optional entries:: Second level of pretty printing Style Sheets Implementation * A Bit of Syntax:: Lexical rules of the ssh language * Style Sheet Header:: Declaration of a style * Syntax of the Words:: Classes of the Characters * Inheriting:: Extending existing style sheets * Syntax for the P-Rules:: Atomic Pretty Printing rules * Declaring keywords and operators:: Special Classes of Identifiers * Declaring sequences:: Bordered Lexical Entities * Checking a Style Sheet:: Ask a2ps to Check the Sheet A Tutorial on Style Sheets * Example and syntax:: ChangeLog files * Implementation:: Implementation of chlog.ssh * The Entry in sheets.map:: Getting automatic style selection * More Sophisticated Rules:: Complex regular expressions * Distributed Style Sheets:: Additional Constraints PostScript * Good and Bad PostScript:: How to lose, how to win * Page Device Options:: Accessing some printers' features * Statusdict Options:: Some other features * Colors in PostScript:: Specifying a color or a gray * a2ps PostScript Files:: Convention for PostScript library files * Designing PostScript Prologues:: Make it look like what you want Designing PostScript Prologues * Definition of the faces:: What goes in a characters style * Prologue File Format:: Including documentation * A prologue example:: A step by step example Contributions * card:: Printing Reference Cards * fixps:: Fixing Some Ill Designed PostScript Files * pdiff:: Produce Pretty Comparison of Files * lp2:: Printing Duplex on Simplex Printers 'card' * Invoking card:: Command Line Interface * Caution when Using card:: card runs commands 'fixps' * Invoking fixps:: Command Line Interface 'pdiff' * Invoking pdiff:: Command Line Interface 'lp2' * Invoking lp2:: Command Line Interface Frequently asked questions * Why Does ...?:: Questions on Error * How Can I ...?:: a2ps' How-To * Please tell me...:: Existential Questions on a2ps Why Does...? * It Prints Nothing:: The printer issues nothing * It Prints in Simplex:: While I asked for Duplex * It Prints in Duplex:: While I asked for Simplex * It Does Not Fit on the Paper:: Some parts are missing * It Prints Junk:: Random characters * It Says my File is Binary:: And refuses to print it * It Refuses to Change the Font Size:: How Can I ...? * Leave Room for Binding:: Specifying Margins * Print stdin:: Using a2ps in a pipe chain * Change the Fonts:: Tired of Courier? * The Old Option -b?:: Printing in Bold * Pass Options to lpr:: Disable the banner * Man Pages with Underlines:: Now it Prints With Italics Please tell me... * Is a2ps Y2K compliant?:: Printing dates in short format * Why not using yacc:: Why Using Style Sheets Genesis * History:: Where does it come from * Thanks:: People who really helped  File: a2ps.info, Node: Introduction, Next: User Guide, Prev: Top, Up: Top 1 Introduction ************** This document describes GNU a2ps version 4.15.5. The latest versions may be found on the home page (https://www.gnu.org/software/a2ps/). We plan to update the GNU home page (https://www.gnu.org/software/a2ps/) in the near future, in which case the latter will be a better source of information. We tried to make this document informative and pleasant. It tries to be more than a plain reference guide, and intends to offer information about the concepts or tools etc. that are related to printing PostScript. This is why it is now that big: to offer you all the information you might want, *not* because a2ps is difficult to use. *Note Glossary::, for technical words or even general information. Please, send us emailcards ':)'. Whatever the comment is, or if you just like a2ps, write to Miguel Santana <Miguel.Santana@st.com> and Akim Demaille <akim@freefriends.org>. But _never_ write to either of us for asking questions, or to report bugs. Chances are very high never to receive an answer, as we receive too many messages. *Note a2ps Mailing Lists::, for information on the mailing lists. * Menu: * Description:: What a2ps is * Reporting Bugs:: What to do when you face problems * a2ps Mailing Lists:: Getting news about a2ps * Helping the Development:: How to contribute  File: a2ps.info, Node: Description, Next: Reporting Bugs, Up: Introduction 1.1 Description =============== a2ps formats files for printing on a PostScript printer. The format used is nice and compact: normally two pages on each physical page, borders surrounding pages, headers with useful information (page number, printing date, file name or supplied header), line numbering, pretty-printing, symbol substitution etc. This is very useful for making archive listings of programs or just to check your code in the bus. Actually a2ps is kind of bootstrapped: its sources are frequently printed with a2ps ':)'. While at the origin its names was derived from "ASCII to PostScript", today we like to think of it as "Any to PostScript". Indeed, a2ps supports "delegations", i.e., you can safely use a2ps to print DVI, PostScript, LaTeX, JPEG etc., even compressed. A short list of features of a2ps might look like this: - Customizable through various configuration files (*note Configuration Files::) - Powerful escapes to define the headers, table of contents etc. the way you want (*note Escapes::); - Variables to push even further the customizability in a comfortable manner (*note Your Variables::); - Open approach of encodings (*note Encodings::); - Excellent support of the Latin 2, 3, 4, 5 and 6 encodings, thanks to 'Ogonkify' (*note Overview: (ogonkify)top.), written by Juliusz Chroboczek. - Fully customizable output style: fonts, background and foreground colors, line numbering style etc. (*note Designing PostScript Prologues::). - Possibility to delegate the processing of some files to other filters (*note Your Delegations::). - Many contributions, e.g., pretty-print diffs, print reference cards of programs, sanitize broken PostScript files, print Duplex on Simplex printers etc. (*note Contributions::). - And finally, the ability to pretty-print sources written in quite a few various languages (*note Pretty Printing::).  File: a2ps.info, Node: Reporting Bugs, Next: a2ps Mailing Lists, Prev: Description, Up: Introduction 1.2 Reporting Bugs ================== We try hard to make a2ps portable on any Unix platform, and bug free. But sometimes there can still be bad surprises, even after having compiled and checked a2ps on several very different platforms. You may encounter some of these problems yourself. In any case, please never abandon without giving us a chance. We need information from everybody so that mistakes get fixed as fast as possible. So, if you have a problem (configuration error, compilation error, runtime error, documentation error or unclear), first check in the FAQ (*note FAQ::), then on the page Known Bugs (https://www.gnu.org/software/a2ps//bugs.html) if the issue has not been addressed yet. If it is not the case, but it appears that the version of a2ps you have is old, consider upgrading. If the problem persists, send us a mail (<bug-a2ps@gnu.org>) which subject is 'a2ps VERSION: SHORT-DESCRIPTION' and which content mentions the name of your machine and OS, the version of a2ps, every detail you have on your compiler, and as much traces as possible (the error messages you get on the screen, or the output of 'make' when it fails etc.). Be sure to get a quick answer.  File: a2ps.info, Node: a2ps Mailing Lists, Next: Helping the Development, Prev: Reporting Bugs, Up: Introduction 1.3 a2ps Mailing Lists ====================== There are several mailing lists related to a2ps: <a2ps@gnu.org> This list is dedicated to announcements, questions/answers, etc. The alpha versions are announced too. Requests and suggestions can be sent there. <bug-a2ps@gnu.org> Any bug report should be sent to this address. Please, be sure to state the version of a2ps in the subject of your message, together with a short description of the problem. In the body of the message, include all the information that might be relevant: the system you run, etc. <a2ps-patches@gnu.org> Send patches, style sheets, new delegations etc. to this list. In other words, any candidate for inclusion into a2ps should be sent to this list. It also serves to coordinate the developers. If you are interested in the development of a2ps, then visit the Savannah a2ps page (https://savannah.gnu.org/projects/a2ps/). <a2ps-commit@gnu.org> Each time a change is made the main a2ps repository, a message is sent to this mailing list. For developers only. To subscribe to any of these list, go to their web pages: a2ps (https://mail.gnu.org/mailman/listinfo/a2ps), bug-a2ps (https://mail.gnu.org/mailman/listinfo/bug-a2ps), a2ps-patches (https://mail.gnu.org/mailman/listinfo/a2ps-patches), and a2ps-commit (https://mail.gnu.org/mailman/listinfo/a2ps-patches). Be sure _never_ to send a private message to one of the authors, as it is approximately the best means never to get an answer. In addition it is counter productive for the community, as the answer to your question might have interested more people.  File: a2ps.info, Node: Helping the Development, Prev: a2ps Mailing Lists, Up: Introduction 1.4 Helping the Development =========================== If you like a2ps and if you feel like helping, there are several things you can do. _Testing_ You just can't imagine how hard it is to make sure that the program that works perfectly here will work on your machine. Actually, in general the last weeks before a release are mostly dedicated to (Unix) portability issues. So we *need* beta-testers! To be one is fairly simple: subscribe to the mailing-list where the betas are announced and distributed. _Translation_ The interface of a2ps is under 'GNU gettext' which means that all the messages can be translated, without having to look at the code of a2ps: you don't need to be a programmer at all. All the details are available on the a2ps translation page (https://www.gnu.org/software/a2ps//po/). _Style Sheets_ Since a2ps is evolving and getting more powerful, the style sheets should be checked and improved. There are too many so that the authors work on them. Therefore if you feel your favorite language is not honored as it should be, improve the style sheet! (*note Pretty Printing:: for details.) _Encodings_ a2ps is wide open to any 8-bit encoding. If your language is not covered today by a2ps, you can easily provide the support yourself. Honestly, the trickiest part is to find correct *free* fonts that support your mother tongue (*note Encoding Files::, to know more). _Fonts_ There are still some characters missing in Ogonkify. See the list of missing characters (https://www.irif.fr/~jch//software/ogonkify/missing.html) and the Ogonkify home page (https://www.irif.fr/~jch//software/ogonkify/) for details. _Documentation_ If you feel something is missing or is unclear, send us your contributions. _Porting_ Porting a program to special architectures (MS-DOS, OS/2 etc.), or building special packages (e.g., RPM) requires having an access to these architectures. If you feel like maintaining such a port, tell us. _Features_ Well, if you feel like doing something else, go ahead! But contact us, because we have quite a big stack of things we want to do or have started to do, and synchronizing might be useful.  File: a2ps.info, Node: User Guide, Next: Invoking a2ps, Prev: Introduction, Up: Top 2 User's Guide ************** This chapter is devoted to people who don't know a2ps yet: we try to give a soft and smooth introduction to the most useful features. For a reference manual, see *note Invoking a2ps::. For the definition of some words, see *note Glossary::, for questions you have, see *note FAQ::. * Menu: * Purpose:: What a2ps is made for * How to print:: The basis * Important parameters:: What needs to be set * Localizing:: How to have a2ps speaking your language * Interfacing:: Using a2ps from common programs  File: a2ps.info, Node: Purpose, Next: How to print, Up: User Guide 2.1 Purpose =========== a2ps is a program that takes a text file (i.e., human readable), and makes a PostScript file out of it. Typically output is sent to a printer.  File: a2ps.info, Node: How to print, Next: Important parameters, Prev: Purpose, Up: User Guide 2.2 How to print ================ To print a file 'doc.txt', just give it to a2ps: the default setting should be the one you'd like: gargantua ~ $ a2ps doc.txt [doc.txt (plain): 9 pages on 5 sheets] [Total: 9 pages on 5 sheets] sent to the default printer a2ps sent the file 'doc.txt' to the default printer, writing two columns of text on a single face of the sheet. Indeed, by default a2ps uses the option '-2', standing for two virtual pages. * Menu: * Basics for Printing:: Printing text files * Special Printers:: Some useful fake printers * Using Delegations:: Printing special files (PS, DVI etc.) * Printing Duplex:: Doing Fancy Things * Checking the Defaults:: Is it set the way you want?  File: a2ps.info, Node: Basics for Printing, Next: Special Printers, Up: How to print 2.2.1 Basics for Printing ------------------------- Say you want to print the C file 'bar.c', and its header 'foo.h', on 4 virtual pages, and save it into the file 'foobar.ps'. Just hit: gargantua $ a2ps foo.h bar.c -4 -o foobar.ps [foo.h (C): 1 page on 1 sheet] [bar.c (C): 3 pages on 1 sheet] [Total: 4 pages on 2 sheets] saved into the file `foobar.ps' The option '-4' tells a2ps to make four virtual pages: two rows by two columns. The option '-o foobar.ps' (which is the short version of '--output=foobar.ps') specifies the output file. Long options must always be separated by spaces, though short options with no arguments may be grouped. Note too that the options may be specified before or after the files, it does not matter. If you send 'foobar.ps' to a printer, you'll discover that the keywords were highlighted, that the strings and comments have a different face. Indeed, a2ps is a "pretty-printer": if it knows the (programming) language in which your file is written, it will try to make it look nice and clear on the paper. But too bad: 'foo.h' is only one virtual page long, and 'bar.c' takes three. Moreover, the comments are essential in those files. And even worse: the system's default printer is out of ink. Thanks god, precious options may help you: gargantua $ a2ps -4 -Av foo.h bar.c --prologue=gray -P lw [foo.h (C): 1 page on 1 sheet] [bar.c (C): 3 pages on 1 sheet] [Total: 4 pages on 1 sheet] sent to the printer `lw' Here the option '-A' is a short cut for the option '--file-align' which specifies how different files should be separated. This option allows several symbolic arguments: 'virtual', 'rank', 'page', 'sheet' (*Note Sheet Options::, for more details). The value 'virtual' means not to start each file on a different virtual pages. So to fill the page is asked by '--file-align=virtual', or '-A virtual'. But symbolic arguments can be abbreviated when there are no ambiguity, so here, you can just use '-Av'. The option '-P lw' means to print on the printer named 'lw', and finally, the long option '--prologue' requires the use one of the alternative printing styles. There are other prologues (*Note Input Options::, option '--prologue'), and you can even design yours (*note Designing PostScript Prologues::).  File: a2ps.info, Node: Special Printers, Next: Using Delegations, Prev: Basics for Printing, Up: How to print 2.2.2 Special Printers ---------------------- There are three special printers pre-defined. The first one, 'void', sends the output to the trash. Its main use is to see how many pages would have been used. gargantua ~ $ a2ps -P void parsessh.c [parsessh.c (C): 33 pages on 17 sheets] [Total: 33 pages on 17 sheets] sent to the printer `void' The second, 'display' sends the output to 'Ghostview', so that you can check the output without printing. Of course if you don't have 'Ghostview', it won't work... And it is up to you to configure another displaying application (*note Your Printers::). The last, 'file' saves the output into a file named after the file you printed (e.g., saves into 'foo.ps' when you print 'foo.c').  File: a2ps.info, Node: Using Delegations, Next: Printing Duplex, Prev: Special Printers, Up: How to print 2.2.3 Using Delegations ----------------------- a2ps can decide that a2ps itself is not the right tool to do what you want. In that case it delegates the task to other programs. What you should retain from this, is, _forget that there are delegations_. Indeed, the interface with the delegations has been designed so that you don't need to be aware that they exist to use them. Do as usual. As an example, if you need to print a PostScript file, just hit: gargantua ~ $ a2ps article.ps -d [article.ps (ps, delegated to PsNup): 7 pages on 4 sheets] [Total: 8 pages on 4 sheets] sent to the default printer While honoring your defaults settings, a2ps delegates the task to put two virtual pages per physical page to 'psnup', a powerful filter part of the famous 'psutils' by Angus Duggan. Suppose now that you want to display a Texinfo file. Then, provided you have all the programs a2ps needs, just hit gargantua ~ $ a2ps a2ps.texi -P display [a2ps.texi (texinfo, delegated to texi2dvi): 75 pages on 38 sheets] [Total: 76 pages on 38 sheets] sent to the printer `display' Once the read documentation, you know you want to print just pages 10 to 20, plus the cover. Just hit: gargantua ~ $ a2ps a2ps.texi --pages=1,10-20 -d [a2ps.texi (texinfo, delegated to texi2dvi): 13 pages on 7 sheets] [Total: 14 pages on 7 sheets] sent to the default printer A final word: compressed files can be treated in the very same way: gargantua ~ $ a2ps a2ps.texi.gz -a1,10-20 -d [a2ps.texi (compressed, delegated to Gzip-a2ps): 13 pages on 7 sheets] [Total: 14 pages on 7 sheets] sent to the default printer You should be aware that: - the option '-Z' enables the delegations if they are not (see '--list=defaults' for your settings); - the set of delegations is customizable, to know the delegations your a2ps knows, consult 'a2ps --list=delegations'.  File: a2ps.info, Node: Printing Duplex, Next: Checking the Defaults, Prev: Using Delegations, Up: How to print 2.2.4 Printing Duplex --------------------- If you still want to save more paper, and you are amongst the set of happy users of Duplex printers, a2ps will also be able to help you (*Note Glossary::, for definitions). The option to specify Duplex printing is '--sides=MODE' (*note PostScript Options::). Here is how to print the documentation in Duplex and send it to the Duplex printer 'margot': quasimodo ~ a2ps/doc $ a2ps -s2 -Pmargot a2ps.texi [a2ps.texi (texinfo, delegated to texi2dvi): 109 pages on 28 sheets] [Total: 110 pages on 28 sheets] sent to the printer `margot' This is also valid for several files. Actually, you can do something even more tricky: print a small book! This is much more complicated than printing Duplex, because the pages needs to be completely reorganized another way. This is precisely the job of 'psbook', yet another PsUtil from Angus Duggan. But there is a user option which encapsulates the magic sequence of options: 'book'. Therefore, just run quasimodo a2ps/doc $ a2ps -=book -Pmargot a2ps.texi [a2ps.texi (texinfo, delegated to texi2dvi): 109 pages on 109 sheets] [Total: 109 pages on 109 sheets] sent to the printer `margot' and voila' !, a booklet printed on margot! We strongly discourage you to try with several files at once, because the tools then easily get lost. And, after all, the result will be exactly the same once you collated all the booklets together. Another limitation is that this does not work if it is not sent to a printer. This kind of weird limitations will be solved in the future.  File: a2ps.info, Node: Checking the Defaults, Prev: Printing Duplex, Up: How to print 2.2.5 Checking the Defaults --------------------------- If a2ps did not have the behavior expected, this may be because of the default settings given by your system administrator. Checking those default values is easy: ~ % a2ps --list=defaults Configuration status of a2ps 4.12a ================================== Sheets: ------- medium = A4, portrait page layout = 1 x 1, rows first borders = yes file alignment = page interior margin = 0 _More stuff deleted here_ Internals: ---------- verbosity level = 2 file command = /usr/bin/file -L temporary directory = /tmp library path = /home/akim/.a2ps /usr/share/a2ps/sheets /usr/share/a2ps/ps /usr/share/a2ps/encoding /usr/share/a2ps/afm /usr/share/ogonkify/afm /usr/share/a2ps/ppd /usr/share/a2ps/fonts /usr/share/ogonkify/fonts /usr/share/a2ps Remember that the on-line help is always available. Moreover, if your screen is small, you may _pipe_ it into 'more'. Just trust this: a2ps --help | more  File: a2ps.info, Node: Important parameters, Next: Localizing, Prev: How to print, Up: User Guide 2.3 Important parameters ======================== Many things are parameterizable in a2ps, but two things are just essential to make sure everything goes right: *The paper* Make sure that the paper a2ps uses is the same as your printer (*Note Sheet Options::, option '--medium'). *The encoding* Make sure that the _encoding_ a2ps uses is the same as the standard alphabet in your country (*Note Input Options::, option '--encoding'). Both values may be checked with 'a2ps --list=defaults'.  File: a2ps.info, Node: Localizing, Next: Interfacing, Prev: Important parameters, Up: User Guide 2.4 Localizing ============== a2ps provides some Native Language Support, that is speaking your mother tongue. It uses three special features for non-English languages: _the tongue_ i.e., the language used by the interface, _the date_ i.e., the format and the words used in the language to specify a date. To enable these features, properly set your environment variable 'LANG' (see the documentation of your system, for instance 'man locale', 'man environ' etc.). The problem with this approach is that a lot more than just messages and time information is affected: especially the way numbers are written changes, what may cause problems with 'awk' and such. So if you just want messages and time format to be localized, then define: set LC_MESSAGES=fr ; export LC_MESSAGES set LC_TIME=fr ; export LC_TIME  File: a2ps.info, Node: Interfacing, Prev: Localizing, Up: User Guide 2.5 Interfacing with Other Programs =================================== Here are some tips on how to use a2ps with other programs. * Menu: * Interfacing With a Mailer:: Printing Mails or News * Post-processing:: Processing the output of other programs  File: a2ps.info, Node: Interfacing With a Mailer, Next: Post-processing, Up: Interfacing 2.5.1 Interfacing With a Mailer ------------------------------- When you print from a mailer (or a news reader), your mailer calls a tool, say a2ps on a part of the whole mailbox. This makes it difficult for a2ps to guess that the file is of the type 'mail'. Therefore, for better results, make sure to tell a2ps the files are mails. The user option 'mail' (or 'longmail' for longer inputs) encapsulates most typical tuning users want to print mails (for instance, don't print all the headers). Most specifically, if your mailer is: 'elm' Once you are in elm, hit 'o' to enter in the options edition menu, hit 'p' to edit the printer command, and enter 'a2ps -=mail %s -d'. The option '-d' means to print on the default printer. 'pine' Jan Chrillesen <jan@chrillesen.dk> suggests us how to use a2ps with the Pine mail-reader. Add the following to '.pinerc' (of course you can put it in 'pine.conf' as well): # Your printer selection printer=a2ps -=mail -d # Special print command personal-print-command=a2ps -=mail -d  File: a2ps.info, Node: Post-processing, Prev: Interfacing With a Mailer, Up: Interfacing 2.5.2 Processing the output of other programs --------------------------------------------- Use the following command: a2ps Not too hard, isn't it? Nevertheless, this setting suppose your world is OK, your 'file(1)' detects correctly PostScript files, and your a2ps is configured to delegate. In case one one these conditions is not met, use: a2ps -ZEps Do not forget to tell the program whose output you are processing whether your printer supports colors, and the type of paper it uses.  File: a2ps.info, Node: Invoking a2ps, Next: Configuration Files, Prev: User Guide, Up: Top 3 Invoking a2ps *************** Calling a2ps is fairly simple: a2ps OPTIONS... FILES... If no FILES... are given, a2ps prints its standard input. If '-' appears in the FILES..., it designates the standard input too. * Menu: * Options:: Command line options * Escapes:: Strings ready to use in the headers  File: a2ps.info, Node: Options, Next: Escapes, Up: Invoking a2ps 3.1 Command line options ======================== To read the options and arguments that you give, a2ps uses GNU 'getopt', hence: - the options (short with arguments or long) must be separated by spaces. - the order between options and files does not matter: 'a2ps -4m main.c' and 'a2ps main.c -4m' are identical. - the order between options *does matter*, especially between options that influence the same parameters. For instance 'a2ps -1 -l132' is not the same as 'a2ps -l132 -1' (the latter being equivalent to 'a2ps -1'). - short options may be grouped together: 'a2ps -4mg main.c -P printer' - when there are no ambiguities, long options can be abbreviated, e.g., '--pro' will be understood as '--prologue', - '--' ends the options. Anything behind '--' is considered to be a file: 'a2ps -- -2' prints the file '-2'(1). Here after a BOOLEAN is considered as true (i.e. setting the option on), if BOOLEAN is 'yes', or '1'; as false if it equals 'no' or '0'; and raise an error otherwise. The corresponding short option takes no arguments, but corresponds to a positive answer. When an argument is presented between square brackets, it means that it is optional. Optional arguments to short option must never be separated from the option. * Menu: * Tasks Options:: Exclusive options * Global Options:: Settings involving the whole process * Sheet Options:: Specify the layout on the sheet * Page Options:: Specify the virtual pages * Headings Options:: Specify the headers you want * Input Options:: How to process the input files * Pretty Print Options:: Source files support * Output Options:: What should be done of the output * PostScript Options:: PostScript specific options ---------- Footnotes ---------- (1) A classical Unix trick to make the difference between the option '-2', and the file '-2' is to type './-2'.  File: a2ps.info, Node: Tasks Options, Next: Global Options, Up: Options 3.1.1 Tasks Options ------------------- Task options specify the task a2ps will perform. It will not print, it executes the task and exits successfully. -- Option: --version print version and exit successfully. -- Option: --help Print a short help, and exit successfully. -- Option: --copyright Display Copyright and copying conditions, and exit successfully. -- Option: --guess Act like 'file' does: display the (key of the) type of the FILES. For instance, on a 'C' file, you expect it to answer 'c', and upon a PostScript file, 'ps'. This can be very useful on broken systems to understand why a file is printed with a bad style sheet (*note Style Sheet Files::). -- Option: --which Look in the library for the files which names are given as arguments. For instance: ~ % a2ps --which bw.pro gray.pro /usr/local/share/a2ps/ps/bw.pro /usr/local/share/a2ps/ps/gray.pro If there are several library files matching the name, only the first one is reported: this allows to check which occurrence of a file is used by a2ps. -- Option: --glob Look in the library for the files which names match the patterns given as arguments. For instance: ~ % a2ps --glob 'g*.pro' /usr/local/share/a2ps/ps/gray.pro /usr/local/share/a2ps/ps/gray2.pro -- Option: --list=TOPIC Display a report on a2ps' status with respect to TOPIC, and exit successfully. TOPIC can be any non-ambiguous abbreviation of: 'defaults' 'options' Give an extensive report on a2ps configuration and installation. 'features' Known media, encodings, languages, prologues, printers, variables, delegations and user options are reported. In a word, anything that you may define. 'delegations' Detailed list of the delegations. *Note Your Delegations::. 'encodings' Detailed list of known encodings. *Note Some Encodings::. 'media' Detailed list of known media. *Note Your Media::. 'prologues' Detailed list of PostScript prologues. *Note Designing PostScript Prologues::. 'printers' Detailed list of printers and named outputs. *Note Your Printers::. 'style-sheets' Detailed list of the known style sheets. *Note Known Style Sheets::. 'user-options' Detailed list of the user options. *Note Your Shortcuts::. 'variables' Detailed list of the variables. *Note Your Variables::. There are also options meant for the maintainers only, presented for sake of completeness. 'texinfo-style-sheets' 'ssh-texi' Detailed list of known style sheets in Texinfo format. If the 'sheet' verbosity is set, report version numbers, requirements and ancestors. 'html-style-sheets' 'ssh-html' Detailed list of the style sheets in 'HTML' format. 'texinfo-encodings' 'edf-texi' Detailed list of encodings, in Texinfo format. 'texinfo-prologues' 'pro-texi' Detailed list of prologues, in Texinfo format.  File: a2ps.info, Node: Global Options, Next: Sheet Options, Prev: Tasks Options, Up: Options 3.1.2 Global Options -------------------- These options are related to the interface between you and a2ps. -- Option: -q -- Option: --quiet -- Option: --silent be really quiet -- Option: -v[LEVEL] -- Option: --verbose[=LEVEL] tell what we are doing. At - LEVEL = 0, report nothing, - LEVEL = 1, a2ps just prints the total number of pages printed, - LEVEL = 2 (default), it reports it for each file, - above, it gives internal details. There is also an interface made for the maintainer with finer grained selection of the verbosity level. LEVEL is a list of tokens (non ambiguous abbreviations are valid) separated by either ',' or '+'. The tokens may be: 'configuration' 'options' reading the configurations files and the options, 'encodings' the encodings, 'expert' more detailed information is provided: PPD listings is exhaustive, 'files' inputs and outputs, 'fonts' the fonts, 'escapes' 'variables' 'meta-sequences' the expansion of escapes and variables, 'parsers' any parsing process (style sheets, PPD files etc.), 'pathwalk' 'pw' the search for files, 'ppd' PPD processing, 'sheets' the style sheets, 'stats' statistics on some internal data structures, 'tools' launched programs or shell commands ; triggers the escape '?V' on (*note Available Escapes::), 'all' all the messages. When a2ps is launched it consults the environment variable 'A2PS_VERBOSITY'. If it is set, this defines the verbosity level for the whole session (options '--verbose', and '-q' etc. have then no influence). The valid values for 'A2PS_VERBOSITY' are exactly the valid arguments of the option '--verbose'. This helps tracking down configuration problems that occur _before_ a2ps had even a chance to read the command line. -- Option: -=SHORTCUT -- Option: --user-option=SHORTCUT use the SHORTCUT defined by the user. *Note Your Shortcuts::. Shortcuts may be freely mixed with regular options and arguments. There are a few predefined user-options: 'lp' emulates a line printer, i.e., turn off most 'pretty' features. 'mail' 'longmail' preferred options to print a mail or a news. 'longmail' prints more text on a single sheet. 'manual' make the job be printed on the manually fed tray. -- Option: --debug enable debugging features. They are: - print the overall BoundingBox in PostScript; - down load a PostScript debugger which helps understanding why a printer may reject a file. -- Option: -D KEY[=VALUE] -- Option: --define=KEY[=VALUE] Without VALUE, unset the variable KEY. Otherwise, set it to VALUE. *Note Your Variables::, for more details. Note that '-Dfoo=' gives FOO an empty value, though '-Dfoo' unsets foo.  File: a2ps.info, Node: Sheet Options, Next: Page Options, Prev: Global Options, Up: Options 3.1.3 Sheet Options ------------------- This options specify the general layout, how the sheet should be used. -- Option: -M MEDIUM -- Option: --medium=MEDIUM use output medium MEDIUM. See the output of 'a2ps --list=media' for the list of supported media. Typical values are 'A3', 'A4', 'A5', 'B4', 'B5', 'Letter', 'Legal'. The default is the user's preferred paper size, or the system default; see the man page of 'paper' for how this is configured. The default paper size may also be requested explicitly with the name 'libpaper'. -- Option: -r -- Option: --landscape print in landscape mode -- Option: -R -- Option: --portrait print in portrait mode -- Option: --columns=NUM specify the number of columns of virtual pages per physical page. -- Option: --rows=NUM specify the number of rows of virtual pages per physical page. -- Option: --major=DIRECTION specify whether the virtual pages should be first filled in rows (DIRECTION = 'rows') or in columns (DIRECTION = 'columns'). -- Option: -1 1 x 1 portrait, 80 chars/line, major rows (i.e. alias for '--columns=1 --rows=1 --portrait --chars-per-line=80 --major=rows'). -- Option: -2 2 x 1 landscape, 80 chars/line, major rows. -- Option: -3 3 x 1 landscape, 80 chars/line, major rows. -- Option: -4 2 x 2 portrait, 80 chars/line, major rows. -- Option: -5 5 x 1 landscape, 80 chars/line, major rows. -- Option: -6 3 x 2 landscape, 80 chars/line, major rows. -- Option: -7 7 x 1 landscape, 80 chars/line, major rows. -- Option: -8 4 x 2 landscape, 80 chars/line, major rows. -- Option: -9 3 x 3 portrait, 80 chars/line, major rows. -- Option: -j -- Option: --borders=BOOLEAN print borders around virtual pages. -- Option: -A MODE -- Option: --file-align=MODE Align separate files according to MODE. This option allows the printing of more than one file on the same page. MODE can be any one of: 'virtual' Each file starts on the next available virtual page (i.e., leave no empty virtuals). 'rank' Each file starts at the beginning of the next row or column depending on the '--major' setting. 'page' Each file starts on a new page. 'sheet' Each file starts on a new sheet. In Simplex mode, this is the same as 'page', in Duplex mode, files always start on a front side. an integer NUM Each file starts on a page which is a multiple of NUM plus 1. For instance, for '2', the files must start on odd pages. -- Option: --margin[=NUM] Specify the size of the margin (NUM PostScript points, or 12 points without arguments) to leave in the inside (i.e. left for the front side page, and right for the back side). This is intended to ease the binding.  File: a2ps.info, Node: Page Options, Next: Headings Options, Prev: Sheet Options, Up: Options 3.1.4 Page Options ------------------ This options are related to the content of the virtual pages. Please note that the options '-f', '-L', '-l', '-m', and '-1' .. '-9' all have an influence on the font size. Only the last one will win (i.e., 'a2ps -L66 -l80' is the same as 'a2ps -l80'). -- Option: --line-numbers[=NUMBER] print the line numbers from NUMBER lines to NUMBER lines. Default is '1'. -- Option: -C Alias for '--line-numbers=5'. -- Option: -f SIZE[UNIT] -- Option: --font-size=SIZE[UNIT] scale font to SIZE for body text. SIZE is a float number, and UNIT can be 'cm' for centimeters, 'points' for PostScript points, and 'in' for inches. Default unit in 'points'. To change the fonts used, change the current prologue (*note Designing PostScript Prologues::. -- Option: -l NUM -- Option: --chars-per-line=NUM Set the font size so that NUM columns appear per virtual pages. NUM is the real number of columns devoted to the body of the text, i.e., no matter whether lines are numbered or not. -- Option: -L NUM -- Option: --lines-per-page=NUM Set the font size so that NUM lines appear per virtual pages. This is useful for printing preformatted documents which have a fixed number of lines per page. The minimum number of lines per page is set at 40 and maximum is at 160. If a number less than 40 is supplied, scaling will be turned off. -- Option: -m -- Option: --catman Understand UNIX manual *output* ie: 66 lines per page and possible bolding and underlining sequences. The understanding of bolding and underlining is there by default even if '--catman' is not specified. You may want to use the 'ul' prologue (*Note Input Options::, option '--prologue') if you prefer underlining over italics. If your file is actually a UNIX manual _input_, i.e., a roff file, then depending whether you left a2ps delegate or not, you will get a readable version of the text described, or a pretty-printed version of the describing file (*note Your Delegations::). -- Option: -T NUM -- Option: --tabsize=NUM set tabulator size to NUM. This option is ignored if '--interpret=no' is given. -- Option: --non-printable-format=FORMAT specify how non-printable chars are printed. FORMAT can be 'caret' Use classical Unix representation: '^A', 'M-^B' etc. 'space' A space is written instead of the non-printable character. 'question-mark' A '?' is written instead of the non-printable character. 'octal' For instance '\001', '177' etc. 'hexa' For instance '\x01', '\xfe' etc. 'emacs' For instance 'C-h', 'M-C-c' etc.  File: a2ps.info, Node: Headings Options, Next: Input Options, Prev: Page Options, Up: Options 3.1.5 Headings Options ---------------------- These are the options through which you may define the information you want to see all around the pages. All these options support TEXT as an argument, which is composed of plain strings and escapes. *Note Escapes::, for details. -- Option: -B -- Option: --no-header no page headers at all. -- Option: -b[TEXT] -- Option: --header[=TEXT] set the page header -- Option: --center-title[=TEXT] -- Option: --left-title[=TEXT] -- Option: --right-title[=TEXT] Set virtual page center, left and right titles to TEXT. -- Option: -u[TEXT] -- Option: --underlay[=TEXT] use TEXT as "under lay" (or "water mark"), i.e., in a light gray, and under every page. -- Option: --left-footer[=TEXT] -- Option: --footer[=TEXT] -- Option: --right-footer[=TEXT] Set sheet footers to TEXT.  File: a2ps.info, Node: Input Options, Next: Pretty Print Options, Prev: Headings Options, Up: Options 3.1.6 Input Options ------------------- -- Option: -a[PAGE RANGE] -- Option: --pages[=PAGE RANGE] With no argument, print all the page, otherwise select the pages to print. PAGE RANGE is a list of interval, such as '-a1': print only the first page, '-a-3,4,6,10-': print the first 3 pages, page 4 and 6, and all the page after 10 (included). Giving 'toc' prints the table of content whatever its page number is. The pages referred to are the _input_ pages, not the output pages, that is, in '-2', printing with '-a1' will print the first virtual page, i.e., you will get half the page filled. Note that page selection does work with the delegations (*note Your Delegations::). -- Option: -c -- Option: --truncate-lines=BOOLEAN Cut lines too large to be printed inside the borders. The maximum line size depends on format and font size used and whether line numbering is enabled. -- Option: -i -- Option: --interpret=BOOLEAN interpret tab and ff chars. This means that '^L' jumps to a new (virtual) pages, 'tab' advances to the next tabulation. -- Option: --end-of-line=TYPE Specify what sequence of characters denotes the end of line. TYPE can be: 'n' 'unix' '\n'. 'r' 'mac' '\r'. 'nr' '\n\r'. As far as we know, this type of end-of-line is not used. 'pc' 'rn' '\r\n'. This is the type of end-of-line on MS-DOS. 'any' 'auto' Any of the previous cases. This last case prevents the bad surprises with files from PC (trailing '^M'). -- Option: -X KEY -- Option: --encoding=KEY Use the input encoding identified by KEY. *Note Some Encodings::, and the result of 'a2ps --list=encodings' to know what encodings are supported. Typical values are 'ASCII', 'latin1'... 'latin6', 'isoN' etc. -- Option: --stdin=FILENAME Give the name FILENAME to the files read through the standard input. -- Option: -t NAME -- Option: --title=NAME Give the name NAME to the document. Escapes can be used (*note Escapes::). This is used for instance in the name given to the document from within the PostScript code (so that 'Ghostview' and others can display a file with its real title, instead of just the PostScript file name). It is *not* the name of the output. It is just a logical title. -- Option: --prologue=PROLOGUE Use PROLOGUE as the PostScript prologue for a2ps. PROLOGUE must be in a file named 'PROLOGUE.pro', which must be in a directory of your library path (*note Library Files::). Available prologues are: 'bold' This style is meant to replace the old option '-b' of a2ps 4.3. It is a copy of the black and white prologue, but in which all the fonts are in Bold. 'bw' Style is plain: pure black and white, with standard fonts. 'color' Colors are used to highlight the keywords. 'diff' This style is meant to be used with the 'udiff', 'wdiff' style sheets, to underline the differences. New things are in bold on a diff background, while removed sequences are in italic. 'diffcolor' Colors are used to highlight the keywords (for diffs). 'fixed' This style uses exclusively fixed size fonts. You should use this style if you want the tabulations to be properly printed. There are no means to use a fixed size Symbol font, therefore you should not use the heavy highlighting style. 'gray' Gray background is used for comments and labels. 'gray2' Black background is used for comments and labels. 'matrix' The layout is the same as 'bw', but alternating gray and white lines. There are two macros defining the behavior: 'pro.matrix.cycle' defines the length of the cycle (number of white and gray lines). It defaults to 6. 'pro.matrix.gray' defines the number of gray lines. Default is 3. 'ul' This style uses bold faces and underlines, but never italics. This is particularly meant for printing formatted man pages. -- Option: --print-anyway=BOOLEAN force binary printing. By default, the whole print job is stopped as soon as a binary file is detected. To detect such a file we make use of a very simple heuristic: if the first sheet of the file contains more than 40% of non-printing characters, it's a binary file. a2ps also asks 'file(1)' what it thinks of the type of the file. If 'file(1)' answers 'data', the file will also be considered as binary, hence not printed. -- Option: -Z -- Option: --delegate=BOOLEAN Enable delegation of some files to delegated applications. If delegating is on, then a2ps will _not_ process the file by itself, but will call an application which handles the file in another way. If delegation is off, then a2ps will process _every_ file itself. Typically most people don't want to pretty-print a PostScript source file, but want to print what describes that file. Then set the delegations on. See *note Your Delegations:: for information on delegating, and option '--list=delegations' for the applications your a2ps knows. -- Option: --toc[=FORMAT] Generate a Table of Contents, which FORMAT is an escape (*note Escapes::) processed as a PreScript file (*note PreScript::). If no FORMAT is given (i.e., you wrote '--toc'), use the default table of contents shape ('#{toc}'). If the given format is empty (i.e., you wrote '--toc='), don't issue the table of contents. Note that it is most useful to define a variable (*note Your Variables::), for instance, in a configuration file: Variable: toc.mine \ \\Keyword{Table of Content}\n\ #-1!f\ |$2# \\keyword{$-.20n} sheets $3s< to $3s> ($2s#) \ pages $3p<-$3p> $4l# lines\n||\ \\Keyword{End of toc}\n and to give that variable as argument to '--toc': 'a2ps *.c --toc=#{toc.mine}'. Note too that you can generate only the table of content using '--pages': a2ps *.c --toc -atoc  File: a2ps.info, Node: Pretty Print Options, Next: Output Options, Prev: Input Options, Up: Options 3.1.7 Pretty Printing Options ----------------------------- These options are related to the pretty printing features of a2ps. -- Option: --highlight-level=LEVEL Specify the LEVEL of highlighting. LEVEL can be 'none' no highlighting 'normal' regular highlighting 'heavy' even more highlighting. See the documentation of the style sheets ('--list=style-sheets') for a description of 'heavy' highlighting. -- Option: -g Alias for '--highlight-level=heavy'. -- Option: -E[LANGUAGE] -- Option: --pretty-print[=LANGUAGE] With no arguments, set automatic style selection on. Otherwise, set style to LANGUAGE. Note that setting LANGUAGE to 'plain' turns off pretty-printing. *Note Known Style Sheets::, and the output of '--list=style-sheets' for the available style sheets. If LANGUAGE is 'KEY.ssh', then don't look in the library path, but use the file 'KEY.SSH'. This is to ease debugging non installed style sheets. -- Option: --strip-level=NUM Depending on the value of NUM: '0' everything is printed; '1' regular comments are not printed '2' strong comments are not printed '3' no comment is printed. This option is valuable for instance in 'java' in which case strong comments are the so called documentation comments, or in 'SDL' for which some graphical editors pollutes the specification with internal data as comments. Note that the current implementation is not satisfactory: some undesired blank lines remain. This is planed to be fixed.  File: a2ps.info, Node: Output Options, Next: PostScript Options, Prev: Pretty Print Options, Up: Options 3.1.8 Output Options -------------------- These are the options to specify what you want to do out of what a2ps produces. Only a single destination is possible at a time, i.e., if ever there are several options '-o', '-P' or '-d', the last one is honored. -- Option: -o FILE -- Option: --output=FILE leave output to file FILE. If FILE is '-', leave output to the standard output. -- Option: --version-control=TYPE to avoid loosing a file, a2ps offers backup services. This is enabled when the output file already exists, is regular (that is, no backup is done on special files such as '/dev/null'), and is writable (in this case, disabling version control makes a2ps fail the very same way as if version control was disabled: permission denied). The type of backups made can be set with the 'VERSION_CONTROL' environment variable, which can be overridden by this option. If 'VERSION_CONTROL' is not set and this option is not given, the default backup type is 'existing'. The value of the 'VERSION_CONTROL' environment variable and the argument to this option are like the GNU 'Emacs' 'version-control' variable; they also recognize synonyms that are more descriptive. The valid values are (unique abbreviations are accepted): 'none' 'off' Never make backups (override existing files). 't' 'numbered' Always make numbered backups. 'nil' 'existing' Make numbered backups of files that already have them, simple backups of the others. 'never' 'simple' Always make simple backups. -- Option: --suffix=SUFFIX The suffix used for making simple backup files can be set with the 'SIMPLE_BACKUP_SUFFIX' environment variable, which can be overridden by this option. If neither of those is given, the default is '~', as it is in 'Emacs'. -- Option: -P NAME -- Option: --printer=NAME send output to printer NAME. See item 'Printer:' and 'Unknown printer:' in *note Your Printers:: and results of option '--list=defaults' to see the bindings between printer names and commands. It is possible to pass additional options to 'lpr' or 'lp' via the variable 'lp.options', for more information see *note Pass Options to lpr::. -- Option: -d send output to the default printer. See item 'DefaultPrinter:' in *note Your Printers::.  File: a2ps.info, Node: PostScript Options, Prev: Output Options, Up: Options 3.1.9 PostScript Options ------------------------ The following options are related only to variations you want to produce onto a PostScript output. -- Option: --ppd[=KEY] With no argument, set automatic PPD selection, otherwise set the PPD to KEY. FIXME: what to read. -- Option: -n NUM -- Option: --copies=NUM print NUM copies of each page -- Option: -s DUPLEX-MODE -- Option: --sides=DUPLEX-MODE Specify the number of sheet sides, or, more generally, the Duplex mode (*note Glossary::). The valid values for DUPLEX-MODE are: '1' 'simplex' One page per sheet. '2' 'duplex' Two pages per sheet, DuplexNoTumble mode. 'tumble' Two pages per sheet, DuplexTumble mode. Not only does this option require Duplex from the printer, but it also enables duplex features from a2ps (e.g., the margin changes from front pages to back pages etc.). -- Option: -S KEY[:VALUE] -- Option: --setpagedevice=KEY[:VALUE] Pass a page device definition to the generated PostScript output. If no VALUE is given, KEY is removed from the definitions. Note that several '--setpagedevice' can be accumulated. For example, command ubu $ a2ps -SDuplex:true -STumble:true NEWS [NEWS (plain): 15 pages on 8 sheets] [Total: 15 pages on 8 sheets] sent to the default printer prints file 'report.pre' in duplex (two sides) tumble (suitable for landscape documents). This is also valid for delegated files: a2ps -SDuplex:true -STumble:true a2ps.texi Page device operators are implementation dependent but they are standardized. *Note Page Device Options::, for details. -- Option: --statusdict=KEY[:VALUE] -- Option: --statusdict=KEY[::VALUE] Pass a statusdict definition to the generated PostScript output. 'statusdict' operators and variables are implementation dependent; see the documentation of your printer for details. *Note Statusdict Options::, for details. Several '--statusdict' can be accumulated. If no VALUE is given, KEY is removed from the definitions. With a single colon, pass a call to an operator, for instance: a2ps --statusdict=setpapertray:1 quicksort.c prints file 'quicksort.c' by using paper from the paper tray 1 (assuming that printer supports paper tray selection). With two colons, define variable KEY to equal VALUE. For instance: a2ps --statusdict=papertray::1 quicksort.c produces /papertray 1 def in the PostScript. -- Option: -k -- Option: --page-prefeed enable page prefeeding. It consists in positioning the sheet in the printing area while the PostScript is interpreted (instead of waiting the end of the interpretation of the page before pushing the sheet). It can lead to an significant speed up of the printing. a2ps quotes the access to that feature, so that non supporting printers won't fail. -- Option: -K -- Option: --no-page-prefeed disable page prefeeding.  File: a2ps.info, Node: Escapes, Prev: Options, Up: Invoking a2ps 3.2 Escapes =========== The escapes are some sequences of characters that will be replaced by their values. They are very much like variables. * Menu: * Use of Escapes:: Where they are used * Structure of the Escapes:: Their syntax * Available Escapes:: Detailed list  File: a2ps.info, Node: Use of Escapes, Next: Structure of the Escapes, Up: Escapes 3.2.1 Use of Escapes -------------------- They are used in several places in a2ps: _Page markers_ Headers, footers, titles and the water mark (*note Headings Options::), in general to print the name of file, page number etc. On a new sheet a2ps first draws the water mark, then the content of the first page, then the frame of the first page, (ditto with the others), and finally the sheet header and footers. This order must be taken into account for some escapes (e.g., '$l.', '$l^'). _Named output_ To specify the generic name of the file to produce, or how to access a printer (*note Your Printers::). _Delegation_ To specify the command associated to a delegation (*note Your Delegations::). _Table of Content_ To specify an index/table of content printed at the end of the job. _Variables in PostScript prologue_ To allow the user to change some parameters to your prologues (*note Designing PostScript Prologues::).  File: a2ps.info, Node: Structure of the Escapes, Next: Available Escapes, Prev: Use of Escapes, Up: Escapes 3.2.2 General Structure of the Escapes -------------------------------------- All format directives can also be given in format ESCAPE WIDTH DIRECTIVE where ESCAPE In general '%' escapes are related to general information (e.g., the current date, the user's name etc.), '#' escapes are related to the output (e.g., the output file name) or to the options you gave (e.g., the number of virtual pages etc.), or to special constructions (e.g., enumerations of the files, or tests etc.), '$' escapes are related to the current input file (e.g., its name, its current page number etc.), '\' introduces classical escaping, or quoting, sequences (e.g., '\n', '\f' etc.). WIDTH Specifies the width of the column to which the escape is printed. There are three forms for WIDTH '+PADDINGINTEGER' the result of the expansion is prefixed by the character PADDING so that the whole result is as long as INTEGER. For instance '$+.10n' with a file name '$n'='foo.c' gives '.....foo.c'. If no PADDING is given, ' ' (white space) is used. '-PADDINGINTEGER' Idem as above, except that completion is done on the left: '$+.10n' gives 'foo.c.....'. 'INTEGER' which is a short cut for '+INTEGER'. For example, escape '$5P' will expand to something like ' 12'. DIRECTIVE *Note Available Escapes::.  File: a2ps.info, Node: Available Escapes, Prev: Structure of the Escapes, Up: Escapes 3.2.3 Available Escapes ----------------------- Supported escapes are: '\\' character '\' '\%' character '%' '\$' character '$' '\#' character '#' '#?COND|IF_TRUE|IF_FALSE|' this may be used for conditional assignment. The separator (presented here as '|') may be any character. IF_TRUE and IF_FALSE may be defined exactly the same way as regular headers, included escapes and the '#?' construct. The available tests are: '#?1' '#?2' '#?3' true if tag 1, 2 or 3 is not empty. See item '$t1' for explanation. '#?d' true if Duplex printing is requested ('-s2'). '#?j' true if bordering is asked ('-j'). '#?l' true if printing in landscape mode. '#?o' true if only one virtual page per page (i.e., '#v' is 1). '#?p' a page range has been specified (i.e., '#p' is not empty). '#?q' true if a2ps is in quiet mode. '#?r' true if major is rows ('--major=rows'). '#?v' true if printing on the back side of the sheet (verso). '#?V' true if verbosity level includes the 'tools' flag (*Note Global Options::. option '--verbosity'). '#!KEY|IN|BETWEEN|' Used for enumerations. The separator (presented here as '|') may be any character. IN and BETWEEN are escapes. The enumerations may be: '#!$' enumeration of the command line options. In this case IN in never used, but is replaced by the arguments. '#!f' enumeration of the input files in the other they were given. '#!F' enumeration of the input files in the alphabetical order of their names. '#!s' enumeration of the files appearing in the current sheet. For instance, the escapes 'The files printed were: #!f|$n|, |.' evaluated with input 'a2ps NEWS main.c -o foo.ps', gives 'The files printed were: NEWS, main.c.'. As an exception, '#!' escapes use the WIDTH as the maximum number of objects to enumerate if it is positive, e.g., '#10!f|$n|, |' lists only the ten first file names. If WIDTH is negative, then it does not enumerate the -WIDTH last objects (e.g., '#-1!f|$n|, |' lists all the files but the last). '${VAR}' value of the environment variable VAR if defined, nothing otherwise. '${VAR:-WORD}' if the environment variable VAR is defined, then its value, otherwise WORD. '${VAR:+WORD}' if the environment variable VAR is defined, then WORD, otherwise nothing. '$[NUM]' value of the NUMth argument given on the command line. Note that $[0] is the name under which a2ps has been called. '#{KEY}' expansion of the value of the variable KEY if defined, nothing otherwise (*note Your Variables::) '#{KEY:-WORD}' if the variable VAR is defined, then the expansion of its, otherwise WORD. '#{KEY:+WORD}' if the variable VAR is defined, then WORD, otherwise nothing. '#.' the extension corresponding to the current output language (e.g. 'ps'). '%*' current time in 24-hour format with seconds 'hh:mm:ss' '$*' file modification time in 24-hour format with seconds 'hh:mm:ss' '$#' the sequence number of the current input file '%#' the total number of files '%a' the localized equivalent for 'Printed by USER NAME'. USER NAME is obtained from the variable 'user.name' (*note Predefined Variables::). '%A' the localized equivalent for 'Printed by USER NAME from HOST NAME'. The variables 'user.name' and 'user.host' are used (*note Predefined Variables::). '%c' trailing component of the current working directory '%C' current time in 'hh:mm:ss' format '$C' file modification time in 'hh:mm:ss' format '%d' current working directory '$d' directory part of the current file ('.' if the directory part is empty). '%D' current date in 'yy-mm-dd' format '$D' file modification date in 'yy-mm-dd' format '%D{STRING}' format current date according to STRING with the 'strftime(3)' function. '$D{STRING}' format file's last modification date according to STRING with the 'strftime(3)' function. '%e' current date in localized short format (e.g., 'Jul 4, 76' in English, or '14 Juil 89' in French). '$e' file modification date in localized short format. '%E' current date in localized long format (e.g., 'July 4, 76' in English, or 'Samedi 14 Juillet 89' in French). '$E' file modification date in localized long format. '$f' full file name (with directory and suffix). '\f' character '\f' ('form feed'). '#f0' '#f9' ten temporary file names. You can do anything you want with them, a2ps removes them at the end of the job. It is useful for the delegations (*note Your Delegations::) and for the printer commands (*note Your Printers::). '%F' current date in 'dd.mm.yyyy' format. '$F' file modification date in 'dd.mm.yyyy' format. '#h' medium height in PostScript points '$l^' top most line number of the current page '$l.' current line number. To print the page number and the line interval in the right title, use '--right-title="$q:$l^-$l."'. '$l#' number of lines in the current file. '%m' the host name up to the first '.' character '%M' the full host name '\n' the character '\n' ('new line'). '%n' shortcut for the value of the variable 'user.login' (*note Predefined Variables::). '$n' input file name without the directory part. '%N' shortcut for the value of the variable 'user.name' (*note Predefined Variables::). '$N' input file name without the directory, and without its suffix (e.g., on 'foo.c', it will produce 'foo'). '#o' name of the output, before substitution (i.e., argument of '-P', or of '-o'). '#O' name of the output, after substitution. If output goes to a file, then the name of the file. If the output is a symbolic printer (*note Your Printers::), the result of the evaluation. For instance, if the symbolic printer 'file' is defined as '> $n.%.', then '#O' returns 'foo.c.ps' when printing 'foo.c' to PostScript. '#o' would have returned 'file'. '#p' the range of the page to print from this page. For instance if the user asked '--pages=1-10,15', and the current page is 8, then '#p' evaluates to '1-3,8'. '$p^' number of the first page of this file appearing on the current sheet. Note that '$p.', evaluated at the end of sheet, is also the number of the last page of this file appearing on this sheet. '$p-' interval of the page number of the current file appearing on the current sheet. It is the same as '$p^-$p.', if '$p^' and '$p.' are different, otherwise it is equal to '$p.'. '%p.' current page number '$p.' page number for this file '%p#' total number of pages printed '$p#' number of pages of the current file '$p<' number of the first page of the current file '$p>' number of the last page of the current file '%q' localized equivalent for 'Page %p.' '$q' localized equivalent for 'Page $p.' '%Q' localized equivalent for 'Page %p./%p#' '$Q' localized equivalent for 'Page $p./$p#' '$s<' number of the first sheet of the current file '%s.' current sheet number '$s.' sheet number for the current file '$s>' number of the last sheet of the current file '%s#' total number of sheets '$s#' number of sheets of the current file '%t' current time in 12-hour am/pm format '$t' file modification time in 12-hour am/pm format '$t1' '$t2' '$t3' Content of tag 1, 2 and 3. Tags are pieces of text a2ps fetches in the files, according to the style. For instance, in 'mail-folder' style, tag 1 is the title of the mail, and tag 2 its author. '%T' current time in 24-hour format 'hh:mm' '$T' file modification time in 24-hour format 'hh:mm' '#v' number of virtual sheets '%V' the version string of a2ps. '#w' medium width in PostScript points '%W' current date in 'mm/dd/yy' format '$W' file modification date in 'mm/dd/yy' format  File: a2ps.info, Node: Configuration Files, Next: Library Files, Prev: Invoking a2ps, Up: Top 4 Configuration Files ********************* a2ps reads several files before the command line options. In order, they are: 1. the system configuration file (typically '/usr/local/etc/a2ps.cfg') unless you have defined the environment variable 'A2PS_CONFIG', in which case a2ps reads the file it points to; 2. the user's home configuration file ('$HOME/.a2ps/a2psrc') 3. the local file ('./.a2psrc') Because a2ps needs architecture dependent information (such as the local 'lpr' command) and architecture independent information (such as the type of your printers), users have found useful that 'a2ps.cfg' be dedicated to architecture dependent information. A sub configuration file, 'a2ps-site.cfg' (*note Including Configuration Files::) is included from 'a2ps.cfg'. The file 'a2ps.cfg' is updated when you update a2ps, while 'a2ps-site.cfg' is not, to preserve local definitions. In the configuration files, empty lines and lines starting with '#' are comments. The other lines have all the following form: TOPIC: ARGUMENTS where TOPIC: is a keyword related to what you are customizing, and ARGUMENTS the customization. ARGUMENTS may be spread on several lines, provided that the last character of a line to continue is a '\'. In the following sections, each TOPIC: is detailed. * Menu: * Including Configuration Files:: Isolating site specific values * Your Library Path:: Setting the files search path * Your Default Options:: Default state of a2ps * Your Media:: Sheets dimensions * Your Printers:: How to access the printers * Your Shortcuts:: Your very own command line options * Your PostScript magic number:: Handling very old printers * Your Page Labels:: Page names as in 'Ghostview' * Your Variables:: Short cut for long sequences * Your Delegations:: Delegating some files to other filters * Your Internal Details:: Details you might want to tune  File: a2ps.info, Node: Including Configuration Files, Next: Your Library Path, Up: Configuration Files 4.1 Including Configuration Files ================================= -- Configuration Setting: Include: FILE Include (read) the configuration FILE. if FILE is a relative path (i.e., it does not start with '/'), then it is relatively to the current configuration file. This is especially useful for the site specific configuration file 'etc/a2ps.cfg': you may tune your printers etc. in a separate file for easy upgrade of a2ps (and hence of its configuration files).  File: a2ps.info, Node: Your Library Path, Next: Your Default Options, Prev: Including Configuration Files, Up: Configuration Files 4.2 Your Library Path ===================== To define the default library path, you can use: -- Configuration Setting: LibraryPath: PATH Set the library path the PATH. -- Configuration Setting: AppendLibraryPath: PATH Add PATH at the end of the current library path. -- Configuration Setting: PrependLibraryPath: PATH Add PATH at the beginning of the current library path. Note that for users configuration files, it is better not to set the library path, because the system's configuration has certainly been built to cope with your system's peculiarities. Use 'AppendLibraryPath:' and 'PrependLibraryPath:'.  File: a2ps.info, Node: Your Default Options, Next: Your Media, Prev: Your Library Path, Up: Configuration Files 4.3 Your Default Options ======================== -- Configuration Setting: Options: OPTIONS+ Give a2ps a list of command line options. OPTIONS+ is any sequence of regular command line options (*note Invoking a2ps::). It is the correct way to define the default behavior you expect from a2ps. If for instance you want to use 'Letter' as medium, then use: Options: --medium=Letter It is exactly the same as always giving a2ps the option '--medium=Letter' at run time. The quoting mechanism is the same as that of a shell. For instance Options: --right-title="Page $p" --center-title="Hello World!" Options: --title="arg 'Jack said \\\"hi\\\"' has double quotes"  File: a2ps.info, Node: Your Media, Next: Your Printers, Prev: Your Default Options, Up: Configuration Files 4.4 Your Media ============== -- Configuration Setting: Medium: NAME DIMENSIONS Define the medium NAME to have the DIMENSIONS (in PostScript points, i.e., 1/72 of inch). There are two formats supported: long in which you must give both the size of the whole sheet, and the size of the printable area: # A4 for HP DeskJets # NAME W H LLX LLY URX URY Medium: A4dj 595 842 24 50 571 818 where WxH are the dimension of the sheet, and the four other stand for lower left x and y, upper right x and y. short in which a surrounding margin of 24 points is used # A4 # NAME W H Medium: A4 595 842 is the same as # A4 # NAME W H Medium: A4 595 842 24 24 571 818  File: a2ps.info, Node: Your Printers, Next: Your Shortcuts, Prev: Your Media, Up: Configuration Files 4.5 Your Printers ================= A general scheme is used, so that whatever the way you should address the printers on your system, the interface is still the same. Actually, the interface is so flexible, that you should understand 'named destination' when we write 'printer'. -- Configuration Setting: Printer: NAME PPD-KEY DESTINATION -- Configuration Setting: Printer: NAME DESTINATION -- Configuration Setting: Printer: NAME PPD-KEY Specify the destination of the output when the option '-P NAME' is given. If PPD-KEY is given, declare the printer NAME to be described by the PPD file 'PPD-KEY.ppd'. If DESTINATION is not given, used that of the 'UnknownPrinter:'. The DESTINATION must be of one of the following forms: '| COMMAND' in which case the output is piped into COMMAND. '> FILE' in which case the output is saved into FILE. -- Configuration Setting: UnknownPrinter: [PPD-KEY] DESTINATION Specify the destination of the output when when the option '-P NAME' is given, but there is no 'Printer:' entry for NAME. -- Configuration Setting: DefaultPrinter: [PPD-KEY] DESTINATION Specify the destination of the output when when the option '-d' (send to default output) is given. Escapes expansion is performed on DESTINATION (*note Escapes::). Recall that '#o' is evaluated to the destination name, i.e., the argument given to '-P'. For instance # My Default Printer is called dominique DefaultPrinter: | lp -d dominique # `a2ps foo.c -P bar' will pipe into `lp -d bar' UnknownPrinter: | lp -d #o # `a2ps -P foo' saves into the file `foo' Printer: foo > foo.ps Printer: wc | wc Printer: lw | lp -d printer-with-a-rather-big-name # E.g. `a2ps foo.c bar.h -P file' will save into `foo.c.ps' Printer: file > $n.#. # E.g. `a2ps foo.c bar.h -P home' will save into `foo.ps' # in user's home Printer: home > ${HOME}/$N.#.  File: a2ps.info, Node: Your Shortcuts, Next: Your PostScript magic number, Prev: Your Printers, Up: Configuration Files 4.6 Your Shortcuts ================== You can define some kind of 'Macro Options' which stand for a set of options. -- Configuration Setting: UserOption: SHORTCUT OPTIONS... Define the SHORTCUT to be the list of OPTIONS.... When a2ps is called with '-=SHORTCUT' (or '--user-option=SHORTCUT'), consider the list of OPTIONS.... Examples are # This emulates a line printer: no features at all # call a2ps -=lp to use it UserOption: lp -1m --pretty-print=plain -B --borders=no # When printing mail, I want to use the right style sheet with strong # highlight level, and stripping `useless' headers. UserOption: mail -Email -g --strip=1  File: a2ps.info, Node: Your PostScript magic number, Next: Your Page Labels, Prev: Your Shortcuts, Up: Configuration Files 4.7 Your PostScript magic number ================================ a2ps produces full DSC conformant PostScript (*note Glossary::). Adobe said Thou shalt start your PostScript DSC conformant files with %!PS-Adobe-3.0 The bad news is that some printers will reject this header. Then you may change this header without any worry since the PostScript produced by a2ps is also 100% PostScript level 1(1). -- Configuration Setting: OutputFirstLine: MAGIC-NUMBER Specify the header of the produced PostScript file to be MAGIC-NUMBER. Typical values include '%!PS-Adobe-2.0', or just '%!'. ---------- Footnotes ---------- (1) That is to say, there are no PostScript printers that don't understand these files.  File: a2ps.info, Node: Your Page Labels, Next: Your Variables, Prev: Your PostScript magic number, Up: Configuration Files 4.8 Your Page Labels ==================== In the PostScript file is dropped information on where sheets begin and end, so that post processing tools know where is the physical page 1, 2 etc. With this information can be also stored a label, i.e., a human readable text (typically the logical page numbers), which is for instance what 'Ghostview' shows as the list of page numbers. a2ps lets you define what you want in this field. -- Configuration Setting: PageLabelFormat: FORMAT Specify the FORMAT to use to label the PostScript pages. FORMAT can use Escapes (*note Escapes::). Two variables are predefined for this: '#{pl.short}' and '#{pl.long}'.  File: a2ps.info, Node: Your Variables, Next: Your Delegations, Prev: Your Page Labels, Up: Configuration Files 4.9 Your Variables ================== There are many places in a2ps where one would like to have uniform way of extending things. It once became clear that "variables" where needed in a2ps. * Menu: * Defining Variables:: Syntax and conventions * Predefined Variables:: Builtin variables  File: a2ps.info, Node: Defining Variables, Next: Predefined Variables, Up: Your Variables 4.9.1 Defining Variables ------------------------ -- Configuration Setting: Variable: KEY VALUE Define the escape '#{KEY}' to be a short cut for VALUE. KEY must not have any character from ':(){}'. As as example, here is a variable for 'psnup', which encloses all the option passing one would like. Delegations are then easier to write: Variable: psnup psnup -#v -q #?j|-d|| #?r||-c| -w#w -h#h It is strongly suggested to follow a '.' (dot) separated hierarchy, starting with: 'del' for variables that are related to delegations. 'pro' for variables used in prologues (*note Designing PostScript Prologues::). Please, specify the name of the prologue (e.g., 'pro.matrix.gray'). 'ps' for variables related to PostScript matters, such as the page label (which is associated to 'ps.page_label'), the header etc. 'pl' for page label formats. *Note Your Page Labels::, the option '--page-label' in *note Input Options::. 'toc' for toc formats. See the option '--toc' in *note Input Options::. 'user' for user related information. *Note Predefined Variables::. This naming convention has not fully stabilized. We apologize for the inconvenience this might cause to users.  File: a2ps.info, Node: Predefined Variables, Prev: Defining Variables, Up: Your Variables 4.9.2 Predefined Variables -------------------------- There are a few predefined variables. The fact that a2ps builds them at startup changes nothing to their status: they can be modified like any other variable using '--define' (*note Global Options::). In what follows, there are numbers (i) like this, or (ii) this. It means that a2ps first tries the solution (i), if a result is obtained (non empty value), this is the value given to the variable. Otherwise it tries solution (ii), etc. The rationale behind the order is usually from user modifiable values (e.g. environment variables) through system's hard coded values (e.g., calls to 'getpwuid') and finally arbitrary values. 'user.comments' Comments on the user. Computed by (i) the system's database (the part of 'pw_gecos' after the first ','), (ii) not defined. 'user.home' The user's home directory. Determined by (i) the environment variable 'HOME', (ii) the system's database (using 'getpwuid'), (iii) the empty string. 'user.host' The user's host name. Assigned from (i) the system ('gethostname' or 'uname'), (ii) the empty string. 'user.login' The user's login (e.g. 'bgates'). Computed by (i) the environment variable 'LOGNAME', (ii) the environment variable 'USERNAME', (iii) the system's database (using 'getpwuid'), (iv) the translated string 'user'. 'user.name' The user's name (e.g. 'William Gates'). Computed by (i) the system's database ('pw_gecos' up to the first ','), (ii) capitalized value of the variable 'user.login' unless it was the translated string 'user', (iii) the translated string 'Unknown User'.  File: a2ps.info, Node: Your Delegations, Next: Your Internal Details, Prev: Your Variables, Up: Configuration Files 4.10 Your Delegations ===================== There are some files you don't really want a2ps to pretty-print, typically page description files (e.g., PostScript files, 'roff' files, etc.). You can let a2ps delegate the treatment of these files to other applications. The behavior at run time depends upon the option '--delegate' (*note Input Options::). * Menu: * Defining a Delegation:: Syntax of the definitions of the delegations * Guide Line for Delegations:: What should be respected * Predefined Delegations:: Making the best use of these delegations  File: a2ps.info, Node: Defining a Delegation, Next: Guide Line for Delegations, Up: Your Delegations 4.10.1 Defining a Delegation ---------------------------- -- Configuration Setting: Delegation: NAME IN:OUT COMMAND Define the delegation NAME. It is to be applied upon files of type IN when output type is OUT(1) thanks to COMMAND. Both IN and OUT are a2ps type keys such as defined in 'sheets.map' (*note The Entry in sheets.map::). COMMAND should produce the file on its standard output. Of course escapes substitution is performed on COMMAND (*note Escapes::). In particular, COMMAND should use the input file '$f'. # In general, people don't want to pretty-print PostScript files. # Pass the PostScript files to psnup Delegation: PsNup ps:ps \ psselect #?V||-q| -p#?p|#p|-| $f | \ psnup -#v -q #?j|-d|| #?r||-c| -w#w -h#h Advantage should be taken from the variables, to encapsulate the peculiarities of the various programs. # Passes the options to psnup. # The files (in and out) are to be given Variable: psnup psnup -#v #?V||-q| #?j|-d|| #?r||-c| -w#w -h#h # Passes to psselect for PS page selection Variable: psselect psselect #?V||-q| -p#?p|#p|-| # In general, people don't want to pretty-print PostScript files. # Pass the PostScript files to psnup Delegation: PsNup ps:ps #{psselect} $f | #{psnup} Temporary file names ('#f0' to '#f9') are available for complex commands. # Pass DVI files to dvips. # A problem with dvips is that even on failure it dumps its prologue, # hence it looks like a success (output is produced). # To avoid that, we use an auxiliary file and a conditional call to # psnup instead of piping. Delegation: dvips dvi:ps #{dvips} $f -o #f0 && #{psnup} #f0 ---------- Footnotes ---------- (1) Current 'a2ps' only handles PostScript output, i.e. OUT='ps'  File: a2ps.info, Node: Guide Line for Delegations, Next: Predefined Delegations, Prev: Defining a Delegation, Up: Your Delegations 4.10.2 Guide Line for Delegations --------------------------------- First of all, select carefully the applications you will use for the delegations. If a filter is known to cause problems, try to avoid it in delegations(1). As a thumb rule, you should check that the PostScript generating applications produce files that start by: %!PS-Adobe-3.0 a2ps *needs* the '%%BeginSetup'-'%%EndSetup' section in order to output correctly the page device definitions. It can happen that your filters don't output this section. In that case, you should insert a call to 'fixps' right after the PostScript generation: ########## ROFF files # Pass the roff files to groff. Ask grog how groff should be called. # Use fixps to ensure there is a %%BeginSetup/%%EndSetup section. Delegation: Groff roff:ps \ eval `grog -Tps '$f'` | fixps #?V!!-q! | #{d.psselect} | #{d.psnup} There are some services expected from the delegations. The delegations you may write should honor: the input file available via the escape '$f'. You should be aware that there are people who have great fun having spaces or dollars in their file names, so you probably should always use ''$f''. Some other variables are affected. Yes, I know, we need a special mechanism for ''' itself. Well, we'll see that later ';-)'. the medium the dimension of the medium selected by the user are available through '#w' and '#h'. the page layout the number of virtual pages is '#v'. the page range the page range (in a form '1-2,4-6,10-' for instance) is available by '#p'. the verbosity level please, do not make your delegations verbose by default. The silent mode should always be requested, unless '#?V' is set (see the above example with 'groff'). If ever you need several commands, do not use ';' to separate them, since it may prevent detection of failure. Use '&&' instead. The slogan "_the sooner, the better_" should be applied here: in the processing chain, it is better to ask a service to the first application that supports it. An example will make it clear: when processing a 'DVI' file, 'dvips' knows better the page numbers than 'psselect' would. So a 'DVI' to PostScript delegation should ask the page selection ('#p') to 'dvips', instead of using 'psselect' later in the chain. An other obvious reason here is plain efficiency (globally, less data is processed). ---------- Footnotes ---------- (1) Because hiding its use into 'a2ps' just makes it even more difficult to the users to know why it failed. Let them use it by hand.  File: a2ps.info, Node: Predefined Delegations, Prev: Guide Line for Delegations, Up: Your Delegations 4.10.3 Predefined Delegations ----------------------------- The purpose of this section is not to document all the predefined delegations, for this you should read the comments in the system configuration file 'a2ps.cfg'. We just want to explain some choices, and give hints on how to make the best use of these delegations. -- Delegation: dvips (DVI to PostScript) There is a problem when you use a naive implementation of this delegation: landscape jobs are not recognized, and therefore n-upping generally fails miserably. Therefore, a2ps tries to guess if the file is landscape by looking for the keyword 'landscape' in it, using 'strings(1)': Delegation: dvips dvi:ps\ if strings $f | sed 3q | grep -F landscape > /dev/null 2>&1; then \ #{d.dvips} -T#hpt,#wpt $f -o #f0 && #?o|cat|#{d.psnup} -r| #f0;\ else \ #{d.dvips} $f -o #f0 && #{d.psnup} #f0; \ fi In order to have that rule work correctly, it is expected from the TeX, or LaTeX file to include something like: \renewcommand{\printlandscape}{\special{landscape}} \printlandscape in the preamble. We don't use a pipe because dvips always outputs data (its prologue) even if it fails, what prevents error detection. -- Delegation: LaTeX (LaTeX to DVI) We use a modern version of the shell script 'texi2dvi', from the package 'Texinfo', which runs 'makeindex', 'bibtex' and 'latex' as many times as needed. You should be aware that if the file includes files from *other* directories, it may miss some compilation steps. Other cases (most typical) are well handled.  File: a2ps.info, Node: Your Internal Details, Prev: Your Delegations, Up: Configuration Files 4.11 Your Internal Details ========================== There are settings that only meant for a2ps that you can tune by yourself. -- Configuration Setting: FileCommand: COMMAND The command to run to call 'file(1)' on a file. If possible, make it follow the symbolic links.  File: a2ps.info, Node: Library Files, Next: Encodings, Prev: Configuration Files, Up: Top 5 Library Files *************** To be general and to allow as much customization as possible, a2ps avoids to hard code its knowledge (encodings, PostScript routines, etc.), and tries to split it in various files. Hence it needs a path, i.e., a list of directories, in which it may find the files it needs. The exact value of this library path is available by 'a2ps --list=defaults'. Typically its value is: gargantua ~ $ a2ps --list=defaults Configuration status of a2ps 4.15.5 _More stuff deleted here_ Internals: verbosity level = 2 file command = /usr/ucb/file -L temporary directory = library path = /inf/soft/infthes/demaille/.a2ps /usr/local/share/a2ps/sheets /usr/local/share/a2ps/ps /usr/local/share/a2ps/encoding /usr/local/share/a2ps/afm /usr/local/share/a2ps/printers /usr/local/share/a2ps You may change this default path through the configuration files (*note Your Library Path::). If you plan to define yourself some files for a2ps, they should be in one of those directories. * Menu: * Documentation Format:: Special tags to write a documentation * Map Files:: Their general shape and rationale * Font Files:: Using other fonts * Style Sheet Files:: Defining pretty printing rules  File: a2ps.info, Node: Documentation Format, Next: Map Files, Up: Library Files 5.1 Documentation Format ======================== In various places a documentation can be given. Since some parts of this document and of web pages are extracted from documentations, some tags are needed to provide a better layout. The format is a mixture made out of Texinfo like commands, but built so that quick and easy processing can be made. These tags are: 'code('TEXT')code' Typeset TEXT like a piece of code. This should be used for keys, variables, options etc. For instance the documentation of the 'bold' prologue mentions the 'bw' prologue: Documentation This style is meant to replace the old option code(-b)code of a2ps 4.3. It is a copy of the black and white prologue, but in which all the fonts are in Bold. EndDocumentation 'href('LINK')href('TEXT')href' Specifies a hyper text LINK displayed as TEXT. '@example' '@end example' They must be alone on the line. The text between these tags is displayed in a code-like fonts. This should be used for including a piece of code. For instance, in the documentation of the 'gnuc' style sheet: documentation is "Declaration of functions are highlighted" "emph(only)emph if you start the function name" "in the first column, and it is followed by an" "opening parenthesis. In other words, if you" "write" "@example" "int main (void)" "@end example" "it won't work. Write:" "@example" "int" "main (void)" "@end example" end documentation '@itemize' '@item' TEXT '@end itemize' Typeset a list of items. The opening and closing tags must be alone on the line.  File: a2ps.info, Node: Map Files, Next: Font Files, Prev: Documentation Format, Up: Library Files 5.2 Map Files ============= Many things are defined through files. There is a general scheme to associate an object to the files to use: map files. They are typically used to: - resolve aliases. For instance the ISO-8859-1 encoding is also called ISO Latin 1, or Latin 1 for short. The 'encoding.map' file will map these three names to the same Encoding Description File. - cope with broken files systems. For instance, the-one-you-know-I-don't-need-to-name cannot handle files named 'Courier-BoldOblique.afm': it is the same as 'Courier-Bold.afm'. The 'fonts.map' file is here to associate a font file name to a font name. The syntax of these files is: - any empty line, or any line starting by a '#' is a comment. - a line with the format *** PATH requests that the file designated by PATH be included at this point. - any other line has the format KEY VALUE meaning that when looking for KEY (e.g., name of a font, an encoding etc.), a2ps should use VALUE (e.g., font file name, encoding description file name etc.). The map files used in a2ps are: 'encoding.map' Resolving encodings aliases. 'fonts.map' Mapping font names to font file names. 'sheets.map' Rules to decide what style sheet to use.  File: a2ps.info, Node: Font Files, Next: Style Sheet Files, Prev: Map Files, Up: Library Files 5.3 Font Files ============== Even when a PostScript printer knows the fonts you want to use, using these fonts requires some description files. * Menu: * Fonts Map File:: Mapping a font name to a file name * Fonts Description Files:: Needed files to use a Font * Adding More Font Support:: Using even more Fonts  File: a2ps.info, Node: Fonts Map File, Next: Fonts Description Files, Up: Font Files 5.3.1 Fonts Map File -------------------- *Note Map Files::, for a description of the map files. This file associates the FONT-KEY to a FONT name. For instance: Courier pcrr Courier-Bold pcrb Courier-BoldOblique pcrbo Courier-Oblique pcrro associates to font named 'Courier', the key 'pcrr'. To be recognized, the font name must be exact: 'courier' and 'COURIER' are not admitted.  File: a2ps.info, Node: Fonts Description Files, Next: Adding More Font Support, Prev: Fonts Map File, Up: Font Files 5.3.2 Fonts Description Files ----------------------------- There are two kinds of data a2ps needs to use a font: - the AFM file ('FONT-KEY.afm'), which describes the metrics information corresponding to FONT; - in the case FONT is not known from the printer, the PFA or PFB file which is down loaded to the printer. These files are actually the PostScript programs which execution produces the characters to be drawn on the page, in this FONT.  File: a2ps.info, Node: Adding More Font Support, Prev: Fonts Description Files, Up: Font Files 5.3.3 Adding More Font Support ------------------------------ a2ps can use as many fonts as you want, provided that you teach it the name of the files in which are stored the fonts (*note Fonts Map File::). To this end, a very primitive but still useful shell script is provided: 'make_fonts_map.sh'. First, you need to find the directories which store the fonts you want to use, and extend the library path so that a2ps sees those directories. For instance, add: AppendLibraryPath: /usr/local/share/ghostscript/fonts Then run 'make_fonts_map.sh'. It should be located in the 'afm/' directory of the system's a2ps hierarchy. Typically '/usr/local/share/a2ps/afm/make_fonts_map.sh'. This script asks a2ps for the library path, wanders in this path collecting 'AFM' files, and digging information in them. Once the script has finished, a file 'fonts.map.new' was created. Check its integrity, and if it's correct, either replace the old 'fonts.map' with it, or rename 'fonts.map.new' as 'fonts.map' and place it higher in the library path (for instance in your '~/.a2ps/' directory).  File: a2ps.info, Node: Style Sheet Files, Prev: Font Files, Up: Library Files 5.4 Style Sheet Files ===================== The style sheets are defined in various files (*note Pretty Printing:: for the structure of these files). As for most other features, there is main file, a road map, which defines in which condition a style sheet should be used (*note Map Files::). This file is 'sheets.map'. Its format is simple: STYLE-KEY: PATTERNS or include(FILE) The PATTERNS need not be on separate lines. There are two kinds of patterns: /PATTERN/FLAGS if the current file name matches PATTERN, then select style STYLE-KEY (i.e. file 'STYLE-KEY.ssh'). <PATTERN>FLAGS if the result of a call to 'file(1)' matches PATTERN, then select style STYLE-KEY. Currently FLAGS can only be 'i', standing for an insentive match. Please note that the matching is not truly case insensitive: rather, a lower case version of the string is compared to the PATTERN as is, i.e., the PATTERN should itself be lower case. The special STYLE-KEY 'binary' tells a2ps to consider that the file should not be printed, and will be ignored, unless option '--print-anyway' is given. If a style name can't be found, the plain style is used. The map file is read bottom up, so that the "last" match is honored. Two things are to retain from this: 1. if the file is presented through 'stdin', then a2ps will run 'file(1)'. However, unless you specify a fake file name with '--stdin', pattern matching upon the name is turn off. In general you can expect correct delegations, but almost never pretty printing. 2. if 'file' is wrong on some files, a2ps may use bad style sheets. In this case, do try option '--guess', compare it with the output of 'file', and if the culprit is 'file', go and complain to your system administrator :-), or fix it by defining your own filename pattern matching rules. Consider the case of Texinfo files as an example (the language in which this documentation is written). Files are usually named 'foo.texi', 'bar.txi', or even 'baz.texinfo'. 'file(1)' is able to recognize Texinfo files: doc % file a2ps.texi a2ps.texi: Texinfo source text Therefore the sheets.map would look like: # Texinfo files texinfo: /*.txi/ /*.texi/ /*.texinfo/ <Texinfo source*>  File: a2ps.info, Node: Encodings, Next: Pretty Printing, Prev: Library Files, Up: Top 6 Encodings *********** a2ps is trying to support the various usual encodings that its users use. This chapter presents what an encoding is, how the encodings support is handled within a2ps, and some encodings it supports. * Menu: * What is an Encoding:: The concept of encoding explained * Encoding Files:: How a2ps handles the encodings  File: a2ps.info, Node: What is an Encoding, Next: Encoding Files, Up: Encodings 6.1 What is an Encoding ======================= This section was taken from the web pages of Alis Technologies, Inc., now Open Text Corporation (https://www.opentext.com/). Document encoding is the most important but also the most sensitive and explosive topic in Internet internationalization. It is an essential factor since most of the information distributed over the Internet is in text format. But the history of the Internet is such that the predominant - and in some cases the only possible - encoding is the very limited ASCII, which can represent only a handful of languages, only three of which are used to any great extent: English, Indonesian and Swahili. All the other languages, spoken by more than 90% of the world's population, must fall back on other character sets. And there is a plethora of them, created over the years to satisfy writing constraints and constantly changing technological limitations. The ISO international character set registry contains only a small fraction; IBM's character registry is over three centimeters thick; Microsoft and Apple each have a bunch of their own, as do other software manufacturers and editors. The problem is not that there are too few but rather too many choices, at least whenever Internet standards allow them. And the surplus is a real problem; if every Arabic user made his own choice among the three dozen or so codes available for this language, there is little likelihood that his "neighbor" would do the same and that they would thus be able to understand each other. This example is rather extreme, but it does illustrate the importance of standards in the area of internationalization. For a group of users sharing the same language to be able to communicate, 1. the code used in the shared document must always be identified (labeling) 2. they must agree on a small number of codes - only one, if possible (standards); 3. their software must recognize and process all codes (versatility) Certain character sets stand out either because of their status as an official national or international standard, or simply because of their widespread use. First off, there is the ISO 8859 standards series that standardize a dozen character sets that are useful for a large number of languages using the Latin, Cyrillic, Arabic, Greek and Hebrew alphabets. These standards have a limited range of application (8 bits per character, a maximum of 190 characters, no combining) but where they suffice (as they do for 10 of the 20 most widely used languages), they should be used on the Internet in preference to other codes. For all other languages, national standards should preferably be chosen or, if none are available, a well-known and widely-used code should be the second choice. Even when we limit ourselves to the most widely used standards, the overabundance remains considerable, and this significantly complicates life for truly international software developers and users of several languages, especially when such languages can only be represented by a single code. It was to resolve this problem that both Unicode and the ISO 10646 International standard were created. Two standards? Oh no! Their designers soon realized the problem and were able to cooperate to the extent of making the character set "repertoires" and coding identical. ISO 10646 (and Unicode) contain over 30,000 characters capable of representing most of the living languages within a single code. All of these characters, except for the _Han_ (Chinese characters also used in Japanese and Korean), have a name. And there is still room to encode the missing languages as soon as enough of the necessary research is done. Unicode can be used to represent several languages, using different alphabets, within the same electronic document.  File: a2ps.info, Node: Encoding Files, Prev: What is an Encoding, Up: Encodings 6.2 Encoding Files ================== * Menu: * Encoding Map File:: Mapping an encoding name to a file name * Encoding Description Files:: Specifying an encoding * Some Encodings:: Classical or standard encodings The support of the encodings in a2ps is completely taken out of the code. That is to say, adding, removing or changing anything in its support for an encoding does not require programming, nor even being a programmer. *Note What is an Encoding::, if you want to know more about this.  File: a2ps.info, Node: Encoding Map File, Next: Encoding Description Files, Up: Encoding Files 6.2.1 Encoding Map File ----------------------- *Note Map Files::, for a description of the map files. The meaningful lines of the 'encoding.map' file have the form: ALIAS KEY iso-8859-1 latin1 latin1 latin1 l1 latin1 where ALIAS specifies any name under which the encoding may be used. It influences the option '--encoding', but also the encodings dynamically required, as for instance in the 'mail' style sheet (support for MIME). When ENCODING is asked, the lower case version of ENCODING must be equal to ALIAS. KEY specifies the prefix of the file describing the encoding ('KEY.edf', *note Encoding Description Files::).  File: a2ps.info, Node: Encoding Description Files, Next: Some Encodings, Prev: Encoding Map File, Up: Encoding Files 6.2.2 Encoding Description Files -------------------------------- The encoding description file describing the encoding KEY is named 'KEY.edf'. It is subject to the same rules as any other a2ps file: - please make the name portable: alpha-numerical, at most 8 characters, - empty lines and lines starting by '#' are ignored. The entries are 'Name:' Specifies the full name of the encoding. Please, try to use the official name if there is one. Name: ISO-8859-1 'Documentation/EndDocumentation' Introduces the documentation on the encoding (*note Documentation Format::). Typical informations expected are the other important names this encoding has, and the languages it covers. Documentation Also known as ISO Latin 1, or Latin 1. It is a superset of ASCII, and covers most West-European languages. EndDocumentation 'Substitute:' Introduces a font substitution. The most common fonts (e.g., 'Courier', 'Times-Roman'...) do not support many encodings (for instance it does not support Latin 2). To avoid that Latin 2 users have to replace everywhere calls to 'Courier', a2ps allows to specify that whenever a font is called in an encoding, then another font should be used. For instance in 'iso2.edf' one can read: # Fonts from Ogonkify offer full support of ISO Latin 2 Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki 'Default:' Introduces the name of the font that should be used when a font (not substituted as per the previous item) is called but provides to poor a support of the encoding. The 'Courier' equivalent is the best choice. Default: Courier-Ogonki 'Vector:' Introduces the PostScript encoding vector, that is a list of the 256 PostScript names of the characters. Note that only the printable characters are named in PostScript (e.g., 'bell' in ASCII ('^G') should not be named). The special name '.notdef' is to be used when the character is not printable. *Warning.* Make sure to use real, official, PostScript names. Using names such as 'c123' may be the sign you use unusual names. On the other hand PostScript names such as 'afii8879' are common.  File: a2ps.info, Node: Some Encodings, Prev: Encoding Description Files, Up: Encoding Files 6.2.3 Some Encodings -------------------- Most of the following information is a courtesy of Alis Technologies, Inc. and of Roman Czyborra <zcyborra@cs.tu-berlin.de>'s page about The ISO 8859 Alphabet Soup (http://czyborra.com/charsets/). *Note What is an Encoding::, is an instructive presentation of the encodings. The known encodings are: -- Encoding: ASCII (ascii.edf) US-ASCII. -- Encoding: EUC-JP (euc-jp.edf) The EUC-JP encoding is a 8-bit character set widely used in Japan. -- Encoding: HPRoman (hp.edf) The 8 bits Roman encoding for HP. -- Encoding: IBM-CP437 (ibm-cp437.edf) This encoding is meant to be used for PC files with drawing lines. -- Encoding: IBM-CP850 (ibm-cp850.edf) Several characters may be missing, especially Greek letters and some mathematical symbols. -- Encoding: ISO-8859-1 (iso1.edf) The ISO-8859-1 character set, often simply referred to as Latin 1, covers most West European languages, such as French, Spanish, Catalan, Basque, Portuguese, Italian, Albanian, Rhaeto-Romanic, Dutch, German, Danish, Swedish, Norwegian, Finnish, Faroese, Icelandic, Irish, Scottish, and English, incidentally also Afrikaans and Swahili, thus in effect also the entire American continent, Australia and the southern two-thirds of Africa. The lack of the ligatures Dutch IJ, French OE and ,,German" quotation marks is considered tolerable. The lack of the new C=-resembling Euro currency symbol U+20AC has opened the discussion of a new Latin0. -- Encoding: ISO-8859-2 (iso2.edf) The Latin 2 character set supports the Slavic languages of Central Europe which use the Latin alphabet. The ISO-8859-2 set is used for the following languages: Czech, Croat, German, Hungarian, Polish, Romanian, Slovak and Slovenian. Support is provided thanks to Ogonkify. -- Encoding: ISO-8859-3 (iso3.edf) This character set is used for Esperanto, Galician, Maltese and Turkish. Support is provided thanks to Ogonkify. -- Encoding: ISO-8859-4 (iso4.edf) Some letters were added to the ISO-8859-4 to support languages such as Estonian, Latvian and Lithuanian. It is an incomplete precursor of the Latin 6 set. Support is provided thanks to Ogonkify. -- Encoding: ISO-8859-5 (iso5.edf) The ISO-8859-5 set is used for various forms of the Cyrillic alphabet. It supports Bulgarian, Byelorussian, Macedonian, Serbian and Ukrainian. The Cyrillic alphabet was created by St. Cyril in the 9th century from the upper case letters of the Greek alphabet. The more ancient Glagolithic (from the ancient Slav glagol, which means "word"), was created for certain dialects from the lower case Greek letters. These characters are still used by Dalmatian Catholics in their liturgical books. The kings of France were sworn in at Reims using a Gospel in Glagolithic characters attributed to St. Jerome. Note that Russians seem to prefer the KOI8-R character set to the ISO set for computer purposes. KOI8-R is composed using the lower half (the first 128 characters) of the corresponding American ASCII character set. -- Encoding: ISO-8859-7 (iso7.edf) ISO-8859-7 was formerly known as ELOT-928 or ECMA-118:1986. It is meant for modern Greek. -- Encoding: ISO-8859-9 (iso9.edf) The ISO 8859-9 set, or Latin 5, replaces the rarely used Icelandic letters from Latin 1 with Turkish letters. Support is provided thanks to Ogonkify. -- Encoding: ISO-8859-10 (iso10.edf) Latin 6 (or ISO-8859-10) adds the last letters from Greenlandic and Lapp which were missing in Latin 4, and thereby covers all Scandinavia. Support is provided thanks to Ogonkify. -- Encoding: ISO-8859-13 (iso13.edf) Latin7 (ISO-8859-13) is going to cover the Baltic Rim and re-establish the Latvian (lv) support lost in Latin6 and may introduce the local quotation marks. Support is provided thanks to Ogonkify. -- Encoding: ISO-8859-15 (iso15.edf) The new Latin9 nicknamed Latin0 aims to update Latin1 by replacing some less needed symbols (some fractions and accents) with forgotten French and Finnish letters and placing the U+20AC Euro sign in the cell of the former international currency sign. Support of the Euro symbol is provided thanks to Ogonkify. -- Encoding: KOI8 (koi8.edf) KOI-8 is a subset of ISO-IR-111 that can be used in Serbia, Belarus etc. -- Encoding: MS-CP1250 (ms-cp1250.edf) Microsoft's CP-1250 encoding (aka CeP). -- Encoding: MS-CP1251 (ms-cp1251.edf) Microsoft CP1251 is encoding used in Microsoft Windows for Cyrillic languages -- Encoding: Macintosh (mac.edf) For the Macintosh encoding. The support is not sufficient, and a lot of characters may be missing at the end of the job (especially Greek letters).  File: a2ps.info, Node: Pretty Printing, Next: PostScript, Prev: Encodings, Up: Top 7 Pretty Printing ***************** The main feature of a2ps is its pretty-printing capabilities. Two different levels of pretty printing can be reached: - basic (normal highlight level) in which what you print is what you wrote. - string (heavy highlight level), in which in general, some keywords are replaced by a Symbol character which best represents them. For instance, in most languages '<=' and '>=' will be replaced by the corresponding single character from the font Symbol. Note that the difference is up to the author of the style sheet. * Menu: * Syntactic limits:: What can't be done * Known Style Sheets:: Some supported languages * Type Setting Style Sheets:: a2ps as a tiny word processor * Faces:: Encoding the look of pieces of text * Style sheets semantics:: What is to be defined * Style Sheets Implementation:: How they should be defined * A tutorial on style sheets:: Step by step example  File: a2ps.info, Node: Syntactic limits, Next: Known Style Sheets, Up: Pretty Printing 7.1 Syntactic limits ==================== a2ps is _not_ a powerful syntactic pretty-printer: it just handles lexical structures, i.e., if in your favorite language IF IF == THEN THEN THEN := ELSE ELSE ELSE := IF is legal, then a2ps is not the tool you need. Indeed a2ps just looks for some keywords, or some "sequences".  File: a2ps.info, Node: Known Style Sheets, Next: Type Setting Style Sheets, Prev: Syntactic limits, Up: Pretty Printing 7.2 Known Style Sheets ====================== -- Style Sheet: 68000 (68000.ssh) Written by Akim Demaille. Althought designed at the origin for the 68k's assembler, this style sheet seems to handle rather well other dialects. -- Style Sheet: a2ps configuration file (a2psrc.ssh) Written by Akim Demaille. Meant to print files such as 'a2ps.cfg', or '.a2ps/a2psrc', etc. -- Style Sheet: a2ps style sheet (ssh.ssh) Written by Akim Demaille. Second level of highligthing (option '-g')) substitutes the LaTeX symbols. -- Style Sheet: Ada (ada.ssh) Written by Akim Demaille. This style sheets cover Ada 95. If you feel the need for Ada 83, you'll have to design another style sheet. -- Style Sheet: ASN.1 (asn1.ssh) Written by Philippe Coucaud. ASN.1 (Abstract Syntax Notation One) is used to define the protocol data units (PDUs) of all application layer protocols to date. -- Style Sheet: Autoconf (autoconf.ssh) Written by Akim Demaille. Suitable for both 'configure.ac' and library 'm4' files. -- Style Sheet: AWK (awk.ssh) Written by Edward Arthur. This style is devoted to the AWK pattern scanning and processing language. It is supposed to support classic awk, nawk and gawk. -- Style Sheet: B (b.ssh) Written by Philippe Coucaud. B is a formal specification method mostly used to describe critical systems. It is based on the mathematical sets theory. -- Style Sheet: BC (bc.ssh) Written by Akim Demaille. bc is an arbitrary precision calculator language. -- Style Sheet: Bourne Shell (sh.ssh) Written by Akim Demaille. Some classical program names, or builtin, are highlighted in the second level of pretty-printing. -- Style Sheet: C (c.ssh) Written by Akim Demaille. This style does not highlight the function definitions. Another style which highlights them, GNUish C, is provided (gnuc.ssh). It works only if you respect some syntactic conventions. -- Style Sheet: C Shell (csh.ssh) Written by Jim Diamond. Some classical program names, and/or builtins, are highlighted in the second level of pretty-printing. -- Style Sheet: C# (csharp.ssh) Written by Karen Christenson. This style is for the .NET object-oriented language C#, and is based on the C# Language Specification published in 2002 by Microsoft in the MSDN library. XML comments are mapped to strong comments, and any other comment is a plain comment. The C style-sheet was not selected as an ancestor in order to treat a struct the same as a class or an interface. The CPP style-sheet was not selected as an ancestor because C# set of preprocessor directives is much smaller. Keywords, XML comments, preprocessor directives, label statements, and [] style attributes are high-lighted. -- Style Sheet: C++ (cxx.ssh) Written by Akim Demaille. Should handle all known variations of C++. Most declarations (classes etc.) are not highlighted as they should be. Please, step forward! -- Style Sheet: CAML (caml.ssh) This style is obsolete: use OCaml instead. -- Style Sheet: ChangeLog (chlog.ssh) Written by Akim Demaille. This style covers the usual ChangeLog files. -- Style Sheet: Claire (claire.ssh) Written by Akim Demaille. Claire is a high-level functional and object-oriented language with advanced rule processing capabilities. It is intended to allow the programmer to express complex algorithms with fewer lines and in an elegant and readable manner. To provide a high degree of expressivity, Claire uses: - A very rich type system including type intervals and second-order types (with dual static/dynamic typing), - Parametric classes and methods, - An object-oriented logic with set extensions, - Dynamic versioning that supports easy exploration of search spaces. To achieve its goal of readability, Claire uses - set-based programming with an intuitive syntax, - simple-minded object-oriented programming, - truly polymorphic and parametric functional programming, - a powerful-yet-readable extension of DATALOG to express logical conditions, - an entity-relation approach with explicit relations, inverses, unknown values and relational - operations. More information on claire can be found on Wikipedia (https://en.wikipedia.org/wiki/Claire_(programming_language)). -- Style Sheet: Common Lisp (clisp.ssh) Written by Juliusz Chroboczek. It is not very clear what should be considered as a 'keyword' in Common Lisp. I like binders, control structures and declarations to be highlighted, but not assignments. Names of defstructs are not highlighted because this would not work with defstruct options. -- Style Sheet: Coq Vernacular (coqv.ssh) Written by Akim Demaille. This style is devoted to the Coq v 5.10 vernacular language. -- Style Sheet: CORBA IDL (cidl.ssh) Written by Bob Phillips. A first attempt at a style sheet for OMG CORBA IDL. I believe I captured all the keywords for CORBA 2.2 IDL. I also stole code from gnuc.ssh to print the method names in bold face. I'm not sure I quite like my own choices for Keyword_strong and Keyword, so I'm looking for feedback. Note that, as with gnuc.ssh, for a method name to be noted as such, the left parenthesis associated with the argument list for the method must appear on the same line as the method name. -- Style Sheet: CPP (cpp.ssh) Written by Akim Demaille. C traditional preprocessor handling, mostly meant to be inherited. -- Style Sheet: dc_shell (dc_shell.ssh) Written by Philippe Le Van. Synopsys Design Compiler is a synthesis tool used by electronic companies for the design of their chips. This sheet is very incomplete, we have a lot of keywords to add, eventually options to highlight... The Label_strong style is used for commands which change the design. -- Style Sheet: Eiffel (eiffel.ssh) Written by Akim Demaille. Eiffel is an object oriented language that also includes a comprehensive approach to software construction: a method. The language itself is not just a programming language but also covers analysis, design and implementation. Heavy highlight uses symbols to represent common math operators. -- Style Sheet: Emacs Lisp (elisp.ssh) Written by Didier Verna. This style sheet includes support for some extensions dumped with XEmacs. -- Style Sheet: Encapsulated PostScript (eps.ssh) Written by Akim Demaille. Illegal PostScript operators are highlighted as Errors. -- Style Sheet: Extended Tcl (tclx.ssh) Written by Phil Hollenback. Extensions to plain Tcl. -- Style Sheet: Fortran (fortran.ssh) Written by Denis Girou, Alexander Mai. There are several Fortran dialects, depending whether, on the one hand, you use Fortran 77 or Fortran 90/95, and, on the other hand, Fixed form comments, or Free form comments. The style sheets 'for77kwds' and 'for90kwds' implements keywords only, while the style sheets 'for-fixed' and 'for-free' implements comments only. This style sheet tries to support any of the various flavors (Fortran 77/90/95, fixed or free form). For more specific uses, you should use either: - for77-fixed, for Fortran 77 fixed form, - for77-free, for Fortran 77 free form, - for90-fixed, for Fortran 90/95 fixed form, - for90-free, for Fortran 90/95 free form. -- Style Sheet: Fortran 77 Fixed (for77-fixed.ssh) Written by Denis Girou, Alexander Mai. Dedicated to Fortran 77 in fixed form, i.e., comments are lines starting with c, C, or *, and only those lines are comments. -- Style Sheet: Fortran 77 Free (for77-free.ssh) Written by Denis Girou, Alexander Mai. Dedicated to Fortran 77 in free form, i.e., comments are introduced by ! anywhere on the line, and nothing else is a comment. -- Style Sheet: Fortran 77 Keywords (for77kwds.ssh) Written by Denis Girou, Alexander Mai. This sheet implements only Fortran 77 keywords, and avoids implementing comments support. This is to allow for implementation of either fixed or free source form. See the documentation of the style sheet 'fortran' for more details. -- Style Sheet: Fortran 90 Fixed (for90-fixed.ssh) Written by Denis Girou, Alexander Mai. Dedicated to Fortran 90/95 in fixed form, i.e., comments are lines starting with c, C, or *, and only those lines are comments. -- Style Sheet: Fortran 90 Free (for90-free.ssh) Written by Denis Girou, Alexander Mai. Dedicated to Fortran 90/95 in free form, i.e., comments are introduced by ! anywhere on the line, and nothing else is a comment. -- Style Sheet: Fortran 90 Keywords (for90kwds.ssh) Written by Denis Girou, Alexander Mai. This sheet implements the superset which Fortran 90 and Fortran 95 provide over Fortran 77. See the documentation of the style sheet 'fortran' for more details. -- Style Sheet: Fortran Fixed (for-fixed.ssh) Written by Denis Girou, Alexander Mai. Implements comments of Fortran in fixed form, i.e., comments are lines starting with c, C, or *, and only those lines are comments. No other highlighting is done. See the documentation of the style sheet 'fortran' for more details. -- Style Sheet: Fortran Free (for-free.ssh) Written by Denis Girou, Alexander Mai. Dedicated to Fortran in free form, i.e., comments are introduced by ! anywhere on the line, and nothing else is a comment. -- Style Sheet: GNUish C (gnuc.ssh) Written by Akim Demaille. Declaration of functions are highlighted _only_ if you start the function name in the first column, and it is followed by an opening parenthesis. In other words, if you write int main (void) it won't work. Write: int main (void) -- Style Sheet: GNUMakefile (gmake.ssh) Written by Alexander Mai. Special tokens of GNUmakefiles and non terminal declarations are highlighted. -- Style Sheet: Haskell (haskell.ssh) Written by Ilya Beylin. Haskell: non-strict functional programming language https://www.haskell.org/ -- Style Sheet: HTML (html.ssh) Written by Akim Demaille, Wesley J. Chun. This style is meant to pretty print HTML source files, not to simulate its interpretation (i.e., '<bold>foo</bold>' does not print 'foo' in bold). If you really meant to print the result of the HTML file _interpreted_, then you should turn the delegations on, and make sure 'a2ps' has HTML delegations. -- Style Sheet: IDL (idl.ssh) Written by Robert S. Mallozzi, Manfred Schwarb. Style sheet for IDL 5.2 (Interactive Data Language). Obsolete routines are not supported. https://www.rsinc.com. -- Style Sheet: InstallShield 5 (is5rul.ssh) Written by Alex. InstallShield5 _TM_ RUL script. -- Style Sheet: Java (java.ssh) Written by Steve Alexander. Documentation comments are mapped to strong comments, and any other comment is plain comment. -- Style Sheet: JavaScript (js.ssh) Written by Scott Pakin. Keywords used are everything listed in the Client-Side JavaScript Reference 1.3, plus "undefined" (why isn't that listed?) and "prototype". I omitted the semi-standard a2ps optional operators for equality, because JavaScript's use of both strict- and non-strict equality might ambiguate the output. Finally, regular expressions are formatted like strings. -- Style Sheet: LACE (lace.ssh) Written by Akim Demaille. This is meant for the Eiffel equivalent of the Makefiles. -- Style Sheet: Lex (lex.ssh) Written by Akim Demaille. In addition to the C constructs, it highlights the declaration of states, and some special '%' commands. -- Style Sheet: Lout (lout.ssh) Written by Jean-Baptiste Nivoit. This is the style for Lout files. -- Style Sheet: Mail Folder (mail.ssh) Written by Akim Demaille. To use from elm and others, it is better to specify '-g -Email', since the file sent to printer is no longer truly a mail folder. This style also suits to news. '--strip' options are also useful (they strip "useless" headers). Whenever the changes of encoding are clear, a2ps sets itself the encoding for the parts concerned. Tag 1 is the subject, and Tag 2 the author of the mail/news. Note: This style sheet is _very_ difficult to write. Please don't report behavior you don't like. Just send me improvements, or write a Bison parser for mails. -- Style Sheet: Makefile (make.ssh) Written by Akim Demaille. Special tokens, and non terminal declarations are highlighted. -- Style Sheet: Management Information Base (mib.ssh) Written by Kelly Wiles. The MIB file is of ASN.1 syntax. -- Style Sheet: Maple (maple.ssh) Written by Richard J Mathar. Some classical program names, and/or builtins, are highlighted in the second level of pretty-printing. -- Style Sheet: masm (nasm.ssh) Written by Aleksandar Veselinovic. This style highlights MASM ASM code. -- Style Sheet: Matlab (matlab.ssh) Written by Joakim Lbeck. This style highlights function definitions and a limited number of keywords, mostly control constructs, and is therefore usable for many Matlab versions. Special care have been taken to distinguish string delimiters from the transpose operator (which is the same symbol) and to recognize comments. -- Style Sheet: MATLAB 4 (matlab4.ssh) Written by Marco De la Cruz. Note that comments in the code should have a space after the %. -- Style Sheet: Modula 2 (modula2.ssh) Written by Peter Bartke. -- Style Sheet: Modula 3 (modula3.ssh) Written by Akim Demaille. Modula-3 is a member of the Pascal family of languages. Designed in the late 1980s at Digital Equipment Corporation and Olivetti, Modula-3 corrects many of the deficiencies of Pascal and Modula-2 for practical software engineering. In particular, Modula-3 keeps the simplicity of type safety of the earlier languages, while providing new facilities for exception handling, concurrency, object-oriented programming, and automatic garbage collection. Modula-3 is both a practical implementation language for large software projects and an excellent teaching language. This sheet was designed based on Modula 3 home page (http://www.modula3.org/). -- Style Sheet: o2c (o2c.ssh) -- Style Sheet: Oberon (oberon.ssh) Written by Akim Demaille. Created by N. Wirth, Oberon is the successor of the Pascal and Modula-2 family of programming languages. It was specifically designed for systems programming, and was used to create the Oberon system in cooperation with J. Gutknecht. A few years later, the Oberon language was extended with additional object-oriented features to result in the programming language Oberon-2. Implementation of the sheet based on The Project Oberon Site (http://www.projectoberon.com/). -- Style Sheet: Objective C (objc.ssh) Written by Paul Shum. -- Style Sheet: OCaml (ocaml.ssh) This style should also suit other versions of ML (caml light, SML etc.). -- Style Sheet: OCaml Yacc (mly.ssh) Written by Jean-Baptiste Nivoit. Should handle CAML Special Light parser files. -- Style Sheet: Octave (octave.ssh) Written by C.P. Earls. -- Style Sheet: Oracle parameter file (initora.ssh) Written by Pierre Mareschal. For init.ora parameter files. -- Style Sheet: Oracle PL/SQL (plsql.ssh) Written by Pierre Mareschal. This style is to be checked. -- Style Sheet: Oracle SQL (sql.ssh) Written by Pierre Mareschal. a2ps-sql Pretty Printer Version 1.0.0 beta - 18-MAR-97 For comments, support for - /*..*/ and //. This style is to be checked. -- Style Sheet: Oracle SQL-PL/SQL-SQL*Plus (oracle.ssh) Written by Pierre Mareschal. 18-MAR-97 For comments, support for - /*..*/ and //. This style is to be checked. -- Style Sheet: Pascal (pascal.ssh) Written by Akim Demaille. The standard Pascal is covered by this style. But some extension have been added too, hence modern Pascal programs should be correctly handled. Heavy highlighting maps mathematical symbols to their typographic equivalents. -- Style Sheet: Perl (perl.ssh) Written by Denis Girou. As most interpreted languages, Perl is very free on its syntax, what leads to significant problems for a pretty printer. Please, be kind with our try. Any improvement is most welcome. -- Style Sheet: PHP (php.ssh) Written by Hartmut Holzgraefe. This is a a2ps stylesheet for PHP syntax highlighting (just the PHP part, HTML is left 'as is'). This is my first try on a2ps stylesheets. It works OK for me. If it doesn't come up to your expectatios, then please tell me. -- Style Sheet: pic16f84 (pic16f84.ssh) Written by Aleksandar Veselinovic. This style highlights PIC16F84 ASM code. -- Style Sheet: PostScript (ps.ssh) Written by Akim Demaille. Only some keywords are highlighted, because otherwise listings are quickly becoming a big bold spot. -- Style Sheet: PostScript Printer Description (ppd.ssh) Written by Akim Demaille. Support for Adobe's PPD files. -- Style Sheet: Pov-Ray (pov.ssh) Written by Jean-Baptiste Nivoit. Should handle Persistence Of Vision input files. -- Style Sheet: PreScript (pre.ssh) Written by Akim Demaille. This style defines commands in the canonic syntax of a2ps. It is meant to be used either as an input language, and to highlight the table of contents etc. It can be a good choice of destination language for people who want to produce text to print (e.g. pretty-printing, automated documentation etc.) but who definitely do not want to learn PostScript, nor to require the use of LaTeX. -- Style Sheet: PreTeX (pretex.ssh) Written by Akim Demaille. This style sheets provides LaTeX-like commands to format text. It is an alternative to the PreScript style sheet, in which formating commands are specified in a more a2ps related syntax. It provides by the use of LaTeX like commands, a way to describe the pages that this program should produce. -- Style Sheet: Prolog (prolog.ssh) Written by Akim Demaille. Help is needed on this sheet. -- Style Sheet: Promela (promela.ssh) Written by Akim Demaille. There is no way for this program to highlight send and receive primitives. -- Style Sheet: Python (python.ssh) Written by Akim Demaille. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms. The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python web site (https://www.python.org), and can be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation. The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). Python is also suitable as an extension language for customizable applications. -- Style Sheet: Rd -- Documentation for GNU R (rd.ssh) Written by Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel. R is a system for statistical computation and graphics. It consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. R has a home page at 'https://www.r-project.org/'. It is free software distributed under a GNU-style copyleft, and an official part of the GNU project ( GNU S ). -- Style Sheet: Reference Card (card.ssh) Written by Akim Demaille. This style sheet is meant to process help messages generated by Unix applications. It highlights the options (-short or -long), and their arguments. Normal use of this style sheet is through the shell script card (part of the a2ps package), but a typical hand-driven use is: program --help | a2ps -Ecard -- Style Sheet: REXX (rexx.ssh) Written by Alexander Mai. This style sheet supports REXX. You can get information about REXX from the REXX Language Association (https://www.rexxla.org). -- Style Sheet: Ruby (ruby.ssh) Written by Noritsugu Nakamura. -- Style Sheet: S language (s.ssh) Written by Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel. Should handle code for interpreters of S, a language for statistical computating and graphics, such as R. R consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. R has a home page at 'https://www.r-project.org/'. It is free software distributed under a GNU-style copyleft, and an official part of the GNU project ('GNU S'). -- Style Sheet: S transscript (st.ssh) Written by Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel. Should handle transscripts from interpreters of S, a language for statistical computing and graphics, such as R. R consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. R has a home page at 'https://www.r-project.org/'. It is free software distributed under a GNU-style copyleft, and an official part of the GNU project ('GNU S'). -- Style Sheet: Sather (sather.ssh) Written by Akim Demaille. Sather is an object oriented language designed to be simple, efficient, safe, flexible and non-proprietary. One way of placing it in the 'space of languages' is to say that it aims to be as efficient as C, C++, or Fortran, as elegant as and safer than Eiffel, and support higher-order functions and iteration abstraction as well as Common Lisp, CLU or Scheme. Implementation of the sheet based on the Sather home page (https://www.gnu.org/software/sather/). Heavy highlighting uses symbols for common mathematical operators. -- Style Sheet: Scheme (scheme.ssh) Written by Akim Demaille. This style sheet is looking for a maintainer and/or comments. -- Style Sheet: SDL-88 (sdl88.ssh) Written by Jean-Philippe Cottin. -strip-level=2 is very useful: it cancels the graphical information left by graphic editors. Only the pure specification is then printed. -- Style Sheet: Sed (sed.ssh) Written by Akim Demaille. Comments and labels are highlighted. Other ideas are welcome! A lot of work is still needed. -- Style Sheet: Shell (shell.ssh) Written by Akim Demaille. This style sheet is not meant to be used directly, but rather an as ancestor for shell style sheets. -- Style Sheet: Small (small.ssh) Written by Christophe Continente. This style does not highlight the function definitions. -- Style Sheet: SpecC (specc.ssh) Written by Hideaki Yokota. Non-textual operators are not highlighted. Some logical operators are printed as graphical symbols in the second level of pretty-printing. -- Style Sheet: SQL 92 (sql92.ssh) Written by Pierre Mareschal. 18-MAR-97 This style is to be checked. -- Style Sheet: Standard ML (sml.ssh) Written by Franklin Chen, Daniel Wang. This style sheet takes advantage of the Symbol font to replace many ASCII operators with their natural graphical representation. This is enabled only at heavy highlighting. -- Style Sheet: stratego (stratego.ssh) Written by Nicolas Tisserand. Highlights stratego source code -- Style Sheet: Symbols (symbols.ssh) Written by Akim Demaille. This style sheet should be a precursor for any style sheet which uses LaTeX like symbols. -- Style Sheet: TC Shell (tcsh.ssh) Written by Jim Diamond. C shell with file name completion and command line editing. -- Style Sheet: TeX (tex.ssh) Written by Denis Girou. This is the style for (La)TeX files. It's mainly useful for people who develop (La)TeX packages. With '-g', common mathematical symbols are represented graphically. -- Style Sheet: Texinfo (texinfo.ssh) Written by Akim Demaille. Heavy highlighting prints the nodes on separate pages which title is the name of the node. -- Style Sheet: TeXScript (texscript.ssh) Written by Akim Demaille. TeXScript is the new name of what used to be called PreScript. New PreScript has pure a2ps names, PreTeX has pure TeX names, and TeXScript mixes both. -- Style Sheet: Tiger (tiger.ssh) Written by Akim Demaille. Tiger is a toy language that serves as example of the book Modern Compiler Implementation (https://www.cs.princeton.edu/~appel/modern/) by Andrew W. Appel. -- Style Sheet: tk (tk.ssh) Written by Akim Demaille, Larry W. Virden. Since everything, or almost, is a string, what is printed is not always what you would like. -- Style Sheet: Tool Command Language (tcl.ssh) Written by Akim Demaille, Larry W. Virden. Since everything, or almost, is a string, what is printed is not always what you would like. -- Style Sheet: Unified Diff (udiff.ssh) Written by Akim Demaille. This style is meant to be used onto the output unidiffs, that is to say output from 'diff -u'. Typical use of this style is: diff -u old new | a2ps -Eudiff The prologue 'diff' helps to highlight the differences ('a2ps -Ewdiff --prologue=diff'). -- Style Sheet: Unity (unity.ssh) Written by Jean-Philippe Cottin. The graphic conversion of the symbols (option '-g') is nice. -- Style Sheet: VERILOG (verilog.ssh) Written by Edward Arthur. This style is devoted to the VERILOG hardware description language. -- Style Sheet: VHDL (vhdl.ssh) Written by Thomas Parmelan. Non-textual operators are not highlighted. Some logical operators are printed as graphical symbols in the second level of pretty-printing. -- Style Sheet: Visual Basic for Applications (vba.ssh) Written by Dirk Eddelbuettel. -- Style Sheet: Visual Tcl (vtcl.ssh) Written by Phil Hollenback. All the Vtcl keywords that aren't in Tcl or TclX. -- Style Sheet: VRML (vrml.ssh) Written by Nadine Richard. According to Grammar Definition Version 2.0 ISO/IEC CD 14772 (https://www.web3d.org/documents/specifications/14772/V2.0/part1/grammar.html). -- Style Sheet: wdiff (wdiff.ssh) Written by Akim Demaille. This style is meant to be used onto the output of Franc,ois Pinard's program 'wdiff'. 'wdiff' is a utility that underlines the differences of words between to files. Where 'diff' make only the difference between lines that have changed, 'wdiff' reports words that have changed inside the lines. Typical use of this style is: wdiff old new | a2ps -Ewdiff 'wdiff' can be found in usual GNU repositories. The prologue 'diff' helps to highlight the differences ('a2ps -Ewdiff --prologue=diff'). -- Style Sheet: XS (xs.ssh) Written by Kestutis Kupciunas. This style covers Perl XS language. -- Style Sheet: Yacc (yacc.ssh) Written by Akim Demaille. Special tokens, and non terminal declarations are highlighted. -- Style Sheet: Z Shell (zsh.ssh) Zsh is a UNIX command interpreter (shell) usable as an interactive login shell and as a shell script command processor. Of the standard shells, zsh most closely resembles ksh but includes many enhancements. Zsh has comand line editing, builtin spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and a host of other features. This style sheet highlights some classical program names and builtins in the second level of pretty-printing.  File: a2ps.info, Node: Type Setting Style Sheets, Next: Faces, Prev: Known Style Sheets, Up: Pretty Printing 7.3 Type Setting Style Sheets ============================= This section presents a few style sheets that define page description languages (compared to most other style sheet meant to pretty print source files). * Menu: * Symbol:: Access to the glyphs of the Symbol font * PreScript:: Typesetting in an a2ps like syntax * PreTeX:: Typesetting in a LaTeX like syntax * TeXScript:: Typesetting in a mixture of both  File: a2ps.info, Node: Symbol, Next: PreScript, Up: Type Setting Style Sheets 7.3.1 Symbol ------------ The style sheet 'Symbol' introduces easy to type keywords to obtain the special characters of the PostScript font 'Symbol'. The keywords are named to provide a LaTeX taste. These keywords are also the names used when designing a style sheet, hence to get the full list, see *note A Bit of Syntax::. If you want to know the correspondence, it is suggested to print the style sheet file of 'Symbol': a2ps -g symbol.ssh  File: a2ps.info, Node: PreScript, Next: PreTeX, Prev: Symbol, Up: Type Setting Style Sheets 7.3.2 PreScript --------------- 'PreScript' has been designed in conjunction with a2ps. Since bold sequences, special characters etc. were implemented in a2ps, we thought it would be good to allow direct access to those features: 'PreScript' became an input language for a2ps, where special font treatments are specified in an 'ssh' syntax (*note Style Sheets Implementation::). The main advantages for using 'PreScript' are: - it is fairly simple, - a2ps is small and easy to install, hence it is available on every UNIX platform. It can be a good candidate for generation of PostScript output (syntactic pretty-printers, generation of various reports etc.). * Menu: * Syntax:: Lexical specifications * PreScript Commands:: * PreScript examples::  File: a2ps.info, Node: Syntax, Next: PreScript Commands, Up: PreScript 7.3.2.1 Syntax .............. Every command name begins with a backslash ('\'). If the command uses an argument, it is given between curly braces with no spaces between the command name and the argument. The main limit on 'PreScript' is that no command can be used inside another command. For instance the following line will be badly interpreted by a2ps: \Keyword{Problems using \keyword{recursive \copyright} calls} The correct way to write this in 'PreScript' is \Keyword{Problems using} \keyword{recursive} \copyright \Keyword{calls}. Everything from an unquoted % to the end of line is ignored (comments).  File: a2ps.info, Node: PreScript Commands, Next: PreScript examples, Prev: Syntax, Up: PreScript 7.3.2.2 PreScript Commands .......................... These commands required arguments. '\keyword{TEXT}' '\Keyword{TEXT}' Highlight lightly/strongly the given TEXT. Should be used only for a couple of adjacent words. '\comment{TEXT}' '\Comment{TEXT}' The TEXT is given a special face. The TEXT may be removed if option '--strip' is used. '\label{TEXT}' '\Label{TEXT}' TEXT should be considered as a definition, or an important point in the structure of the whole text. '\string{TEXT}' Write TEXT with string's face (e.g., in font Times). '\error{TEXT}' Write TEXT with error's face (generally a very different face, so that you see immediately). '\symbol{TEXT}' TEXT is written in the PostScript symbol font. This feature is not compatible with LaTeX. It is recommended, when possible, to use the special keywords denoting symbols, which are compatible with LaTeX (*note Symbol::). '\header{TEXT}' '\footer{TEXT}' Use TEXT as header (footer) for the current page. If several headers or footers are defined on the same page, the last one is taken into account. '\encoding{KEY}' Change dynamically the current encoding. After this command, the text is printed using the encoding corresponding to KEY.  File: a2ps.info, Node: PreScript examples, Prev: PreScript Commands, Up: PreScript 7.3.2.3 Examples ................ 'PreScript' and a2ps can be used for one-the-fly formating. For instance, on the 'passwd' file: ypcat passwd | awk -F: \ '{print "\Keyword{" $5 "} (" $1 ") \rightarrow\keyword{" $7 "}"}'\ | a2ps -Epre -P  File: a2ps.info, Node: PreTeX, Next: TeXScript, Prev: PreScript, Up: Type Setting Style Sheets 7.3.3 PreTeX ------------ The aim of the PreTeX style sheet is to provide something similar to 'PreScript', but with a more LaTeX like syntax. * Menu: * Special characters:: * PreTeX Commands:: * Differences with LaTeX::  File: a2ps.info, Node: Special characters, Next: PreTeX Commands, Up: PreTeX 7.3.3.1 Special characters .......................... '$' is ignored in 'PreTeX' for compatibility with LaTeX, and '%' introduces a comment. Hence they are the only symbols which have to be quoted by a '\'. The following characters should also be quoted to produce good LaTeX files, but are accepted by 'PreScript': '_', '&', '#'. Note that _inside a command_, like '\textbf', the quotation mechanism does not work in 'PreScript' ('\textrm{#$%}' writes '#$%') though LaTeX still requires quotation. Hence whenever special characters or symbols are introduced, they should be at the outer most level.  File: a2ps.info, Node: PreTeX Commands, Next: Differences with LaTeX, Prev: Special characters, Up: PreTeX 7.3.3.2 PreTeX Commands ....................... These commands required arguments. '\section{TITLE}' '\subsection{TITLE}' '\subsubsection{TITLE}.' Used to specify the title of a section, subsection or subsubsection. '\textbf{TEXT}' '\textit{TEXT}' '\textbi{TEXT}' '\textrm{TEXT}' write TEXT in bold, italic, bold-italic, Times. Default font is Courier. '\textsy{TEXT}' TEXT is written in the PostScript symbol font. This feature is not compatible with LaTeX. It is recommended, when possible, to use the special keywords denoting symbols, which are compatible with LaTeX (See the style sheet 'Symbol'). '\header{TEXT}' '\footer{TEXT}' Use TEXT as header (footer) for the current page. If several headers or footers are defined on the same page, the last one is taken into account. '\verb+TEXT+' Quote TEXT so that no special sequence will be interpreted. In '\verb+QUOTED STRING+' '+' can be any symbol in '+', '!', '|', '#', '='. '\begin{document}' '\end{document}' '\begin{itemize}' '\end{itemize}' '\begin{enumerate}' '\end{enumerate}' '\begin{description}' '\end{description}' These commands are legal in LaTeX but have no sense in PreTeX. Hence there are simply ignored and not printed (if immediately followed by an end-of-line).  File: a2ps.info, Node: Differences with LaTeX, Prev: PreTeX Commands, Up: PreTeX 7.3.3.3 Differences with LaTeX .............................. The following symbols, inherited from the style sheet 'Symbol', are not supported by LaTeX: '\Alpha', '\apple', '\Beta', '\carriagereturn', '\Chi', '\Epsilon', '\Eta', '\florin', '\Iota', '\Kappa', '\Mu', '\Nu', '\Omicron', '\omicron', '\radicalex', '\register', '\Rho', '\suchthat', '\Tau', '\therefore', '\trademark', '\varUpsilon', '\Zeta'. LaTeX is more demanding about special symbols. Most of them must be in so-called math mode, which means that the command must be inside '$' signs. For instance, though If \forall x \in E, x \in F then E \subseteq F. is perfectly legal in PreTeX, it should be written If $\forall x \in E, x \in F$ then $E \subseteq F$. for LaTeX. Since in PreTeX every '$' is discarded (unless quoted by a '\'), the second form is also admitted.  File: a2ps.info, Node: TeXScript, Prev: PreTeX, Up: Type Setting Style Sheets 7.3.4 TeXScript --------------- 'TeXScript' is a replacement of the old version of 'PreScript': it combines both the a2ps-like and the LaTeX-like syntaxes through inheritance of both 'PreScript' and 'PreTeX'. In addition it provides commands meant to ease processing of file for a2ps by LaTeX. Everything between '%%TeXScript:skip' and '%%TeXScript:piks' will be ignored in 'TeXScript', so that there can be inserted command definitions for LaTeX exclusively. The commands '\textbi' (for bold-italic) and '\textsy' (for symbol) do not exist in LaTeX. They should be defined in the preamble: %%TeXScript:skip \newcommand{\textbi}[1]{\textbf{\textit{#1}}} \newcommand{\textsy}[1]{#1} %%TeXScript:piks There is no way in TeXScript to get an automatic numbering. There is no equivalent to the LaTeX environment 'enumerate'. But every command beginning by '\text' is doubled by a command beginning by '\magic'. a2ps behaves the same way on both families of commands. Hence, if one specifies that arguments of those functions should be ignored in the preamble of the LaTeX document, the numbering is emulated. For instance \begin{enumerate} \magicbf{1.}\item First line \magicbf{2.}\item Second line \end{enumerate} will be treated the same way both in TeXScript and LaTeX. '\header' and '\footer', are not understood by LaTeX.  File: a2ps.info, Node: Faces, Next: Style sheets semantics, Prev: Type Setting Style Sheets, Up: Pretty Printing 7.4 Faces ========= A "face" is an attribute given to a piece of text, which specifies how it should look like. Since a2ps is devoted to pretty-printing source files, the faces it uses are related to the syntactic entities that can be encountered in a file. The faces a2ps uses are: 'Plain' This corresponds to the text body. 'Keyword' 'Keyword_strong' These are related to the keywords that may appear in a text. 'Comment' 'Comment_strong' These are related to comments in the text. Remember that comments should be considered as non essential ("_Aaaeaaarg_" says the programmer); indeed, the user might suppress the comments thanks (?) to the option '--strip-level'. Hence, *never* use these faces just because you think they look better on, say, strings. 'Label' 'Label_strong' These are used when a point of extreme importance, or a sectioning point, is met. Typically, functions declarations etc. 'String' Used mainly for string and character literals. 'Error' Used to underline the presence of an error. For instance in Encapsulated PostScript, some PostScript operators are forbidden: they are underlined as errors. Actually, there is also the face 'Symbol', but this one is particular: it is not legal changing its font.  File: a2ps.info, Node: Style sheets semantics, Next: Style Sheets Implementation, Prev: Faces, Up: Pretty Printing 7.5 Style Sheets Semantics ========================== a2ps pretty prints a source file thanks to "style sheets", one per language. In the following is described how the style sheets are defined. You may skip this section if you don't care how a2ps does this, and if you don't expect to implement new styles. * Menu: * Name and key:: Both names of a style sheet * Comments:: Author name, version etc. * Alphabets:: What words are legal * Case sensitivity:: Is BEGIN different of begin * P-Rules:: Pretty Printing Rules * Sequences:: Strings, comments etc. * Optional entries:: Second level of pretty printing  File: a2ps.info, Node: Name and key, Next: Comments, Up: Style sheets semantics 7.5.1 Name and key ------------------ Every style sheet has both a key, and a name. The name can be clean and beautiful, with any character you might want. The key is in fact the prefix part of the file name, and is alpha-numerical, lower case, and less than 8 characters long. Anywhere a2ps needs to recognize a style sheet by a name, *it uses the key* (in the 'sheets.map' file, with the option '-E', etc.). As an example, C++ is implemented in a file called 'cxx.ssh', in which the name is declared to be 'C++'. The rationale is that not every system accepts any character in the file name (e.g., no '+' in MS-DOS). Moreover, it allows to make symbolic links on the ssh files (e.g., 'ln -s cxx.ssh c++.ssh' let's you use '-E c++').  File: a2ps.info, Node: Comments, Next: Alphabets, Prev: Name and key, Up: Style sheets semantics 7.5.2 Comments -------------- ssh files can include the name of its author, a version number, a documentation note and a requirement on the version of a2ps. For instance, if a style sheet requires a2ps version 4.9.6, then a2ps version 4.9.5 will reject it.  File: a2ps.info, Node: Alphabets, Next: Case sensitivity, Prev: Comments, Up: Style sheets semantics 7.5.3 Alphabets --------------- a2ps needs to know the beginning and the end of a word, especially keywords. Hence it needs two alphabets: the first one specifying by which letters an identifier can begin, and the second one for the rest of the word. If you prefer, a keyword starts with a character belonging to the first alphabet, and a character not pertaining to the second is a separator.  File: a2ps.info, Node: Case sensitivity, Next: P-Rules, Prev: Alphabets, Up: Style sheets semantics 7.5.4 Case sensitivity ---------------------- If the style is case insensitive, then matching is case insensitive (keywords, operators and sequences).  File: a2ps.info, Node: P-Rules, Next: Sequences, Prev: Case sensitivity, Up: Style sheets semantics 7.5.5 P-Rules ------------- A "P-rule" (Pretty printing rule), or "rule" for short, is a structure which consists of two items: "lhs" "left-hand side" its source string, with which the source file is compared; "rhs" "right hand side" a list of faced strings which will replace the text matched in the pretty-printed output. A faced string is composed of - a string, or a reference to a part of the source string (*note Back-reference Operator: (regex)Back-reference Operator.) - the face to use to print it Just a short example: '(foo, bar, Keyword_strong)' as a rule means that every input occurrence of 'foo' will be replaced by 'bar', written with the 'Keyword_strong' face. If the destination string is empty, then a2ps will use the source string. This is different from giving the source string as a destination string if the case is different. An example will make it fairly clear. Let 'foobar' be a case insensitive style sheet including the rules '(foo, "", Keyword)' and '(bar, bar, Keyword)'. Then, on the input 'FOO BAR', a2ps will produce 'FOO bar' in 'Keyword'. a2ps implements two different ways to match a string. The difference comes from that some keywords are sensitive to the delimiters around them (such as 'unsigned' and 'int' in 'C', which are definitely not the same thing as 'unsignedint'), and others not (in 'C', '!=' is "different from" both in 'a != b' and 'a!=b'). The first ones are called "keywords" in a2ps jargon, and the seconds are "operators". Operators are matched anywhere they appear, while keywords need to have separators around them (*note Alphabets::). Let us give a more complicated example: that of the 'Yacc' rules. A rule in 'Yacc' is of the form: a_rule : part1 part2 ; Suppose you want to highlight these rules. To recognize them, you will write a regular expression specifying that: 1. it must start at the beginning of the line, 2. then there is string composed of symbols, which is what you want to highlight, 3. and a colon, which can be preceded by blank characters. The regexp you want is: '/^[a-zA-Z0-9_]*[\t ]*:/'. But with the rule /^[a-zA-Z0-9_]*[\t ]*:/, "", Label_strong the blanks and the colon are highlighted too. Hence you need to specify some parts in the regexp (*note Back-reference Operator: (regex)Back-reference Operator.), and use a longer list of destination strings. The correct rule is (/^([a-zA-Z0-9_]*)([\t ]*:)/, \1 Label_strong, \2 Plain) Since it is a bit painful to read, regexps can be spread upon several lines. It is strongly suggested to break them by groups, and to document the group: (/^([a-zA-Z0-9_]*)/ # \1. Name of the rule /([\t ]*:)/ # \2. Trailing space and colon \1 Label_strong, \2 Plain)  File: a2ps.info, Node: Sequences, Next: Optional entries, Prev: P-Rules, Up: Style sheets semantics 7.5.6 Sequences --------------- A "sequence" is a string between two "markers", along with a list of exceptions. A marker is a fixed string. Typical examples are comments, string (with usually '"' as opening and closing markers, and '\\' and '\"' as exceptions) etc. Three faces are used: one for the initial marker, one for the core of the sequence, and a last one for the final maker.  File: a2ps.info, Node: Optional entries, Prev: Sequences, Up: Style sheets semantics 7.5.7 Optional entries ---------------------- There are two levels of pretty-printing encoded in the style sheets. By default, a2ps uses the first level, called "normal", unless the option '-g' is specified, in which case, "heavy" highlighting is invoked, i.e., optional keywords, operators and sequences are considered.  File: a2ps.info, Node: Style Sheets Implementation, Next: A tutorial on style sheets, Prev: Style sheets semantics, Up: Pretty Printing 7.6 Style Sheets Implementation =============================== In the previous section (*note Style sheets semantics::) were explained the various items needed to understand the machinery involved in pretty printing. Here, their implementation, i.e., how to write a style sheet file, is explained. The next section (*note A tutorial on style sheets::), exposes a step by step simple example. * Menu: * A Bit of Syntax:: Lexical rules of the ssh language * Style Sheet Header:: Declaration of a style * Syntax of the Words:: Classes of the Characters * Inheriting:: Extending existing style sheets * Syntax for the P-Rules:: Atomic Pretty Printing rules * Declaring keywords and operators:: Special Classes of Identifiers * Declaring sequences:: Bordered Lexical Entities * Checking a Style Sheet:: Ask a2ps to Check the Sheet  File: a2ps.info, Node: A Bit of Syntax, Next: Style Sheet Header, Up: Style Sheets Implementation 7.6.1 A Bit of Syntax --------------------- Here are the lexical rules underlying the style sheet language: - the separators are white space, form feed, new line, and tab. - '#' introduces a comment, ended at the end of the line. - special characters are the separators, plus '#', '"', ',', '(', ')', '+' and '/'. Any other character is a regular character. - the list of the structuring keywords is 'alphabet', 'alphabets', 'are', 'case', 'documentation', 'end', 'exceptions', 'first', 'in', 'insensitive', 'is', 'keywords', 'operators', 'optional', 'second', 'sensitive', 'sequences', 'style' - the list of the keywords designating faces is 'Comment', 'Comment_strong', 'Encoding', 'Error', 'Index1', 'Index2', 'Index3', 'Index4', 'Invisible', 'Keyword', 'Keyword_strong', 'Label', 'Label_strong', 'Plain', 'String', 'Symbol', 'Tag1', 'Tag2', 'Tag3', 'Tag4' - the list of keywords designating special sequences is 'C-char', 'C-string' - the list of keywords representing special characters is '---', '\Alpha', '\Beta', '\Chi', '\Delta', '\Downarrow', '\Epsilon', '\Eta', '\Gamma', '\Im', '\Iota', '\Kappa', '\Lambda', '\Leftarrow', '\Leftrightarrow', '\Mu', '\Nu', '\Omega', '\Omicron', '\Phi', '\Pi', '\Psi', '\Re', '\Rho', '\Rightarrow', '\Sigma', '\Tau', '\Theta', '\Uparrow', '\Upsilon', '\Xi', '\Zeta', '\aleph', '\alpha', '\angle', '\approx', '\beta', '\bullet', '\cap', '\carriagereturn', '\cdot', '\chi', '\circ', '\clubsuit', '\cong', '\copyright', '\cup', '\delta', '\diamondsuit', '\div', '\downarrow', '\emptyset', '\epsilon', '\equiv', '\eta', '\exists', '\florin', '\forall', '\gamma', '\geq', '\heartsuit', '\in', '\infty', '\int', '\iota', '\kappa', '\lambda', '\langle', '\lceil', '\ldots', '\leftarrow', '\leftrightarrow', '\leq', '\lfloor', '\mu', '\nabla', '\neq', '\not', '\not\in', '\not\subset', '\nu', '\omega', '\omicron', '\oplus', '\otimes', '\partial', '\perp', '\phi', '\pi', '\pm', '\prime', '\prod', '\propto', '\psi', '\radicalex', '\rangle', '\rceil', '\register', '\rfloor', '\rho', '\rightarrow', '\sigma', '\sim', '\spadesuit', '\subset', '\subseteq', '\suchthat', '\sum', '\supset', '\supseteq', '\surd', '\tau', '\theta', '\therefore', '\times', '\trademark', '\uparrow', '\upsilon', '\varUpsilon', '\varcopyright', '\vardiamondsuit', '\varphi', '\varpi', '\varregister', '\varsigma', '\vartheta', '\vartrademark', '\vee', '\wedge', '\wp', '\xi', '\zeta' It is a good idea to print the style sheet 'symbols.ssh' to see them: a2ps symbols.ssh - a string starts and finishes with '"', and may contain anything. Regular 'C' escaping mechanism is used. - a regular expression starts and finishes with '/', and may contain anything. Regular 'C' escaping mechanism is used. Regexps can be split in several parts, a' la C strings (i.e., '/part 1/ /part 2/'). - any sequence of regular characters which is not a keyword, is a string (consider this as a shortcut, avoiding extraneous '"').  File: a2ps.info, Node: Style Sheet Header, Next: Syntax of the Words, Prev: A Bit of Syntax, Up: Style Sheets Implementation 7.6.2 Style Sheet Header ------------------------ The definition of the name of the style sheet is: 'style' NAME 'is' # body of the style sheet 'end' 'style' The following constructions are optional: 'version' To define the version number of the style sheet version is VERSION-NUMBER 'written' To define the author(s). written by AUTHORS Giving your email is useful for bug reports about style sheets. written by "Some Body <Some.Body@some.whe.re>" 'requires' To specify the version of a2ps it requires. a2ps won't accept a file which requires a higher version number than its own. requires a2ps A2PS-VERSION-NUMBER 'documentation' To leave extra comments people should read. documentation is STRINGS end documentation STRINGS may be a list of strings, without comas, in which case new lines are automatically inserted between each item. *Note Documentation Format::, for details on the format. Please, write useful comments, not 'This style is devoted to C files', since the name is here for that, nor 'Report errors to mail@me.somewhere', since 'written by' is there for that. documentation is "Not all the keywords are used, to avoid too much" "bolding. Heavy highlighting (code(-g)code), covers" "the whole language." end documentation  File: a2ps.info, Node: Syntax of the Words, Next: Inheriting, Prev: Style Sheet Header, Up: Style Sheets Implementation 7.6.3 Syntax of the Words ------------------------- There are two things a2ps needs to know: what is symbol consistent, and whether the style is case insensitive. 'alphabet' To define two different alphabets, use first alphabet is STRING second alphabet is STRING If both are identical, you may use the shortcut alphabets are STRING The default alphabets are first alphabet is "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_" second alphabet is "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\ 0123456789" Note that it is on purpose that no characters interval are used. 'case' case insensitive # e.g., C, C++ etc. case sensitive # e.g., Perl, Sather, Java etc. The default is 'case insensitive'.  File: a2ps.info, Node: Inheriting, Next: Syntax for the P-Rules, Prev: Syntax of the Words, Up: Style Sheets Implementation 7.6.4 Inheriting from Other Style Sheets ---------------------------------------- It is possible to extend an existing style. The syntax is: ancestors are ANCESTOR_1[, ANCESTOR_2...] end ancestors where ANCESTOR1 etc. are style sheet keys. For semantics, the rules are the following: - the ancestors are read in order; - the definition of the current style is read last; - it is always the last item read which wins (last defined alphabets, case sensitivity, keywords, operators and sequences). As an example, both 'C++' and 'Objective C' style sheets extend the 'C' style sheet: style "Objective C" is #[...] ancestors are c end ancestors #[...] end style To the biggest surprise of the author, mutually dependent style sheets do work!  File: a2ps.info, Node: Syntax for the P-Rules, Next: Declaring keywords and operators, Prev: Inheriting, Up: Style Sheets Implementation 7.6.5 Syntax for the P-Rules ---------------------------- *Note P-Rules::, for the definition of "P-rule". Because of various short cuts, there are many ways to declare a rule: RULES ::= RULE_1 ',' RULE_2... RULE ::= '(' LHS RHS ')' | LHS SRHS ; LHS ::= STRING | REGEX ; RHS ::= SRHS ',' ... SRHS ::= LATEX-KEYWORD | EXPANSION FACE EXPANSION ::= STRING | '\'NUM | <nothing>; FACE ::= FACE-KEYWORD | <nothing>; The rules are the following: - If the left-hand side (lhs) is a regular expression, then it is compiled with the following syntax bits: #define RE_SYNTAX_A2PS \ (/* Allow char classes. */ \ RE_CHAR_CLASSES \ /* Be picky. */ \ | RE_CONTEXT_INVALID_OPS \ /* Allow intervals with `{' and `}', forbid invalid ranges. */\ | RE_INTERVALS | RE_NO_BK_BRACES | RE_NO_EMPTY_RANGES \ /* `(' and `)' are the grouping operators. */ \ | RE_NO_BK_PARENS \ /* `|' is the alternation. */ \ | RE_NO_BK_VBAR) Basically it means that all of the possible operators are used, and that they are in non-backslashed form. For instance '(' and ')' stand for the group operator, while '\\(' stands for the character '('. *Note Regular Expression Syntax: (regex)Regular Expression Syntax, for a detailed description of the regular expressions. - If no EXPANSION is specified, then the matched string is used. For instance '(/fo*/, NULL, Keyword)' applied on the source 'fooooo' produces 'fooooo' in 'Keyword'. - If no FACE is given, then - if the context defines the default face, then this face is used; - if no default face is given, 'PLAIN' is used.  File: a2ps.info, Node: Declaring keywords and operators, Next: Declaring sequences, Prev: Syntax for the P-Rules, Up: Style Sheets Implementation 7.6.6 Declaring the keywords and the operators ---------------------------------------------- Basically, keywords and operators are lists of rules. The syntax is: keywords are RULES end keywords or keywords in FACE-KEYWORD are RULES end keywords in which case the default face is set to FACE-KEYWORD. As an example: keywords in Keyword_strong are /foo*/, "bar" "BAR" Keyword, -> \rightarrow end keywords is valid. The syntax for the operators is the same, and both constructs can be qualified with an 'optional' flag, in which case they are taken into account in the heavy highlighting mode (*note Pretty Print Options::). This is an extract of the 'C' style sheet: optional operators are -> \rightarrow, && \wedge, || \vee, != \neq, == \equiv, # We need to protect these, so that <= is not replaced in <<= <<=, >>=, <= \leq, >= \geq, ! \not end operators Note how '<<=' and '>>=' are protected (there are defined to be written as is when met in the source). This is to prevent the two last characters of '<<=' from being converted into a 'less or equal' sign. The order in which you define the elements of a category (but the sequences) does not matter. But since a2ps sorts them at run time, it may save time if the alphabetical 'C'-order is more or less followed. You should be aware that when declaring a keyword with a regular expression as lhs, then a2ps automatically makes this expression matching only if there are no character of the first alphabet both just before, and just after the string. In term of implementation, it means that keywords are /foo|bar/ end keywords is exactly the same as operators are /\\b(foo|bar)\\b/ end operators This can cause problems if you use anchors (e.g. '$', or '^') in keywords: the matcher will be broken. In this particular case, define your keywords as operators, taking care of the '\\b' by yourself. *Note Match-word-boundary Operator: (regex)Match-word-boundary Operator, for details on '\b'.  File: a2ps.info, Node: Declaring sequences, Next: Checking a Style Sheet, Prev: Declaring keywords and operators, Up: Style Sheets Implementation 7.6.7 Declaring the sequences ----------------------------- Sequences admit several declarations too: SEQUENCES ::= sequences are SEQUENCE_1 ',' SEQUENCE_2... end sequences SEQUENCE ::= RULE IN_FACE CLOSE_OPT EXCEPTIONS_OPT | C-string | C-char ; CLOSE_OPT ::= RULE | closers are RULES end closers | <nothing> ; EXCEPTIONS_OPT ::= exceptions are RULES end exceptions | <nothing> ; The rules are: - The default face is then IN_FACE. - If no closing rule is given, '"\n"' (i.e., end-of-line) is used. As a first example, here is the correct definition for a 'C' string: sequences are "\"" Plain String "\"" Plain exceptions are "\\\\", "\\\"" end exceptions end sequences Since a great deal of languages uses this kind of constructs, you may use 'C-string' to mean exactly this, and 'C-char' for manifest characters defined the 'C' way. The following example comes from 'ssh.ssh', the style sheet for style sheet files, in which there are two kinds of pseudo-strings: the strings ('"example"'), and the regular expressions ('/example/'). We do not want the content of the pseudo-strings in the face 'String'. sequences are # The comments "#" Comment, # The name of the style sheet "style " Keyword_strong (Label + Index1) " is" Keyword_strong, # Strings are exactly the C-strings, though we don't want to # have them in the "string" face "\"" Plain "\"" exceptions are "\\\\", "\\\"" end exceptions, # Regexps "/" Plain "/" exceptions are "\\\\", "\\\/" end exceptions end sequences The order between sequences does matter. For instance in Java, '/**' introduces strong comments, and '/*' comments. '/**' _must_ be declared before '/*', or it will be hidden. There are actually some sequences that could have been implemented as operators with a specific regular expression (that goes up to the closer). Nevertheless be aware of a big difference: regular expression are applied to a single line of the source file, hence, they cannot match on several lines. For instance, the 'C' comments, /* * a comment */ cannot be implemented with operators, though 'C++' comments can: // // a comment //  File: a2ps.info, Node: Checking a Style Sheet, Prev: Declaring sequences, Up: Style Sheets Implementation 7.6.8 Checking a Style Sheet ---------------------------- Once your style sheet is written, you may want to let a2ps perform simple tests on it (e.g., checking there are no rules involving upper case characters in a case insensitive style sheet, etc.). These tests are performed when verbosity includes the style sheets. you may also want to use the special convention that when a style sheet is required with a suffix, then a2ps will not look at it in its library path, but precisely from when you are. Suppose for instance you extended the 'c.ssh' style sheet, which is in the current directory, and is said case insensitive. Run ubu $ a2ps foo.c -Ec.ssh -P void -v sheets # Long output deleted Checking coherence of "C" (c.ssh) a2ps: c.ssh:`FILE' uses upper case characters a2ps: c.ssh:`NULL' uses upper case characters "C" (c.ssh) is corrupted. ---------- End of Finalization of c.ssh Here, it is clear that 'C' is not case insensitive.  File: a2ps.info, Node: A tutorial on style sheets, Prev: Style Sheets Implementation, Up: Pretty Printing 7.7 A Tutorial on Style Sheets ============================== In this section a simple example of style sheet is entirely covered: that of 'ChangeLog' files. 'ChangeLog' files are some kind of memory of changes done to files, so that various programmers can understand what happened to the sources. This helps a lot, for instance, in guessing what recent changes may have introduced new bugs. * Menu: * Example and syntax:: ChangeLog files * Implementation:: Implementation of chlog.ssh * The Entry in sheets.map:: Getting automatic style selection * More Sophisticated Rules:: Complex regular expressions * Distributed Style Sheets:: Additional Constraints  File: a2ps.info, Node: Example and syntax, Next: Implementation, Up: A tutorial on style sheets 7.7.1 Example and syntax ------------------------ First of all, here is a sample of a 'ChangeLog' file, taken from the 'misc/' directory of the original a2ps package: Sun Apr 27 14:29:22 1997 Akim Demaille <demaille@inf.enst.fr> * base.ps: Merged in color.ps, since now a lot is common [added box and underline features]. Fri Apr 25 14:05:20 1997 Akim Demaille <demaille@inf.enst.fr> * color.ps: Added box and underline routines. Mon Mar 17 20:39:11 1997 Akim Demaille <demaille@gargantua.enst.fr> * base.ps: Got rid of CourierBack and reencoded_backspace_font. Now the C has to handle this by itself. Sat Mar 1 19:12:22 1997 Akim Demaille <demaille@gargantua.enst.fr> * *.enc: they build their own dictionaries, to ease multi lingual documents. The syntax is really simple: A line specifying the author and the date of the changes, then a list of changes, all of them starting with an star followed by the name of the files concerned, then optionally between parentheses the functions affected, and then some comments.  File: a2ps.info, Node: Implementation, Next: The Entry in sheets.map, Prev: Example and syntax, Up: A tutorial on style sheets 7.7.2 Implementation -------------------- Quite naturally the style will be called 'ChangeLog', hence: style ChangeLog is written by "Akim Demaille <demaille@inf.enst.fr>" version is 1.0 requires a2ps 4.9.5 documentation is "This is a tutorial style sheet.\n" end documentation ... end style A first interesting and easy entry is that of function names, between '(' and ')': sequences are "(" Plain Label ")" Plain end sequences A small problem that may occur is that there can be several functions mentioned separated by commas, that we don't want to highlight this way. Commas, here, are exceptions. Since regular expressions are not yet implemented in a2ps, there is a simple but stupid way to avoid that white spaces are all considered as part of a function name, namely defining two exceptions: one which captures a single comma, and a second, capturing a comma and its trailing space. For the file names, the problem is a bit more delicate, since they may end with ':', or when starts the list of functions. Then, we define two sequences, each one with one of the possible closers, the exceptions being attached to the first one: sequences are "* " Plain Label_strong ":" Plain exceptions are ", " Plain, "," Plain end exceptions, "* " Plain Label_strong " " Plain end sequences Finally, let us say that some words have a higher importance in the core of text: those about removing or adding something. keywords in Keyword_strong are add, added, remove, removed end keywords Since they may appear in lower or upper, of mixed case, the style will be defined as case insensitive. Finally, we end up with this style sheet file, in which an optional highlighting of the mail address of the author is done. Saving the file is last step. But do not forget that a style sheet has both a name as nice as you may want (such as 'Common Lisp'), and a key on which there are strict rules: the prefix must be alpha-numerical, lower case, with no more than 8 characters. Let's chose 'chlog.ssh'. # This is a tutorial on a2ps' style sheets style ChangeLog is written by "Akim Demaille <demaille@inf.enst.fr>" version is 1.0 requires a2ps 4.9.5 documentation is "Second level of high lighting covers emails." end documentation sequences are "(" Plain Label ")" Plain exceptions are ", " Plain, "," Plain end exceptions, "* " Plain Label_strong ":" Plain exceptions are ", " Plain, "," Plain end exceptions, "* " Plain Label_strong " " Plain end sequences keywords in Keyword_strong are add, added, remove, removed end keywords optional sequences are < Plain Keyword > Plain end sequences end style As a last step, you may which to let a2ps check your style sheet, both its syntax, and common errors: ubu $ a2ps -vsheet -E/tmp/chlog.ssh ChangeLog -P void Long output deleted Checking coherence of "ChangeLog" (/tmp/chlog.ssh) "ChangeLog" (/tmp/chlog.ssh) is sane. ---------- End of Finalization of /tmp/chlog.ssh It's all set, your style sheet is ready!  File: a2ps.info, Node: The Entry in sheets.map, Next: More Sophisticated Rules, Prev: Implementation, Up: A tutorial on style sheets 7.7.3 The Entry in 'sheets.map' ------------------------------- The last touch is to include the pattern rules about 'ChangeLog' files (which could appear as 'ChangeLog.old' etc.) in 'sheets.map': # ChangeLog files chlog: /ChangeLog*/ This won't work... Well, not always. Not for instance if you print 'misc/ChangeLog'. This is not a bug, but truly a feature, since sometimes one gets more information about the type of a file from its path, than from the file name. Here, to match the preceding path that may appear, just use '*': # ChangeLog files chlog: /*ChangeLog*/ If you want to be more specific ('FooChangeLog' should not match), use: # ChangeLog files chlog: /ChangeLog*/ /*\/ChangeLog*/  File: a2ps.info, Node: More Sophisticated Rules, Next: Distributed Style Sheets, Prev: The Entry in sheets.map, Up: A tutorial on style sheets 7.7.4 More Sophisticated Rules ------------------------------ The example we have presented until now uses only basic features, and does not take advantage of the regexp. In this section we should how to write more evolved pretty printing rules. The target will be the lines like: Sun Apr 27 14:29:22 1997 Akim Demaille <demaille@inf.enst.fr> Fri Apr 25 14:05:20 1997 Akim Demaille <demaille@inf.enst.fr> There are three fields: the date, the name, the mail. These lines all start at the beginning of line. The last field is the easier to recognize: is starts with a '<', and finishes with a '>'. Its rule is then '/<[^>]+>/'. It is now easier to specify the second: it is composed only of words, at least one, separated by blanks, and is followed by the mail: '/[[:alpha:]]+([ \t]+[[:alpha:]]+)*/'. To concatenate the two, we introduce optional blanks, and we put each one into a pair of '('-')' to make each one a recognizable part: ([[:alpha:]]+([ \t]+[[:alpha:]]+)*) (.+) (<[^>]+>) Now the first part is rather easy: it starts at the beginning of the line, finishes with a digit. Once again, it is separated from the following field by blanks. Split by groups (*note Grouping Operators: (regex)Grouping Operators.), we have: ^ ([^\t ].*[0-9]) ([ \t]+) ([[:alpha:]]+([ \t]+[[:alpha:]]+)*) (.+) (<[^>]+>) Now the destination is composed of back references to those groups, together with a face: # We want to highlight the date and the maintainer name optional operators are (/^([^\t ].*[0-9])/ # \1. The date /([ \t]+)/ # \2. Spaces /([[:alpha:]]+([ \t]+[[:alpha:]]+)*)/ # \3. Name /(.+)/ # \5. space and < /(<[^>]+)>/ # \6. email \1 Keyword, \2 Plain, \3 Keyword_strong, \5 Plain, \6 Keyword, > Plain) end operators Notice the way regexps are split, to ease reading.  File: a2ps.info, Node: Distributed Style Sheets, Prev: More Sophisticated Rules, Up: A tutorial on style sheets 7.7.5 Guide Line for Distributed Style Sheets --------------------------------------------- This section is meant for people who wish to contribute style sheets. There is a couple of additional constraints, explained here. _The Copyright_ Please, do put a copyright in your file, the same as all other distributed files have: it should include your name, but also the three paragraphs stating the sheet is covered by the GPL. I won't distribute files without these paragraphs. _The Version_ Do put a version number, so that people can track evolutions. _The Requirements_ Make sure to include a requirement on the needed version of a2ps. If you don't know what to put, just put the version of the a2ps you run. _The Documentation_ The documentation string is mandatory. Unless the language your style sheet covers is widely known, please document a bit what the style sheet is meant for. If there were choices you made, if there are special behaviors, document them. _The 'sheets.map' Entries_ Put in a comment on the 'sheets.map' lines that correspond to your style sheet. _A Test File_ It is better to give a test file, as small as possible, that contains the most specific and/or most difficult contructs that your style sheet supports. I need to be able to distribute this file, therefore, do not put anything that is copyrighted. Finally, make sure your style sheet behaves well! (*note Checking a Style Sheet::)  File: a2ps.info, Node: PostScript, Next: Contributions, Prev: Pretty Printing, Up: Top 8 PostScript ************ This chapter is devoted to the information which is only relevant to PostScript. * Menu: * Good and Bad PostScript:: How to lose, how to win * Page Device Options:: Accessing some printers' features * Statusdict Options:: Some other features * Colors in PostScript:: Specifying a color or a gray * a2ps PostScript Files:: Convention for PostScript library files * Designing PostScript Prologues:: Make it look like what you want  File: a2ps.info, Node: Good and Bad PostScript, Next: Page Device Options, Up: PostScript 8.1 Foreword: Good and Bad PostScript ===================================== To read this section, the reader must understand what DSC are (*note Glossary::). Why are there good PostScript files, easy to post-process, and bad files that none of my tools seem to understand? They print fine though! Once you understood that PostScript is not a page description format (like PDF is), you'll have understood most of the problem. Let's imagine for a second that you are a word processor. The user asks you to print his/her 100 page document in PostScript. Up to page 50, there are few different fonts used. Then, on pages 51 to 80, there are now many different heavy fonts. When/where will you download the fonts? The most typical choice, sometimes called "Optimize for Speed", is, once you arrived to page 51, to download those fonts *once* for the rest of the document. The global processing chain will have worked quite quickly: little effort from the software, same from the printer; better yet: you can start sending the file to the printer even before it is finished! The problem is that this is not DSC conformant, and it is easy to understand why: if somebody wants to print only the page 60, then s/he will lack the three fonts which were defined in page 51... This document is not page independent. Another choice is to download the three fonts in *each* page ranging from 51 to 80, that is the PostScript file contains 30 times the definition of each font. It is easy for the application to do that, but the file is getting real big, and the printer will have to interpret 30 times the same definitions of fonts. But it is DSC conformant! And you can still send the file while you make it. Now you understand why *Non DSC conformant files are not necessarily badly designed files from broken applications.* They are files meant to be sent directly to the printer (they are still perfect PostScript files after all!), they are not meant to be post-processed. And the example clearly shows why they are *right*. There is a third possibility, sometimes called "Optimize for Portability": downloading the three fonts in the prologue of the document, i.e., the section before the first page where are given all the common definitions of the whole file. This is a bit more complicated to implement (the prologue, which is issued first though, grows at the same time as you process the file), and cannot be sent concurrently with the processing (you have to process the whole file to design the prologue). This file is small (the fonts are downloaded once only), and DSC conformant. Well, there are problems, of course... You need to wait before sending the output, it can be costly for the computer (which cannot transfer as it produces), and for the printer (you've burnt quite a lot of RAM right since the beginning just to hold fonts that won't be used before page 51... This can be a real problem for small printers). This is what a2ps does. If should be clear that documents optimized for speed should never escape the way between the computer and the printer: no post-processing is possible. What you should remember is that some applications offer the possibility to tune the PostScript output, and they can be praised for that. Unfortunately, when these very same applications don't automatically switch to "Optimize for Portability" when you save the PostScript file, and they can be criticized for that. So please, think of the people after you: if you create a PostScript file meant to be exchanged, read, printed, etc; by other people: give sane DSC conformant, optimized for portability files.  File: a2ps.info, Node: Page Device Options, Next: Statusdict Options, Prev: Good and Bad PostScript, Up: PostScript 8.2 Page Device Options ======================= Page device is a PostScript level 2 feature that offers an uniform interface to control the printer's output device. a2ps protects all page device options inside an if block so they have no effect in level 1 interpreters. Although all level 2 interpreters support page device, they do not have to support all page device options. For example some printers can print in duplex mode and some cannot. Refer to the documentation of your printer for supported options. Here are some usable page device options which can be selected with the '-S' option ('--setpagedevice'). For a complete listing, see 'PostScript Language Reference Manual' (section 4.11 Device Setup in the second edition, or section 6, Device Control in the third edition). 'Collate BOOLEAN' how output is organized when printing multiple copies 'Duplex BOOLEAN' duplex (two side) printing 'ManualFeed BOOLEAN' manual feed paper tray 'OutputFaceUp BOOLEAN' print output 'face up' or 'face down' 'Tumble BOOLEAN' how opposite sides are positioned in duplex printing  File: a2ps.info, Node: Statusdict Options, Next: Colors in PostScript, Prev: Page Device Options, Up: PostScript 8.3 Statusdict Options ====================== The 'statusdict' is a special storage entity in PostScript (called a "dictionary"), in which some variables and operators determine the behavior of the printer. This is an historic horror that existed before page device definitions were defined. They are even more printer dependent, and are provided only for the people who don't have a level printer. In any case, refer to the documentation of your printer for supported options. Here are some statusdict definitions in which you might be interested: 'manualfeed BOOLEAN' Variable which determine that the manual fed paper tray will be used. Use is '--statusdict=manualfeed::true'. 'setmanualfeed BOOLEAN' Idem as the previous point, but use is '--statusdict=setmanualfeed:true'. 'setduplexmode BOOLEAN' If BOOLEAN, then print Duplex. Use if '--statusdict=setduplexmode:true'.  File: a2ps.info, Node: Colors in PostScript, Next: a2ps PostScript Files, Prev: Statusdict Options, Up: PostScript 8.4 Colors in PostScript ======================== Nevertheless, here are some tips on how to design your PostScript styles. It is strongly recommended to use 'gray.pro' or 'color.pro' as a template. There are two PostScript instructions you might want to use in your new PostScript prologue: 'setgray' this instruction must be preceded by a number between 0 (black) and 1 (white). It defines the gray level used. 'setrgbcolor' this instruction must be preceded by three numbers between 0 (0 %) and 1 (100%). Those three numbers are related to red, green and blue proportions used to designate a color. a2ps uses two higher level procedures, 'BG' and 'FG', but both use an argument as in 'setrgbcolor'. So if you wanted a gray shade, just give three times the same ratio.  File: a2ps.info, Node: a2ps PostScript Files, Next: Designing PostScript Prologues, Prev: Colors in PostScript, Up: PostScript 8.5 a2ps PostScript Files ========================= a2ps uses several types of PostScript files. Some are standards, such as font files, and others are meant for a2ps only. All a2ps files have two parts, one being the comments, and the other being the content, separated by the following line: % code follows this line  File: a2ps.info, Node: Designing PostScript Prologues, Prev: a2ps PostScript Files, Up: PostScript 8.6 Designing PostScript Prologues ================================== It is pretty known that satisfying the various human tastes is an NEXPTIME-hard problem, so a2ps offers ways to customize its output through the "prologue files". But since the authors feel a little small against NEXPTIME, they agreed on the fact that *you* are the one who will design the look you like. Hence in this section, you will find what you need to know to be able to customize a2ps output. Basically, a2ps uses "faces" which are associated to their "meaning" in the text. a2ps let's you change the way the faces look. * Menu: * Definition of the faces:: What goes in a characters style * Prologue File Format:: Including documentation * A prologue example:: A step by step example  File: a2ps.info, Node: Definition of the faces, Next: Prologue File Format, Up: Designing PostScript Prologues 8.6.1 Definition of the faces ----------------------------- There are three things that define a face: _Its font_ You should never call the font by yourself, because sometimes a2ps may decide that another font would be better. This is what happens for instance if a font does not support the encoding you use. Hence, never set the font by yourself, but ask a2ps to do it. This is done through a line: %Face: FACE REAL-FONT-NAME SIZE This line tells a2ps that the font of FACE is REAL-FONT-NAME. It will replace this line by the correct PostScript line to call the needed font, and will do everything needed to set up the font. The size of the text body is 'bfs'. _Its background color_ There are two cases: 1. You want a background color, then give the "RGB" (*note Colors in PostScript::) ratio and 'true' to 'BG': 0.8 0.8 0 true BG 2. You don't want a background color, then call 'BG' with 'false': false BG _Its foreground color_ As 'BG', call 'FG' with an "RGB" ratio: 0 0.5 0 FG _Its underlining_ 'UL' requires a boolean argument, depending whether you want or not the current face to be underlined. true UL _Its boxing_ Requiring a boolean, 'BX' let's a face have a box drawn around.  File: a2ps.info, Node: Prologue File Format, Next: A prologue example, Prev: Definition of the faces, Up: Designing PostScript Prologues 8.6.2 Prologue File Format -------------------------- Prologue files for a2ps must have 'pro' as suffix. Documentation (reported with '--list-prologues') can be included in the comment part: Documentation This prologue is the same as the prologue code(pb)code, but using the bold version of the fonts. EndDocumentation % code follows this line *Note Documentation Format::, for more on the format.  File: a2ps.info, Node: A prologue example, Prev: Prologue File Format, Up: Designing PostScript Prologues 8.6.3 A step by step example ---------------------------- We strongly suggest our readers not to start from scratch, but to copy one of the available styles (see the result of 'a2ps --list=prologues'), to drop it in one of a2ps directories (say '$HOME/.a2ps', and to patch it until you like it. Here, we will start from 'color.pro', trying to give it a funky look. Say you want the keywords to be in Helvetica, drawn in a flashy pink on a light green. And strong keywords, in Times Bold Italic in brown on a soft Hawaiian sea green (you are definitely a fine art _amateur_). Then you need to look for 'k' and 'K': /k { false BG 0 0 0.9 FG %Face: Keyword Courier bfs Show } bind def /K { false BG 0 0 0.8 FG %Face: Keyword_strong Courier-Bold bfs Show } bind def and turn it into: /k { 0.2 1 0.2 true BG 1 0.2 1 FG %Face: Keyword Helvetica bfs Show } bind def /K { 0.4 0.2 0 true BG 0.5 1 1 FG %Face: Keyword_strong Times-BoldItalic bfs Show } bind def Waouh! It looks great! A bit trickier: let change the way the line numbers are printed. First, let's look for the font definition: %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup Let it be in Times, twice bigger than the body font. %%BeginSetup % The font for line numbering /f# /Times-Roman findfont bfs 2 mul scalefont def %%EndSetup How about its foreground color? % Function print line number (<string> # -) /# { gsave sx cw mul 2 div neg 0 rmoveto f# setfont 0.8 0.1 0.1 FG c-show grestore } bind def Let it be blue. Now you know the process: just put '0 0 1' as 'FG' arguments.  File: a2ps.info, Node: Contributions, Next: FAQ, Prev: PostScript, Up: Top 9 Contributions *************** This chapter documents the various shell scripts or other tools that are distributed with the a2ps package, but are not a2ps itself. The reader should also look at the documentation of 'Ogonkify' (*note Overview: (ogonkify)top.), written by Juliusz Chroboczek. * Menu: * card:: Printing Reference Cards * fixps:: Fixing Some Ill Designed PostScript Files * pdiff:: Produce Pretty Comparison of Files  File: a2ps.info, Node: card, Next: fixps, Up: Contributions 9.1 'card' ========== Many users of a2ps have asked for a reference card, presenting a summary of the options. In fact, something closely related to the output of 'a2ps --help'. The first version of this reference card was a PreScript file (*note PreScript::) to be printed by a2ps. Very soon a much better scheme was found: using a style sheet to pretty print directly the output of 'a2ps --help'! A first advantage is then that the reference cards can be printed in the tongue you choose. A second was that this treatment could be applied to any application supporting a '--help'-like option. * Menu: * Invoking card:: Command Line Interface * Caution when Using card:: card runs commands  File: a2ps.info, Node: Invoking card, Next: Caution when Using card, Up: card 9.1.1 Invoking 'card' --------------------- card [OPTIONS] APPLICATIONS [-- -OPTIONS] 'card' is a shell script which tries to guess how to get your APPLICATIONS' help message (typically by the options '--help' or '-h'), and pretty prints it thanks to a2ps (or the content of the environment variable 'A2PS' if it is set). -OPTIONS are passed to a2ps. Supported options are: -- Option: -h -- Option: --help print a short help message and exit successfully. -- Option: -V -- Option: --version report the version and exit successfully. -- Option: -q -- Option: --quiet -- Option: --silent Run silently. -- Option: -D -- Option: --debug enter in debug mode. -- Option: -l LANGUAGE -- Option: --language=LANGUAGE specify the language in which the reference card should be printed. LANGUAGE should be the symbol used by 'LC_ALL' etc. (such as 'fr', 'it' etc.). If the APPLICATIONS don't support internationalization, English will be used. -- Option: --command=COMMAND Don't try to guess the APPLICATIONS' way to report their help message, but rather use the call COMMAND. A typical example is card --command="cc -flags" It is possible to give options to a2ps (*note Options::) by specifying them after '--'. For instance card gmake gtar --command="cc -flags" -- -Pdisplay builds the reference card of 'GNU make', 'GNU tar' (automatic detection of '--help' support), and 'cc' thanks to '-flags'.  File: a2ps.info, Node: Caution when Using card, Prev: Invoking card, Up: card 9.1.2 Caution when Using 'card' ------------------------------- Remember that 'card' runs the programs you give it, and the commands you supplied. Hence if there is a silly programs that has a weird behavior given the option '-h' etc., beware of the result. It is even clearer using '--command': avoid running 'card --command="rm -rf *"', because the result will be exactly what you think it will be!  File: a2ps.info, Node: fixps, Next: pdiff, Prev: card, Up: Contributions 9.2 'fixps' =========== The shell script 'fixps' tries its best to fix common problems in PostScript files that may prevent post processing, using 'ghostscript'. It is a good idea to use 'fixps' in the PostScript delegations. * Menu: * Invoking fixps:: Command Line Interface  File: a2ps.info, Node: Invoking fixps, Up: fixps 9.2.1 Invoking 'fixps' ---------------------- fixps [OPTIONS] [FILE] sanitize the PostScript FILE (or of the standard input if no FILE is given, or if FILE is '-'). Supported options are: -- Option: -h -- Option: --help Print a short help message and a list of the fixes that are performed. Exit successfully. -- Option: -V -- Option: --version report the version and exit successfully. -- Option: -D -- Option: --debug enter in debug mode. -- Option: -q -- Option: --quiet -- Option: --silent Run silently. -- Option: -o FILE -- Option: --output=FILE specify the FILE in which is saved the output. -- Option: -c -- Option: --check -- Option: --dry-run Don't actually fix the FILE: just report the diagnostics. Contrary to the option 'fixps -qc' does absolutely nothing (while it does take some time to do it nicely). -- Option: -f -- Option: --force Ask 'ghoscript' for a full rewrite of the FILE. The output file is really sane, but can be much longer than the original. For this reason and others, it is not always a good idea to make a full rewrite. This option should be used only for files that give major problems.  File: a2ps.info, Node: pdiff, Next: lp2, Prev: fixps, Up: Contributions 9.3 'pdiff' =========== The shell script 'pdiff' aims to pretty print diffs between files. It basically uses GNU 'diff' (*note Overview: (diff)diff.) or GNU 'wdiff' (*note The word difference finder: (wdiff)wdiff.) to extract the diff, then calls a2ps with the correct settings to get a nice, printed contextual diff. * Menu: * Invoking pdiff:: Command Line Interface  File: a2ps.info, Node: Invoking pdiff, Up: pdiff 9.3.1 Invoking 'pdiff' ---------------------- pdiff [OPTIONS] FILE-1 FILE-2 [-- -OPTIONS] make a pretty comparison between FILE-1 and FILE-2. -OPTIONS are passed to a2ps. Supported options are: -- Option: -h -- Option: --help print a short help message and exit successfully. -- Option: -V -- Option: --version report the version and exit successfully. -- Option: -q -- Option: --quiet -- Option: --silent Run silently. -- Option: -D -- Option: --debug enter in debug mode. -- Option: -w -- Option: --words Look for words differences (default). White space differences are not considered. -- Option: -l -- Option: --lines Look for lines differences. It is possible to give options to a2ps (*note Options::) by specifying them after '--'. For instance pdiff COPYING COPYING.LIB -- -1 -P display Compares the files 'COPYING' and 'COPYING.LIB', and prints it on the printer 'display' (usually 'Ghostview' or 'gv').  File: a2ps.info, Node: lp2, Prev: pdiff, Up: Contributions 9.4 'lp2' ========= This program simplifies printing documents double-sided (duplex) or a single-sided (simplex) printer. The idea is simply first to print the odd pages, then the even in reversed order. * Menu: * Invoking lp2:: Command Line Interface  File: a2ps.info, Node: Invoking lp2, Up: lp2 9.4.1 Invoking 'lp2' -------------------- lp2 [OPTIONS] [FILE] print the given file using 'lp'. First print the odd pages, then prompt the user to put the printed pages back in, then print the even pages in reverse order. Supported options are: -- Option: -h -- Option: --help print a short help message and exit successfully. -- Option: -V -- Option: --version report the version and exit successfully. -- Option: -f -- Option: --front Print only the front pages. -- Option: -b -- Option: --back Print only the back pages. Typical use is lp2 file.ps or can be put into a2ps' printer commands (*note Your Printers::).  File: a2ps.info, Node: FAQ, Next: Glossary, Prev: Contributions, Up: Top 10 Frequently asked questions ***************************** Please, before sending us mail, make sure the problem you have is not known, and explained. Moreover, avoid using the mailing list for asking question about the options, etc. It has been built for announces and suggestions, not to contact the authors. * Menu: * Why Does ...?:: Questions on Error * How Can I ...?:: a2ps' How-To * Please tell me...:: Existential Questions on a2ps  File: a2ps.info, Node: Why Does ...?, Next: How Can I ...?, Up: FAQ 10.1 Why Does...? ================= Error related questions. * Menu: * It Prints Nothing:: The printer issues nothing * It Prints in Simplex:: While I asked for Duplex * It Prints in Duplex:: While I asked for Simplex * It Does Not Fit on the Paper:: Some parts are missing * It Prints Junk:: Random characters * It Says my File is Binary:: And refuses to print it * It Refuses to Change the Font Size::  File: a2ps.info, Node: It Prints Nothing, Next: It Prints in Simplex, Up: Why Does ...? 10.1.1 Why Does it Print Nothing? --------------------------------- works OK, but the printer prints nothing. There are two ways that printing can fail: silently, or with a diagnostic. First, *check that the printer received what you sent*. a2ps may correctly do its job, but have the printer queue fail to deliver the job. In case of doubt, please check that the printer's leds blink (or whatever is its way to show that something is being processed). If the printer does receive the job, but prints nothing at all, check that you did not give exotic options to an old printer (typically, avoid printing on two sides on a printer that does not support it). Avoid using '-S', '--setpagedevice' (*note Page Device Options::) and '--statusdict' (*note Statusdict Options::). If the trouble persists, please try again but with the option '--debug' (a PostScript error handler is downloaded), and then send us: 1. the input file that gives problems 2. the output file created by a2ps *with the option '--debug'* 3. the error message that was printed.  File: a2ps.info, Node: It Prints in Simplex, Next: It Prints in Duplex, Prev: It Prints Nothing, Up: Why Does ...? 10.1.2 Why Does it Print in Simplex? ------------------------------------ Though I ask a2ps to print Duplex via '--sides', the job is printed Simplex. If your printer is too old, then a2ps will not be able to send it the code it needs when '-s2' is specified. This is because your printer uses an old and not standardized interface for special features. So you need to 1. specify that you want Duplex mode: '-s2', 2. remove by hand the standardized call to the Duplex feature: '-SDuplex', 3. add the non standard call to Duplex. Try '--statusdict=setduplexmode:true'. Since this is painful to hit, a User Option (*note Your Shortcuts::) should help.  File: a2ps.info, Node: It Prints in Duplex, Next: It Does Not Fit on the Paper, Prev: It Prints in Simplex, Up: Why Does ...? 10.1.3 Why Does it Print in Duplex? ----------------------------------- Though I ask a2ps to print Simplex via '--sides', the job is printed Duplex. Actually when you require Simplex, a2ps issues nothing, for portability reasons. Hence, if your printer is defaulted to Duplex, the job will be Duplexed. So you have to force a2ps to issue the Simplex request with '-SDuplex:false'. The user options '-=s1' and '-=simplex' have names easier to remember. In the next version of a2ps this kind of portability problems will be fixed in a user friendly way.  File: a2ps.info, Node: It Does Not Fit on the Paper, Next: It Prints Junk, Prev: It Prints in Duplex, Up: Why Does ...? 10.1.4 Why Does it Not Fit on the Paper? ---------------------------------------- When I print text files with a2ps, it prints beyond the frame of the paper. You are most probably printing with a bad medium, for instance using A4 paper within a2ps, while your printer uses Letter paper. Some inkjet printers have a small printable area, and a2ps may not expect it. In both case, read *note Sheet Options::, option '--medium' for more.  File: a2ps.info, Node: It Prints Junk, Next: It Says my File is Binary, Prev: It Does Not Fit on the Paper, Up: Why Does ...? 10.1.5 Why Does it Print Junk? ------------------------------ What I get on the printer is long and incomprehensible. It does not seem to correspond to what I wanted to print. You are probably printing a PostScript file or equivalent. Try to print with '-Z': a2ps will try to do his best to find what is the program that can help you (*note Your Delegations::). In case of doubt, don't hesitate to save into a file, and check the content with 'Ghostview', or equivalent: $ a2ps my_weird_file -Z -o mwf.ps $ gv mwf.ps If your a2ps is correctly installed, you can use the 'display' fake-printer: $ a2ps my_weird_file -Z -P display If it is incorrect, ask for help around you.  File: a2ps.info, Node: It Says my File is Binary, Next: It Refuses to Change the Font Size, Prev: It Prints Junk, Up: Why Does ...? 10.1.6 Why Does it Say my File is Binary? ----------------------------------------- complains that my file is binary though it is not. There are several reasons that can cause a2ps to consider a file is binary: - there are many non printable characters in the file. Then you need to use the option '--print-anyway'. - the file is sane, composed of printable characters. Then it is very likely that 'file(1)' said the type of the file is 'data', in which case a2ps prefers not to print the file. Then you can either: - specify the type of the file, for instance '-Eplain'; - specify to print in any case, '--print-anyway'; - remove the annoying rule from the system's 'sheets.map': binary: <data*> - insert in your own '~/.a2ps/sheets.map' a rule that overrides that of the system's 'sheets.map': # Load the system's sheets.map include(/usr/local/share/a2ps/sheets/sheets.map) # Override the rule for files with type 'data' according to file(1) plain: <data*> But this is not very good, since then this rule is always the first tested, which means that any file with type 'data' according to 'file(1)' will be printed in 'plain' style, even if the file is called 'foo.c'. - if your files can be recognized, insert a new rule in a 'sheets.map', such as # file(1) says it's data, but it's pure text plain: /*.txx/  File: a2ps.info, Node: It Refuses to Change the Font Size, Prev: It Says my File is Binary, Up: Why Does ...? 10.1.7 Why Does it Refuse to Change the Font Size ------------------------------------------------- _a2ps does not seem to honor '--font-size' (or '--lines-per-page', or '--chars-per-line')._ This is probably because you used '-1'..'-9' after the '--font-size'. This is wrong, because the options '-1'..'-9' set the font size (so that there are 80 characters per lines), and many other things (*Note Page Options::, option '--font-size'). Hence 'a2ps --font-size=12km -4' is exactly the same thing as 'a2ps -4', but is different from 'a2ps -4 --font-size=12km'. Note that the 'pure' options (no side-effects) to specify the number of virtual pages are '--columns' and '--rows'.  File: a2ps.info, Node: How Can I ...?, Next: Please tell me..., Prev: Why Does ...?, Up: FAQ 10.2 How Can I ...? =================== A mini how-to on a2ps. * Menu: * Leave Room for Binding:: Specifying Margins * Print stdin:: Using a2ps in a pipe chain * Change the Fonts:: Tired of Courier? * The Old Option -b?:: Printing in Bold * Pass Options to lpr:: Disable the banner * Man Pages with Underlines:: Now it Prints With Italics  File: a2ps.info, Node: Leave Room for Binding, Next: Print stdin, Up: How Can I ...? 10.2.1 How Can I Leave Room for Binding? ---------------------------------------- The option '--margin[=SIZE]' is meant for this. See *note Sheet Options::.  File: a2ps.info, Node: Print stdin, Next: Change the Fonts, Prev: Leave Room for Binding, Up: How Can I ...? 10.2.2 How Can I Print 'stdin'? ------------------------------- a2ps prints the standard input if you give no file name, or if you gave '-' as file name. Automatic style selection is of course much weaker: without the file name, a2ps can only get 'file(1)''s opinion (*note Style Sheet Files::). In general it means most delegations are safe, but there will probably be no pretty-printing. _You_ can supply a name to the standard input ('--stdin=NAME') with which it could guess the language.  File: a2ps.info, Node: Change the Fonts, Next: The Old Option -b?, Prev: Print stdin, Up: How Can I ...? 10.2.3 How Can I Change the Fonts? ---------------------------------- *Note Designing PostScript Prologues::, for details. Make sure that all the information a2ps needs is available (*note Font Files::).  File: a2ps.info, Node: The Old Option -b?, Next: Pass Options to lpr, Prev: Change the Fonts, Up: How Can I ...? 10.2.4 How Can I Simulate the Old Option '-b'? ---------------------------------------------- By the past, a2ps had an option '-b' with which the fonts were bold. Since now the fonts are defined by prologues (*note Designing PostScript Prologues::) this option no longer makes sense. A replacement prologue is provided: 'bold'. To use it, give the option '--prologue=bold'.  File: a2ps.info, Node: Pass Options to lpr, Next: Man Pages with Underlines, Prev: The Old Option -b?, Up: How Can I ...? 10.2.5 How Can I Pass Options to 'lpr' -------------------------------------- How can I tell 'a2ps' to ask 'lpr' no to print the banner? How can I pass specific options to 'lp'? If your 'Printer:' fields in the configuration files were properly filled (*note Your Printers::), you can use the variable 'lp.options' to pass options to 'lpr' (or 'lp', depending on your environment): a2ps -Dlp.options="-h -s" -P printer You can also define 'lp.options' once for all (*note Defining Variables::). Finally, you can use 'Printer:' several times to reach a printer with different 'lpr' options.  File: a2ps.info, Node: Man Pages with Underlines, Prev: Pass Options to lpr, Up: How Can I ...? 10.2.6 How Can I Print Man Pages with Underlines ------------------------------------------------ By the past, when I printed a man page with a2ps, it used underlines, but now it uses italics. I want underlines back! Use 'a2ps --pro=ul'.  File: a2ps.info, Node: Please tell me..., Prev: How Can I ...?, Up: FAQ 10.3 Please tell me... ====================== Wondering something? * Menu: * Is a2ps Y2K compliant?:: Printing dates in short format * Why not using yacc:: Why Using Style Sheets  File: a2ps.info, Node: Is a2ps Y2K compliant?, Next: Why not using yacc, Up: Please tell me... 10.3.1 Is a2ps Y2K compliant? ----------------------------- The famous Y2K(1) problem... Yes, a2ps is Y2K compliant since version 4.10.3. Nevertheless, please note that you can still use two digit years. *You* are responsible for your choice of date format (*note Escapes::). ---------- Footnotes ---------- (1) Year 2000.  File: a2ps.info, Node: Why not using yacc, Prev: Is a2ps Y2K compliant?, Up: Please tell me... 10.3.2 Why not having used 'yacc' and such ------------------------------------------ There are several reasons why we decided not to use grammars to parse the files. Firstly it would have made the design of the style sheets much more tricky, and today a2ps would know only 4 or 5 languages. Secondly, it limits the number of persons who could build a style sheet. Thirdly, we did not feel the need for such a powerful tool: handling the keywords and the sequences is just what the users expect. Fourthly, any extension of a2ps would have required to recompile. And last but not least, using a parser requires that the sources are syntactic bug free, which is too strong a requirement. Nevertheless, 'PreScript' gives the possibility to have on the one hand a syntactic parser which would produce 'PreScript' code, and on the other hand, a2ps, which would make it PostScript. This schema seems to us a good compromise. If it is still not enough for you, you can use the library.  File: a2ps.info, Node: Glossary, Next: Genesis, Prev: FAQ, Up: Top Appendix A Glossary ******************* This section settles some terms used through out this document, and provides the definitions of some terms you probably want to know about. "Adobe" Adobe is the firm who designed and owns the PostScript language. The patent that printer manufacturers must pay to Adobe is the main reason why PostScript printers are so expansive. "AFM file" AFM stands for Adobe Font Metrics. These files contain everything one needs to know about a font: the width of the characters, the available characters etc. "Charset" "Code Set" Cf. Encoding. "Delegate" Another filter (application) which a2ps may call to process some files. This feature is especially meant for page description files (*note Your Delegations::). "DSC" "Document Structuring Conventions" Because PostScript is a language, any file describing a document can have an arbitrary complexity. To ease the post-processing of PostScript files, the document should follow some conventions. Basically there are two kinds of conventions to follow: Page Independence Special comments state where the pages begin and end. With these comments (and the fact that the code describing a page starts and ends somewhere, which is absolutely not necessary in PostScript), very simple programs (such as 'psnup', 'psselect' etc.) can post process PostScript files. Requirements Special features may be needed to run correctly the file. Some comments specify what services are expected from the printer (e.g., fonts, duplex printing, color etc.), and other what features are provided by the file itself (e.g., fonts, procsets etc.), so that a print manager can decide that a file cannot be printed on that printer, or that it is possible if the file is slightly modified (e.g., adding a required font not known by the printer) etc. The DSC are edited by Adobe. A document which respects them is said to be "DSC conformant". a2ps follows all the DSC. "Duplex" "DuplexTumble" "DuplexNoTumble" To print "Duplex" is to print double-sided. There are two ways to print Duplex depending whether the second face is printed upside-down or not: "DuplexTumble" DuplexTumble is suitable when (if it were to be bound) the document would be bound along the short edge (for instance when you are printing booklets). "DuplexNoTumble" DuplexNoTumble corresponds to binding along the long edge of the medium. A typical case is when printing one-up. "Encoding" Association of human readable characters, and computers' internal numbered representation. In other words, they are the alphabets, which are different according to your country/mother tongue. E.g.: ASCII, Latin 1, corresponding to Western Europe etc. To know more about encodings, see *note What is an Encoding::. "'Ghostscript'" "'gs'" 'Ghostscript' (https://www.ghostscript.com), 'gs' for short, is a full PostScript interpreter running under many various systems (Unices, MS-DOS, Mac etc.). It comes with a large set of output formats allowing many different applications: _Displaying_ It can be used either to view PostScript files (in general thanks to a graphic interface such as 'Ghostview' or 'gv' ...). _Converting_ It can convert to other languages/formats, e.g. portable PostScript, Encapsulated PS etc. _Translating_ to a printer dedicated language, e.g., PCL. In particular, thanks to 'ghostscript', you may print PostScript files on non PostScript printers. "Face" A virtual style given to some text. For instance, _Keyword_, _Comment_ are faces. "Headings" Everything that goes around the page and is not part of the text body. Typically the title, footer etc. "Key" Many objects used in a2ps, such as encodings, have both a key and a name. The word "name" is used for a symbol, a label, which is only meant to be nice to read by a human. For instance 'ISO Latin 1' is a name. a2ps never uses a name, but the key. A "key" is the identifier of a unique object. This is information that a2ps processes, hence, whenever you need to specify an object to a2ps, use the key, not its name. For instance 'latin1' is the unique identifier of the 'ISO Latin 1' encoding. "Logical page" Cf. Virtual page. "lhs" "left hand side" See "P-rule". "Medium" Official name (by Adobe) given to the output physical support. In other words, it means the description of a sheet, e.g., A4, Letter etc. "Name" See "Key". "Page" A single side of a sheet. "Page Description Language" A language that describes some text (which may be enriched with pointers, pictures etc.) and its layout. 'HTML', PostScript, LaTeX, 'roff' and others are such languages. A file written in those languages is not made to be read as is by a human, but to be transformed (or compiled) into a readable form. "PCL" FIXME: "PFA file" PostScript Font in ASCII format. This file can be directly down loaded to provide support for another font. "PFB file" PostScript Font in Binary format. In PFA files there are long sequences of hexadecimal digits. Here these digits are represented by their value, hence compressing 2 characters in a PFA into 1 in the PFB. This is the only advantage since a PFB file cannot be directly sent to printer: it must first be decompressed (hence turned into a PFA file) before being used. "PostScript" "PostScript" is a page description language designed for _Raster output devices_. It is even more powerful than that: unlike to 'HTML', or 'roff', but as TeX and LaTeX, it is truly a programming language which main purpose is to draw (on sheets). Most programs are a list of instructions that describes lines, shades of gray, or text to draw on a page. This is the language that most printers understand. Note that the fact that PostScript is a programming language is responsible of both its success and its failure. It is a big win for the PostScript programmer who can easily implement a lot of nice visual effects. It is a big loss because the page descriptions can have an arbitrary complexity, hence rendering can be really slow (remember the first Laser you had, or even 'Ghostscript'. 'PDF' has been invented by Adobe to remedy these problems). PostScript is a trademark of Adobe Systems Incorporated. "PPD file" "PostScript Printer Description file" These files report everything one needs to know about a printer: the known fonts, the patches that should be down loaded, the available memory, the trays, the way to ask it duplex printing, the supported media, etc. PostScript has pretended to be a device independent page description language, and the PPD files are here to prove that device independence was a failure. "ProcSet" Set of (PostScript) procedures. "Prologue" PostScript being a language, a typical PostScript program (i.e. a typical PostScript file) consists of two parts. The first part is composed of resources, such as fonts, procsets, etc. and the second part of calls to these procedures. The first part is called the "prologue", and the second, the "script". "P-rule" Pretty printing rule. It is composed of a "left-hand side", ("lhs" for short), and a "right-hand side", ("rhs"). The lhs describes when the rule is triggered (i.e., the pattern of text to match), and the rhs specifies the pretty printed output. *Note P-Rules::, for more semantical details, and see *note Syntax for the P-Rules::, for implementation. "'psutils'" The "psutils" (https://github.com/rrthomas/psutils) is a set of tools for PostScript post processing. They let you resize the frame into which the page is drawn, reorder or select pages, put several pages onto a single sheet, etc. To allow the 'psutils' to run correctly, the PostScript files must be DSC conformant, and the bad news is that many PostScript drivers produce files which are not. 'fixps' uses 'ghostscript' to fix non-conformant files. "Raster Image Processor" "RIP" The hardware and/or software that translates data from a high-level language (e.g., PostScript) into dots or pixels in a printer or image setter. "Raster Output Device" Behind these words is hidden the general class of devices which have Pixels that can be addressed individually: Laser, Ink or Dot printers, but also regular screens etc. It is typically opposed to the class of devices which _plot_, i.e., have a pen that they move on the paper. "rhs" "right hand side" See "P-rule". "RIP" See "Raster Image Processor". "Script" See "Prologue". "Sheet" The physical support of the printing: it may support one or two pages, depending on your printing options. "Style sheet" Set of rules used by a2ps to give a face to the strings of a file. In a2ps, each programming language which is supported is defined via one style-sheet. "Tumble" See "Duplex". "Virtual page" Area on a physical page in which a2ps draws the content of a file. There may be several virtual pages on a physical page. ("virtual page" is the name recommended by Adobe).  File: a2ps.info, Node: Genesis, Next: Copying, Prev: Glossary, Up: Top Appendix B Genesis ****************** Here are some words on a2ps and its history. * Menu: * History:: Where does it come from * Thanks:: People who really helped  File: a2ps.info, Node: History, Next: Thanks, Up: Genesis B.1 History =========== The initial version was a shell program written by Evan Kirshenbaum <evan@csli>. It was very slow and contained many bugs. A new version was written in 'C' by Miguel Santana <Miguel.Santana@st.com> to improve execution speed and portability. Many new features and improvements have been added since this first version. Many contributions (changes, fixes, ideas) were done by a2ps users in order to improve it. From the latest version from Miguel Santana (4.3), Emmanuel Briot implemented bold faces for keywords in 'Ada', 'C' and 'C++'. From that version, Akim Demaille <akim@freefriends.org> generalized the pretty-printing capabilities, implemented more languages support, and other features. Masayuki Hatta maintained a2ps for several years. Later, David Seifert modernized and cleaned up the code considerably. Latterly, Reuben Thomas did more clean-up and bug-fixing, and released version 4.15, the first release for many years.  File: a2ps.info, Node: Thanks, Prev: History, Up: Genesis B.2 Thanks ========== Patrick Andries and Roman Czyborra provided us with important information on encodings. Juliusz Chroboczek worked a lot on the integration of the products of Ogonkify (such as Latin 2 etc. fonts) in a2ps. Without his help, and the time is devoted to both a2ps and 'ogonkify', many non west-European people would still be unable to print easily texts written in their mother tongue. Denis Girou brought a constant and valuable support through out the genesis of pretty-printing a2ps. His comments on both the program and the documentation are the origin of many pleasant features (such as '--prologue'). Alexander Mai provided us with invaluable help in the development. He spotted several times subtle bugs in a2ps and the contributions, he keeps a vigilant eye on portability issues, he checks and improves the style sheets, and he maintains a port of a2ps for OS/2. Graham Jenkins, with an extraordinary regularity, tortures a2ps on weird systems that nobody ever heard of ':)'. Graham is usually the ultimate test: if he says I can release a2ps, I rest reassured that, yes, this time it *will* compile! If a2ps works today on your system, you should thank Graham too! Of course this list is not up to date, and never will be. We would like to thank everybody that helped us, talked to us, and even criticized us with the intention to help us to improve a2ps. In particular, many thanks to all those who wrote style sheets, translated a2ps, reported and fixed bugs, and gave us other feedback over the years.  File: a2ps.info, Node: Copying, Next: Concept Index, Prev: Genesis, Up: Top Appendix C Copying ****************** The subroutines and source code in the a2ps package are "free"; this means that everyone is free to use them and free to redistribute them on a free basis. The a2ps-related programs are not in the public domain; they are copyrighted and there are restrictions on their distribution, but these restrictions are designed to permit everything that a good cooperating citizen would want to do. What is not allowed is to try to prevent others from further sharing any version of these programs that they might get from you. Specifically, we want to make sure that you have the right to give away copies of the programs that relate to a2ps, that you receive source code or else can get it if you want it, that you can change these programs or use pieces of them in new free programs, and that you know you can do these things. To make sure that everyone has such rights, we have to forbid you to deprive anyone else of these rights. For example, if you distribute copies of the a2ps-related code, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. Also, for our own protection, we must make certain that everyone finds out that there is no warranty for the programs that relate to a2ps. If these programs are modified by someone else and passed on, we want their recipients to know that what they have is not what we distributed, so that any problems introduced by others will not reflect on our reputation. The precise conditions of the licenses for the programs currently being distributed that relate to a2ps are found in the General Public Licenses that accompany them.  File: a2ps.info, Node: Concept Index, Prev: Copying, Up: Top Concept Index ************* �[index�] * Menu: * %!: Your PostScript magic number. (line 6) * .a2ps: Configuration Files. (line 6) * .afm: Fonts Description Files. (line 7) * .edf: Encoding Description Files. (line 6) * .map: Map Files. (line 6) * .pfa: Fonts Description Files. (line 10) * .pfb: Fonts Description Files. (line 10) * :: Your Shortcuts. (line 6) * a2ps-site.cfg: Configuration Files. (line 6) * a2ps.cfg: Configuration Files. (line 6) * a2psrc: Configuration Files. (line 6) * A2PS_CONFIG: Configuration Files. (line 8) * A2PS_VERBOSITY: Global Options. (line 72) * Adobe: Glossary. (line 10) * AFM: Fonts Description Files. (line 7) * AFM <1>: Glossary. (line 15) * Alphabets: Alphabets. (line 6) * Angus Duggan: Glossary. (line 208) * AppendLibraryPath:: Your Library Path. (line 12) * banner: Pass Options to lpr. (line 6) * Bug: Reporting Bugs. (line 6) * C-char: Declaring sequences. (line 38) * C-string: Declaring sequences. (line 38) * Charset: Glossary. (line 20) * Code Set: Glossary. (line 21) * Command line options: Options. (line 6) * Configuration Files: Configuration Files. (line 6) * Copying: Copying. (line 6) * DefaultPrinter:: Your Printers. (line 31) * Delegate: Glossary. (line 24) * Delegation:: Defining a Delegation. (line 7) * Delegations: Your Delegations. (line 6) * display: Special Printers. (line 6) * Document Structuring Conventions: Glossary. (line 30) * DSC: Good and Bad PostScript. (line 6) * DSC <1>: Glossary. (line 29) * Duplex: PostScript Options. (line 19) * Duplex <1>: Glossary. (line 59) * DuplexNoTumble: Glossary. (line 59) * DuplexTumble: Glossary. (line 59) * EDF: Encoding Description Files. (line 6) * elm: Interfacing With a Mailer. (line 16) * Encoding: Input Options. (line 58) * Encoding <1>: Glossary. (line 72) * Escape: Your Variables. (line 6) * Escapes: Escapes. (line 6) * Face: Faces. (line 6) * Face <1>: Glossary. (line 100) * file: Special Printers. (line 6) * First Page: Introduction. (line 6) * Ghostscript: Glossary. (line 81) * gs: Glossary. (line 81) * Headers: Headings Options. (line 6) * Headings: Glossary. (line 104) * Include:: Including Configuration Files. (line 7) * key: Name and key. (line 6) * Key: Glossary. (line 108) * Keyword: P-Rules. (line 6) * lhs: P-Rules. (line 9) * libpaper: Sheet Options. (line 10) * Library files: Library Files. (line 6) * LibraryPath:: Your Library Path. (line 9) * Logical page: Glossary. (line 119) * make_fonts_map.sh: Adding More Font Support. (line 6) * Map files: Map Files. (line 6) * Markers: Sequences. (line 6) * Medium: Glossary. (line 126) * Medium:: Your Media. (line 7) * Operator: P-Rules. (line 6) * Optimize for Portability: Good and Bad PostScript. (line 6) * Optimize for Speed: Good and Bad PostScript. (line 6) * Optional entries: Optional entries. (line 6) * Options: Options. (line 6) * Options:: Your Default Options. (line 7) * OutputFirstLine:: Your PostScript magic number. (line 6) * OutputFirstLine: <1>: Your PostScript magic number. (line 16) * P-Rule: P-Rules. (line 6) * P-rule: Glossary. (line 200) * Page: Glossary. (line 134) * Page Description Language: Glossary. (line 137) * Page device: PostScript Options. (line 37) * Page prefeed: PostScript Options. (line 83) * Page Range: Input Options. (line 8) * PageLabelFormat:: Your Page Labels. (line 15) * paper: Sheet Options. (line 10) * PCL: Glossary. (line 144) * PFA file: Glossary. (line 147) * PFB file: Glossary. (line 151) * pine: Interfacing With a Mailer. (line 21) * PostScript: Glossary. (line 159) * PostScript Quality: Good and Bad PostScript. (line 6) * PPD file: Glossary. (line 179) * Predefined Variables: Predefined Variables. (line 6) * PrependLibraryPath:: Your Library Path. (line 15) * PreScript: PreScript. (line 6) * Pretty printing: Pretty Printing. (line 6) * Printer:: Your Printers. (line 14) * ProcSet: Glossary. (line 190) * Prologue: Input Options. (line 80) * Prologue <1>: Glossary. (line 193) * psutils: Glossary. (line 208) * Raster Output Device: Glossary. (line 223) * Regular expression: Syntax for the P-Rules. (line 19) * rhs: P-Rules. (line 13) * Rule: P-Rules. (line 6) * Script: Glossary. (line 237) * Separator: Alphabets. (line 6) * Sequences: Sequences. (line 6) * setpagedevice: PostScript Options. (line 37) * Sheet: Glossary. (line 240) * sheets.map: Style Sheet Files. (line 6) * sheets.map <1>: Name and key. (line 6) * statusdict: PostScript Options. (line 56) * Style sheet: Style sheets semantics. (line 6) * Style sheet <1>: Glossary. (line 244) * Symbol conversion: Pretty Printing. (line 6) * TemporaryDirectory:: Your Internal Details. (line 10) * Tumble: Glossary. (line 249) * Under lay: Headings Options. (line 27) * UnknownPrinter:: Your Printers. (line 27) * UserOption:: Your Shortcuts. (line 10) * Variable: Your Variables. (line 6) * Variable:: Defining Variables. (line 7) * Variables, predefined: Predefined Variables. (line 6) * Virtual page: Glossary. (line 252) * void: Special Printers. (line 6) * Water mark: Headings Options. (line 27)  Tag Table: Node: Top1496 Node: Introduction10837 Node: Description12290 Node: Reporting Bugs14346 Node: a2ps Mailing Lists15660 Node: Helping the Development17464 Node: User Guide19892 Node: Purpose20594 Node: How to print20837 Node: Basics for Printing21708 Node: Special Printers24137 Node: Using Delegations25012 Node: Printing Duplex27067 Node: Checking the Defaults28791 Node: Important parameters30150 Node: Localizing30777 Node: Interfacing31734 Node: Interfacing With a Mailer32079 Node: Post-processing33274 Node: Invoking a2ps33880 Node: Options34337 Ref: Options-Footnote-136321 Node: Tasks Options36437 Node: Global Options39765 Node: Sheet Options42986 Node: Page Options46021 Node: Headings Options48914 Node: Input Options49881 Node: Pretty Print Options56383 Node: Output Options58151 Node: PostScript Options60739 Node: Escapes63946 Node: Use of Escapes64316 Node: Structure of the Escapes65400 Node: Available Escapes67054 Node: Configuration Files75578 Node: Including Configuration Files77693 Node: Your Library Path78292 Node: Your Default Options79068 Node: Your Media79916 Node: Your Printers81011 Node: Your Shortcuts83114 Node: Your PostScript magic number83928 Ref: Your PostScript magic number-Footnote-184717 Node: Your Page Labels84809 Node: Your Variables85616 Node: Defining Variables86042 Node: Predefined Variables87396 Node: Your Delegations89181 Node: Defining a Delegation89878 Ref: Defining a Delegation-Footnote-191771 Node: Guide Line for Delegations91841 Ref: Guide Line for Delegations-Footnote-194477 Node: Predefined Delegations94616 Node: Your Internal Details96426 Node: Library Files96813 Node: Documentation Format98333 Node: Map Files100230 Node: Font Files101691 Node: Fonts Map File102130 Node: Fonts Description Files102667 Node: Adding More Font Support103266 Node: Style Sheet Files104476 Node: Encodings106890 Node: What is an Encoding107348 Node: Encoding Files111283 Node: Encoding Map File111899 Node: Encoding Description Files112713 Node: Some Encodings115338 Node: Pretty Printing120431 Node: Syntactic limits121521 Node: Known Style Sheets121944 Node: Type Setting Style Sheets151223 Node: Symbol151835 Node: PreScript152375 Node: Syntax153269 Node: PreScript Commands153985 Node: PreScript examples155395 Node: PreTeX155751 Node: Special characters156078 Node: PreTeX Commands156770 Node: Differences with LaTeX158218 Node: TeXScript159165 Node: Faces160640 Node: Style sheets semantics162075 Node: Name and key162923 Node: Comments163760 Node: Alphabets164124 Node: Case sensitivity164630 Node: P-Rules164890 Node: Sequences167834 Node: Optional entries168333 Node: Style Sheets Implementation168748 Node: A Bit of Syntax169789 Node: Style Sheet Header173238 Node: Syntax of the Words174836 Node: Inheriting175825 Node: Syntax for the P-Rules176783 Node: Declaring keywords and operators178798 Node: Declaring sequences181140 Node: Checking a Style Sheet184007 Node: A tutorial on style sheets185108 Node: Example and syntax185918 Node: Implementation187179 Node: The Entry in sheets.map190648 Node: More Sophisticated Rules191533 Node: Distributed Style Sheets193736 Node: PostScript195378 Node: Good and Bad PostScript195966 Node: Page Device Options199760 Node: Statusdict Options201001 Node: Colors in PostScript202040 Node: a2ps PostScript Files202973 Node: Designing PostScript Prologues203438 Node: Definition of the faces204339 Node: Prologue File Format205823 Node: A prologue example206396 Node: Contributions208392 Node: card208978 Node: Invoking card209768 Node: Caution when Using card211351 Node: fixps211843 Node: Invoking fixps212216 Node: pdiff213502 Node: Invoking pdiff213967 Node: lp2215012 Node: Invoking lp2215349 Node: FAQ216072 Node: Why Does ...?216636 Node: It Prints Nothing217159 Node: It Prints in Simplex218334 Node: It Prints in Duplex219150 Node: It Does Not Fit on the Paper219858 Node: It Prints Junk220438 Node: It Says my File is Binary221284 Node: It Refuses to Change the Font Size222988 Node: How Can I ...?223803 Node: Leave Room for Binding224297 Node: Print stdin224548 Node: Change the Fonts225165 Node: The Old Option -b?225484 Node: Pass Options to lpr225982 Node: Man Pages with Underlines226729 Node: Please tell me...227086 Node: Is a2ps Y2K compliant?227361 Ref: Is a2ps Y2K compliant?-Footnote-1227784 Node: Why not using yacc227803 Node: Glossary228908 Node: Genesis238784 Node: History239070 Node: Thanks240114 Node: Copying241740 Node: Concept Index243569  End Tag Table  Local Variables: coding: iso-8859-1 End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/a2ps.texi���������������������������������������������������������������������������0000644�0000000�0000000�00000643313�14445127525�011672� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������\input texinfo @c -*- texinfo -*- @documentencoding ISO-8859-1 @c %**start of header @setfilename a2ps.info @settitle General Purpose PostScript Generating Utility @c @setchapternewpage odd @c %**end of header @c A few words about this document: @c - use @pack{} when the name a2ps is needed, so that the correct @c face is used @c - do not use macros in footnote: because of a bug in Texinfo 3.11 @c the TeX result is erroneous. @c - I tried to avoid the name ASCII to PostScript, because a2ps is no @c longer limited by an ASCII input. "any" seems good, since it @c talks about the delegations too. @include version.texi @set PACKAGE a2ps @set WWWHOME https://www.gnu.org/software/a2ps/ @c short cut for PACKAGE in @code. @code in Info looks like this: @c `a2ps'. Avoid those quotes. @iftex @macro pack @code{@value{PACKAGE}} @end macro @end iftex @ifnottex @macro pack @value{PACKAGE} @end macro @end ifnottex @c better looking url references @iftex @macro href{link, name} \name\@footnote{@url{\link\}} @end macro @end iftex @ifnottex @macro href{link, name} @uref{\link\,\name\} @end macro @end ifnottex @dircategory Printing Tools @direntry * a2ps: (a2ps). PostScript Generating Utility * PreScript: (a2ps) PreScript. Input language for a2ps * card: (a2ps) card. Print Reference Cards * fixps: (a2ps) fixps. Fixing Some Ill Designed PostScript Files * pdiff: (a2ps) pdiff. Produce Pretty Comparison of Files * lp2: (a2ps) lp2. Printing Duplex on Simplex Printers @end direntry @ifinfo This document describes GNU @pack{} @value{VERSION}, a converter from various formats, included text, to PostScript converter, with pretty-printing abilities. Copyright @copyright{} 1988-2023 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. @ignore Permission is granted to process this file through TeX and print the results, provided the printed document carries a copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). @end ignore Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled ``Copying'' is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the author. @end ifinfo @titlepage @title GNU a2ps, version @value{VERSION} @subtitle General Purpose PostScript Generating Utility @subtitle Edition @value{EDITION}, @value{UPDATED} @author Akim Demaille @author Miguel Santana @page @vskip 0pt plus 1filll Copyright @copyright{} 1988-2017 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. @end titlepage @c In vr is put the options @c @syncodeindex fn cp @c @synindex pg cp @ifinfo @node Top @top a2ps GNU @pack{} is a filter which generates PostScript from various formats, with pretty-printing features, strong support for many alphabets, and customizable layout. This is Edition @value{VERSION} of the @pack{} documentation, updated @value{UPDATED}. @menu * Introduction:: Foreword * User Guide:: Beginner should start here * Invoking a2ps:: The command line options * Configuration Files:: Tuning your a2ps * Library Files:: Dynamic extension of a2ps * Encodings:: Supporting various charsets * Pretty Printing:: Support for source files * PostScript:: PostScript specific informations * Contributions:: Tools around a2ps * FAQ:: Frequently Answered Questions * Glossary:: Small Dictionary * Genesis:: History of a2ps * Copying:: Your rights and ours * Concept Index:: Most words used in here @detailmenu --- The Detailed Node Listing --- Introduction * Description:: What a2ps is * Reporting Bugs:: What to do when you face problems * a2ps Mailing Lists:: Getting news about a2ps * Helping the Development:: How to contribute User's Guide * Purpose:: What a2ps is made for * How to print:: The basis * Important parameters:: What needs to be set * Localizing:: How to have a2ps speaking your language * Interfacing:: Using a2ps from common programs How to print * Basics for Printing:: Printing text files * Special Printers:: Some useful fake printers * Using Delegations:: Printing special files (PS, DVI etc.) * Printing Duplex:: Doing Fancy Things * Checking the Defaults:: Is it set the way you want? Interfacing with Other Programs * Interfacing With a Mailer:: Printing Mails or News * Post-processing:: Processing the output of other programs Invoking @pack{} * Options:: Command line options * Escapes:: Strings ready to use in the headers Command line options * Tasks Options:: Exclusive options * Global Options:: Settings involving the whole process * Sheet Options:: Specify the layout on the sheet * Page Options:: Specify the virtual pages * Headings Options:: Specify the headers you want * Input Options:: How to process the input files * Pretty Print Options:: Source files support * Output Options:: What should be done of the output * PostScript Options:: PostScript specific options Escapes * Use of Escapes:: Where they are used * Structure of the Escapes:: Their syntax * Available Escapes:: Detailed list Configuration Files * Including Configuration Files:: Isolating site specific values * Your Library Path:: Setting the files search path * Your Default Options:: Default state of a2ps * Your Media:: Sheets dimensions * Your Printers:: How to access the printers * Your Shortcuts:: Your very own command line options * Your PostScript magic number:: Handling very old printers * Your Page Labels:: Page names as in @code{Ghostview} * Your Variables:: Short cut for long sequences * Your Delegations:: Delegating some files to other filters * Your Internal Details:: Details you might want to tune Your Variables * Defining Variables:: Syntax and conventions * Predefined Variables:: Builtin variables Your Delegations * Defining a Delegation:: Syntax of the definitions of the delegations * Guide Line for Delegations:: What should be respected * Predefined Delegations:: Making the best use of these delegations Library Files * Documentation Format:: Special tags to write a documentation * Map Files:: Their general shape and rationale * Font Files:: Using other fonts * Style Sheet Files:: Defining pretty printing rules Font Files * Fonts Map File:: Mapping a font name to a file name * Fonts Description Files:: Needed files to use a Font * Adding More Font Support:: Using even more Fonts Encodings * What is an Encoding:: The concept of encoding explained * Encoding Files:: How a2ps handles the encodings Encoding Files * Encoding Map File:: Mapping an encoding name to a file name * Encoding Description Files:: Specifying an encoding * Some Encodings:: Classical or standard encodings Pretty Printing * Syntactic limits:: What can't be done * Known Style Sheets:: Some supported languages * Type Setting Style Sheets:: a2ps as a tiny word processor * Faces:: Encoding the look of pieces of text * Style sheets semantics:: What is to be defined * Style Sheets Implementation:: How they should be defined * A tutorial on style sheets:: Step by step example Type Setting Style Sheets * Symbol:: Access to the glyphs of the Symbol font * PreScript:: Typesetting in an a2ps like syntax * PreTeX:: Typesetting in a LaTeX like syntax * TeXScript:: Typesetting in a mixture of both PreScript * Syntax:: Lexical specifications * PreScript Commands:: * PreScript examples:: Pre@TeX{} * Special characters:: * PreTeX Commands:: * Differences with LaTeX:: Style Sheets Semantics * Name and key:: Both names of a style sheet * Comments:: Author name, version etc. * Alphabets:: What words are legal * Case sensitivity:: Is BEGIN different of begin * P-Rules:: Pretty Printing Rules * Sequences:: Strings, comments etc. * Optional entries:: Second level of pretty printing Style Sheets Implementation * A Bit of Syntax:: Lexical rules of the ssh language * Style Sheet Header:: Declaration of a style * Syntax of the Words:: Classes of the Characters * Inheriting:: Extending existing style sheets * Syntax for the P-Rules:: Atomic Pretty Printing rules * Declaring keywords and operators:: Special Classes of Identifiers * Declaring sequences:: Bordered Lexical Entities * Checking a Style Sheet:: Ask a2ps to Check the Sheet A Tutorial on Style Sheets * Example and syntax:: ChangeLog files * Implementation:: Implementation of chlog.ssh * The Entry in sheets.map:: Getting automatic style selection * More Sophisticated Rules:: Complex regular expressions * Distributed Style Sheets:: Additional Constraints PostScript * Good and Bad PostScript:: How to lose, how to win * Page Device Options:: Accessing some printers' features * Statusdict Options:: Some other features * Colors in PostScript:: Specifying a color or a gray * a2ps PostScript Files:: Convention for PostScript library files * Designing PostScript Prologues:: Make it look like what you want Designing PostScript Prologues * Definition of the faces:: What goes in a characters style * Prologue File Format:: Including documentation * A prologue example:: A step by step example Contributions * card:: Printing Reference Cards * fixps:: Fixing Some Ill Designed PostScript Files * pdiff:: Produce Pretty Comparison of Files * lp2:: Printing Duplex on Simplex Printers @code{card} * Invoking card:: Command Line Interface * Caution when Using card:: card runs commands @code{fixps} * Invoking fixps:: Command Line Interface @code{pdiff} * Invoking pdiff:: Command Line Interface @code{lp2} * Invoking lp2:: Command Line Interface Frequently asked questions * Why Does ...?:: Questions on Error * How Can I ...?:: a2ps' How-To * Please tell me...:: Existential Questions on a2ps Why Does...? * It Prints Nothing:: The printer issues nothing * It Prints in Simplex:: While I asked for Duplex * It Prints in Duplex:: While I asked for Simplex * It Does Not Fit on the Paper:: Some parts are missing * It Prints Junk:: Random characters * It Says my File is Binary:: And refuses to print it * It Refuses to Change the Font Size:: How Can I ...? * Leave Room for Binding:: Specifying Margins * Print stdin:: Using a2ps in a pipe chain * Change the Fonts:: Tired of Courier? * The Old Option -b?:: Printing in Bold * Pass Options to lpr:: Disable the banner * Man Pages with Underlines:: Now it Prints With Italics Please tell me... * Is a2ps Y2K compliant?:: Printing dates in short format * Why not using yacc:: Why Using Style Sheets Genesis * History:: Where does it come from * Thanks:: People who really helped @end detailmenu @end menu @end ifinfo @node Introduction @chapter Introduction @c Now, that's what I call humor :) @cindex First Page This document describes GNU @pack{} version @value{VERSION}. The latest versions may be found on the @uref{@value{WWWHOME}, home page}. We plan to update the @uref{@value{WWWHOME}, GNU home page} in the near future, in which case the latter will be a better source of information. We tried to make this document informative and pleasant. It tries to be more than a plain reference guide, and intends to offer information about the concepts or tools etc. that are related to printing PostScript. This is why it is now that big: to offer you all the information you might want, @strong{not} because @pack{} is difficult to use. @xref{Glossary}, for technical words or even general information. Please, send us emailcards @code{:)}. Whatever the comment is, or if you just like @pack{}, write to @email{Miguel.Santana@@st.com, Miguel Santana} and @email{akim@@freefriends.org, Akim Demaille}. But @emph{never} write to either of us for asking questions, or to report bugs. Chances are very high never to receive an answer, as we receive too many messages. @xref{a2ps Mailing Lists}, for information on the mailing lists. @menu * Description:: What a2ps is * Reporting Bugs:: What to do when you face problems * a2ps Mailing Lists:: Getting news about a2ps * Helping the Development:: How to contribute @end menu @node Description @section Description @pack{} formats files for printing on a PostScript printer. The format used is nice and compact: normally two pages on each physical page, borders surrounding pages, headers with useful information (page number, printing date, file name or supplied header), line numbering, pretty-printing, symbol substitution etc. This is very useful for making archive listings of programs or just to check your code in the bus. Actually @pack{} is kind of bootstrapped: its sources are frequently printed with @pack{} @code{:)}. While at the origin its names was derived from ``ASCII to PostScript'', today we like to think of it as ``Any to PostScript''. Indeed, @pack{} supports @dfn{delegations}, i.e., you can safely use @pack{} to print DVI, PostScript, LaTeX, JPEG etc., even compressed. A short list of features of @pack{} might look like this: @itemize @minus @item Customizable through various configuration files (@pxref{Configuration Files}) @item Powerful escapes to define the headers, table of contents etc. the way you want (@pxref{Escapes}); @item Variables to push even further the customizability in a comfortable manner (@pxref{Your Variables}); @item Open approach of encodings (@pxref{Encodings}); @item Excellent support of the Latin 2, 3, 4, 5 and 6 encodings, thanks to @code{Ogonkify} (@pxref{top,,Overview,ogonkify,Ogonkify manual}), written by Juliusz Chroboczek. @item Fully customizable output style: fonts, background and foreground colors, line numbering style etc. (@pxref{Designing PostScript Prologues}). @item Possibility to delegate the processing of some files to other filters (@pxref{Your Delegations}). @item Many contributions, e.g., pretty-print diffs, print reference cards of programs, sanitize broken PostScript files, print Duplex on Simplex printers etc. (@pxref{Contributions}). @item And finally, the ability to pretty-print sources written in quite a few various languages (@pxref{Pretty Printing}). @end itemize @node Reporting Bugs @section Reporting Bugs @cindex Bug We try hard to make @pack{} portable on any Unix platform, and bug free. But sometimes there can still be bad surprises, even after having compiled and checked @pack{} on several very different platforms. You may encounter some of these problems yourself. In any case, please never abandon without giving us a chance. We need information from everybody so that mistakes get fixed as fast as possible. So, if you have a problem (configuration error, compilation error, runtime error, documentation error or unclear), first check in the FAQ (@pxref{FAQ}), then on the page @uref{@value{WWWHOME}/bugs.html,Known Bugs} if the issue has not been addressed yet. If it is not the case, but it appears that the version of @pack{} you have is old, consider upgrading. If the problem persists, send us a mail (@email{bug-a2ps@@gnu.org}) which subject is @samp{a2ps @var{version}: @var{short-description}} and which content mentions the name of your machine and OS, the version of @pack{}, every detail you have on your compiler, and as much traces as possible (the error messages you get on the screen, or the output of @code{make} when it fails etc.). Be sure to get a quick answer. @node a2ps Mailing Lists @section @pack{} Mailing Lists There are several mailing lists related to @pack{}: @table @email @item a2ps@@gnu.org This list is dedicated to announcements, questions/answers, etc. The alpha versions are announced too. Requests and suggestions can be sent there. @item bug-a2ps@@gnu.org Any bug report should be sent to this address. Please, be sure to state the version of @pack{} in the subject of your message, together with a short description of the problem. In the body of the message, include all the information that might be relevant: the system you run, etc. @item a2ps-patches@@gnu.org Send patches, style sheets, new delegations etc. to this list. In other words, any candidate for inclusion into @pack{} should be sent to this list. It also serves to coordinate the developers. If you are interested in the development of @pack{}, then visit the @href{https://savannah.gnu.org/projects/a2ps/, Savannah a2ps page}. @item a2ps-commit@@gnu.org Each time a change is made the main @pack{} repository, a message is sent to this mailing list. For developers only. @end table To subscribe to any of these list, go to their web pages: @href{https://mail.gnu.org/mailman/listinfo/a2ps, a2ps}, @href{https://mail.gnu.org/mailman/listinfo/bug-a2ps, bug-a2ps}, @href{https://mail.gnu.org/mailman/listinfo/a2ps-patches, a2ps-patches}, and @href{https://mail.gnu.org/mailman/listinfo/a2ps-patches, a2ps-commit}. Be sure @emph{never} to send a private message to one of the authors, as it is approximately the best means never to get an answer. In addition it is counter productive for the community, as the answer to your question might have interested more people. @node Helping the Development @section Helping the Development If you like @pack{} and if you feel like helping, there are several things you can do. @table @emph @item Testing You just can't imagine how hard it is to make sure that the program that works perfectly here will work on your machine. Actually, in general the last weeks before a release are mostly dedicated to (Unix) portability issues. So we @strong{need} beta-testers! To be one is fairly simple: subscribe to the mailing-list where the betas are announced and distributed. @item Translation The interface of @pack{} is under @code{GNU gettext} which means that all the messages can be translated, without having to look at the code of @pack{}: you don't need to be a programmer at all. All the details are available on @href{@value{WWWHOME}/po/, the a2ps translation page}. @item Style Sheets Since @pack{} is evolving and getting more powerful, the style sheets should be checked and improved. There are too many so that the authors work on them. Therefore if you feel your favorite language is not honored as it should be, improve the style sheet! (@pxref{Pretty Printing} for details.) @item Encodings @pack{} is wide open to any 8-bit encoding. If your language is not covered today by @pack{}, you can easily provide the support yourself. Honestly, the trickiest part is to find correct @strong{free} fonts that support your mother tongue (@pxref{Encoding Files}, to know more). @item Fonts There are still some characters missing in Ogonkify. See @href{https://www.irif.fr/~jch//software/ogonkify/missing.html, the list of missing characters} and @href{https://www.irif.fr/~jch//software/ogonkify/, the Ogonkify home page} for details. @item Documentation If you feel something is missing or is unclear, send us your contributions. @item Porting Porting a program to special architectures (MS-DOS, OS/2 etc.), or building special packages (e.g., RPM) requires having an access to these architectures. If you feel like maintaining such a port, tell us. @item Features Well, if you feel like doing something else, go ahead! But contact us, because we have quite a big stack of things we want to do or have started to do, and synchronizing might be useful. @end table @c # # ### ##### @c # # #### ###### ##### ### #### # # # # # ##### @c # # # # # # # # # # # # # # @c # # #### ##### # # # #### # #### # # # # # @c # # # # ##### # # # # # # # # @c # # # # # # # # # # # # # # # # @c ##### #### ###### # # #### ##### #### # ##### @node User Guide @chapter User's Guide This chapter is devoted to people who don't know @pack{} yet: we try to give a soft and smooth introduction to the most useful features. For a reference manual, see @ref{Invoking a2ps}. For the definition of some words, see @ref{Glossary}, for questions you have, see @ref{FAQ}. @menu * Purpose:: What a2ps is made for * How to print:: The basis * Important parameters:: What needs to be set * Localizing:: How to have a2ps speaking your language * Interfacing:: Using a2ps from common programs @end menu @node Purpose @section Purpose @pack{} is a program that takes a text file (i.e., human readable), and makes a PostScript file out of it. Typically output is sent to a printer. @node How to print @section How to print To print a file @file{doc.txt}, just give it to @pack{}: the default setting should be the one you'd like: @example @cartouche gargantua ~ $ a2ps doc.txt [doc.txt (plain): 9 pages on 5 sheets] [Total: 9 pages on 5 sheets] sent to the default printer @end cartouche @end example @pack{} sent the file @file{doc.txt} to the default printer, writing two columns of text on a single face of the sheet. Indeed, by default @pack{} uses the option @samp{-2}, standing for two virtual pages. @menu * Basics for Printing:: Printing text files * Special Printers:: Some useful fake printers * Using Delegations:: Printing special files (PS, DVI etc.) * Printing Duplex:: Doing Fancy Things * Checking the Defaults:: Is it set the way you want? @end menu @node Basics for Printing @subsection Basics for Printing Say you want to print the C file @file{bar.c}, and its header @file{foo.h}, on 4 virtual pages, and save it into the file @file{foobar.ps}. Just hit: @example @cartouche gargantua $ a2ps foo.h bar.c -4 -o foobar.ps [foo.h (C): 1 page on 1 sheet] [bar.c (C): 3 pages on 1 sheet] [Total: 4 pages on 2 sheets] saved into the file `foobar.ps' @end cartouche @end example The option @samp{-4} tells @pack{} to make four virtual pages: two rows by two columns. The option @samp{-o foobar.ps} (which is the short version of @samp{--output=foobar.ps}) specifies the output file. Long options must always be separated by spaces, though short options with no arguments may be grouped. Note too that the options may be specified before or after the files, it does not matter. If you send @file{foobar.ps} to a printer, you'll discover that the keywords were highlighted, that the strings and comments have a different face. Indeed, @pack{} is a @dfn{pretty-printer}: if it knows the (programming) language in which your file is written, it will try to make it look nice and clear on the paper. But too bad: @file{foo.h} is only one virtual page long, and @file{bar.c} takes three. Moreover, the comments are essential in those files. And even worse: the system's default printer is out of ink. Thanks god, precious options may help you: @example @cartouche gargantua $ a2ps -4 -Av foo.h bar.c --prologue=gray -P lw [foo.h (C): 1 page on 1 sheet] [bar.c (C): 3 pages on 1 sheet] [Total: 4 pages on 1 sheet] sent to the printer `lw' @end cartouche @end example Here the option @samp{-A} is a short cut for the option @samp{--file-align} which specifies how different files should be separated. This option allows several symbolic arguments: @samp{virtual}, @samp{rank}, @samp{page}, @samp{sheet} (@xref{Sheet Options}, for more details). The value @samp{virtual} means not to start each file on a different virtual pages. So to fill the page is asked by @samp{--file-align=virtual}, or @samp{-A virtual}. But symbolic arguments can be abbreviated when there are no ambiguity, so here, you can just use @samp{-Av}. The option @samp{-P lw} means to print on the printer named @samp{lw}, and finally, the long option @samp{--prologue} requires the use one of the alternative printing styles. There are other prologues (@xref{Input Options}, option @samp{--prologue}), and you can even design yours (@pxref{Designing PostScript Prologues}). @node Special Printers @subsection Special Printers @cindex @code{display} @cindex @code{void} @cindex @code{file} There are three special printers pre-defined. The first one, @code{void}, sends the output to the trash. Its main use is to see how many pages would have been used. @example @cartouche gargantua ~ $ a2ps -P void parsessh.c [parsessh.c (C): 33 pages on 17 sheets] [Total: 33 pages on 17 sheets] sent to the printer `void' @end cartouche @end example The second, @code{display} sends the output to @code{Ghostview}, so that you can check the output without printing. Of course if you don't have @code{Ghostview}, it won't work... And it is up to you to configure another displaying application (@pxref{Your Printers}). The last, @code{file} saves the output into a file named after the file you printed (e.g., saves into @file{foo.ps} when you print @file{foo.c}). @node Using Delegations @subsection Using Delegations @pack{} can decide that @pack{} itself is not the right tool to do what you want. In that case it delegates the task to other programs. What you should retain from this, is, @emph{forget that there are delegations}. Indeed, the interface with the delegations has been designed so that you don't need to be aware that they exist to use them. Do as usual. As an example, if you need to print a PostScript file, just hit: @example @cartouche gargantua ~ $ a2ps article.ps -d [article.ps (ps, delegated to PsNup): 7 pages on 4 sheets] [Total: 8 pages on 4 sheets] sent to the default printer @end cartouche @end example While honoring your defaults settings, @pack{} delegates the task to put two virtual pages per physical page to @code{psnup}, a powerful filter part of the famous @code{psutils} by Angus Duggan. Suppose now that you want to display a Texinfo file. Then, provided you have all the programs @pack{} needs, just hit @example @cartouche gargantua ~ $ a2ps a2ps.texi -P display [a2ps.texi (texinfo, delegated to texi2dvi): 75 pages on 38 sheets] [Total: 76 pages on 38 sheets] sent to the printer `display' @end cartouche @end example Once the read documentation, you know you want to print just pages 10 to 20, plus the cover. Just hit: @example @cartouche gargantua ~ $ a2ps a2ps.texi --pages=1,10-20 -d [a2ps.texi (texinfo, delegated to texi2dvi): 13 pages on 7 sheets] [Total: 14 pages on 7 sheets] sent to the default printer @end cartouche @end example A final word: compressed files can be treated in the very same way: @example @cartouche gargantua ~ $ a2ps a2ps.texi.gz -a1,10-20 -d [a2ps.texi (compressed, delegated to Gzip-a2ps): 13 pages on 7 sheets] [Total: 14 pages on 7 sheets] sent to the default printer @end cartouche @end example You should be aware that: @itemize @minus @item the option @samp{-Z} enables the delegations if they are not (see @samp{--list=defaults} for your settings); @item the set of delegations is customizable, to know the delegations your @pack{} knows, consult @samp{a2ps --list=delegations}. @end itemize @node Printing Duplex @subsection Printing Duplex If you still want to save more paper, and you are amongst the set of happy users of Duplex printers, @pack{} will also be able to help you (@xref{Glossary}, for definitions). The option to specify Duplex printing is @samp{--sides=@var{mode}} (@pxref{PostScript Options}). Here is how to print the documentation in Duplex and send it to the Duplex printer @samp{margot}: @example @cartouche quasimodo ~ a2ps/doc $ a2ps -s2 -Pmargot a2ps.texi [a2ps.texi (texinfo, delegated to texi2dvi): 109 pages on 28 sheets] [Total: 110 pages on 28 sheets] sent to the printer `margot' @end cartouche @end example This is also valid for several files. Actually, you can do something even more tricky: print a small book! This is much more complicated than printing Duplex, because the pages needs to be completely reorganized another way. This is precisely the job of @code{psbook}, yet another PsUtil from Angus Duggan. But there is a user option which encapsulates the magic sequence of options: @samp{book}. Therefore, just run @example @cartouche quasimodo a2ps/doc $ a2ps -=book -Pmargot a2ps.texi [a2ps.texi (texinfo, delegated to texi2dvi): 109 pages on 109 sheets] [Total: 109 pages on 109 sheets] sent to the printer `margot' @end cartouche @end example @noindent and @i{voila` !}, a booklet printed on margot! We strongly discourage you to try with several files at once, because the tools then easily get lost. And, after all, the result will be exactly the same once you collated all the booklets together. Another limitation is that this does not work if it is not sent to a printer. This kind of weird limitations will be solved in the future. @node Checking the Defaults @subsection Checking the Defaults If @pack{} did not have the behavior expected, this may be because of the default settings given by your system administrator. Checking those default values is easy: @example @cartouche ~ % a2ps --list=defaults Configuration status of a2ps 4.12a ================================== Sheets: ------- medium = A4, portrait page layout = 1 x 1, rows first borders = yes file alignment = page interior margin = 0 @emph{More stuff deleted here} Internals: ---------- verbosity level = 2 file command = /usr/bin/file -L temporary directory = /tmp library path = /home/akim/.a2ps /usr/share/a2ps/sheets /usr/share/a2ps/ps /usr/share/a2ps/encoding /usr/share/a2ps/afm /usr/share/ogonkify/afm /usr/share/a2ps/ppd /usr/share/a2ps/fonts /usr/share/ogonkify/fonts /usr/share/a2ps @end cartouche @end example Remember that the on-line help is always available. Moreover, if your screen is small, you may @emph{pipe} it into @code{more}. Just trust this: @example a2ps --help | more @end example @node Important parameters @section Important parameters Many things are parameterizable in @pack{}, but two things are just essential to make sure everything goes right: @table @strong @item The paper Make sure that the paper @pack{} uses is the same as your printer (@xref{Sheet Options}, option @samp{--medium}). @item The encoding Make sure that the @emph{encoding} @pack{} uses is the same as the standard alphabet in your country (@xref{Input Options}, option @samp{--encoding}). @end table Both values may be checked with @samp{a2ps --list=defaults}. @node Localizing @section Localizing @pack{} provides some Native Language Support, that is speaking your mother tongue. It uses three special features for non-English languages: @table @emph @item the tongue i.e., the language used by the interface, @item the date i.e., the format and the words used in the language to specify a date. @end table To enable these features, properly set your environment variable @code{LANG} (see the documentation of your system, for instance @samp{man locale}, @samp{man environ} etc.). The problem with this approach is that a lot more than just messages and time information is affected: especially the way numbers are written changes, what may cause problems with @code{awk} and such. So if you just want messages and time format to be localized, then define: @example set LC_MESSAGES=fr ; export LC_MESSAGES set LC_TIME=fr ; export LC_TIME @end example @node Interfacing @section Interfacing with Other Programs Here are some tips on how to use @pack{} with other programs. @menu * Interfacing With a Mailer:: Printing Mails or News * Post-processing:: Processing the output of other programs @end menu @node Interfacing With a Mailer @subsection Interfacing With a Mailer When you print from a mailer (or a news reader), your mailer calls a tool, say @pack{} on a part of the whole mailbox. This makes it difficult for @pack{} to guess that the file is of the type @samp{mail}. Therefore, for better results, make sure to tell @pack{} the files are mails. The user option @samp{mail} (or @samp{longmail} for longer inputs) encapsulates most typical tuning users want to print mails (for instance, don't print all the headers). Most specifically, if your mailer is: @table @code @item elm @cindex @code{elm} Once you are in elm, hit @kbd{o} to enter in the options edition menu, hit @kbd{p} to edit the printer command, and enter @samp{a2ps -=mail %s -d}. The option @samp{-d} means to print on the default printer. @item pine @cindex @code{pine} @email{jan@@chrillesen.dk, Jan Chrillesen} suggests us how to use @pack{} with the Pine mail-reader. Add the following to @file{.pinerc} (of course you can put it in @file{pine.conf} as well): @example # Your printer selection printer=a2ps -=mail -d # Special print command personal-print-command=a2ps -=mail -d @end example @end table @node Post-processing @subsection Processing the output of other programs Use the following command: @example a2ps @end example @noindent Not too hard, isn't it? Nevertheless, this setting suppose your world is OK, your @code{file(1)} detects correctly PostScript files, and your @pack{} is configured to delegate. In case one one these conditions is not met, use: @example a2ps -ZEps @end example Do not forget to tell the program whose output you are processing whether your printer supports colors, and the type of paper it uses. @c ### @c # # # # # #### #### ## ##### # #### # # @c # ## # # # # # # # # # # # # # ## # @c # # # # # # # # # # # # # # # # # # @c # # # # # # # # # ###### # # # # # # # @c # # ## # # # # # # # # # # # # # ## @c ### # # ## #### #### # # # # #### # # @node Invoking a2ps @chapter Invoking @pack{} Calling @pack{} is fairly simple: @example a2ps @var{Options...} @var{Files...} @end example If no @var{Files...} are given, @pack{} prints its standard input. If @samp{-} appears in the @var{Files...}, it designates the standard input too. @menu * Options:: Command line options * Escapes:: Strings ready to use in the headers @end menu @node Options @section Command line options @cindex Command line options @cindex Options To read the options and arguments that you give, @pack{} uses GNU @code{getopt}, hence: @itemize @minus @item the options (short with arguments or long) must be separated by spaces. @item the order between options and files does not matter: @samp{a2ps -4m main.c} and @samp{a2ps main.c -4m} are identical. @item the order between options @strong{does matter}, especially between options that influence the same parameters. For instance @samp{a2ps -1 -l132} is not the same as @samp{a2ps -l132 -1} (the latter being equivalent to @samp{a2ps -1}). @item short options may be grouped together: @samp{a2ps -4mg main.c -P printer} @item when there are no ambiguities, long options can be abbreviated, e.g., @samp{--pro} will be understood as @samp{--prologue}, @item @samp{--} ends the options. Anything behind @samp{--} is considered to be a file: @samp{a2ps -- -2} prints the file @file{-2}@footnote{A classical Unix trick to make the difference between the option @samp{-2}, and the file @file{-2} is to type @file{./-2}.}. @end itemize Here after a @var{boolean} is considered as true (i.e. setting the option on), if @var{boolean} is @samp{yes}, or @samp{1}; as false if it equals @samp{no} or @samp{0}; and raise an error otherwise. The corresponding short option takes no arguments, but corresponds to a positive answer. When an argument is presented between square brackets, it means that it is optional. Optional arguments to short option must never be separated from the option. @menu * Tasks Options:: Exclusive options * Global Options:: Settings involving the whole process * Sheet Options:: Specify the layout on the sheet * Page Options:: Specify the virtual pages * Headings Options:: Specify the headers you want * Input Options:: How to process the input files * Pretty Print Options:: Source files support * Output Options:: What should be done of the output * PostScript Options:: PostScript specific options @end menu @node Tasks Options @subsection Tasks Options Task options specify the task @pack{} will perform. It will not print, it executes the task and exits successfully. @defvr {Option} -@b{-}version print version and exit successfully. @end defvr @defvr {Option} -@b{-}help Print a short help, and exit successfully. @end defvr @defvr {Option} -@b{-}copyright Display Copyright and copying conditions, and exit successfully. @end defvr @defvr {Option} -@b{-}guess Act like @code{file} does: display the (key of the) type of the @var{Files}. For instance, on a @code{C} file, you expect it to answer @samp{c}, and upon a PostScript file, @samp{ps}. This can be very useful on broken systems to understand why a file is printed with a bad style sheet (@pxref{Style Sheet Files}). @end defvr @defvr {Option} -@b{-}which Look in the library for the files which names are given as arguments. For instance: @cartouche @example ~ % a2ps --which bw.pro gray.pro /usr/local/share/a2ps/ps/bw.pro /usr/local/share/a2ps/ps/gray.pro @end example @end cartouche @noindent If there are several library files matching the name, only the first one is reported: this allows to check which occurrence of a file is used by @pack{}. @end defvr @defvr {Option} -@b{-}glob Look in the library for the files which names match the patterns given as arguments. For instance: @cartouche @example ~ % a2ps --glob 'g*.pro' /usr/local/share/a2ps/ps/gray.pro /usr/local/share/a2ps/ps/gray2.pro @end example @end cartouche @end defvr @defvr {Option} -@b{-}list=@var{topic} Display a report on @pack{}' status with respect to @var{topic}, and exit successfully. @var{topic} can be any non-ambiguous abbreviation of: @table @samp @item defaults @itemx options Give an extensive report on @pack{} configuration and installation. @item features Known media, encodings, languages, prologues, printers, variables, delegations and user options are reported. In a word, anything that you may define. @item delegations Detailed list of the delegations. @xref{Your Delegations}. @item encodings Detailed list of known encodings. @xref{Some Encodings}. @item media Detailed list of known media. @xref{Your Media}. @item prologues Detailed list of PostScript prologues. @xref{Designing PostScript Prologues}. @item printers Detailed list of printers and named outputs. @xref{Your Printers}. @item style-sheets Detailed list of the known style sheets. @xref{Known Style Sheets}. @item user-options Detailed list of the user options. @xref{Your Shortcuts}. @item variables Detailed list of the variables. @xref{Your Variables}. @end table There are also options meant for the maintainers only, presented for sake of completeness. @table @samp @item texinfo-style-sheets @itemx ssh-texi Detailed list of known style sheets in Texinfo format. If the @code{sheet} verbosity is set, report version numbers, requirements and ancestors. @item html-style-sheets @itemx ssh-html Detailed list of the style sheets in @code{HTML} format. @item texinfo-encodings @itemx edf-texi Detailed list of encodings, in Texinfo format. @item texinfo-prologues @itemx pro-texi Detailed list of prologues, in Texinfo format. @end table @end defvr @node Global Options @subsection Global Options These options are related to the interface between you and @pack{}. @defvr {Option} -q @defvrx {Option} -@b{-}quiet @defvrx {Option} {-@b{-}silent} be really quiet @end defvr @defvr {Option} -v[@var{level}] @defvrx {Option} -@b{-}verbose[=@var{level}] tell what we are doing. At @itemize @minus @item @var{level} = 0, report nothing, @item @var{level} = 1, @pack{} just prints the total number of pages printed, @item @var{level} = 2 (default), it reports it for each file, @item above, it gives internal details. @end itemize There is also an interface made for the maintainer with finer grained selection of the verbosity level. @var{level} is a list of tokens (non ambiguous abbreviations are valid) separated by either @samp{,} or @samp{+}. The tokens may be: @table @samp @item configuration @itemx options reading the configurations files and the options, @item encodings the encodings, @item expert more detailed information is provided: PPD listings is exhaustive, @item files inputs and outputs, @item fonts the fonts, @item escapes @itemx variables @itemx meta-sequences the expansion of escapes and variables, @item parsers any parsing process (style sheets, PPD files etc.), @item pathwalk @itemx pw the search for files, @item ppd PPD processing, @item sheets the style sheets, @item stats statistics on some internal data structures, @item tools launched programs or shell commands ; triggers the escape @samp{?V} on (@pxref{Available Escapes}), @item all all the messages. @end table @cindex @code{A2PS_VERBOSITY} When @pack{} is launched it consults the environment variable @code{A2PS_VERBOSITY}. If it is set, this defines the verbosity level for the whole session (options @samp{--verbose}, and @samp{-q} etc. have then no influence). The valid values for @code{A2PS_VERBOSITY} are exactly the valid arguments of the option @samp{--verbose}. This helps tracking down configuration problems that occur @emph{before} @pack{} had even a chance to read the command line. @end defvr @defvr {Option} -=@var{shortcut} @defvrx {Option} -@b{-}user-option=@var{shortcut} use the @var{shortcut} defined by the user. @xref{Your Shortcuts}. Shortcuts may be freely mixed with regular options and arguments. There are a few predefined user-options: @table @samp @item lp emulates a line printer, i.e., turn off most `pretty' features. @item mail @itemx longmail preferred options to print a mail or a news. @samp{longmail} prints more text on a single sheet. @item manual make the job be printed on the manually fed tray. @end table @end defvr @defvr {Option} -@b{-}debug enable debugging features. They are: @itemize @minus @item print the overall BoundingBox in PostScript; @item down load a PostScript debugger which helps understanding why a printer may reject a file. @end itemize @end defvr @defvr {Option} -D @var{key}[=@var{value}] @defvrx {Option} -@b{-}define=@var{key}[=@var{value}] Without @var{value}, unset the variable @var{key}. Otherwise, set it to @var{value}. @xref{Your Variables}, for more details. Note that @samp{-Dfoo=} gives @var{foo} an empty value, though @samp{-Dfoo} unsets foo. @end defvr @node Sheet Options @subsection Sheet Options This options specify the general layout, how the sheet should be used. @defvr {Option} -M @var{medium} @defvrx {Option} -@b{-}medium=@var{medium} @cindex @code{libpaper} @cindex @code{paper} use output medium @var{medium}. See the output of @samp{a2ps --list=media} for the list of supported media. Typical values are @samp{A3}, @samp{A4}, @samp{A5}, @samp{B4}, @samp{B5}, @samp{Letter}, @samp{Legal}. The default is the user's preferred paper size, or the system default; see the man page of @code{paper} for how this is configured. The default paper size may also be requested explicitly with the name @samp{libpaper}. @end defvr @defvr {Option} -r @defvrx {Option} -@b{-}landscape print in landscape mode @end defvr @defvr {Option} -R @defvrx {Option} -@b{-}portrait print in portrait mode @end defvr @defvr {Option} -@b{-}columns=@var{num} specify the number of columns of virtual pages per physical page. @end defvr @defvr {Option} -@b{-}rows=@var{num} specify the number of rows of virtual pages per physical page. @end defvr @defvr {Option} -@b{-}major=@var{direction} specify whether the virtual pages should be first filled in rows (@var{direction} = @samp{rows}) or in columns (@var{direction} = @samp{columns}). @end defvr @defvr {Option} -1 1 x 1 portrait, 80 chars/line, major rows (i.e. alias for @samp{--columns=1 --rows=1 --portrait --chars-per-line=80 --major=rows}). @end defvr @defvr {Option} -2 2 x 1 landscape, 80 chars/line, major rows. @end defvr @defvr {Option} -3 3 x 1 landscape, 80 chars/line, major rows. @end defvr @defvr {Option} -4 2 x 2 portrait, 80 chars/line, major rows. @end defvr @defvr {Option} -5 5 x 1 landscape, 80 chars/line, major rows. @end defvr @defvr {Option} -6 3 x 2 landscape, 80 chars/line, major rows. @end defvr @defvr {Option} -7 7 x 1 landscape, 80 chars/line, major rows. @end defvr @defvr {Option} -8 4 x 2 landscape, 80 chars/line, major rows. @end defvr @defvr {Option} -9 3 x 3 portrait, 80 chars/line, major rows. @end defvr @defvr {Option} -j @defvrx {Option} -@b{-}borders=@var{boolean} print borders around virtual pages. @end defvr @defvr {Option} -A @var{mode} @defvrx {Option} -@b{-}file-align=@var{mode} Align separate files according to @var{mode}. This option allows the printing of more than one file on the same page. @var{mode} can be any one of: @table @asis @item @samp{virtual} Each file starts on the next available virtual page (i.e., leave no empty virtuals). @item @samp{rank} Each file starts at the beginning of the next row or column depending on the @samp{--major} setting. @item @samp{page} Each file starts on a new page. @item @samp{sheet} Each file starts on a new sheet. In Simplex mode, this is the same as @samp{page}, in Duplex mode, files always start on a front side. @item an integer @var{num} Each file starts on a page which is a multiple of @var{num} plus 1. For instance, for @samp{2}, the files must start on odd pages. @end table @end defvr @defvr {Option} -@b{-}margin[=@var{num}] Specify the size of the margin (@var{num} PostScript points, or 12 points without arguments) to leave in the inside (i.e. left for the front side page, and right for the back side). This is intended to ease the binding. @end defvr @node Page Options @subsection Page Options This options are related to the content of the virtual pages. Please note that the options @samp{-f}, @samp{-L}, @samp{-l}, @samp{-m}, and @samp{-1} .. @samp{-9} all have an influence on the font size. Only the last one will win (i.e., @samp{a2ps -L66 -l80} is the same as @samp{a2ps -l80}). @defvr {Option} -@b{-}line-numbers[=@var{number}] print the line numbers from @var{number} lines to @var{number} lines. Default is @samp{1}. @end defvr @defvr {Option} -C Alias for @samp{--line-numbers=5}. @end defvr @defvr {Option} -f @var{size}[@var{unit}] @defvrx {Option} -@b{-}font-size=@var{size}[@var{unit}] scale font to @var{size} for body text. @var{size} is a float number, and @var{unit} can be @samp{cm} for centimeters, @samp{points} for PostScript points, and @samp{in} for inches. Default unit in @samp{points}. To change the fonts used, change the current prologue (@pxref{Designing PostScript Prologues}. @end defvr @defvr {Option} -l @var{num} @defvrx {Option} -@b{-}chars-per-line=@var{num} Set the font size so that @var{num} columns appear per virtual pages. @var{num} is the real number of columns devoted to the body of the text, i.e., no matter whether lines are numbered or not. @end defvr @defvr {Option} -L @var{num} @defvrx {Option} -@b{-}lines-per-page=@var{num} Set the font size so that @var{num} lines appear per virtual pages. This is useful for printing preformatted documents which have a fixed number of lines per page. The minimum number of lines per page is set at 40 and maximum is at 160. If a number less than 40 is supplied, scaling will be turned off. @end defvr @defvr {Option} -m @defvrx {Option} -@b{-}catman Understand UNIX manual @strong{output} ie: 66 lines per page and possible bolding and underlining sequences. The understanding of bolding and underlining is there by default even if @samp{--catman} is not specified. You may want to use the @samp{ul} prologue (@xref{Input Options}, option @samp{--prologue}) if you prefer underlining over italics. If your file is actually a UNIX manual @emph{input}, i.e., a roff file, then depending whether you left @pack{} delegate or not, you will get a readable version of the text described, or a pretty-printed version of the describing file (@pxref{Your Delegations}). @end defvr @defvr {Option} -T @var{num} @defvrx {Option} -@b{-}tabsize=@var{num} set tabulator size to @var{num}. This option is ignored if @code{--interpret=no} is given. @end defvr @defvr {Option} -@b{-}non-printable-format=@var{format} specify how non-printable chars are printed. @var{format} can be @table @samp @item caret Use classical Unix representation: @samp{^A}, @samp{M-^B} etc. @item space A space is written instead of the non-printable character. @item question-mark A @samp{?} is written instead of the non-printable character. @item octal For instance @samp{\001}, @samp{177} etc. @item hexa For instance @samp{\x01}, @samp{\xfe} etc. @item emacs For instance @samp{C-h}, @samp{M-C-c} etc. @end table @end defvr @node Headings Options @subsection Headings Options @cindex Headers These are the options through which you may define the information you want to see all around the pages. All these options support @var{text} as an argument, which is composed of plain strings and escapes. @xref{Escapes}, for details. @defvr {Option} -B @defvrx {Option} -@b{-}no-header no page headers at all. @end defvr @defvr {Option} -b[@var{text}] @defvrx {Option} -@b{-}header[=@var{text}] set the page header @end defvr @defvr {Option} -@b{-}center-title[=@var{text}] @defvrx {Option} -@b{-}left-title[=@var{text}] @defvrx {Option} -@b{-}right-title[=@var{text}] Set virtual page center, left and right titles to @var{text}. @end defvr @defvr {Option} -u[@var{text}] @defvrx {Option} -@b{-}underlay[=@var{text}] @cindex Under lay @cindex Water mark use @var{text} as @dfn{under lay} (or @dfn{water mark}), i.e., in a light gray, and under every page. @end defvr @defvr {Option} -@b{-}left-footer[=@var{text}] @defvrx {Option} -@b{-}footer[=@var{text}] @defvrx {Option} -@b{-}right-footer[=@var{text}] Set sheet footers to @var{text}. @end defvr @node Input Options @subsection Input Options @defvr {Option} -a[@var{Page range}] @defvrx {Option} -@b{-}pages[=@var{Page range}] @cindex Page Range With no argument, print all the page, otherwise select the pages to print. @var{Page range} is a list of interval, such as @samp{-a1}: print only the first page, @samp{-a-3,4,6,10-}: print the first 3 pages, page 4 and 6, and all the page after 10 (included). Giving @samp{toc} prints the table of content whatever its page number is. The pages referred to are the @emph{input} pages, not the output pages, that is, in @samp{-2}, printing with @samp{-a1} will print the first virtual page, i.e., you will get half the page filled. Note that page selection does work with the delegations (@pxref{Your Delegations}). @end defvr @defvr {Option} -c @defvrx {Option} -@b{-}truncate-lines=@var{boolean} Cut lines too large to be printed inside the borders. The maximum line size depends on format and font size used and whether line numbering is enabled. @end defvr @defvr {Option} -i @defvrx {Option} -@b{-}interpret=@var{boolean} interpret tab and ff chars. This means that @samp{^L} jumps to a new (virtual) pages, @samp{tab} advances to the next tabulation. @end defvr @defvr {Option} -@b{-}end-of-line=@var{type} Specify what sequence of characters denotes the end of line. @var{type} can be: @table @code @item n @itemx unix @samp{\n}. @item r @itemx mac @samp{\r}. @item nr @samp{\n\r}. As far as we know, this type of end-of-line is not used. @item pc @itemx rn @samp{\r\n}. This is the type of end-of-line on MS-DOS. @item any @itemx auto Any of the previous cases. This last case prevents the bad surprises with files from PC (trailing @samp{^M}). @end table @end defvr @defvr {Option} -X @var{key} @defvrx {Option} -@b{-}encoding=@var{key} @cindex Encoding Use the input encoding identified by @var{key}. @xref{Some Encodings}, and the result of @samp{a2ps --list=encodings} to know what encodings are supported. Typical values are @samp{ASCII}, @samp{latin1}... @samp{latin6}, @samp{iso@var{n}} etc. @end defvr @defvr {Option} -@b{-}stdin=@var{filename} Give the name @var{filename} to the files read through the standard input. @end defvr @defvr {Option} -t @var{name} @defvrx {Option} -@b{-}title=@var{name} Give the name @var{name} to the document. Escapes can be used (@pxref{Escapes}). This is used for instance in the name given to the document from within the PostScript code (so that @code{Ghostview} and others can display a file with its real title, instead of just the PostScript file name). It is @strong{not} the name of the output. It is just a logical title. @end defvr @defvr {Option} -@b{-}prologue=@var{prologue} @cindex Prologue Use @var{prologue} as the PostScript prologue for @pack{}. @var{prologue} must be in a file named @file{@var{prologue}.pro}, which must be in a directory of your library path (@pxref{Library Files}). Available prologues are: @include prologue.texi @end defvr @defvr {Option} -@b{-}print-anyway=@var{boolean} force binary printing. By default, the whole print job is stopped as soon as a binary file is detected. To detect such a file we make use of a very simple heuristic: if the first sheet of the file contains more than 40% of non-printing characters, it's a binary file. @pack{} also asks @code{file(1)} what it thinks of the type of the file. If @code{file(1)} answers @samp{data}, the file will also be considered as binary, hence not printed. @end defvr @defvr {Option} -Z @defvrx {Option} -@b{-}delegate=@var{boolean} Enable delegation of some files to delegated applications. If delegating is on, then @pack{} will @emph{not} process the file by itself, but will call an application which handles the file in another way. If delegation is off, then @pack{} will process @emph{every} file itself. Typically most people don't want to pretty-print a PostScript source file, but want to print what describes that file. Then set the delegations on. See @ref{Your Delegations} for information on delegating, and option @samp{--list=delegations} for the applications your @pack{} knows. @end defvr @defvr {Option} -@b{-}toc[=@var{format}] Generate a Table of Contents, which @var{format} is an escape (@pxref{Escapes}) processed as a PreScript file (@pxref{PreScript}). If no @var{format} is given (i.e., you wrote @samp{--toc}), use the default table of contents shape (@code{#@{toc@}}). If the given format is empty (i.e., you wrote @samp{--toc=}), don't issue the table of contents. Note that it is most useful to define a variable (@pxref{Your Variables}), for instance, in a configuration file: @example Variable: toc.mine \ \\Keyword@{Table of Content@}\n\ #-1!f\ |$2# \\keyword@{$-.20n@} sheets $3s< to $3s> ($2s#) \ pages $3p<-$3p> $4l# lines\n||\ \\Keyword@{End of toc@}\n @end example @noindent and to give that variable as argument to @samp{--toc}: @samp{a2ps *.c --toc=#@{toc.mine@}}. Note too that you can generate only the table of content using @samp{--pages}: @example a2ps *.c --toc -atoc @end example @end defvr @node Pretty Print Options @subsection Pretty Printing Options These options are related to the pretty printing features of @pack{}. @defvr {Option} -@b{-}highlight-level=@var{level} Specify the @var{level} of highlighting. @var{level} can be @table @samp @item none no highlighting @item normal regular highlighting @item heavy even more highlighting. @end table See the documentation of the style sheets (@samp{--list=style-sheets}) for a description of @samp{heavy} highlighting. @end defvr @defvr {Option} -g Alias for @samp{--highlight-level=heavy}. @end defvr @defvr {Option} -E[@var{language}] @defvrx {Option} -@b{-}pretty-print[=@var{language}] With no arguments, set automatic style selection on. Otherwise, set style to @var{language}. Note that setting @var{language} to @samp{plain} turns off pretty-printing. @xref{Known Style Sheets}, and the output of @samp{--list=style-sheets} for the available style sheets. If @var{language} is @samp{@var{key}.ssh}, then don't look in the library path, but use the file @file{@var{key.ssh}}. This is to ease debugging non installed style sheets. @end defvr @defvr {Option} -@b{-}strip-level=@var{num} Depending on the value of @var{num}: @table @samp @item 0 everything is printed; @item 1 regular comments are not printed @item 2 strong comments are not printed @item 3 no comment is printed. @end table This option is valuable for instance in @code{java} in which case strong comments are the so called documentation comments, or in @code{SDL} for which some graphical editors pollutes the specification with internal data as comments. Note that the current implementation is not satisfactory: some undesired blank lines remain. This is planed to be fixed. @end defvr @node Output Options @subsection Output Options These are the options to specify what you want to do out of what @pack{} produces. Only a single destination is possible at a time, i.e., if ever there are several options @samp{-o}, @samp{-P} or @samp{-d}, the last one is honored. @defvr {Option} -o @var{file} @defvrx {Option} -@b{-}output=@var{file} leave output to file @var{file}. If @var{file} is @samp{-}, leave output to the standard output. @end defvr @defvr {Option} -@b{-}version-control=@var{type} to avoid loosing a file, @pack{} offers backup services. This is enabled when the output file already exists, is regular (that is, no backup is done on special files such as @file{/dev/null}), and is writable (in this case, disabling version control makes @pack{} fail the very same way as if version control was disabled: permission denied). The type of backups made can be set with the @code{VERSION_CONTROL} environment variable, which can be overridden by this option. If @code{VERSION_CONTROL} is not set and this option is not given, the default backup type is `existing'. The value of the @code{VERSION_CONTROL} environment variable and the argument to this option are like the GNU @code{Emacs} @samp{version-control} variable; they also recognize synonyms that are more descriptive. The valid values are (unique abbreviations are accepted): @table @samp @item none @itemx off Never make backups (override existing files). @item t @itemx numbered Always make numbered backups. @item nil @itemx existing Make numbered backups of files that already have them, simple backups of the others. @item never @itemx simple Always make simple backups. @end table @end defvr @defvr {Option} -@b{-}suffix=@var{suffix} The suffix used for making simple backup files can be set with the @code{SIMPLE_BACKUP_SUFFIX} environment variable, which can be overridden by this option. If neither of those is given, the default is @samp{~}, as it is in @code{Emacs}. @end defvr @defvr {Option} -P @var{name} @defvrx {Option} -@b{-}printer=@var{name} @vindex lp.options send output to printer @var{name}. See item @samp{Printer:} and @samp{Unknown printer:} in @ref{Your Printers} and results of option @samp{--list=defaults} to see the bindings between printer names and commands. It is possible to pass additional options to @code{lpr} or @code{lp} via the variable @samp{lp.options}, for more information see @ref{Pass Options to lpr}. @end defvr @defvr {Option} -d send output to the default printer. See item @samp{DefaultPrinter:} in @ref{Your Printers}. @end defvr @node PostScript Options @subsection PostScript Options The following options are related only to variations you want to produce onto a PostScript output. @defvr {Option} -@b{-}ppd[=@var{key}] With no argument, set automatic PPD selection, otherwise set the PPD to @var{key}. FIXME: what to read. @end defvr @defvr {Option} -n @var{num} @defvrx {Option} -@b{-}copies=@var{num} print @var{num} copies of each page @end defvr @defvr {Option} -s @var{duplex-mode} @defvrx {Option} -@b{-}sides=@var{duplex-mode} @cindex Duplex Specify the number of sheet sides, or, more generally, the Duplex mode (@pxref{Glossary}). The valid values for @var{duplex-mode} are: @table @samp @item 1 @itemx simplex One page per sheet. @item 2 @itemx duplex Two pages per sheet, DuplexNoTumble mode. @item tumble Two pages per sheet, DuplexTumble mode. @end table Not only does this option require Duplex from the printer, but it also enables duplex features from @pack{} (e.g., the margin changes from front pages to back pages etc.). @end defvr @defvr {Option} -S @var{key}[:@var{value}] @defvrx {Option} -@b{-}setpagedevice=@var{key}[:@var{value}] @cindex @code{setpagedevice} @cindex Page device Pass a page device definition to the generated PostScript output. If no @var{value} is given, @var{key} is removed from the definitions. Note that several @samp{--setpagedevice} can be accumulated. For example, command @example ubu $ a2ps -SDuplex:true -STumble:true NEWS [NEWS (plain): 15 pages on 8 sheets] [Total: 15 pages on 8 sheets] sent to the default printer @end example @noindent prints file @file{report.pre} in duplex (two sides) tumble (suitable for landscape documents). This is also valid for delegated files: @example a2ps -SDuplex:true -STumble:true a2ps.texi @end example Page device operators are implementation dependent but they are standardized. @xref{Page Device Options}, for details. @end defvr @defvr {Option} -@b{-}statusdict=@var{key}[:@var{value}] @defvrx {Option} -@b{-}statusdict=@var{key}[::@var{value}] @cindex @code{statusdict} Pass a statusdict definition to the generated PostScript output. @code{statusdict} operators and variables are implementation dependent; see the documentation of your printer for details. @xref{Statusdict Options}, for details. Several @samp{--statusdict} can be accumulated. If no @var{value} is given, @var{key} is removed from the definitions. With a single colon, pass a call to an operator, for instance: @example a2ps --statusdict=setpapertray:1 quicksort.c @end example @noindent prints file @file{quicksort.c} by using paper from the paper tray 1 (assuming that printer supports paper tray selection). With two colons, define variable @var{key} to equal @var{value}. For instance: @example a2ps --statusdict=papertray::1 quicksort.c @end example @noindent produces @example /papertray 1 def @end example @noindent in the PostScript. @end defvr @defvr {Option} -k @defvrx {Option} -@b{-}page-prefeed @cindex Page prefeed enable page prefeeding. It consists in positioning the sheet in the printing area while the PostScript is interpreted (instead of waiting the end of the interpretation of the page before pushing the sheet). It can lead to an significant speed up of the printing. @pack{} quotes the access to that feature, so that non supporting printers won't fail. @end defvr @defvr {Option} -K @defvrx {Option} -@b{-}no-page-prefeed disable page prefeeding. @end defvr @node Escapes @section Escapes @cindex Escapes The escapes are some sequences of characters that will be replaced by their values. They are very much like variables. @menu * Use of Escapes:: Where they are used * Structure of the Escapes:: Their syntax * Available Escapes:: Detailed list @end menu @node Use of Escapes @subsection Use of Escapes They are used in several places in @pack{}: @table @emph @item Page markers Headers, footers, titles and the water mark (@pxref{Headings Options}), in general to print the name of file, page number etc. On a new sheet @pack{} first draws the water mark, then the content of the first page, then the frame of the first page, (ditto with the others), and finally the sheet header and footers. This order must be taken into account for some escapes (e.g., @samp{$l.}, @samp{$l^}). @item Named output To specify the generic name of the file to produce, or how to access a printer (@pxref{Your Printers}). @item Delegation To specify the command associated to a delegation (@pxref{Your Delegations}). @item Table of Content To specify an index/table of content printed at the end of the job. @item Variables in PostScript prologue To allow the user to change some parameters to your prologues (@pxref{Designing PostScript Prologues}). @end table @node Structure of the Escapes @subsection General Structure of the Escapes All format directives can also be given in format @var{escape} @var{width} @var{directive} @noindent where @table @var @item escape In general @table @samp @item % escapes are related to general information (e.g., the current date, the user's name etc.), @item # escapes are related to the output (e.g., the output file name) or to the options you gave (e.g., the number of virtual pages etc.), or to special constructions (e.g., enumerations of the files, or tests etc.), @item $ escapes are related to the current input file (e.g., its name, its current page number etc.), @item \ introduces classical escaping, or quoting, sequences (e.g., @samp{\n}, @samp{\f} etc.). @end table @item width Specifies the width of the column to which the escape is printed. There are three forms for @var{width} @table @samp @item +@var{padding}@var{integer} the result of the expansion is prefixed by the character @var{padding} so that the whole result is as long as @var{integer}. For instance @samp{$+.10n} with a file name @samp{$n}=@file{foo.c} gives @samp{.....foo.c}. If no @var{padding} is given, @samp{ } (white space) is used. @item -@var{padding}@var{integer} Idem as above, except that completion is done on the left: @samp{$+.10n} gives @samp{foo.c.....}. @item @var{integer} which is a short cut for @samp{+@var{integer}}. For example, escape @samp{$5P} will expand to something like @samp{@ @ @ 12}. @end table @item directive @xref{Available Escapes}. @end table @node Available Escapes @subsection Available Escapes Supported escapes are: @table @samp @item \\ character @samp{\} @item \% character @samp{%} @item \$ character @samp{$} @item \# character @samp{#} @item #?@var{cond}|@var{if_true}|@var{if_false}| this may be used for conditional assignment. The separator (presented here as @samp{|}) may be any character. @var{if_true} and @var{if_false} may be defined exactly the same way as regular headers, included escapes and the @samp{#?} construct. The available tests are: @table @samp @item #?1 @itemx #?2 @itemx #?3 true if tag 1, 2 or 3 is not empty. See item @samp{$t1} for explanation. @item #?d true if Duplex printing is requested (@samp{-s2}). @item #?j true if bordering is asked (@samp{-j}). @item #?l true if printing in landscape mode. @item #?o true if only one virtual page per page (i.e., @samp{#v} is 1). @item #?p a page range has been specified (i.e., @samp{#p} is not empty). @item #?q true if @pack{} is in quiet mode. @item #?r true if major is rows (@samp{--major=rows}). @item #?v true if printing on the back side of the sheet (verso). @item #?V true if verbosity level includes the @samp{tools} flag (@xref{Global Options}. option @samp{--verbosity}). @end table @item #!@var{key}|@var{in}|@var{between}| Used for enumerations. The separator (presented here as @samp{|}) may be any character. @var{in} and @var{between} are escapes. The enumerations may be: @table @samp @item #!$ enumeration of the command line options. In this case @var{in} in never used, but is replaced by the arguments. @item #!f enumeration of the input files in the other they were given. @item #!F enumeration of the input files in the alphabetical order of their names. @item #!s enumeration of the files appearing in the current sheet. @end table For instance, the escapes @samp{The files printed were: #!f|$n|, |.} evaluated with input @samp{a2ps NEWS main.c -o foo.ps}, gives @samp{The files printed were: NEWS, main.c.}. As an exception, @samp{#!} escapes use the @var{width} as the maximum number of objects to enumerate if it is positive, e.g., @samp{#10!f|$n|, |} lists only the ten first file names. If @var{width} is negative, then it does not enumerate the -@var{width} last objects (e.g., @samp{#-1!f|$n|, |} lists all the files but the last). @item $@{@var{var}@} value of the environment variable @var{var} if defined, nothing otherwise. @item $@{@var{var}:-@var{word}@} if the environment variable @var{var} is defined, then its value, otherwise @var{word}. @item $@{@var{var}:+@var{word}@} if the environment variable @var{var} is defined, then @var{word}, otherwise nothing. @item $[@var{num}] value of the @var{num}th argument given on the command line. Note that $[0] is the name under which @pack{} has been called. @item #@{@var{key}@} expansion of the value of the variable @var{key} if defined, nothing otherwise (@pxref{Your Variables}) @item #@{@var{key}:-@var{word}@} if the variable @var{var} is defined, then the expansion of its, otherwise @var{word}. @item #@{@var{key}:+@var{word}@} if the variable @var{var} is defined, then @var{word}, otherwise nothing. @item #. the extension corresponding to the current output language (e.g. @samp{ps}). @item %* current time in 24-hour format with seconds @samp{hh:mm:ss} @item $* file modification time in 24-hour format with seconds @samp{hh:mm:ss} @item $# the sequence number of the current input file @item %# the total number of files @item %a the localized equivalent for @samp{Printed by @var{User Name}}. @var{User Name} is obtained from the variable @samp{user.name} (@pxref{Predefined Variables}). @item %A the localized equivalent for @samp{Printed by @var{User Name} from @var{Host Name}}. The variables @samp{user.name} and @samp{user.host} are used (@pxref{Predefined Variables}). @item %c trailing component of the current working directory @item %C current time in @samp{hh:mm:ss} format @item $C file modification time in @samp{hh:mm:ss} format @item %d current working directory @item $d directory part of the current file (@samp{.} if the directory part is empty). @item %D current date in @samp{yy-mm-dd} format @item $D file modification date in @samp{yy-mm-dd} format @item %D@{@var{string}@} format current date according to @var{string} with the @code{strftime(3)} function. @item $D@{@var{string}@} format file's last modification date according to @var{string} with the @code{strftime(3)} function. @item %e current date in localized short format (e.g., @samp{Jul 4, 76} in English, or @samp{14 Juil 89} in French). @item $e file modification date in localized short format. @item %E current date in localized long format (e.g., @samp{July 4, 76} in English, or @samp{Samedi 14 Juillet 89} in French). @item $E file modification date in localized long format. @item $f full file name (with directory and suffix). @item \f character @samp{\f} (@code{form feed}). @item #f0 @itemx #f9 ten temporary file names. You can do anything you want with them, @pack{} removes them at the end of the job. It is useful for the delegations (@pxref{Your Delegations}) and for the printer commands (@pxref{Your Printers}). @item %F current date in @samp{dd.mm.yyyy} format. @item $F file modification date in @samp{dd.mm.yyyy} format. @c @item %H @c document title @item #h medium height in PostScript points @item $l^ top most line number of the current page @item $l. current line number. To print the page number and the line interval in the right title, use @samp{--right-title="$q:$l^-$l."}. @item $l# number of lines in the current file. @item %m the host name up to the first @samp{.} character @item %M the full host name @item \n the character @samp{\n} (@code{new line}). @item %n shortcut for the value of the variable @samp{user.login} (@pxref{Predefined Variables}). @item $n input file name without the directory part. @item %N shortcut for the value of the variable @samp{user.name} (@pxref{Predefined Variables}). @item $N input file name without the directory, and without its suffix (e.g., on @file{foo.c}, it will produce @samp{foo}). @item #o name of the output, before substitution (i.e., argument of @samp{-P}, or of @samp{-o}). @item #O name of the output, after substitution. If output goes to a file, then the name of the file. If the output is a symbolic printer (@pxref{Your Printers}), the result of the evaluation. For instance, if the symbolic printer @samp{file} is defined as @samp{> $n.%.}, then @samp{#O} returns @samp{foo.c.ps} when printing @file{foo.c} to PostScript. @samp{#o} would have returned @samp{file}. @item #p the range of the page to print from this page. For instance if the user asked @samp{--pages=1-10,15}, and the current page is 8, then @samp{#p} evaluates to @samp{1-3,8}. @item $p^ number of the first page of this file appearing on the current sheet. Note that @samp{$p.}, evaluated at the end of sheet, is also the number of the last page of this file appearing on this sheet. @item $p- interval of the page number of the current file appearing on the current sheet. It is the same as @samp{$p^-$p.}, if @samp{$p^} and @samp{$p.} are different, otherwise it is equal to @samp{$p.}. @item %p. current page number @item $p. page number for this file @item %p# total number of pages printed @item $p# number of pages of the current file @item $p< number of the first page of the current file @item $p> number of the last page of the current file @item %q localized equivalent for @samp{Page %p.} @item $q localized equivalent for @samp{Page $p.} @item %Q localized equivalent for @samp{Page %p./%p#} @item $Q localized equivalent for @samp{Page $p./$p#} @item $s< number of the first sheet of the current file @item %s. current sheet number @item $s. sheet number for the current file @item $s> number of the last sheet of the current file @item %s# total number of sheets @item $s# number of sheets of the current file @item %t current time in 12-hour am/pm format @item $t file modification time in 12-hour am/pm format @item $t1 @itemx $t2 @itemx $t3 Content of tag 1, 2 and 3. Tags are pieces of text @pack{} fetches in the files, according to the style. For instance, in @code{mail-folder} style, tag 1 is the title of the mail, and tag 2 its author. @item %T current time in 24-hour format @samp{hh:mm} @item $T file modification time in 24-hour format @samp{hh:mm} @item #v number of virtual sheets @item %V the version string of @pack{}. @item #w medium width in PostScript points @item %W current date in @samp{mm/dd/yy} format @item $W file modification date in @samp{mm/dd/yy} format @end table @c ##### ####### @c # # #### # # ###### # #### # # # ###### #### @c # # # ## # # # # # # # # # # @c # # # # # # ##### # # ##### # # ##### #### @c # # # # # # # # # ### # # # # # @c # # # # # ## # # # # # # # # # # @c ##### #### # # # # #### # # ###### ###### #### @node Configuration Files @chapter Configuration Files @cindex Configuration Files @cindex @file{.a2ps} @cindex @file{a2psrc} @cindex @file{a2ps.cfg} @cindex @file{a2ps-site.cfg} @pack{} reads several files before the command line options. In order, they are: @enumerate @item @cindex @samp{A2PS_CONFIG} the system configuration file (typically @file{/usr/local/etc/a2ps.cfg}) unless you have defined the environment variable @samp{A2PS_CONFIG}, in which case @pack{} reads the file it points to; @item the user's home configuration file (@file{$HOME/.a2ps/a2psrc}) @item the local file (@file{./.a2psrc}) @end enumerate Because @pack{} needs architecture dependent information (such as the local @code{lpr} command) and architecture independent information (such as the type of your printers), users have found useful that @file{a2ps.cfg} be dedicated to architecture dependent information. A sub configuration file, @file{a2ps-site.cfg} (@pxref{Including Configuration Files}) is included from @file{a2ps.cfg}. The file @file{a2ps.cfg} is updated when you update @pack{}, while @file{a2ps-site.cfg} is not, to preserve local definitions. In the configuration files, empty lines and lines starting with @samp{#} are comments. The other lines have all the following form: @example @var{Topic:} @var{Arguments} @end example @noindent where @var{Topic:} is a keyword related to what you are customizing, and @var{Arguments} the customization. @var{Arguments} may be spread on several lines, provided that the last character of a line to continue is a @samp{\}. In the following sections, each @var{Topic:} is detailed. @menu * Including Configuration Files:: Isolating site specific values * Your Library Path:: Setting the files search path * Your Default Options:: Default state of a2ps * Your Media:: Sheets dimensions * Your Printers:: How to access the printers * Your Shortcuts:: Your very own command line options * Your PostScript magic number:: Handling very old printers * Your Page Labels:: Page names as in @code{Ghostview} * Your Variables:: Short cut for long sequences * Your Delegations:: Delegating some files to other filters * Your Internal Details:: Details you might want to tune @end menu @node Including Configuration Files @section Including Configuration Files @defvr {Configuration Setting} Include: @var{file} @cindex @samp{Include:} Include (read) the configuration @var{file}. if @var{file} is a relative path (i.e., it does not start with @samp{/}), then it is relatively to the current configuration file. @end defvr This is especially useful for the site specific configuration file @file{etc/a2ps.cfg}: you may tune your printers etc. in a separate file for easy upgrade of @pack{} (and hence of its configuration files). @node Your Library Path @section Your Library Path To define the default library path, you can use: @defvr {Configuration Setting} LibraryPath: @var{path} @cindex @samp{LibraryPath:} Set the library path the @var{path}. @end defvr @defvr {Configuration Setting} AppendLibraryPath: @var{path} @cindex @samp{AppendLibraryPath:} Add @var{path} at the end of the current library path. @end defvr @defvr {Configuration Setting} PrependLibraryPath: @var{path} @cindex @samp{PrependLibraryPath:} Add @var{path} at the beginning of the current library path. @end defvr Note that for users configuration files, it is better not to set the library path, because the system's configuration has certainly been built to cope with your system's peculiarities. Use @samp{AppendLibraryPath:} and @samp{PrependLibraryPath:}. @node Your Default Options @section Your Default Options @defvr {Configuration Setting} Options: @var{options+} @cindex @samp{Options:} Give @pack{} a list of command line options. @var{options+} is any sequence of regular command line options (@pxref{Invoking a2ps}). It is the correct way to define the default behavior you expect from @pack{}. If for instance you want to use @code{Letter} as medium, then use: @example Options: --medium=Letter @end example @noindent It is exactly the same as always giving @pack{} the option @samp{--medium=Letter} at run time. @end defvr The quoting mechanism is the same as that of a shell. For instance @example Options: --right-title="Page $p" --center-title="Hello World!" Options: --title="arg 'Jack said \\\"hi\\\"' has double quotes" @end example @node Your Media @section Your Media @defvr {Configuration Setting} Medium: @var{name} @var{dimensions} @cindex @samp{Medium:} Define the medium @var{name} to have the @var{dimensions} (in PostScript points, i.e., 1/72 of inch). There are two formats supported: @table @asis @item long in which you must give both the size of the whole sheet, and the size of the printable area: @example # A4 for HP DeskJets # @var{name} @var{w} @var{h} @var{llx} @var{lly} @var{urx} @var{ury} Medium: A4dj 595 842 24 50 571 818 @end example @noindent where @var{w}x@var{h} are the dimension of the sheet, and the four other stand for lower left x and y, upper right x and y. @item short in which a surrounding margin of 24 points is used @example # A4 # @var{name} @var{w} @var{h} Medium: A4 595 842 @end example @noindent is the same as @example # A4 # @var{name} @var{w} @var{h} Medium: A4 595 842 24 24 571 818 @end example @end table @end defvr @node Your Printers @section Your Printers A general scheme is used, so that whatever the way you should address the printers on your system, the interface is still the same. Actually, the interface is so flexible, that you should understand `named destination' when we write `printer'. @defvr {Configuration Setting} Printer: @var{name} @var{PPD-key} @var{destination} @defvrx {Configuration Setting} Printer: @var{name} @var{destination} @defvrx {Configuration Setting} Printer: @var{name} @var{PPD-key} @cindex @samp{Printer:} Specify the destination of the output when the option @samp{-P @var{name}} is given. If @var{PPD-key} is given, declare the printer @var{name} to be described by the PPD file @file{@var{PPD-key}.ppd}. If @var{destination} is not given, used that of the @samp{UnknownPrinter:}. The @var{destination} must be of one of the following forms: @table @samp @item | @var{command} in which case the output is piped into @var{command}. @item > @var{file} in which case the output is saved into @var{file}. @end table @end defvr @defvr {Configuration Setting} UnknownPrinter: [@var{PPD-key}] @var{destination} @cindex @samp{UnknownPrinter:} Specify the destination of the output when when the option @samp{-P @var{name}} is given, but there is no @samp{Printer:} entry for @var{name}. @end defvr @defvr {Configuration Setting} DefaultPrinter: [@var{PPD-key}] @var{destination} @cindex @samp{DefaultPrinter:} Specify the destination of the output when when the option @samp{-d} (send to default output) is given. @end defvr Escapes expansion is performed on @var{destination} (@pxref{Escapes}). Recall that @samp{#o} is evaluated to the destination name, i.e., the argument given to @samp{-P}. For instance @example # My Default Printer is called dominique DefaultPrinter: | lp -d dominique # `a2ps foo.c -P bar' will pipe into `lp -d bar' UnknownPrinter: | lp -d #o # `a2ps -P foo' saves into the file `foo' Printer: foo > foo.ps Printer: wc | wc Printer: lw | lp -d printer-with-a-rather-big-name # E.g. `a2ps foo.c bar.h -P file' will save into `foo.c.ps' Printer: file > $n.#. # E.g. `a2ps foo.c bar.h -P home' will save into `foo.ps' # in user's home Printer: home > $@{HOME@}/$N.#. @end example @node Your Shortcuts @section Your Shortcuts @cindex @samp{:} You can define some kind of `Macro Options' which stand for a set of options. @defvr {Configuration Setting} UserOption: @var{shortcut} @var{options...} @cindex @samp{UserOption:} Define the @var{shortcut} to be the list of @var{options...}. When @pack{} is called with @samp{-=@var{shortcut}} (or @samp{--user-option=@var{shortcut}}), consider the list of @var{options...}. @end defvr Examples are @example # This emulates a line printer: no features at all # call a2ps -=lp to use it UserOption: lp -1m --pretty-print=plain -B --borders=no # When printing mail, I want to use the right style sheet with strong # highlight level, and stripping `useless' headers. UserOption: mail -Email -g --strip=1 @end example @node Your PostScript magic number @section Your PostScript magic number @cindex @samp{OutputFirstLine:} @cindex @samp{%!} @pack{} produces full DSC conformant PostScript (@pxref{Glossary}). Adobe said @quotation Thou shalt start your PostScript DSC conformant files with @example %!PS-Adobe-3.0 @end example @end quotation The bad news is that some printers will reject this header. Then you may change this header without any worry since the PostScript produced by @pack{} is also 100% PostScript level 1@footnote{That is to say, there are no PostScript printers that don't understand these files.}. @defvr {Configuration Setting} OutputFirstLine: @var{magic-number} @cindex @samp{OutputFirstLine:} Specify the header of the produced PostScript file to be @var{magic-number}. Typical values include @samp{%!PS-Adobe-2.0}, or just @samp{%!}. @end defvr @node Your Page Labels @section Your Page Labels In the PostScript file is dropped information on where sheets begin and end, so that post processing tools know where is the physical page 1, 2 etc. With this information can be also stored a label, i.e., a human readable text (typically the logical page numbers), which is for instance what @code{Ghostview} shows as the list of page numbers. @pack{} lets you define what you want in this field. @defvr {Configuration Setting} PageLabelFormat: @var{format} @cindex @samp{PageLabelFormat:} Specify the @var{format} to use to label the PostScript pages. @var{format} can use Escapes (@pxref{Escapes}). Two variables are predefined for this: @samp{#@{pl.short@}} and @samp{#@{pl.long@}}. @end defvr @node Your Variables @section Your Variables @cindex Escape @cindex Variable There are many places in @pack{} where one would like to have uniform way of extending things. It once became clear that @dfn{variables} where needed in @pack{}. @menu * Defining Variables:: Syntax and conventions * Predefined Variables:: Builtin variables @end menu @node Defining Variables @subsection Defining Variables @defvr {Configuration Setting} Variable: @var{key} @var{value} @cindex @samp{Variable:} Define the escape @samp{#@{@var{key}@}} to be a short cut for @var{value}. @var{key} must not have any character from @samp{:()@{@}}. @end defvr As as example, here is a variable for @code{psnup}, which encloses all the option passing one would like. Delegations are then easier to write: @example Variable: psnup psnup -#v -q #?j|-d|| #?r||-c| -w#w -h#h @end example It is strongly suggested to follow a @samp{.} (dot) separated hierarchy, starting with: @table @samp @item del for variables that are related to delegations. @item pro for variables used in prologues (@pxref{Designing PostScript Prologues}). Please, specify the name of the prologue (e.g., @samp{pro.matrix.gray}). @item ps for variables related to PostScript matters, such as the page label (which is associated to @code{ps.page_label}), the header etc. @item pl for page label formats. @xref{Your Page Labels}, the option @samp{--page-label} in @ref{Input Options}. @item toc for toc formats. See the option @samp{--toc} in @ref{Input Options}. @item user for user related information. @xref{Predefined Variables}. @end table This naming convention has not fully stabilized. We apologize for the inconvenience this might cause to users. @node Predefined Variables @subsection Predefined Variables @cindex Predefined Variables @cindex Variables, predefined There are a few predefined variables. The fact that @pack{} builds them at startup changes nothing to their status: they can be modified like any other variable using @code{--define} (@pxref{Global Options}). In what follows, there are numbers (i) like this, or (ii) this. It means that @pack{} first tries the solution (i), if a result is obtained (non empty value), this is the value given to the variable. Otherwise it tries solution (ii), etc. The rationale behind the order is usually from user modifiable values (e.g. environment variables) through system's hard coded values (e.g., calls to @code{getpwuid}) and finally arbitrary values. @table @samp @item user.comments Comments on the user. Computed by (i) the system's database (the part of @code{pw_gecos} after the first @samp{,}), (ii) not defined. @item user.home The user's home directory. Determined by (i) the environment variable @code{HOME}, (ii) the system's database (using @code{getpwuid}), (iii) the empty string. @item user.host The user's host name. Assigned from (i) the system (@code{gethostname} or @code{uname}), (ii) the empty string. @item user.login The user's login (e.g. @samp{bgates}). Computed by (i) the environment variable @code{LOGNAME}, (ii) the environment variable @code{USERNAME}, (iii) the system's database (using @code{getpwuid}), (iv) the translated string @samp{user}. @item user.name The user's name (e.g. @samp{William Gates}). Computed by (i) the system's database (@code{pw_gecos} up to the first @samp{,}), (ii) capitalized value of the variable @samp{user.login} unless it was the translated string @samp{user}, (iii) the translated string @samp{Unknown User}. @end table @node Your Delegations @section Your Delegations @cindex Delegations There are some files you don't really want @pack{} to pretty-print, typically page description files (e.g., PostScript files, @code{roff} files, etc.). You can let @pack{} delegate the treatment of these files to other applications. The behavior at run time depends upon the option @samp{--delegate} (@pxref{Input Options}). @menu * Defining a Delegation:: Syntax of the definitions of the delegations * Guide Line for Delegations:: What should be respected * Predefined Delegations:: Making the best use of these delegations @end menu @node Defining a Delegation @subsection Defining a Delegation @defvr {Configuration Setting} Delegation: @var{name} @var{in}:@var{out} @var{command} @cindex @samp{Delegation:} Define the delegation @var{name}. It is to be applied upon files of type @var{in} when output type is @var{out}@footnote{Current @code{a2ps} only handles PostScript output, i.e. @var{out}=@samp{ps}} thanks to @var{command}. Both @var{in} and @var{out} are @pack{} type keys such as defined in @file{sheets.map} (@pxref{The Entry in sheets.map}). @end defvr @var{command} should produce the file on its standard output. Of course escapes substitution is performed on @var{command} (@pxref{Escapes}). In particular, @var{command} should use the input file @samp{$f}. @example # In general, people don't want to pretty-print PostScript files. # Pass the PostScript files to psnup Delegation: PsNup ps:ps \ psselect #?V||-q| -p#?p|#p|-| $f | \ psnup -#v -q #?j|-d|| #?r||-c| -w#w -h#h @end example Advantage should be taken from the variables, to encapsulate the peculiarities of the various programs. @example # Passes the options to psnup. # The files (in and out) are to be given Variable: psnup psnup -#v #?V||-q| #?j|-d|| #?r||-c| -w#w -h#h # Passes to psselect for PS page selection Variable: psselect psselect #?V||-q| -p#?p|#p|-| # In general, people don't want to pretty-print PostScript files. # Pass the PostScript files to psnup Delegation: PsNup ps:ps #@{psselect@} $f | #@{psnup@} @end example Temporary file names (@samp{#f0} to @samp{#f9}) are available for complex commands. @example # Pass DVI files to dvips. # A problem with dvips is that even on failure it dumps its prologue, # hence it looks like a success (output is produced). # To avoid that, we use an auxiliary file and a conditional call to # psnup instead of piping. Delegation: dvips dvi:ps #@{dvips@} $f -o #f0 && #@{psnup@} #f0 @end example @node Guide Line for Delegations @subsection Guide Line for Delegations First of all, select carefully the applications you will use for the delegations. If a filter is known to cause problems, try to avoid it in delegations@footnote{Because hiding its use into @code{a2ps} just makes it even more difficult to the users to know why it failed. Let them use it by hand.}. As a thumb rule, you should check that the PostScript generating applications produce files that start by: @example %!PS-Adobe-3.0 @end example @pack{} @strong{needs} the @samp{%%BeginSetup}-@samp{%%EndSetup} section in order to output correctly the page device definitions. It can happen that your filters don't output this section. In that case, you should insert a call to @code{fixps} right after the PostScript generation: @example ########## ROFF files # Pass the roff files to groff. Ask grog how groff should be called. # Use fixps to ensure there is a %%BeginSetup/%%EndSetup section. Delegation: Groff roff:ps \ eval `grog -Tps '$f'` | fixps #?V!!-q! | #@{d.psselect@} | #@{d.psnup@} @end example There are some services expected from the delegations. The delegations you may write should honor: @table @asis @item the input file available via the escape @samp{$f}. You should be aware that there are people who have great fun having spaces or dollars in their file names, so you probably should always use @samp{'$f'}. Some other variables are affected. Yes, I know, we need a special mechanism for @samp{'} itself. Well, we'll see that later @samp{;-)}. @item the medium the dimension of the medium selected by the user are available through @samp{#w} and @samp{#h}. @item the page layout the number of virtual pages is @samp{#v}. @item the page range the page range (in a form @samp{1-2,4-6,10-} for instance) is available by @samp{#p}. @item the verbosity level please, do not make your delegations verbose by default. The silent mode should always be requested, unless @samp{#?V} is set (see the above example with @code{groff}). @end table If ever you need several commands, do not use @samp{;} to separate them, since it may prevent detection of failure. Use @samp{&&} instead. The slogan "@emph{the sooner, the better}" should be applied here: in the processing chain, it is better to ask a service to the first application that supports it. An example will make it clear: when processing a @code{DVI} file, @code{dvips} knows better the page numbers than @code{psselect} would. So a @code{DVI} to PostScript delegation should ask the page selection (@samp{#p}) to @code{dvips}, instead of using @code{psselect} later in the chain. An other obvious reason here is plain efficiency (globally, less data is processed). @node Predefined Delegations @subsection Predefined Delegations The purpose of this section is not to document all the predefined delegations, for this you should read the comments in the system configuration file @file{a2ps.cfg}. We just want to explain some choices, and give hints on how to make the best use of these delegations. @defvr {Delegation} dvips (DVI to PostScript) There is a problem when you use a naive implementation of this delegation: landscape jobs are not recognized, and therefore n-upping generally fails miserably. Therefore, @pack{} tries to guess if the file is landscape by looking for the keyword @samp{landscape} in it, using @code{strings(1)}: @example Delegation: dvips dvi:ps\ if strings $f | sed 3q | grep -F landscape > /dev/null 2>&1; then \ #@{d.dvips@} -T#hpt,#wpt $f -o #f0 && #?o|cat|#@{d.psnup@} -r| #f0;\ else \ #@{d.dvips@} $f -o #f0 && #@{d.psnup@} #f0; \ fi @end example In order to have that rule work correctly, it is expected from the @TeX{}, or @LaTeX{} file to include something like: @example \renewcommand@{\printlandscape@}@{\special@{landscape@}@} \printlandscape @end example @noindent in the preamble. We don't use a pipe because dvips always outputs data (its prologue) even if it fails, what prevents error detection. @end defvr @defvr {Delegation} LaTeX (@LaTeX{} to DVI) We use a modern version of the shell script @code{texi2dvi}, from the package @code{Texinfo}, which runs @code{makeindex}, @code{bibtex} and @code{latex} as many times as needed. You should be aware that if the file includes files from @strong{other} directories, it may miss some compilation steps. Other cases (most typical) are well handled. @end defvr @node Your Internal Details @section Your Internal Details There are settings that only meant for @pack{} that you can tune by yourself. @defvr {Configuration Setting} FileCommand: @var{command} @cindex @samp{TemporaryDirectory:} The command to run to call @code{file(1)} on a file. If possible, make it follow the symbolic links. @end defvr @c # ####### @c # # ##### # # # ###### #### @c # # # # # # # # # @c # # ##### ##### # # ##### #### @c # # # # # # # # # @c # # # # # # # # # # @c ####### # ##### # # ###### ###### #### @node Library Files @chapter Library Files @cindex Library files To be general and to allow as much customization as possible, @pack{} avoids to hard code its knowledge (encodings, PostScript routines, etc.), and tries to split it in various files. Hence it needs a path, i.e., a list of directories, in which it may find the files it needs. The exact value of this library path is available by @samp{a2ps --list=defaults}. Typically its value is: @example @cartouche gargantua ~ $ a2ps --list=defaults Configuration status of a2ps @value{VERSION} @emph{More stuff deleted here} Internals: verbosity level = 2 file command = /usr/ucb/file -L temporary directory = library path = /inf/soft/infthes/demaille/.a2ps /usr/local/share/a2ps/sheets /usr/local/share/a2ps/ps /usr/local/share/a2ps/encoding /usr/local/share/a2ps/afm /usr/local/share/a2ps/printers /usr/local/share/a2ps @end cartouche @end example You may change this default path through the configuration files (@pxref{Your Library Path}). If you plan to define yourself some files for @pack{}, they should be in one of those directories. @menu * Documentation Format:: Special tags to write a documentation * Map Files:: Their general shape and rationale * Font Files:: Using other fonts * Style Sheet Files:: Defining pretty printing rules @end menu @node Documentation Format @section Documentation Format In various places a documentation can be given. Since some parts of this document and of web pages are extracted from documentations, some tags are needed to provide a better layout. The format is a mixture made out of Texinfo like commands, but built so that quick and easy processing can be made. These tags are: @table @asis @item @samp{code(}@var{text}@samp{)code} Typeset @var{text} like a piece of code. This should be used for keys, variables, options etc. For instance the documentation of the @code{bold} prologue mentions the @code{bw} prologue: @example Documentation This style is meant to replace the old option code(-b)code of a2ps 4.3. It is a copy of the black and white prologue, but in which all the fonts are in Bold. EndDocumentation @end example @item @samp{href(}@var{link}@samp{)href(}@var{text}@samp{)href} Specifies a hyper text @var{link} displayed as @var{text}. @item @samp{@@example} @itemx @samp{@@end example} They must be alone on the line. The text between these tags is displayed in a code-like fonts. This should be used for including a piece of code. For instance, in the documentation of the @code{gnuc} style sheet: @example documentation is "Declaration of functions are highlighted" "emph(only)emph if you start the function name" "in the first column, and it is followed by an" "opening parenthesis. In other words, if you" "write" "@@example" "int main (void)" "@@end example" "it won't work. Write:" "@@example" "int" "main (void)" "@@end example" end documentation @end example @item @samp{@@itemize} @itemx @samp{@@item} @var{text} @itemx @samp{@@end itemize} Typeset a list of items. The opening and closing tags must be alone on the line. @end table @node Map Files @section Map Files @cindex Map files @cindex .map Many things are defined through files. There is a general scheme to associate an object to the files to use: map files. They are typically used to: @itemize @minus @item resolve aliases. For instance the ISO-8859-1 encoding is also called ISO Latin 1, or Latin 1 for short. The @file{encoding.map} file will map these three names to the same Encoding Description File. @item cope with broken files systems. For instance, the-one-you-know-I-don't-need-to-name cannot handle files named @file{Courier-BoldOblique.afm}: it is the same as @file{Courier-Bold.afm}. The @file{fonts.map} file is here to associate a font file name to a font name. @end itemize The syntax of these files is: @itemize @minus @item any empty line, or any line starting by a @samp{#} is a comment. @item a line with the format @example @code{***} @var{path} @end example @noindent requests that the file designated by @var{path} be included at this point. @item any other line has the format @example @var{key} @var{value} @end example @noindent meaning that when looking for @var{key} (e.g., name of a font, an encoding etc.), @pack{} should use @var{value} (e.g., font file name, encoding description file name etc.). @end itemize The map files used in @pack{} are: @table @file @item encoding.map Resolving encodings aliases. @item fonts.map Mapping font names to font file names. @item sheets.map Rules to decide what style sheet to use. @end table @node Font Files @section Font Files Even when a PostScript printer knows the fonts you want to use, using these fonts requires some description files. @menu * Fonts Map File:: Mapping a font name to a file name * Fonts Description Files:: Needed files to use a Font * Adding More Font Support:: Using even more Fonts @end menu @node Fonts Map File @subsection Fonts Map File @xref{Map Files}, for a description of the map files. This file associates the @var{font-key} to a @var{font} name. For instance: @example Courier pcrr Courier-Bold pcrb Courier-BoldOblique pcrbo Courier-Oblique pcrro @end example @noindent associates to font named @code{Courier}, the key @code{pcrr}. To be recognized, the font name must be exact: @code{courier} and @code{COURIER} are not admitted. @node Fonts Description Files @subsection Fonts Description Files There are two kinds of data @pack{} needs to use a font: @itemize @minus @item @cindex .afm @cindex AFM the AFM file (@file{@var{font-key}.afm}), which describes the metrics information corresponding to @var{font}; @item @cindex .pfa @cindex .pfb in the case @var{font} is not known from the printer, the PFA or PFB file which is down loaded to the printer. These files are actually the PostScript programs which execution produces the characters to be drawn on the page, in this @var{font}. @end itemize @node Adding More Font Support @subsection Adding More Font Support @cindex @code{make_fonts_map.sh} @pack{} can use as many fonts as you want, provided that you teach it the name of the files in which are stored the fonts (@pxref{Fonts Map File}). To this end, a very primitive but still useful shell script is provided: @code{make_fonts_map.sh}. First, you need to find the directories which store the fonts you want to use, and extend the library path so that @pack{} sees those directories. For instance, add: @example AppendLibraryPath: /usr/local/share/ghostscript/fonts @end example Then run @code{make_fonts_map.sh}. It should be located in the @file{afm/} directory of the system's @pack{} hierarchy. Typically @file{/usr/local/share/a2ps/afm/make_fonts_map.sh}. This script asks @pack{} for the library path, wanders in this path collecting @code{AFM} files, and digging information in them. Once the script has finished, a file @file{fonts.map.new} was created. Check its integrity, and if it's correct, either replace the old @file{fonts.map} with it, or rename @file{fonts.map.new} as @file{fonts.map} and place it higher in the library path (for instance in your @file{~/.a2ps/} directory). @node Style Sheet Files @section Style Sheet Files @cindex @file{sheets.map} The style sheets are defined in various files (@pxref{Pretty Printing} for the structure of these files). As for most other features, there is main file, a road map, which defines in which condition a style sheet should be used (@pxref{Map Files}). This file is @file{sheets.map}. Its format is simple: @example @var{style-key}: @var{patterns} @end example @noindent or @example include(@var{file}) @end example The @var{patterns} need not be on separate lines. There are two kinds of patterns: @table @asis @item /@var{pattern}/@var{flags} if the current file name matches @var{pattern}, then select style @var{style-key} (i.e. file @file{@var{style-key}.ssh}). @item <@var{pattern}>@var{flags} if the result of a call to @code{file(1)} matches @var{pattern}, then select style @var{style-key}. @end table Currently @var{flags} can only be @samp{i}, standing for an insentive match. Please note that the matching is not truly case insensitive: rather, a lower case version of the string is compared to the @var{pattern} as is, i.e., the @var{pattern} should itself be lower case. The special @var{style-key} @samp{binary} tells @pack{} to consider that the file should not be printed, and will be ignored, unless option @samp{--print-anyway} is given. If a style name can't be found, the plain style is used. The map file is read bottom up, so that the ``last'' match is honored. Two things are to retain from this: @enumerate @item if the file is presented through @code{stdin}, then @pack{} will run @code{file(1)}. However, unless you specify a fake file name with @samp{--stdin}, pattern matching upon the name is turn off. In general you can expect correct delegations, but almost never pretty printing. @item if @code{file} is wrong on some files, @pack{} may use bad style sheets. In this case, do try option @samp{--guess}, compare it with the output of @code{file}, and if the culprit is @code{file}, go and complain to your system administrator :-), or fix it by defining your own filename pattern matching rules. @end enumerate Consider the case of Texinfo files as an example (the language in which this documentation is written). Files are usually named @file{foo.texi}, @file{bar.txi}, or even @file{baz.texinfo}. @code{file(1)} is able to recognize Texinfo files: @cartouche @example doc % file a2ps.texi a2ps.texi: Texinfo source text @end example @end cartouche @noindent Therefore the sheets.map would look like: @example # Texinfo files texinfo: /*.txi/ /*.texi/ /*.texinfo/ <Texinfo source*> @end example @c ####### @c # # # #### #### ##### # # # #### #### @c # ## # # # # # # # # ## # # # # @c ##### # # # # # # # # # # # # # #### @c # # # # # # # # # # # # # # ### # @c # # ## # # # # # # # # ## # # # # @c ####### # # #### #### ##### # # # #### #### @node Encodings @chapter Encodings @pack{} is trying to support the various usual encodings that its users use. This chapter presents what an encoding is, how the encodings support is handled within @pack{}, and some encodings it supports. @menu * What is an Encoding:: The concept of encoding explained * Encoding Files:: How a2ps handles the encodings @end menu @node What is an Encoding @section What is an Encoding This section was taken from the web pages of Alis Technologies, Inc., now @href{https://www.opentext.com/, Open Text Corporation}. Document encoding is the most important but also the most sensitive and explosive topic in Internet internationalization. It is an essential factor since most of the information distributed over the Internet is in text format. But the history of the Internet is such that the predominant - and in some cases the only possible - encoding is the very limited ASCII, which can represent only a handful of languages, only three of which are used to any great extent: English, Indonesian and Swahili. All the other languages, spoken by more than 90% of the world's population, must fall back on other character sets. And there is a plethora of them, created over the years to satisfy writing constraints and constantly changing technological limitations. The ISO international character set registry contains only a small fraction; IBM's character registry is over three centimeters thick; Microsoft and Apple each have a bunch of their own, as do other software manufacturers and editors. The problem is not that there are too few but rather too many choices, at least whenever Internet standards allow them. And the surplus is a real problem; if every Arabic user made his own choice among the three dozen or so codes available for this language, there is little likelihood that his "neighbor" would do the same and that they would thus be able to understand each other. This example is rather extreme, but it does illustrate the importance of standards in the area of internationalization. For a group of users sharing the same language to be able to communicate, @enumerate @item the code used in the shared document must always be identified (labeling) @item they must agree on a small number of codes - only one, if possible (standards); @item their software must recognize and process all codes (versatility) @end enumerate Certain character sets stand out either because of their status as an official national or international standard, or simply because of their widespread use. First off, there is the ISO 8859 standards series that standardize a dozen character sets that are useful for a large number of languages using the Latin, Cyrillic, Arabic, Greek and Hebrew alphabets. These standards have a limited range of application (8 bits per character, a maximum of 190 characters, no combining) but where they suffice (as they do for 10 of the 20 most widely used languages), they should be used on the Internet in preference to other codes. For all other languages, national standards should preferably be chosen or, if none are available, a well-known and widely-used code should be the second choice. Even when we limit ourselves to the most widely used standards, the overabundance remains considerable, and this significantly complicates life for truly international software developers and users of several languages, especially when such languages can only be represented by a single code. It was to resolve this problem that both Unicode and the ISO 10646 International standard were created. Two standards? Oh no! Their designers soon realized the problem and were able to cooperate to the extent of making the character set @dfn{repertoires} and coding identical. ISO 10646 (and Unicode) contain over 30,000 characters capable of representing most of the living languages within a single code. All of these characters, except for the @emph{Han} (Chinese characters also used in Japanese and Korean), have a name. And there is still room to encode the missing languages as soon as enough of the necessary research is done. Unicode can be used to represent several languages, using different alphabets, within the same electronic document. @node Encoding Files @section Encoding Files @menu * Encoding Map File:: Mapping an encoding name to a file name * Encoding Description Files:: Specifying an encoding * Some Encodings:: Classical or standard encodings @end menu The support of the encodings in @pack{} is completely taken out of the code. That is to say, adding, removing or changing anything in its support for an encoding does not require programming, nor even being a programmer. @xref{What is an Encoding}, if you want to know more about this. @node Encoding Map File @subsection Encoding Map File @xref{Map Files}, for a description of the map files. The meaningful lines of the @file{encoding.map} file have the form: @example @var{alias} @var{key} iso-8859-1 latin1 latin1 latin1 l1 latin1 @end example @noindent where @table @var @item alias specifies any name under which the encoding may be used. It influences the option @samp{--encoding}, but also the encodings dynamically required, as for instance in the @code{mail} style sheet (support for MIME). When @var{encoding} is asked, the lower case version of @var{encoding} must be equal to @var{alias}. @item key specifies the prefix of the file describing the encoding (@file{@var{key}.edf}, @ref{Encoding Description Files}). @end table @node Encoding Description Files @subsection Encoding Description Files @cindex .edf @cindex EDF The encoding description file describing the encoding @var{key} is named @file{@var{key}.edf}. It is subject to the same rules as any other @pack{} file: @itemize @minus @item please make the name portable: alpha-numerical, at most 8 characters, @item empty lines and lines starting by @samp{#} are ignored. @end itemize The entries are @table @samp @item Name: Specifies the full name of the encoding. Please, try to use the official name if there is one. @example Name: ISO-8859-1 @end example @item Documentation/EndDocumentation Introduces the documentation on the encoding (@pxref{Documentation Format}). Typical informations expected are the other important names this encoding has, and the languages it covers. @example Documentation Also known as ISO Latin 1, or Latin 1. It is a superset of ASCII, and covers most West-European languages. EndDocumentation @end example @item Substitute: Introduces a font substitution. The most common fonts (e.g., @code{Courier}, @code{Times-Roman}...) do not support many encodings (for instance it does not support Latin 2). To avoid that Latin 2 users have to replace everywhere calls to @code{Courier}, @pack{} allows to specify that whenever a font is called in an encoding, then another font should be used. For instance in @file{iso2.edf} one can read: @example @i{# Fonts from Ogonkify offer full support of ISO Latin 2} Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki @end example @item Default: Introduces the name of the font that should be used when a font (not substituted as per the previous item) is called but provides to poor a support of the encoding. The @code{Courier} equivalent is the best choice. @example Default: Courier-Ogonki @end example @item Vector: Introduces the PostScript encoding vector, that is a list of the 256 PostScript names of the characters. Note that only the printable characters are named in PostScript (e.g., @samp{bell} in ASCII (@code{^G}) should not be named). The special name @samp{.notdef} is to be used when the character is not printable. @strong{Warning.} Make sure to use real, official, PostScript names. Using names such as @samp{c123} may be the sign you use unusual names. On the other hand PostScript names such as @samp{afii8879} are common. @end table @node Some Encodings @subsection Some Encodings Most of the following information is a courtesy of Alis Technologies, Inc. and of @email{zcyborra@@cs.tu-berlin.de, Roman Czyborra}'s page about @href{http://czyborra.com/charsets/, The ISO 8859 Alphabet Soup}. @xref{What is an Encoding}, is an instructive presentation of the encodings. @include encoding.texi @c ###### ###### @c # # ##### # # ##### # # # ##### @c # # # # # # # # # ## # # @c ###### # # ###### # # # # # # # @c # ##### ### # ##### # # # # # @c # # # ### # # # # # ## # @c # # # ### # # # # # # # @node Pretty Printing @chapter Pretty Printing @cindex Pretty printing @cindex Symbol conversion The main feature of @pack{} is its pretty-printing capabilities. Two different levels of pretty printing can be reached: @itemize @minus @item basic (normal highlight level) in which what you print is what you wrote. @item string (heavy highlight level), in which in general, some keywords are replaced by a Symbol character which best represents them. For instance, in most languages @samp{<=} and @samp{>=} will be replaced by the corresponding single character from the font Symbol. @end itemize Note that the difference is up to the author of the style sheet. @menu * Syntactic limits:: What can't be done * Known Style Sheets:: Some supported languages * Type Setting Style Sheets:: a2ps as a tiny word processor * Faces:: Encoding the look of pieces of text * Style sheets semantics:: What is to be defined * Style Sheets Implementation:: How they should be defined * A tutorial on style sheets:: Step by step example @end menu @node Syntactic limits @section Syntactic limits @pack{} is @emph{not} a powerful syntactic pretty-printer: it just handles lexical structures, i.e., if in your favorite language @example IF IF == THEN THEN THEN := ELSE ELSE ELSE := IF @end example @noindent is legal, then @pack{} is not the tool you need. Indeed @pack{} just looks for some keywords, or some @dfn{sequences}. @node Known Style Sheets @section Known Style Sheets @include sheets.texi @node Type Setting Style Sheets @section Type Setting Style Sheets This section presents a few style sheets that define page description languages (compared to most other style sheet meant to pretty print source files). @menu * Symbol:: Access to the glyphs of the Symbol font * PreScript:: Typesetting in an a2ps like syntax * PreTeX:: Typesetting in a LaTeX like syntax * TeXScript:: Typesetting in a mixture of both @end menu @node Symbol @subsection Symbol The style sheet @code{Symbol} introduces easy to type keywords to obtain the special characters of the PostScript font @code{Symbol}. The keywords are named to provide a @LaTeX{} taste. These keywords are also the names used when designing a style sheet, hence to get the full list, see @ref{A Bit of Syntax}. If you want to know the correspondence, it is suggested to print the style sheet file of @code{Symbol}: @example a2ps -g symbol.ssh @end example @node PreScript @subsection PreScript @cindex @code{PreScript} @code{PreScript} has been designed in conjunction with @pack{}. Since bold sequences, special characters etc. were implemented in @pack{}, we thought it would be good to allow direct access to those features: @code{PreScript} became an input language for @pack{}, where special font treatments are specified in an @code{ssh} syntax (@pxref{Style Sheets Implementation}). The main advantages for using @code{PreScript} are: @itemize @minus @item it is fairly simple, @item @pack{} is small and easy to install, hence it is available on every UNIX platform. @end itemize It can be a good candidate for generation of PostScript output (syntactic pretty-printers, generation of various reports etc.). @menu * Syntax:: Lexical specifications * PreScript Commands:: * PreScript examples:: @end menu @node Syntax @subsubsection Syntax Every command name begins with a backslash (@samp{\}). If the command uses an argument, it is given between curly braces with no spaces between the command name and the argument. The main limit on @code{PreScript} is that no command can be used inside another command. For instance the following line will be badly interpreted by @pack{}: @example \Keyword@{Problems using \keyword@{recursive \copyright@} calls@} @end example The correct way to write this in @code{PreScript} is @example \Keyword@{Problems using@} \keyword@{recursive@} \copyright \Keyword@{calls@}. @end example Everything from an unquoted % to the end of line is ignored (comments). @node PreScript Commands @subsubsection PreScript Commands These commands required arguments. @table @samp @item \keyword@{@var{text}@} @itemx \Keyword@{@var{text}@} Highlight lightly/strongly the given @var{text}. Should be used only for a couple of adjacent words. @item \comment@{@var{text}@} @itemx \Comment@{@var{text}@} The @var{text} is given a special face. The @var{text} may be removed if option @samp{--strip} is used. @item \label@{@var{text}@} @itemx \Label@{@var{text}@} @var{text} should be considered as a definition, or an important point in the structure of the whole text. @item \string@{@var{text}@} Write @var{text} with string's face (e.g., in font Times). @item \error@{@var{text}@} Write @var{text} with error's face (generally a very different face, so that you see immediately). @item \symbol@{@var{text}@} @var{text} is written in the PostScript symbol font. This feature is not compatible with @LaTeX{}. It is recommended, when possible, to use the special keywords denoting symbols, which are compatible with @LaTeX{} (@pxref{Symbol}). @item \header@{@var{text}@} @itemx \footer@{@var{text}@} Use @var{text} as header (footer) for the current page. If several headers or footers are defined on the same page, the last one is taken into account. @item \encoding@{@var{key}@} Change dynamically the current encoding. After this command, the text is printed using the encoding corresponding to @var{key}. @end table @node PreScript examples @subsubsection Examples @code{PreScript} and @pack{} can be used for one-the-fly formating. For instance, on the @file{passwd} file: @smallexample ypcat passwd | awk -F: \ '@{print "\Keyword@{" $5 "@} (" $1 ") \rightarrow\keyword@{" $7 "@}"@}'\ | a2ps -Epre -P @end smallexample @node PreTeX @subsection Pre@TeX{} The aim of the Pre@TeX{} style sheet is to provide something similar to @code{PreScript}, but with a more @LaTeX{} like syntax. @menu * Special characters:: * PreTeX Commands:: * Differences with LaTeX:: @end menu @node Special characters @subsubsection Special characters @samp{$} is ignored in @code{Pre@TeX{}} for compatibility with @LaTeX{}, and @samp{%} introduces a comment. Hence they are the only symbols which have to be quoted by a @samp{\}. The following characters should also be quoted to produce good @LaTeX{} files, but are accepted by @code{PreScript}: @samp{_}, @samp{&}, @samp{#}. Note that @emph{inside a command}, like @code{\textbf}, the quotation mechanism does not work in @code{PreScript} (@code{\textrm@{#$%@}} writes @samp{#$%}) though @LaTeX{} still requires quotation. Hence whenever special characters or symbols are introduced, they should be at the outer most level. @node PreTeX Commands @subsubsection Pre@TeX{} Commands These commands required arguments. @table @samp @item \section@{@var{Title}@} @itemx \subsection@{@var{Title}@} @itemx \subsubsection@{@var{Title}@}. Used to specify the title of a section, subsection or subsubsection. @item \textbf@{@var{text}@} @itemx \textit@{@var{text}@} @itemx \textbi@{@var{text}@} @itemx \textrm@{@var{text}@} write @var{text} in bold, italic, bold-italic, Times. Default font is Courier. @item \textsy@{@var{text}@} @var{text} is written in the PostScript symbol font. This feature is not compatible with @LaTeX{}. It is recommended, when possible, to use the special keywords denoting symbols, which are compatible with @LaTeX{} (See the style sheet @code{Symbol}). @item \header@{@var{text}@} @itemx \footer@{@var{text}@} Use @var{text} as header (footer) for the current page. If several headers or footers are defined on the same page, the last one is taken into account. @item \verb+@var{text}+ Quote @var{text} so that no special sequence will be interpreted. In @samp{\verb+@var{quoted string}+} @samp{+} can be any symbol in @samp{+}, @samp{!}, @samp{|}, @samp{#}, @samp{=}. @item \begin@{document@} @itemx \end@{document@} @itemx \begin@{itemize@} @itemx \end@{itemize@} @itemx \begin@{enumerate@} @itemx \end@{enumerate@} @itemx \begin@{description@} @itemx \end@{description@} These commands are legal in @LaTeX{} but have no sense in Pre@TeX{}. Hence there are simply ignored and not printed (if immediately followed by an end-of-line). @end table @node Differences with LaTeX @subsubsection Differences with @LaTeX{} The following symbols, inherited from the style sheet @code{Symbol}, are not supported by @LaTeX{}: @samp{\Alpha}, @samp{\apple}, @samp{\Beta}, @samp{\carriagereturn}, @samp{\Chi}, @samp{\Epsilon}, @samp{\Eta}, @samp{\florin}, @samp{\Iota}, @samp{\Kappa}, @samp{\Mu}, @samp{\Nu}, @samp{\Omicron}, @samp{\omicron}, @samp{\radicalex}, @samp{\register}, @samp{\Rho}, @samp{\suchthat}, @samp{\Tau}, @samp{\therefore}, @samp{\trademark}, @samp{\varUpsilon}, @samp{\Zeta}. @LaTeX{} is more demanding about special symbols. Most of them must be in so-called math mode, which means that the command must be inside @samp{$} signs. For instance, though @example If \forall x \in E, x \in F then E \subseteq F. @end example @noindent is perfectly legal in Pre@TeX{}, it should be written @example If $\forall x \in E, x \in F$ then $E \subseteq F$. @end example @noindent for @LaTeX{}. Since in Pre@TeX{} every @samp{$} is discarded (unless quoted by a @samp{\}), the second form is also admitted. @node TeXScript @subsection @TeX{}Script @code{@TeX{}Script} is a replacement of the old version of @code{PreScript}: it combines both the @pack{}-like and the @LaTeX{}-like syntaxes through inheritance of both @code{PreScript} and @code{Pre@TeX{}}. In addition it provides commands meant to ease processing of file for @pack{} by @LaTeX{}. Everything between @samp{%%TeXScript:skip} and @samp{%%TeXScript:piks} will be ignored in @code{@TeX{}Script}, so that there can be inserted command definitions for @LaTeX{} exclusively. The commands @samp{\textbi} (for bold-italic) and @samp{\textsy} (for symbol) do not exist in @LaTeX{}. They should be defined in the preamble: @example %%TeXScript:skip \newcommand@{\textbi@}[1]@{\textbf@{\textit@{#1@}@}@} \newcommand@{\textsy@}[1]@{#1@} %%TeXScript:piks @end example There is no way in @TeX{}Script to get an automatic numbering. There is no equivalent to the @LaTeX{} environment @code{enumerate}. But every command beginning by @code{\text} is doubled by a command beginning by @samp{\magic}. @pack{} behaves the same way on both families of commands. Hence, if one specifies that arguments of those functions should be ignored in the preamble of the @LaTeX{} document, the numbering is emulated. For instance @example \begin@{enumerate@} \magicbf@{1.@}\item First line \magicbf@{2.@}\item Second line \end@{enumerate@} @end example @noindent will be treated the same way both in @TeX{}Script and @LaTeX{}. @samp{\header} and @samp{\footer}, are not understood by @LaTeX{}. @node Faces @section Faces @cindex Face A @dfn{face} is an attribute given to a piece of text, which specifies how it should look like. Since @pack{} is devoted to pretty-printing source files, the faces it uses are related to the syntactic entities that can be encountered in a file. The faces @pack{} uses are: @table @samp @item Plain This corresponds to the text body. @item Keyword @itemx Keyword_strong These are related to the keywords that may appear in a text. @item Comment @itemx Comment_strong These are related to comments in the text. Remember that comments should be considered as non essential ("@emph{Aaaeaaarg}" says the programmer); indeed, the user might suppress the comments thanks (?) to the option @samp{--strip-level}. Hence, @strong{never} use these faces just because you think they look better on, say, strings. @item Label @itemx Label_strong These are used when a point of extreme importance, or a sectioning point, is met. Typically, functions declarations etc. @item String Used mainly for string and character literals. @item Error Used to underline the presence of an error. For instance in Encapsulated PostScript, some PostScript operators are forbidden: they are underlined as errors. @end table Actually, there is also the face @samp{Symbol}, but this one is particular: it is not legal changing its font. @c ----------------------------------- Style sheets semantics @node Style sheets semantics @section Style Sheets Semantics @cindex Style sheet @pack{} pretty prints a source file thanks to @dfn{style sheets}, one per language. In the following is described how the style sheets are defined. You may skip this section if you don't care how @pack{} does this, and if you don't expect to implement new styles. @menu * Name and key:: Both names of a style sheet * Comments:: Author name, version etc. * Alphabets:: What words are legal * Case sensitivity:: Is BEGIN different of begin * P-Rules:: Pretty Printing Rules * Sequences:: Strings, comments etc. * Optional entries:: Second level of pretty printing @end menu @node Name and key @subsection Name and key @cindex key @cindex @file{sheets.map} Every style sheet has both a key, and a name. The name can be clean and beautiful, with any character you might want. The key is in fact the prefix part of the file name, and is alpha-numerical, lower case, and less than 8 characters long. Anywhere @pack{} needs to recognize a style sheet by a name, @strong{it uses the key} (in the @file{sheets.map} file, with the option @samp{-E}, etc.). As an example, C++ is implemented in a file called @file{cxx.ssh}, in which the name is declared to be @samp{C++}. The rationale is that not every system accepts any character in the file name (e.g., no @samp{+} in MS-DOS). Moreover, it allows to make symbolic links on the ssh files (e.g., @samp{ln -s cxx.ssh c++.ssh} let's you use @samp{-E c++}). @node Comments @subsection Comments ssh files can include the name of its author, a version number, a documentation note and a requirement on the version of @pack{}. For instance, if a style sheet requires @pack{} version 4.9.6, then @pack{} version 4.9.5 will reject it. @node Alphabets @subsection Alphabets @cindex Alphabets @cindex Separator @pack{} needs to know the beginning and the end of a word, especially keywords. Hence it needs two alphabets: the first one specifying by which letters an identifier can begin, and the second one for the rest of the word. If you prefer, a keyword starts with a character belonging to the first alphabet, and a character not pertaining to the second is a separator. @node Case sensitivity @subsection Case sensitivity If the style is case insensitive, then matching is case insensitive (keywords, operators and sequences). @node P-Rules @subsection P-Rules @cindex Keyword @cindex Rule @cindex P-Rule @cindex Operator A @dfn{P-rule} (Pretty printing rule), or @dfn{rule} for short, is a structure which consists of two items: @table @dfn @item lhs @cindex lhs @itemx left-hand side its source string, with which the source file is compared; @item rhs @cindex rhs @itemx right hand side a list of faced strings which will replace the text matched in the pretty-printed output. A faced string is composed of @itemize @minus @item a string, or a reference to a part of the source string (@pxref{Back-reference Operator,,Back-reference Operator,regex,Regex manual}) @item the face to use to print it @end itemize @end table Just a short example: @samp{(foo, bar, Keyword_strong)} as a rule means that every input occurrence of @samp{foo} will be replaced by @samp{bar}, written with the @code{Keyword_strong} face. If the destination string is empty, then @pack{} will use the source string. This is different from giving the source string as a destination string if the case is different. An example will make it fairly clear. Let @code{foobar} be a case insensitive style sheet including the rules @samp{(foo, "", Keyword)} and @samp{(bar, bar, Keyword)}. Then, on the input @samp{FOO BAR}, @pack{} will produce @samp{FOO bar} in @code{Keyword}. @pack{} implements two different ways to match a string. The difference comes from that some keywords are sensitive to the delimiters around them (such as @samp{unsigned} and @samp{int} in @code{C}, which are definitely not the same thing as @samp{unsignedint}), and others not (in @code{C}, @samp{!=} is "different from" both in @samp{a != b} and @samp{a!=b}). The first ones are called @dfn{keywords} in @pack{} jargon, and the seconds are @dfn{operators}. Operators are matched anywhere they appear, while keywords need to have separators around them (@pxref{Alphabets}). Let us give a more complicated example: that of the @code{Yacc} rules. A rule in @code{Yacc} is of the form: @example a_rule : part1 part2 ; @end example Suppose you want to highlight these rules. To recognize them, you will write a regular expression specifying that: @enumerate @item it must start at the beginning of the line, @item then there is string composed of symbols, which is what you want to highlight, @item and a colon, which can be preceded by blank characters. @end enumerate The regexp you want is: @samp{/^[a-zA-Z0-9_]*[\t ]*:/}. But with the rule @example /^[a-zA-Z0-9_]*[\t ]*:/, "", Label_strong @end example @noindent the blanks and the colon are highlighted too. Hence you need to specify some parts in the regexp (@pxref{Back-reference Operator,,Back-reference Operator,regex,Regex manual}), and use a longer list of destination strings. The correct rule is @example (/^([a-zA-Z0-9_]*)([\t ]*:)/, \1 Label_strong, \2 Plain) @end example Since it is a bit painful to read, regexps can be spread upon several lines. It is strongly suggested to break them by groups, and to document the group: @example (/^([a-zA-Z0-9_]*)/ # \1. Name of the rule /([\t ]*:)/ # \2. Trailing space and colon \1 Label_strong, \2 Plain) @end example @node Sequences @subsection Sequences @cindex Sequences @cindex Markers A @dfn{sequence} is a string between two @dfn{markers}, along with a list of exceptions. A marker is a fixed string. Typical examples are comments, string (with usually @samp{"} as opening and closing markers, and @samp{\\} and @samp{\"} as exceptions) etc. Three faces are used: one for the initial marker, one for the core of the sequence, and a last one for the final maker. @node Optional entries @subsection Optional entries @cindex Optional entries There are two levels of pretty-printing encoded in the style sheets. By default, @pack{} uses the first level, called @dfn{normal}, unless the option @samp{-g} is specified, in which case, @dfn{heavy} highlighting is invoked, i.e., optional keywords, operators and sequences are considered. @c ---------------------------------------- Style Sheets Implementation @node Style Sheets Implementation @section Style Sheets Implementation In the previous section (@pxref{Style sheets semantics}) were explained the various items needed to understand the machinery involved in pretty printing. Here, their implementation, i.e., how to write a style sheet file, is explained. The next section (@pxref{A tutorial on style sheets}), exposes a step by step simple example. @menu * A Bit of Syntax:: Lexical rules of the ssh language * Style Sheet Header:: Declaration of a style * Syntax of the Words:: Classes of the Characters * Inheriting:: Extending existing style sheets * Syntax for the P-Rules:: Atomic Pretty Printing rules * Declaring keywords and operators:: Special Classes of Identifiers * Declaring sequences:: Bordered Lexical Entities * Checking a Style Sheet:: Ask a2ps to Check the Sheet @end menu @node A Bit of Syntax @subsection A Bit of Syntax Here are the lexical rules underlying the style sheet language: @itemize @minus @item the separators are white space, form feed, new line, and tab. @item @samp{#} introduces a comment, ended at the end of the line. @item special characters are the separators, plus @samp{#}, @samp{"}, @samp{,}, @samp{(}, @samp{)}, @samp{+} and @samp{/}. Any other character is a regular character. @item the list of the structuring keywords is @quotation @code{alphabet}, @code{alphabets}, @code{are}, @code{case}, @code{documentation}, @code{end}, @code{exceptions}, @code{first}, @code{in}, @code{insensitive}, @code{is}, @code{keywords}, @code{operators}, @code{optional}, @code{second}, @code{sensitive}, @code{sequences}, @code{style} @end quotation @item the list of the keywords designating faces is @quotation @code{Comment}, @code{Comment_strong}, @code{Encoding}, @code{Error}, @code{Index1}, @code{Index2}, @code{Index3}, @code{Index4}, @code{Invisible}, @code{Keyword}, @code{Keyword_strong}, @code{Label}, @code{Label_strong}, @code{Plain}, @code{String}, @code{Symbol}, @code{Tag1}, @code{Tag2}, @code{Tag3}, @code{Tag4} @end quotation @item the list of keywords designating special sequences is @quotation @code{C-char}, @code{C-string} @end quotation @item the list of keywords representing special characters is @quotation @code{---}, @code{\Alpha}, @code{\Beta}, @code{\Chi}, @code{\Delta}, @code{\Downarrow}, @code{\Epsilon}, @code{\Eta}, @code{\Gamma}, @code{\Im}, @code{\Iota}, @code{\Kappa}, @code{\Lambda}, @code{\Leftarrow}, @code{\Leftrightarrow}, @code{\Mu}, @code{\Nu}, @code{\Omega}, @code{\Omicron}, @code{\Phi}, @code{\Pi}, @code{\Psi}, @code{\Re}, @code{\Rho}, @code{\Rightarrow}, @code{\Sigma}, @code{\Tau}, @code{\Theta}, @code{\Uparrow}, @code{\Upsilon}, @code{\Xi}, @code{\Zeta}, @code{\aleph}, @code{\alpha}, @code{\angle}, @code{\approx}, @code{\beta}, @code{\bullet}, @code{\cap}, @code{\carriagereturn}, @code{\cdot}, @code{\chi}, @code{\circ}, @code{\clubsuit}, @code{\cong}, @code{\copyright}, @code{\cup}, @code{\delta}, @code{\diamondsuit}, @code{\div}, @code{\downarrow}, @code{\emptyset}, @code{\epsilon}, @code{\equiv}, @code{\eta}, @code{\exists}, @code{\florin}, @code{\forall}, @code{\gamma}, @code{\geq}, @code{\heartsuit}, @code{\in}, @code{\infty}, @code{\int}, @code{\iota}, @code{\kappa}, @code{\lambda}, @code{\langle}, @code{\lceil}, @code{\ldots}, @code{\leftarrow}, @code{\leftrightarrow}, @code{\leq}, @code{\lfloor}, @code{\mu}, @code{\nabla}, @code{\neq}, @code{\not}, @code{\not\in}, @code{\not\subset}, @code{\nu}, @code{\omega}, @code{\omicron}, @code{\oplus}, @code{\otimes}, @code{\partial}, @code{\perp}, @code{\phi}, @code{\pi}, @code{\pm}, @code{\prime}, @code{\prod}, @code{\propto}, @code{\psi}, @code{\radicalex}, @code{\rangle}, @code{\rceil}, @code{\register}, @code{\rfloor}, @code{\rho}, @code{\rightarrow}, @code{\sigma}, @code{\sim}, @code{\spadesuit}, @code{\subset}, @code{\subseteq}, @code{\suchthat}, @code{\sum}, @code{\supset}, @code{\supseteq}, @code{\surd}, @code{\tau}, @code{\theta}, @code{\therefore}, @code{\times}, @code{\trademark}, @code{\uparrow}, @code{\upsilon}, @code{\varUpsilon}, @code{\varcopyright}, @code{\vardiamondsuit}, @code{\varphi}, @code{\varpi}, @code{\varregister}, @code{\varsigma}, @code{\vartheta}, @code{\vartrademark}, @code{\vee}, @code{\wedge}, @code{\wp}, @code{\xi}, @code{\zeta} @end quotation It is a good idea to print the style sheet @samp{symbols.ssh} to see them: @example a2ps symbols.ssh @end example @item a string starts and finishes with @samp{"}, and may contain anything. Regular @code{C} escaping mechanism is used. @item a regular expression starts and finishes with @samp{/}, and may contain anything. Regular @code{C} escaping mechanism is used. Regexps can be split in several parts, @i{a` la} C strings (i.e., @samp{/part 1/ /part 2/}). @item any sequence of regular characters which is not a keyword, is a string (consider this as a shortcut, avoiding extraneous @samp{"}). @end itemize @node Style Sheet Header @subsection Style Sheet Header The definition of the name of the style sheet is: @display @code{style} @var{name} @code{is} # body of the style sheet @code{end} @code{style} @end display The following constructions are optional: @table @code @item version To define the version number of the style sheet @example version is @var{version-number} @end example @item written To define the author(s). @example written by @var{authors} @end example Giving your email is useful for bug reports about style sheets. @example written by "Some Body <Some.Body@@some.whe.re>" @end example @item requires To specify the version of @pack{} it requires. @pack{} won't accept a file which requires a higher version number than its own. @example requires a2ps @var{a2ps-version-number} @end example @item documentation To leave extra comments people should read. @example documentation is @var{strings} end documentation @end example @var{strings} may be a list of strings, without comas, in which case new lines are automatically inserted between each item. @xref{Documentation Format}, for details on the format. Please, write useful comments, not @samp{This style is devoted to C files}, since the name is here for that, nor @samp{Report errors to mail@@me.somewhere}, since @code{written by} is there for that. @example documentation is "Not all the keywords are used, to avoid too much" "bolding. Heavy highlighting (code(-g)code), covers" "the whole language." end documentation @end example @end table @node Syntax of the Words @subsection Syntax of the Words There are two things @pack{} needs to know: what is symbol consistent, and whether the style is case insensitive. @table @code @item alphabet To define two different alphabets, use @example first alphabet is @var{string} second alphabet is @var{string} @end example If both are identical, you may use the shortcut @example alphabets are @var{string} @end example The default alphabets are @example first alphabet is "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_" second alphabet is "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\ 0123456789" @end example @noindent Note that it is on purpose that no characters interval are used. @item case @example case insensitive # @i{e.g., C, C++ etc.} case sensitive # @i{e.g., Perl, Sather, Java etc.} @end example @noindent The default is @code{case insensitive}. @end table @node Inheriting @subsection Inheriting from Other Style Sheets It is possible to extend an existing style. The syntax is: @example ancestors are @var{ancestor_1}[, @var{ancestor_2}...] end ancestors @end example @noindent where @var{ancestor1} etc. are style sheet keys. For semantics, the rules are the following: @itemize @minus @item the ancestors are read in order; @item the definition of the current style is read last; @item it is always the last item read which wins (last defined alphabets, case sensitivity, keywords, operators and sequences). @end itemize As an example, both @code{C++} and @code{Objective C} style sheets extend the @code{C} style sheet: @example style "Objective C" is #@i{[...]} ancestors are c end ancestors #@i{[...]} end style @end example To the biggest surprise of the author, mutually dependent style sheets do work! @node Syntax for the P-Rules @subsection Syntax for the P-Rules @xref{P-Rules}, for the definition of @dfn{P-rule}. Because of various short cuts, there are many ways to declare a rule: @example @var{rules} ::= @var{rule_1} @samp{,} @var{rule_2}... @var{rule} ::= @samp{(} @var{lhs} @var{rhs} @samp{)} | @var{lhs} @var{srhs} ; @var{lhs} ::= @var{string} | @var{regex} ; @var{rhs} ::= @var{srhs} @samp{,} ... @var{srhs} ::= @var{latex-keyword} | @var{expansion} @var{face} @var{expansion} ::= @var{string} | @samp{\}@var{num} | <nothing>; @var{face} ::= @var{face-keyword} | <nothing>; @end example The rules are the following: @itemize @minus @item @cindex Regular expression If the left-hand side (lhs) is a regular expression, then it is compiled with the following syntax bits: @example #define RE_SYNTAX_A2PS \ (/* Allow char classes. */ \ RE_CHAR_CLASSES \ /* Be picky. */ \ | RE_CONTEXT_INVALID_OPS \ /* Allow intervals with `@{' and `@}', forbid invalid ranges. */\ | RE_INTERVALS | RE_NO_BK_BRACES | RE_NO_EMPTY_RANGES \ /* `(' and `)' are the grouping operators. */ \ | RE_NO_BK_PARENS \ /* `|' is the alternation. */ \ | RE_NO_BK_VBAR) @end example @noindent Basically it means that all of the possible operators are used, and that they are in non-backslashed form. For instance @samp{(} and @samp{)} stand for the group operator, while @samp{\\(} stands for the character @samp{(}. @xref{Regular Expression Syntax,,Regular Expression Syntax,regex,Regex manual}, for a detailed description of the regular expressions. @item If no @var{expansion} is specified, then the matched string is used. For instance @samp{(/fo*/, NULL, Keyword)} applied on the source @samp{fooooo} produces @samp{fooooo} in @code{Keyword}. @item If no @var{face} is given, then @itemize @minus @item if the context defines the default face, then this face is used; @item if no default face is given, @code{PLAIN} is used. @end itemize @end itemize @node Declaring keywords and operators @subsection Declaring the keywords and the operators Basically, keywords and operators are lists of rules. The syntax is: @example keywords are @var{rules} end keywords @end example @noindent or @example keywords in @var{face-keyword} are @var{rules} end keywords @end example @noindent in which case the default face is set to @var{face-keyword}. As an example: @example keywords in Keyword_strong are /foo*/, "bar" "BAR" Keyword, -> \rightarrow end keywords @end example @noindent is valid. The syntax for the operators is the same, and both constructs can be qualified with an @code{optional} flag, in which case they are taken into account in the heavy highlighting mode (@pxref{Pretty Print Options}). This is an extract of the @code{C} style sheet: @example optional operators are -> \rightarrow, && \wedge, || \vee, != \neq, == \equiv, # We need to protect these, so that <= is not replaced in <<= <<=, >>=, <= \leq, >= \geq, ! \not end operators @end example Note how @samp{<<=} and @samp{>>=} are protected (there are defined to be written as is when met in the source). This is to prevent the two last characters of @samp{<<=} from being converted into a `less or equal' sign. The order in which you define the elements of a category (but the sequences) does not matter. But since @pack{} sorts them at run time, it may save time if the alphabetical @code{C}-order is more or less followed. You should be aware that when declaring a keyword with a regular expression as lhs, then @pack{} automatically makes this expression matching only if there are no character of the first alphabet both just before, and just after the string. In term of implementation, it means that @example keywords are /foo|bar/ end keywords @end example @noindent is exactly the same as @example operators are /\\b(foo|bar)\\b/ end operators @end example This can cause problems if you use anchors (e.g. @code{$}, or @code{^}) in keywords: the matcher will be broken. In this particular case, define your keywords as operators, taking care of the @samp{\\b} by yourself. @xref{Match-word-boundary Operator,,Match-word-boundary Operator,regex,Regex manual}, for details on @samp{\b}. @node Declaring sequences @subsection Declaring the sequences Sequences admit several declarations too: @example @var{sequences} ::= sequences are @var{sequence_1} @samp{,} @var{sequence_2}... end sequences @var{sequence} ::= @var{rule} @var{in_face} @var{close_opt} @var{exceptions_opt} | @code{C-string} | @code{C-char} ; @var{close_opt} ::= @var{rule} | closers are @var{rules} end closers | <nothing> ; @var{exceptions_opt} ::= exceptions are @var{rules} end exceptions | <nothing> ; @end example The rules are: @itemize @minus @item The default face is then @var{in_face}. @item If no closing rule is given, @samp{"\n"} (i.e., end-of-line) is used. @end itemize As a first example, here is the correct definition for a @code{C} string: @example sequences are "\"" Plain String "\"" Plain exceptions are "\\\\", "\\\"" end exceptions end sequences @end example @cindex @code{C-string} @cindex @code{C-char} Since a great deal of languages uses this kind of constructs, you may use @code{C-string} to mean exactly this, and @code{C-char} for manifest characters defined the @code{C} way. The following example comes from @file{ssh.ssh}, the style sheet for style sheet files, in which there are two kinds of pseudo-strings: the strings (@samp{"example"}), and the regular expressions (@samp{/example/}). We do not want the content of the pseudo-strings in the face @code{String}. @example sequences are # The comments "#" Comment, # The name of the style sheet "style " Keyword_strong (Label + Index1) " is" Keyword_strong, # Strings are exactly the C-strings, though we don't want to # have them in the "string" face "\"" Plain "\"" exceptions are "\\\\", "\\\"" end exceptions, # Regexps "/" Plain "/" exceptions are "\\\\", "\\\/" end exceptions end sequences @end example The order between sequences does matter. For instance in Java, @samp{/**} introduces strong comments, and @samp{/*} comments. @samp{/**} @emph{must} be declared before @samp{/*}, or it will be hidden. There are actually some sequences that could have been implemented as operators with a specific regular expression (that goes up to the closer). Nevertheless be aware of a big difference: regular expression are applied to a single line of the source file, hence, they cannot match on several lines. For instance, the @code{C} comments, @example /* * a comment */ @end example @noindent cannot be implemented with operators, though @code{C++} comments can: @example // // a comment // @end example @node Checking a Style Sheet @subsection Checking a Style Sheet Once your style sheet is written, you may want to let @pack{} perform simple tests on it (e.g., checking there are no rules involving upper case characters in a case insensitive style sheet, etc.). These tests are performed when verbosity includes the style sheets. you may also want to use the special convention that when a style sheet is required with a suffix, then @pack{} will not look at it in its library path, but precisely from when you are. Suppose for instance you extended the @file{c.ssh} style sheet, which is in the current directory, and is said case insensitive. Run @example ubu $ a2ps foo.c -Ec.ssh -P void -v sheets @i{# Long output deleted} Checking coherence of "C" (c.ssh) a2ps: c.ssh:`FILE' uses upper case characters a2ps: c.ssh:`NULL' uses upper case characters "C" (c.ssh) is corrupted. ---------- End of Finalization of c.ssh @end example @noindent Here, it is clear that @code{C} is not case insensitive. @c ---------------------------------------- A tutorial on style sheets @node A tutorial on style sheets @section A Tutorial on Style Sheets In this section a simple example of style sheet is entirely covered: that of @file{ChangeLog} files. @file{ChangeLog} files are some kind of memory of changes done to files, so that various programmers can understand what happened to the sources. This helps a lot, for instance, in guessing what recent changes may have introduced new bugs. @menu * Example and syntax:: ChangeLog files * Implementation:: Implementation of chlog.ssh * The Entry in sheets.map:: Getting automatic style selection * More Sophisticated Rules:: Complex regular expressions * Distributed Style Sheets:: Additional Constraints @end menu @node Example and syntax @subsection Example and syntax First of all, here is a sample of a @file{ChangeLog} file, taken from the @file{misc/} directory of the original @pack{} package: @example Sun Apr 27 14:29:22 1997 Akim Demaille <demaille@@inf.enst.fr> * base.ps: Merged in color.ps, since now a lot is common [added box and underline features]. Fri Apr 25 14:05:20 1997 Akim Demaille <demaille@@inf.enst.fr> * color.ps: Added box and underline routines. Mon Mar 17 20:39:11 1997 Akim Demaille <demaille@@gargantua.enst.fr> * base.ps: Got rid of CourierBack and reencoded_backspace_font. Now the C has to handle this by itself. Sat Mar 1 19:12:22 1997 Akim Demaille <demaille@@gargantua.enst.fr> * *.enc: they build their own dictionaries, to ease multi lingual documents. @end example The syntax is really simple: A line specifying the author and the date of the changes, then a list of changes, all of them starting with an star followed by the name of the files concerned, then optionally between parentheses the functions affected, and then some comments. @node Implementation @subsection Implementation Quite naturally the style will be called @code{ChangeLog}, hence: @example style ChangeLog is written by "Akim Demaille <demaille@@inf.enst.fr>" version is 1.0 requires a2ps 4.9.5 documentation is "This is a tutorial style sheet.\n" end documentation ... end style @end example A first interesting and easy entry is that of function names, between @samp{(} and @samp{)}: @example sequences are "(" Plain Label ")" Plain end sequences @end example A small problem that may occur is that there can be several functions mentioned separated by commas, that we don't want to highlight this way. Commas, here, are exceptions. Since regular expressions are not yet implemented in @pack{}, there is a simple but stupid way to avoid that white spaces are all considered as part of a function name, namely defining two exceptions: one which captures a single comma, and a second, capturing a comma and its trailing space. For the file names, the problem is a bit more delicate, since they may end with @samp{:}, or when starts the list of functions. Then, we define two sequences, each one with one of the possible closers, the exceptions being attached to the first one: @example sequences are "* " Plain Label_strong ":" Plain exceptions are ", " Plain, "," Plain end exceptions, "* " Plain Label_strong " " Plain end sequences @end example Finally, let us say that some words have a higher importance in the core of text: those about removing or adding something. @example keywords in Keyword_strong are add, added, remove, removed end keywords @end example Since they may appear in lower or upper, of mixed case, the style will be defined as case insensitive. Finally, we end up with this style sheet file, in which an optional highlighting of the mail address of the author is done. Saving the file is last step. But do not forget that a style sheet has both a name as nice as you may want (such as @samp{Common Lisp}), and a key on which there are strict rules: the prefix must be alpha-numerical, lower case, with no more than 8 characters. Let's chose @file{chlog.ssh}. @example # This is a tutorial on a2ps' style sheets style ChangeLog is written by "Akim Demaille <demaille@@inf.enst.fr>" version is 1.0 requires a2ps 4.9.5 documentation is "Second level of high lighting covers emails." end documentation sequences are "(" Plain Label ")" Plain exceptions are ", " Plain, "," Plain end exceptions, "* " Plain Label_strong ":" Plain exceptions are ", " Plain, "," Plain end exceptions, "* " Plain Label_strong " " Plain end sequences keywords in Keyword_strong are add, added, remove, removed end keywords optional sequences are < Plain Keyword > Plain end sequences end style @end example As a last step, you may which to let @pack{} check your style sheet, both its syntax, and common errors: @example ubu $ a2ps -vsheet -E/tmp/chlog.ssh ChangeLog -P void @i{Long output deleted} Checking coherence of "ChangeLog" (/tmp/chlog.ssh) "ChangeLog" (/tmp/chlog.ssh) is sane. ---------- End of Finalization of /tmp/chlog.ssh @end example It's all set, your style sheet is ready! @node The Entry in sheets.map @subsection The Entry in @file{sheets.map} The last touch is to include the pattern rules about @file{ChangeLog} files (which could appear as @file{ChangeLog.old} etc.) in @file{sheets.map}: @example # ChangeLog files chlog: /ChangeLog*/ @end example This won't work... Well, not always. Not for instance if you print @file{misc/ChangeLog}. This is not a bug, but truly a feature, since sometimes one gets more information about the type of a file from its path, than from the file name. Here, to match the preceding path that may appear, just use @samp{*}: @example # ChangeLog files chlog: /*ChangeLog*/ @end example @noindent If you want to be more specific (@file{FooChangeLog} should not match), use: @example # ChangeLog files chlog: /ChangeLog*/ /*\/ChangeLog*/ @end example @node More Sophisticated Rules @subsection More Sophisticated Rules The example we have presented until now uses only basic features, and does not take advantage of the regexp. In this section we should how to write more evolved pretty printing rules. The target will be the lines like: @example Sun Apr 27 14:29:22 1997 Akim Demaille <demaille@@inf.enst.fr> Fri Apr 25 14:05:20 1997 Akim Demaille <demaille@@inf.enst.fr> @end example There are three fields: the date, the name, the mail. These lines all start at the beginning of line. The last field is the easier to recognize: is starts with a @samp{<}, and finishes with a @samp{>}. Its rule is then @samp{/<[^>]+>/}. It is now easier to specify the second: it is composed only of words, at least one, separated by blanks, and is followed by the mail: @samp{/[[:alpha:]]+([ \t]+[[:alpha:]]+)*/}. To concatenate the two, we introduce optional blanks, and we put each one into a pair of @samp{(}-@samp{)} to make each one a recognizable part: @example ([[:alpha:]]+([ \t]+[[:alpha:]]+)*) (.+) (<[^>]+>) @end example Now the first part is rather easy: it starts at the beginning of the line, finishes with a digit. Once again, it is separated from the following field by blanks. Split by groups (@pxref{Grouping Operators,,Grouping Operators,regex,Regex manual}), we have: @example ^ ([^\t ].*[0-9]) ([ \t]+) ([[:alpha:]]+([ \t]+[[:alpha:]]+)*) (.+) (<[^>]+>) @end example Now the destination is composed of back references to those groups, together with a face: @example # We want to highlight the date and the maintainer name optional operators are (/^([^\t ].*[0-9])/ # \1. The date /([ \t]+)/ # \2. Spaces /([[:alpha:]]+([ \t]+[[:alpha:]]+)*)/ # \3. Name /(.+)/ # \5. space and < /(<[^>]+)>/ # \6. email \1 Keyword, \2 Plain, \3 Keyword_strong, \5 Plain, \6 Keyword, > Plain) end operators @end example Notice the way regexps are split, to ease reading. @node Distributed Style Sheets @subsection Guide Line for Distributed Style Sheets This section is meant for people who wish to contribute style sheets. There is a couple of additional constraints, explained here. @table @emph @item The Copyright Please, do put a copyright in your file, the same as all other distributed files have: it should include your name, but also the three paragraphs stating the sheet is covered by the GPL. I won't distribute files without these paragraphs. @item The Version Do put a version number, so that people can track evolutions. @item The Requirements Make sure to include a requirement on the needed version of @pack{}. If you don't know what to put, just put the version of the @pack{} you run. @item The Documentation The documentation string is mandatory. Unless the language your style sheet covers is widely known, please document a bit what the style sheet is meant for. If there were choices you made, if there are special behaviors, document them. @item The @file{sheets.map} Entries Put in a comment on the @file{sheets.map} lines that correspond to your style sheet. @item A Test File It is better to give a test file, as small as possible, that contains the most specific and/or most difficult contructs that your style sheet supports. I need to be able to distribute this file, therefore, do not put anything that is copyrighted. @end table Finally, make sure your style sheet behaves well! (@pxref{Checking a Style Sheet}) @c ###### ##### @c # # #### #### ##### # # #### ##### # ##### ##### @c # # # # # # # # # # # # # # # @c ###### # # #### # ##### # # # # # # # @c # # # # # # # ##### # ##### # @c # # # # # # # # # # # # # # # @c # #### #### # ##### #### # # # # # @node PostScript @chapter PostScript This chapter is devoted to the information which is only relevant to PostScript. @menu * Good and Bad PostScript:: How to lose, how to win * Page Device Options:: Accessing some printers' features * Statusdict Options:: Some other features * Colors in PostScript:: Specifying a color or a gray * a2ps PostScript Files:: Convention for PostScript library files * Designing PostScript Prologues:: Make it look like what you want @end menu @node Good and Bad PostScript @section Foreword: Good and Bad PostScript @cindex Optimize for Speed @cindex Optimize for Portability @cindex PostScript Quality @cindex DSC To read this section, the reader must understand what DSC are (@pxref{Glossary}). @quotation @i{Why are there good PostScript files, easy to post-process, and bad files that none of my tools seem to understand? They print fine though!} @end quotation Once you understood that PostScript is not a page description format (like PDF is), you'll have understood most of the problem. Let's imagine for a second that you are a word processor. The user asks you to print his/her 100 page document in PostScript. Up to page 50, there are few different fonts used. Then, on pages 51 to 80, there are now many different heavy fonts. When/where will you download the fonts? The most typical choice, sometimes called @dfn{Optimize for Speed}, is, once you arrived to page 51, to download those fonts @strong{once} for the rest of the document. The global processing chain will have worked quite quickly: little effort from the software, same from the printer; better yet: you can start sending the file to the printer even before it is finished! The problem is that this is not DSC conformant, and it is easy to understand why: if somebody wants to print only the page 60, then s/he will lack the three fonts which were defined in page 51... This document is not page independent. Another choice is to download the three fonts in @strong{each} page ranging from 51 to 80, that is the PostScript file contains 30 times the definition of each font. It is easy for the application to do that, but the file is getting real big, and the printer will have to interpret 30 times the same definitions of fonts. But it is DSC conformant! And you can still send the file while you make it. Now you understand why @quotation @strong{Non DSC conformant files are not necessarily badly designed files from broken applications.} @end quotation They are files meant to be sent directly to the printer (they are still perfect PostScript files after all!), they are not meant to be post-processed. And the example clearly shows why they are @strong{right}. There is a third possibility, sometimes called @dfn{Optimize for Portability}: downloading the three fonts in the prologue of the document, i.e., the section before the first page where are given all the common definitions of the whole file. This is a bit more complicated to implement (the prologue, which is issued first though, grows at the same time as you process the file), and cannot be sent concurrently with the processing (you have to process the whole file to design the prologue). This file is small (the fonts are downloaded once only), and DSC conformant. Well, there are problems, of course... You need to wait before sending the output, it can be costly for the computer (which cannot transfer as it produces), and for the printer (you've burnt quite a lot of RAM right since the beginning just to hold fonts that won't be used before page 51... This can be a real problem for small printers). This is what @pack{} does. If should be clear that documents optimized for speed should never escape the way between the computer and the printer: no post-processing is possible. What you should remember is that some applications offer the possibility to tune the PostScript output, and they can be praised for that. Unfortunately, when these very same applications don't automatically switch to ``Optimize for Portability'' when you save the PostScript file, and they can be criticized for that. So please, think of the people after you: if you create a PostScript file meant to be exchanged, read, printed, etc; by other people: give sane DSC conformant, optimized for portability files. @node Page Device Options @section Page Device Options Page device is a PostScript level 2 feature that offers an uniform interface to control the printer's output device. @pack{} protects all page device options inside an if block so they have no effect in level 1 interpreters. Although all level 2 interpreters support page device, they do not have to support all page device options. For example some printers can print in duplex mode and some cannot. Refer to the documentation of your printer for supported options. Here are some usable page device options which can be selected with the @samp{-S} option (@samp{--setpagedevice}). For a complete listing, see @cite{PostScript Language Reference Manual} (section 4.11 Device Setup in the second edition, or section 6, Device Control in the third edition). @table @code @item Collate @var{boolean} how output is organized when printing multiple copies @item Duplex @var{boolean} duplex (two side) printing @item ManualFeed @var{boolean} manual feed paper tray @item OutputFaceUp @var{boolean} print output `face up' or `face down' @item Tumble @var{boolean} how opposite sides are positioned in duplex printing @end table @node Statusdict Options @section Statusdict Options The @code{statusdict} is a special storage entity in PostScript (called a @dfn{dictionary}), in which some variables and operators determine the behavior of the printer. This is an historic horror that existed before page device definitions were defined. They are even more printer dependent, and are provided only for the people who don't have a level printer. In any case, refer to the documentation of your printer for supported options. Here are some statusdict definitions in which you might be interested: @table @code @item manualfeed @var{boolean} Variable which determine that the manual fed paper tray will be used. Use is @samp{--statusdict=manualfeed::true}. @item setmanualfeed @var{boolean} Idem as the previous point, but use is @samp{--statusdict=setmanualfeed:true}. @item setduplexmode @var{boolean} If @var{boolean}, then print Duplex. Use if @samp{--statusdict=setduplexmode:true}. @end table @node Colors in PostScript @section Colors in PostScript Nevertheless, here are some tips on how to design your PostScript styles. It is strongly recommended to use @file{gray.pro} or @file{color.pro} as a template. There are two PostScript instructions you might want to use in your new PostScript prologue: @table @code @item setgray this instruction must be preceded by a number between 0 (black) and 1 (white). It defines the gray level used. @item setrgbcolor this instruction must be preceded by three numbers between 0 (0 %) and 1 (100%). Those three numbers are related to red, green and blue proportions used to designate a color. @end table @pack{} uses two higher level procedures, @code{BG} and @code{FG}, but both use an argument as in @code{setrgbcolor}. So if you wanted a gray shade, just give three times the same ratio. @node a2ps PostScript Files @section @pack{} PostScript Files @pack{} uses several types of PostScript files. Some are standards, such as font files, and others are meant for a2ps only. All a2ps files have two parts, one being the comments, and the other being the content, separated by the following line: @example % code follows this line @end example @node Designing PostScript Prologues @section Designing PostScript Prologues It is pretty known that satisfying the various human tastes is an NEXPTIME-hard problem, so @pack{} offers ways to customize its output through the @dfn{prologue files}. But since the authors feel a little small against NEXPTIME, they agreed on the fact that @strong{you} are the one who will design the look you like. Hence in this section, you will find what you need to know to be able to customize @pack{} output. Basically, @pack{} uses @dfn{faces} which are associated to their "meaning" in the text. @pack{} let's you change the way the faces look. @menu * Definition of the faces:: What goes in a characters style * Prologue File Format:: Including documentation * A prologue example:: A step by step example @end menu @node Definition of the faces @subsection Definition of the faces There are three things that define a face: @table @emph @item Its font You should never call the font by yourself, because sometimes @pack{} may decide that another font would be better. This is what happens for instance if a font does not support the encoding you use. Hence, never set the font by yourself, but ask @pack{} to do it. This is done through a line: @example %Face: @var{face} @var{real-font-name} @var{size} @end example @noindent This line tells @pack{} that the font of @var{face} is @var{real-font-name}. It will replace this line by the correct PostScript line to call the needed font, and will do everything needed to set up the font. The size of the text body is @code{bfs}. @item Its background color There are two cases: @enumerate @item You want a background color, then give the @dfn{RGB} (@pxref{Colors in PostScript}) ratio and @code{true} to @code{BG}: @example 0.8 0.8 0 true BG @end example @item You don't want a background color, then call @code{BG} with @code{false}: @example false BG @end example @end enumerate @item Its foreground color As @code{BG}, call @code{FG} with an @dfn{RGB} ratio: @example 0 0.5 0 FG @end example @item Its underlining @code{UL} requires a boolean argument, depending whether you want or not the current face to be underlined. @example true UL @end example @item Its boxing Requiring a boolean, @code{BX} let's a face have a box drawn around. @end table @node Prologue File Format @subsection Prologue File Format Prologue files for @pack{} must have @samp{pro} as suffix. Documentation (reported with @samp{--list-prologues}) can be included in the comment part: @example Documentation This prologue is the same as the prologue code(pb)code, but using the bold version of the fonts. EndDocumentation % code follows this line @end example @xref{Documentation Format}, for more on the format. @node A prologue example @subsection A step by step example We strongly suggest our readers not to start from scratch, but to copy one of the available styles (see the result of @samp{a2ps --list=prologues}), to drop it in one of @pack{} directories (say @samp{$HOME/.a2ps}, and to patch it until you like it. Here, we will start from @file{color.pro}, trying to give it a funky look. Say you want the keywords to be in Helvetica, drawn in a flashy pink on a light green. And strong keywords, in Times Bold Italic in brown on a soft Hawaiian sea green (you are definitely a fine art @emph{amateur}). Then you need to look for @samp{k} and @samp{K}: @example /k @{ false BG 0 0 0.9 FG %Face: Keyword Courier bfs Show @} bind def /K @{ false BG 0 0 0.8 FG %Face: Keyword_strong Courier-Bold bfs Show @} bind def @end example @noindent and turn it into: @example /k @{ 0.2 1 0.2 true BG 1 0.2 1 FG %Face: Keyword Helvetica bfs Show @} bind def /K @{ 0.4 0.2 0 true BG 0.5 1 1 FG %Face: Keyword_strong Times-BoldItalic bfs Show @} bind def @end example Waouh! It looks great! A bit trickier: let change the way the line numbers are printed. First, let's look for the font definition: @example %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup @end example Let it be in Times, twice bigger than the body font. @example %%BeginSetup % The font for line numbering /f# /Times-Roman findfont bfs 2 mul scalefont def %%EndSetup @end example How about its foreground color? @example % Function print line number (<string> # -) /# @{ gsave sx cw mul 2 div neg 0 rmoveto f# setfont 0.8 0.1 0.1 FG c-show grestore @} bind def @end example Let it be blue. Now you know the process: just put @samp{0 0 1} as @code{FG} arguments. @c ##### @c # # #### # # ##### ##### # ##### #### @c # # # ## # # # # # # # # @c # # # # # # # # # # ##### #### @c # # # # # # # ##### # # # # @c # # # # # ## # # # # # # # # @c ##### #### # # # # # # ##### #### @node Contributions @chapter Contributions This chapter documents the various shell scripts or other tools that are distributed with the @pack{} package, but are not @pack{} itself. The reader should also look at the documentation of @code{Ogonkify} (@pxref{top,,Overview,ogonkify,Ogonkify manual}), written by Juliusz Chroboczek. @menu * card:: Printing Reference Cards * fixps:: Fixing Some Ill Designed PostScript Files * pdiff:: Produce Pretty Comparison of Files @end menu @c @node a2ps Emacs mode, card, Contributions, Contributions @c @section @pack{} Emacs mode @c FIXME: Document me. @node card @section @code{card} Many users of @pack{} have asked for a reference card, presenting a summary of the options. In fact, something closely related to the output of @samp{a2ps --help}. The first version of this reference card was a PreScript file (@pxref{PreScript}) to be printed by @pack{}. Very soon a much better scheme was found: using a style sheet to pretty print directly the output of @samp{a2ps --help}! A first advantage is then that the reference cards can be printed in the tongue you choose. A second was that this treatment could be applied to any application supporting a @samp{--help}-like option. @menu * Invoking card:: Command Line Interface * Caution when Using card:: card runs commands @end menu @node Invoking card @subsection Invoking @code{card} @example card [@var{options}] @var{applications} [-- @var{-options}] @end example @noindent @code{card} is a shell script which tries to guess how to get your @var{applications}' help message (typically by the options @samp{--help} or @samp{-h}), and pretty prints it thanks to @pack{} (or the content of the environment variable @samp{A2PS} if it is set). @var{-options} are passed to @pack{}. Supported options are: @defvr {Option} -h @defvrx {Option} -@b{-}help print a short help message and exit successfully. @end defvr @defvr {Option} -V @defvrx {Option} -@b{-}version report the version and exit successfully. @end defvr @defvr {Option} -q @defvrx {Option} -@b{-}quiet @defvrx {Option} -@b{-}silent Run silently. @end defvr @defvr {Option} -D @defvrx {Option} -@b{-}debug enter in debug mode. @end defvr @defvr {Option} -l @var{language} @defvrx {Option} -@b{-}language=@var{language} specify the language in which the reference card should be printed. @var{language} should be the symbol used by @code{LC_ALL} etc. (such as @samp{fr}, @samp{it} etc.). If the @var{applications} don't support internationalization, English will be used. @end defvr @defvr {Option} -@b{-}command=@var{command} Don't try to guess the @var{applications}' way to report their help message, but rather use the call @var{command}. A typical example is @example card --command="cc -flags" @end example @end defvr It is possible to give options to @pack{} (@pxref{Options}) by specifying them after @samp{--}. For instance @example card gmake gtar --command="cc -flags" -- -Pdisplay @end example @noindent builds the reference card of @code{GNU make}, @code{GNU tar} (automatic detection of @samp{--help} support), and @code{cc} thanks to @samp{-flags}. @node Caution when Using card @subsection Caution when Using @code{card} Remember that @code{card} runs the programs you give it, and the commands you supplied. Hence if there is a silly programs that has a weird behavior given the option @samp{-h} etc., beware of the result. It is even clearer using @samp{--command}: avoid running @samp{card --command="rm -rf *"}, because the result will be exactly what you think it will be! @node fixps @section @code{fixps} The shell script @code{fixps} tries its best to fix common problems in PostScript files that may prevent post processing, using @code{ghostscript}. It is a good idea to use @code{fixps} in the PostScript delegations. @menu * Invoking fixps:: Command Line Interface @end menu @node Invoking fixps @subsection Invoking @code{fixps} @example fixps [@var{options}] [@var{file}] @end example @noindent sanitize the PostScript @var{file} (or of the standard input if no @var{file} is given, or if @var{file} is @samp{-}). Supported options are: @defvr {Option} -h @defvrx {Option} -@b{-}help Print a short help message and a list of the fixes that are performed. Exit successfully. @end defvr @defvr {Option} -V @defvrx {Option} -@b{-}version report the version and exit successfully. @end defvr @defvr {Option} -D @defvrx {Option} -@b{-}debug enter in debug mode. @end defvr @defvr {Option} -q @defvrx {Option} -@b{-}quiet @defvrx {Option} -@b{-}silent Run silently. @end defvr @defvr {Option} -o @var{file} @defvrx {Option} -@b{-}output=@var{file} specify the @var{file} in which is saved the output. @end defvr @defvr {Option} -c @defvrx {Option} -@b{-}check @defvrx {Option} -@b{-}dry-run Don't actually fix the @var{file}: just report the diagnostics. Contrary to the option @samp{fixps -qc} does absolutely nothing (while it does take some time to do it nicely). @end defvr @defvr {Option} -f @defvrx {Option} -@b{-}force Ask @code{ghoscript} for a full rewrite of the @var{file}. The output file is really sane, but can be much longer than the original. For this reason and others, it is not always a good idea to make a full rewrite. This option should be used only for files that give major problems. @end defvr @node pdiff @section @code{pdiff} The shell script @code{pdiff} aims to pretty print diffs between files. It basically uses GNU @code{diff} (@pxref{diff,,Overview,diff,Comparing and Merging Files}) or GNU @code{wdiff} (@pxref{wdiff,,The word difference finder,wdiff,GNU wdiff}) to extract the diff, then calls @pack{} with the correct settings to get a nice, printed contextual diff. @menu * Invoking pdiff:: Command Line Interface @end menu @node Invoking pdiff @subsection Invoking @code{pdiff} @example pdiff [@var{options}] @var{file-1} @var{file-2} [-- @var{-options}] @end example @noindent make a pretty comparison between @var{file-1} and @var{file-2}. @var{-options} are passed to @pack{}. Supported options are: @defvr {Option} -h @defvrx {Option} -@b{-}help print a short help message and exit successfully. @end defvr @defvr {Option} -V @defvrx {Option} -@b{-}version report the version and exit successfully. @end defvr @defvr {Option} -q @defvrx {Option} -@b{-}quiet @defvrx {Option} -@b{-}silent Run silently. @end defvr @defvr {Option} -D @defvrx {Option} -@b{-}debug enter in debug mode. @end defvr @defvr {Option} -w @defvrx {Option} -@b{-}words Look for words differences (default). White space differences are not considered. @end defvr @defvr {Option} -l @defvrx {Option} -@b{-}lines Look for lines differences. @end defvr It is possible to give options to @pack{} (@pxref{Options}) by specifying them after @samp{--}. For instance @example pdiff COPYING COPYING.LIB -- -1 -P display @end example @noindent Compares the files @file{COPYING} and @file{COPYING.LIB}, and prints it on the printer @code{display} (usually @code{Ghostview} or @code{gv}). @node lp2 @section @code{lp2} This program simplifies printing documents double-sided (duplex) or a single-sided (simplex) printer. The idea is simply first to print the odd pages, then the even in reversed order. @menu * Invoking lp2:: Command Line Interface @end menu @node Invoking lp2 @subsection Invoking @code{lp2} @example lp2 [@var{options}] [@var{file}] @end example @noindent print the given file using @code{lp}. First print the odd pages, then prompt the user to put the printed pages back in, then print the even pages in reverse order. Supported options are: @defvr {Option} -h @defvrx {Option} -@b{-}help print a short help message and exit successfully. @end defvr @defvr {Option} -V @defvrx {Option} -@b{-}version report the version and exit successfully. @end defvr @defvr {Option} -f @defvrx {Option} -@b{-}front Print only the front pages. @end defvr @defvr {Option} -b @defvrx {Option} -@b{-}back Print only the back pages. @end defvr Typical use is @example lp2 file.ps @end example @noindent or can be put into @pack{}' printer commands (@pxref{Your Printers}). @c ####### # ##### @c # # # # # @c # # # # # @c ##### # # # # @c # ####### # # # @c # # # # # @c # # # #### # @node FAQ @chapter Frequently asked questions @c @section Security issues @c @strong{Note.} I am not really aware of security problems. I am just @c making assumptions upon my poor knowledge, so if somebody sees things @c that should be reported here, or problem I'm not aware of, please @c contact us so that this note gets extended or fixed. @c One should understand that any program that has not been written to be @c secure is never secure. It is of course the case of @pack{}. @c Do not panic, there are no reason for you to worry. Nevertheless we can @c yet imagine ways to obtain illegal rights thanks to some features of @c @pack{}, especially virtual printers. @c If @pack{} is run by root, then the files it may create are owned by @c root. This can for instance happen if you install @pack{} as one of @c @code{lp} or @code{lpr} filter. @c Then, if one of the virtual printer creates say a shell script, it is @c owned by root too. With just a bit of habit, it should not be difficult @c then to access privileged access to the system. @c In what conditions could it happen? @strong{Only} if there are some @c printers defined in the system configuration file of @pack{}, or in @c root's home directory @file{.a2ps/a2psrc}. Hence, make sure to carefully @c write the commands to the preconfigured printers. @c As you can see, this is quite science fiction, nevertheless, you might @c wanted to know. Please, before sending us mail, make sure the problem you have is not known, and explained. Moreover, avoid using the mailing list for asking question about the options, etc. It has been built for announces and suggestions, not to contact the authors. @menu * Why Does ...?:: Questions on Error * How Can I ...?:: a2ps' How-To * Please tell me...:: Existential Questions on a2ps @end menu @node Why Does ...? @section Why Does...? Error related questions. @menu * It Prints Nothing:: The printer issues nothing * It Prints in Simplex:: While I asked for Duplex * It Prints in Duplex:: While I asked for Simplex * It Does Not Fit on the Paper:: Some parts are missing * It Prints Junk:: Random characters * It Says my File is Binary:: And refuses to print it * It Refuses to Change the Font Size:: @end menu @node It Prints Nothing @subsection Why Does it Print Nothing? @quotation @i{works OK, but the printer prints nothing.} @end quotation There are two ways that printing can fail: silently, or with a diagnostic. First, @strong{check that the printer received what you sent}. @pack{} may correctly do its job, but have the printer queue fail to deliver the job. In case of doubt, please check that the printer's leds blink (or whatever is its way to show that something is being processed). If the printer does receive the job, but prints nothing at all, check that you did not give exotic options to an old printer (typically, avoid printing on two sides on a printer that does not support it). Avoid using @samp{-S}, @samp{--setpagedevice} (@pxref{Page Device Options}) and @samp{--statusdict} (@pxref{Statusdict Options}). If the trouble persists, please try again but with the option @samp{--debug} (a PostScript error handler is downloaded), and then send us: @enumerate @item the input file that gives problems @item the output file created by @pack{} @strong{with the option @samp{--debug}} @item the error message that was printed. @end enumerate @node It Prints in Simplex @subsection Why Does it Print in Simplex? @quotation @i{Though I ask @pack{} to print Duplex via @samp{--sides}, the job is printed Simplex.} @end quotation If your printer is too old, then @pack{} will not be able to send it the code it needs when @samp{-s2} is specified. This is because your printer uses an old and not standardized interface for special features. So you need to @enumerate @item specify that you want Duplex mode: @samp{-s2}, @item remove by hand the standardized call to the Duplex feature: @samp{-SDuplex}, @item add the non standard call to Duplex. Try @samp{--statusdict=setduplexmode:true}. @end enumerate Since this is painful to hit, a User Option (@pxref{Your Shortcuts}) should help. @node It Prints in Duplex @subsection Why Does it Print in Duplex? @quotation @i{Though I ask @pack{} to print Simplex via @samp{--sides}, the job is printed Duplex.} @end quotation Actually when you require Simplex, @pack{} issues nothing, for portability reasons. Hence, if your printer is defaulted to Duplex, the job will be Duplexed. So you have to force @pack{} to issue the Simplex request with @samp{-SDuplex:false}. The user options @samp{-=s1} and @samp{-=simplex} have names easier to remember. In the next version of @pack{} this kind of portability problems will be fixed in a user friendly way. @node It Does Not Fit on the Paper @subsection Why Does it Not Fit on the Paper? @quotation @i{When I print text files with @pack{}, it prints beyond the frame of the paper.} @end quotation You are most probably printing with a bad medium, for instance using A4 paper within @pack{}, while your printer uses Letter paper. Some inkjet printers have a small printable area, and @pack{} may not expect it. In both case, read @ref{Sheet Options}, option @samp{--medium} for more. @node It Prints Junk @subsection Why Does it Print Junk? @quotation @i{What I get on the printer is long and incomprehensible. It does not seem to correspond to what I wanted to print.} @end quotation You are probably printing a PostScript file or equivalent. Try to print with @samp{-Z}: @pack{} will try to do his best to find what is the program that can help you (@pxref{Your Delegations}). In case of doubt, don't hesitate to save into a file, and check the content with @code{Ghostview}, or equivalent: @example @cartouche $ a2ps my_weird_file -Z -o mwf.ps $ gv mwf.ps @end cartouche @end example @noindent If your @pack{} is correctly installed, you can use the @samp{display} fake-printer: @example @cartouche $ a2ps my_weird_file -Z -P display @end cartouche @end example If it is incorrect, ask for help around you. @node It Says my File is Binary @subsection Why Does it Say my File is Binary? @quotation @i{complains that my file is binary though it is not.} @end quotation There are several reasons that can cause @pack{} to consider a file is binary: @itemize @minus @item there are many non printable characters in the file. Then you need to use the option @samp{--print-anyway}. @item the file is sane, composed of printable characters. Then it is very likely that @code{file(1)} said the type of the file is @samp{data}, in which case @pack{} prefers not to print the file. Then you can either: @itemize @minus @item specify the type of the file, for instance @samp{-Eplain}; @item specify to print in any case, @samp{--print-anyway}; @item remove the annoying rule from the system's @file{sheets.map}: @example binary: <data*> @end example @item insert in your own @file{~/.a2ps/sheets.map} a rule that overrides that of the system's @file{sheets.map}: @example @i{# Load the system's sheets.map} include(/usr/local/share/a2ps/sheets/sheets.map) @i{# Override the rule for files with type `data' according to file(1)} plain: <data*> @end example But this is not very good, since then this rule is always the first tested, which means that any file with type @samp{data} according to @code{file(1)} will be printed in @samp{plain} style, even if the file is called @file{foo.c}. @item if your files can be recognized, insert a new rule in a @file{sheets.map}, such as @example @i{# file(1) says it's data, but it's pure text} plain: /*.txx/ @end example @end itemize @end itemize @node It Refuses to Change the Font Size @subsection Why Does it Refuse to Change the Font Size @quotation @emph{@pack{} does not seem to honor @code{--font-size} (or @samp{--lines-per-page}, or @samp{--chars-per-line}).} @end quotation This is probably because you used @samp{-1}..@samp{-9} after the @samp{--font-size}. This is wrong, because the options @samp{-1}..@samp{-9} set the font size (so that there are 80 characters per lines), and many other things (@xref{Page Options}, option @samp{--font-size}). Hence @samp{a2ps --font-size=12km -4} is exactly the same thing as @samp{a2ps -4}, but is different from @samp{a2ps -4 --font-size=12km}. Note that the `pure' options (no side-effects) to specify the number of virtual pages are @samp{--columns} and @samp{--rows}. @c -----------------------------How can I ? ------------------------------ @node How Can I ...? @section How Can I ...? A mini how-to on @pack{}. @menu * Leave Room for Binding:: Specifying Margins * Print stdin:: Using a2ps in a pipe chain * Change the Fonts:: Tired of Courier? * The Old Option -b?:: Printing in Bold * Pass Options to lpr:: Disable the banner * Man Pages with Underlines:: Now it Prints With Italics @end menu @node Leave Room for Binding @subsection How Can I Leave Room for Binding? The option @samp{--margin[=@var{size}]} is meant for this. See @ref{Sheet Options}. @node Print stdin @subsection How Can I Print @code{stdin}? @pack{} prints the standard input if you give no file name, or if you gave @samp{-} as file name. Automatic style selection is of course much weaker: without the file name, @pack{} can only get @code{file(1)}'s opinion (@pxref{Style Sheet Files}). In general it means most delegations are safe, but there will probably be no pretty-printing. @emph{You} can supply a name to the standard input (@samp{--stdin=@var{name}}) with which it could guess the language. @node Change the Fonts @subsection How Can I Change the Fonts? @xref{Designing PostScript Prologues}, for details. Make sure that all the information @pack{} needs is available (@pxref{Font Files}). @node The Old Option -b? @subsection How Can I Simulate the Old Option @samp{-b}? By the past, @pack{} had an option @samp{-b} with which the fonts were bold. Since now the fonts are defined by prologues (@pxref{Designing PostScript Prologues}) this option no longer makes sense. A replacement prologue is provided: @samp{bold}. To use it, give the option @samp{--prologue=bold}. @node Pass Options to lpr @subsection How Can I Pass Options to @samp{lpr} @cindex banner @vindex lp.options @quotation @i{How can I tell @code{a2ps} to ask @code{lpr} no to print the banner?} @i{How can I pass specific options to @code{lp}?} @end quotation If your @samp{Printer:} fields in the configuration files were properly filled (@pxref{Your Printers}), you can use the variable @samp{lp.options} to pass options to @code{lpr} (or @code{lp}, depending on your environment): @example a2ps -Dlp.options="-h -s" -P printer @end example @noindent You can also define @samp{lp.options} once for all (@pxref{Defining Variables}). Finally, you can use @samp{Printer:} several times to reach a printer with different @code{lpr} options. @node Man Pages with Underlines @subsection How Can I Print Man Pages with Underlines @quotation @i{By the past, when I printed a man page with @pack{}, it used underlines, but now it uses italics. I want underlines back!} @end quotation Use @samp{a2ps --pro=ul}. @c -------------------------- Please Tell me ? ------------------------------ @node Please tell me... @section Please tell me... Wondering something? @menu * Is a2ps Y2K compliant?:: Printing dates in short format * Why not using yacc:: Why Using Style Sheets @end menu @node Is a2ps Y2K compliant? @subsection Is @pack{} Y2K compliant? The famous Y2K@footnote{Year 2000.} problem... Yes, @pack{} is Y2K compliant since version 4.10.3. Nevertheless, please note that you can still use two digit years. @strong{You} are responsible for your choice of date format (@pxref{Escapes}). @node Why not using yacc @subsection Why not having used @code{yacc} and such There are several reasons why we decided not to use grammars to parse the files. Firstly it would have made the design of the style sheets much more tricky, and today @pack{} would know only 4 or 5 languages. Secondly, it limits the number of persons who could build a style sheet. Thirdly, we did not feel the need for such a powerful tool: handling the keywords and the sequences is just what the users expect. Fourthly, any extension of @pack{} would have required to recompile. And last but not least, using a parser requires that the sources are syntactic bug free, which is too strong a requirement. Nevertheless, @code{PreScript} gives the possibility to have on the one hand a syntactic parser which would produce @code{PreScript} code, and on the other hand, @pack{}, which would make it PostScript. This schema seems to us a good compromise. If it is still not enough for you, you can use the library. @c FIXME: (@pxref{Programming with the Library}). @c ##### @c # # # #### #### #### ## ##### # # @c # # # # # # # # # # # # @c # #### # # # #### #### # # # # # @c # # # # # # # ###### ##### # @c # # # # # # # # # # # # # # @c ##### ###### #### #### #### # # # # # @node Glossary @appendix Glossary This section settles some terms used through out this document, and provides the definitions of some terms you probably want to know about. @table @dfn @item Adobe @cindex Adobe Adobe is the firm who designed and owns the PostScript language. The patent that printer manufacturers must pay to Adobe is the main reason why PostScript printers are so expansive. @item AFM file @cindex AFM AFM stands for Adobe Font Metrics. These files contain everything one needs to know about a font: the width of the characters, the available characters etc. @item Charset @cindex Charset @itemx Code Set @cindex Code Set Cf. Encoding. @item Delegate @cindex Delegate Another filter (application) which @pack{} may call to process some files. This feature is especially meant for page description files (@pxref{Your Delegations}). @item DSC @cindex DSC @itemx Document Structuring Conventions @cindex Document Structuring Conventions Because PostScript is a language, any file describing a document can have an arbitrary complexity. To ease the post-processing of PostScript files, the document should follow some conventions. Basically there are two kinds of conventions to follow: @table @asis @item Page Independence Special comments state where the pages begin and end. With these comments (and the fact that the code describing a page starts and ends somewhere, which is absolutely not necessary in PostScript), very simple programs (such as @code{psnup}, @code{psselect} etc.) can post process PostScript files. @item Requirements Special features may be needed to run correctly the file. Some comments specify what services are expected from the printer (e.g., fonts, duplex printing, color etc.), and other what features are provided by the file itself (e.g., fonts, procsets etc.), so that a print manager can decide that a file cannot be printed on that printer, or that it is possible if the file is slightly modified (e.g., adding a required font not known by the printer) etc. @end table The DSC are edited by Adobe. A document which respects them is said to be @dfn{DSC conformant}. @pack{} follows all the DSC. @item Duplex @itemx DuplexTumble @itemx DuplexNoTumble @cindex Duplex @cindex DuplexTumble @cindex DuplexNoTumble To print @dfn{Duplex} is to print double-sided. There are two ways to print Duplex depending whether the second face is printed upside-down or not: @table @dfn @item DuplexTumble DuplexTumble is suitable when (if it were to be bound) the document would be bound along the short edge (for instance when you are printing booklets). @item DuplexNoTumble DuplexNoTumble corresponds to binding along the long edge of the medium. A typical case is when printing one-up. @end table @item Encoding @cindex Encoding Association of human readable characters, and computers' internal numbered representation. In other words, they are the alphabets, which are different according to your country/mother tongue. E.g.: ASCII, Latin 1, corresponding to Western Europe etc. To know more about encodings, see @ref{What is an Encoding}. @item @code{Ghostscript} @item @code{gs} @cindex @code{Ghostscript} @cindex @code{gs} @href{https://www.ghostscript.com, @code{Ghostscript}}, @code{gs} for short, is a full PostScript interpreter running under many various systems (Unices, MS-DOS, Mac etc.). It comes with a large set of output formats allowing many different applications: @table @emph @item Displaying It can be used either to view PostScript files (in general thanks to a graphic interface such as @code{Ghostview} or @code{gv} ...). @item Converting It can convert to other languages/formats, e.g. portable PostScript, Encapsulated PS etc. @item Translating to a printer dedicated language, e.g., PCL. In particular, thanks to @code{ghostscript}, you may print PostScript files on non PostScript printers. @end table @item Face @cindex Face A virtual style given to some text. For instance, @emph{Keyword}, @emph{Comment} are faces. @item Headings @cindex Headings Everything that goes around the page and is not part of the text body. Typically the title, footer etc. @item Key @cindex Key Many objects used in @pack{}, such as encodings, have both a key and a name. The word @dfn{name} is used for a symbol, a label, which is only meant to be nice to read by a human. For instance @samp{ISO Latin 1} is a name. @pack{} never uses a name, but the key. A @dfn{key} is the identifier of a unique object. This is information that @pack{} processes, hence, whenever you need to specify an object to @pack{}, use the key, not its name. For instance @samp{latin1} is the unique identifier of the @samp{ISO Latin 1} encoding. @item Logical page @cindex Logical page Cf. Virtual page. @item lhs @itemx left hand side See @dfn{P-rule}. @item Medium @cindex Medium Official name (by Adobe) given to the output physical support. In other words, it means the description of a sheet, e.g., A4, Letter etc. @item Name See @dfn{Key}. @item Page @cindex Page A single side of a sheet. @item Page Description Language @cindex Page Description Language A language that describes some text (which may be enriched with pointers, pictures etc.) and its layout. @code{HTML}, PostScript, @LaTeX{}, @code{roff} and others are such languages. A file written in those languages is not made to be read as is by a human, but to be transformed (or compiled) into a readable form. @item PCL @cindex PCL FIXME: @item PFA file @cindex PFA file PostScript Font in ASCII format. This file can be directly down loaded to provide support for another font. @item PFB file @cindex PFB file PostScript Font in Binary format. In PFA files there are long sequences of hexadecimal digits. Here these digits are represented by their value, hence compressing 2 characters in a PFA into 1 in the PFB. This is the only advantage since a PFB file cannot be directly sent to printer: it must first be decompressed (hence turned into a PFA file) before being used. @item PostScript @cindex PostScript @dfn{PostScript} is a page description language designed for @emph{Raster output devices}. It is even more powerful than that: unlike to @code{HTML}, or @code{roff}, but as @TeX{} and @LaTeX{}, it is truly a programming language which main purpose is to draw (on sheets). Most programs are a list of instructions that describes lines, shades of gray, or text to draw on a page. This is the language that most printers understand. Note that the fact that PostScript is a programming language is responsible of both its success and its failure. It is a big win for the PostScript programmer who can easily implement a lot of nice visual effects. It is a big loss because the page descriptions can have an arbitrary complexity, hence rendering can be really slow (remember the first Laser you had, or even @code{Ghostscript}. @code{PDF} has been invented by Adobe to remedy these problems). PostScript is a trademark of Adobe Systems Incorporated. @item PPD file @cindex PPD file @itemx PostScript Printer Description file These files report everything one needs to know about a printer: the known fonts, the patches that should be down loaded, the available memory, the trays, the way to ask it duplex printing, the supported media, etc. PostScript has pretended to be a device independent page description language, and the PPD files are here to prove that device independence was a failure. @item ProcSet @cindex ProcSet Set of (PostScript) procedures. @item Prologue @cindex Prologue PostScript being a language, a typical PostScript program (i.e. a typical PostScript file) consists of two parts. The first part is composed of resources, such as fonts, procsets, etc. and the second part of calls to these procedures. The first part is called the @dfn{prologue}, and the second, the @dfn{script}. @item P-rule @cindex P-rule Pretty printing rule. It is composed of a @dfn{left-hand side}, (@dfn{lhs} for short), and a @dfn{right-hand side}, (@dfn{rhs}). The lhs describes when the rule is triggered (i.e., the pattern of text to match), and the rhs specifies the pretty printed output. @xref{P-Rules}, for more semantical details, and see @ref{Syntax for the P-Rules}, for implementation. @item @code{psutils} @cindex @code{psutils} @cindex Angus Duggan The @href{https://github.com/rrthomas/psutils, @dfn{psutils}} is a set of tools for PostScript post processing. They let you resize the frame into which the page is drawn, reorder or select pages, put several pages onto a single sheet, etc. To allow the @code{psutils} to run correctly, the PostScript files must be DSC conformant, and the bad news is that many PostScript drivers produce files which are not. @code{fixps} uses @code{ghostscript} to fix non-conformant files. @item Raster Image Processor @itemx RIP The hardware and/or software that translates data from a high-level language (e.g., PostScript) into dots or pixels in a printer or image setter. @item Raster Output Device @cindex Raster Output Device Behind these words is hidden the general class of devices which have Pixels that can be addressed individually: Laser, Ink or Dot printers, but also regular screens etc. It is typically opposed to the class of devices which @emph{plot}, i.e., have a pen that they move on the paper. @item rhs @itemx right hand side See @dfn{P-rule}. @item RIP See @dfn{Raster Image Processor}. @item Script @cindex Script See @dfn{Prologue}. @item Sheet @cindex Sheet The physical support of the printing: it may support one or two pages, depending on your printing options. @item Style sheet @cindex Style sheet Set of rules used by @pack{} to give a face to the strings of a file. In @pack{}, each programming language which is supported is defined via one style-sheet. @item Tumble @cindex Tumble See @dfn{Duplex}. @item Virtual page @cindex Virtual page Area on a physical page in which @pack{} draws the content of a file. There may be several virtual pages on a physical page. (``virtual page'' is the name recommended by Adobe). @end table @c # # @c # # # #### ##### #### ##### # # @c # # # # # # # # # # # @c ####### # #### # # # # # # @c # # # # # # # ##### # @c # # # # # # # # # # # @c # # # #### # #### # # # @node Genesis @appendix Genesis Here are some words on @pack{} and its history. @menu * History:: Where does it come from * Thanks:: People who really helped @end menu @node History @section History The initial version was a shell program written by @email{evan@@csli, Evan Kirshenbaum}. It was very slow and contained many bugs. A new version was written in @code{C} by @email{Miguel.Santana@@st.com, Miguel Santana} to improve execution speed and portability. Many new features and improvements have been added since this first version. Many contributions (changes, fixes, ideas) were done by @pack{} users in order to improve it. From the latest version from Miguel Santana (4.3), Emmanuel Briot implemented bold faces for keywords in @code{Ada}, @code{C} and @code{C++}. From that version, @email{akim@@freefriends.org, Akim Demaille} generalized the pretty-printing capabilities, implemented more languages support, and other features. Masayuki Hatta maintained a2ps for several years. Later, David Seifert modernized and cleaned up the code considerably. Latterly, Reuben Thomas did more clean-up and bug-fixing, and released version 4.15, the first release for many years. @node Thanks @section Thanks Patrick Andries and Roman Czyborra provided us with important information on encodings. Juliusz Chroboczek worked a lot on the integration of the products of Ogonkify (such as Latin 2 etc. fonts) in @pack{}. Without his help, and the time is devoted to both @pack{} and @code{ogonkify}, many non west-European people would still be unable to print easily texts written in their mother tongue. Denis Girou brought a constant and valuable support through out the genesis of pretty-printing @pack{}. His comments on both the program and the documentation are the origin of many pleasant features (such as @samp{--prologue}). Alexander Mai provided us with invaluable help in the development. He spotted several times subtle bugs in @pack{} and the contributions, he keeps a vigilant eye on portability issues, he checks and improves the style sheets, and he maintains a port of @pack{} for OS/2. Graham Jenkins, with an extraordinary regularity, tortures @pack{} on weird systems that nobody ever heard of @samp{:)}. Graham is usually the ultimate test: if he says I can release @pack{}, I rest reassured that, yes, this time it @strong{will} compile! If @pack{} works today on your system, you should thank Graham too! Of course this list is not up to date, and never will be. We would like to thank everybody that helped us, talked to us, and even criticized us with the intention to help us to improve @pack{}. In particular, many thanks to all those who wrote style sheets, translated @pack{}, reported and fixed bugs, and gave us other feedback over the years. @c ##### @c # # #### ##### # # # # # #### @c # # # # # # # # ## # # # @c # # # # # # # # # # # @c # # # ##### # # # # # # ### @c # # # # # # # # ## # # @c ##### #### # # # # # #### @node Copying @appendix Copying @cindex Copying The subroutines and source code in the @pack{} package are "free"; this means that everyone is free to use them and free to redistribute them on a free basis. The @pack{}-related programs are not in the public domain; they are copyrighted and there are restrictions on their distribution, but these restrictions are designed to permit everything that a good cooperating citizen would want to do. What is not allowed is to try to prevent others from further sharing any version of these programs that they might get from you. Specifically, we want to make sure that you have the right to give away copies of the programs that relate to @pack{}, that you receive source code or else can get it if you want it, that you can change these programs or use pieces of them in new free programs, and that you know you can do these things. To make sure that everyone has such rights, we have to forbid you to deprive anyone else of these rights. For example, if you distribute copies of the @pack{}-related code, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. Also, for our own protection, we must make certain that everyone finds out that there is no warranty for the programs that relate to @pack{}. If these programs are modified by someone else and passed on, we want their recipients to know that what they have is not what we distributed, so that any problems introduced by others will not reflect on our reputation. The precise conditions of the licenses for the programs currently being distributed that relate to @pack{} are found in the General Public Licenses that accompany them. @node Concept Index @unnumbered Concept Index @printindex cp @c This is not really needed yet. @c @node Function Index, , Concept Index, Top @c @unnumbered Function Index @c @printindex fn @contents @bye @c Local variables: @c ispell-local-dictionary: "american" @c texinfo-column-for-description: 32 @c End: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/encoding.texi�����������������������������������������������������������������������0000644�0000000�0000000�00000011246�14415562607�012606� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The known encodings are: @deftp {Encoding} {ASCII} (@file{ascii.edf}) US-ASCII. @end deftp @deftp {Encoding} {EUC-JP} (@file{euc-jp.edf}) The EUC-JP encoding is a 8-bit character set widely used in Japan. @end deftp @deftp {Encoding} {HPRoman} (@file{hp.edf}) The 8 bits Roman encoding for HP. @end deftp @deftp {Encoding} {IBM-CP437} (@file{ibm-cp437.edf}) This encoding is meant to be used for PC files with drawing lines. @end deftp @deftp {Encoding} {IBM-CP850} (@file{ibm-cp850.edf}) Several characters may be missing, especially Greek letters and some mathematical symbols. @end deftp @deftp {Encoding} {ISO-8859-1} (@file{iso1.edf}) The ISO-8859-1 character set, often simply referred to as Latin 1, covers most West European languages, such as French, Spanish, Catalan, Basque, Portuguese, Italian, Albanian, Rhaeto-Romanic, Dutch, German, Danish, Swedish, Norwegian, Finnish, Faroese, Icelandic, Irish, Scottish, and English, incidentally also Afrikaans and Swahili, thus in effect also the entire American continent, Australia and the southern two-thirds of Africa. The lack of the ligatures Dutch IJ, French OE and ,,German`` quotation marks is considered tolerable. The lack of the new C=-resembling Euro currency symbol U+20AC has opened the discussion of a new Latin0. @end deftp @deftp {Encoding} {ISO-8859-2} (@file{iso2.edf}) The Latin 2 character set supports the Slavic languages of Central Europe which use the Latin alphabet. The ISO-8859-2 set is used for the following languages: Czech, Croat, German, Hungarian, Polish, Romanian, Slovak and Slovenian. Support is provided thanks to Ogonkify. @end deftp @deftp {Encoding} {ISO-8859-3} (@file{iso3.edf}) This character set is used for Esperanto, Galician, Maltese and Turkish. Support is provided thanks to Ogonkify. @end deftp @deftp {Encoding} {ISO-8859-4} (@file{iso4.edf}) Some letters were added to the ISO-8859-4 to support languages such as Estonian, Latvian and Lithuanian. It is an incomplete precursor of the Latin 6 set. Support is provided thanks to Ogonkify. @end deftp @deftp {Encoding} {ISO-8859-5} (@file{iso5.edf}) The ISO-8859-5 set is used for various forms of the Cyrillic alphabet. It supports Bulgarian, Byelorussian, Macedonian, Serbian and Ukrainian. The Cyrillic alphabet was created by St. Cyril in the 9th century from the upper case letters of the Greek alphabet. The more ancient Glagolithic (from the ancient Slav glagol, which means "word"), was created for certain dialects from the lower case Greek letters. These characters are still used by Dalmatian Catholics in their liturgical books. The kings of France were sworn in at Reims using a Gospel in Glagolithic characters attributed to St. Jerome. Note that Russians seem to prefer the KOI8-R character set to the ISO set for computer purposes. KOI8-R is composed using the lower half (the first 128 characters) of the corresponding American ASCII character set. @end deftp @deftp {Encoding} {ISO-8859-7} (@file{iso7.edf}) ISO-8859-7 was formerly known as ELOT-928 or ECMA-118:1986. It is meant for modern Greek. @end deftp @deftp {Encoding} {ISO-8859-9} (@file{iso9.edf}) The ISO 8859-9 set, or Latin 5, replaces the rarely used Icelandic letters from Latin 1 with Turkish letters. Support is provided thanks to Ogonkify. @end deftp @deftp {Encoding} {ISO-8859-10} (@file{iso10.edf}) Latin 6 (or ISO-8859-10) adds the last letters from Greenlandic and Lapp which were missing in Latin 4, and thereby covers all Scandinavia. Support is provided thanks to Ogonkify. @end deftp @deftp {Encoding} {ISO-8859-13} (@file{iso13.edf}) Latin7 (ISO-8859-13) is going to cover the Baltic Rim and re-establish the Latvian (lv) support lost in Latin6 and may introduce the local quotation marks. Support is provided thanks to Ogonkify. @end deftp @deftp {Encoding} {ISO-8859-15} (@file{iso15.edf}) The new Latin9 nicknamed Latin0 aims to update Latin1 by replacing some less needed symbols (some fractions and accents) with forgotten French and Finnish letters and placing the U+20AC Euro sign in the cell of the former international currency sign. Support of the Euro symbol is provided thanks to Ogonkify. @end deftp @deftp {Encoding} {KOI8} (@file{koi8.edf}) KOI-8 is a subset of ISO-IR-111 that can be used in Serbia, Belarus etc. @end deftp @deftp {Encoding} {MS-CP1250} (@file{ms-cp1250.edf}) Microsoft's CP-1250 encoding (aka CeP). @end deftp @deftp {Encoding} {MS-CP1251} (@file{ms-cp1251.edf}) Microsoft CP1251 is encoding used in Microsoft Windows for Cyrillic languages @end deftp @deftp {Encoding} {Macintosh} (@file{mac.edf}) For the Macintosh encoding. The support is not sufficient, and a lot of characters may be missing at the end of the job (especially Greek letters). @end deftp ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/prologue.texi�����������������������������������������������������������������������0000644�0000000�0000000�00000002612�14415562607�012651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@table @samp @item bold This style is meant to replace the old option @code{-b} of a2ps 4.3. It is a copy of the black and white prologue, but in which all the fonts are in Bold. @item bw Style is plain: pure black and white, with standard fonts. @item color Colors are used to highlight the keywords. @item diff This style is meant to be used with the @code{udiff}, @code{wdiff} style sheets, to underline the differences. New things are in bold on a diff background, while removed sequences are in italic. @item diffcolor Colors are used to highlight the keywords (for diffs). @item fixed This style uses exclusively fixed size fonts. You should use this style if you want the tabulations to be properly printed. There are no means to use a fixed size Symbol font, therefore you should not use the heavy highlighting style. @item gray Gray background is used for comments and labels. @item gray2 Black background is used for comments and labels. @item matrix The layout is the same as @samp{bw}, but alternating gray and white lines. There are two macros defining the behavior: @samp{pro.matrix.cycle} defines the length of the cycle (number of white and gray lines). It defaults to 6. @samp{pro.matrix.gray} defines the number of gray lines. Default is 3. @item ul This style uses bold faces and underlines, but never italics. This is particularly meant for printing formatted man pages. @end table ����������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/regex.info��������������������������������������������������������������������������0000644�0000000�0000000�00000364420�14415562611�012114� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This is regex.info, produced by makeinfo version 6.8 from regex.texi. INFO-DIR-SECTION C library code START-INFO-DIR-ENTRY * Regex: (regex). Regular expression library. END-INFO-DIR-ENTRY This file documents the GNU regular expression library. Copyright (C) 1992, 1993 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled "GNU General Public License" is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that the section entitled "GNU General Public License" may be included in a translation approved by the Free Software Foundation instead of in the original English.  File: regex.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) Regular Expression Library ************************** This manual documents how to program with the GNU regular expression library. This is edition 0.12a of the manual, 19 September 1992. The first part of this master menu lists the major nodes in this Info document, including the index. The rest of the menu lists all the lower level nodes in the document. * Menu: * Overview:: * Regular Expression Syntax:: * Common Operators:: * GNU Operators:: * GNU Emacs Operators:: * What Gets Matched?:: * Programming with Regex:: * Copying:: Copying and sharing Regex. * Index:: General index. -- The Detailed Node Listing -- Regular Expression Syntax * Syntax Bits:: * Predefined Syntaxes:: * Collating Elements vs. Characters:: * The Backslash Character:: Common Operators * Match-self Operator:: Ordinary characters. * Match-any-character Operator:: . * Concatenation Operator:: Juxtaposition. * Repetition Operators:: * + ? {} * Alternation Operator:: | * List Operators:: [...] [^...] * Grouping Operators:: (...) * Back-reference Operator:: \digit * Anchoring Operators:: ^ $ Repetition Operators * Match-zero-or-more Operator:: * * Match-one-or-more Operator:: + * Match-zero-or-one Operator:: ? * Interval Operators:: {} List Operators ('[' ... ']' and '[^' ... ']') * Character Class Operators:: [:class:] * Range Operator:: start-end Anchoring Operators * Match-beginning-of-line Operator:: ^ * Match-end-of-line Operator:: $ GNU Operators * Word Operators:: * Buffer Operators:: Word Operators * Non-Emacs Syntax Tables:: * Match-word-boundary Operator:: \b * Match-within-word Operator:: \B * Match-beginning-of-word Operator:: \< * Match-end-of-word Operator:: \> * Match-word-constituent Operator:: \w * Match-non-word-constituent Operator:: \W Buffer Operators * Match-beginning-of-buffer Operator:: \' * Match-end-of-buffer Operator:: \' GNU Emacs Operators * Syntactic Class Operators:: Syntactic Class Operators * Emacs Syntax Tables:: * Match-syntactic-class Operator:: \sCLASS * Match-not-syntactic-class Operator:: \SCLASS Programming with Regex * GNU Regex Functions:: * POSIX Regex Functions:: * BSD Regex Functions:: GNU Regex Functions * GNU Pattern Buffers:: The re_pattern_buffer type. * GNU Regular Expression Compiling:: re_compile_pattern () * GNU Matching:: re_match () * GNU Searching:: re_search () * Matching/Searching with Split Data:: re_match_2 (), re_search_2 () * Searching with Fastmaps:: re_compile_fastmap () * GNU Translate Tables:: The 'translate' field. * Using Registers:: The re_registers type and related fns. * Freeing GNU Pattern Buffers:: regfree () POSIX Regex Functions * POSIX Pattern Buffers:: The regex_t type. * POSIX Regular Expression Compiling:: regcomp () * POSIX Matching:: regexec () * Reporting Errors:: regerror () * Using Byte Offsets:: The regmatch_t type. * Freeing POSIX Pattern Buffers:: regfree () BSD Regex Functions * BSD Regular Expression Compiling:: re_comp () * BSD Searching:: re_exec ()  File: regex.info, Node: Overview, Next: Regular Expression Syntax, Prev: Top, Up: Top 1 Overview ********** A "regular expression" (or "regexp", or "pattern") is a text string that describes some (mathematical) set of strings. A regexp R "matches" a string S if S is in the set of strings described by R. Using the Regex library, you can: * see if a string matches a specified pattern as a whole, and * search within a string for a substring matching a specified pattern. Some regular expressions match only one string, i.e., the set they describe has only one member. For example, the regular expression 'foo' matches the string 'foo' and no others. Other regular expressions match more than one string, i.e., the set they describe has more than one member. For example, the regular expression 'f*' matches the set of strings made up of any number (including zero) of 'f's. As you can see, some characters in regular expressions match themselves (such as 'f') and some don't (such as '*'); the ones that don't match themselves instead let you specify patterns that describe many different strings. To either match or search for a regular expression with the Regex library functions, you must first compile it with a Regex pattern compiling function. A "compiled pattern" is a regular expression converted to the internal format used by the library functions. Once you've compiled a pattern, you can use it for matching or searching any number of times. The Regex library consists of two source files: 'regex.h' and 'regex.c'. Regex provides three groups of functions with which you can operate on regular expressions. One group--the GNU group--is more powerful but not completely compatible with the other two, namely the POSIX and Berkeley UNIX groups; its interface was designed specifically for GNU. The other groups have the same interfaces as do the regular expression functions in POSIX and Berkeley UNIX. We wrote this chapter with programmers in mind, not users of programs--such as Emacs--that use Regex. We describe the Regex library in its entirety, not how to write regular expressions that a particular program understands.  File: regex.info, Node: Regular Expression Syntax, Next: Common Operators, Prev: Overview, Up: Top 2 Regular Expression Syntax *************************** "Characters" are things you can type. "Operators" are things in a regular expression that match one or more characters. You compose regular expressions from operators, which in turn you specify using one or more characters. Most characters represent what we call the match-self operator, i.e., they match themselves; we call these characters "ordinary". Other characters represent either all or parts of fancier operators; e.g., '.' represents what we call the match-any-character operator (which, no surprise, matches (almost) any character); we call these characters "special". Two different things determine what characters represent what operators: 1. the regular expression syntax your program has told the Regex library to recognize, and 2. the context of the character in the regular expression. In the following sections, we describe these things in more detail. * Menu: * Syntax Bits:: * Predefined Syntaxes:: * Collating Elements vs. Characters:: * The Backslash Character::  File: regex.info, Node: Syntax Bits, Next: Predefined Syntaxes, Up: Regular Expression Syntax 2.1 Syntax Bits =============== In any particular syntax for regular expressions, some characters are always special, others are sometimes special, and others are never special. The particular syntax that Regex recognizes for a given regular expression depends on the value in the 'syntax' field of the pattern buffer of that regular expression. You get a pattern buffer by compiling a regular expression. *Note GNU Pattern Buffers::, and *note POSIX Pattern Buffers::, for more information on pattern buffers. *Note GNU Regular Expression Compiling::, *note POSIX Regular Expression Compiling::, and *note BSD Regular Expression Compiling::, for more information on compiling. Regex considers the value of the 'syntax' field to be a collection of bits; we refer to these bits as "syntax bits". In most cases, they affect what characters represent what operators. We describe the meanings of the operators to which we refer in *note Common Operators::, *note GNU Operators::, and *note GNU Emacs Operators::. For reference, here is the complete list of syntax bits, in alphabetical order: 'RE_BACKSLASH_ESCAPE_IN_LISTS' If this bit is set, then '\' inside a list (*note List Operators:: quotes (makes ordinary, if it's special) the following character; if this bit isn't set, then '\' is an ordinary character inside lists. (*Note The Backslash Character::, for what '\' does outside of lists.) 'RE_BK_PLUS_QM' If this bit is set, then '\+' represents the match-one-or-more operator and '\?' represents the match-zero-or-more operator; if this bit isn't set, then '+' represents the match-one-or-more operator and '?' represents the match-zero-or-one operator. This bit is irrelevant if 'RE_LIMITED_OPS' is set. 'RE_CHAR_CLASSES' If this bit is set, then you can use character classes in lists; if this bit isn't set, then you can't. 'RE_CONTEXT_INDEP_ANCHORS' If this bit is set, then '^' and '$' are special anywhere outside a list; if this bit isn't set, then these characters are special only in certain contexts. *Note Match-beginning-of-line Operator::, and *note Match-end-of-line Operator::. 'RE_CONTEXT_INDEP_OPS' If this bit is set, then certain characters are special anywhere outside a list; if this bit isn't set, then those characters are special only in some contexts and are ordinary elsewhere. Specifically, if this bit isn't set then '*', and (if the syntax bit 'RE_LIMITED_OPS' isn't set) '+' and '?' (or '\+' and '\?', depending on the syntax bit 'RE_BK_PLUS_QM') represent repetition operators only if they're not first in a regular expression or just after an open-group or alternation operator. The same holds for '{' (or '\{', depending on the syntax bit 'RE_NO_BK_BRACES') if it is the beginning of a valid interval and the syntax bit 'RE_INTERVALS' is set. 'RE_CONTEXT_INVALID_OPS' If this bit is set, then repetition and alternation operators can't be in certain positions within a regular expression. Specifically, the regular expression is invalid if it has: * a repetition operator first in the regular expression or just after a match-beginning-of-line, open-group, or alternation operator; or * an alternation operator first or last in the regular expression, just before a match-end-of-line operator, or just after an alternation or open-group operator. If this bit isn't set, then you can put the characters representing the repetition and alternation characters anywhere in a regular expression. Whether or not they will in fact be operators in certain positions depends on other syntax bits. 'RE_DOT_NEWLINE' If this bit is set, then the match-any-character operator matches a newline; if this bit isn't set, then it doesn't. 'RE_DOT_NOT_NULL' If this bit is set, then the match-any-character operator doesn't match a null character; if this bit isn't set, then it does. 'RE_INTERVALS' If this bit is set, then Regex recognizes interval operators; if this bit isn't set, then it doesn't. 'RE_LIMITED_OPS' If this bit is set, then Regex doesn't recognize the match-one-or-more, match-zero-or-one or alternation operators; if this bit isn't set, then it does. 'RE_NEWLINE_ALT' If this bit is set, then newline represents the alternation operator; if this bit isn't set, then newline is ordinary. 'RE_NO_BK_BRACES' If this bit is set, then '{' represents the open-interval operator and '}' represents the close-interval operator; if this bit isn't set, then '\{' represents the open-interval operator and '\}' represents the close-interval operator. This bit is relevant only if 'RE_INTERVALS' is set. 'RE_NO_BK_PARENS' If this bit is set, then '(' represents the open-group operator and ')' represents the close-group operator; if this bit isn't set, then '\(' represents the open-group operator and '\)' represents the close-group operator. 'RE_NO_BK_REFS' If this bit is set, then Regex doesn't recognize '\'DIGIT as the back reference operator; if this bit isn't set, then it does. 'RE_NO_BK_VBAR' If this bit is set, then '|' represents the alternation operator; if this bit isn't set, then '\|' represents the alternation operator. This bit is irrelevant if 'RE_LIMITED_OPS' is set. 'RE_NO_EMPTY_RANGES' If this bit is set, then a regular expression with a range whose ending point collates lower than its starting point is invalid; if this bit isn't set, then Regex considers such a range to be empty. 'RE_UNMATCHED_RIGHT_PAREN_ORD' If this bit is set and the regular expression has no matching open-group operator, then Regex considers what would otherwise be a close-group operator (based on how 'RE_NO_BK_PARENS' is set) to match ')'.  File: regex.info, Node: Predefined Syntaxes, Next: Collating Elements vs. Characters, Prev: Syntax Bits, Up: Regular Expression Syntax 2.2 Predefined Syntaxes ======================= If you're programming with Regex, you can set a pattern buffer's (*note GNU Pattern Buffers::, and *note POSIX Pattern Buffers::) 'syntax' field either to an arbitrary combination of syntax bits (*note Syntax Bits::) or else to the configurations defined by Regex. These configurations define the syntaxes used by certain programs--GNU Emacs, POSIX Awk, traditional Awk, Grep, Egrep--in addition to syntaxes for POSIX basic and extended regular expressions. The predefined syntaxes-taken directly from 'regex.h'--are: #define RE_SYNTAX_EMACS 0 #define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_UNMATCHED_RIGHT_PAREN_ORD) #define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS) #define RE_SYNTAX_GREP \ (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ | RE_NEWLINE_ALT) #define RE_SYNTAX_EGREP \ (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ | RE_NO_BK_VBAR) #define RE_SYNTAX_POSIX_EGREP \ (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES) /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ #define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC #define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC /* Syntax bits common to both basic and extended POSIX regex syntax. */ #define _RE_SYNTAX_POSIX_COMMON \ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | RE_INTERVALS | RE_NO_EMPTY_RANGES) #define RE_SYNTAX_POSIX_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this isn't minimal, since other operators, such as \`, aren't disabled. */ #define RE_SYNTAX_POSIX_MINIMAL_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) #define RE_SYNTAX_POSIX_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ | RE_UNMATCHED_RIGHT_PAREN_ORD) /* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */ #define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)  File: regex.info, Node: Collating Elements vs. Characters, Next: The Backslash Character, Prev: Predefined Syntaxes, Up: Regular Expression Syntax 2.3 Collating Elements vs. Characters ===================================== POSIX generalizes the notion of a character to that of a collating element. It defines a "collating element" to be "a sequence of one or more bytes defined in the current collating sequence as a unit of collation." This generalizes the notion of a character in two ways. First, a single character can map into two or more collating elements. For example, the German "es-zet" collates as the collating element 's' followed by another collating element 's'. Second, two or more characters can map into one collating element. For example, the Spanish 'll' collates after 'l' and before 'm'. Since POSIX's "collating element" preserves the essential idea of a "character," we use the latter, more familiar, term in this document.  File: regex.info, Node: The Backslash Character, Prev: Collating Elements vs. Characters, Up: Regular Expression Syntax 2.4 The Backslash Character =========================== The '\' character has one of four different meanings, depending on the context in which you use it and what syntax bits are set (*note Syntax Bits::). It can: 1) stand for itself, 2) quote the next character, 3) introduce an operator, or 4) do nothing. 1. It stands for itself inside a list (*note List Operators::) if the syntax bit 'RE_BACKSLASH_ESCAPE_IN_LISTS' is not set. For example, '[\]' would match '\'. 2. It quotes (makes ordinary, if it's special) the next character when you use it either: * outside a list,(1) or * inside a list and the syntax bit 'RE_BACKSLASH_ESCAPE_IN_LISTS' is set. 3. It introduces an operator when followed by certain ordinary characters--sometimes only when certain syntax bits are set. See the cases 'RE_BK_PLUS_QM', 'RE_NO_BK_BRACES', 'RE_NO_BK_VAR', 'RE_NO_BK_PARENS', 'RE_NO_BK_REF' in *note Syntax Bits::. Also: * '\b' represents the match-word-boundary operator (*note Match-word-boundary Operator::). * '\B' represents the match-within-word operator (*note Match-within-word Operator::). * '\<' represents the match-beginning-of-word operator (*note Match-beginning-of-word Operator::). * '\>' represents the match-end-of-word operator (*note Match-end-of-word Operator::). * '\w' represents the match-word-constituent operator (*note Match-word-constituent Operator::). * '\W' represents the match-non-word-constituent operator (*note Match-non-word-constituent Operator::). * '\`' represents the match-beginning-of-buffer operator and '\'' represents the match-end-of-buffer operator (*note Buffer Operators::). * If Regex was compiled with the C preprocessor symbol 'emacs' defined, then '\sCLASS' represents the match-syntactic-class operator and '\SCLASS' represents the match-not-syntactic-class operator (*note Syntactic Class Operators::). 4. In all other cases, Regex ignores '\'. For example, '\n' matches 'n'. ---------- Footnotes ---------- (1) Sometimes you don't have to explicitly quote special characters to make them ordinary. For instance, most characters lose any special meaning inside a list (*note List Operators::). In addition, if the syntax bits 'RE_CONTEXT_INVALID_OPS' and 'RE_CONTEXT_INDEP_OPS' aren't set, then (for historical reasons) the matcher considers special characters ordinary if they are in contexts where the operations they represent make no sense; for example, then the match-zero-or-more operator (represented by '*') matches itself in the regular expression '*foo' because there is no preceding expression on which it can operate. It is poor practice, however, to depend on this behavior; if you want a special character to be ordinary outside a list, it's better to always quote it, regardless.  File: regex.info, Node: Common Operators, Next: GNU Operators, Prev: Regular Expression Syntax, Up: Top 3 Common Operators ****************** You compose regular expressions from operators. In the following sections, we describe the regular expression operators specified by POSIX; GNU also uses these. Most operators have more than one representation as characters. *Note Regular Expression Syntax::, for what characters represent what operators under what circumstances. For most operators that can be represented in two ways, one representation is a single character and the other is that character preceded by '\'. For example, either '(' or '\(' represents the open-group operator. Which one does depends on the setting of a syntax bit, in this case 'RE_NO_BK_PARENS'. Why is this so? Historical reasons dictate some of the varying representations, while POSIX dictates others. Finally, almost all characters lose any special meaning inside a list (*note List Operators::). * Menu: * Match-self Operator:: Ordinary characters. * Match-any-character Operator:: . * Concatenation Operator:: Juxtaposition. * Repetition Operators:: * + ? {} * Alternation Operator:: | * List Operators:: [...] [^...] * Grouping Operators:: (...) * Back-reference Operator:: \digit * Anchoring Operators:: ^ $  File: regex.info, Node: Match-self Operator, Next: Match-any-character Operator, Up: Common Operators 3.1 The Match-self Operator (ORDINARY CHARACTER) ================================================ This operator matches the character itself. All ordinary characters (*note Regular Expression Syntax::) represent this operator. For example, 'f' is always an ordinary character, so the regular expression 'f' matches only the string 'f'. In particular, it does _not_ match the string 'ff'.  File: regex.info, Node: Match-any-character Operator, Next: Concatenation Operator, Prev: Match-self Operator, Up: Common Operators 3.2 The Match-any-character Operator ('.') ========================================== This operator matches any single printing or nonprinting character except it won't match a: newline if the syntax bit 'RE_DOT_NEWLINE' isn't set. null if the syntax bit 'RE_DOT_NOT_NULL' is set. The '.' (period) character represents this operator. For example, 'a.b' matches any three-character string beginning with 'a' and ending with 'b'.  File: regex.info, Node: Concatenation Operator, Next: Repetition Operators, Prev: Match-any-character Operator, Up: Common Operators 3.3 The Concatenation Operator ============================== This operator concatenates two regular expressions A and B. No character represents this operator; you simply put B after A. The result is a regular expression that will match a string if A matches its first part and B matches the rest. For example, 'xy' (two match-self operators) matches 'xy'.  File: regex.info, Node: Repetition Operators, Next: Alternation Operator, Prev: Concatenation Operator, Up: Common Operators 3.4 Repetition Operators ======================== Repetition operators repeat the preceding regular expression a specified number of times. * Menu: * Match-zero-or-more Operator:: * * Match-one-or-more Operator:: + * Match-zero-or-one Operator:: ? * Interval Operators:: {}  File: regex.info, Node: Match-zero-or-more Operator, Next: Match-one-or-more Operator, Up: Repetition Operators 3.4.1 The Match-zero-or-more Operator ('*') ------------------------------------------- This operator repeats the smallest possible preceding regular expression as many times as necessary (including zero) to match the pattern. '*' represents this operator. For example, 'o*' matches any string made up of zero or more 'o's. Since this operator operates on the smallest preceding regular expression, 'fo*' has a repeating 'o', not a repeating 'fo'. So, 'fo*' matches 'f', 'fo', 'foo', and so on. Since the match-zero-or-more operator is a suffix operator, it may be useless as such when no regular expression precedes it. This is the case when it: * is first in a regular expression, or * follows a match-beginning-of-line, open-group, or alternation operator. Three different things can happen in these cases: 1. If the syntax bit 'RE_CONTEXT_INVALID_OPS' is set, then the regular expression is invalid. 2. If 'RE_CONTEXT_INVALID_OPS' isn't set, but 'RE_CONTEXT_INDEP_OPS' is, then '*' represents the match-zero-or-more operator (which then operates on the empty string). 3. Otherwise, '*' is ordinary. The matcher processes a match-zero-or-more operator by first matching as many repetitions of the smallest preceding regular expression as it can. Then it continues to match the rest of the pattern. If it can't match the rest of the pattern, it backtracks (as many times as necessary), each time discarding one of the matches until it can either match the entire pattern or be certain that it cannot get a match. For example, when matching 'ca*ar' against 'caaar', the matcher first matches all three 'a's of the string with the 'a*' of the regular expression. However, it cannot then match the final 'ar' of the regular expression against the final 'r' of the string. So it backtracks, discarding the match of the last 'a' in the string. It can then match the remaining 'ar'.  File: regex.info, Node: Match-one-or-more Operator, Next: Match-zero-or-one Operator, Prev: Match-zero-or-more Operator, Up: Repetition Operators 3.4.2 The Match-one-or-more Operator ('+' or '\+') -------------------------------------------------- If the syntax bit 'RE_LIMITED_OPS' is set, then Regex doesn't recognize this operator. Otherwise, if the syntax bit 'RE_BK_PLUS_QM' isn't set, then '+' represents this operator; if it is, then '\+' does. This operator is similar to the match-zero-or-more operator except that it repeats the preceding regular expression at least once; *note Match-zero-or-more Operator::, for what it operates on, how some syntax bits affect it, and how Regex backtracks to match it. For example, supposing that '+' represents the match-one-or-more operator; then 'ca+r' matches, e.g., 'car' and 'caaaar', but not 'cr'.  File: regex.info, Node: Match-zero-or-one Operator, Next: Interval Operators, Prev: Match-one-or-more Operator, Up: Repetition Operators 3.4.3 The Match-zero-or-one Operator ('?' or '\?') -------------------------------------------------- If the syntax bit 'RE_LIMITED_OPS' is set, then Regex doesn't recognize this operator. Otherwise, if the syntax bit 'RE_BK_PLUS_QM' isn't set, then '?' represents this operator; if it is, then '\?' does. This operator is similar to the match-zero-or-more operator except that it repeats the preceding regular expression once or not at all; *note Match-zero-or-more Operator::, to see what it operates on, how some syntax bits affect it, and how Regex backtracks to match it. For example, supposing that '?' represents the match-zero-or-one operator; then 'ca?r' matches both 'car' and 'cr', but nothing else.  File: regex.info, Node: Interval Operators, Prev: Match-zero-or-one Operator, Up: Repetition Operators 3.4.4 Interval Operators ('{' ... '}' or '\{' ... '\}') ------------------------------------------------------- If the syntax bit 'RE_INTERVALS' is set, then Regex recognizes "interval expressions". They repeat the smallest possible preceding regular expression a specified number of times. If the syntax bit 'RE_NO_BK_BRACES' is set, '{' represents the "open-interval operator" and '}' represents the "close-interval operator" ; otherwise, '\{' and '\}' do. Specifically, supposing that '{' and '}' represent the open-interval and close-interval operators; then: '{COUNT}' matches exactly COUNT occurrences of the preceding regular expression. '{MIN,}' matches MIN or more occurrences of the preceding regular expression. '{MIN, MAX}' matches at least MIN but no more than MAX occurrences of the preceding regular expression. The interval expression (but not necessarily the regular expression that contains it) is invalid if: * MIN is greater than MAX, or * any of COUNT, MIN, or MAX are outside the range zero to 'RE_DUP_MAX' (which symbol 'regex.h' defines). If the interval expression is invalid and the syntax bit 'RE_NO_BK_BRACES' is set, then Regex considers all the characters in the would-be interval to be ordinary. If that bit isn't set, then the regular expression is invalid. If the interval expression is valid but there is no preceding regular expression on which to operate, then if the syntax bit 'RE_CONTEXT_INVALID_OPS' is set, the regular expression is invalid. If that bit isn't set, then Regex considers all the characters--other than backslashes, which it ignores--in the would-be interval to be ordinary.  File: regex.info, Node: Alternation Operator, Next: List Operators, Prev: Repetition Operators, Up: Common Operators 3.5 The Alternation Operator ('|' or '\|') ========================================== If the syntax bit 'RE_LIMITED_OPS' is set, then Regex doesn't recognize this operator. Otherwise, if the syntax bit 'RE_NO_BK_VBAR' is set, then '|' represents this operator; otherwise, '\|' does. Alternatives match one of a choice of regular expressions: if you put the character(s) representing the alternation operator between any two regular expressions A and B, the result matches the union of the strings that A and B match. For example, supposing that '|' is the alternation operator, then 'foo|bar|quux' would match any of 'foo', 'bar' or 'quux'. The alternation operator operates on the _largest_ possible surrounding regular expressions. (Put another way, it has the lowest precedence of any regular expression operator.) Thus, the only way you can delimit its arguments is to use grouping. For example, if '(' and ')' are the open and close-group operators, then 'fo(o|b)ar' would match either 'fooar' or 'fobar'. ('foo|bar' would match 'foo' or 'bar'.) The matcher usually tries all combinations of alternatives so as to match the longest possible string. For example, when matching '(fooq|foo)*(qbarquux|bar)' against 'fooqbarquux', it cannot take, say, the first ("depth-first") combination it could match, since then it would be content to match just 'fooqbar'.  File: regex.info, Node: List Operators, Next: Grouping Operators, Prev: Alternation Operator, Up: Common Operators 3.6 List Operators ('[' ... ']' and '[^' ... ']') ================================================= "Lists", also called "bracket expressions", are a set of one or more items. An "item" is a character, a character class expression, or a range expression. The syntax bits affect which kinds of items you can put in a list. We explain the last two items in subsections below. Empty lists are invalid. A "matching list" matches a single character represented by one of the list items. You form a matching list by enclosing one or more items within an "open-matching-list operator" (represented by '[') and a "close-list operator" (represented by ']'). For example, '[ab]' matches either 'a' or 'b'. '[ad]*' matches the empty string and any string composed of just 'a's and 'd's in any order. Regex considers invalid a regular expression with a '[' but no matching ']'. "Nonmatching lists" are similar to matching lists except that they match a single character _not_ represented by one of the list items. You use an "open-nonmatching-list operator" (represented by '[^'(1)) instead of an open-matching-list operator to start a nonmatching list. For example, '[^ab]' matches any character except 'a' or 'b'. If the 'posix_newline' field in the pattern buffer (*note GNU Pattern Buffers:: is set, then nonmatching lists do not match a newline. Most characters lose any special meaning inside a list. The special characters inside a list follow. ']' ends the list if it's not the first list item. So, if you want to make the ']' character a list item, you must put it first. '\' quotes the next character if the syntax bit 'RE_BACKSLASH_ESCAPE_IN_LISTS' is set. '[:' represents the open-character-class operator (*note Character Class Operators::) if the syntax bit 'RE_CHAR_CLASSES' is set and what follows is a valid character class expression. ':]' represents the close-character-class operator if the syntax bit 'RE_CHAR_CLASSES' is set and what precedes it is an open-character-class operator followed by a valid character class name. '-' represents the range operator (*note Range Operator::) if it's not first or last in a list or the ending point of a range. All other characters are ordinary. For example, '[.*]' matches '.' and '*'. * Menu: * Character Class Operators:: [:class:] * Range Operator:: start-end ---------- Footnotes ---------- (1) Regex therefore doesn't consider the '^' to be the first character in the list. If you put a '^' character first in (what you think is) a matching list, you'll turn it into a nonmatching list.  File: regex.info, Node: Character Class Operators, Next: Range Operator, Up: List Operators 3.6.1 Character Class Operators ('[:' ... ':]') ----------------------------------------------- If the syntax bit 'RE_CHARACTER_CLASSES' is set, then Regex recognizes character class expressions inside lists. A "character class expression" matches one character from a given class. You form a character class expression by putting a character class name between an "open-character-class operator" (represented by '[:') and a "close-character-class operator" (represented by ':]'). The character class names and their meanings are: 'alnum' letters and digits 'alpha' letters 'blank' system-dependent; for GNU, a space or tab 'cntrl' control characters (in the ASCII encoding, code 0177 and codes less than 040) 'digit' digits 'graph' same as 'print' except omits space 'lower' lowercase letters 'print' printable characters (in the ASCII encoding, space tilde--codes 040 through 0176) 'punct' neither control nor alphanumeric characters 'space' space, carriage return, newline, vertical tab, and form feed 'upper' uppercase letters 'xdigit' hexadecimal digits: '0'-'9', 'a'-'f', 'A'-'F' These correspond to the definitions in the C library's '<ctype.h>' facility. For example, '[:alpha:]' corresponds to the standard facility 'isalpha'. Regex recognizes character class expressions only inside of lists; so '[[:alpha:]]' matches any letter, but '[:alpha:]' outside of a bracket expression and not followed by a repetition operator matches just itself.  File: regex.info, Node: Range Operator, Prev: Character Class Operators, Up: List Operators 3.6.2 The Range Operator ('-') ------------------------------ Regex recognizes "range expressions" inside a list. They represent those characters that fall between two elements in the current collating sequence. You form a range expression by putting a "range operator" between two characters.(1) '-' represents the range operator. For example, 'a-f' within a list represents all the characters from 'a' through 'f' inclusively. If the syntax bit 'RE_NO_EMPTY_RANGES' is set, then if the range's ending point collates less than its starting point, the range (and the regular expression containing it) is invalid. For example, the regular expression '[z-a]' would be invalid. If this bit isn't set, then Regex considers such a range to be empty. Since '-' represents the range operator, if you want to make a '-' character itself a list item, you must do one of the following: * Put the '-' either first or last in the list. * Include a range whose starting point collates strictly lower than '-' and whose ending point collates equal or higher. Unless a range is the first item in a list, a '-' can't be its starting point, but _can_ be its ending point. That is because Regex considers '-' to be the range operator unless it is preceded by another '-'. For example, in the ASCII encoding, ')', '*', '+', ',', '-', '.', and '/' are contiguous characters in the collating sequence. You might think that '[)-+--/]' has two ranges: ')-+' and '--/'. Rather, it has the ranges ')-+' and '+--', plus the character '/', so it matches, e.g., ',', not '.'. * Put a range whose starting point is '-' first in the list. For example, '[-a-z]' matches a lowercase letter or a hyphen (in English, in ASCII). ---------- Footnotes ---------- (1) You can't use a character class for the starting or ending point of a range, since a character class is not a single character.  File: regex.info, Node: Grouping Operators, Next: Back-reference Operator, Prev: List Operators, Up: Common Operators 3.7 Grouping Operators ('(' ... ')' or '\(' ... '\)') ===================================================== A "group", also known as a "subexpression", consists of an "open-group operator", any number of other operators, and a "close-group operator". Regex treats this sequence as a unit, just as mathematics and programming languages treat a parenthesized expression as a unit. Therefore, using "groups", you can: * delimit the argument(s) to an alternation operator (*note Alternation Operator::) or a repetition operator (*note Repetition Operators::). * keep track of the indices of the substring that matched a given group. *Note Using Registers::, for a precise explanation. This lets you: * use the back-reference operator (*note Back-reference Operator::). * use registers (*note Using Registers::). If the syntax bit 'RE_NO_BK_PARENS' is set, then '(' represents the open-group operator and ')' represents the close-group operator; otherwise, '\(' and '\)' do. If the syntax bit 'RE_UNMATCHED_RIGHT_PAREN_ORD' is set and a close-group operator has no matching open-group operator, then Regex considers it to match ')'.  File: regex.info, Node: Back-reference Operator, Next: Anchoring Operators, Prev: Grouping Operators, Up: Common Operators 3.8 The Back-reference Operator ("\"DIGIT) ========================================== If the syntax bit 'RE_NO_BK_REF' isn't set, then Regex recognizes back references. A back reference matches a specified preceding group. The back reference operator is represented by '\DIGIT' anywhere after the end of a regular expression's DIGIT-th group (*note Grouping Operators::). DIGIT must be between '1' and '9'. The matcher assigns numbers 1 through 9 to the first nine groups it encounters. By using one of '\1' through '\9' after the corresponding group's close-group operator, you can match a substring identical to the one that the group does. Back references match according to the following (in all examples below, '(' represents the open-group, ')' the close-group, '{' the open-interval and '}' the close-interval operator): * If the group matches a substring, the back reference matches an identical substring. For example, '(a)\1' matches 'aa' and '(bana)na\1bo\1' matches 'bananabanabobana'. Likewise, '(.*)\1' matches any (newline-free if the syntax bit 'RE_DOT_NEWLINE' isn't set) string that is composed of two identical halves; the '(.*)' matches the first half and the '\1' matches the second half. * If the group matches more than once (as it might if followed by, e.g., a repetition operator), then the back reference matches the substring the group _last_ matched. For example, '((a*)b)*\1\2' matches 'aabababa'; first group 1 (the outer one) matches 'aab' and group 2 (the inner one) matches 'aa'. Then group 1 matches 'ab' and group 2 matches 'a'. So, '\1' matches 'ab' and '\2' matches 'a'. * If the group doesn't participate in a match, i.e., it is part of an alternative not taken or a repetition operator allows zero repetitions of it, then the back reference makes the whole match fail. For example, '(one()|two())-and-(three\2|four\3)' matches 'one-and-three' and 'two-and-four', but not 'one-and-four' or 'two-and-three'. For example, if the pattern matches 'one-and-', then its group 2 matches the empty string and its group 3 doesn't participate in the match. So, if it then matches 'four', then when it tries to back reference group 3--which it will attempt to do because '\3' follows the 'four'--the match will fail because group 3 didn't participate in the match. You can use a back reference as an argument to a repetition operator. For example, '(a(b))\2*' matches 'a' followed by two or more 'b's. Similarly, '(a(b))\2{3}' matches 'abbbb'. If there is no preceding DIGIT-th subexpression, the regular expression is invalid.  File: regex.info, Node: Anchoring Operators, Prev: Back-reference Operator, Up: Common Operators 3.9 Anchoring Operators ======================= These operators can constrain a pattern to match only at the beginning or end of the entire string or at the beginning or end of a line. * Menu: * Match-beginning-of-line Operator:: ^ * Match-end-of-line Operator:: $  File: regex.info, Node: Match-beginning-of-line Operator, Next: Match-end-of-line Operator, Up: Anchoring Operators 3.9.1 The Match-beginning-of-line Operator ('^') ------------------------------------------------ This operator can match the empty string either at the beginning of the string or after a newline character. Thus, it is said to "anchor" the pattern to the beginning of a line. In the cases following, '^' represents this operator. (Otherwise, '^' is ordinary.) * It (the '^') is first in the pattern, as in '^foo'. * The syntax bit 'RE_CONTEXT_INDEP_ANCHORS' is set, and it is outside a bracket expression. * It follows an open-group or alternation operator, as in 'a\(^b\)' and 'a\|^b'. *Note Grouping Operators::, and *note Alternation Operator::. These rules imply that some valid patterns containing '^' cannot be matched; for example, 'foo^bar' if 'RE_CONTEXT_INDEP_ANCHORS' is set. If the 'not_bol' field is set in the pattern buffer (*note GNU Pattern Buffers::), then '^' fails to match at the beginning of the string. *Note POSIX Matching::, for when you might find this useful. If the 'newline_anchor' field is set in the pattern buffer, then '^' fails to match after a newline. This is useful when you do not regard the string to be matched as broken into lines.  File: regex.info, Node: Match-end-of-line Operator, Prev: Match-beginning-of-line Operator, Up: Anchoring Operators 3.9.2 The Match-end-of-line Operator ('$') ------------------------------------------ This operator can match the empty string either at the end of the string or before a newline character in the string. Thus, it is said to "anchor" the pattern to the end of a line. It is always represented by '$'. For example, 'foo$' usually matches, e.g., 'foo' and, e.g., the first three characters of 'foo\nbar'. Its interaction with the syntax bits and pattern buffer fields is exactly the dual of '^''s; see the previous section. (That is, "beginning" becomes "end", "next" becomes "previous", and "after" becomes "before".)  File: regex.info, Node: GNU Operators, Next: GNU Emacs Operators, Prev: Common Operators, Up: Top 4 GNU Operators *************** Following are operators that GNU defines (and POSIX doesn't). * Menu: * Word Operators:: * Buffer Operators::  File: regex.info, Node: Word Operators, Next: Buffer Operators, Up: GNU Operators 4.1 Word Operators ================== The operators in this section require Regex to recognize parts of words. Regex uses a syntax table to determine whether or not a character is part of a word, i.e., whether or not it is "word-constituent". * Menu: * Non-Emacs Syntax Tables:: * Match-word-boundary Operator:: \b * Match-within-word Operator:: \B * Match-beginning-of-word Operator:: \< * Match-end-of-word Operator:: \> * Match-word-constituent Operator:: \w * Match-non-word-constituent Operator:: \W  File: regex.info, Node: Non-Emacs Syntax Tables, Next: Match-word-boundary Operator, Up: Word Operators 4.1.1 Non-Emacs Syntax Tables ----------------------------- A "syntax table" is an array indexed by the characters in your character set. In the ASCII encoding, therefore, a syntax table has 256 elements. Regex always uses a 'char *' variable 're_syntax_table' as its syntax table. In some cases, it initializes this variable and in others it expects you to initialize it. * If Regex is compiled with the preprocessor symbols 'emacs' and 'SYNTAX_TABLE' both undefined, then Regex allocates 're_syntax_table' and initializes an element I either to 'Sword' (which it defines) if I is a letter, number, or '_', or to zero if it's not. * If Regex is compiled with 'emacs' undefined but 'SYNTAX_TABLE' defined, then Regex expects you to define a 'char *' variable 're_syntax_table' to be a valid syntax table. * *Note Emacs Syntax Tables::, for what happens when Regex is compiled with the preprocessor symbol 'emacs' defined.  File: regex.info, Node: Match-word-boundary Operator, Next: Match-within-word Operator, Prev: Non-Emacs Syntax Tables, Up: Word Operators 4.1.2 The Match-word-boundary Operator ('\b') --------------------------------------------- This operator (represented by '\b') matches the empty string at either the beginning or the end of a word. For example, '\brat\b' matches the separate word 'rat'.  File: regex.info, Node: Match-within-word Operator, Next: Match-beginning-of-word Operator, Prev: Match-word-boundary Operator, Up: Word Operators 4.1.3 The Match-within-word Operator ('\B') ------------------------------------------- This operator (represented by '\B') matches the empty string within a word. For example, 'c\Brat\Be' matches 'crate', but 'dirty \Brat' doesn't match 'dirty rat'.  File: regex.info, Node: Match-beginning-of-word Operator, Next: Match-end-of-word Operator, Prev: Match-within-word Operator, Up: Word Operators 4.1.4 The Match-beginning-of-word Operator ('\<') ------------------------------------------------- This operator (represented by '\<') matches the empty string at the beginning of a word.  File: regex.info, Node: Match-end-of-word Operator, Next: Match-word-constituent Operator, Prev: Match-beginning-of-word Operator, Up: Word Operators 4.1.5 The Match-end-of-word Operator ('\>') ------------------------------------------- This operator (represented by '\>') matches the empty string at the end of a word.  File: regex.info, Node: Match-word-constituent Operator, Next: Match-non-word-constituent Operator, Prev: Match-end-of-word Operator, Up: Word Operators 4.1.6 The Match-word-constituent Operator ('\w') ------------------------------------------------ This operator (represented by '\w') matches any word-constituent character.  File: regex.info, Node: Match-non-word-constituent Operator, Prev: Match-word-constituent Operator, Up: Word Operators 4.1.7 The Match-non-word-constituent Operator ('\W') ---------------------------------------------------- This operator (represented by '\W') matches any character that is not word-constituent.  File: regex.info, Node: Buffer Operators, Prev: Word Operators, Up: GNU Operators 4.2 Buffer Operators ==================== Following are operators which work on buffers. In Emacs, a "buffer" is, naturally, an Emacs buffer. For other programs, Regex considers the entire string to be matched as the buffer. * Menu: * Match-beginning-of-buffer Operator:: \' * Match-end-of-buffer Operator:: \'  File: regex.info, Node: Match-beginning-of-buffer Operator, Next: Match-end-of-buffer Operator, Up: Buffer Operators 4.2.1 The Match-beginning-of-buffer Operator -------------------------------------------- This operator (represented by '\`') matches the empty string at the beginning of the buffer.  File: regex.info, Node: Match-end-of-buffer Operator, Prev: Match-beginning-of-buffer Operator, Up: Buffer Operators 4.2.2 The Match-end-of-buffer Operator -------------------------------------- This operator (represented by '\'') matches the empty string at the end of the buffer.  File: regex.info, Node: GNU Emacs Operators, Next: What Gets Matched?, Prev: GNU Operators, Up: Top 5 GNU Emacs Operators ********************* Following are operators that GNU defines (and POSIX doesn't) that you can use only when Regex is compiled with the preprocessor symbol 'emacs' defined. * Menu: * Syntactic Class Operators::  File: regex.info, Node: Syntactic Class Operators, Up: GNU Emacs Operators 5.1 Syntactic Class Operators ============================= The operators in this section require Regex to recognize the syntactic classes of characters. Regex uses a syntax table to determine this. * Menu: * Emacs Syntax Tables:: * Match-syntactic-class Operator:: \sCLASS * Match-not-syntactic-class Operator:: \SCLASS  File: regex.info, Node: Emacs Syntax Tables, Next: Match-syntactic-class Operator, Up: Syntactic Class Operators 5.1.1 Emacs Syntax Tables ------------------------- A "syntax table" is an array indexed by the characters in your character set. In the ASCII encoding, therefore, a syntax table has 256 elements. If Regex is compiled with the preprocessor symbol 'emacs' defined, then Regex expects you to define and initialize the variable 're_syntax_table' to be an Emacs syntax table. Emacs' syntax tables are more complicated than Regex's own (*note Non-Emacs Syntax Tables::). *Note Syntax: (emacs)Syntax, for a description of Emacs' syntax tables.  File: regex.info, Node: Match-syntactic-class Operator, Next: Match-not-syntactic-class Operator, Prev: Emacs Syntax Tables, Up: Syntactic Class Operators 5.1.2 The Match-syntactic-class Operator ('\s'CLASS) ---------------------------------------------------- This operator matches any character whose syntactic class is represented by a specified character. '\sCLASS' represents this operator where CLASS is the character representing the syntactic class you want. For example, 'w' represents the syntactic class of word-constituent characters, so '\sw' matches any word-constituent character.  File: regex.info, Node: Match-not-syntactic-class Operator, Prev: Match-syntactic-class Operator, Up: Syntactic Class Operators 5.1.3 The Match-not-syntactic-class Operator ('\S'CLASS) -------------------------------------------------------- This operator is similar to the match-syntactic-class operator except that it matches any character whose syntactic class is _not_ represented by the specified character. '\SCLASS' represents this operator. For example, 'w' represents the syntactic class of word-constituent characters, so '\Sw' matches any character that is not word-constituent.  File: regex.info, Node: What Gets Matched?, Next: Programming with Regex, Prev: GNU Emacs Operators, Up: Top 6 What Gets Matched? ******************** Regex usually matches strings according to the "leftmost longest" rule; that is, it chooses the longest of the leftmost matches. This does not mean that for a regular expression containing subexpressions that it simply chooses the longest match for each subexpression, left to right; the overall match must also be the longest possible one. For example, '(ac*)(c*d[ac]*)\1' matches 'acdacaaa', not 'acdac', as it would if it were to choose the longest match for the first subexpression.  File: regex.info, Node: Programming with Regex, Next: Copying, Prev: What Gets Matched?, Up: Top 7 Programming with Regex ************************ Here we describe how you use the Regex data structures and functions in C programs. Regex has three interfaces: one designed for GNU, one compatible with POSIX and one compatible with Berkeley UNIX. * Menu: * GNU Regex Functions:: * POSIX Regex Functions:: * BSD Regex Functions::  File: regex.info, Node: GNU Regex Functions, Next: POSIX Regex Functions, Up: Programming with Regex 7.1 GNU Regex Functions ======================= If you're writing code that doesn't need to be compatible with either POSIX or Berkeley UNIX, you can use these functions. They provide more options than the other interfaces. * Menu: * GNU Pattern Buffers:: The re_pattern_buffer type. * GNU Regular Expression Compiling:: re_compile_pattern () * GNU Matching:: re_match () * GNU Searching:: re_search () * Matching/Searching with Split Data:: re_match_2 (), re_search_2 () * Searching with Fastmaps:: re_compile_fastmap () * GNU Translate Tables:: The 'translate' field. * Using Registers:: The re_registers type and related fns. * Freeing GNU Pattern Buffers:: regfree ()  File: regex.info, Node: GNU Pattern Buffers, Next: GNU Regular Expression Compiling, Up: GNU Regex Functions 7.1.1 GNU Pattern Buffers ------------------------- To compile, match, or search for a given regular expression, you must supply a pattern buffer. A "pattern buffer" holds one compiled regular expression.(1) You can have several different pattern buffers simultaneously, each holding a compiled pattern for a different regular expression. 'regex.h' defines the pattern buffer 'struct' as follows: /* Space that holds the compiled pattern. It is declared as `unsigned char *' because its elements are sometimes used as array indexes. */ unsigned char *buffer; /* Number of bytes to which `buffer' points. */ unsigned long allocated; /* Number of bytes actually used in `buffer'. */ unsigned long used; /* Syntax setting with which the pattern was compiled. */ reg_syntax_t syntax; /* Pointer to a fastmap, if any, otherwise zero. re_search uses the fastmap, if there is one, to skip over impossible starting points for matches. */ char *fastmap; /* Either a translate table to apply to all characters before comparing them, or zero for no translation. The translation is applied to a pattern when it is compiled and to a string when it is matched. */ char *translate; /* Number of subexpressions found by the compiler. */ size_t re_nsub; /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in `re_search_2', to see whether or not we should use the fastmap, so we don't set this absolutely perfectly; see `re_compile_fastmap' (the `duplicate' case). */ unsigned can_be_null : 1; /* If REGS_UNALLOCATED, allocate space in the `regs' structure for `max (RE_NREGS, re_nsub + 1)' groups. If REGS_REALLOCATE, reallocate space if necessary. If REGS_FIXED, use what's there. */ #define REGS_UNALLOCATED 0 #define REGS_REALLOCATE 1 #define REGS_FIXED 2 unsigned regs_allocated : 2; /* Set to zero when `regex_compile' compiles a pattern; set to one by `re_compile_fastmap' if it updates the fastmap. */ unsigned fastmap_accurate : 1; /* If set, `re_match_2' does not return information about subexpressions. */ unsigned no_sub : 1; /* If set, a beginning-of-line anchor doesn't match at the beginning of the string. */ unsigned not_bol : 1; /* Similarly for an end-of-line anchor. */ unsigned not_eol : 1; /* If true, an anchor at a newline matches. */ unsigned newline_anchor : 1; ---------- Footnotes ---------- (1) Regular expressions are also referred to as "patterns," hence the name "pattern buffer."  File: regex.info, Node: GNU Regular Expression Compiling, Next: GNU Matching, Prev: GNU Pattern Buffers, Up: GNU Regex Functions 7.1.2 GNU Regular Expression Compiling -------------------------------------- In GNU, you can both match and search for a given regular expression. To do either, you must first compile it in a pattern buffer (*note GNU Pattern Buffers::). Regular expressions match according to the syntax with which they were compiled; with GNU, you indicate what syntax you want by setting the variable 're_syntax_options' (declared in 'regex.h' and defined in 'regex.c') before calling the compiling function, 're_compile_pattern' (see below). *Note Syntax Bits::, and *note Predefined Syntaxes::. You can change the value of 're_syntax_options' at any time. Usually, however, you set its value once and then never change it. 're_compile_pattern' takes a pattern buffer as an argument. You must initialize the following fields: 'translate initialization' 'translate' Initialize this to point to a translate table if you want one, or to zero if you don't. We explain translate tables in *note GNU Translate Tables::. 'fastmap' Initialize this to nonzero if you want a fastmap, or to zero if you don't. 'buffer' 'allocated' If you want 're_compile_pattern' to allocate memory for the compiled pattern, set both of these to zero. If you have an existing block of memory (allocated with 'malloc') you want Regex to use, set 'buffer' to its address and 'allocated' to its size (in bytes). 're_compile_pattern' uses 'realloc' to extend the space for the compiled pattern as necessary. To compile a pattern buffer, use: char * re_compile_pattern (const char *REGEX, const int REGEX_SIZE, struct re_pattern_buffer *PATTERN_BUFFER) REGEX is the regular expression's address, REGEX_SIZE is its length, and PATTERN_BUFFER is the pattern buffer's address. If 're_compile_pattern' successfully compiles the regular expression, it returns zero and sets '*PATTERN_BUFFER' to the compiled pattern. It sets the pattern buffer's fields as follows: 'buffer' to the compiled pattern. 'used' to the number of bytes the compiled pattern in 'buffer' occupies. 'syntax' to the current value of 're_syntax_options'. 're_nsub' to the number of subexpressions in REGEX. 'fastmap_accurate' to zero on the theory that the pattern you're compiling is different than the one previously compiled into 'buffer'; in that case (since you can't make a fastmap without a compiled pattern), 'fastmap' would either contain an incompatible fastmap, or nothing at all. If 're_compile_pattern' can't compile REGEX, it returns an error string corresponding to one of the errors listed in *note POSIX Regular Expression Compiling::.  File: regex.info, Node: GNU Matching, Next: GNU Searching, Prev: GNU Regular Expression Compiling, Up: GNU Regex Functions 7.1.3 GNU Matching ------------------ Matching the GNU way means trying to match as much of a string as possible starting at a position within it you specify. Once you've compiled a pattern into a pattern buffer (*note GNU Regular Expression Compiling::), you can ask the matcher to match that pattern against a string using: int re_match (struct re_pattern_buffer *PATTERN_BUFFER, const char *STRING, const int SIZE, const int START, struct re_registers *REGS) PATTERN_BUFFER is the address of a pattern buffer containing a compiled pattern. STRING is the string you want to match; it can contain newline and null characters. SIZE is the length of that string. START is the string index at which you want to begin matching; the first character of STRING is at index zero. *Note Using Registers::, for a explanation of REGS; you can safely pass zero. 're_match' matches the regular expression in PATTERN_BUFFER against the string STRING according to the syntax in PATTERN_BUFFERS's 'syntax' field. (*Note GNU Regular Expression Compiling::, for how to set it.) The function returns -1 if the compiled pattern does not match any part of STRING and -2 if an internal error happens; otherwise, it returns how many (possibly zero) characters of STRING the pattern matched. An example: suppose PATTERN_BUFFER points to a pattern buffer containing the compiled pattern for 'a*', and STRING points to 'aaaaab' (whereupon SIZE should be 6). Then if START is 2, 're_match' returns 3, i.e., 'a*' would have matched the last three 'a's in STRING. If START is 0, 're_match' returns 5, i.e., 'a*' would have matched all the 'a's in STRING. If START is either 5 or 6, it returns zero. If START is not between zero and SIZE, then 're_match' returns -1.  File: regex.info, Node: GNU Searching, Next: Matching/Searching with Split Data, Prev: GNU Matching, Up: GNU Regex Functions 7.1.4 GNU Searching ------------------- "Searching" means trying to match starting at successive positions within a string. The function 're_search' does this. Before calling 're_search', you must compile your regular expression. *Note GNU Regular Expression Compiling::. Here is the function declaration: int re_search (struct re_pattern_buffer *PATTERN_BUFFER, const char *STRING, const int SIZE, const int START, const int RANGE, struct re_registers *REGS) whose arguments are the same as those to 're_match' (*note GNU Matching::) except that the two arguments START and RANGE replace 're_match''s argument START. If RANGE is positive, then 're_search' attempts a match starting first at index START, then at START + 1 if that fails, and so on, up to START + RANGE; if RANGE is negative, then it attempts a match starting first at index START, then at START -1 if that fails, and so on. If START is not between zero and SIZE, then 're_search' returns -1. When RANGE is positive, 're_search' adjusts RANGE so that START + RANGE - 1 is between zero and SIZE, if necessary; that way it won't search outside of STRING. Similarly, when RANGE is negative, 're_search' adjusts RANGE so that START + RANGE + 1 is between zero and SIZE, if necessary. If the 'fastmap' field of PATTERN_BUFFER is zero, 're_search' matches starting at consecutive positions; otherwise, it uses 'fastmap' to make the search more efficient. *Note Searching with Fastmaps::. If no match is found, 're_search' returns -1. If a match is found, it returns the index where the match began. If an internal error happens, it returns -2.  File: regex.info, Node: Matching/Searching with Split Data, Next: Searching with Fastmaps, Prev: GNU Searching, Up: GNU Regex Functions 7.1.5 Matching and Searching with Split Data -------------------------------------------- Using the functions 're_match_2' and 're_search_2', you can match or search in data that is divided into two strings. The function: int re_match_2 (struct re_pattern_buffer *BUFFER, const char *STRING1, const int SIZE1, const char *STRING2, const int SIZE2, const int START, struct re_registers *REGS, const int STOP) is similar to 're_match' (*note GNU Matching::) except that you pass _two_ data strings and sizes, and an index STOP beyond which you don't want the matcher to try matching. As with 're_match', if it succeeds, 're_match_2' returns how many characters of STRING it matched. Regard STRING1 and STRING2 as concatenated when you set the arguments START and STOP and use the contents of REGS; 're_match_2' never returns a value larger than SIZE1 + SIZE2. The function: int re_search_2 (struct re_pattern_buffer *BUFFER, const char *STRING1, const int SIZE1, const char *STRING2, const int SIZE2, const int START, const int RANGE, struct re_registers *REGS, const int STOP) is similarly related to 're_search'.  File: regex.info, Node: Searching with Fastmaps, Next: GNU Translate Tables, Prev: Matching/Searching with Split Data, Up: GNU Regex Functions 7.1.6 Searching with Fastmaps ----------------------------- If you're searching through a long string, you should use a fastmap. Without one, the searcher tries to match at consecutive positions in the string. Generally, most of the characters in the string could not start a match. It takes much longer to try matching at a given position in the string than it does to check in a table whether or not the character at that position could start a match. A "fastmap" is such a table. More specifically, a fastmap is an array indexed by the characters in your character set. Under the ASCII encoding, therefore, a fastmap has 256 elements. If you want the searcher to use a fastmap with a given pattern buffer, you must allocate the array and assign the array's address to the pattern buffer's 'fastmap' field. You either can compile the fastmap yourself or have 're_search' do it for you; when 'fastmap' is nonzero, it automatically compiles a fastmap the first time you search using a particular compiled pattern. To compile a fastmap yourself, use: int re_compile_fastmap (struct re_pattern_buffer *PATTERN_BUFFER) PATTERN_BUFFER is the address of a pattern buffer. If the character C could start a match for the pattern, 're_compile_fastmap' makes 'PATTERN_BUFFER->fastmap[C]' nonzero. It returns 0 if it can compile a fastmap and -2 if there is an internal error. For example, if '|' is the alternation operator and PATTERN_BUFFER holds the compiled pattern for 'a|b', then 're_compile_fastmap' sets 'fastmap['a']' and 'fastmap['b']' (and no others). 're_search' uses a fastmap as it moves along in the string: it checks the string's characters until it finds one that's in the fastmap. Then it tries matching at that character. If the match fails, it repeats the process. So, by using a fastmap, 're_search' doesn't waste time trying to match at positions in the string that couldn't start a match. If you don't want 're_search' to use a fastmap, store zero in the 'fastmap' field of the pattern buffer before calling 're_search'. Once you've initialized a pattern buffer's 'fastmap' field, you need never do so again--even if you compile a new pattern in it--provided the way the field is set still reflects whether or not you want a fastmap. 're_search' will still either do nothing if 'fastmap' is null or, if it isn't, compile a new fastmap for the new pattern.  File: regex.info, Node: GNU Translate Tables, Next: Using Registers, Prev: Searching with Fastmaps, Up: GNU Regex Functions 7.1.7 GNU Translate Tables -------------------------- If you set the 'translate' field of a pattern buffer to a translate table, then the GNU Regex functions to which you've passed that pattern buffer use it to apply a simple transformation to all the regular expression and string characters at which they look. A "translate table" is an array indexed by the characters in your character set. Under the ASCII encoding, therefore, a translate table has 256 elements. The array's elements are also characters in your character set. When the Regex functions see a character C, they use 'translate[C]' in its place, with one exception: the character after a '\' is not translated. (This ensures that, the operators, e.g., '\B' and '\b', are always distinguishable.) For example, a table that maps all lowercase letters to the corresponding uppercase ones would cause the matcher to ignore differences in case.(1) Such a table would map all characters except lowercase letters to themselves, and lowercase letters to the corresponding uppercase ones. Under the ASCII encoding, here's how you could initialize such a table (we'll call it 'case_fold'): for (i = 0; i < 256; i++) case_fold[i] = i; for (i = 'a'; i <= 'z'; i++) case_fold[i] = i - ('a' - 'A'); You tell Regex to use a translate table on a given pattern buffer by assigning that table's address to the 'translate' field of that buffer. If you don't want Regex to do any translation, put zero into this field. You'll get weird results if you change the table's contents anytime between compiling the pattern buffer, compiling its fastmap, and matching or searching with the pattern buffer. ---------- Footnotes ---------- (1) A table that maps all uppercase letters to the corresponding lowercase ones would work just as well for this purpose.  File: regex.info, Node: Using Registers, Next: Freeing GNU Pattern Buffers, Prev: GNU Translate Tables, Up: GNU Regex Functions 7.1.8 Using Registers --------------------- A group in a regular expression can match a (posssibly empty) substring of the string that regular expression as a whole matched. The matcher remembers the beginning and end of the substring matched by each group. To find out what they matched, pass a nonzero REGS argument to a GNU matching or searching function (*note GNU Matching:: and *note GNU Searching::), i.e., the address of a structure of this type, as defined in 'regex.h': struct re_registers { unsigned num_regs; regoff_t *start; regoff_t *end; }; Except for (possibly) the NUM_REGS'th element (see below), the Ith element of the 'start' and 'end' arrays records information about the Ith group in the pattern. (They're declared as C pointers, but this is only because not all C compilers accept zero-length arrays; conceptually, it is simplest to think of them as arrays.) The 'start' and 'end' arrays are allocated in various ways, depending on the value of the 'regs_allocated' field in the pattern buffer passed to the matcher. The simplest and perhaps most useful is to let the matcher (re)allocate enough space to record information for all the groups in the regular expression. If 'regs_allocated' is 'REGS_UNALLOCATED', the matcher allocates 1 + RE_NSUB (another field in the pattern buffer; *note GNU Pattern Buffers::). The extra element is set to -1, and sets 'regs_allocated' to 'REGS_REALLOCATE'. Then on subsequent calls with the same pattern buffer and REGS arguments, the matcher reallocates more space if necessary. It would perhaps be more logical to make the 'regs_allocated' field part of the 're_registers' structure, instead of part of the pattern buffer. But in that case the caller would be forced to initialize the structure before passing it. Much existing code doesn't do this initialization, and it's arguably better to avoid it anyway. 're_compile_pattern' sets 'regs_allocated' to 'REGS_UNALLOCATED', so if you use the GNU regular expression functions, you get this behavior by default. xx document re_set_registers POSIX, on the other hand, requires a different interface: the caller is supposed to pass in a fixed-length array which the matcher fills. Therefore, if 'regs_allocated' is 'REGS_FIXED' the matcher simply fills that array. The following examples illustrate the information recorded in the 're_registers' structure. (In all of them, '(' represents the open-group and ')' the close-group operator. The first character in the string STRING is at index 0.) * If the regular expression has an I-th group not contained within another group that matches a substring of STRING, then the function sets 'REGS->start[I]' to the index in STRING where the substring matched by the I-th group begins, and 'REGS->end[I]' to the index just beyond that substring's end. The function sets 'REGS->start[0]' and 'REGS->end[0]' to analogous information about the entire pattern. For example, when you match '((a)(b))' against 'ab', you get: - 0 in 'REGS->start[0]' and 2 in 'REGS->end[0]' - 0 in 'REGS->start[1]' and 2 in 'REGS->end[1]' - 0 in 'REGS->start[2]' and 1 in 'REGS->end[2]' - 1 in 'REGS->start[3]' and 2 in 'REGS->end[3]' * If a group matches more than once (as it might if followed by, e.g., a repetition operator), then the function reports the information about what the group _last_ matched. For example, when you match the pattern '(a)*' against the string 'aa', you get: - 0 in 'REGS->start[0]' and 2 in 'REGS->end[0]' - 1 in 'REGS->start[1]' and 2 in 'REGS->end[1]' * If the I-th group does not participate in a successful match, e.g., it is an alternative not taken or a repetition operator allows zero repetitions of it, then the function sets 'REGS->start[I]' and 'REGS->end[I]' to -1. For example, when you match the pattern '(a)*b' against the string 'b', you get: - 0 in 'REGS->start[0]' and 1 in 'REGS->end[0]' - -1 in 'REGS->start[1]' and -1 in 'REGS->end[1]' * If the I-th group matches a zero-length string, then the function sets 'REGS->start[I]' and 'REGS->end[I]' to the index just beyond that zero-length string. For example, when you match the pattern '(a*)b' against the string 'b', you get: - 0 in 'REGS->start[0]' and 1 in 'REGS->end[0]' - 0 in 'REGS->start[1]' and 0 in 'REGS->end[1]' * If an I-th group contains a J-th group in turn not contained within any other group within group I and the function reports a match of the I-th group, then it records in 'REGS->start[J]' and 'REGS->end[J]' the last match (if it matched) of the J-th group. For example, when you match the pattern '((a*)b)*' against the string 'abb', group 2 last matches the empty string, so you get what it previously matched: - 0 in 'REGS->start[0]' and 3 in 'REGS->end[0]' - 2 in 'REGS->start[1]' and 3 in 'REGS->end[1]' - 2 in 'REGS->start[2]' and 2 in 'REGS->end[2]' When you match the pattern '((a)*b)*' against the string 'abb', group 2 doesn't participate in the last match, so you get: - 0 in 'REGS->start[0]' and 3 in 'REGS->end[0]' - 2 in 'REGS->start[1]' and 3 in 'REGS->end[1]' - 0 in 'REGS->start[2]' and 1 in 'REGS->end[2]' * If an I-th group contains a J-th group in turn not contained within any other group within group I and the function sets 'REGS->start[I]' and 'REGS->end[I]' to -1, then it also sets 'REGS->start[J]' and 'REGS->end[J]' to -1. For example, when you match the pattern '((a)*b)*c' against the string 'c', you get: - 0 in 'REGS->start[0]' and 1 in 'REGS->end[0]' - -1 in 'REGS->start[1]' and -1 in 'REGS->end[1]' - -1 in 'REGS->start[2]' and -1 in 'REGS->end[2]'  File: regex.info, Node: Freeing GNU Pattern Buffers, Prev: Using Registers, Up: GNU Regex Functions 7.1.9 Freeing GNU Pattern Buffers --------------------------------- To free any allocated fields of a pattern buffer, you can use the POSIX function described in *note Freeing POSIX Pattern Buffers::, since the type 'regex_t'--the type for POSIX pattern buffers--is equivalent to the type 're_pattern_buffer'. After freeing a pattern buffer, you need to again compile a regular expression in it (*note GNU Regular Expression Compiling::) before passing it to a matching or searching function.  File: regex.info, Node: POSIX Regex Functions, Next: BSD Regex Functions, Prev: GNU Regex Functions, Up: Programming with Regex 7.2 POSIX Regex Functions ========================= If you're writing code that has to be POSIX compatible, you'll need to use these functions. Their interfaces are as specified by POSIX, draft 1003.2/D11.2. * Menu: * POSIX Pattern Buffers:: The regex_t type. * POSIX Regular Expression Compiling:: regcomp () * POSIX Matching:: regexec () * Reporting Errors:: regerror () * Using Byte Offsets:: The regmatch_t type. * Freeing POSIX Pattern Buffers:: regfree ()  File: regex.info, Node: POSIX Pattern Buffers, Next: POSIX Regular Expression Compiling, Up: POSIX Regex Functions 7.2.1 POSIX Pattern Buffers --------------------------- To compile or match a given regular expression the POSIX way, you must supply a pattern buffer exactly the way you do for GNU (*note GNU Pattern Buffers::). POSIX pattern buffers have type 'regex_t', which is equivalent to the GNU pattern buffer type 're_pattern_buffer'.  File: regex.info, Node: POSIX Regular Expression Compiling, Next: POSIX Matching, Prev: POSIX Pattern Buffers, Up: POSIX Regex Functions 7.2.2 POSIX Regular Expression Compiling ---------------------------------------- With POSIX, you can only search for a given regular expression; you can't match it. To do this, you must first compile it in a pattern buffer, using 'regcomp'. To compile a pattern buffer, use: int regcomp (regex_t *PREG, const char *REGEX, int CFLAGS) PREG is the initialized pattern buffer's address, REGEX is the regular expression's address, and CFLAGS is the compilation flags, which Regex considers as a collection of bits. Here are the valid bits, as defined in 'regex.h': 'REG_EXTENDED' says to use POSIX Extended Regular Expression syntax; if this isn't set, then says to use POSIX Basic Regular Expression syntax. 'regcomp' sets PREG's 'syntax' field accordingly. 'REG_ICASE' says to ignore case; 'regcomp' sets PREG's 'translate' field to a translate table which ignores case, replacing anything you've put there before. 'REG_NOSUB' says to set PREG's 'no_sub' field; *note POSIX Matching::, for what this means. 'REG_NEWLINE' says that a: * match-any-character operator (*note Match-any-character Operator::) doesn't match a newline. * nonmatching list not containing a newline (*note List Operators::) matches a newline. * match-beginning-of-line operator (*note Match-beginning-of-line Operator::) matches the empty string immediately after a newline, regardless of how 'REG_NOTBOL' is set (*note POSIX Matching::, for an explanation of 'REG_NOTBOL'). * match-end-of-line operator (*note Match-beginning-of-line Operator::) matches the empty string immediately before a newline, regardless of how 'REG_NOTEOL' is set (*note POSIX Matching::, for an explanation of 'REG_NOTEOL'). If 'regcomp' successfully compiles the regular expression, it returns zero and sets '*PATTERN_BUFFER' to the compiled pattern. Except for 'syntax' (which it sets as explained above), it also sets the same fields the same way as does the GNU compiling function (*note GNU Regular Expression Compiling::). If 'regcomp' can't compile the regular expression, it returns one of the error codes listed here. (Except when noted differently, the syntax of in all examples below is basic regular expression syntax.) 'REG_BADRPT' For example, the consecutive repetition operators '**' in 'a**' are invalid. As another example, if the syntax is extended regular expression syntax, then the repetition operator '*' with nothing on which to operate in '*' is invalid. 'REG_BADBR' For example, the COUNT '-1' in 'a\{-1' is invalid. 'REG_EBRACE' For example, 'a\{1' is missing a close-interval operator. 'REG_EBRACK' For example, '[a' is missing a close-list operator. 'REG_ERANGE' For example, the range ending point 'z' that collates lower than does its starting point 'a' in '[z-a]' is invalid. Also, the range with the character class '[:alpha:]' as its starting point in '[[:alpha:]-|]'. 'REG_ECTYPE' For example, the character class name 'foo' in '[[:foo:]' is invalid. 'REG_EPAREN' For example, 'a\)' is missing an open-group operator and '\(a' is missing a close-group operator. 'REG_ESUBREG' For example, the back reference '\2' that refers to a nonexistent subexpression in '\(a\)\2' is invalid. 'REG_EEND' Returned when a regular expression causes no other more specific error. 'REG_EESCAPE' For example, the trailing backslash '\' in 'a\' is invalid, as is the one in '\'. 'REG_BADPAT' For example, in the extended regular expression syntax, the empty group '()' in 'a()b' is invalid. 'REG_ESIZE' Returned when a regular expression needs a pattern buffer larger than 65536 bytes. 'REG_ESPACE' Returned when a regular expression makes Regex to run out of memory.  File: regex.info, Node: POSIX Matching, Next: Reporting Errors, Prev: POSIX Regular Expression Compiling, Up: POSIX Regex Functions 7.2.3 POSIX Matching -------------------- Matching the POSIX way means trying to match a null-terminated string starting at its first character. Once you've compiled a pattern into a pattern buffer (*note POSIX Regular Expression Compiling::), you can ask the matcher to match that pattern against a string using: int regexec (const regex_t *PREG, const char *STRING, size_t NMATCH, regmatch_t PMATCH[], int EFLAGS) PREG is the address of a pattern buffer for a compiled pattern. STRING is the string you want to match. *Note Using Byte Offsets::, for an explanation of PMATCH. If you pass zero for NMATCH or you compiled PREG with the compilation flag 'REG_NOSUB' set, then 'regexec' will ignore PMATCH; otherwise, you must allocate it to have at least NMATCH elements. 'regexec' will record NMATCH byte offsets in PMATCH, and set to -1 any unused elements up to PMATCH'[NMATCH]' - 1. EFLAGS specifies "execution flags"--namely, the two bits 'REG_NOTBOL' and 'REG_NOTEOL' (defined in 'regex.h'). If you set 'REG_NOTBOL', then the match-beginning-of-line operator (*note Match-beginning-of-line Operator::) always fails to match. This lets you match against pieces of a line, as you would need to if, say, searching for repeated instances of a given pattern in a line; it would work correctly for patterns both with and without match-beginning-of-line operators. 'REG_NOTEOL' works analogously for the match-end-of-line operator (*note Match-end-of-line Operator::); it exists for symmetry. 'regexec' tries to find a match for PREG in STRING according to the syntax in PREG's 'syntax' field. (*Note POSIX Regular Expression Compiling::, for how to set it.) The function returns zero if the compiled pattern matches STRING and 'REG_NOMATCH' (defined in 'regex.h') if it doesn't.  File: regex.info, Node: Reporting Errors, Next: Using Byte Offsets, Prev: POSIX Matching, Up: POSIX Regex Functions 7.2.4 Reporting Errors ---------------------- If either 'regcomp' or 'regexec' fail, they return a nonzero error code, the possibilities for which are defined in 'regex.h'. *Note POSIX Regular Expression Compiling::, and *note POSIX Matching::, for what these codes mean. To get an error string corresponding to these codes, you can use: size_t regerror (int ERRCODE, const regex_t *PREG, char *ERRBUF, size_t ERRBUF_SIZE) ERRCODE is an error code, PREG is the address of the pattern buffer which provoked the error, ERRBUF is the error buffer, and ERRBUF_SIZE is ERRBUF's size. 'regerror' returns the size in bytes of the error string corresponding to ERRCODE (including its terminating null). If ERRBUF and ERRBUF_SIZE are nonzero, it also returns in ERRBUF the first ERRBUF_SIZE - 1 characters of the error string, followed by a null. ERRBUF_SIZE must be a nonnegative number less than or equal to the size in bytes of ERRBUF. You can call 'regerror' with a null ERRBUF and a zero ERRBUF_SIZE to determine how large ERRBUF need be to accommodate 'regerror''s error string.  File: regex.info, Node: Using Byte Offsets, Next: Freeing POSIX Pattern Buffers, Prev: Reporting Errors, Up: POSIX Regex Functions 7.2.5 Using Byte Offsets ------------------------ In POSIX, variables of type 'regmatch_t' hold analogous information, but are not identical to, GNU's registers (*note Using Registers::). To get information about registers in POSIX, pass to 'regexec' a nonzero PMATCH of type 'regmatch_t', i.e., the address of a structure of this type, defined in 'regex.h': typedef struct { regoff_t rm_so; regoff_t rm_eo; } regmatch_t; When reading in *note Using Registers::, about how the matching function stores the information into the registers, substitute PMATCH for REGS, 'PMATCH[I]->rm_so' for 'REGS->start[I]' and 'PMATCH[I]->rm_eo' for 'REGS->end[I]'.  File: regex.info, Node: Freeing POSIX Pattern Buffers, Prev: Using Byte Offsets, Up: POSIX Regex Functions 7.2.6 Freeing POSIX Pattern Buffers ----------------------------------- To free any allocated fields of a pattern buffer, use: void regfree (regex_t *PREG) PREG is the pattern buffer whose allocated fields you want freed. 'regfree' also sets PREG's 'allocated' and 'used' fields to zero. After freeing a pattern buffer, you need to again compile a regular expression in it (*note POSIX Regular Expression Compiling::) before passing it to the matching function (*note POSIX Matching::).  File: regex.info, Node: BSD Regex Functions, Prev: POSIX Regex Functions, Up: Programming with Regex 7.3 BSD Regex Functions ======================= If you're writing code that has to be Berkeley UNIX compatible, you'll need to use these functions whose interfaces are the same as those in Berkeley UNIX. * Menu: * BSD Regular Expression Compiling:: re_comp () * BSD Searching:: re_exec ()  File: regex.info, Node: BSD Regular Expression Compiling, Next: BSD Searching, Up: BSD Regex Functions 7.3.1 BSD Regular Expression Compiling -------------------------------------- With Berkeley UNIX, you can only search for a given regular expression; you can't match one. To search for it, you must first compile it. Before you compile it, you must indicate the regular expression syntax you want it compiled according to by setting the variable 're_syntax_options' (declared in 'regex.h' to some syntax (*note Regular Expression Syntax::). To compile a regular expression use: char * re_comp (char *REGEX) REGEX is the address of a null-terminated regular expression. 're_comp' uses an internal pattern buffer, so you can use only the most recently compiled pattern buffer. This means that if you want to use a given regular expression that you've already compiled--but it isn't the latest one you've compiled--you'll have to recompile it. If you call 're_comp' with the null string (_not_ the empty string) as the argument, it doesn't change the contents of the pattern buffer. If 're_comp' successfully compiles the regular expression, it returns zero. If it can't compile the regular expression, it returns an error string. 're_comp''s error messages are identical to those of 're_compile_pattern' (*note GNU Regular Expression Compiling::).  File: regex.info, Node: BSD Searching, Prev: BSD Regular Expression Compiling, Up: BSD Regex Functions 7.3.2 BSD Searching ------------------- Searching the Berkeley UNIX way means searching in a string starting at its first character and trying successive positions within it to find a match. Once you've compiled a pattern using 're_comp' (*note BSD Regular Expression Compiling::), you can ask Regex to search for that pattern in a string using: int re_exec (char *STRING) STRING is the address of the null-terminated string in which you want to search. 're_exec' returns either 1 for success or 0 for failure. It automatically uses a GNU fastmap (*note Searching with Fastmaps::).  File: regex.info, Node: Copying, Next: Index, Prev: Programming with Regex, Up: Top Appendix A GNU GENERAL PUBLIC LICENSE ************************************* Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble ======== The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 1. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 2. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 3. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a. You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 4. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 5. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 6. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 7. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 8. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 9. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 10. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 11. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs ======================================================= If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) 19YY NAME OF AUTHOR This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands 'show w' and 'show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than 'show w' and 'show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. SIGNATURE OF TY COON, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.  File: regex.info, Node: Index, Prev: Copying, Up: Top Index ***** �[index�] * Menu: * $: Match-end-of-line Operator. (line 6) * (: Grouping Operators. (line 6) * ): Grouping Operators. (line 6) * *: Match-zero-or-more Operator. (line 6) * +: Match-one-or-more Operator. (line 6) * -: List Operators. (line 6) * .: Match-any-character Operator. (line 6) * :] in regex: Character Class Operators. (line 6) * ?: Match-zero-or-one Operator. (line 6) * [: List Operators. (line 6) * [: in regex: Character Class Operators. (line 6) * [^: List Operators. (line 6) * \: The Backslash Character. (line 6) * \ <1>: List Operators. (line 6) * \': Match-end-of-buffer Operator. (line 6) * \(: Grouping Operators. (line 6) * \): Grouping Operators. (line 6) * \<: Match-beginning-of-word Operator. (line 6) * \>: Match-end-of-word Operator. (line 6) * \b: Match-word-boundary Operator. (line 6) * \B: Match-within-word Operator. (line 6) * \s: Match-syntactic-class Operator. (line 6) * \S: Match-not-syntactic-class Operator. (line 6) * \w: Match-word-constituent Operator. (line 6) * \W: Match-non-word-constituent Operator. (line 6) * \`: Match-beginning-of-buffer Operator. (line 6) * \{: Interval Operators. (line 6) * \|: Alternation Operator. (line 6) * \}: Interval Operators. (line 6) * ]: List Operators. (line 6) * ^: Match-beginning-of-line Operator. (line 6) * ^ <1>: List Operators. (line 6) * {: Interval Operators. (line 6) * |: Alternation Operator. (line 6) * }: Interval Operators. (line 6) * allocated initialization: GNU Regular Expression Compiling. (line 35) * alternation operator: Alternation Operator. (line 6) * alternation operator and ^: Match-beginning-of-line Operator. (line 18) * anchoring: Anchoring Operators. (line 6) * anchors: Match-beginning-of-line Operator. (line 6) * anchors <1>: Match-end-of-line Operator. (line 6) * Awk: Predefined Syntaxes. (line 11) * back references: Back-reference Operator. (line 6) * backtracking: Match-zero-or-more Operator. (line 33) * backtracking <1>: Alternation Operator. (line 23) * beginning-of-line operator: Match-beginning-of-line Operator. (line 6) * bracket expression: List Operators. (line 6) * buffer field, set by re_compile_pattern: GNU Regular Expression Compiling. (line 58) * buffer initialization: GNU Regular Expression Compiling. (line 35) * character classes: Character Class Operators. (line 6) * Egrep: Predefined Syntaxes. (line 11) * Emacs: Predefined Syntaxes. (line 10) * end in struct re_registers: Using Registers. (line 15) * end-of-line operator: Match-end-of-line Operator. (line 6) * fastmap initialization: GNU Regular Expression Compiling. (line 30) * fastmaps: Searching with Fastmaps. (line 6) * fastmap_accurate field, set by re_compile_pattern: GNU Regular Expression Compiling. (line 70) * Grep: Predefined Syntaxes. (line 11) * grouping: Grouping Operators. (line 6) * ignoring case: POSIX Regular Expression Compiling. (line 26) * interval expression: Interval Operators. (line 6) * matching list: List Operators. (line 6) * matching newline: List Operators. (line 6) * matching with GNU functions: GNU Matching. (line 6) * newline_anchor field in pattern buffer: Match-beginning-of-line Operator. (line 29) * nonmatching list: List Operators. (line 6) * not_bol field in pattern buffer: Match-beginning-of-line Operator. (line 25) * num_regs in struct re_registers: Using Registers. (line 15) * open-group operator and ^: Match-beginning-of-line Operator. (line 18) * or operator: Alternation Operator. (line 6) * parenthesizing: Grouping Operators. (line 6) * pattern buffer initialization: GNU Regular Expression Compiling. (line 19) * pattern buffer, definition of: GNU Pattern Buffers. (line 6) * POSIX Awk: Predefined Syntaxes. (line 10) * range argument to re_search: GNU Searching. (line 20) * regex.c: Overview. (line 35) * regex.h: Overview. (line 35) * regexp anchoring: Anchoring Operators. (line 6) * regmatch_t: Using Byte Offsets. (line 12) * regs_allocated: Using Registers. (line 29) * REGS_FIXED: Using Registers. (line 55) * REGS_REALLOCATE: Using Registers. (line 37) * REGS_UNALLOCATED: Using Registers. (line 34) * regular expressions, syntax of: Regular Expression Syntax. (line 6) * REG_EXTENDED: POSIX Regular Expression Compiling. (line 21) * REG_ICASE: POSIX Regular Expression Compiling. (line 26) * REG_NEWLINE: POSIX Regular Expression Compiling. (line 35) * REG_NOSUB: POSIX Regular Expression Compiling. (line 31) * RE_BACKSLASH_ESCAPE_IN_LIST: Syntax Bits. (line 27) * RE_BK_PLUS_QM: Syntax Bits. (line 34) * RE_CHAR_CLASSES: Syntax Bits. (line 41) * RE_CONTEXT_INDEP_ANCHORS: Syntax Bits. (line 45) * RE_CONTEXT_INDEP_ANCHORS (and ^): Match-beginning-of-line Operator. (line 15) * RE_CONTEXT_INDEP_OPS: Syntax Bits. (line 51) * RE_CONTEXT_INVALID_OPS: Syntax Bits. (line 64) * RE_DOT_NEWLINE: Syntax Bits. (line 82) * RE_DOT_NOT_NULL: Syntax Bits. (line 86) * RE_INTERVALS: Syntax Bits. (line 90) * RE_LIMITED_OPS: Syntax Bits. (line 94) * RE_NEWLINE_ALT: Syntax Bits. (line 99) * RE_NO_BK_BRACES: Syntax Bits. (line 103) * RE_NO_BK_PARENS: Syntax Bits. (line 110) * RE_NO_BK_REFS: Syntax Bits. (line 116) * RE_NO_BK_VBAR: Syntax Bits. (line 120) * RE_NO_EMPTY_RANGES: Syntax Bits. (line 125) * re_nsub field, set by re_compile_pattern: GNU Regular Expression Compiling. (line 67) * re_pattern_buffer definition: GNU Pattern Buffers. (line 6) * re_registers: Using Registers. (line 15) * re_syntax_options initialization: GNU Regular Expression Compiling. (line 10) * RE_UNMATCHED_RIGHT_PAREN_ORD: Syntax Bits. (line 130) * searching with GNU functions: GNU Searching. (line 6) * start argument to re_search: GNU Searching. (line 20) * start in struct re_registers: Using Registers. (line 15) * struct re_pattern_buffer definition: GNU Pattern Buffers. (line 6) * subexpressions: Grouping Operators. (line 6) * syntax bits: Syntax Bits. (line 6) * syntax field, set by re_compile_pattern: GNU Regular Expression Compiling. (line 64) * syntax initialization: GNU Regular Expression Compiling. (line 10) * syntax of regular expressions: Regular Expression Syntax. (line 6) * translate initialization: GNU Regular Expression Compiling. (line 25) * used field, set by re_compile_pattern: GNU Regular Expression Compiling. (line 61) * word boundaries, matching: Match-word-boundary Operator. (line 6)  Tag Table: Node: Top1171 Node: Overview4667 Node: Regular Expression Syntax6853 Node: Syntax Bits8025 Node: Predefined Syntaxes14133 Node: Collating Elements vs. Characters17931 Node: The Backslash Character18900 Ref: The Backslash Character-Footnote-121258 Node: Common Operators22051 Node: Match-self Operator23505 Node: Match-any-character Operator24006 Node: Concatenation Operator24591 Node: Repetition Operators25094 Node: Match-zero-or-more Operator25519 Node: Match-one-or-more Operator27575 Node: Match-zero-or-one Operator28442 Node: Interval Operators29306 Node: Alternation Operator31111 Node: List Operators32616 Ref: List Operators-Footnote-135200 Node: Character Class Operators35402 Node: Range Operator37041 Ref: Range Operator-Footnote-138948 Node: Grouping Operators39084 Node: Back-reference Operator40406 Node: Anchoring Operators43234 Node: Match-beginning-of-line Operator43614 Node: Match-end-of-line Operator44954 Node: GNU Operators45703 Node: Word Operators45954 Node: Non-Emacs Syntax Tables46583 Node: Match-word-boundary Operator47666 Node: Match-within-word Operator48069 Node: Match-beginning-of-word Operator48477 Node: Match-end-of-word Operator48820 Node: Match-word-constituent Operator49150 Node: Match-non-word-constituent Operator49486 Node: Buffer Operators49807 Node: Match-beginning-of-buffer Operator50220 Node: Match-end-of-buffer Operator50528 Node: GNU Emacs Operators50818 Node: Syntactic Class Operators51163 Node: Emacs Syntax Tables51575 Node: Match-syntactic-class Operator52239 Node: Match-not-syntactic-class Operator52846 Node: What Gets Matched?53446 Node: Programming with Regex54097 Node: GNU Regex Functions54537 Node: GNU Pattern Buffers55384 Ref: GNU Pattern Buffers-Footnote-158459 Node: GNU Regular Expression Compiling58556 Node: GNU Matching61445 Node: GNU Searching63375 Node: Matching/Searching with Split Data65196 Node: Searching with Fastmaps66661 Node: GNU Translate Tables69222 Ref: GNU Translate Tables-Footnote-171077 Node: Using Registers71203 Node: Freeing GNU Pattern Buffers77319 Node: POSIX Regex Functions77921 Node: POSIX Pattern Buffers78601 Node: POSIX Regular Expression Compiling79053 Node: POSIX Matching83183 Node: Reporting Errors85145 Node: Using Byte Offsets86413 Node: Freeing POSIX Pattern Buffers87236 Node: BSD Regex Functions87851 Node: BSD Regular Expression Compiling88276 Node: BSD Searching89656 Node: Copying90366 Node: Index109520  End Tag Table  Local Variables: coding: utf-8 End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/regex.texi��������������������������������������������������������������������������0000644�0000000�0000000�00000352101�14233473143�012122� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������\input texinfo @c %**start of header @setfilename regex.info @settitle Regex @c %**end of header @c Modified by Akim.Demaille@inf.esnt.fr: @c - added @minus to the @itemize that had no arguments @c - added the following @direntry @dircategory C library code @direntry * Regex: (regex). Regular expression library. @end direntry @c \\{fill-paragraph} works better (for me, anyway) if the text in the @c source file isn't indented. @paragraphindent 2 @c Define a new index for our magic constants. @defcodeindex cn @c Put everything in one index (arbitrarily chosen to be the concept index). @syncodeindex cn cp @syncodeindex ky cp @syncodeindex pg cp @syncodeindex tp cp @syncodeindex vr cp @c Here is what we use in the Info `dir' file: @c * Regex: (regex). Regular expression library. @ifinfo This file documents the GNU regular expression library. Copyright (C) 1992, 1993 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. @ignore Permission is granted to process this file through TeX and print the results, provided the printed document carries a copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). @end ignore Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled ``GNU General Public License'' is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that the section entitled ``GNU General Public License'' may be included in a translation approved by the Free Software Foundation instead of in the original English. @end ifinfo @titlepage @title Regex @subtitle edition 0.12a @subtitle 19 September 1992 @author Kathryn A. Hargreaves @author Karl Berry @page @vskip 0pt plus 1filll Copyright @copyright{} 1992 Free Software Foundation. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled ``GNU General Public License'' is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that the section entitled ``GNU General Public License'' may be included in a translation approved by the Free Software Foundation instead of in the original English. @end titlepage @ifinfo @node Top, Overview, (dir), (dir) @top Regular Expression Library This manual documents how to program with the GNU regular expression library. This is edition 0.12a of the manual, 19 September 1992. The first part of this master menu lists the major nodes in this Info document, including the index. The rest of the menu lists all the lower level nodes in the document. @menu * Overview:: * Regular Expression Syntax:: * Common Operators:: * GNU Operators:: * GNU Emacs Operators:: * What Gets Matched?:: * Programming with Regex:: * Copying:: Copying and sharing Regex. * Index:: General index. --- The Detailed Node Listing --- Regular Expression Syntax * Syntax Bits:: * Predefined Syntaxes:: * Collating Elements vs. Characters:: * The Backslash Character:: Common Operators * Match-self Operator:: Ordinary characters. * Match-any-character Operator:: . * Concatenation Operator:: Juxtaposition. * Repetition Operators:: * + ? @{@} * Alternation Operator:: | * List Operators:: [...] [^...] * Grouping Operators:: (...) * Back-reference Operator:: \digit * Anchoring Operators:: ^ $ Repetition Operators * Match-zero-or-more Operator:: * * Match-one-or-more Operator:: + * Match-zero-or-one Operator:: ? * Interval Operators:: @{@} List Operators (@code{[} @dots{} @code{]} and @code{[^} @dots{} @code{]}) * Character Class Operators:: [:class:] * Range Operator:: start-end Anchoring Operators * Match-beginning-of-line Operator:: ^ * Match-end-of-line Operator:: $ GNU Operators * Word Operators:: * Buffer Operators:: Word Operators * Non-Emacs Syntax Tables:: * Match-word-boundary Operator:: \b * Match-within-word Operator:: \B * Match-beginning-of-word Operator:: \< * Match-end-of-word Operator:: \> * Match-word-constituent Operator:: \w * Match-non-word-constituent Operator:: \W Buffer Operators * Match-beginning-of-buffer Operator:: \` * Match-end-of-buffer Operator:: \' GNU Emacs Operators * Syntactic Class Operators:: Syntactic Class Operators * Emacs Syntax Tables:: * Match-syntactic-class Operator:: \sCLASS * Match-not-syntactic-class Operator:: \SCLASS Programming with Regex * GNU Regex Functions:: * POSIX Regex Functions:: * BSD Regex Functions:: GNU Regex Functions * GNU Pattern Buffers:: The re_pattern_buffer type. * GNU Regular Expression Compiling:: re_compile_pattern () * GNU Matching:: re_match () * GNU Searching:: re_search () * Matching/Searching with Split Data:: re_match_2 (), re_search_2 () * Searching with Fastmaps:: re_compile_fastmap () * GNU Translate Tables:: The `translate' field. * Using Registers:: The re_registers type and related fns. * Freeing GNU Pattern Buffers:: regfree () POSIX Regex Functions * POSIX Pattern Buffers:: The regex_t type. * POSIX Regular Expression Compiling:: regcomp () * POSIX Matching:: regexec () * Reporting Errors:: regerror () * Using Byte Offsets:: The regmatch_t type. * Freeing POSIX Pattern Buffers:: regfree () BSD Regex Functions * BSD Regular Expression Compiling:: re_comp () * BSD Searching:: re_exec () @end menu @end ifinfo @node Overview, Regular Expression Syntax, Top, Top @chapter Overview A @dfn{regular expression} (or @dfn{regexp}, or @dfn{pattern}) is a text string that describes some (mathematical) set of strings. A regexp @var{r} @dfn{matches} a string @var{s} if @var{s} is in the set of strings described by @var{r}. Using the Regex library, you can: @itemize @bullet @item see if a string matches a specified pattern as a whole, and @item search within a string for a substring matching a specified pattern. @end itemize Some regular expressions match only one string, i.e., the set they describe has only one member. For example, the regular expression @samp{foo} matches the string @samp{foo} and no others. Other regular expressions match more than one string, i.e., the set they describe has more than one member. For example, the regular expression @samp{f*} matches the set of strings made up of any number (including zero) of @samp{f}s. As you can see, some characters in regular expressions match themselves (such as @samp{f}) and some don't (such as @samp{*}); the ones that don't match themselves instead let you specify patterns that describe many different strings. To either match or search for a regular expression with the Regex library functions, you must first compile it with a Regex pattern compiling function. A @dfn{compiled pattern} is a regular expression converted to the internal format used by the library functions. Once you've compiled a pattern, you can use it for matching or searching any number of times. The Regex library consists of two source files: @file{regex.h} and @file{regex.c}. @pindex regex.h @pindex regex.c Regex provides three groups of functions with which you can operate on regular expressions. One group---the @sc{gnu} group---is more powerful but not completely compatible with the other two, namely the @sc{posix} and Berkeley @sc{unix} groups; its interface was designed specifically for @sc{gnu}. The other groups have the same interfaces as do the regular expression functions in @sc{posix} and Berkeley @sc{unix}. We wrote this chapter with programmers in mind, not users of programs---such as Emacs---that use Regex. We describe the Regex library in its entirety, not how to write regular expressions that a particular program understands. @node Regular Expression Syntax, Common Operators, Overview, Top @chapter Regular Expression Syntax @cindex regular expressions, syntax of @cindex syntax of regular expressions @dfn{Characters} are things you can type. @dfn{Operators} are things in a regular expression that match one or more characters. You compose regular expressions from operators, which in turn you specify using one or more characters. Most characters represent what we call the match-self operator, i.e., they match themselves; we call these characters @dfn{ordinary}. Other characters represent either all or parts of fancier operators; e.g., @samp{.} represents what we call the match-any-character operator (which, no surprise, matches (almost) any character); we call these characters @dfn{special}. Two different things determine what characters represent what operators: @enumerate @item the regular expression syntax your program has told the Regex library to recognize, and @item the context of the character in the regular expression. @end enumerate In the following sections, we describe these things in more detail. @menu * Syntax Bits:: * Predefined Syntaxes:: * Collating Elements vs. Characters:: * The Backslash Character:: @end menu @node Syntax Bits, Predefined Syntaxes, , Regular Expression Syntax @section Syntax Bits @cindex syntax bits In any particular syntax for regular expressions, some characters are always special, others are sometimes special, and others are never special. The particular syntax that Regex recognizes for a given regular expression depends on the value in the @code{syntax} field of the pattern buffer of that regular expression. You get a pattern buffer by compiling a regular expression. @xref{GNU Pattern Buffers}, and @ref{POSIX Pattern Buffers}, for more information on pattern buffers. @xref{GNU Regular Expression Compiling}, @ref{POSIX Regular Expression Compiling}, and @ref{BSD Regular Expression Compiling}, for more information on compiling. Regex considers the value of the @code{syntax} field to be a collection of bits; we refer to these bits as @dfn{syntax bits}. In most cases, they affect what characters represent what operators. We describe the meanings of the operators to which we refer in @ref{Common Operators}, @ref{GNU Operators}, and @ref{GNU Emacs Operators}. For reference, here is the complete list of syntax bits, in alphabetical order: @table @code @cnindex RE_BACKSLASH_ESCAPE_IN_LIST @item RE_BACKSLASH_ESCAPE_IN_LISTS If this bit is set, then @samp{\} inside a list (@pxref{List Operators} quotes (makes ordinary, if it's special) the following character; if this bit isn't set, then @samp{\} is an ordinary character inside lists. (@xref{The Backslash Character}, for what `\' does outside of lists.) @cnindex RE_BK_PLUS_QM @item RE_BK_PLUS_QM If this bit is set, then @samp{\+} represents the match-one-or-more operator and @samp{\?} represents the match-zero-or-more operator; if this bit isn't set, then @samp{+} represents the match-one-or-more operator and @samp{?} represents the match-zero-or-one operator. This bit is irrelevant if @code{RE_LIMITED_OPS} is set. @cnindex RE_CHAR_CLASSES @item RE_CHAR_CLASSES If this bit is set, then you can use character classes in lists; if this bit isn't set, then you can't. @cnindex RE_CONTEXT_INDEP_ANCHORS @item RE_CONTEXT_INDEP_ANCHORS If this bit is set, then @samp{^} and @samp{$} are special anywhere outside a list; if this bit isn't set, then these characters are special only in certain contexts. @xref{Match-beginning-of-line Operator}, and @ref{Match-end-of-line Operator}. @cnindex RE_CONTEXT_INDEP_OPS @item RE_CONTEXT_INDEP_OPS If this bit is set, then certain characters are special anywhere outside a list; if this bit isn't set, then those characters are special only in some contexts and are ordinary elsewhere. Specifically, if this bit isn't set then @samp{*}, and (if the syntax bit @code{RE_LIMITED_OPS} isn't set) @samp{+} and @samp{?} (or @samp{\+} and @samp{\?}, depending on the syntax bit @code{RE_BK_PLUS_QM}) represent repetition operators only if they're not first in a regular expression or just after an open-group or alternation operator. The same holds for @samp{@{} (or @samp{\@{}, depending on the syntax bit @code{RE_NO_BK_BRACES}) if it is the beginning of a valid interval and the syntax bit @code{RE_INTERVALS} is set. @cnindex RE_CONTEXT_INVALID_OPS @item RE_CONTEXT_INVALID_OPS If this bit is set, then repetition and alternation operators can't be in certain positions within a regular expression. Specifically, the regular expression is invalid if it has: @itemize @bullet @item a repetition operator first in the regular expression or just after a match-beginning-of-line, open-group, or alternation operator; or @item an alternation operator first or last in the regular expression, just before a match-end-of-line operator, or just after an alternation or open-group operator. @end itemize If this bit isn't set, then you can put the characters representing the repetition and alternation characters anywhere in a regular expression. Whether or not they will in fact be operators in certain positions depends on other syntax bits. @cnindex RE_DOT_NEWLINE @item RE_DOT_NEWLINE If this bit is set, then the match-any-character operator matches a newline; if this bit isn't set, then it doesn't. @cnindex RE_DOT_NOT_NULL @item RE_DOT_NOT_NULL If this bit is set, then the match-any-character operator doesn't match a null character; if this bit isn't set, then it does. @cnindex RE_INTERVALS @item RE_INTERVALS If this bit is set, then Regex recognizes interval operators; if this bit isn't set, then it doesn't. @cnindex RE_LIMITED_OPS @item RE_LIMITED_OPS If this bit is set, then Regex doesn't recognize the match-one-or-more, match-zero-or-one or alternation operators; if this bit isn't set, then it does. @cnindex RE_NEWLINE_ALT @item RE_NEWLINE_ALT If this bit is set, then newline represents the alternation operator; if this bit isn't set, then newline is ordinary. @cnindex RE_NO_BK_BRACES @item RE_NO_BK_BRACES If this bit is set, then @samp{@{} represents the open-interval operator and @samp{@}} represents the close-interval operator; if this bit isn't set, then @samp{\@{} represents the open-interval operator and @samp{\@}} represents the close-interval operator. This bit is relevant only if @code{RE_INTERVALS} is set. @cnindex RE_NO_BK_PARENS @item RE_NO_BK_PARENS If this bit is set, then @samp{(} represents the open-group operator and @samp{)} represents the close-group operator; if this bit isn't set, then @samp{\(} represents the open-group operator and @samp{\)} represents the close-group operator. @cnindex RE_NO_BK_REFS @item RE_NO_BK_REFS If this bit is set, then Regex doesn't recognize @samp{\}@var{digit} as the back reference operator; if this bit isn't set, then it does. @cnindex RE_NO_BK_VBAR @item RE_NO_BK_VBAR If this bit is set, then @samp{|} represents the alternation operator; if this bit isn't set, then @samp{\|} represents the alternation operator. This bit is irrelevant if @code{RE_LIMITED_OPS} is set. @cnindex RE_NO_EMPTY_RANGES @item RE_NO_EMPTY_RANGES If this bit is set, then a regular expression with a range whose ending point collates lower than its starting point is invalid; if this bit isn't set, then Regex considers such a range to be empty. @cnindex RE_UNMATCHED_RIGHT_PAREN_ORD @item RE_UNMATCHED_RIGHT_PAREN_ORD If this bit is set and the regular expression has no matching open-group operator, then Regex considers what would otherwise be a close-group operator (based on how @code{RE_NO_BK_PARENS} is set) to match @samp{)}. @end table @node Predefined Syntaxes, Collating Elements vs. Characters, Syntax Bits, Regular Expression Syntax @section Predefined Syntaxes If you're programming with Regex, you can set a pattern buffer's (@pxref{GNU Pattern Buffers}, and @ref{POSIX Pattern Buffers}) @code{syntax} field either to an arbitrary combination of syntax bits (@pxref{Syntax Bits}) or else to the configurations defined by Regex. These configurations define the syntaxes used by certain programs---@sc{gnu} Emacs, @cindex Emacs @sc{posix} Awk, @cindex POSIX Awk traditional Awk, @cindex Awk Grep, @cindex Grep @cindex Egrep Egrep---in addition to syntaxes for @sc{posix} basic and extended regular expressions. The predefined syntaxes--taken directly from @file{regex.h}---are: @example #define RE_SYNTAX_EMACS 0 #define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_UNMATCHED_RIGHT_PAREN_ORD) #define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS) #define RE_SYNTAX_GREP \ (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ | RE_NEWLINE_ALT) #define RE_SYNTAX_EGREP \ (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ | RE_NO_BK_VBAR) #define RE_SYNTAX_POSIX_EGREP \ (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES) /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ #define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC #define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC /* Syntax bits common to both basic and extended POSIX regex syntax. */ #define _RE_SYNTAX_POSIX_COMMON \ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | RE_INTERVALS | RE_NO_EMPTY_RANGES) #define RE_SYNTAX_POSIX_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this isn't minimal, since other operators, such as \`, aren't disabled. */ #define RE_SYNTAX_POSIX_MINIMAL_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) #define RE_SYNTAX_POSIX_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ | RE_UNMATCHED_RIGHT_PAREN_ORD) /* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */ #define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) @end example @node Collating Elements vs. Characters, The Backslash Character, Predefined Syntaxes, Regular Expression Syntax @section Collating Elements vs.@: Characters @sc{posix} generalizes the notion of a character to that of a collating element. It defines a @dfn{collating element} to be ``a sequence of one or more bytes defined in the current collating sequence as a unit of collation.'' This generalizes the notion of a character in two ways. First, a single character can map into two or more collating elements. For example, the German @tex `\ss' @end tex @ifinfo ``es-zet'' @end ifinfo collates as the collating element @samp{s} followed by another collating element @samp{s}. Second, two or more characters can map into one collating element. For example, the Spanish @samp{ll} collates after @samp{l} and before @samp{m}. Since @sc{posix}'s ``collating element'' preserves the essential idea of a ``character,'' we use the latter, more familiar, term in this document. @node The Backslash Character, , Collating Elements vs. Characters, Regular Expression Syntax @section The Backslash Character @cindex @samp{\} The @samp{\} character has one of four different meanings, depending on the context in which you use it and what syntax bits are set (@pxref{Syntax Bits}). It can: 1) stand for itself, 2) quote the next character, 3) introduce an operator, or 4) do nothing. @enumerate @item It stands for itself inside a list (@pxref{List Operators}) if the syntax bit @code{RE_BACKSLASH_ESCAPE_IN_LISTS} is not set. For example, @samp{[\]} would match @samp{\}. @item It quotes (makes ordinary, if it's special) the next character when you use it either: @itemize @bullet @item outside a list,@footnote{Sometimes you don't have to explicitly quote special characters to make them ordinary. For instance, most characters lose any special meaning inside a list (@pxref{List Operators}). In addition, if the syntax bits @code{RE_CONTEXT_INVALID_OPS} and @code{RE_CONTEXT_INDEP_OPS} aren't set, then (for historical reasons) the matcher considers special characters ordinary if they are in contexts where the operations they represent make no sense; for example, then the match-zero-or-more operator (represented by @samp{*}) matches itself in the regular expression @samp{*foo} because there is no preceding expression on which it can operate. It is poor practice, however, to depend on this behavior; if you want a special character to be ordinary outside a list, it's better to always quote it, regardless.} or @item inside a list and the syntax bit @code{RE_BACKSLASH_ESCAPE_IN_LISTS} is set. @end itemize @item It introduces an operator when followed by certain ordinary characters---sometimes only when certain syntax bits are set. See the cases @code{RE_BK_PLUS_QM}, @code{RE_NO_BK_BRACES}, @code{RE_NO_BK_VAR}, @code{RE_NO_BK_PARENS}, @code{RE_NO_BK_REF} in @ref{Syntax Bits}. Also: @itemize @bullet @item @samp{\b} represents the match-word-boundary operator (@pxref{Match-word-boundary Operator}). @item @samp{\B} represents the match-within-word operator (@pxref{Match-within-word Operator}). @item @samp{\<} represents the match-beginning-of-word operator @* (@pxref{Match-beginning-of-word Operator}). @item @samp{\>} represents the match-end-of-word operator (@pxref{Match-end-of-word Operator}). @item @samp{\w} represents the match-word-constituent operator (@pxref{Match-word-constituent Operator}). @item @samp{\W} represents the match-non-word-constituent operator (@pxref{Match-non-word-constituent Operator}). @item @samp{\`} represents the match-beginning-of-buffer operator and @samp{\'} represents the match-end-of-buffer operator (@pxref{Buffer Operators}). @item If Regex was compiled with the C preprocessor symbol @code{emacs} defined, then @samp{\s@var{class}} represents the match-syntactic-class operator and @samp{\S@var{class}} represents the match-not-syntactic-class operator (@pxref{Syntactic Class Operators}). @end itemize @item In all other cases, Regex ignores @samp{\}. For example, @samp{\n} matches @samp{n}. @end enumerate @node Common Operators, GNU Operators, Regular Expression Syntax, Top @chapter Common Operators You compose regular expressions from operators. In the following sections, we describe the regular expression operators specified by @sc{posix}; @sc{gnu} also uses these. Most operators have more than one representation as characters. @xref{Regular Expression Syntax}, for what characters represent what operators under what circumstances. For most operators that can be represented in two ways, one representation is a single character and the other is that character preceded by @samp{\}. For example, either @samp{(} or @samp{\(} represents the open-group operator. Which one does depends on the setting of a syntax bit, in this case @code{RE_NO_BK_PARENS}. Why is this so? Historical reasons dictate some of the varying representations, while @sc{posix} dictates others. Finally, almost all characters lose any special meaning inside a list (@pxref{List Operators}). @menu * Match-self Operator:: Ordinary characters. * Match-any-character Operator:: . * Concatenation Operator:: Juxtaposition. * Repetition Operators:: * + ? @{@} * Alternation Operator:: | * List Operators:: [...] [^...] * Grouping Operators:: (...) * Back-reference Operator:: \digit * Anchoring Operators:: ^ $ @end menu @node Match-self Operator, Match-any-character Operator, , Common Operators @section The Match-self Operator (@var{ordinary character}) This operator matches the character itself. All ordinary characters (@pxref{Regular Expression Syntax}) represent this operator. For example, @samp{f} is always an ordinary character, so the regular expression @samp{f} matches only the string @samp{f}. In particular, it does @emph{not} match the string @samp{ff}. @node Match-any-character Operator, Concatenation Operator, Match-self Operator, Common Operators @section The Match-any-character Operator (@code{.}) @cindex @samp{.} This operator matches any single printing or nonprinting character except it won't match a: @table @asis @item newline if the syntax bit @code{RE_DOT_NEWLINE} isn't set. @item null if the syntax bit @code{RE_DOT_NOT_NULL} is set. @end table The @samp{.} (period) character represents this operator. For example, @samp{a.b} matches any three-character string beginning with @samp{a} and ending with @samp{b}. @node Concatenation Operator, Repetition Operators, Match-any-character Operator, Common Operators @section The Concatenation Operator This operator concatenates two regular expressions @var{a} and @var{b}. No character represents this operator; you simply put @var{b} after @var{a}. The result is a regular expression that will match a string if @var{a} matches its first part and @var{b} matches the rest. For example, @samp{xy} (two match-self operators) matches @samp{xy}. @node Repetition Operators, Alternation Operator, Concatenation Operator, Common Operators @section Repetition Operators Repetition operators repeat the preceding regular expression a specified number of times. @menu * Match-zero-or-more Operator:: * * Match-one-or-more Operator:: + * Match-zero-or-one Operator:: ? * Interval Operators:: @{@} @end menu @node Match-zero-or-more Operator, Match-one-or-more Operator, , Repetition Operators @subsection The Match-zero-or-more Operator (@code{*}) @cindex @samp{*} This operator repeats the smallest possible preceding regular expression as many times as necessary (including zero) to match the pattern. @samp{*} represents this operator. For example, @samp{o*} matches any string made up of zero or more @samp{o}s. Since this operator operates on the smallest preceding regular expression, @samp{fo*} has a repeating @samp{o}, not a repeating @samp{fo}. So, @samp{fo*} matches @samp{f}, @samp{fo}, @samp{foo}, and so on. Since the match-zero-or-more operator is a suffix operator, it may be useless as such when no regular expression precedes it. This is the case when it: @itemize @bullet @item is first in a regular expression, or @item follows a match-beginning-of-line, open-group, or alternation operator. @end itemize @noindent Three different things can happen in these cases: @enumerate @item If the syntax bit @code{RE_CONTEXT_INVALID_OPS} is set, then the regular expression is invalid. @item If @code{RE_CONTEXT_INVALID_OPS} isn't set, but @code{RE_CONTEXT_INDEP_OPS} is, then @samp{*} represents the match-zero-or-more operator (which then operates on the empty string). @item Otherwise, @samp{*} is ordinary. @end enumerate @cindex backtracking The matcher processes a match-zero-or-more operator by first matching as many repetitions of the smallest preceding regular expression as it can. Then it continues to match the rest of the pattern. If it can't match the rest of the pattern, it backtracks (as many times as necessary), each time discarding one of the matches until it can either match the entire pattern or be certain that it cannot get a match. For example, when matching @samp{ca*ar} against @samp{caaar}, the matcher first matches all three @samp{a}s of the string with the @samp{a*} of the regular expression. However, it cannot then match the final @samp{ar} of the regular expression against the final @samp{r} of the string. So it backtracks, discarding the match of the last @samp{a} in the string. It can then match the remaining @samp{ar}. @node Match-one-or-more Operator, Match-zero-or-one Operator, Match-zero-or-more Operator, Repetition Operators @subsection The Match-one-or-more Operator (@code{+} or @code{\+}) @cindex @samp{+} If the syntax bit @code{RE_LIMITED_OPS} is set, then Regex doesn't recognize this operator. Otherwise, if the syntax bit @code{RE_BK_PLUS_QM} isn't set, then @samp{+} represents this operator; if it is, then @samp{\+} does. This operator is similar to the match-zero-or-more operator except that it repeats the preceding regular expression at least once; @pxref{Match-zero-or-more Operator}, for what it operates on, how some syntax bits affect it, and how Regex backtracks to match it. For example, supposing that @samp{+} represents the match-one-or-more operator; then @samp{ca+r} matches, e.g., @samp{car} and @samp{caaaar}, but not @samp{cr}. @node Match-zero-or-one Operator, Interval Operators, Match-one-or-more Operator, Repetition Operators @subsection The Match-zero-or-one Operator (@code{?} or @code{\?}) @cindex @samp{?} If the syntax bit @code{RE_LIMITED_OPS} is set, then Regex doesn't recognize this operator. Otherwise, if the syntax bit @code{RE_BK_PLUS_QM} isn't set, then @samp{?} represents this operator; if it is, then @samp{\?} does. This operator is similar to the match-zero-or-more operator except that it repeats the preceding regular expression once or not at all; @pxref{Match-zero-or-more Operator}, to see what it operates on, how some syntax bits affect it, and how Regex backtracks to match it. For example, supposing that @samp{?} represents the match-zero-or-one operator; then @samp{ca?r} matches both @samp{car} and @samp{cr}, but nothing else. @node Interval Operators, , Match-zero-or-one Operator, Repetition Operators @subsection Interval Operators (@code{@{} @dots{} @code{@}} or @code{\@{} @dots{} @code{\@}}) @cindex interval expression @cindex @samp{@{} @cindex @samp{@}} @cindex @samp{\@{} @cindex @samp{\@}} If the syntax bit @code{RE_INTERVALS} is set, then Regex recognizes @dfn{interval expressions}. They repeat the smallest possible preceding regular expression a specified number of times. If the syntax bit @code{RE_NO_BK_BRACES} is set, @samp{@{} represents the @dfn{open-interval operator} and @samp{@}} represents the @dfn{close-interval operator} ; otherwise, @samp{\@{} and @samp{\@}} do. Specifically, supposing that @samp{@{} and @samp{@}} represent the open-interval and close-interval operators; then: @table @code @item @{@var{count}@} matches exactly @var{count} occurrences of the preceding regular expression. @item @{@var{min},@} matches @var{min} or more occurrences of the preceding regular expression. @item @{@var{min}, @var{max}@} matches at least @var{min} but no more than @var{max} occurrences of the preceding regular expression. @end table The interval expression (but not necessarily the regular expression that contains it) is invalid if: @itemize @bullet @item @var{min} is greater than @var{max}, or @item any of @var{count}, @var{min}, or @var{max} are outside the range zero to @code{RE_DUP_MAX} (which symbol @file{regex.h} defines). @end itemize If the interval expression is invalid and the syntax bit @code{RE_NO_BK_BRACES} is set, then Regex considers all the characters in the would-be interval to be ordinary. If that bit isn't set, then the regular expression is invalid. If the interval expression is valid but there is no preceding regular expression on which to operate, then if the syntax bit @code{RE_CONTEXT_INVALID_OPS} is set, the regular expression is invalid. If that bit isn't set, then Regex considers all the characters---other than backslashes, which it ignores---in the would-be interval to be ordinary. @node Alternation Operator, List Operators, Repetition Operators, Common Operators @section The Alternation Operator (@code{|} or @code{\|}) @kindex @samp{|} @kindex @samp{\|} @cindex alternation operator @cindex or operator If the syntax bit @code{RE_LIMITED_OPS} is set, then Regex doesn't recognize this operator. Otherwise, if the syntax bit @code{RE_NO_BK_VBAR} is set, then @samp{|} represents this operator; otherwise, @samp{\|} does. Alternatives match one of a choice of regular expressions: if you put the character(s) representing the alternation operator between any two regular expressions @var{a} and @var{b}, the result matches the union of the strings that @var{a} and @var{b} match. For example, supposing that @samp{|} is the alternation operator, then @samp{foo|bar|quux} would match any of @samp{foo}, @samp{bar} or @samp{quux}. @ignore @c Nobody needs to disallow empty alternatives any more. If the syntax bit @code{RE_NO_EMPTY_ALTS} is set, then if either of the regular expressions @var{a} or @var{b} is empty, the regular expression is invalid. More precisely, if this syntax bit is set, then the alternation operator can't: @itemize @bullet @item be first or last in a regular expression; @item follow either another alternation operator or an open-group operator (@pxref{Grouping Operators}); or @item precede a close-group operator. @end itemize @noindent For example, supposing @samp{(} and @samp{)} represent the open and close-group operators, then @samp{|foo}, @samp{foo|}, @samp{foo||bar}, @samp{foo(|bar)}, and @samp{(foo|)bar} would all be invalid. @end ignore The alternation operator operates on the @emph{largest} possible surrounding regular expressions. (Put another way, it has the lowest precedence of any regular expression operator.) Thus, the only way you can delimit its arguments is to use grouping. For example, if @samp{(} and @samp{)} are the open and close-group operators, then @samp{fo(o|b)ar} would match either @samp{fooar} or @samp{fobar}. (@samp{foo|bar} would match @samp{foo} or @samp{bar}.) @cindex backtracking The matcher usually tries all combinations of alternatives so as to match the longest possible string. For example, when matching @samp{(fooq|foo)*(qbarquux|bar)} against @samp{fooqbarquux}, it cannot take, say, the first (``depth-first'') combination it could match, since then it would be content to match just @samp{fooqbar}. @comment xx something about leftmost-longest @node List Operators, Grouping Operators, Alternation Operator, Common Operators @section List Operators (@code{[} @dots{} @code{]} and @code{[^} @dots{} @code{]}) @cindex matching list @cindex @samp{[} @cindex @samp{]} @cindex @samp{^} @cindex @samp{-} @cindex @samp{\} @cindex @samp{[^} @cindex nonmatching list @cindex matching newline @cindex bracket expression @dfn{Lists}, also called @dfn{bracket expressions}, are a set of one or more items. An @dfn{item} is a character, @ignore (These get added when they get implemented.) a collating symbol, an equivalence class expression, @end ignore a character class expression, or a range expression. The syntax bits affect which kinds of items you can put in a list. We explain the last two items in subsections below. Empty lists are invalid. A @dfn{matching list} matches a single character represented by one of the list items. You form a matching list by enclosing one or more items within an @dfn{open-matching-list operator} (represented by @samp{[}) and a @dfn{close-list operator} (represented by @samp{]}). For example, @samp{[ab]} matches either @samp{a} or @samp{b}. @samp{[ad]*} matches the empty string and any string composed of just @samp{a}s and @samp{d}s in any order. Regex considers invalid a regular expression with a @samp{[} but no matching @samp{]}. @dfn{Nonmatching lists} are similar to matching lists except that they match a single character @emph{not} represented by one of the list items. You use an @dfn{open-nonmatching-list operator} (represented by @samp{[^}@footnote{Regex therefore doesn't consider the @samp{^} to be the first character in the list. If you put a @samp{^} character first in (what you think is) a matching list, you'll turn it into a nonmatching list.}) instead of an open-matching-list operator to start a nonmatching list. For example, @samp{[^ab]} matches any character except @samp{a} or @samp{b}. If the @code{posix_newline} field in the pattern buffer (@pxref{GNU Pattern Buffers} is set, then nonmatching lists do not match a newline. Most characters lose any special meaning inside a list. The special characters inside a list follow. @table @samp @item ] ends the list if it's not the first list item. So, if you want to make the @samp{]} character a list item, you must put it first. @item \ quotes the next character if the syntax bit @code{RE_BACKSLASH_ESCAPE_IN_LISTS} is set. @ignore Put these in if they get implemented. @item [. represents the open-collating-symbol operator (@pxref{Collating Symbol Operators}). @item .] represents the close-collating-symbol operator. @item [= represents the open-equivalence-class operator (@pxref{Equivalence Class Operators}). @item =] represents the close-equivalence-class operator. @end ignore @item [: represents the open-character-class operator (@pxref{Character Class Operators}) if the syntax bit @code{RE_CHAR_CLASSES} is set and what follows is a valid character class expression. @item :] represents the close-character-class operator if the syntax bit @code{RE_CHAR_CLASSES} is set and what precedes it is an open-character-class operator followed by a valid character class name. @item - represents the range operator (@pxref{Range Operator}) if it's not first or last in a list or the ending point of a range. @end table @noindent All other characters are ordinary. For example, @samp{[.*]} matches @samp{.} and @samp{*}. @menu * Character Class Operators:: [:class:] * Range Operator:: start-end @end menu @ignore (If collating symbols and equivalence class expressions get implemented, then add this.) node Collating Symbol Operators subsubsection Collating Symbol Operators (@code{[.} @dots{} @code{.]}) If the syntax bit @code{XX} is set, then you can represent collating symbols inside lists. You form a @dfn{collating symbol} by putting a collating element between an @dfn{open-collating-symbol operator} and an @dfn{close-collating-symbol operator}. @samp{[.} represents the open-collating-symbol operator and @samp{.]} represents the close-collating-symbol operator. For example, if @samp{ll} is a collating element, then @samp{[[.ll.]]} would match @samp{ll}. node Equivalence Class Operators subsubsection Equivalence Class Operators (@code{[=} @dots{} @code{=]}) @cindex equivalence class expression in regex @cindex @samp{[=} in regex @cindex @samp{=]} in regex If the syntax bit @code{XX} is set, then Regex recognizes equivalence class expressions inside lists. A @dfn{equivalence class expression} is a set of collating elements which all belong to the same equivalence class. You form an equivalence class expression by putting a collating element between an @dfn{open-equivalence-class operator} and a @dfn{close-equivalence-class operator}. @samp{[=} represents the open-equivalence-class operator and @samp{=]} represents the close-equivalence-class operator. For example, if @samp{a} and @samp{A} were an equivalence class, then both @samp{[[=a=]]} and @samp{[[=A=]]} would match both @samp{a} and @samp{A}. If the collating element in an equivalence class expression isn't part of an equivalence class, then the matcher considers the equivalence class expression to be a collating symbol. @end ignore @node Character Class Operators, Range Operator, , List Operators @subsection Character Class Operators (@code{[:} @dots{} @code{:]}) @cindex character classes @cindex @samp{[:} in regex @cindex @samp{:]} in regex If the syntax bit @code{RE_CHARACTER_CLASSES} is set, then Regex recognizes character class expressions inside lists. A @dfn{character class expression} matches one character from a given class. You form a character class expression by putting a character class name between an @dfn{open-character-class operator} (represented by @samp{[:}) and a @dfn{close-character-class operator} (represented by @samp{:]}). The character class names and their meanings are: @table @code @item alnum letters and digits @item alpha letters @item blank system-dependent; for @sc{gnu}, a space or tab @item cntrl control characters (in the @sc{ascii} encoding, code 0177 and codes less than 040) @item digit digits @item graph same as @code{print} except omits space @item lower lowercase letters @item print printable characters (in the @sc{ascii} encoding, space tilde---codes 040 through 0176) @item punct neither control nor alphanumeric characters @item space space, carriage return, newline, vertical tab, and form feed @item upper uppercase letters @item xdigit hexadecimal digits: @code{0}--@code{9}, @code{a}--@code{f}, @code{A}--@code{F} @end table @noindent These correspond to the definitions in the C library's @file{<ctype.h>} facility. For example, @samp{[:alpha:]} corresponds to the standard facility @code{isalpha}. Regex recognizes character class expressions only inside of lists; so @samp{[[:alpha:]]} matches any letter, but @samp{[:alpha:]} outside of a bracket expression and not followed by a repetition operator matches just itself. @node Range Operator, , Character Class Operators, List Operators @subsection The Range Operator (@code{-}) Regex recognizes @dfn{range expressions} inside a list. They represent those characters that fall between two elements in the current collating sequence. You form a range expression by putting a @dfn{range operator} between two @ignore (If these get implemented, then substitute this for ``characters.'') of any of the following: characters, collating elements, collating symbols, and equivalence class expressions. The starting point of the range and the ending point of the range don't have to be the same kind of item, e.g., the starting point could be a collating element and the ending point could be an equivalence class expression. If a range's ending point is an equivalence class, then all the collating elements in that class will be in the range. @end ignore characters.@footnote{You can't use a character class for the starting or ending point of a range, since a character class is not a single character.} @samp{-} represents the range operator. For example, @samp{a-f} within a list represents all the characters from @samp{a} through @samp{f} inclusively. If the syntax bit @code{RE_NO_EMPTY_RANGES} is set, then if the range's ending point collates less than its starting point, the range (and the regular expression containing it) is invalid. For example, the regular expression @samp{[z-a]} would be invalid. If this bit isn't set, then Regex considers such a range to be empty. Since @samp{-} represents the range operator, if you want to make a @samp{-} character itself a list item, you must do one of the following: @itemize @bullet @item Put the @samp{-} either first or last in the list. @item Include a range whose starting point collates strictly lower than @samp{-} and whose ending point collates equal or higher. Unless a range is the first item in a list, a @samp{-} can't be its starting point, but @emph{can} be its ending point. That is because Regex considers @samp{-} to be the range operator unless it is preceded by another @samp{-}. For example, in the @sc{ascii} encoding, @samp{)}, @samp{*}, @samp{+}, @samp{,}, @samp{-}, @samp{.}, and @samp{/} are contiguous characters in the collating sequence. You might think that @samp{[)-+--/]} has two ranges: @samp{)-+} and @samp{--/}. Rather, it has the ranges @samp{)-+} and @samp{+--}, plus the character @samp{/}, so it matches, e.g., @samp{,}, not @samp{.}. @item Put a range whose starting point is @samp{-} first in the list. @end itemize For example, @samp{[-a-z]} matches a lowercase letter or a hyphen (in English, in @sc{ascii}). @node Grouping Operators, Back-reference Operator, List Operators, Common Operators @section Grouping Operators (@code{(} @dots{} @code{)} or @code{\(} @dots{} @code{\)}) @kindex ( @kindex ) @kindex \( @kindex \) @cindex grouping @cindex subexpressions @cindex parenthesizing A @dfn{group}, also known as a @dfn{subexpression}, consists of an @dfn{open-group operator}, any number of other operators, and a @dfn{close-group operator}. Regex treats this sequence as a unit, just as mathematics and programming languages treat a parenthesized expression as a unit. Therefore, using @dfn{groups}, you can: @itemize @bullet @item delimit the argument(s) to an alternation operator (@pxref{Alternation Operator}) or a repetition operator (@pxref{Repetition Operators}). @item keep track of the indices of the substring that matched a given group. @xref{Using Registers}, for a precise explanation. This lets you: @itemize @bullet @item use the back-reference operator (@pxref{Back-reference Operator}). @item use registers (@pxref{Using Registers}). @end itemize @end itemize If the syntax bit @code{RE_NO_BK_PARENS} is set, then @samp{(} represents the open-group operator and @samp{)} represents the close-group operator; otherwise, @samp{\(} and @samp{\)} do. If the syntax bit @code{RE_UNMATCHED_RIGHT_PAREN_ORD} is set and a close-group operator has no matching open-group operator, then Regex considers it to match @samp{)}. @node Back-reference Operator, Anchoring Operators, Grouping Operators, Common Operators @section The Back-reference Operator (@dfn{\}@var{digit}) @cindex back references If the syntax bit @code{RE_NO_BK_REF} isn't set, then Regex recognizes back references. A back reference matches a specified preceding group. The back reference operator is represented by @samp{\@var{digit}} anywhere after the end of a regular expression's @w{@var{digit}-th} group (@pxref{Grouping Operators}). @var{digit} must be between @samp{1} and @samp{9}. The matcher assigns numbers 1 through 9 to the first nine groups it encounters. By using one of @samp{\1} through @samp{\9} after the corresponding group's close-group operator, you can match a substring identical to the one that the group does. Back references match according to the following (in all examples below, @samp{(} represents the open-group, @samp{)} the close-group, @samp{@{} the open-interval and @samp{@}} the close-interval operator): @itemize @bullet @item If the group matches a substring, the back reference matches an identical substring. For example, @samp{(a)\1} matches @samp{aa} and @samp{(bana)na\1bo\1} matches @samp{bananabanabobana}. Likewise, @samp{(.*)\1} matches any (newline-free if the syntax bit @code{RE_DOT_NEWLINE} isn't set) string that is composed of two identical halves; the @samp{(.*)} matches the first half and the @samp{\1} matches the second half. @item If the group matches more than once (as it might if followed by, e.g., a repetition operator), then the back reference matches the substring the group @emph{last} matched. For example, @samp{((a*)b)*\1\2} matches @samp{aabababa}; first @w{group 1} (the outer one) matches @samp{aab} and @w{group 2} (the inner one) matches @samp{aa}. Then @w{group 1} matches @samp{ab} and @w{group 2} matches @samp{a}. So, @samp{\1} matches @samp{ab} and @samp{\2} matches @samp{a}. @item If the group doesn't participate in a match, i.e., it is part of an alternative not taken or a repetition operator allows zero repetitions of it, then the back reference makes the whole match fail. For example, @samp{(one()|two())-and-(three\2|four\3)} matches @samp{one-and-three} and @samp{two-and-four}, but not @samp{one-and-four} or @samp{two-and-three}. For example, if the pattern matches @samp{one-and-}, then its @w{group 2} matches the empty string and its @w{group 3} doesn't participate in the match. So, if it then matches @samp{four}, then when it tries to back reference @w{group 3}---which it will attempt to do because @samp{\3} follows the @samp{four}---the match will fail because @w{group 3} didn't participate in the match. @end itemize You can use a back reference as an argument to a repetition operator. For example, @samp{(a(b))\2*} matches @samp{a} followed by two or more @samp{b}s. Similarly, @samp{(a(b))\2@{3@}} matches @samp{abbbb}. If there is no preceding @w{@var{digit}-th} subexpression, the regular expression is invalid. @node Anchoring Operators, , Back-reference Operator, Common Operators @section Anchoring Operators @cindex anchoring @cindex regexp anchoring These operators can constrain a pattern to match only at the beginning or end of the entire string or at the beginning or end of a line. @menu * Match-beginning-of-line Operator:: ^ * Match-end-of-line Operator:: $ @end menu @node Match-beginning-of-line Operator, Match-end-of-line Operator, , Anchoring Operators @subsection The Match-beginning-of-line Operator (@code{^}) @kindex ^ @cindex beginning-of-line operator @cindex anchors This operator can match the empty string either at the beginning of the string or after a newline character. Thus, it is said to @dfn{anchor} the pattern to the beginning of a line. In the cases following, @samp{^} represents this operator. (Otherwise, @samp{^} is ordinary.) @itemize @bullet @item It (the @samp{^}) is first in the pattern, as in @samp{^foo}. @cnindex RE_CONTEXT_INDEP_ANCHORS @r{(and @samp{^})} @item The syntax bit @code{RE_CONTEXT_INDEP_ANCHORS} is set, and it is outside a bracket expression. @cindex open-group operator and @samp{^} @cindex alternation operator and @samp{^} @item It follows an open-group or alternation operator, as in @samp{a\(^b\)} and @samp{a\|^b}. @xref{Grouping Operators}, and @ref{Alternation Operator}. @end itemize These rules imply that some valid patterns containing @samp{^} cannot be matched; for example, @samp{foo^bar} if @code{RE_CONTEXT_INDEP_ANCHORS} is set. @vindex not_bol @r{field in pattern buffer} If the @code{not_bol} field is set in the pattern buffer (@pxref{GNU Pattern Buffers}), then @samp{^} fails to match at the beginning of the string. @xref{POSIX Matching}, for when you might find this useful. @vindex newline_anchor @r{field in pattern buffer} If the @code{newline_anchor} field is set in the pattern buffer, then @samp{^} fails to match after a newline. This is useful when you do not regard the string to be matched as broken into lines. @node Match-end-of-line Operator, , Match-beginning-of-line Operator, Anchoring Operators @subsection The Match-end-of-line Operator (@code{$}) @kindex $ @cindex end-of-line operator @cindex anchors This operator can match the empty string either at the end of the string or before a newline character in the string. Thus, it is said to @dfn{anchor} the pattern to the end of a line. It is always represented by @samp{$}. For example, @samp{foo$} usually matches, e.g., @samp{foo} and, e.g., the first three characters of @samp{foo\nbar}. Its interaction with the syntax bits and pattern buffer fields is exactly the dual of @samp{^}'s; see the previous section. (That is, ``beginning'' becomes ``end'', ``next'' becomes ``previous'', and ``after'' becomes ``before''.) @node GNU Operators, GNU Emacs Operators, Common Operators, Top @chapter GNU Operators Following are operators that @sc{gnu} defines (and @sc{posix} doesn't). @menu * Word Operators:: * Buffer Operators:: @end menu @node Word Operators, Buffer Operators, , GNU Operators @section Word Operators The operators in this section require Regex to recognize parts of words. Regex uses a syntax table to determine whether or not a character is part of a word, i.e., whether or not it is @dfn{word-constituent}. @menu * Non-Emacs Syntax Tables:: * Match-word-boundary Operator:: \b * Match-within-word Operator:: \B * Match-beginning-of-word Operator:: \< * Match-end-of-word Operator:: \> * Match-word-constituent Operator:: \w * Match-non-word-constituent Operator:: \W @end menu @node Non-Emacs Syntax Tables, Match-word-boundary Operator, , Word Operators @subsection Non-Emacs Syntax Tables A @dfn{syntax table} is an array indexed by the characters in your character set. In the @sc{ascii} encoding, therefore, a syntax table has 256 elements. Regex always uses a @code{char *} variable @code{re_syntax_table} as its syntax table. In some cases, it initializes this variable and in others it expects you to initialize it. @itemize @bullet @item If Regex is compiled with the preprocessor symbols @code{emacs} and @code{SYNTAX_TABLE} both undefined, then Regex allocates @code{re_syntax_table} and initializes an element @var{i} either to @code{Sword} (which it defines) if @var{i} is a letter, number, or @samp{_}, or to zero if it's not. @item If Regex is compiled with @code{emacs} undefined but @code{SYNTAX_TABLE} defined, then Regex expects you to define a @code{char *} variable @code{re_syntax_table} to be a valid syntax table. @item @xref{Emacs Syntax Tables}, for what happens when Regex is compiled with the preprocessor symbol @code{emacs} defined. @end itemize @node Match-word-boundary Operator, Match-within-word Operator, Non-Emacs Syntax Tables, Word Operators @subsection The Match-word-boundary Operator (@code{\b}) @cindex @samp{\b} @cindex word boundaries, matching This operator (represented by @samp{\b}) matches the empty string at either the beginning or the end of a word. For example, @samp{\brat\b} matches the separate word @samp{rat}. @node Match-within-word Operator, Match-beginning-of-word Operator, Match-word-boundary Operator, Word Operators @subsection The Match-within-word Operator (@code{\B}) @cindex @samp{\B} This operator (represented by @samp{\B}) matches the empty string within a word. For example, @samp{c\Brat\Be} matches @samp{crate}, but @samp{dirty \Brat} doesn't match @samp{dirty rat}. @node Match-beginning-of-word Operator, Match-end-of-word Operator, Match-within-word Operator, Word Operators @subsection The Match-beginning-of-word Operator (@code{\<}) @cindex @samp{\<} This operator (represented by @samp{\<}) matches the empty string at the beginning of a word. @node Match-end-of-word Operator, Match-word-constituent Operator, Match-beginning-of-word Operator, Word Operators @subsection The Match-end-of-word Operator (@code{\>}) @cindex @samp{\>} This operator (represented by @samp{\>}) matches the empty string at the end of a word. @node Match-word-constituent Operator, Match-non-word-constituent Operator, Match-end-of-word Operator, Word Operators @subsection The Match-word-constituent Operator (@code{\w}) @cindex @samp{\w} This operator (represented by @samp{\w}) matches any word-constituent character. @node Match-non-word-constituent Operator, , Match-word-constituent Operator, Word Operators @subsection The Match-non-word-constituent Operator (@code{\W}) @cindex @samp{\W} This operator (represented by @samp{\W}) matches any character that is not word-constituent. @node Buffer Operators, , Word Operators, GNU Operators @section Buffer Operators Following are operators which work on buffers. In Emacs, a @dfn{buffer} is, naturally, an Emacs buffer. For other programs, Regex considers the entire string to be matched as the buffer. @menu * Match-beginning-of-buffer Operator:: \` * Match-end-of-buffer Operator:: \' @end menu @node Match-beginning-of-buffer Operator, Match-end-of-buffer Operator, , Buffer Operators @subsection The Match-beginning-of-buffer Operator @c (@code{\`}) @cindex @samp{\`} This operator (represented by @samp{\`}) matches the empty string at the beginning of the buffer. @node Match-end-of-buffer Operator, , Match-beginning-of-buffer Operator, Buffer Operators @subsection The Match-end-of-buffer Operator @c (@code{\'}) @cindex @samp{\'} This operator (represented by @samp{\'}) matches the empty string at the end of the buffer. @node GNU Emacs Operators, What Gets Matched?, GNU Operators, Top @chapter GNU Emacs Operators Following are operators that @sc{gnu} defines (and @sc{posix} doesn't) that you can use only when Regex is compiled with the preprocessor symbol @code{emacs} defined. @menu * Syntactic Class Operators:: @end menu @node Syntactic Class Operators, , , GNU Emacs Operators @section Syntactic Class Operators The operators in this section require Regex to recognize the syntactic classes of characters. Regex uses a syntax table to determine this. @menu * Emacs Syntax Tables:: * Match-syntactic-class Operator:: \sCLASS * Match-not-syntactic-class Operator:: \SCLASS @end menu @node Emacs Syntax Tables, Match-syntactic-class Operator, , Syntactic Class Operators @subsection Emacs Syntax Tables A @dfn{syntax table} is an array indexed by the characters in your character set. In the @sc{ascii} encoding, therefore, a syntax table has 256 elements. If Regex is compiled with the preprocessor symbol @code{emacs} defined, then Regex expects you to define and initialize the variable @code{re_syntax_table} to be an Emacs syntax table. Emacs' syntax tables are more complicated than Regex's own (@pxref{Non-Emacs Syntax Tables}). @xref{Syntax, , Syntax, emacs, The GNU Emacs User's Manual}, for a description of Emacs' syntax tables. @node Match-syntactic-class Operator, Match-not-syntactic-class Operator, Emacs Syntax Tables, Syntactic Class Operators @subsection The Match-syntactic-class Operator (@code{\s}@var{class}) @cindex @samp{\s} This operator matches any character whose syntactic class is represented by a specified character. @samp{\s@var{class}} represents this operator where @var{class} is the character representing the syntactic class you want. For example, @samp{w} represents the syntactic class of word-constituent characters, so @samp{\sw} matches any word-constituent character. @node Match-not-syntactic-class Operator, , Match-syntactic-class Operator, Syntactic Class Operators @subsection The Match-not-syntactic-class Operator (@code{\S}@var{class}) @cindex @samp{\S} This operator is similar to the match-syntactic-class operator except that it matches any character whose syntactic class is @emph{not} represented by the specified character. @samp{\S@var{class}} represents this operator. For example, @samp{w} represents the syntactic class of word-constituent characters, so @samp{\Sw} matches any character that is not word-constituent. @node What Gets Matched?, Programming with Regex, GNU Emacs Operators, Top @chapter What Gets Matched? Regex usually matches strings according to the ``leftmost longest'' rule; that is, it chooses the longest of the leftmost matches. This does not mean that for a regular expression containing subexpressions that it simply chooses the longest match for each subexpression, left to right; the overall match must also be the longest possible one. For example, @samp{(ac*)(c*d[ac]*)\1} matches @samp{acdacaaa}, not @samp{acdac}, as it would if it were to choose the longest match for the first subexpression. @node Programming with Regex, Copying, What Gets Matched?, Top @chapter Programming with Regex Here we describe how you use the Regex data structures and functions in C programs. Regex has three interfaces: one designed for @sc{gnu}, one compatible with @sc{posix} and one compatible with Berkeley @sc{unix}. @menu * GNU Regex Functions:: * POSIX Regex Functions:: * BSD Regex Functions:: @end menu @node GNU Regex Functions, POSIX Regex Functions, , Programming with Regex @section GNU Regex Functions If you're writing code that doesn't need to be compatible with either @sc{posix} or Berkeley @sc{unix}, you can use these functions. They provide more options than the other interfaces. @menu * GNU Pattern Buffers:: The re_pattern_buffer type. * GNU Regular Expression Compiling:: re_compile_pattern () * GNU Matching:: re_match () * GNU Searching:: re_search () * Matching/Searching with Split Data:: re_match_2 (), re_search_2 () * Searching with Fastmaps:: re_compile_fastmap () * GNU Translate Tables:: The `translate' field. * Using Registers:: The re_registers type and related fns. * Freeing GNU Pattern Buffers:: regfree () @end menu @node GNU Pattern Buffers, GNU Regular Expression Compiling, , GNU Regex Functions @subsection GNU Pattern Buffers @cindex pattern buffer, definition of @tindex re_pattern_buffer @r{definition} @tindex struct re_pattern_buffer @r{definition} To compile, match, or search for a given regular expression, you must supply a pattern buffer. A @dfn{pattern buffer} holds one compiled regular expression.@footnote{Regular expressions are also referred to as ``patterns,'' hence the name ``pattern buffer.''} You can have several different pattern buffers simultaneously, each holding a compiled pattern for a different regular expression. @file{regex.h} defines the pattern buffer @code{struct} as follows: @example /* Space that holds the compiled pattern. It is declared as `unsigned char *' because its elements are sometimes used as array indexes. */ unsigned char *buffer; /* Number of bytes to which `buffer' points. */ unsigned long allocated; /* Number of bytes actually used in `buffer'. */ unsigned long used; /* Syntax setting with which the pattern was compiled. */ reg_syntax_t syntax; /* Pointer to a fastmap, if any, otherwise zero. re_search uses the fastmap, if there is one, to skip over impossible starting points for matches. */ char *fastmap; /* Either a translate table to apply to all characters before comparing them, or zero for no translation. The translation is applied to a pattern when it is compiled and to a string when it is matched. */ char *translate; /* Number of subexpressions found by the compiler. */ size_t re_nsub; /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in `re_search_2', to see whether or not we should use the fastmap, so we don't set this absolutely perfectly; see `re_compile_fastmap' (the `duplicate' case). */ unsigned can_be_null : 1; /* If REGS_UNALLOCATED, allocate space in the `regs' structure for `max (RE_NREGS, re_nsub + 1)' groups. If REGS_REALLOCATE, reallocate space if necessary. If REGS_FIXED, use what's there. */ #define REGS_UNALLOCATED 0 #define REGS_REALLOCATE 1 #define REGS_FIXED 2 unsigned regs_allocated : 2; /* Set to zero when `regex_compile' compiles a pattern; set to one by `re_compile_fastmap' if it updates the fastmap. */ unsigned fastmap_accurate : 1; /* If set, `re_match_2' does not return information about subexpressions. */ unsigned no_sub : 1; /* If set, a beginning-of-line anchor doesn't match at the beginning of the string. */ unsigned not_bol : 1; /* Similarly for an end-of-line anchor. */ unsigned not_eol : 1; /* If true, an anchor at a newline matches. */ unsigned newline_anchor : 1; @end example @node GNU Regular Expression Compiling, GNU Matching, GNU Pattern Buffers, GNU Regex Functions @subsection GNU Regular Expression Compiling In @sc{gnu}, you can both match and search for a given regular expression. To do either, you must first compile it in a pattern buffer (@pxref{GNU Pattern Buffers}). @cindex syntax initialization @vindex re_syntax_options @r{initialization} Regular expressions match according to the syntax with which they were compiled; with @sc{gnu}, you indicate what syntax you want by setting the variable @code{re_syntax_options} (declared in @file{regex.h} and defined in @file{regex.c}) before calling the compiling function, @code{re_compile_pattern} (see below). @xref{Syntax Bits}, and @ref{Predefined Syntaxes}. You can change the value of @code{re_syntax_options} at any time. Usually, however, you set its value once and then never change it. @cindex pattern buffer initialization @code{re_compile_pattern} takes a pattern buffer as an argument. You must initialize the following fields: @table @code @item translate @r{initialization} @item translate @vindex translate @r{initialization} Initialize this to point to a translate table if you want one, or to zero if you don't. We explain translate tables in @ref{GNU Translate Tables}. @item fastmap @vindex fastmap @r{initialization} Initialize this to nonzero if you want a fastmap, or to zero if you don't. @item buffer @itemx allocated @vindex buffer @r{initialization} @vindex allocated @r{initialization} @findex malloc If you want @code{re_compile_pattern} to allocate memory for the compiled pattern, set both of these to zero. If you have an existing block of memory (allocated with @code{malloc}) you want Regex to use, set @code{buffer} to its address and @code{allocated} to its size (in bytes). @code{re_compile_pattern} uses @code{realloc} to extend the space for the compiled pattern as necessary. @end table To compile a pattern buffer, use: @findex re_compile_pattern @example char * re_compile_pattern (const char *@var{regex}, const int @var{regex_size}, struct re_pattern_buffer *@var{pattern_buffer}) @end example @noindent @var{regex} is the regular expression's address, @var{regex_size} is its length, and @var{pattern_buffer} is the pattern buffer's address. If @code{re_compile_pattern} successfully compiles the regular expression, it returns zero and sets @code{*@var{pattern_buffer}} to the compiled pattern. It sets the pattern buffer's fields as follows: @table @code @item buffer @vindex buffer @r{field, set by @code{re_compile_pattern}} to the compiled pattern. @item used @vindex used @r{field, set by @code{re_compile_pattern}} to the number of bytes the compiled pattern in @code{buffer} occupies. @item syntax @vindex syntax @r{field, set by @code{re_compile_pattern}} to the current value of @code{re_syntax_options}. @item re_nsub @vindex re_nsub @r{field, set by @code{re_compile_pattern}} to the number of subexpressions in @var{regex}. @item fastmap_accurate @vindex fastmap_accurate @r{field, set by @code{re_compile_pattern}} to zero on the theory that the pattern you're compiling is different than the one previously compiled into @code{buffer}; in that case (since you can't make a fastmap without a compiled pattern), @code{fastmap} would either contain an incompatible fastmap, or nothing at all. @c xx what else? @end table If @code{re_compile_pattern} can't compile @var{regex}, it returns an error string corresponding to one of the errors listed in @ref{POSIX Regular Expression Compiling}. @node GNU Matching, GNU Searching, GNU Regular Expression Compiling, GNU Regex Functions @subsection GNU Matching @cindex matching with GNU functions Matching the @sc{gnu} way means trying to match as much of a string as possible starting at a position within it you specify. Once you've compiled a pattern into a pattern buffer (@pxref{GNU Regular Expression Compiling}), you can ask the matcher to match that pattern against a string using: @findex re_match @example int re_match (struct re_pattern_buffer *@var{pattern_buffer}, const char *@var{string}, const int @var{size}, const int @var{start}, struct re_registers *@var{regs}) @end example @noindent @var{pattern_buffer} is the address of a pattern buffer containing a compiled pattern. @var{string} is the string you want to match; it can contain newline and null characters. @var{size} is the length of that string. @var{start} is the string index at which you want to begin matching; the first character of @var{string} is at index zero. @xref{Using Registers}, for a explanation of @var{regs}; you can safely pass zero. @code{re_match} matches the regular expression in @var{pattern_buffer} against the string @var{string} according to the syntax in @var{pattern_buffers}'s @code{syntax} field. (@xref{GNU Regular Expression Compiling}, for how to set it.) The function returns @math{-1} if the compiled pattern does not match any part of @var{string} and @math{-2} if an internal error happens; otherwise, it returns how many (possibly zero) characters of @var{string} the pattern matched. An example: suppose @var{pattern_buffer} points to a pattern buffer containing the compiled pattern for @samp{a*}, and @var{string} points to @samp{aaaaab} (whereupon @var{size} should be 6). Then if @var{start} is 2, @code{re_match} returns 3, i.e., @samp{a*} would have matched the last three @samp{a}s in @var{string}. If @var{start} is 0, @code{re_match} returns 5, i.e., @samp{a*} would have matched all the @samp{a}s in @var{string}. If @var{start} is either 5 or 6, it returns zero. If @var{start} is not between zero and @var{size}, then @code{re_match} returns @math{-1}. @node GNU Searching, Matching/Searching with Split Data, GNU Matching, GNU Regex Functions @subsection GNU Searching @cindex searching with GNU functions @dfn{Searching} means trying to match starting at successive positions within a string. The function @code{re_search} does this. Before calling @code{re_search}, you must compile your regular expression. @xref{GNU Regular Expression Compiling}. Here is the function declaration: @findex re_search @example int re_search (struct re_pattern_buffer *@var{pattern_buffer}, const char *@var{string}, const int @var{size}, const int @var{start}, const int @var{range}, struct re_registers *@var{regs}) @end example @noindent @vindex start @r{argument to @code{re_search}} @vindex range @r{argument to @code{re_search}} whose arguments are the same as those to @code{re_match} (@pxref{GNU Matching}) except that the two arguments @var{start} and @var{range} replace @code{re_match}'s argument @var{start}. If @var{range} is positive, then @code{re_search} attempts a match starting first at index @var{start}, then at @math{@var{start} + 1} if that fails, and so on, up to @math{@var{start} + @var{range}}; if @var{range} is negative, then it attempts a match starting first at index @var{start}, then at @math{@var{start} -1} if that fails, and so on. If @var{start} is not between zero and @var{size}, then @code{re_search} returns @math{-1}. When @var{range} is positive, @code{re_search} adjusts @var{range} so that @math{@var{start} + @var{range} - 1} is between zero and @var{size}, if necessary; that way it won't search outside of @var{string}. Similarly, when @var{range} is negative, @code{re_search} adjusts @var{range} so that @math{@var{start} + @var{range} + 1} is between zero and @var{size}, if necessary. If the @code{fastmap} field of @var{pattern_buffer} is zero, @code{re_search} matches starting at consecutive positions; otherwise, it uses @code{fastmap} to make the search more efficient. @xref{Searching with Fastmaps}. If no match is found, @code{re_search} returns @math{-1}. If a match is found, it returns the index where the match began. If an internal error happens, it returns @math{-2}. @node Matching/Searching with Split Data, Searching with Fastmaps, GNU Searching, GNU Regex Functions @subsection Matching and Searching with Split Data Using the functions @code{re_match_2} and @code{re_search_2}, you can match or search in data that is divided into two strings. The function: @findex re_match_2 @example int re_match_2 (struct re_pattern_buffer *@var{buffer}, const char *@var{string1}, const int @var{size1}, const char *@var{string2}, const int @var{size2}, const int @var{start}, struct re_registers *@var{regs}, const int @var{stop}) @end example @noindent is similar to @code{re_match} (@pxref{GNU Matching}) except that you pass @emph{two} data strings and sizes, and an index @var{stop} beyond which you don't want the matcher to try matching. As with @code{re_match}, if it succeeds, @code{re_match_2} returns how many characters of @var{string} it matched. Regard @var{string1} and @var{string2} as concatenated when you set the arguments @var{start} and @var{stop} and use the contents of @var{regs}; @code{re_match_2} never returns a value larger than @math{@var{size1} + @var{size2}}. The function: @findex re_search_2 @example int re_search_2 (struct re_pattern_buffer *@var{buffer}, const char *@var{string1}, const int @var{size1}, const char *@var{string2}, const int @var{size2}, const int @var{start}, const int @var{range}, struct re_registers *@var{regs}, const int @var{stop}) @end example @noindent is similarly related to @code{re_search}. @node Searching with Fastmaps, GNU Translate Tables, Matching/Searching with Split Data, GNU Regex Functions @subsection Searching with Fastmaps @cindex fastmaps If you're searching through a long string, you should use a fastmap. Without one, the searcher tries to match at consecutive positions in the string. Generally, most of the characters in the string could not start a match. It takes much longer to try matching at a given position in the string than it does to check in a table whether or not the character at that position could start a match. A @dfn{fastmap} is such a table. More specifically, a fastmap is an array indexed by the characters in your character set. Under the @sc{ascii} encoding, therefore, a fastmap has 256 elements. If you want the searcher to use a fastmap with a given pattern buffer, you must allocate the array and assign the array's address to the pattern buffer's @code{fastmap} field. You either can compile the fastmap yourself or have @code{re_search} do it for you; when @code{fastmap} is nonzero, it automatically compiles a fastmap the first time you search using a particular compiled pattern. To compile a fastmap yourself, use: @findex re_compile_fastmap @example int re_compile_fastmap (struct re_pattern_buffer *@var{pattern_buffer}) @end example @noindent @var{pattern_buffer} is the address of a pattern buffer. If the character @var{c} could start a match for the pattern, @code{re_compile_fastmap} makes @code{@var{pattern_buffer}->fastmap[@var{c}]} nonzero. It returns @math{0} if it can compile a fastmap and @math{-2} if there is an internal error. For example, if @samp{|} is the alternation operator and @var{pattern_buffer} holds the compiled pattern for @samp{a|b}, then @code{re_compile_fastmap} sets @code{fastmap['a']} and @code{fastmap['b']} (and no others). @code{re_search} uses a fastmap as it moves along in the string: it checks the string's characters until it finds one that's in the fastmap. Then it tries matching at that character. If the match fails, it repeats the process. So, by using a fastmap, @code{re_search} doesn't waste time trying to match at positions in the string that couldn't start a match. If you don't want @code{re_search} to use a fastmap, store zero in the @code{fastmap} field of the pattern buffer before calling @code{re_search}. Once you've initialized a pattern buffer's @code{fastmap} field, you need never do so again---even if you compile a new pattern in it---provided the way the field is set still reflects whether or not you want a fastmap. @code{re_search} will still either do nothing if @code{fastmap} is null or, if it isn't, compile a new fastmap for the new pattern. @node GNU Translate Tables, Using Registers, Searching with Fastmaps, GNU Regex Functions @subsection GNU Translate Tables If you set the @code{translate} field of a pattern buffer to a translate table, then the @sc{gnu} Regex functions to which you've passed that pattern buffer use it to apply a simple transformation to all the regular expression and string characters at which they look. A @dfn{translate table} is an array indexed by the characters in your character set. Under the @sc{ascii} encoding, therefore, a translate table has 256 elements. The array's elements are also characters in your character set. When the Regex functions see a character @var{c}, they use @code{translate[@var{c}]} in its place, with one exception: the character after a @samp{\} is not translated. (This ensures that, the operators, e.g., @samp{\B} and @samp{\b}, are always distinguishable.) For example, a table that maps all lowercase letters to the corresponding uppercase ones would cause the matcher to ignore differences in case.@footnote{A table that maps all uppercase letters to the corresponding lowercase ones would work just as well for this purpose.} Such a table would map all characters except lowercase letters to themselves, and lowercase letters to the corresponding uppercase ones. Under the @sc{ascii} encoding, here's how you could initialize such a table (we'll call it @code{case_fold}): @example for (i = 0; i < 256; i++) case_fold[i] = i; for (i = 'a'; i <= 'z'; i++) case_fold[i] = i - ('a' - 'A'); @end example You tell Regex to use a translate table on a given pattern buffer by assigning that table's address to the @code{translate} field of that buffer. If you don't want Regex to do any translation, put zero into this field. You'll get weird results if you change the table's contents anytime between compiling the pattern buffer, compiling its fastmap, and matching or searching with the pattern buffer. @node Using Registers, Freeing GNU Pattern Buffers, GNU Translate Tables, GNU Regex Functions @subsection Using Registers A group in a regular expression can match a (posssibly empty) substring of the string that regular expression as a whole matched. The matcher remembers the beginning and end of the substring matched by each group. To find out what they matched, pass a nonzero @var{regs} argument to a @sc{gnu} matching or searching function (@pxref{GNU Matching} and @ref{GNU Searching}), i.e., the address of a structure of this type, as defined in @file{regex.h}: @c We don't bother to include this directly from regex.h, @c since it changes so rarely. @example @tindex re_registers @vindex num_regs @r{in @code{struct re_registers}} @vindex start @r{in @code{struct re_registers}} @vindex end @r{in @code{struct re_registers}} struct re_registers @{ unsigned num_regs; regoff_t *start; regoff_t *end; @}; @end example Except for (possibly) the @var{num_regs}'th element (see below), the @var{i}th element of the @code{start} and @code{end} arrays records information about the @var{i}th group in the pattern. (They're declared as C pointers, but this is only because not all C compilers accept zero-length arrays; conceptually, it is simplest to think of them as arrays.) The @code{start} and @code{end} arrays are allocated in various ways, depending on the value of the @code{regs_allocated} @vindex regs_allocated field in the pattern buffer passed to the matcher. The simplest and perhaps most useful is to let the matcher (re)allocate enough space to record information for all the groups in the regular expression. If @code{regs_allocated} is @code{REGS_UNALLOCATED}, @vindex REGS_UNALLOCATED the matcher allocates @math{1 + @var{re_nsub}} (another field in the pattern buffer; @pxref{GNU Pattern Buffers}). The extra element is set to @math{-1}, and sets @code{regs_allocated} to @code{REGS_REALLOCATE}. @vindex REGS_REALLOCATE Then on subsequent calls with the same pattern buffer and @var{regs} arguments, the matcher reallocates more space if necessary. It would perhaps be more logical to make the @code{regs_allocated} field part of the @code{re_registers} structure, instead of part of the pattern buffer. But in that case the caller would be forced to initialize the structure before passing it. Much existing code doesn't do this initialization, and it's arguably better to avoid it anyway. @code{re_compile_pattern} sets @code{regs_allocated} to @code{REGS_UNALLOCATED}, so if you use the GNU regular expression functions, you get this behavior by default. xx document re_set_registers @sc{posix}, on the other hand, requires a different interface: the caller is supposed to pass in a fixed-length array which the matcher fills. Therefore, if @code{regs_allocated} is @code{REGS_FIXED} @vindex REGS_FIXED the matcher simply fills that array. The following examples illustrate the information recorded in the @code{re_registers} structure. (In all of them, @samp{(} represents the open-group and @samp{)} the close-group operator. The first character in the string @var{string} is at index 0.) @c xx i'm not sure this is all true anymore. @itemize @bullet @item If the regular expression has an @w{@var{i}-th} group not contained within another group that matches a substring of @var{string}, then the function sets @code{@w{@var{regs}->}start[@var{i}]} to the index in @var{string} where the substring matched by the @w{@var{i}-th} group begins, and @code{@w{@var{regs}->}end[@var{i}]} to the index just beyond that substring's end. The function sets @code{@w{@var{regs}->}start[0]} and @code{@w{@var{regs}->}end[0]} to analogous information about the entire pattern. For example, when you match @samp{((a)(b))} against @samp{ab}, you get: @itemize @minus @item 0 in @code{@w{@var{regs}->}start[0]} and 2 in @code{@w{@var{regs}->}end[0]} @item 0 in @code{@w{@var{regs}->}start[1]} and 2 in @code{@w{@var{regs}->}end[1]} @item 0 in @code{@w{@var{regs}->}start[2]} and 1 in @code{@w{@var{regs}->}end[2]} @item 1 in @code{@w{@var{regs}->}start[3]} and 2 in @code{@w{@var{regs}->}end[3]} @end itemize @item If a group matches more than once (as it might if followed by, e.g., a repetition operator), then the function reports the information about what the group @emph{last} matched. For example, when you match the pattern @samp{(a)*} against the string @samp{aa}, you get: @itemize @minus @item 0 in @code{@w{@var{regs}->}start[0]} and 2 in @code{@w{@var{regs}->}end[0]} @item 1 in @code{@w{@var{regs}->}start[1]} and 2 in @code{@w{@var{regs}->}end[1]} @end itemize @item If the @w{@var{i}-th} group does not participate in a successful match, e.g., it is an alternative not taken or a repetition operator allows zero repetitions of it, then the function sets @code{@w{@var{regs}->}start[@var{i}]} and @code{@w{@var{regs}->}end[@var{i}]} to @math{-1}. For example, when you match the pattern @samp{(a)*b} against the string @samp{b}, you get: @itemize @minus @item 0 in @code{@w{@var{regs}->}start[0]} and 1 in @code{@w{@var{regs}->}end[0]} @item @math{-1} in @code{@w{@var{regs}->}start[1]} and @math{-1} in @code{@w{@var{regs}->}end[1]} @end itemize @item If the @w{@var{i}-th} group matches a zero-length string, then the function sets @code{@w{@var{regs}->}start[@var{i}]} and @code{@w{@var{regs}->}end[@var{i}]} to the index just beyond that zero-length string. For example, when you match the pattern @samp{(a*)b} against the string @samp{b}, you get: @itemize @minus @item 0 in @code{@w{@var{regs}->}start[0]} and 1 in @code{@w{@var{regs}->}end[0]} @item 0 in @code{@w{@var{regs}->}start[1]} and 0 in @code{@w{@var{regs}->}end[1]} @end itemize @ignore The function sets @code{@w{@var{regs}->}start[0]} and @code{@w{@var{regs}->}end[0]} to analogous information about the entire pattern. For example, when you match the pattern @samp{(a*)} against the empty string, you get: @itemize @minus @item 0 in @code{@w{@var{regs}->}start[0]} and 0 in @code{@w{@var{regs}->}end[0]} @item 0 in @code{@w{@var{regs}->}start[1]} and 0 in @code{@w{@var{regs}->}end[1]} @end itemize @end ignore @item If an @w{@var{i}-th} group contains a @w{@var{j}-th} group in turn not contained within any other group within group @var{i} and the function reports a match of the @w{@var{i}-th} group, then it records in @code{@w{@var{regs}->}start[@var{j}]} and @code{@w{@var{regs}->}end[@var{j}]} the last match (if it matched) of the @w{@var{j}-th} group. For example, when you match the pattern @samp{((a*)b)*} against the string @samp{abb}, @w{group 2} last matches the empty string, so you get what it previously matched: @itemize @minus @item 0 in @code{@w{@var{regs}->}start[0]} and 3 in @code{@w{@var{regs}->}end[0]} @item 2 in @code{@w{@var{regs}->}start[1]} and 3 in @code{@w{@var{regs}->}end[1]} @item 2 in @code{@w{@var{regs}->}start[2]} and 2 in @code{@w{@var{regs}->}end[2]} @end itemize When you match the pattern @samp{((a)*b)*} against the string @samp{abb}, @w{group 2} doesn't participate in the last match, so you get: @itemize @minus @item 0 in @code{@w{@var{regs}->}start[0]} and 3 in @code{@w{@var{regs}->}end[0]} @item 2 in @code{@w{@var{regs}->}start[1]} and 3 in @code{@w{@var{regs}->}end[1]} @item 0 in @code{@w{@var{regs}->}start[2]} and 1 in @code{@w{@var{regs}->}end[2]} @end itemize @item If an @w{@var{i}-th} group contains a @w{@var{j}-th} group in turn not contained within any other group within group @var{i} and the function sets @code{@w{@var{regs}->}start[@var{i}]} and @code{@w{@var{regs}->}end[@var{i}]} to @math{-1}, then it also sets @code{@w{@var{regs}->}start[@var{j}]} and @code{@w{@var{regs}->}end[@var{j}]} to @math{-1}. For example, when you match the pattern @samp{((a)*b)*c} against the string @samp{c}, you get: @itemize @minus @item 0 in @code{@w{@var{regs}->}start[0]} and 1 in @code{@w{@var{regs}->}end[0]} @item @math{-1} in @code{@w{@var{regs}->}start[1]} and @math{-1} in @code{@w{@var{regs}->}end[1]} @item @math{-1} in @code{@w{@var{regs}->}start[2]} and @math{-1} in @code{@w{@var{regs}->}end[2]} @end itemize @end itemize @node Freeing GNU Pattern Buffers, , Using Registers, GNU Regex Functions @subsection Freeing GNU Pattern Buffers To free any allocated fields of a pattern buffer, you can use the @sc{posix} function described in @ref{Freeing POSIX Pattern Buffers}, since the type @code{regex_t}---the type for @sc{posix} pattern buffers---is equivalent to the type @code{re_pattern_buffer}. After freeing a pattern buffer, you need to again compile a regular expression in it (@pxref{GNU Regular Expression Compiling}) before passing it to a matching or searching function. @node POSIX Regex Functions, BSD Regex Functions, GNU Regex Functions, Programming with Regex @section POSIX Regex Functions If you're writing code that has to be @sc{posix} compatible, you'll need to use these functions. Their interfaces are as specified by @sc{posix}, draft 1003.2/D11.2. @menu * POSIX Pattern Buffers:: The regex_t type. * POSIX Regular Expression Compiling:: regcomp () * POSIX Matching:: regexec () * Reporting Errors:: regerror () * Using Byte Offsets:: The regmatch_t type. * Freeing POSIX Pattern Buffers:: regfree () @end menu @node POSIX Pattern Buffers, POSIX Regular Expression Compiling, , POSIX Regex Functions @subsection POSIX Pattern Buffers To compile or match a given regular expression the @sc{posix} way, you must supply a pattern buffer exactly the way you do for @sc{gnu} (@pxref{GNU Pattern Buffers}). @sc{posix} pattern buffers have type @code{regex_t}, which is equivalent to the @sc{gnu} pattern buffer type @code{re_pattern_buffer}. @node POSIX Regular Expression Compiling, POSIX Matching, POSIX Pattern Buffers, POSIX Regex Functions @subsection POSIX Regular Expression Compiling With @sc{posix}, you can only search for a given regular expression; you can't match it. To do this, you must first compile it in a pattern buffer, using @code{regcomp}. @ignore Before calling @code{regcomp}, you must initialize this pattern buffer as you do for @sc{gnu} (@pxref{GNU Regular Expression Compiling}). See below, however, for how to choose a syntax with which to compile. @end ignore To compile a pattern buffer, use: @findex regcomp @example int regcomp (regex_t *@var{preg}, const char *@var{regex}, int @var{cflags}) @end example @noindent @var{preg} is the initialized pattern buffer's address, @var{regex} is the regular expression's address, and @var{cflags} is the compilation flags, which Regex considers as a collection of bits. Here are the valid bits, as defined in @file{regex.h}: @table @code @item REG_EXTENDED @vindex REG_EXTENDED says to use @sc{posix} Extended Regular Expression syntax; if this isn't set, then says to use @sc{posix} Basic Regular Expression syntax. @code{regcomp} sets @var{preg}'s @code{syntax} field accordingly. @item REG_ICASE @vindex REG_ICASE @cindex ignoring case says to ignore case; @code{regcomp} sets @var{preg}'s @code{translate} field to a translate table which ignores case, replacing anything you've put there before. @item REG_NOSUB @vindex REG_NOSUB says to set @var{preg}'s @code{no_sub} field; @pxref{POSIX Matching}, for what this means. @item REG_NEWLINE @vindex REG_NEWLINE says that a: @itemize @bullet @item match-any-character operator (@pxref{Match-any-character Operator}) doesn't match a newline. @item nonmatching list not containing a newline (@pxref{List Operators}) matches a newline. @item match-beginning-of-line operator (@pxref{Match-beginning-of-line Operator}) matches the empty string immediately after a newline, regardless of how @code{REG_NOTBOL} is set (@pxref{POSIX Matching}, for an explanation of @code{REG_NOTBOL}). @item match-end-of-line operator (@pxref{Match-beginning-of-line Operator}) matches the empty string immediately before a newline, regardless of how @code{REG_NOTEOL} is set (@pxref{POSIX Matching}, for an explanation of @code{REG_NOTEOL}). @end itemize @end table If @code{regcomp} successfully compiles the regular expression, it returns zero and sets @code{*@var{pattern_buffer}} to the compiled pattern. Except for @code{syntax} (which it sets as explained above), it also sets the same fields the same way as does the @sc{gnu} compiling function (@pxref{GNU Regular Expression Compiling}). If @code{regcomp} can't compile the regular expression, it returns one of the error codes listed here. (Except when noted differently, the syntax of in all examples below is basic regular expression syntax.) @table @code @comment repetitions @item REG_BADRPT For example, the consecutive repetition operators @samp{**} in @samp{a**} are invalid. As another example, if the syntax is extended regular expression syntax, then the repetition operator @samp{*} with nothing on which to operate in @samp{*} is invalid. @item REG_BADBR For example, the @var{count} @samp{-1} in @samp{a\@{-1} is invalid. @item REG_EBRACE For example, @samp{a\@{1} is missing a close-interval operator. @comment lists @item REG_EBRACK For example, @samp{[a} is missing a close-list operator. @item REG_ERANGE For example, the range ending point @samp{z} that collates lower than does its starting point @samp{a} in @samp{[z-a]} is invalid. Also, the range with the character class @samp{[:alpha:]} as its starting point in @samp{[[:alpha:]-|]}. @item REG_ECTYPE For example, the character class name @samp{foo} in @samp{[[:foo:]} is invalid. @comment groups @item REG_EPAREN For example, @samp{a\)} is missing an open-group operator and @samp{\(a} is missing a close-group operator. @item REG_ESUBREG For example, the back reference @samp{\2} that refers to a nonexistent subexpression in @samp{\(a\)\2} is invalid. @comment unfinished business @item REG_EEND Returned when a regular expression causes no other more specific error. @item REG_EESCAPE For example, the trailing backslash @samp{\} in @samp{a\} is invalid, as is the one in @samp{\}. @comment kitchen sink @item REG_BADPAT For example, in the extended regular expression syntax, the empty group @samp{()} in @samp{a()b} is invalid. @comment internal @item REG_ESIZE Returned when a regular expression needs a pattern buffer larger than 65536 bytes. @item REG_ESPACE Returned when a regular expression makes Regex to run out of memory. @end table @node POSIX Matching, Reporting Errors, POSIX Regular Expression Compiling, POSIX Regex Functions @subsection POSIX Matching Matching the @sc{posix} way means trying to match a null-terminated string starting at its first character. Once you've compiled a pattern into a pattern buffer (@pxref{POSIX Regular Expression Compiling}), you can ask the matcher to match that pattern against a string using: @findex regexec @example int regexec (const regex_t *@var{preg}, const char *@var{string}, size_t @var{nmatch}, regmatch_t @var{pmatch}[], int @var{eflags}) @end example @noindent @var{preg} is the address of a pattern buffer for a compiled pattern. @var{string} is the string you want to match. @xref{Using Byte Offsets}, for an explanation of @var{pmatch}. If you pass zero for @var{nmatch} or you compiled @var{preg} with the compilation flag @code{REG_NOSUB} set, then @code{regexec} will ignore @var{pmatch}; otherwise, you must allocate it to have at least @var{nmatch} elements. @code{regexec} will record @var{nmatch} byte offsets in @var{pmatch}, and set to @math{-1} any unused elements up to @math{@var{pmatch}@code{[@var{nmatch}]} - 1}. @var{eflags} specifies @dfn{execution flags}---namely, the two bits @code{REG_NOTBOL} and @code{REG_NOTEOL} (defined in @file{regex.h}). If you set @code{REG_NOTBOL}, then the match-beginning-of-line operator (@pxref{Match-beginning-of-line Operator}) always fails to match. This lets you match against pieces of a line, as you would need to if, say, searching for repeated instances of a given pattern in a line; it would work correctly for patterns both with and without match-beginning-of-line operators. @code{REG_NOTEOL} works analogously for the match-end-of-line operator (@pxref{Match-end-of-line Operator}); it exists for symmetry. @code{regexec} tries to find a match for @var{preg} in @var{string} according to the syntax in @var{preg}'s @code{syntax} field. (@xref{POSIX Regular Expression Compiling}, for how to set it.) The function returns zero if the compiled pattern matches @var{string} and @code{REG_NOMATCH} (defined in @file{regex.h}) if it doesn't. @node Reporting Errors, Using Byte Offsets, POSIX Matching, POSIX Regex Functions @subsection Reporting Errors If either @code{regcomp} or @code{regexec} fail, they return a nonzero error code, the possibilities for which are defined in @file{regex.h}. @xref{POSIX Regular Expression Compiling}, and @ref{POSIX Matching}, for what these codes mean. To get an error string corresponding to these codes, you can use: @findex regerror @example size_t regerror (int @var{errcode}, const regex_t *@var{preg}, char *@var{errbuf}, size_t @var{errbuf_size}) @end example @noindent @var{errcode} is an error code, @var{preg} is the address of the pattern buffer which provoked the error, @var{errbuf} is the error buffer, and @var{errbuf_size} is @var{errbuf}'s size. @code{regerror} returns the size in bytes of the error string corresponding to @var{errcode} (including its terminating null). If @var{errbuf} and @var{errbuf_size} are nonzero, it also returns in @var{errbuf} the first @math{@var{errbuf_size} - 1} characters of the error string, followed by a null. @var{errbuf_size} must be a nonnegative number less than or equal to the size in bytes of @var{errbuf}. You can call @code{regerror} with a null @var{errbuf} and a zero @var{errbuf_size} to determine how large @var{errbuf} need be to accommodate @code{regerror}'s error string. @node Using Byte Offsets, Freeing POSIX Pattern Buffers, Reporting Errors, POSIX Regex Functions @subsection Using Byte Offsets In @sc{posix}, variables of type @code{regmatch_t} hold analogous information, but are not identical to, @sc{gnu}'s registers (@pxref{Using Registers}). To get information about registers in @sc{posix}, pass to @code{regexec} a nonzero @var{pmatch} of type @code{regmatch_t}, i.e., the address of a structure of this type, defined in @file{regex.h}: @tindex regmatch_t @example typedef struct @{ regoff_t rm_so; regoff_t rm_eo; @} regmatch_t; @end example When reading in @ref{Using Registers}, about how the matching function stores the information into the registers, substitute @var{pmatch} for @var{regs}, @code{@w{@var{pmatch}[@var{i}]->}rm_so} for @code{@w{@var{regs}->}start[@var{i}]} and @code{@w{@var{pmatch}[@var{i}]->}rm_eo} for @code{@w{@var{regs}->}end[@var{i}]}. @node Freeing POSIX Pattern Buffers, , Using Byte Offsets, POSIX Regex Functions @subsection Freeing POSIX Pattern Buffers To free any allocated fields of a pattern buffer, use: @findex regfree @example void regfree (regex_t *@var{preg}) @end example @noindent @var{preg} is the pattern buffer whose allocated fields you want freed. @code{regfree} also sets @var{preg}'s @code{allocated} and @code{used} fields to zero. After freeing a pattern buffer, you need to again compile a regular expression in it (@pxref{POSIX Regular Expression Compiling}) before passing it to the matching function (@pxref{POSIX Matching}). @node BSD Regex Functions, , POSIX Regex Functions, Programming with Regex @section BSD Regex Functions If you're writing code that has to be Berkeley @sc{unix} compatible, you'll need to use these functions whose interfaces are the same as those in Berkeley @sc{unix}. @menu * BSD Regular Expression Compiling:: re_comp () * BSD Searching:: re_exec () @end menu @node BSD Regular Expression Compiling, BSD Searching, , BSD Regex Functions @subsection BSD Regular Expression Compiling With Berkeley @sc{unix}, you can only search for a given regular expression; you can't match one. To search for it, you must first compile it. Before you compile it, you must indicate the regular expression syntax you want it compiled according to by setting the variable @code{re_syntax_options} (declared in @file{regex.h} to some syntax (@pxref{Regular Expression Syntax}). To compile a regular expression use: @findex re_comp @example char * re_comp (char *@var{regex}) @end example @noindent @var{regex} is the address of a null-terminated regular expression. @code{re_comp} uses an internal pattern buffer, so you can use only the most recently compiled pattern buffer. This means that if you want to use a given regular expression that you've already compiled---but it isn't the latest one you've compiled---you'll have to recompile it. If you call @code{re_comp} with the null string (@emph{not} the empty string) as the argument, it doesn't change the contents of the pattern buffer. If @code{re_comp} successfully compiles the regular expression, it returns zero. If it can't compile the regular expression, it returns an error string. @code{re_comp}'s error messages are identical to those of @code{re_compile_pattern} (@pxref{GNU Regular Expression Compiling}). @node BSD Searching, , BSD Regular Expression Compiling, BSD Regex Functions @subsection BSD Searching Searching the Berkeley @sc{unix} way means searching in a string starting at its first character and trying successive positions within it to find a match. Once you've compiled a pattern using @code{re_comp} (@pxref{BSD Regular Expression Compiling}), you can ask Regex to search for that pattern in a string using: @findex re_exec @example int re_exec (char *@var{string}) @end example @noindent @var{string} is the address of the null-terminated string in which you want to search. @code{re_exec} returns either 1 for success or 0 for failure. It automatically uses a @sc{gnu} fastmap (@pxref{Searching with Fastmaps}). @node Copying, Index, Programming with Regex, Top @appendix GNU GENERAL PUBLIC LICENSE @center Version 2, June 1991 @display Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @unnumberedsec Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software---to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. @iftex @unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @end iftex @ifinfo @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @end ifinfo @enumerate @item This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The ``Program'', below, refers to any such program or work, and a ``work based on the Program'' means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term ``modification''.) Each licensee is addressed as ``you''. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. @item You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. @item You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: @enumerate a @item You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. @item You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. @item If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) @end enumerate These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. @item You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: @enumerate a @item Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, @item Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, @item Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) @end enumerate The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. @item You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. @item You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. @item Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. @item If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. @item If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. @item The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and ``any later version'', you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. @item If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. @iftex @heading NO WARRANTY @end iftex @ifinfo @center NO WARRANTY @end ifinfo @item BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. @item IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. @end enumerate @iftex @heading END OF TERMS AND CONDITIONS @end iftex @ifinfo @center END OF TERMS AND CONDITIONS @end ifinfo @page @unnumberedsec Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the ``copyright'' line and a pointer to where the full notice is found. @smallexample @var{one line to give the program's name and a brief idea of what it does.} Copyright (C) 19@var{yy} @var{name of author} This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. @end smallexample Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: @smallexample Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author} Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. @end smallexample The hypothetical commands @samp{show w} and @samp{show c} should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than @samp{show w} and @samp{show c}; they could even be mouse-clicks or menu items---whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a ``copyright disclaimer'' for the program, if necessary. Here is a sample; alter the names: @example Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. @var{signature of Ty Coon}, 1 April 1989 Ty Coon, President of Vice @end example This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. @node Index, , Copying, Top @unnumbered Index @printindex cp @contents @bye ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/sheets.texi�������������������������������������������������������������������������0000644�0000000�0000000�00000072412�14445131372�012307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@deftp {Style Sheet} {68000} (@file{68000.ssh}) Written by Akim Demaille. Althought designed at the origin for the 68k's assembler, this style sheet seems to handle rather well other dialects. @end deftp @deftp {Style Sheet} {a2ps configuration file} (@file{a2psrc.ssh}) Written by Akim Demaille. Meant to print files such as @samp{a2ps.cfg}, or @samp{.a2ps/a2psrc}, etc. @end deftp @deftp {Style Sheet} {a2ps style sheet} (@file{ssh.ssh}) Written by Akim Demaille. Second level of highligthing (option @samp{-g})) substitutes the LaTeX symbols. @end deftp @deftp {Style Sheet} {Ada} (@file{ada.ssh}) Written by Akim Demaille. This style sheets cover Ada 95. If you feel the need for Ada 83, you'll have to design another style sheet. @end deftp @deftp {Style Sheet} {ASN.1} (@file{asn1.ssh}) Written by Philippe Coucaud. ASN.1 (Abstract Syntax Notation One) is used to define the protocol data units (PDUs) of all application layer protocols to date. @end deftp @deftp {Style Sheet} {Autoconf} (@file{autoconf.ssh}) Written by Akim Demaille. Suitable for both @code{configure.ac} and library @code{m4} files. @end deftp @deftp {Style Sheet} {AWK} (@file{awk.ssh}) Written by Edward Arthur. This style is devoted to the AWK pattern scanning and processing language. It is supposed to support classic awk, nawk and gawk. @end deftp @deftp {Style Sheet} {B} (@file{b.ssh}) Written by Philippe Coucaud. B is a formal specification method mostly used to describe critical systems. It is based on the mathematical sets theory. @end deftp @deftp {Style Sheet} {BC} (@file{bc.ssh}) Written by Akim Demaille. bc is an arbitrary precision calculator language. @end deftp @deftp {Style Sheet} {Bourne Shell} (@file{sh.ssh}) Written by Akim Demaille. Some classical program names, or builtin, are highlighted in the second level of pretty-printing. @end deftp @deftp {Style Sheet} {C} (@file{c.ssh}) Written by Akim Demaille. This style does not highlight the function definitions. Another style which highlights them, GNUish C, is provided (gnuc.ssh). It works only if you respect some syntactic conventions. @end deftp @deftp {Style Sheet} {C Shell} (@file{csh.ssh}) Written by Jim Diamond. Some classical program names, and/or builtins, are highlighted in the second level of pretty-printing. @end deftp @deftp {Style Sheet} {C#} (@file{csharp.ssh}) Written by Karen Christenson. This style is for the .NET object-oriented language C#, and is based on the C# Language Specification published in 2002 by Microsoft in the MSDN library. XML comments are mapped to strong comments, and any other comment is a plain comment. The C style-sheet was not selected as an ancestor in order to treat a struct the same as a class or an interface. The CPP style-sheet was not selected as an ancestor because C# set of preprocessor directives is much smaller. Keywords, XML comments, preprocessor directives, label statements, and [] style attributes are high-lighted. @end deftp @deftp {Style Sheet} {C++} (@file{cxx.ssh}) Written by Akim Demaille. Should handle all known variations of C++. Most declarations (classes etc.) are not highlighted as they should be. Please, step forward! @end deftp @deftp {Style Sheet} {CAML} (@file{caml.ssh}) This style is obsolete: use OCaml instead. @end deftp @deftp {Style Sheet} {ChangeLog} (@file{chlog.ssh}) Written by Akim Demaille. This style covers the usual ChangeLog files. @end deftp @deftp {Style Sheet} {Claire} (@file{claire.ssh}) Written by Akim Demaille. Claire is a high-level functional and object-oriented language with advanced rule processing capabilities. It is intended to allow the programmer to express complex algorithms with fewer lines and in an elegant and readable manner. To provide a high degree of expressivity, Claire uses: @itemize @minus @item A very rich type system including type intervals and second-order types (with dual static/dynamic typing), @item Parametric classes and methods, @item An object-oriented logic with set extensions, @item Dynamic versioning that supports easy exploration of search spaces. @end itemize To achieve its goal of readability, Claire uses @itemize @minus @item set-based programming with an intuitive syntax, @item simple-minded object-oriented programming, @item truly polymorphic and parametric functional programming, @item a powerful-yet-readable extension of DATALOG to express logical conditions, @item an entity-relation approach with explicit relations, inverses, unknown values and relational @item operations. @end itemize More information on claire can be found on @href{https://en.wikipedia.org/wiki/Claire_(programming_language),Wikipedia}. @end deftp @deftp {Style Sheet} {Common Lisp} (@file{clisp.ssh}) Written by Juliusz Chroboczek. It is not very clear what should be considered as a `keyword' in Common Lisp. I like binders, control structures and declarations to be highlighted, but not assignments. Names of defstructs are not highlighted because this would not work with defstruct options. @end deftp @deftp {Style Sheet} {Coq Vernacular} (@file{coqv.ssh}) Written by Akim Demaille. This style is devoted to the Coq v 5.10 vernacular language. @end deftp @deftp {Style Sheet} {CORBA IDL} (@file{cidl.ssh}) Written by Bob Phillips. A first attempt at a style sheet for OMG CORBA IDL. I believe I captured all the keywords for CORBA 2.2 IDL. I also stole code from gnuc.ssh to print the method names in bold face. I'm not sure I quite like my own choices for Keyword_strong and Keyword, so I'm looking for feedback. Note that, as with gnuc.ssh, for a method name to be noted as such, the left parenthesis associated with the argument list for the method must appear on the same line as the method name. @end deftp @deftp {Style Sheet} {CPP} (@file{cpp.ssh}) Written by Akim Demaille. C traditional preprocessor handling, mostly meant to be inherited. @end deftp @deftp {Style Sheet} {dc_shell} (@file{dc_shell.ssh}) Written by Philippe Le Van. Synopsys Design Compiler is a synthesis tool used by electronic companies for the design of their chips. This sheet is very incomplete, we have a lot of keywords to add, eventually options to highlight... The Label_strong style is used for commands which change the design. @end deftp @deftp {Style Sheet} {Eiffel} (@file{eiffel.ssh}) Written by Akim Demaille. Eiffel is an object oriented language that also includes a comprehensive approach to software construction: a method. The language itself is not just a programming language but also covers analysis, design and implementation. Heavy highlight uses symbols to represent common math operators. @end deftp @deftp {Style Sheet} {Emacs Lisp} (@file{elisp.ssh}) Written by Didier Verna. This style sheet includes support for some extensions dumped with XEmacs. @end deftp @deftp {Style Sheet} {Encapsulated PostScript} (@file{eps.ssh}) Written by Akim Demaille. Illegal PostScript operators are highlighted as Errors. @end deftp @deftp {Style Sheet} {Extended Tcl} (@file{tclx.ssh}) Written by Phil Hollenback. Extensions to plain Tcl. @end deftp @deftp {Style Sheet} {Fortran} (@file{fortran.ssh}) Written by Denis Girou, Alexander Mai. There are several Fortran dialects, depending whether, on the one hand, you use Fortran 77 or Fortran 90/95, and, on the other hand, Fixed form comments, or Free form comments. The style sheets @code{for77kwds} and @code{for90kwds} implements keywords only, while the style sheets @code{for-fixed} and @code{for-free} implements comments only. This style sheet tries to support any of the various flavors (Fortran 77/90/95, fixed or free form). For more specific uses, you should use either: @itemize @minus @item for77-fixed, for Fortran 77 fixed form, @item for77-free, for Fortran 77 free form, @item for90-fixed, for Fortran 90/95 fixed form, @item for90-free, for Fortran 90/95 free form. @end itemize @end deftp @deftp {Style Sheet} {Fortran 77 Fixed} (@file{for77-fixed.ssh}) Written by Denis Girou, Alexander Mai. Dedicated to Fortran 77 in fixed form, i.e., comments are lines starting with c, C, or *, and only those lines are comments. @end deftp @deftp {Style Sheet} {Fortran 77 Free} (@file{for77-free.ssh}) Written by Denis Girou, Alexander Mai. Dedicated to Fortran 77 in free form, i.e., comments are introduced by ! anywhere on the line, and nothing else is a comment. @end deftp @deftp {Style Sheet} {Fortran 77 Keywords} (@file{for77kwds.ssh}) Written by Denis Girou, Alexander Mai. This sheet implements only Fortran 77 keywords, and avoids implementing comments support. This is to allow for implementation of either fixed or free source form. See the documentation of the style sheet @code{fortran} for more details. @end deftp @deftp {Style Sheet} {Fortran 90 Fixed} (@file{for90-fixed.ssh}) Written by Denis Girou, Alexander Mai. Dedicated to Fortran 90/95 in fixed form, i.e., comments are lines starting with c, C, or *, and only those lines are comments. @end deftp @deftp {Style Sheet} {Fortran 90 Free} (@file{for90-free.ssh}) Written by Denis Girou, Alexander Mai. Dedicated to Fortran 90/95 in free form, i.e., comments are introduced by ! anywhere on the line, and nothing else is a comment. @end deftp @deftp {Style Sheet} {Fortran 90 Keywords} (@file{for90kwds.ssh}) Written by Denis Girou, Alexander Mai. This sheet implements the superset which Fortran 90 and Fortran 95 provide over Fortran 77. See the documentation of the style sheet @code{fortran} for more details. @end deftp @deftp {Style Sheet} {Fortran Fixed} (@file{for-fixed.ssh}) Written by Denis Girou, Alexander Mai. Implements comments of Fortran in fixed form, i.e., comments are lines starting with c, C, or *, and only those lines are comments. No other highlighting is done. See the documentation of the style sheet @code{fortran} for more details. @end deftp @deftp {Style Sheet} {Fortran Free} (@file{for-free.ssh}) Written by Denis Girou, Alexander Mai. Dedicated to Fortran in free form, i.e., comments are introduced by ! anywhere on the line, and nothing else is a comment. @end deftp @deftp {Style Sheet} {GNUish C} (@file{gnuc.ssh}) Written by Akim Demaille. Declaration of functions are highlighted @emph{only} if you start the function name in the first column, and it is followed by an opening parenthesis. In other words, if you write @example int main (void) @end example it won't work. Write: @example int main (void) @end example @end deftp @deftp {Style Sheet} {GNUMakefile} (@file{gmake.ssh}) Written by Alexander Mai. Special tokens of GNUmakefiles and non terminal declarations are highlighted. @end deftp @deftp {Style Sheet} {Haskell} (@file{haskell.ssh}) Written by Ilya Beylin. Haskell: non-strict functional programming language https://www.haskell.org/ @end deftp @deftp {Style Sheet} {HTML} (@file{html.ssh}) Written by Akim Demaille, Wesley J. Chun. This style is meant to pretty print HTML source files, not to simulate its interpretation (i.e., @samp{<bold>foo</bold>} does not print @samp{foo} in bold). If you really meant to print the result of the HTML file @emph{interpreted}, then you should turn the delegations on, and make sure @samp{a2ps} has HTML delegations. @end deftp @deftp {Style Sheet} {IDL} (@file{idl.ssh}) Written by Robert S. Mallozzi, Manfred Schwarb. Style sheet for IDL 5.2 (Interactive Data Language). Obsolete routines are not supported. https://www.rsinc.com. @end deftp @deftp {Style Sheet} {InstallShield 5} (@file{is5rul.ssh}) Written by Alex. InstallShield5 _TM_ RUL script. @end deftp @deftp {Style Sheet} {Java} (@file{java.ssh}) Written by Steve Alexander. Documentation comments are mapped to strong comments, and any other comment is plain comment. @end deftp @deftp {Style Sheet} {JavaScript} (@file{js.ssh}) Written by Scott Pakin. Keywords used are everything listed in the Client-Side JavaScript Reference 1.3, plus "undefined" (why isn't that listed?) and "prototype". I omitted the semi-standard a2ps optional operators for equality, because JavaScript's use of both strict- and non-strict equality might ambiguate the output. Finally, regular expressions are formatted like strings. @end deftp @deftp {Style Sheet} {LACE} (@file{lace.ssh}) Written by Akim Demaille. This is meant for the Eiffel equivalent of the Makefiles. @end deftp @deftp {Style Sheet} {Lex} (@file{lex.ssh}) Written by Akim Demaille. In addition to the C constructs, it highlights the declaration of states, and some special @samp{%} commands. @end deftp @deftp {Style Sheet} {Lout} (@file{lout.ssh}) Written by Jean-Baptiste Nivoit. This is the style for Lout files. @end deftp @deftp {Style Sheet} {Mail Folder} (@file{mail.ssh}) Written by Akim Demaille. To use from elm and others, it is better to specify @samp{-g -Email}, since the file sent to printer is no longer truly a mail folder. This style also suits to news. @samp{--strip} options are also useful (they strip "useless" headers). Whenever the changes of encoding are clear, a2ps sets itself the encoding for the parts concerned. Tag 1 is the subject, and Tag 2 the author of the mail/news. Note: This style sheet is _very_ difficult to write. Please don't report behavior you don't like. Just send me improvements, or write a Bison parser for mails. @end deftp @deftp {Style Sheet} {Makefile} (@file{make.ssh}) Written by Akim Demaille. Special tokens, and non terminal declarations are highlighted. @end deftp @deftp {Style Sheet} {Management Information Base} (@file{mib.ssh}) Written by Kelly Wiles. The MIB file is of ASN.1 syntax. @end deftp @deftp {Style Sheet} {Maple} (@file{maple.ssh}) Written by Richard J Mathar. Some classical program names, and/or builtins, are highlighted in the second level of pretty-printing. @end deftp @deftp {Style Sheet} {masm} (@file{nasm.ssh}) Written by Aleksandar Veselinovic. This style highlights MASM ASM code. @end deftp @deftp {Style Sheet} {Matlab} (@file{matlab.ssh}) Written by Joakim Lbeck. This style highlights function definitions and a limited number of keywords, mostly control constructs, and is therefore usable for many Matlab versions. Special care have been taken to distinguish string delimiters from the transpose operator (which is the same symbol) and to recognize comments. @end deftp @deftp {Style Sheet} {MATLAB 4} (@file{matlab4.ssh}) Written by Marco De la Cruz. Note that comments in the code should have a space after the %. @end deftp @deftp {Style Sheet} {Modula 2} (@file{modula2.ssh}) Written by Peter Bartke. @end deftp @deftp {Style Sheet} {Modula 3} (@file{modula3.ssh}) Written by Akim Demaille. Modula-3 is a member of the Pascal family of languages. Designed in the late 1980s at Digital Equipment Corporation and Olivetti, Modula-3 corrects many of the deficiencies of Pascal and Modula-2 for practical software engineering. In particular, Modula-3 keeps the simplicity of type safety of the earlier languages, while providing new facilities for exception handling, concurrency, object-oriented programming, and automatic garbage collection. Modula-3 is both a practical implementation language for large software projects and an excellent teaching language. This sheet was designed based on @href{http://www.modula3.org/,Modula 3 home page}. @end deftp @deftp {Style Sheet} {o2c} (@file{o2c.ssh}) @end deftp @deftp {Style Sheet} {Oberon} (@file{oberon.ssh}) Written by Akim Demaille. Created by N. Wirth, Oberon is the successor of the Pascal and Modula-2 family of programming languages. It was specifically designed for systems programming, and was used to create the Oberon system in cooperation with J. Gutknecht. A few years later, the Oberon language was extended with additional object-oriented features to result in the programming language Oberon-2. Implementation of the sheet based on @href{http://www.projectoberon.com/,The Project Oberon Site}. @end deftp @deftp {Style Sheet} {Objective C} (@file{objc.ssh}) Written by Paul Shum. @end deftp @deftp {Style Sheet} {OCaml} (@file{ocaml.ssh}) This style should also suit other versions of ML (caml light, SML etc.). @end deftp @deftp {Style Sheet} {OCaml Yacc} (@file{mly.ssh}) Written by Jean-Baptiste Nivoit. Should handle CAML Special Light parser files. @end deftp @deftp {Style Sheet} {Octave} (@file{octave.ssh}) Written by C.P. Earls. @end deftp @deftp {Style Sheet} {Oracle parameter file} (@file{initora.ssh}) Written by Pierre Mareschal. For init.ora parameter files. @end deftp @deftp {Style Sheet} {Oracle PL/SQL} (@file{plsql.ssh}) Written by Pierre Mareschal. This style is to be checked. @end deftp @deftp {Style Sheet} {Oracle SQL} (@file{sql.ssh}) Written by Pierre Mareschal. a2ps-sql Pretty Printer Version 1.0.0 beta - 18-MAR-97 For comments, support for -- /*..*/ and //. This style is to be checked. @end deftp @deftp {Style Sheet} {Oracle SQL-PL/SQL-SQL*Plus} (@file{oracle.ssh}) Written by Pierre Mareschal. 18-MAR-97 For comments, support for -- /*..*/ and //. This style is to be checked. @end deftp @deftp {Style Sheet} {Pascal} (@file{pascal.ssh}) Written by Akim Demaille. The standard Pascal is covered by this style. But some extension have been added too, hence modern Pascal programs should be correctly handled. Heavy highlighting maps mathematical symbols to their typographic equivalents. @end deftp @deftp {Style Sheet} {Perl} (@file{perl.ssh}) Written by Denis Girou. As most interpreted languages, Perl is very free on its syntax, what leads to significant problems for a pretty printer. Please, be kind with our try. Any improvement is most welcome. @end deftp @deftp {Style Sheet} {PHP} (@file{php.ssh}) Written by Hartmut Holzgraefe. This is a a2ps stylesheet for PHP syntax highlighting (just the PHP part, HTML is left 'as is'). This is my first try on a2ps stylesheets. It works OK for me. If it doesn't come up to your expectatios, then please tell me. @end deftp @deftp {Style Sheet} {pic16f84} (@file{pic16f84.ssh}) Written by Aleksandar Veselinovic. This style highlights PIC16F84 ASM code. @end deftp @deftp {Style Sheet} {PostScript} (@file{ps.ssh}) Written by Akim Demaille. Only some keywords are highlighted, because otherwise listings are quickly becoming a big bold spot. @end deftp @deftp {Style Sheet} {PostScript Printer Description} (@file{ppd.ssh}) Written by Akim Demaille. Support for Adobe's PPD files. @end deftp @deftp {Style Sheet} {Pov-Ray} (@file{pov.ssh}) Written by Jean-Baptiste Nivoit. Should handle Persistence Of Vision input files. @end deftp @deftp {Style Sheet} {PreScript} (@file{pre.ssh}) Written by Akim Demaille. This style defines commands in the canonic syntax of a2ps. It is meant to be used either as an input language, and to highlight the table of contents etc. It can be a good choice of destination language for people who want to produce text to print (e.g. pretty-printing, automated documentation etc.) but who definitely do not want to learn PostScript, nor to require the use of LaTeX. @end deftp @deftp {Style Sheet} {PreTeX} (@file{pretex.ssh}) Written by Akim Demaille. This style sheets provides LaTeX-like commands to format text. It is an alternative to the PreScript style sheet, in which formating commands are specified in a more a2ps related syntax. It provides by the use of LaTeX like commands, a way to describe the pages that this program should produce. @end deftp @deftp {Style Sheet} {Prolog} (@file{prolog.ssh}) Written by Akim Demaille. Help is needed on this sheet. @end deftp @deftp {Style Sheet} {Promela} (@file{promela.ssh}) Written by Akim Demaille. There is no way for this program to highlight send and receive primitives. @end deftp @deftp {Style Sheet} {Python} (@file{python.ssh}) Written by Akim Demaille. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms. The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the @href{https://www.python.org,Python web site}, and can be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation. The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). Python is also suitable as an extension language for customizable applications. @end deftp @deftp {Style Sheet} {Rd -- Documentation for GNU R} (@file{rd.ssh}) Written by Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel. R is a system for statistical computation and graphics. It consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. R has a home page at `https://www.r-project.org/'. It is free software distributed under a GNU-style copyleft, and an official part of the GNU project ( GNU S ). @end deftp @deftp {Style Sheet} {Reference Card} (@file{card.ssh}) Written by Akim Demaille. This style sheet is meant to process help messages generated by Unix applications. It highlights the options (-short or --long), and their arguments. Normal use of this style sheet is through the shell script card (part of the a2ps package), but a typical hand-driven use is: @example program --help | a2ps -Ecard @end example @end deftp @deftp {Style Sheet} {REXX} (@file{rexx.ssh}) Written by Alexander Mai. This style sheet supports REXX. You can get information about REXX from the @href{https://www.rexxla.org,REXX Language Association}. @end deftp @deftp {Style Sheet} {Ruby} (@file{ruby.ssh}) Written by Noritsugu Nakamura. @end deftp @deftp {Style Sheet} {S language} (@file{s.ssh}) Written by Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel. Should handle code for interpreters of S, a language for statistical computating and graphics, such as R. R consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. R has a home page at `https://www.r-project.org/'. It is free software distributed under a GNU-style copyleft, and an official part of the GNU project (`GNU S'). @end deftp @deftp {Style Sheet} {S transscript} (@file{st.ssh}) Written by Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel. Should handle transscripts from interpreters of S, a language for statistical computing and graphics, such as R. R consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. R has a home page at `https://www.r-project.org/'. It is free software distributed under a GNU-style copyleft, and an official part of the GNU project (`GNU S'). @end deftp @deftp {Style Sheet} {Sather} (@file{sather.ssh}) Written by Akim Demaille. Sather is an object oriented language designed to be simple, efficient, safe, flexible and non-proprietary. One way of placing it in the `space of languages' is to say that it aims to be as efficient as C, C++, or Fortran, as elegant as and safer than Eiffel, and support higher-order functions and iteration abstraction as well as Common Lisp, CLU or Scheme. Implementation of the sheet based on the @href{https://www.gnu.org/software/sather/,Sather home page}. Heavy highlighting uses symbols for common mathematical operators. @end deftp @deftp {Style Sheet} {Scheme} (@file{scheme.ssh}) Written by Akim Demaille. This style sheet is looking for a maintainer and/or comments. @end deftp @deftp {Style Sheet} {SDL-88} (@file{sdl88.ssh}) Written by Jean-Philippe Cottin. --strip-level=2 is very useful: it cancels the graphical information left by graphic editors. Only the pure specification is then printed. @end deftp @deftp {Style Sheet} {Sed} (@file{sed.ssh}) Written by Akim Demaille. Comments and labels are highlighted. Other ideas are welcome! A lot of work is still needed. @end deftp @deftp {Style Sheet} {Shell} (@file{shell.ssh}) Written by Akim Demaille. This style sheet is not meant to be used directly, but rather an as ancestor for shell style sheets. @end deftp @deftp {Style Sheet} {Small} (@file{small.ssh}) Written by Christophe Continente. This style does not highlight the function definitions. @end deftp @deftp {Style Sheet} {SpecC} (@file{specc.ssh}) Written by Hideaki Yokota. Non-textual operators are not highlighted. Some logical operators are printed as graphical symbols in the second level of pretty-printing. @end deftp @deftp {Style Sheet} {SQL 92} (@file{sql92.ssh}) Written by Pierre Mareschal. 18-MAR-97 This style is to be checked. @end deftp @deftp {Style Sheet} {Standard ML} (@file{sml.ssh}) Written by Franklin Chen, Daniel Wang. This style sheet takes advantage of the Symbol font to replace many ASCII operators with their natural graphical representation. This is enabled only at heavy highlighting. @end deftp @deftp {Style Sheet} {stratego} (@file{stratego.ssh}) Written by Nicolas Tisserand. Highlights stratego source code @end deftp @deftp {Style Sheet} {Symbols} (@file{symbols.ssh}) Written by Akim Demaille. This style sheet should be a precursor for any style sheet which uses LaTeX like symbols. @end deftp @deftp {Style Sheet} {TC Shell} (@file{tcsh.ssh}) Written by Jim Diamond. C shell with file name completion and command line editing. @end deftp @deftp {Style Sheet} {TeX} (@file{tex.ssh}) Written by Denis Girou. This is the style for (La)TeX files. It's mainly useful for people who develop (La)TeX packages. With @samp{-g}, common mathematical symbols are represented graphically. @end deftp @deftp {Style Sheet} {Texinfo} (@file{texinfo.ssh}) Written by Akim Demaille. Heavy highlighting prints the nodes on separate pages which title is the name of the node. @end deftp @deftp {Style Sheet} {TeXScript} (@file{texscript.ssh}) Written by Akim Demaille. TeXScript is the new name of what used to be called PreScript. New PreScript has pure a2ps names, PreTeX has pure TeX names, and TeXScript mixes both. @end deftp @deftp {Style Sheet} {Tiger} (@file{tiger.ssh}) Written by Akim Demaille. Tiger is a toy language that serves as example of the book @href{https://www.cs.princeton.edu/~appel/modern/,Modern Compiler Implementation} by Andrew W. Appel. @end deftp @deftp {Style Sheet} {tk} (@file{tk.ssh}) Written by Akim Demaille, Larry W. Virden. Since everything, or almost, is a string, what is printed is not always what you would like. @end deftp @deftp {Style Sheet} {Tool Command Language} (@file{tcl.ssh}) Written by Akim Demaille, Larry W. Virden. Since everything, or almost, is a string, what is printed is not always what you would like. @end deftp @deftp {Style Sheet} {Unified Diff} (@file{udiff.ssh}) Written by Akim Demaille. This style is meant to be used onto the output unidiffs, that is to say output from @samp{diff -u}. Typical use of this style is: @example diff -u old new | a2ps -Eudiff @end example The prologue @code{diff} helps to highlight the differences (@samp{a2ps -Ewdiff --prologue=diff}). @end deftp @deftp {Style Sheet} {Unity} (@file{unity.ssh}) Written by Jean-Philippe Cottin. The graphic conversion of the symbols (option @samp{-g}) is nice. @end deftp @deftp {Style Sheet} {VERILOG} (@file{verilog.ssh}) Written by Edward Arthur. This style is devoted to the VERILOG hardware description language. @end deftp @deftp {Style Sheet} {VHDL} (@file{vhdl.ssh}) Written by Thomas Parmelan. Non-textual operators are not highlighted. Some logical operators are printed as graphical symbols in the second level of pretty-printing. @end deftp @deftp {Style Sheet} {Visual Basic for Applications} (@file{vba.ssh}) Written by Dirk Eddelbuettel. @end deftp @deftp {Style Sheet} {Visual Tcl} (@file{vtcl.ssh}) Written by Phil Hollenback. All the Vtcl keywords that aren't in Tcl or TclX. @end deftp @deftp {Style Sheet} {VRML} (@file{vrml.ssh}) Written by Nadine Richard. According to @href{https://www.web3d.org/documents/specifications/14772/V2.0/part1/grammar.html,Grammar Definition Version 2.0 ISO/IEC CD 14772}. @end deftp @deftp {Style Sheet} {wdiff} (@file{wdiff.ssh}) Written by Akim Demaille. This style is meant to be used onto the output of Franc,ois Pinard's program @code{wdiff}. @code{wdiff} is a utility that underlines the differences of words between to files. Where @code{diff} make only the difference between lines that have changed, @code{wdiff} reports words that have changed inside the lines. Typical use of this style is: @example wdiff old new | a2ps -Ewdiff @end example @code{wdiff} can be found in usual GNU repositories. The prologue @code{diff} helps to highlight the differences (@samp{a2ps -Ewdiff --prologue=diff}). @end deftp @deftp {Style Sheet} {XS} (@file{xs.ssh}) Written by Kestutis Kupciunas. This style covers Perl XS language. @end deftp @deftp {Style Sheet} {Yacc} (@file{yacc.ssh}) Written by Akim Demaille. Special tokens, and non terminal declarations are highlighted. @end deftp @deftp {Style Sheet} {Z Shell} (@file{zsh.ssh}) Zsh is a UNIX command interpreter (shell) usable as an interactive login shell and as a shell script command processor. Of the standard shells, zsh most closely resembles ksh but includes many enhancements. Zsh has comand line editing, builtin spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and a host of other features. This style sheet highlights some classical program names and builtins in the second level of pretty-printing. @end deftp ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/stamp-vti���������������������������������������������������������������������������0000644�0000000�0000000�00000000137�14445132170�011760� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@set UPDATED 22 June 2023 @set UPDATED-MONTH June 2023 @set EDITION 4.15.5 @set VERSION 4.15.5 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/doc/version.texi������������������������������������������������������������������������0000644�0000000�0000000�00000000137�14445132170�012471� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@set UPDATED 22 June 2023 @set UPDATED-MONTH June 2023 @set EDITION 4.15.5 @set VERSION 4.15.5 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/�������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132372�011215� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/Makefile.am��������������������������������������������������������������������0000644�0000000�0000000�00000002573�14273213734�013201� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # As a new `feature' :), a2ps uses now even more directories encodingsdir = $(pkgdatadir)/encoding # I don't want to hurt anybody here, this is under the pressure # of many users. Don't pay attention to the names. major_encodings = ascii.edf iso1.edf minor_encodings = \ ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \ iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \ iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf if EXTENSIONS encodings_DATA = encoding.map $(major_encodings) $(minor_encodings) else encodings_DATA = encoding.map $(major_encodings) endif EXTRA_DIST = README encoding.map $(major_encodings) $(minor_encodings) �������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/Makefile.in��������������������������������������������������������������������0000644�0000000�0000000�00000164154�14445132054�013212� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = encoding ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(encodingsdir)" DATA = $(encodings_DATA) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # As a new `feature' :), a2ps uses now even more directories encodingsdir = $(pkgdatadir)/encoding # I don't want to hurt anybody here, this is under the pressure # of many users. Don't pay attention to the names. major_encodings = ascii.edf iso1.edf minor_encodings = \ ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \ iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \ iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf @EXTENSIONS_FALSE@encodings_DATA = encoding.map $(major_encodings) @EXTENSIONS_TRUE@encodings_DATA = encoding.map $(major_encodings) $(minor_encodings) EXTRA_DIST = README encoding.map $(major_encodings) $(minor_encodings) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign encoding/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign encoding/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-encodingsDATA: $(encodings_DATA) @$(NORMAL_INSTALL) @list='$(encodings_DATA)'; test -n "$(encodingsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(encodingsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(encodingsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(encodingsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(encodingsdir)" || exit $$?; \ done uninstall-encodingsDATA: @$(NORMAL_UNINSTALL) @list='$(encodings_DATA)'; test -n "$(encodingsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(encodingsdir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(encodingsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-encodingsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-encodingsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-encodingsDATA install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs loc-am loc-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-encodingsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/README�������������������������������������������������������������������������0000644�0000000�0000000�00000000403�14233473143�012011� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ README for the "encoding" directory of a2ps. This directory contains edf files (Encoding Decription File) for the encodings (aka charsets) supported by a2ps. Version 4.9.7n: * Renamed `Encoding:' to `Name:'. * The file are now `enc.edf', not `enc.wx'. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/ascii.edf����������������������������������������������������������������������0000644�0000000�0000000�00000005214�14233473143�012706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ASCII encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ASCII Documentation US-ASCII. EndDocumentation Default: Courier Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright tilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/encoding.map�������������������������������������������������������������������0000644�0000000�0000000�00000006044�14236507210�013421� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- ksh -*- # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # # This file defines the rules used by a2ps to select an encoding. # # The format of each line is: # # <alias> <encoding> # In which case whenever <alias> is requested, a2ps uses the # <encoding>. Matching to <alias> is case insensitive, hence <alias> # and <key> must be lower case in this file. # # *** <path> # In which case a encoding.map is included at this point. # This may be the case if you define a personal extension # of the system's encoding.map # ######################################################################## # The ASCII encoding ######################################################################## ascii ascii us-ascii ascii ######################################################################## # The ISO encodings ######################################################################## latin1 iso1 iso1 iso1 iso-8859-1 iso1 latin2 iso2 iso2 iso2 iso-8859-2 iso2 latin3 iso3 iso3 iso3 iso-8859-3 iso3 latin4 iso4 iso4 iso4 iso-8859-4 iso4 iso5 iso5 iso-8859-5 iso5 iso7 iso7 iso-8859-7 iso7 # The following lines _are_not_an_error_. # This is the right correspondance between ISO-8859 names # and the Latin n nick name. latin5 iso9 iso9 iso9 iso-8859-9 iso9 latin6 iso10 iso10 iso10 iso-8859-10 iso10 latin7 iso13 iso13 iso13 iso-8859-13 iso13 # This one is nicknamed latin0 too iso15 iso15 latin9 iso15 latin0 iso15 iso-8859-15 iso15 ######################################################################## # Other encodings ######################################################################## koi8-r koi8 koi8r koi8 koi8 koi8 koi koi8 euc-jp euc-jp eucjp euc-jp japanese euc-jp ja euc-jp jp euc-jp ######################################################################## # Some architectures specific char sets ######################################################################## # MicroSoft's CP 1250 ms-cp1250 ms-cp1250 cp1250 ms-cp1250 1250 ms-cp1250 cep ms-cp1250 # MicroSoft's CP 1251 ms-cp1251 ms-cp1251 cp1251 ms-cp1251 windows-1251 ms-cp1251 # IBM PC ibm-cp850 ibm-cp850 cp850 ibm-cp850 850 ibm-cp850 pc ibm-cp850 ibmpc ibm-cp850 # PC graphic ibm-cp437 ibm-cp437 cp437 ibm-cp437 437 ibm-cp437 pcg ibm-cp437 # Hewlett Packard hp hp hp8 hp # Apple' Macintosh mac mac macintosh mac ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/euc-jp.edf���������������������������������������������������������������������0000644�0000000�0000000�00000007662�14236507210�013006� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the EUC-JP encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # Copyright (c) 2003 Masayuki Hatta # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: EUC-JP Documentation The EUC-JP encoding is a 8-bit character set widely used in Japan. EndDocumentation # If there is an unknown font requested, use Courier Default: Courier # Automatic spell checking :) Substitute: Times Times-Roman Substitute: Helvetica-Italic Helvetica-Oblique Substitute: Helvetica-BoldItalic Helvetica-BoldOblique # SlantFont for Japanese Italic Kanji font # new font source font value SlantFont: Ryumin-Light-EUC-H-Italic Ryumin-Light-EUC-H 0.2 SlantFont: GothicBBB-Medium-EUC-H-Italic GothicBBB-Medium-EUC-H 0.2 # Compose fonts for Japanese EUC code # target font additional font width size rate DefaultComposite: Ryumin-Light-EUC-H 1.0 1.1 # 1:2 fixed #DefaultComposite: Ryumin-Light-EUC-H 1.0 0.8333 # 1:1 fixed #DefaultComposite: Ryumin-Light-EUC-H 1.0 1.6666 Composite: Helvetica GothicBBB-Medium-EUC-H 1.0 1.1 Composite: Helvetica-Oblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1 Composite: Helvetica-Bold GothicBBB-Medium-EUC-H 1.0 1.1 Composite: Helvetica-BoldOblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1 Composite: Courier-Oblique Ryumin-Light-EUC-H-Italic 1.0 1.1 Composite: Courier-Bold GothicBBB-Medium-EUC-H 1.0 1.1 Composite: Courier-BoldOblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1 Composite: Times-Bold GothicBBB-Medium-EUC-H 1.0 1.1 Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior acute mu paragraph bullet cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis ������������������������������������������������������������������������������a2ps-4.15.5/encoding/hp.edf�������������������������������������������������������������������������0000644�0000000�0000000�00000005331�14233473143�012225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the HPRoman encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: HPRoman Documentation The 8 bits Roman encoding for HP. EndDocumentation Default: Courier Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright tilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef Agrave Acircumflex Egrave Ecircumflex Edieresis Icircumflex Idieresis acute grave circumflex dieresis tilde Ugrave Ucircumflex sterling macron Yacute yacute degree Ccedilla ccedilla Ntilde ntilde exclamdown questiondown currency sterling yen section florin cent acircumflex ecircumflex ocircumflex ucircumflex aacute eacute oacute uacute agrave egrave ograve ugrave adieresis edieresis odieresis udieresis Aring icircumflex Oslash AE aring iacute oslash ae Adieresis igrave Odieresis Udieresis Eacute idieresis germandbls Ocircumflex Aacute Atilde atilde Eth eth Iacute Igrave Oacute Ograve Otilde otilde Scaron scaron Uacute Ydieresis ydieresis Thorn thorn periodcentered mu paragraph threequarters emdash onequarter onehalf ordfeminine ordmasculine guillemotleft filledbox guillemotright plusminus .notdef �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/ibm-cp437.edf������������������������������������������������������������������0000644�0000000�0000000�00000006656�14251171532�013233� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the PCGraphic encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: IBM-CP437 Documentation This encoding is meant to be used for PC files with drawing lines. EndDocumentation Default: PCFont # Ogonkify is used for a better support Substitute: Courier PCFont Substitute: Courier-Bold PCFont Substitute: Courier-BoldOblique PCFont Substitute: Courier-Oblique PCFont Substitute: Times-Roman PCFont Substitute: Times-Bold PCFont Substitute: Times-Italic PCFont Substitute: Times-BoldItalic PCFont Substitute: Helvetica PCFont Substitute: Helvetica-Bold PCFont Substitute: Helvetica-Oblique PCFont Substitute: Helvetica-BoldOblique PCFont Vector: null Wsmiley Bsmiley heart diamond club spade Bbullet Wbullet Bcircle Wcircle male female quarternote sixteenthnote sun pointerright pointerleft Varrowboth exclamdbl paragraph section cursorblock floor arrowup arrowdown arrowright arrowleft smallLLsingle arrowboth pointerup pointerdown blank exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft brokenbar braceright asciitilde Delta Ccedilla udieresis eacute acircumflex adieresis agrave aring ccedilla ecircumflex edieresis egrave idieresis icircumflex igrave Adieresis Aring Eacute ae AE ocircumflex odieresis ograve ucircumflex ugrave ydieresis Odieresis Udieresis cent sterling yen point integral aacute iacute oacute uacute ntilde Ntilde aunder ounder questiondown smallULsingle smallURsingle half quarter exclamdown lessdbl greaterdbl lightbox mediumbox darkbox Vsingle VsingleTleftsingle VsingleTleftdbl VdblTleftsingle VdblURsingle VsingleURdbl VdblTleftdbl Vdbl VdblURdbl VdblLRdbl VdblLRsingle VsingleLRdbl VsingleURsingle VsingleLLsingle HsingleTupsingle HsingleTdownsingle VsingleTrightsingle Hsingle VsingleXsingle VsingleTrightdbl VdblTrightsingle VdblLLdbl VdblULdbl HdblTupdbl HdblTdowndbl VdblTrightdbl Hdbl VdblXdbl HdblTupsingle HsingleTupdbl HdblTdownsingle HsingleTdowndbl VdblLLsingle VsingleLLdbl VsingleULdbl VdblULsingle VdblXsingle VsingleXdbl VsingleLRsingle VsingleULsingle allblack botblack leftblack rightblack topblack alpha beta Gamma pi Sigma sigma mu tau Phi theta Omega delta infinity phi element intersection equivalence plusminus greaterequal lessequal integraltp integralbt divide approxequal degree bullet dotmath radical eta squared block blank ����������������������������������������������������������������������������������a2ps-4.15.5/encoding/ibm-cp850.edf������������������������������������������������������������������0000644�0000000�0000000�00000005412�14233473143�013222� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the IBMPC encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: IBM-CP850 Documentation Several characters may be missing, especially Greek letters and some mathematical symbols. EndDocumentation Default: Courier Vector: .notdef .notdef .notdef heart diamond club spade .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef paragraph section .notdef .notdef arrowup arrowdown .notdef .notdef .notdef arrowboth .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright tilde .notdef Ccedilla udieresis eacute acircumflex adieresis agrave aring ccedilla ecircumflex edieresis egrave idieresis icircumflex igrave Adieresis Aring Eacute ae AE ocircumflex odieresis ograve ucircumflex ugrave ydieresis Odieresis Udieresis cent sterling yen .notdef florin aacute iacute oacute uacute ntilde Ntilde ordfeminine degree questiondown .notdef logicalnot onehalf onequarter exclamdown guillemotleft guillemotright .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef alpha germandbls Gamma pi Sigma sigma mu tau phi theta Omega delta infinity oslash epsilon intersection equivalence plusminus greaterequal lessequal integraltp integralbt divide approxequal degree dotaccent dotaccent radical .notdef twosuperior .notdef .notdef ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso1.edf�����������������������������������������������������������������������0000644�0000000�0000000�00000007224�14233473143�012474� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-1 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-1 # This text is reproduced by a courtesy of Roman Czyborra # http://czyborra.com/charsets/iso8859.html Documentation The ISO-8859-1 character set, often simply referred to as Latin 1, covers most West European languages, such as French, Spanish, Catalan, Basque, Portuguese, Italian, Albanian, Rhaeto-Romanic, Dutch, German, Danish, Swedish, Norwegian, Finnish, Faroese, Icelandic, Irish, Scottish, and English, incidentally also Afrikaans and Swahili, thus in effect also the entire American continent, Australia and the southern two-thirds of Africa. The lack of the ligatures Dutch IJ, French OE and ,,German`` quotation marks is considered tolerable. The lack of the new C=-resembling Euro currency symbol U+20AC has opened the discussion of a new Latin0. EndDocumentation # If there is an unknown font requested, use Courier Default: Courier # Automatic spell checking :) Substitute: Times Times-Roman Substitute: Helvetica-Italic Helvetica-Oblique Substitute: Helvetica-BoldItalic Helvetica-BoldOblique Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior acute mu paragraph bullet cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso10.edf����������������������������������������������������������������������0000644�0000000�0000000�00000007112�14233473143�012550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-10 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-10 # This text is reproduced by a courtesy of Alis Technologies inc. # http://babel.alis.com:8080/codage/iso8859/jeuxiso.en.htm Documentation Latin 6 (or ISO-8859-10) adds the last letters from Greenlandic and Lapp which were missing in Latin 4, and thereby covers all Scandinavia. Support is provided thanks to Ogonkify. EndDocumentation Default: Courier-Ogonki # Ogonkify is used for a better support Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki Substitute: Times-Roman Times-Roman-Ogonki Substitute: Times-Bold Times-Bold-Ogonki Substitute: Times-Italic Times-Italic-Ogonki Substitute: Times-BoldItalic Times-BoldItalic-Ogonki Substitute: Helvetica Helvetica-Ogonki Substitute: Helvetica-Bold Helvetica-Bold-Ogonki Substitute: Helvetica-Oblique Helvetica-Oblique-Ogonki Substitute: Helvetica-BoldOblique Helvetica-BoldOblique-Ogonki Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space Aogonek Emacron Gcedilla Imacron Itilde Kcedilla Lcedilla acute Rcedilla Scaron Tbar Zcaron hyphen kra Eng Dbar aogonek emacron gcedilla imacron itilde kcedilla lcedilla nacute rcedilla scaron tbar zcaron section germandbls eng Amacron Aacute Acircumflex Atilde Adieresis Aring AE Iogonek Ccaron Eacute Eogonek Edieresis Edotaccent Iacute Icircumflex Idieresis Dbar Ncedilla Omacron Oacute Ocircumflex Otilde Odieresis Utilde Oslash Uogonek Uacute Ucircumflex Udieresis Yacute Thorn Umacron amacron aacute acircumflex atilde adieresis aring ae iogonek ccaron eacute eogonek edieresis edotaccent iacute icircumflex idieresis eth ncedilla omacron oacute ocircumflex otilde odieresis utilde oslash uogonek uacute ucircumflex udieresis yacute thorn umacron ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso13.edf����������������������������������������������������������������������0000644�0000000�0000000�00000007205�14233473143�012556� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-13 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-13 # This text is reproduced by a courtesy of Roman Czyborra # http://czyborra.com/charsets/iso8859.html Documentation Latin7 (ISO-8859-13) is going to cover the Baltic Rim and re-establish the Latvian (lv) support lost in Latin6 and may introduce the local quotation marks. Support is provided thanks to Ogonkify. EndDocumentation Default: Courier-Ogonki # Ogonkify is used for a better support Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki Substitute: Times-Roman Times-Roman-Ogonki Substitute: Times-Bold Times-Bold-Ogonki Substitute: Times-Italic Times-Italic-Ogonki Substitute: Times-BoldItalic Times-BoldItalic-Ogonki Substitute: Helvetica Helvetica-Ogonki Substitute: Helvetica-Bold Helvetica-Bold-Ogonki Substitute: Helvetica-Oblique Helvetica-Oblique-Ogonki Substitute: Helvetica-BoldOblique Helvetica-BoldOblique-Ogonki Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space quotedblright cent sterling currency quotedblbase brokenbar section Oslash copyright Rcedilla guillemotleft logicalnot hyphen registered AE degree plusminus twosuperior threesuperior quotedblleft mu paragraph bullet oslash onesuperior rcedilla guillemotright onequarter onehalf threequarters ae Aogonek Iogonek Amacron Cacute Adieresis Aring Eogonek Emacron Ccaron Eacute Zacute Edotaccent Gcedilla Kcedilla Imacron Lcedilla Scaron Nacute Ncedilla Oacute Omacron Otilde Odieresis multiply Uogonek Lslash Sacute Umacron Udieresis Zdotaccent Zcaron germandbls aogonek iogonek amacron cacute adieresis aring eogonek emacron ccaron eacute zacute edotaccent gcedilla kcedilla imacron lcedilla scaron nacute ncedilla oacute omacron otilde odieresis divide uogonek lslash sacute umacron udieresis zdotaccent zcaron quoteright �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso15.edf����������������������������������������������������������������������0000644�0000000�0000000�00000007157�14233473143�012566� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-15 encoding # Copyright (c) 1998-99 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-15 # This text is reproduced by a courtesy of Roman Czyborra Documentation The new Latin9 nicknamed Latin0 aims to update Latin1 by replacing some less needed symbols (some fractions and accents) with forgotten French and Finnish letters and placing the U+20AC Euro sign in the cell of the former international currency sign. Support of the Euro symbol is provided thanks to Ogonkify. EndDocumentation Default: Courier-Ogonki # Ogonkify is used for a better support Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki Substitute: Times-Roman Times-Roman-Ogonki Substitute: Times-Bold Times-Bold-Ogonki Substitute: Times-Italic Times-Italic-Ogonki Substitute: Times-BoldItalic Times-BoldItalic-Ogonki Substitute: Helvetica Helvetica-Ogonki Substitute: Helvetica-Bold Helvetica-Bold-Ogonki Substitute: Helvetica-Oblique Helvetica-Oblique-Ogonki Substitute: Helvetica-BoldOblique Helvetica-BoldOblique-Ogonki Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclamdown cent sterling Euro yen Scaron section scaron copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior Zcaron mu paragraph bullet zcaron onesuperior ordmasculine guillemotright OE oe Ydieresis questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso2.edf�����������������������������������������������������������������������0000644�0000000�0000000�00000007300�14251171546�012472� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-2 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-2 # This text is reproduced by a courtesy of Alis Technologies inc. # http://babel.alis.com:8080/codage/iso8859/jeuxiso.en.htm Documentation The Latin 2 character set supports the Slavic languages of Central Europe which use the Latin alphabet. The ISO-8859-2 set is used for the following languages: Czech, Croat, German, Hungarian, Polish, Romanian, Slovak and Slovenian. Support is provided thanks to Ogonkify. EndDocumentation Default: Courier-Ogonki # Ogonkify is used for a better support Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki Substitute: Times-Roman Times-Roman-Ogonki Substitute: Times-Bold Times-Bold-Ogonki Substitute: Times-Italic Times-Italic-Ogonki Substitute: Times-BoldItalic Times-BoldItalic-Ogonki Substitute: Helvetica Helvetica-Ogonki Substitute: Helvetica-Bold Helvetica-Bold-Ogonki Substitute: Helvetica-Oblique Helvetica-Oblique-Ogonki Substitute: Helvetica-BoldOblique Helvetica-BoldOblique-Ogonki Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space Aogonek breve Lslash currency Lcaron Sacute section dieresis Scaron Scedilla Tcaron Zacute hyphen Zcaron Zdotaccent degree aogonek ogonek lslash acute lcaron sacute caron cedilla scaron scedilla tcaron zacute hungarumlaut zcaron zdotaccent Racute Aacute Acircumflex Abreve Adieresis Lacute Cacute Ccedilla Ccaron Eacute Eogonek Edieresis Ecaron Iacute Icircumflex Dcaron Dbar Nacute Ncaron Oacute Ocircumflex Ohungarumlaut Odieresis multiply Rcaron Uring Uacute Uhungarumlaut Udieresis Yacute Tcedilla germandbls racute aacute acircumflex abreve adieresis lacute cacute ccedilla ccaron eacute eogonek edieresis ecaron iacute icircumflex dcaron dbar nacute ncaron oacute ocircumflex ohungarumlaut odieresis divide rcaron uring uacute uhungarumlaut udieresis yacute tcedilla dotaccent ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso3.edf�����������������������������������������������������������������������0000644�0000000�0000000�00000007157�14233473143�012503� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-3 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-3 # This text is reproduced by a courtesy of Alis Technologies inc. # http://babel.alis.com:8080/codage/iso8859/jeuxiso.en.htm Documentation This character set is used for Esperanto, Galician, Maltese and Turkish. Support is provided thanks to Ogonkify. EndDocumentation Default: Courier-Ogonki # Ogonkify is used for a better support Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki Substitute: Times-Roman Times-Roman-Ogonki Substitute: Times-Bold Times-Bold-Ogonki Substitute: Times-Italic Times-Italic-Ogonki Substitute: Times-BoldItalic Times-BoldItalic-Ogonki Substitute: Helvetica Helvetica-Ogonki Substitute: Helvetica-Bold Helvetica-Bold-Ogonki Substitute: Helvetica-Oblique Helvetica-Oblique-Ogonki Substitute: Helvetica-BoldOblique Helvetica-BoldOblique-Ogonki Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space Hstroke breve sterling currency yen Hcircumflex section dieresis Idotaccent Scedilla Gbreve Jcircumflex hyphen registered Zdotaccent degree hstroke twosuperior threesuperior acute mu hcircumflex bullet cedilla dotlessi scedilla gbreve jcircumflex onehalf threequarters zdotaccent Agrave Aacute Acircumflex Atilde Adieresis Cdotaccent Ccircumflex Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Gdotaccent Odieresis multiply Gcircumflex Ugrave Uacute Ucircumflex Udieresis Ubreve Scircumflex germandbls agrave aacute acircumflex atilde adieresis cdotaccent ccircumflex ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex gdotaccent odieresis divide gcircumflex ugrave uacute ucircumflex udieresis ubreve scircumflex dotaccent �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso4.edf�����������������������������������������������������������������������0000644�0000000�0000000�00000007133�14233473143�012476� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-4 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-4 # This text is reproduced by a courtesy of Alis Technologies inc. # http://babel.alis.com:8080/codage/iso8859/jeuxiso.en.htm Documentation Some letters were added to the ISO-8859-4 to support languages such as Estonian, Latvian and Lithuanian. It is an incomplete precursor of the Latin 6 set. Support is provided thanks to Ogonkify. EndDocumentation Default: Courier-Ogonki # Ogonkify is used for a better support Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki Substitute: Times-Roman Times-Roman-Ogonki Substitute: Times-Bold Times-Bold-Ogonki Substitute: Times-Italic Times-Italic-Ogonki Substitute: Times-BoldItalic Times-BoldItalic-Ogonki Substitute: Helvetica Helvetica-Ogonki Substitute: Helvetica-Bold Helvetica-Bold-Ogonki Substitute: Helvetica-Oblique Helvetica-Oblique-Ogonki Substitute: Helvetica-BoldOblique Helvetica-BoldOblique-Ogonki Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space Aogonek kra Rcedilla currency Itilde Lcedilla section dieresis Scaron Emacron Gcedilla Tbar hyphen Zcaron macron degree aogonek ogonek rcedilla acute itilde lcedilla caron cedilla scaron emacron gcedilla tbar Eng zcaron eng Amacron Aacute Acircumflex Atilde Adieresis Aring AE Iogonek Ccaron Eacute Eogonek Edieresis Edotaccent Iacute Icircumflex Imacron Eth Ncedilla Omacron Kcedilla Ocircumflex Otilde Odieresis multiply Oslash Uogonek Uacute Ucircumflex Udieresis Utilde Umacron germandbls amacron aacute acircumflex atilde adieresis aring ae iogonek ccaron eacute eogonek edieresis edotaccent iacute icircumflex imacron dbar ncedilla omacron kcedilla ocircumflex otilde odieresis divide oslash uogonek uacute ucircumflex udieresis utilde umacron dotaccent �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso5.edf�����������������������������������������������������������������������0000644�0000000�0000000�00000010401�14233473143�012467� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-5 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-5 # This text is reproduced by a courtesy of Alis Technologies inc. # http://babel.alis.com:8080/codage/iso8859/jeuxiso.en.htm Documentation The ISO-8859-5 set is used for various forms of the Cyrillic alphabet. It supports Bulgarian, Byelorussian, Macedonian, Serbian and Ukrainian. The Cyrillic alphabet was created by St. Cyril in the 9th century from the upper case letters of the Greek alphabet. The more ancient Glagolithic (from the ancient Slav glagol, which means "word"), was created for certain dialects from the lower case Greek letters. These characters are still used by Dalmatian Catholics in their liturgical books. The kings of France were sworn in at Reims using a Gospel in Glagolithic characters attributed to St. Jerome. Note that Russians seem to prefer the KOI8-R character set to the ISO set for computer purposes. KOI8-R is composed using the lower half (the first 128 characters) of the corresponding American ASCII character set. EndDocumentation Default: CourierISOC Substitute: Courier CourierISOC Substitute: Courier-Bold CourierISOC-Bold Substitute: Courier-BoldOblique CourierISOC-BoldOblique Substitute: Courier-Oblique CourierISOC-Oblique Substitute: Times-Roman College Substitute: Times-Bold College-Bold Substitute: Times-Italic College-Italic Substitute: Times-BoldItalic College-Italic Substitute: Helvetica Textbook Substitute: Helvetica-Bold Textbook-Bold Substitute: Helvetica-Oblique Textbook-Italic Substitute: Helvetica-BoldOblique Textbook-Italic Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright tilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 hyphen afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii61352 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109 yacute afii10110 afii10193 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso7.edf�����������������������������������������������������������������������0000644�0000000�0000000�00000005607�14233473143�012505� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-7 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-7 # This text is reproduced by a courtesy of Roman Czyborra Documentation ISO-8859-7 was formerly known as ELOT-928 or ECMA-118:1986. It is meant for modern Greek. EndDocumentation Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space quoteleft quoteright sterling .notdef .notdef brokenbar section dieresis copyright .notdef guillemotleft logicalnot hyphen .notdef endash degree plusminus twosuperior threesuperior acute dieresisacute afii9936 periodcentered afii9937 afii9938 afii9939 guillemotright afii9940 onehalf afii9941 afii9942 afii9977 afii9793 afii9794 afii9796 afii9797 afii9798 afii9801 afii9802 afii9803 afii9804 afii9805 afii9806 afii9807 afii9808 afii9809 afii9810 afii9811 afii9813 .notdef afii9814 afii9816 afii9817 afii9818 afii9819 afii9820 afii9821 afii9943 afii9944 afii9968 afii9969 afii9970 afii9971 afii9978 afii9825 afii9826 afii9828 afii9829 afii9830 afii9833 afii9834 afii9835 afii9836 afii9837 afii9838 afii9839 afii9840 afii9841 afii9842 afii9843 afii9845 afii9847 afii9846 afii9848 afii9849 afii9850 afii9851 afii9852 afii9853 afii9975 afii9976 afii9972 afii9973 afii9974 .notdef �������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/iso9.edf�����������������������������������������������������������������������0000644�0000000�0000000�00000007175�14233473143�012511� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the ISO-8859-5 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: ISO-8859-9 # This text is reproduced by a courtesy of Alis Technologies inc. # http://babel.alis.com:8080/codage/iso8859/jeuxiso.en.htm Documentation The ISO 8859-9 set, or Latin 5, replaces the rarely used Icelandic letters from Latin 1 with Turkish letters. Support is provided thanks to Ogonkify. EndDocumentation Default: Courier-Ogonki # Ogonkify is used for a better support Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki Substitute: Times-Roman Times-Roman-Ogonki Substitute: Times-Bold Times-Bold-Ogonki Substitute: Times-Italic Times-Italic-Ogonki Substitute: Times-BoldItalic Times-BoldItalic-Ogonki Substitute: Helvetica Helvetica-Ogonki Substitute: Helvetica-Bold Helvetica-Bold-Ogonki Substitute: Helvetica-Oblique Helvetica-Oblique-Ogonki Substitute: Helvetica-BoldOblique Helvetica-BoldOblique-Ogonki Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior acute mu paragraph bullet cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Gbreve Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Idotaccent Scedilla germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis gbreve ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis dotlessi scedilla ydieresis ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/koi8.edf�����������������������������������������������������������������������0000644�0000000�0000000�00000007100�14236507210�012460� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the KOI8 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # Copyright (c) 2002 Vyacheslav E. Sidin # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # $Id: koi8.edf,v 1.1.1.1.2.1 2007/12/29 01:58:14 mhatta Exp $ # Name: KOI8 Documentation KOI-8 is a subset of ISO-IR-111 that can be used in Serbia, Belarus etc. EndDocumentation Default: Courier Substitute: Courier NimbusMonCYR-Regu Substitute: Courier-Bold NimbusMonCYR-Bold Substitute: Courier-BoldOblique NimbusMonCYR-BoldObli Substitute: Courier-Oblique NimbusMonCYR-ReguObli Substitute: Times-Roman NimbusRomanCYR-Regu Substitute: Times-Bold NimbusRomanCYR-Medi Substitute: Times-Italic NimbusRomanCYR-ReguItal Substitute: Times-BoldItalic NimbusRomanCYR-MediItal Substitute: Helvetica NimbusSansCYR-Regu Substitute: Helvetica-Bold NimbusSansCYR-Bold Substitute: Helvetica-Oblique NimbusSansCYR-ReguObli Substitute: Helvetica-BoldOblique NimbusSansCYR-BoldObli Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright tilde .notdef .notdef .notdef .notdef .notdef guillmotleft guillmotright afii61352 .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclamdown cent afii10071 currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior afii10023 acute mu paragraph bullet cedilla dotlessi ordmasculine guillemotright onequarter onehalf threequarters questiondown afii10096 afii10065 afii10066 afii10088 afii10069 afii10070 afii10086 afii10068 afii10087 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10097 afii10082 afii10083 afii10084 afii10085 afii10072 afii10067 afii10094 afii10093 afii10073 afii10090 afii10095 afii10091 afii10089 afii10092 afii10048 afii10017 afii10018 afii10040 afii10021 afii10022 afii10038 afii10020 afii10039 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10049 afii10034 afii10035 afii10036 afii10037 afii10024 afii10019 afii10046 afii10045 afii10025 afii10042 afii10047 afii10043 afii10041 afii10044 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/mac.edf������������������������������������������������������������������������0000644�0000000�0000000�00000005576�14233473143�012371� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the Macintosh encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: Macintosh Documentation For the Macintosh encoding. The support is not sufficient, and a lot of characters may be missing at the end of the job (especially Greek letters). EndDocumentation Default: Courier Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright tilde .notdef Adieresis Aring Ccedilla Eacute Ntilde Odieresis Udieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave ecircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve ocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent sterling section bullet paragraph germandbls registered copyright trademark acute dieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu partialdiff Sigma product pi integral ordfeminine ordmasculine Omega ae oslash questiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft guillemotright ellipsis space Agrave Atilde Otilde OE oe endash emdash quotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis fraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered quotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis Egrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex .notdef Ograve Uacute Ucircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla hungarumlaut ogonek caron ����������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/ms-cp1250.edf������������������������������������������������������������������0000644�0000000�0000000�00000006623�14233473143�013152� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the CP1250 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Name: MS-CP1250 Documentation Microsoft's CP-1250 encoding (aka CeP). EndDocumentation Default: Courier-Ogonki # Ogonkify is used for a better support Substitute: Courier Courier-Ogonki Substitute: Courier-Bold Courier-Bold-Ogonki Substitute: Courier-BoldOblique Courier-BoldOblique-Ogonki Substitute: Courier-Oblique Courier-Oblique-Ogonki Substitute: Times-Roman Times-Roman-Ogonki Substitute: Times-Bold Times-Bold-Ogonki Substitute: Times-Italic Times-Italic-Ogonki Substitute: Times-BoldItalic Times-BoldItalic-Ogonki Substitute: Helvetica Helvetica-Ogonki Substitute: Helvetica-Bold Helvetica-Bold-Ogonki Substitute: Helvetica-Oblique Helvetica-Oblique-Ogonki Substitute: Helvetica-BoldOblique Helvetica-BoldOblique-Ogonki Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright tilde .notdef .notdef .notdef quotesinglbase .notdef quotedblbase ellipsis dagger daggerdbl .notdef perthousand Scaron guilsinglleft Sacute Tcaron Zcaron Zacute .notdef quoteleft quoteright quotedblleft quotedblright bullet endash emdash .notdef trademark scaron guilsinglright sacute tcaron zcaron zacute space caron breve Lslash currency Aogonek brokenbar section dieresis copyright Scedilla guillemotleft logicalnot hyphen registered Zdotaccent degree plusminus ogonek lslash acute mu paragraph bullet cedilla aogonek scedilla guillemotright Ydieresis hungarumlaut Lcaron zdotaccent Racute Aacute Acircumflex Abreve Adieresis Lacute Cacute Ccedilla Ccaron Eacute Eogonek Edieresis Ecaron Iacute Icircumflex Dcaron Eth Nacute Ncaron Oacute Ocircumflex Ohungarumlaut Odieresis multiply Rcaron Uring Uacute Uhungarumlaut Udieresis Yacute Tcedilla germandbls racute aacute acircumflex abreve adieresis lacute cacute ccedilla ccaron eacute eogonek edieresis ecaron iacute icircumflex dcaron dbar nacute ncaron oacute ocircumflex ohungarumlaut odieresis divide rcaron uring uacute uhungarumlaut udieresis yacute tcedilla dotaccent �������������������������������������������������������������������������������������������������������������a2ps-4.15.5/encoding/ms-cp1251.edf������������������������������������������������������������������0000644�0000000�0000000�00000007306�14233473143�013152� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Description of the Microsoft CP1251 encoding # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # $Id: ms-cp1251.edf,v 1.1.2.2 2007/12/29 01:58:14 mhatta Exp $ # Name: MS-CP1251 Documentation Microsoft CP1251 is encoding used in Microsoft Windows for Cyrillic languages EndDocumentation # Regular fonts don't support Cyrillic glyphs Default: Courier Substitute: Courier NimbusMonCYR-Regu Substitute: Courier-Bold NimbusMonCYR-Bold Substitute: Courier-BoldOblique NimbusMonCYR-BoldObli Substitute: Courier-Oblique NimbusMonCYR-ReguObli Substitute: Times-Roman NimbusRomanCYR-Regu Substitute: Times-Bold NimbusRomanCYR-Medi Substitute: Times-Italic NimbusRomanCYR-ReguItal Substitute: Times-BoldItalic NimbusRomanCYR-MediItal Substitute: Helvetica NimbusSansCYR-Regu Substitute: Helvetica-Bold NimbusSansCYR-Bold Substitute: Helvetica-Oblique NimbusSansCYR-ReguObli Substitute: Helvetica-BoldOblique NimbusSansCYR-BoldObli Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde .notdef afii10051 afii10052 quotesinglbase afii10100 quotedblbase ellipsis dagger daggerdbl .notdef perthousand afii10058 guilsinglleft afii10059 afii10061 afii10060 afii10145 afii10099 quoteleft quoteright quotedblleft quotedblright bullet endash emdash .notdef trademark afii10106 guilsinglright afii10107 afii10109 afii10108 afii10193 space afii10062 afii10110 afii10057 currency afii10050 brokenbar section afii10023 copyright afii10053 guillemotleft logicalnot hyphen registered afii10056 degree plusminus afii10055 afii10103 afii10098 mu paragraph periodcentered afii10071 afii61352 afii10101 guillemotright afii10105 afii10054 afii10102 afii10104 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/etc/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132364�010203� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/etc/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000004423�14273213734�012162� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # ogonkifydir=$(datadir)/ogonkify libpath = $(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir) pkgdata_DATA = README dsysconf = $(DESTDIR)$(sysconfdir) EXTRA_DIST = README.in all-local: a2ps.cfg install-data-local: a2ps.cfg $(mkinstalldirs) $(dsysconf) @if test -r $(dsysconf)/$(PACKAGE).cfg; then \ if cmp $(dsysconf)/$(PACKAGE).cfg $(top_builddir)/etc/$(PACKAGE).cfg 2> /dev/null ; then \ echo "$(dsysconf)/$(PACKAGE).cfg has not changed"; \ else \ echo; \ echo "*******************"; \ echo "* Warning: $(dsysconf)/$(PACKAGE).cfg exist."; \ echo "* It has been moved as $(dsysconf)/$(PACKAGE).cfg.old"; \ echo "*******************"; \ echo; \ mv $(dsysconf)/$(PACKAGE).cfg $(dsysconf)/$(PACKAGE).cfg.old; \ $(INSTALL_DATA) $(top_builddir)/etc/$(PACKAGE).cfg $(dsysconf)/$(PACKAGE).cfg ; \ fi \ else \ $(INSTALL_DATA) $(top_builddir)/etc/$(PACKAGE).cfg $(dsysconf)/$(PACKAGE).cfg; \ fi @test -r $(dsysconf)/a2ps-site.cfg || \ $(INSTALL_DATA) $(top_builddir)/etc/a2ps-site.cfg $(dsysconf)/a2ps-site.cfg ; uninstall-local: rm -f $(dsysconf)/$(PACKAGE).cfg $(dsysconf)/$(PACKAGE)-site.cfg DISTCLEANFILES = a2ps.cfg README # Building the correct a2ps.cfg a2ps.cfg: a2ps_cfg Makefile sed "s!@libpath@!$(libpath)!" a2ps_cfg > a2ps.cfg # Building a timestamp to know the version. README: README.in Makefile sed "s!@date@!`date`!g;s!@version@!$(VERSION)!g" \ $(srcdir)/README.in > README ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/etc/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000166644�14445132054�012205� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = etc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = a2ps_cfg a2ps-site.cfg CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgdatadir)" DATA = $(pkgdata_DATA) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/a2ps-site.cfg.in \ $(srcdir)/a2ps_cfg.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ogonkifydir = $(datadir)/ogonkify libpath = $(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir) pkgdata_DATA = README dsysconf = $(DESTDIR)$(sysconfdir) EXTRA_DIST = README.in DISTCLEANFILES = a2ps.cfg README all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign etc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign etc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): a2ps_cfg: $(top_builddir)/config.status $(srcdir)/a2ps_cfg.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ a2ps-site.cfg: $(top_builddir)/config.status $(srcdir)/a2ps-site.cfg.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) all-local installdirs: for dir in "$(DESTDIR)$(pkgdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-pkgdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local uninstall-pkgdataDATA .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-pkgdataDATA install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs loc-am \ loc-local maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-local \ uninstall-pkgdataDATA .PRECIOUS: Makefile all-local: a2ps.cfg install-data-local: a2ps.cfg $(mkinstalldirs) $(dsysconf) @if test -r $(dsysconf)/$(PACKAGE).cfg; then \ if cmp $(dsysconf)/$(PACKAGE).cfg $(top_builddir)/etc/$(PACKAGE).cfg 2> /dev/null ; then \ echo "$(dsysconf)/$(PACKAGE).cfg has not changed"; \ else \ echo; \ echo "*******************"; \ echo "* Warning: $(dsysconf)/$(PACKAGE).cfg exist."; \ echo "* It has been moved as $(dsysconf)/$(PACKAGE).cfg.old"; \ echo "*******************"; \ echo; \ mv $(dsysconf)/$(PACKAGE).cfg $(dsysconf)/$(PACKAGE).cfg.old; \ $(INSTALL_DATA) $(top_builddir)/etc/$(PACKAGE).cfg $(dsysconf)/$(PACKAGE).cfg ; \ fi \ else \ $(INSTALL_DATA) $(top_builddir)/etc/$(PACKAGE).cfg $(dsysconf)/$(PACKAGE).cfg; \ fi @test -r $(dsysconf)/a2ps-site.cfg || \ $(INSTALL_DATA) $(top_builddir)/etc/a2ps-site.cfg $(dsysconf)/a2ps-site.cfg ; uninstall-local: rm -f $(dsysconf)/$(PACKAGE).cfg $(dsysconf)/$(PACKAGE)-site.cfg # Building the correct a2ps.cfg a2ps.cfg: a2ps_cfg Makefile sed "s!@libpath@!$(libpath)!" a2ps_cfg > a2ps.cfg # Building a timestamp to know the version. README: README.in Makefile sed "s!@date@!`date`!g;s!@version@!$(VERSION)!g" \ $(srcdir)/README.in > README # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ��������������������������������������������������������������������������������������������a2ps-4.15.5/etc/README������������������������������������������������������������������������������0000644�0000000�0000000�00000002007�14445132154�010777� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The last installation in this directory occurred the Thu Jun 22 21:51:56 BST 2023 for GNU a2ps version 4.15.5. The content of this directory (unless reorganized by the local installer) is: afm/ ---- Adobe Font Metrics files, which give metric information on the characters of a font. It also contains a shell script, `makefontmap.sh' which should be run when you install new fonts, or set the library path so that a2ps sees new fonts. encoding/ --------- Encoding Description Files, which give mandatory information to process various charsets. fonts/ ------ Extra fonts. For instance for non Latin charsets, or to replace fonts that lacks some characters in some charsets. ogonkify/ --------- Set of files needed by ogonkify. There is actually nothing a2ps uses itself here. ppd/ --------- Printer Description Files, which give information on how to ask your printer special features, the fonts they know etc. ps/ --- The PostScript routines, headers etc. sheets/ ------- The various style sheets for pretty printing. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/etc/README.in���������������������������������������������������������������������������0000644�0000000�0000000�00000001764�14233473143�011416� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The last installation in this directory occurred the @date@ for GNU a2ps version @version@. The content of this directory (unless reorganized by the local installer) is: afm/ ---- Adobe Font Metrics files, which give metric information on the characters of a font. It also contains a shell script, `makefontmap.sh' which should be run when you install new fonts, or set the library path so that a2ps sees new fonts. encoding/ --------- Encoding Description Files, which give mandatory information to process various charsets. fonts/ ------ Extra fonts. For instance for non Latin charsets, or to replace fonts that lacks some characters in some charsets. ogonkify/ --------- Set of files needed by ogonkify. There is actually nothing a2ps uses itself here. ppd/ --------- Printer Description Files, which give information on how to ask your printer special features, the fonts they know etc. ps/ --- The PostScript routines, headers etc. sheets/ ------- The various style sheets for pretty printing. ������������a2ps-4.15.5/etc/a2ps-site.cfg.in��������������������������������������������������������������������0000644�0000000�0000000�00000004712�14365456620�013031� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# a2ps-site.cfg -*- Makefile -*- # # This file is included from a2ps.cfg # # In this file should be defined your specific values you want to keep # for other installation (future) installation of a2ps. ################################################################# # 1) System dependent parameters # ################################################################# # Default encoding Options: --encoding=@ENCODING@ ################################################################# # 2) Your printers # ################################################################# # By default, produce Level 1 PostScript. # Currently it only means to consider only the 13 level 1 standard # fonts, and not the 35 standard level 2 fonts. DefaultPPD: level1 # NOTE: # Because sending a file to a printer is system dependent and because # this file is meant to be system independent, there are two variables # defined in a2ps.cfg you should use here. # - #{lp.default} # Its value is typically `lp' or `lpr'. # - #{lp} # Its value is typically `lp -d' or `lpr -P'. Immediately after # #{lp} there should be the name of the printer. # ### DefaultPrinter # DefaultPrinter is the printer which is called upon `a2ps -d'. DefaultPrinter: | #{lp.default} ### UnknownPrinter # The `UnknownPrinter' is the command used when the user specified # the name of the printer (a2ps -P <printer-name>), but <printer-name> # is not specified below as a special case. # <printer-name> is available here as `#o'. UnknownPrinter: | #{lp} #o ### Some special printers. # This section is to fill only if you want to tune your system. # The entry `UnknownPrinter' is enough to handle any case. # For instance, I want to specify that arlette is a Level 2 PostScript # printer. I specif no command, so the `UnknownPrinter' command will # be used. #Printer: arlette level2 # dominique is a level 2 PostScript _without_ Duplex support. # Here I *want* a special command, not that of the UnknownPrinter. # We use the shell script lp2 to simulate Duplex. #Printer: dominique level2 | #?d#lp2|## #{lp} dominique # This is just to show that any command can be used. Instead of # printing, the output is piped in `wc'. #Printer: wc | wc -l # You can also save in a file if you wish. #Printer: ps2pdf >output.pdf # This example uses the fact that `$N' expands in the input file name, # so a2ps foo -P gzip will save the output in foo.ps.gz. #Printer: gzip | gzip -c > $N.#..gz ������������������������������������������������������a2ps-4.15.5/etc/a2ps_cfg.in�������������������������������������������������������������������������0000644�0000000�0000000�00000032243�14445130211�012130� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# a2ps.cfg -*- Makefile -*- # # System configuration file for a2ps. # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-2000 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # # This file defines everything a2ps needs to know about # -- your system (access to the printers) # It is strongly suggested that you check these parameters # are adapted to your system. # -- customizable features # # It is related to the whole system, i.e., it is not the file # the users should modify themselves for their own preferences. # ~/.a2ps/a2psrc is the user's own configuration file, which # is read after this file. # ################################################################# # 1) Definition of some media # # (Must be defined before --medium) # ################################################################# # Medium: name, width height [llx lly urx ury] Medium: Quarto 610 780 ################################################################# # 2) Path to the a2ps resource # ################################################################# # Default path where a2ps dropped its library files. LibraryPath: @libpath@ # It may be useful to extend it so that a2ps can see some # TeX or X11 resources: it likes AFM files and PF[AB] files. #AppendLibraryPath: foo ################################################################# # 3) Default settings # ################################################################# # Two virtual pages per sheet Options: -2 # Set automatic pretty-printing on (set to "plain" for off) Options: --pretty-print # By default, single sided printing. Options: -s1 # Name of the document is the list of files # (Don't put too many of them: it breaks some PS interpreters) Options: --title='#10!f|$n|, |' # Header is the client of the job Options: --header=%a # Title of the page is the (short) name of the current file # or the first tagged text if there is Options: --center-title=#?1|$t1|$n| # Left part of the title is the mod. date of the file # or empty is there is a tag2 Options: --left-title='#?2||$e $T|' # Right part of the title is the page number # or tag2 if there is Options: --right-title='#?2|$t2|$Q|' # If in landscape, print date on the left hand side # If portrait, then print date on recto, and sheet # on verso Options: --left-footer=#?l!%E!#?v|%E|%s./%s#|! # Center footer is the list of files on this sheet if landscape Options: --footer='#?l|#!s-$f-, -||' # If in landscape, print date on the right hand side # If portrait, then print date on verso, and sheet # on recto Options: --right-footer=#?l!%s./%s#!#?v|%s./%s#|%E|! # We want the %%Page comments to be instructive. # There are two predefined choices: #{pl.short} and #{pl.long} PageLabelFormat: #{pl.short} # Report the number of lines which were wrapped. Variable: cfg.wrapped 1 ############################################################### # 4) Preconfigured Variables # ############################################################### # # Some variables for the delegations # # Passes the options to psnup. A problem with psnup is that even if # no service is requested, the PostScript is altered. There are such # problems with dvips. A symptom is that the figure are spread on # several pages. To avoid that, with ``-1'', we use cat instead of # psnup -1. # The files (in and out) are to be given if not stdin and stdout. Variable: del.psnup \ #?o!cat!@psnup@ -#v #?V||-q| #?j|-d|| #?r||-c| -w#w -h#h! # Passes to psselect for PS page selection. Variable: del.psselect \ #?p!@psselect@ #?V||-q| -p#p!cat! # Passes to psselect, and then psnup Variable: del.psselnup #{del.psselect} | #{del.psnup} # Calls to dvips. The sequence waits for the file name, and # produces on stdout. Variable: del.dvips @dvips@ #?p|-pp#p|| #?V||-q| -T#wpt,#hpt -f # Calls to texi2dvi. Variable: del.texi2dvi texi2dvi -q -c #?V|--verbose|--quiet| 1>&2 # a2ps will be called upon decompressed files. Variable: del.a2ps\ a2ps #?p|-a#p|| #?V|-v2|-q| -#v -o- --stdin=$N # convert, part of ImageMagick, is used for many image formats # If you want the name of the file to be printed along with the picture, # add `-label $f' Variable: del.imagick @convert@ -page #wx#h # # Variables for special printers. # # Either GV (prefered) or Ghostview will be used as the "display" printer # We give -dNOPLATFONTS so that real fonts are used # (Strange results appear with Ogonkify's fonts for instance). @COM_ghostview@Variable: ghostview @ghostview@ --arguments=-dNOPLATFONTS @COM_gv@Variable: ghostview @gv@ -antialias --arguments=-dNOPLATFONTS # Used for the `pdf' printer. # Use as `#{ps2pdf} INPUT OUTPUT'. # @COM_ps2pdf@Variable: ps2pdf gs -g"#wx#h" -r72 -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$N.pdf -c save pop -f #f0 @COM_ps2pdf@Variable: ps2pdf ps2pdf -g"#wx#h" -r72 # # Some macro for ToC or page label # # Useful for the page label format: # pl.short: just the page intervals Variable: pl.short #!s|$p-|,| # pl.long: file name and page intervals Variable: pl.long #!s|$n $p-|,| # The default layout for Table of Contents Variable: toc \\Keyword{Table of Contents}\n\ #-1!f\ |$2# \\keyword{$-.20n} sheets $3s< to $3s> ($2s#) pages \ $3p<-$3p> $4l# lines\n|| ################################################################# # 5) Preconfigured delegations # ################################################################# # # Delegations are ways to hand off the processing of some # files to other filters. # # When delegating, interesting meta sequences are # $f -- current filename, i.e. the one to delegate. # Note that $f expands exactly to the file, which means # that in most cases you need '$f' (with the two quotes) # to avoid both (i) problems with space in names, and # (ii) other shell active characters, such as $. # Yeah, I know, we need something more elaborated in case # the file has quotes ' in it :-( # #f0 to #f9 -- temporary filename you can use. # rm is done by a2ps itself. No need to quote. # ########## Compressed files # A compressed file should be decompressed and processed by a2ps # A consequence is that the decompressed file may be delegated. @COM_gzip@Delegation: gzip-a2ps gzip:ps @gzip@ -cd '$f' | #{del.a2ps} @COM_gzip@Delegation: gzip-a2ps compress:ps @gzip@ -cd '$f' | #{del.a2ps} @COM_bzip@Delegation: bzip-a2ps bzip:ps @bzip@ -cd '$f' | #{del.a2ps} @COM_bzip2@Delegation: bzip2-a2ps bzip2:ps @bzip2@ -cd '$f' | #{del.a2ps} ########## DVI files # Pass DVI files to dvips. # * A problem with dvips is that even on failure it dumps its # prologue, hence it looks like a success (output is produced). To # avoid that, we use an auxiliary files and conditional call to psnup # instead of piping. # * It tries to figure if the doc is landscape (use of seminar for # instance) by looking for `landscape' in the first strings of # the DVI file. @COM_PSUTILS@@COM_dvips@Delegation: dvips dvi:ps\ @COM_PSUTILS@@COM_dvips@ if strings '$f' | sed 10q | grep -F landscape > /dev/null 2>&1; then \ @COM_PSUTILS@@COM_dvips@ #{del.dvips} -T#hpt,#wpt '$f' -o #f0 && #?o|cat|#{del.psnup} -r| #f0; \ @COM_PSUTILS@@COM_dvips@ else \ @COM_PSUTILS@@COM_dvips@ #{del.dvips} '$f' -o #f0 && #{del.psnup} #f0; \ @COM_PSUTILS@@COM_dvips@ fi ########## HTML files # Delegated to html2ps @COM_PSUTILS@@COM_html2ps@Delegation: html2ps html:ps \ @COM_PSUTILS@@COM_html2ps@ html2ps -D -o #f0 '$f' && #{del.psselect} #f0 | #{del.psnup} ########## PDF files # Delegated to pdf2ps, GS 5.10 @COM_PSUTILS@@COM_pdf2ps@Delegation: pdf2ps pdf:ps \ @COM_PSUTILS@@COM_pdf2ps@ @pdf2ps@ '$f' #f0 && #{del.psselect} #f0 | #{del.psnup} ########## PostScript files # Pass the PostScript files to psnup and psselect @COM_PSUTILS@Delegation: PsNup ps:ps fixps #?V||-q| '$f' | #{del.psselnup} ########## ROFF files # Pass the roff files to groff. Ask grog how groff should be called. # Use fixps to ensure there is a %%BeginSetup/%%EndSetup section. @COM_PSUTILS@@COM_grog@Delegation: Groff roff:ps \ @COM_PSUTILS@@COM_grog@ eval `grog -Tps '$f'` | fixps #?V!!-q! | #{del.psselnup} ########## TeX files, supposed to be LaTeX files in fact # Use texi2dvi for TeX file @COM_PSUTILS@@COM_LATEX@Delegation: texi2dvi tex:ps \ @COM_PSUTILS@@COM_LATEX@ #{del.texi2dvi} -l latex -o #f0 '$f' && #{del.dvips} -f #f0 | #{del.psnup} ########## Texinfo files # Use texi2dvi for Texinfo file # In a near future, we might no longer have to specify --expand, but # currently, it is safer. @COM_PSUTILS@@COM_TEXI@Delegation: texi2dvi texinfo:ps \ @COM_PSUTILS@@COM_TEXI@ #{del.texi2dvi} -e -o #f0 -l texinfo '$f' && #{del.dvips} -f #f0 | #{del.psnup} ######################## Using ImageMagick for images ########## GIF files @COM_PSUTILS@@COM_convert@Delegation: ImageMagick gif:ps\ @COM_PSUTILS@@COM_convert@ #{del.imagick} 'gif:$f' ps:- | #{del.psselnup} ########## JPEG files @COM_PSUTILS@@COM_convert@Delegation: ImageMagick jpeg:ps\ @COM_PSUTILS@@COM_convert@ #{del.imagick} 'jpeg:$f' ps:- | #{del.psselnup} ########## PNG files @COM_PSUTILS@@COM_convert@Delegation: ImageMagick png:ps\ @COM_PSUTILS@@COM_convert@ #{del.imagick} 'png:$f' ps:- | #{del.psselnup} ########## TIFF files @COM_PSUTILS@@COM_convert@Delegation: ImageMagick tiff:ps\ @COM_PSUTILS@@COM_convert@ #{del.imagick} 'tiff:$f' ps:- | #{del.psselnup} ########## XBM files @COM_PSUTILS@@COM_convert@Delegation: ImageMagick xbm:ps\ @COM_PSUTILS@@COM_convert@ #{del.imagick} 'xbm:$f' ps:- | #{del.psselnup} ########## XPM files @COM_PSUTILS@@COM_convert@Delegation: ImageMagick xpm:ps\ @COM_PSUTILS@@COM_convert@ #{del.imagick} 'xpm:$f' ps:- | #{del.psselnup} ################################################################# # 6) Some interesting UserOptions/Printers # ################################################################# # Print like an old fashioned ASCII printer UserOption: lp -1m -Eplain -B --borders=no # Print mails. Strip some headers. UserOption: mail -gEmail --strip=1 UserOption: longmail -gEmail --strip=1 -2R # Printing a booklet # To print a booklet, we must be sure to output Simplex, and 1 up. # Install the lp hook for booklets. UserOption: book -1Dlp.hook=#{lp.hook.book} -s1 # This variable defines a hook for `lp'. The output is piped into # psbook in order to print a booklet. Variable: lp.hook.book \ #?o! psbook #?V,,-q, | psnup -2 #?V,,-q, | \ ! echo "Cannot be used with more than two pages per sheet." >&2 ; exit 1! # Some special setpagedevice requests UserOption: manual -SManualFeed:true # Force a2ps to issue a Simplex request. UserOption: s1 -SDuplex:false UserOption: simplex -SDuplex:false # Nice display, i.e., use colors, and one virtual per page. UserOption: display -1 --prolog=color -Pdisplay # It is better not to pipe in ghostview @COM_DISPLAY@Printer: display | cat > #f0 && #{ghostview} #f0 # Save into a file named after the input files. # E.g. a2ps src/foo.c => foo.ps Printer: file > $N.#. # Dry run. Helpful to know the page usage etc. Printer: void > /dev/null # Produce PDF. # It is better not to output in two up, or even worse: in landscape. @COM_PS2PDF@Printer: pdf | cat >#f0 && #{ps2pdf} #f0 $N.pdf UserOption: pdf -1 -P pdf --prologue=color # We define the DefaultPrinter and the Unknown Printer just in case # a2ps-site.cfg fails to define them. Under normal circumstances # these entries *will* be overridden. # First, the default printer (option -d, no argument) DefaultPrinter: | #{lp.default} # Second, a printer unknown to a2ps (option -P, argument is #o) UnknownPrinter: | #{lp} #o ################################################################# # 7) Your local settings # ################################################################# # How to call file(1), and if possible, follow the links FileCommand: @FILE_LINK@ # Define a variable to call lp/lpr on the default printer, preceded # with a hook to post-process PostScript (to call psbook for instance). # Something like `#{lp.hook} lp #{lp.options}' # or `#{lp.hook} lpr #{lp.options}'. Variable: lp.default #{lp.hook} a2ps-lpr-wrapper #{lp.options} # The same, but when a printer is specified. # Something like `#{lp.hook} lp #{lp.options} -d' # or `#{lp.hook} lpr #{lp.options} -P'. Variable: lp #{lp.hook} a2ps-lpr-wrapper #{lp.options} -d # To avoid that the next installation of a2ps destroys your # definitions, local customization would be better done in # a2ps-site.cfg. Include: a2ps-site.cfg �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/fonts/����������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132372�010560� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/fonts/Makefile.am�����������������������������������������������������������������������0000644�0000000�0000000�00000002111�14273213734�012530� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # As a new `feature' :), a2ps uses now even more directories fontsdir = $(pkgdatadir)/fonts pcg_fonts = pcfont.pfa ## These fonts are *not* GPL. ##cyrillic_fonts = \ ##crr35__i.pfb crr36__i.pfb crr55__i.pfb crr56__i.pfb \ ##colle8.pfb colle9.pfb colle10.pfb \ ##textb18.pfb textb19.pfb textb20.pfb fonts_DATA = $(pcg_fonts) EXTRA_DIST = $(fonts_DATA) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/fonts/Makefile.in�����������������������������������������������������������������������0000644�0000000�0000000�00000163024�14445132054�012550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = fonts ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(fontsdir)" DATA = $(fonts_DATA) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # As a new `feature' :), a2ps uses now even more directories fontsdir = $(pkgdatadir)/fonts pcg_fonts = pcfont.pfa fonts_DATA = $(pcg_fonts) EXTRA_DIST = $(fonts_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign fonts/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign fonts/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fontsDATA: $(fonts_DATA) @$(NORMAL_INSTALL) @list='$(fonts_DATA)'; test -n "$(fontsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(fontsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(fontsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(fontsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(fontsdir)" || exit $$?; \ done uninstall-fontsDATA: @$(NORMAL_UNINSTALL) @list='$(fonts_DATA)'; test -n "$(fontsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(fontsdir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(fontsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fontsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fontsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-fontsDATA \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs loc-am loc-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-fontsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/fonts/pcfont.pfa������������������������������������������������������������������������0000644�0000000�0000000�00000045477�14233473143�012501� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%!PS-AdobeFont-1.0 -*- PostScript -*- %%Copyright: (c) 1996 Johannes Goldynia <Johannes.Goldynia@pdts.at> % pcfont.pfa - Type 3 font providing support for line drawing PC encoding % % Copyright (c) 1996 Johannes Goldynia <Johannes.Goldynia@pdts.at> % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, but % WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; if not, write to the Free Software % Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 23 dict dup begin /FontMatrix [.001 0 0 .00112 0 0] def /FontType 3 def /FontBBox [0 -200 600 800] def /Notice (PCfont 1991) def /FullName (PCfont) def /FontName /PCfont def /isFixedPitch true def /Encoding [ /null /Wsmiley /Bsmiley /heart /diamond /club /spade /Bbullet /Wbullet /Bcircle /Wcircle /male /female /quarternote /sixteenthnote /sun /pointerright /pointerleft /Varrowboth /exclamdbl /paragraph /section /cursorblock /floor /arrowup /arrowdown /arrowright /arrowleft /smallLLsingle /arrowboth /pointerup /pointerdown /blank /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /brokenbar /braceright /asciitilde /Delta /Ccedilla /udieresis /eacute /acircumflex /adieresis /agrave /aring /ccedilla /ecircumflex /edieresis /egrave /idieresis /icircumflex /igrave /Adieresis /Aring /Eacute /ae /AE /ocircumflex /odieresis /ograve /ucircumflex /ugrave /ydieresis /Odieresis /Udieresis /cent /sterling /yen /point /integral /aacute /iacute /oacute /uacute /ntilde /Ntilde /aunder /ounder /questiondown /smallULsingle /smallURsingle /half /quarter /exclamdown /lessdbl /greaterdbl /lightbox /mediumbox /darkbox /Vsingle /VsingleTleftsingle /VsingleTleftdbl /VdblTleftsingle /VdblURsingle /VsingleURdbl /VdblTleftdbl /Vdbl /VdblURdbl /VdblLRdbl /VdblLRsingle /VsingleLRdbl /VsingleURsingle /VsingleLLsingle /HsingleTupsingle /HsingleTdownsingle /VsingleTrightsingle /Hsingle /VsingleXsingle /VsingleTrightdbl /VdblTrightsingle /VdblLLdbl /VdblULdbl /HdblTupdbl /HdblTdowndbl /VdblTrightdbl /Hdbl /VdblXdbl /HdblTupsingle /HsingleTupdbl /HdblTdownsingle /HsingleTdowndbl /VdblLLsingle /VsingleLLdbl /VsingleULdbl /VdblULsingle /VdblXsingle /VsingleXdbl /VsingleLRsingle /VsingleULsingle /allblack /botblack /leftblack /rightblack /topblack /alpha /beta /Gamma /pi /Sigma /sigma /mu /tau /Phi /theta /Omega /delta /infinity /phi /element /intersection /equivalence /plusminus /greaterequal /lessequal /integraltp /integralbt /divide /approxequal /degree /bullet /dotmath /radical /eta /squared /block /blank ] def % /Encoding /_uC { 0 0 moveto /Courier findfont 1000 scalefont setfont show } def /_uS { 0 0 moveto /Symbol findfont 1000 scalefont setfont show } def /dotless_i { newpath 110 20 moveto 490 20 lineto 300 20 moveto 300 400 lineto 150 400 lineto 22 setlinewidth 1 setlinecap stroke } def /squash { 1 dict begin /cr exch def save 1 .75 scale cr _uC restore end } def /lt {lineto} def /mt {moveto} def /a {arc} def /an {arcn} def /cp {closepath} def /slw {setlinewidth} def /slc {setlinecap} def /CharacterDefs 255 dict def CharacterDefs begin /null { 0 598 mt 230 598 lt 184 460 lt 0 460 lt cp 92 0 mt 92 184 lt 230 184 lt 368 598 lt 598 598 lt 598 460 lt 377.2 460 lt 230 0 lt cp fill } def /Wsmiley { 300 300 275 0 360 a 370 230 mt 300 300 100 315 225 an 20 slw 1 slc stroke 230 370 25 0 360 a fill 370 370 25 0 360 a fill } def /Bsmiley { 300 300 275 0 360 a 352.5 247.5 mt 370 230 25 135 315 an 300 300 125 315 225 an 230 230 25 225 45 an 300 300 75 225 315 a 230 335 mt 230 370 50 270 -90 an 370 370 50 270 -90 an eofill } def /heart {(\251) _uS} def /diamond {(\250) _uS} def /club {(\247) _uS} def /spade {(\252) _uS} def /Bbullet { (\267) _uC } def /Wbullet { 0 -200 mt 600 -200 lt 600 800 lt 0 800 lt 0 -200 lt 300 300 100 225 585 a eofill } def /Bcircle { 300 300 100 225 585 a 20 slw stroke } def /Wcircle { 0 -200 mt 600 -200 lt 600 800 lt 0 800 lt 0 -200 lt 300 300 125 225 585 a 300 300 75 225 585 a eofill } def /male { newpath 300 200 200 70 -290 arcn 575 625 lineto 575 500 moveto 575 625 lineto 450 625 lineto 20 slw 1 setlinecap stroke } def /female { newpath 300 400 200 270 -90 arcn 300 0 lineto 150 100 moveto 450 100 lineto 20 slw 1 setlinecap stroke } def /quarternote { save 1 .5 scale 200 400 100 0 360 arc fill restore 290 200 moveto 290 658 lineto 430 840 230 235 270 arc 20 slw 0 setlinecap 290 610 lineto gsave fill grestore stroke } def /sixteenthnote { save 1 .5 scale 200 400 100 0 360 arc 330 200 moveto 340 200 100 0 360 arc fill restore 290 200 moveto 290 658 lineto 430 840 230 235 270 arc 430 610 moveto 430 790 230 270 235 arcn 430 610 moveto 430 100 lineto 20 slw 1 setlinecap stroke } def /sun { newpath 300 300 150 270 -90 arcn 300 0 lineto 180 180 moveto 100 100 lineto 150 300 moveto 25 300 lineto 180 420 moveto 100 500 lineto 300 450 moveto 300 600 lineto 420 420 moveto 500 500 lineto 450 300 moveto 575 300 lineto 420 180 moveto 500 100 lineto 20 slw 1 setlinecap stroke } def /pointerright { 600 750 450 270 210 an 600 -150 450 150 90 an fill } def /pointerleft { 150 750 450 330 270 an 150 -150 450 90 30 an fill } def /Varrowboth { 300 700 mt 550 500 lt 350 500 lt 350 200 lt 550 200 lt 300 0 lt 50 200 lt 250 200 lt 250 500 lt 50 500 lt cp fill } def /exclamdbl { save -100 0 translate (!) _uC 200 0 translate (!) _uC restore } def /paragraph { (\266) _uC } def /section { (\247) _uC } def /cursorblock { 50 -100 mt 550 -100 lt 550 200 lt 50 200 lt cp fill } def /floor { 300 700 mt 550 500 lt 350 500 lt 350 200 lt 550 200 lt 300 0 lt 50 200 lt 250 200 lt 250 500 lt 50 500 lt cp fill 0 0 mt 600 0 lt 20 slw stroke } def /arrowup { 300 700 mt 550 500 lt 350 500 lt 350 0 lt 250 0 lt 250 500 lt 50 500 lt cp fill } def /arrowdown { 300 0 mt 550 200 lt 350 200 lt 350 700 lt 250 700 lt 250 200 lt 50 200 lt cp fill } def /arrowright { 50 300 mt 550 300 lt 300 400 lt 550 300 mt 300 200 lt 1 slc 25 slw stroke } def /arrowleft { 550 300 mt 50 300 lt 300 400 lt 50 300 mt 300 200 lt 1 slc 25 slw stroke } def /smallLLsingle { 100 400 mt 100 275 lt 500 275 lt 20 slw stroke } def /arrowboth { 550 300 mt 50 300 lt 200 400 lt 50 300 mt 200 200 lt 550 300 mt 400 400 lt 550 300 mt 400 200 lt 1 slc 20 slw stroke } def /pointerup { 50 50 mt 300 600 lt 550 50 lt cp fill } def /pointerdown { 0 550 mt 300 50 lt 550 550 lt cp fill } def /blank {} def /exclam { (!) _uC } def /quotedbl { (") _uC } def /numbersign { (#) _uC } def /dollar { ($) _uC } def /percent { (%) _uC } def /ampersand {(&) _uC} def /quotesingle {(') _uC} def /parenleft { (\050) _uC } def /parenright { (\051) _uC } def /asterisk { (*) _uC } def /plus { (+) _uC } def /comma { (,) _uC } def /hyphen { (-) _uC } def /period { (.) _uC } def /slash { (/) _uC } def /zero { (0) _uC } def /one { (1) _uC } def /two { (2) _uC } def /three { (3) _uC } def /four { (4) _uC } def /five { (5) _uC } def /six { (6) _uC } def /seven { (7) _uC } def /eight { (8) _uC } def /nine { (9) _uC } def /colon { (:) _uC } def /semicolon { (;) _uC } def /less { (<) _uC } def /equal { (=) _uC } def /greater { (>) _uC } def /question { (?) _uC } def /at { (@) _uC } def /A { (A) _uC } def /B { (B) _uC } def /C { (C) _uC } def /D { (D) _uC } def /E { (E) _uC } def /F { (F) _uC } def /G { (G) _uC } def /H { (H) _uC } def /I { (I) _uC } def /J { (J) _uC } def /K { (K) _uC } def /L { (L) _uC } def /M { (M) _uC } def /N { (N) _uC } def /O { (O) _uC } def /P { (P) _uC } def /Q { (Q) _uC } def /R { (R) _uC } def /S { (S) _uC } def /T { (T) _uC } def /U { (U) _uC } def /V { (V) _uC } def /W { (W) _uC } def /X { (X) _uC } def /Y { (Y) _uC } def /Z { (Z) _uC } def /bracketleft { ([) _uC } def /backslash { (\\) _uC } def /bracketright { (]) _uC } def /asciicircum { (^) _uC } def /underscore { 0 -200 mt 600 -200 lt 20 slw stroke } def /quoteleft { (`) _uC } def /a { (a) _uC } def /b { (b) _uC } def /c { (c) _uC } def /d { (d) _uC } def /e { (e) _uC } def /f { (f) _uC } def /g { (g) _uC } def /h { (h) _uC } def /i { (i) _uC } def /j { (j) _uC } def /k { (k) _uC } def /l { (l) _uC } def /m { (m) _uC } def /n { (n) _uC } def /o { (o) _uC } def /p { (p) _uC } def /q { (q) _uC } def /r { (r) _uC } def /s { (s) _uC } def /t { (t) _uC } def /u { (u) _uC } def /v { (v) _uC } def /w { (w) _uC } def /x { (x) _uC } def /y { (y) _uC } def /z { (z) _uC } def /braceleft { ({) _uC } def /brokenbar { (|) _uC } def /braceright { (}) _uC } def /asciitilde { (~) _uC } def /Delta { 50 0 mt 50 200 lt 300 500 lt 550 200 lt 550 0 lt cp 0 setlinejoin 20 slw stroke } def /Ccedilla { (C) _uC (\313) _uC } def /udieresis { (u) _uC (\310) _uC } def /eacute { (e) _uC (\302) _uC } def /acircumflex { (a) _uC (\303) _uC } def /adieresis { (a) _uC (\310) _uC } def /agrave { (a) _uC (\301) _uC } def /aring { (a) _uC (\312) _uC } def /ccedilla { (c) _uC (\313) _uC } def /ecircumflex { (e) _uC (\303) _uC } def /edieresis { (e) _uC (\310) _uC } def /egrave { (e) _uC (\301) _uC } def /idieresis { dotless_i (\310) _uC } def /icircumflex { dotless_i (\303) _uC } def /igrave { dotless_i (\301) _uC } def /Adieresis { (A) squash (\310) _uC } def /Aring { (A) squash (\312) _uC } def /Eacute { (E) squash (\302) _uC } def /ae { save .6 1 scale -75 0 translate (a) _uC 360 0 translate (e) _uC restore } def /AE { 120 540 moveto 480 540 lineto 480 420 lineto 300 540 moveto 300 20 lineto 250 20 moveto 500 20 lineto 500 160 lineto 250 540 moveto 80 20 lineto 30 20 moveto 180 20 lineto 170 280 moveto 400 280 lineto 400 240 moveto 400 320 lineto 20 slw 1 setlinecap stroke } def /ocircumflex { (o) _uC (\303) _uC } def /odieresis { (o) _uC (\310) _uC } def /ograve { (o) _uC (\301) _uC } def /ucircumflex { (u) _uC (\303) _uC } def /ugrave { (u) _uC (\301) _uC } def /ydieresis { (y) _uC (\310) _uC } def /Odieresis { (O) squash (\310) _uC } def /Udieresis { (U) squash (\310) _uC } def /cent { (\242) _uC } def /sterling { (\243) _uC } def /yen { (\245) _uC } def /point { save .6 1 scale (P) _uC .5 .5 scale 1000 0 translate (t) _uC restore } def /integral { save 1 .75 scale (\362) _uS restore } def /aacute { (a) _uC (\302) _uC } def /iacute { dotless_i (\302) _uC } def /oacute { (o) _uC (\302) _uC } def /uacute { (u) _uC (\302) _uC } def /ntilde { (n) _uC (\304) _uC } def /Ntilde { (N) squash (\304) _uC } def /aunder { save 175 200 translate .6 .6 scale (a) _uC 100 -200 mt 500 -200 lt 20 slw stroke restore } def /ounder { save 175 200 translate .6 .6 scale (o) _uC 100 -200 mt 500 -200 lt 20 slw stroke restore } def /questiondown { (\277) _uC } def /smallULsingle { 25 100 mt 25 300 lt 575 300 lt 20 slw stroke } def /smallURsingle { 25 300 mt 575 300 lt 575 100 lt 20 slw stroke } def /half { save .5 .5 scale 0 600 translate (1) _uC 500 -600 translate (2) _uC restore 50 0 moveto 500 600 lineto 10 slw 1 setlinecap stroke } def /quarter { save .5 .5 scale 0 600 translate (1) _uC 500 -600 translate (4) _uC restore 50 0 moveto 500 600 lineto 10 slw 1 setlinecap stroke } def /exclamdown { (\241) _uC } def /lessdbl { (\253) _uC } def /greaterdbl { (\273) _uC } def /lightbox { 2 dict begin 50 85 600 { /col exch def -150 71 800 { /row exch def col row 5 0 360 arc fill } for } for end } def /mediumbox { 2 dict begin 50 85 600 { /col exch def -150 71 800 { /row exch def col row 15 0 360 arc fill } for } for end } def /darkbox { 2 dict begin 50 85 600 { /col exch def -150 71 800 { /row exch def col row 25 0 360 arc fill } for } for end } def /Vsingle { 300 -205 mt 300 805 lt 20 slw stroke } def /VsingleTleftsingle { 300 -205 mt 300 805 lt 0 300 mt 300 300 lt 20 slw stroke } def /VsingleTleftdbl { 300 -205 mt 300 805 lt 0 400 mt 300 400 lt 0 200 mt 300 200 lt 20 slw stroke } def /VdblTleftsingle { 200 -205 mt 200 805 lt 400 -205 mt 400 805 lt 0 300 mt 200 300 lt 20 slw stroke } def /VdblURsingle { 0 300 mt 400 300 lt 400 -205 lt 200 300 mt 200 -205 lt 20 slw stroke } def /VsingleURdbl { 300 -205 mt 300 400 lt 0 400 lt 0 200 mt 300 200 lt 20 slw stroke } def /VdblTleftdbl { 400 -205 mt 400 805 lt 200 -205 mt 200 200 lt 0 200 lt 0 400 mt 200 400 lt 200 805 lt 20 slw stroke } def /Vdbl { 400 -205 mt 400 805 lt 200 -205 mt 200 805 lt 20 slw stroke } def /VdblURdbl { 400 -205 mt 400 400 lt 0 400 lt 0 200 mt 200 200 lt 200 -205 lt 20 slw stroke } def /VdblLRdbl { 200 805 mt 200 400 lt 0 400 lt 400 805 mt 400 200 lt 0 200 lt 20 slw stroke } def /VdblLRsingle { 200 805 mt 200 300 lt 400 805 mt 400 300 lt 0 300 lt 20 slw stroke } def /VsingleLRdbl { 300 805 mt 300 200 lt 0 200 lt 0 400 mt 300 400 lt 20 slw stroke } def /VsingleURsingle { 300 -205 mt 300 300 lt 0 300 lt 20 slw stroke } def /VsingleLLsingle { 300 805 mt 300 300 lt 600 300 lt 20 slw stroke } def /HsingleTupsingle { 0 300 mt 600 300 lt 300 300 mt 300 805 lt 20 slw stroke } def /HsingleTdownsingle { 0 300 mt 600 300 lt 300 300 mt 300 -205 lt 20 slw stroke } def /VsingleTrightsingle { 300 -205 mt 300 805 lt 300 300 mt 600 300 lt 20 slw stroke } def /Hsingle { 0 300 mt 600 300 lt 20 slw stroke } def /VsingleXsingle { 300 -205 mt 300 805 lt 0 300 mt 600 300 lt 20 slw stroke } def /VsingleTrightdbl { 300 -205 mt 300 805 lt 300 200 mt 600 200 lt 300 400 mt 600 400 lt 20 slw stroke } def /VdblTrightsingle { 400 -205 mt 400 805 lt 200 -205 mt 200 805 lt 400 300 mt 600 300 lt 20 slw stroke } def /VdblLLdbl { 400 805 mt 400 400 lt 600 400 lt 200 805 mt 200 200 lt 600 200 lt 20 slw stroke } def /VdblULdbl { 400 -205 mt 400 200 lt 600 200 lt 200 -205 mt 200 400 lt 600 400 lt 20 slw stroke } def /HdblTupdbl { 0 200 mt 600 200 lt 0 400 mt 200 400 lt 200 805 lt 400 805 mt 400 400 lt 600 400 lt 20 slw stroke } def /HdblTdowndbl { 0 400 mt 600 400 lt 0 200 mt 200 200 lt 200 -205 lt 400 -205 mt 400 200 lt 600 200 lt 20 slw stroke } def /VdblTrightdbl { 200 -205 mt 200 805 lt 400 -205 mt 400 200 lt 600 200 lt 600 400 mt 400 400 lt 400 805 lt 20 slw stroke } def /Hdbl { 0 200 mt 600 200 lt 0 400 mt 600 400 lt 20 slw stroke } def /VdblXdbl { 400 -205 mt 400 200 lt 600 200 lt 600 400 mt 400 400 lt 400 805 lt 200 -205 mt 200 200 lt 0 200 lt 0 400 mt 200 400 lt 200 805 lt 20 slw stroke } def /HdblTupsingle { 0 200 mt 600 200 lt 0 400 mt 600 400 lt 300 400 mt 300 805 lt 20 slw stroke } def /HsingleTupdbl { 0 300 mt 600 300 lt 200 300 mt 200 805 lt 400 300 mt 400 805 lt 20 slw stroke } def /HdblTdownsingle { 0 200 mt 600 200 lt 0 400 mt 600 400 lt 300 200 mt 300 -205 lt 20 slw stroke } def /HsingleTdowndbl { 0 300 mt 600 300 lt 200 300 mt 200 -205 lt 400 300 mt 400 -205 lt 20 slw stroke } def /VdblLLsingle { 200 805 mt 200 300 lt 600 300 lt 400 805 mt 400 300 lt 20 slw stroke } def /VsingleLLdbl { 300 805 mt 300 200 lt 600 200 lt 300 400 mt 600 400 lt 20 slw stroke } def /VsingleULdbl { 300 -205 mt 300 400 lt 600 400 lt 300 200 mt 600 200 lt 20 slw stroke } def /VdblULsingle { 200 -205 mt 200 300 lt 600 300 lt 400 -205 mt 400 300 lt 20 slw stroke } def /VdblXsingle { 400 -205 mt 400 805 lt 200 -205 mt 200 805 lt 0 300 mt 600 300 lt 20 slw stroke } def /VsingleXdbl { 300 -205 mt 300 805 lt 0 200 mt 600 200 lt 0 400 mt 600 400 lt 20 slw stroke } def /VsingleLRsingle { 0 300 mt 300 300 lt 300 805 lt 20 slw stroke } def /VsingleULsingle { 300 -205 mt 300 300 lt 600 300 lt 20 slw stroke } def /allblack { 0 -205 mt 600 -205 lt 600 805 lt 0 805 lt cp fill } def /botblack { 0 -205 mt 600 -205 lt 600 300 lt 0 300 lt cp fill } def /leftblack { 0 -205 mt 300 -205 lt 300 805 lt 0 805 lt cp fill } def /rightblack { 300 -205 mt 600 -205 lt 600 805 lt 300 805 lt cp fill } def /topblack { 0 300 mt 600 300 lt 600 805 lt 0 805 lt cp fill } def /alpha { save .8 .8 scale (\141) _uS restore } def /beta { save .9 1 scale (\373) _uC restore } def /Gamma { save .8 .8 scale (\107) _uS restore } def /pi { save .8 .8 scale (\160) _uS restore } def /Sigma { save .8 .8 scale (\123) _uS restore } def /sigma { save .8 .8 scale (\163) _uS restore } def /mu { save .8 .8 scale (\155) _uS restore } def /tau { save .8 .8 scale (\164) _uS restore } def /Phi { save .75 1 scale (\106) _uS restore } def /theta { save .8 .8 scale (\161) _uS restore } def /Omega { save .6 .9 scale (\127) _uS restore } def /delta { save .8 .8 scale (\144) _uS restore } def /infinity { save .75 1 scale (\245) _uS restore } def /phi { save .8 .7 scale (\146) _uS restore } def /element { save .8 .8 scale (\316) _uS restore } def /intersection { save .5 .8 scale (\307) _uS restore } def /equivalence {(\272) _uS} def /plusminus {(\261) _uS} def /greaterequal {(\263) _uS} def /lessequal {(\243) _uS} def /integraltp { save .75 .75 scale (\363) _uS restore } def /integralbt { save .75 .75 scale (\365) _uS restore } def /divide {(\270) _uS} def /approxequal {(\273) _uS} def /degree {(\260) _uS} def /bullet {(\267) _uS} def /dotmath {(\327) _uS} def /radical { 100 300 mt 150 350 lt 350 0 lt 550 600 lt 25 slw stroke } def /eta { save .8 .8 scale (\150) _uS restore } def /squared { save 100 350 translate .45 .45 scale (2) _uC restore } def /block { 50 0 mt 50 400 lt 550 400 lt 550 0 lt fill } def /blank {} def end /BuildChar { 600 0 0 -200 600 800 setcachedevice exch begin Encoding exch get CharacterDefs exch get exec end } def /UniqueID 847667 def end /PCFont exch definefont pop �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132365�010177� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000274434�14415562327�012173� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2023 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: # gnulib-tool --import --local-dir=gl --local-dir=gl-mod/bootstrap \ # --lib=libgnu \ # --source-base=lib \ # --m4-base=m4 \ # --po-base=po-gnulib \ # --doc-base=doc \ # --tests-base=tests \ # --aux-dir=build-aux \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --po-domain=a2ps \ # argmatch \ # backupfile \ # bootstrap \ # dirname \ # filenamecat \ # gettext-h \ # havelib \ # isdir \ # maintainer-makefile \ # manywarnings \ # mempcpy \ # obstack \ # readme-release \ # sig2str \ # stpncpy \ # strchrnul \ # strverscmp \ # version-etc-fsf \ # xalloc \ # xgethostname \ # xstrndup \ # xstrtol AUTOMAKE_OPTIONS = 1.14 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = # No GNU Make output. AM_CPPFLAGS = AM_CFLAGS = noinst_LTLIBRARIES += libgnu.la libgnu_la_SOURCES = libgnu_la_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) libgnu_la_LIBADD = $(gl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = libgnu_la_LDFLAGS = $(AM_LDFLAGS) libgnu_la_LDFLAGS += -no-undefined libgnu_la_LDFLAGS += $(GETHOSTNAME_LIB) libgnu_la_LDFLAGS += $(HARD_LOCALE_LIB) libgnu_la_LDFLAGS += $(LIBSOCKET) libgnu_la_LDFLAGS += $(LTLIBINTL) libgnu_la_LDFLAGS += $(MBRTOWC_LIB) libgnu_la_LDFLAGS += $(SETLOCALE_NULL_LIB) AM_CPPFLAGS += -DDEFAULT_TEXT_DOMAIN=\"a2ps-gnulib\" ## begin gnulib module absolute-header # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) ## end gnulib module absolute-header ## begin gnulib module alignof EXTRA_DIST += alignof.h ## end gnulib module alignof ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create <alloca.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ALLOCA_H alloca.h: alloca.in.h $(top_builddir)/config.status $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' \ $(srcdir)/alloca.in.h > $@-t $(AM_V_at)mv $@-t $@ else alloca.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt ## begin gnulib module announce-gen EXTRA_DIST += $(top_srcdir)/build-aux/announce-gen ## end gnulib module announce-gen ## begin gnulib module argmatch libgnu_la_SOURCES += argmatch.c EXTRA_DIST += argmatch.h ## end gnulib module argmatch ## begin gnulib module assert-h BUILT_SOURCES += $(ASSERT_H) # We need the following in order to create <assert.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ASSERT_H assert.h: assert.in.h verify.h $(top_builddir)/config.status $(gl_V_at){ $(SED_HEADER_STDOUT) \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \ < $(srcdir)/assert.in.h && \ sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \ -e 's|_gl_verify|_gl_static_assert|g' \ -e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \ -e 's|_GL\(_STATIC_ASSERT_H\)|_GL\1|g' \ < $(srcdir)/verify.h; \ } > $@-t $(AM_V_at)mv $@-t $@ else assert.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += assert.h assert.h-t EXTRA_DIST += assert.in.h verify.h ## end gnulib module assert-h ## begin gnulib module assure EXTRA_DIST += assure.h ## end gnulib module assure ## begin gnulib module at-internal libgnu_la_SOURCES += openat-priv.h openat-proc.c ## end gnulib module at-internal ## begin gnulib module attribute EXTRA_DIST += attribute.h ## end gnulib module attribute ## begin gnulib module backupfile libgnu_la_SOURCES += backupfile.c backup-find.c EXTRA_DIST += backup-internal.h backupfile.h ## end gnulib module backupfile ## begin gnulib module basename-lgpl libgnu_la_SOURCES += basename-lgpl.c EXTRA_DIST += basename-lgpl.h ## end gnulib module basename-lgpl ## begin gnulib module bootstrap EXTRA_DIST += $(top_srcdir)/build-aux/bootstrap.in ## end gnulib module bootstrap ## begin gnulib module c-ctype libgnu_la_SOURCES += c-ctype.h c-ctype.c ## end gnulib module c-ctype ## begin gnulib module c-strcase libgnu_la_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c ## end gnulib module c-strcase ## begin gnulib module c-strcaseeq EXTRA_DIST += c-strcaseeq.h ## end gnulib module c-strcaseeq ## begin gnulib module calloc-gnu EXTRA_DIST += calloc.c EXTRA_libgnu_la_SOURCES += calloc.c ## end gnulib module calloc-gnu ## begin gnulib module calloc-posix EXTRA_DIST += calloc.c EXTRA_libgnu_la_SOURCES += calloc.c ## end gnulib module calloc-posix ## begin gnulib module canonicalize-lgpl if GL_COND_OBJ_CANONICALIZE_LGPL libgnu_la_SOURCES += canonicalize-lgpl.c endif ## end gnulib module canonicalize-lgpl ## begin gnulib module chdir-long if GL_COND_OBJ_CHDIR_LONG libgnu_la_SOURCES += chdir-long.c endif EXTRA_DIST += chdir-long.h ## end gnulib module chdir-long ## begin gnulib module cloexec libgnu_la_SOURCES += cloexec.c EXTRA_DIST += cloexec.h ## end gnulib module cloexec ## begin gnulib module close if GL_COND_OBJ_CLOSE libgnu_la_SOURCES += close.c endif ## end gnulib module close ## begin gnulib module closedir if GL_COND_OBJ_CLOSEDIR libgnu_la_SOURCES += closedir.c endif EXTRA_DIST += dirent-private.h ## end gnulib module closedir ## begin gnulib module dirent BUILT_SOURCES += dirent.h # We need the following in order to create <dirent.h> when the system # doesn't have one that works with the given compiler. dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_DIRENT_H''@|$(HAVE_DIRENT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ -e 's/@''GNULIB_OPENDIR''@/$(GL_GNULIB_OPENDIR)/g' \ -e 's/@''GNULIB_READDIR''@/$(GL_GNULIB_READDIR)/g' \ -e 's/@''GNULIB_REWINDDIR''@/$(GL_GNULIB_REWINDDIR)/g' \ -e 's/@''GNULIB_CLOSEDIR''@/$(GL_GNULIB_CLOSEDIR)/g' \ -e 's/@''GNULIB_DIRFD''@/$(GL_GNULIB_DIRFD)/g' \ -e 's/@''GNULIB_FDOPENDIR''@/$(GL_GNULIB_FDOPENDIR)/g' \ -e 's/@''GNULIB_SCANDIR''@/$(GL_GNULIB_SCANDIR)/g' \ -e 's/@''GNULIB_ALPHASORT''@/$(GL_GNULIB_ALPHASORT)/g' \ -e 's/@''HAVE_OPENDIR''@/$(HAVE_OPENDIR)/g' \ -e 's/@''HAVE_READDIR''@/$(HAVE_READDIR)/g' \ -e 's/@''HAVE_REWINDDIR''@/$(HAVE_REWINDDIR)/g' \ -e 's/@''HAVE_CLOSEDIR''@/$(HAVE_CLOSEDIR)/g' \ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \ -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \ -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \ -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \ -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \ -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \ -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/dirent.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += dirent.h dirent.h-t EXTRA_DIST += dirent.in.h ## end gnulib module dirent ## begin gnulib module dirfd if GL_COND_OBJ_DIRFD libgnu_la_SOURCES += dirfd.c endif ## end gnulib module dirfd ## begin gnulib module dirname libgnu_la_SOURCES += dirname.c basename.c EXTRA_DIST += stripslash.c EXTRA_libgnu_la_SOURCES += stripslash.c ## end gnulib module dirname ## begin gnulib module dirname-lgpl libgnu_la_SOURCES += dirname-lgpl.c stripslash.c EXTRA_DIST += dirname.h ## end gnulib module dirname-lgpl ## begin gnulib module do-release-commit-and-tag EXTRA_DIST += $(top_srcdir)/build-aux/do-release-commit-and-tag ## end gnulib module do-release-commit-and-tag ## begin gnulib module dup if GL_COND_OBJ_DUP libgnu_la_SOURCES += dup.c endif ## end gnulib module dup ## begin gnulib module dup2 if GL_COND_OBJ_DUP2 libgnu_la_SOURCES += dup2.c endif ## end gnulib module dup2 ## begin gnulib module eloop-threshold EXTRA_DIST += eloop-threshold.h ## end gnulib module eloop-threshold ## begin gnulib module errno BUILT_SOURCES += $(ERRNO_H) # We need the following in order to create <errno.h> when the system # doesn't have one that is POSIX compliant. if GL_GENERATE_ERRNO_H errno.h: errno.in.h $(top_builddir)/config.status $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ $(srcdir)/errno.in.h > $@-t $(AM_V_at)mv $@-t $@ else errno.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += errno.h errno.h-t EXTRA_DIST += errno.in.h ## end gnulib module errno ## begin gnulib module error if GL_COND_OBJ_ERROR libgnu_la_SOURCES += error.c endif ## end gnulib module error ## begin gnulib module error-h BUILT_SOURCES += $(ERROR_H) # We need the following in order to create <error.h> when the system # doesn't have one that works. if GL_GENERATE_ERROR_H error.h: error.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_ERROR_H''@|$(HAVE_ERROR_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_ERROR_H''@|$(NEXT_ERROR_H)|g' \ -e 's|@''HAVE_ERROR''@|$(HAVE_ERROR)|g' \ -e 's|@''HAVE_ERROR_AT_LINE''@|$(HAVE_ERROR_AT_LINE)|g' \ -e 's|@''REPLACE_ERROR''@|$(REPLACE_ERROR)|g' \ -e 's|@''REPLACE_ERROR_AT_LINE''@|$(REPLACE_ERROR_AT_LINE)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ $(srcdir)/error.in.h > $@-t $(AM_V_at)mv $@-t $@ else error.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += error.h error.h-t EXTRA_DIST += error.in.h ## end gnulib module error-h ## begin gnulib module exitfail libgnu_la_SOURCES += exitfail.c EXTRA_DIST += exitfail.h ## end gnulib module exitfail ## begin gnulib module extract-trace EXTRA_DIST += $(top_srcdir)/build-aux/extract-trace ## end gnulib module extract-trace ## begin gnulib module fchdir if GL_COND_OBJ_FCHDIR libgnu_la_SOURCES += fchdir.c endif ## end gnulib module fchdir ## begin gnulib module fcntl if GL_COND_OBJ_FCNTL libgnu_la_SOURCES += fcntl.c endif ## end gnulib module fcntl ## begin gnulib module fcntl-h BUILT_SOURCES += fcntl.h # We need the following in order to create <fcntl.h> when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/fcntl.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += fcntl.h fcntl.h-t EXTRA_DIST += fcntl.in.h ## end gnulib module fcntl-h ## begin gnulib module fcntl-safer libgnu_la_SOURCES += creat-safer.c open-safer.c EXTRA_DIST += fcntl--.h fcntl-safer.h ## end gnulib module fcntl-safer ## begin gnulib module fd-hook libgnu_la_SOURCES += fd-hook.c EXTRA_DIST += fd-hook.h ## end gnulib module fd-hook ## begin gnulib module fd-safer-flag libgnu_la_SOURCES += fd-safer-flag.c dup-safer-flag.c ## end gnulib module fd-safer-flag ## begin gnulib module fdopendir if GL_COND_OBJ_FDOPENDIR libgnu_la_SOURCES += fdopendir.c endif ## end gnulib module fdopendir ## begin gnulib module filename EXTRA_DIST += filename.h ## end gnulib module filename ## begin gnulib module filenamecat libgnu_la_SOURCES += filenamecat.c ## end gnulib module filenamecat ## begin gnulib module filenamecat-lgpl libgnu_la_SOURCES += filenamecat-lgpl.c EXTRA_DIST += filenamecat.h ## end gnulib module filenamecat-lgpl ## begin gnulib module free-posix if GL_COND_OBJ_FREE libgnu_la_SOURCES += free.c endif ## end gnulib module free-posix ## begin gnulib module fstat if GL_COND_OBJ_FSTAT libgnu_la_SOURCES += fstat.c endif EXTRA_DIST += stat-w32.c stat-w32.h EXTRA_libgnu_la_SOURCES += stat-w32.c ## end gnulib module fstat ## begin gnulib module fstatat if GL_COND_OBJ_FSTATAT libgnu_la_SOURCES += fstatat.c endif EXTRA_DIST += at-func.c EXTRA_libgnu_la_SOURCES += at-func.c ## end gnulib module fstatat ## begin gnulib module funclib.sh EXTRA_DIST += $(top_srcdir)/build-aux/funclib.sh ## end gnulib module funclib.sh ## begin gnulib module gen-header # In 'sed', replace the pattern space with a "DO NOT EDIT" comment. SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */, # '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT". SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G # '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading # "DO_NOT_EDIT". Although this could be done more simply via: # SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t # the -n and 'w' avoid a fork+exec, at least when GNU Make is used. SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t' # Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that gl_V_at = $(AM_V_GEN) ## end gnulib module gen-header ## begin gnulib module gendocs EXTRA_DIST += $(top_srcdir)/build-aux/gendocs.sh ## end gnulib module gendocs ## begin gnulib module getcwd-lgpl if GL_COND_OBJ_GETCWD_LGPL libgnu_la_SOURCES += getcwd-lgpl.c endif ## end gnulib module getcwd-lgpl ## begin gnulib module getdtablesize if GL_COND_OBJ_GETDTABLESIZE libgnu_la_SOURCES += getdtablesize.c endif ## end gnulib module getdtablesize ## begin gnulib module gethostname if GL_COND_OBJ_GETHOSTNAME libgnu_la_SOURCES += gethostname.c endif EXTRA_DIST += w32sock.h ## end gnulib module gethostname ## begin gnulib module getprogname if GL_COND_OBJ_GETPROGNAME libgnu_la_SOURCES += getprogname.c endif EXTRA_DIST += getprogname.h ## end gnulib module getprogname ## begin gnulib module gettext-h libgnu_la_SOURCES += gettext.h ## end gnulib module gettext-h ## begin gnulib module glibc-internal/scratch_buffer BUILT_SOURCES += malloc/scratch_buffer.gl.h malloc/scratch_buffer.gl.h: malloc/scratch_buffer.h $(AM_V_GEN)$(MKDIR_P) '%reldir%/malloc' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|__always_inline|inline _GL_ATTRIBUTE_ALWAYS_INLINE|g' \ -e 's|__glibc_likely|_GL_LIKELY|g' \ -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \ -e '/libc_hidden_proto/d' \ $(srcdir)/malloc/scratch_buffer.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += malloc/scratch_buffer.gl.h malloc/scratch_buffer.gl.h-t libgnu_la_SOURCES += malloc/scratch_buffer_grow.c malloc/scratch_buffer_grow_preserve.c malloc/scratch_buffer_set_array_size.c EXTRA_DIST += malloc/scratch_buffer.h scratch_buffer.h ## end gnulib module glibc-internal/scratch_buffer ## begin gnulib module gnu-web-doc-update EXTRA_DIST += $(top_srcdir)/build-aux/gnu-web-doc-update ## end gnulib module gnu-web-doc-update ## begin gnulib module gnumakefile EXTRA_DIST += $(top_srcdir)/GNUmakefile distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile ## end gnulib module gnumakefile ## begin gnulib module gnupload EXTRA_DIST += $(top_srcdir)/build-aux/gnupload ## end gnulib module gnupload ## begin gnulib module hard-locale libgnu_la_SOURCES += hard-locale.c EXTRA_DIST += hard-locale.h ## end gnulib module hard-locale ## begin gnulib module havelib EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module havelib ## begin gnulib module ialloc libgnu_la_SOURCES += ialloc.c EXTRA_DIST += ialloc.h ## end gnulib module ialloc ## begin gnulib module idx libgnu_la_SOURCES += idx.h ## end gnulib module idx ## begin gnulib module inline-source EXTRA_DIST += $(top_srcdir)/build-aux/inline-source ## end gnulib module inline-source ## begin gnulib module intprops EXTRA_DIST += intprops-internal.h intprops.h ## end gnulib module intprops ## begin gnulib module inttypes-incomplete BUILT_SOURCES += inttypes.h # We need the following in order to create <inttypes.h> when the system # doesn't have one that works with the given compiler. inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''GNULIB_IMAXABS''@/$(GL_GNULIB_IMAXABS)/g' \ -e 's/@''GNULIB_IMAXDIV''@/$(GL_GNULIB_IMAXDIV)/g' \ -e 's/@''GNULIB_STRTOIMAX''@/$(GL_GNULIB_STRTOIMAX)/g' \ -e 's/@''GNULIB_STRTOUMAX''@/$(GL_GNULIB_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ -e 's/@''REPLACE_IMAXABS''@/$(REPLACE_IMAXABS)/g' \ -e 's/@''REPLACE_IMAXDIV''@/$(REPLACE_IMAXDIV)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/inttypes.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += inttypes.h inttypes.h-t EXTRA_DIST += inttypes.in.h ## end gnulib module inttypes-incomplete ## begin gnulib module isdir libgnu_la_SOURCES += isdir.c EXTRA_DIST += isdir.h ## end gnulib module isdir ## begin gnulib module libc-config EXTRA_DIST += cdefs.h libc-config.h ## end gnulib module libc-config ## begin gnulib module limits-h BUILT_SOURCES += $(LIMITS_H) # We need the following in order to create <limits.h> when the system # doesn't have one that is compatible with GNU. if GL_GENERATE_LIMITS_H limits.h: limits.in.h $(top_builddir)/config.status $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ $(srcdir)/limits.in.h > $@-t $(AM_V_at)mv $@-t $@ else limits.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += limits.h limits.h-t EXTRA_DIST += limits.in.h ## end gnulib module limits-h ## begin gnulib module localcharset libgnu_la_SOURCES += localcharset.c EXTRA_DIST += localcharset.h ## end gnulib module localcharset ## begin gnulib module locale BUILT_SOURCES += locale.h # We need the following in order to create <locale.h> when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GL_GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GL_GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GL_GNULIB_SETLOCALE_NULL)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GL_GNULIB_DUPLOCALE)/g' \ -e 's/@''GNULIB_LOCALENAME''@/$(GL_GNULIB_LOCALENAME)/g' \ -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e 's|@''LOCALENAME_ENHANCE_LOCALE_FUNCS''@|$(LOCALENAME_ENHANCE_LOCALE_FUNCS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/locale.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += locale.h locale.h-t EXTRA_DIST += locale.in.h ## end gnulib module locale ## begin gnulib module lstat if GL_COND_OBJ_LSTAT libgnu_la_SOURCES += lstat.c endif ## end gnulib module lstat ## begin gnulib module maintainer-makefile EXTRA_DIST += $(top_srcdir)/maint.mk ## end gnulib module maintainer-makefile ## begin gnulib module malloc-gnu EXTRA_DIST += malloc.c EXTRA_libgnu_la_SOURCES += malloc.c ## end gnulib module malloc-gnu ## begin gnulib module malloc-posix EXTRA_DIST += malloc.c EXTRA_libgnu_la_SOURCES += malloc.c ## end gnulib module malloc-posix ## begin gnulib module malloca libgnu_la_SOURCES += malloca.c EXTRA_DIST += malloca.h ## end gnulib module malloca ## begin gnulib module mbrtowc if GL_COND_OBJ_MBRTOWC libgnu_la_SOURCES += mbrtowc.c endif EXTRA_DIST += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h mbtowc-lock.c mbtowc-lock.h windows-initguard.h EXTRA_libgnu_la_SOURCES += lc-charset-dispatch.c mbtowc-lock.c ## end gnulib module mbrtowc ## begin gnulib module mbsinit if GL_COND_OBJ_MBSINIT libgnu_la_SOURCES += mbsinit.c endif ## end gnulib module mbsinit ## begin gnulib module memchr if GL_COND_OBJ_MEMCHR libgnu_la_SOURCES += memchr.c endif EXTRA_DIST += memchr.valgrind ## end gnulib module memchr ## begin gnulib module mempcpy if GL_COND_OBJ_MEMPCPY libgnu_la_SOURCES += mempcpy.c endif ## end gnulib module mempcpy ## begin gnulib module memrchr if GL_COND_OBJ_MEMRCHR libgnu_la_SOURCES += memrchr.c endif ## end gnulib module memrchr ## begin gnulib module minmax libgnu_la_SOURCES += minmax.h ## end gnulib module minmax ## begin gnulib module msvc-inval if GL_COND_OBJ_MSVC_INVAL libgnu_la_SOURCES += msvc-inval.c endif EXTRA_DIST += msvc-inval.h ## end gnulib module msvc-inval ## begin gnulib module msvc-nothrow if GL_COND_OBJ_MSVC_NOTHROW libgnu_la_SOURCES += msvc-nothrow.c endif EXTRA_DIST += msvc-nothrow.h ## end gnulib module msvc-nothrow ## begin gnulib module obstack if GL_COND_OBJ_OBSTACK libgnu_la_SOURCES += obstack.c endif EXTRA_DIST += obstack.h ## end gnulib module obstack ## begin gnulib module open if GL_COND_OBJ_OPEN libgnu_la_SOURCES += open.c endif ## end gnulib module open ## begin gnulib module openat if GL_COND_OBJ_OPENAT libgnu_la_SOURCES += openat.c endif ## end gnulib module openat ## begin gnulib module openat-die libgnu_la_SOURCES += openat-die.c ## end gnulib module openat-die ## begin gnulib module openat-h EXTRA_DIST += openat.h ## end gnulib module openat-h ## begin gnulib module openat-safer libgnu_la_SOURCES += openat-safer.c EXTRA_DIST += fcntl--.h fcntl-safer.h ## end gnulib module openat-safer ## begin gnulib module opendir if GL_COND_OBJ_OPENDIR libgnu_la_SOURCES += opendir.c endif EXTRA_DIST += dirent-private.h ## end gnulib module opendir ## begin gnulib module opendirat libgnu_la_SOURCES += opendirat.c EXTRA_DIST += opendirat.h ## end gnulib module opendirat ## begin gnulib module options-parser EXTRA_DIST += $(top_srcdir)/build-aux/options-parser ## end gnulib module options-parser ## begin gnulib module pathmax EXTRA_DIST += pathmax.h ## end gnulib module pathmax ## begin gnulib module pipe-posix if GL_COND_OBJ_PIPE libgnu_la_SOURCES += pipe.c endif ## end gnulib module pipe-posix ## begin gnulib module quote EXTRA_DIST += quote.h ## end gnulib module quote ## begin gnulib module quotearg libgnu_la_SOURCES += quotearg.c EXTRA_DIST += quote.h quotearg.h ## end gnulib module quotearg ## begin gnulib module rawmemchr if GL_COND_OBJ_RAWMEMCHR libgnu_la_SOURCES += rawmemchr.c endif EXTRA_DIST += rawmemchr.valgrind ## end gnulib module rawmemchr ## begin gnulib module readdir if GL_COND_OBJ_READDIR libgnu_la_SOURCES += readdir.c endif EXTRA_DIST += dirent-private.h ## end gnulib module readdir ## begin gnulib module readlink if GL_COND_OBJ_READLINK libgnu_la_SOURCES += readlink.c endif ## end gnulib module readlink ## begin gnulib module readlinkat if GL_COND_OBJ_READLINKAT libgnu_la_SOURCES += readlinkat.c endif EXTRA_DIST += at-func.c EXTRA_libgnu_la_SOURCES += at-func.c ## end gnulib module readlinkat ## begin gnulib module realloc-gnu EXTRA_DIST += realloc.c EXTRA_libgnu_la_SOURCES += realloc.c ## end gnulib module realloc-gnu ## begin gnulib module realloc-posix EXTRA_DIST += realloc.c EXTRA_libgnu_la_SOURCES += realloc.c ## end gnulib module realloc-posix ## begin gnulib module reallocarray if GL_COND_OBJ_REALLOCARRAY libgnu_la_SOURCES += reallocarray.c endif ## end gnulib module reallocarray ## begin gnulib module rename if GL_COND_OBJ_RENAME libgnu_la_SOURCES += rename.c endif ## end gnulib module rename ## begin gnulib module renameatu libgnu_la_SOURCES += renameatu.c EXTRA_DIST += at-func2.c renameatu.h EXTRA_libgnu_la_SOURCES += at-func2.c ## end gnulib module renameatu ## begin gnulib module rmdir if GL_COND_OBJ_RMDIR libgnu_la_SOURCES += rmdir.c endif ## end gnulib module rmdir ## begin gnulib module same-inode EXTRA_DIST += same-inode.h ## end gnulib module same-inode ## begin gnulib module save-cwd libgnu_la_SOURCES += save-cwd.c EXTRA_DIST += save-cwd.h ## end gnulib module save-cwd ## begin gnulib module setlocale-null libgnu_la_SOURCES += setlocale_null.c if GL_COND_OBJ_SETLOCALE_LOCK libgnu_la_SOURCES += setlocale-lock.c endif EXTRA_DIST += setlocale_null.h windows-initguard.h ## end gnulib module setlocale-null ## begin gnulib module sig2str if GL_COND_OBJ_SIG2STR libgnu_la_SOURCES += sig2str.c endif EXTRA_DIST += sig2str.h ## end gnulib module sig2str ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(srcdir)/_Noreturn.h EXTRA_DIST += _Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H=$(srcdir)/arg-nonnull.h EXTRA_DIST += arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H=$(srcdir)/c++defs.h EXTRA_DIST += c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/warn-on-use # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H=$(srcdir)/warn-on-use.h EXTRA_DIST += warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module sockets libgnu_la_SOURCES += sockets.h sockets.c EXTRA_DIST += w32sock.h ## end gnulib module sockets ## begin gnulib module stat if GL_COND_OBJ_STAT libgnu_la_SOURCES += stat.c endif EXTRA_DIST += stat-w32.c stat-w32.h EXTRA_libgnu_la_SOURCES += stat-w32.c ## end gnulib module stat ## begin gnulib module stat-time libgnu_la_SOURCES += stat-time.c EXTRA_DIST += stat-time.h ## end gnulib module stat-time ## begin gnulib module stdarg BUILT_SOURCES += $(STDARG_H) # We need the following in order to create <stdarg.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDARG_H stdarg.h: stdarg.in.h $(top_builddir)/config.status $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ $(srcdir)/stdarg.in.h > $@-t $(AM_V_at)mv $@-t $@ else stdarg.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdarg.h stdarg.h-t EXTRA_DIST += stdarg.in.h ## end gnulib module stdarg ## begin gnulib module stdckdint BUILT_SOURCES += $(STDCKDINT_H) # We need the following in order to create <stdckdint.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDCKDINT_H stdckdint.h: stdckdint.in.h $(top_builddir)/config.status $(gl_V_at)$(SED_HEADER_STDOUT) \ $(srcdir)/stdckdint.in.h > $@-t $(AM_V_at)mv $@-t $@ else stdckdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdckdint.h stdckdint.h-t EXTRA_DIST += intprops-internal.h stdckdint.in.h ## end gnulib module stdckdint ## begin gnulib module stddef BUILT_SOURCES += $(STDDEF_H) # We need the following in order to create <stddef.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ $(srcdir)/stddef.in.h > $@-t $(AM_V_at)mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h ## end gnulib module stddef ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) # We need the following in order to create <stdint.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ $(srcdir)/stdint.in.h > $@-t $(AM_V_at)mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h ## end gnulib module stdint ## begin gnulib module stdio BUILT_SOURCES += stdio.h # We need the following in order to create <stdio.h> when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FOPEN_GNU''@/$(GL_GNULIB_FOPEN_GNU)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_GETW''@|$(HAVE_DECL_GETW)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_PUTW''@|$(HAVE_DECL_PUTW)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FOPEN_FOR_FOPEN_GNU''@|$(REPLACE_FOPEN_FOR_FOPEN_GNU)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t if GL_COND_OBJ_STDIO_READ libgnu_la_SOURCES += stdio-read.c endif if GL_COND_OBJ_STDIO_WRITE libgnu_la_SOURCES += stdio-write.c endif EXTRA_DIST += stdio.in.h ## end gnulib module stdio ## begin gnulib module stdlib BUILT_SOURCES += stdlib.h # We need the following in order to create <stdlib.h> when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_GNU''@/$(GL_GNULIB_CALLOC_GNU)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETPROGNAME''@/$(GL_GNULIB_GETPROGNAME)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GL_GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GL_GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_GNULIB_POSIX_MEMALIGN)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GL_GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GL_GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GL_GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_GNU''@/$(GL_GNULIB_REALLOC_GNU)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GL_GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GL_GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GL_GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOL''@/$(GL_GNULIB_STRTOL)/g' \ -e 's/@''GNULIB_STRTOLD''@/$(GL_GNULIB_STRTOLD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GL_GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOUL''@/$(GL_GNULIB_STRTOUL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GL_GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GL_GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GL_GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GL_GNULIB_WCTOMB)/g' \ -e 's/@''GNULIB_MDA_ECVT''@/$(GL_GNULIB_MDA_ECVT)/g' \ -e 's/@''GNULIB_MDA_FCVT''@/$(GL_GNULIB_MDA_FCVT)/g' \ -e 's/@''GNULIB_MDA_GCVT''@/$(GL_GNULIB_MDA_GCVT)/g' \ -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_GNULIB_MDA_MKTEMP)/g' \ -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_GNULIB_MDA_PUTENV)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \ -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETPROGNAME''@|$(HAVE_GETPROGNAME)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE__EXIT''@|$(REPLACE__EXIT)|g' \ -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \ -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_GETLOADAVG''@|$(REPLACE_GETLOADAVG)|g' \ -e 's|@''REPLACE_GETPROGNAME''@|$(REPLACE_GETPROGNAME)|g' \ -e 's|@''REPLACE_GETSUBOPT''@|$(REPLACE_GETSUBOPT)|g' \ -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \ -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKOSTEMP''@|$(REPLACE_MKOSTEMP)|g' \ -e 's|@''REPLACE_MKOSTEMPS''@|$(REPLACE_MKOSTEMPS)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ -e 's|@''REPLACE_POSIX_OPENPT''@|$(REPLACE_POSIX_OPENPT)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \ -e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \ -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t EXTRA_DIST += stdlib.in.h ## end gnulib module stdlib ## begin gnulib module stpncpy if GL_COND_OBJ_STPNCPY libgnu_la_SOURCES += stpncpy.c endif ## end gnulib module stpncpy ## begin gnulib module strchrnul if GL_COND_OBJ_STRCHRNUL libgnu_la_SOURCES += strchrnul.c endif EXTRA_DIST += strchrnul.valgrind ## end gnulib module strchrnul ## begin gnulib module strdup-posix if GL_COND_OBJ_STRDUP libgnu_la_SOURCES += strdup.c endif ## end gnulib module strdup-posix ## begin gnulib module streq EXTRA_DIST += streq.h ## end gnulib module streq ## begin gnulib module strerror if GL_COND_OBJ_STRERROR libgnu_la_SOURCES += strerror.c endif ## end gnulib module strerror ## begin gnulib module strerror-override if GL_COND_OBJ_STRERROR_OVERRIDE libgnu_la_SOURCES += strerror-override.c endif EXTRA_DIST += strerror-override.h ## end gnulib module strerror-override ## begin gnulib module string BUILT_SOURCES += string.h # We need the following in order to create <string.h> when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_MEMSET_EXPLICIT''@/$(GL_GNULIB_MEMSET_EXPLICIT)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_MEMSET_EXPLICIT''@|$(HAVE_MEMSET_EXPLICIT)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_MEMPCPY''@|$(REPLACE_MEMPCPY)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_STPCPY''@|$(REPLACE_STPCPY)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h ## end gnulib module string ## begin gnulib module strndup if GL_COND_OBJ_STRNDUP libgnu_la_SOURCES += strndup.c endif ## end gnulib module strndup ## begin gnulib module strnlen if GL_COND_OBJ_STRNLEN libgnu_la_SOURCES += strnlen.c endif ## end gnulib module strnlen ## begin gnulib module strverscmp if GL_COND_OBJ_STRVERSCMP libgnu_la_SOURCES += strverscmp.c endif ## end gnulib module strverscmp ## begin gnulib module sys_socket BUILT_SOURCES += sys/socket.h libgnu_la_SOURCES += sys_socket.c # We need the following in order to create <sys/socket.h> when the system # doesn't have one that works with the given compiler. sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_SOCKET''@/$(GL_GNULIB_SOCKET)/g' \ -e 's/@''GNULIB_CONNECT''@/$(GL_GNULIB_CONNECT)/g' \ -e 's/@''GNULIB_ACCEPT''@/$(GL_GNULIB_ACCEPT)/g' \ -e 's/@''GNULIB_BIND''@/$(GL_GNULIB_BIND)/g' \ -e 's/@''GNULIB_GETPEERNAME''@/$(GL_GNULIB_GETPEERNAME)/g' \ -e 's/@''GNULIB_GETSOCKNAME''@/$(GL_GNULIB_GETSOCKNAME)/g' \ -e 's/@''GNULIB_GETSOCKOPT''@/$(GL_GNULIB_GETSOCKOPT)/g' \ -e 's/@''GNULIB_LISTEN''@/$(GL_GNULIB_LISTEN)/g' \ -e 's/@''GNULIB_RECV''@/$(GL_GNULIB_RECV)/g' \ -e 's/@''GNULIB_SEND''@/$(GL_GNULIB_SEND)/g' \ -e 's/@''GNULIB_RECVFROM''@/$(GL_GNULIB_RECVFROM)/g' \ -e 's/@''GNULIB_SENDTO''@/$(GL_GNULIB_SENDTO)/g' \ -e 's/@''GNULIB_SETSOCKOPT''@/$(GL_GNULIB_SETSOCKOPT)/g' \ -e 's/@''GNULIB_SHUTDOWN''@/$(GL_GNULIB_SHUTDOWN)/g' \ -e 's/@''GNULIB_ACCEPT4''@/$(GL_GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \ -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \ -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/sys_socket.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_socket.in.h ## end gnulib module sys_socket ## begin gnulib module sys_stat BUILT_SOURCES += sys/stat.h # We need the following in order to create <sys/stat.h> when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ -e 's/@''GNULIB_CHMOD''@/$(GL_GNULIB_CHMOD)/g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_CHMOD''@|$(REPLACE_CHMOD)|g' \ -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/sys_stat.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_stat.in.h ## end gnulib module sys_stat ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h # We need the following in order to create <sys/types.h> when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ $(srcdir)/sys_types.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types ## begin gnulib module sys_uio BUILT_SOURCES += sys/uio.h # We need the following in order to create <sys/uio.h> when the system # doesn't have one that works with the given compiler. sys/uio.h: sys_uio.in.h $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ $(srcdir)/sys_uio.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += sys/uio.h sys/uio.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_uio.in.h ## end gnulib module sys_uio ## begin gnulib module time BUILT_SOURCES += time.h # We need the following in order to create <time.h> when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ -e 's/@''GNULIB_TIMESPEC_GETRES''@/$(GL_GNULIB_TIMESPEC_GETRES)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \ -e 's|@''HAVE_TIMESPEC_GETRES''@|$(HAVE_TIMESPEC_GETRES)|g' \ -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''REPLACE_TIMESPEC_GET''@|$(REPLACE_TIMESPEC_GET)|g' \ -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/time.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += time.h time.h-t EXTRA_DIST += time.in.h ## end gnulib module time ## begin gnulib module unistd BUILT_SOURCES += unistd.h libgnu_la_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # <unistd.h> when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETPASS_GNU''@/$(GL_GNULIB_GETPASS_GNU)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_DUP3''@|$(REPLACE_DUP3)|g' \ -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FDATASYNC''@|$(REPLACE_FDATASYNC)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETENTROPY''@|$(REPLACE_GETENTROPY)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_GETPASS_FOR_GETPASS_GNU''@|$(REPLACE_GETPASS_FOR_GETPASS_GNU)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PIPE2''@|$(REPLACE_PIPE2)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SETHOSTNAME''@|$(REPLACE_SETHOSTNAME)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd ## begin gnulib module unistd-safer libgnu_la_SOURCES += dup-safer.c fd-safer.c pipe-safer.c EXTRA_DIST += unistd--.h unistd-safer.h ## end gnulib module unistd-safer ## begin gnulib module useless-if-before-free EXTRA_DIST += $(top_srcdir)/build-aux/useless-if-before-free ## end gnulib module useless-if-before-free ## begin gnulib module vc-list-files EXTRA_DIST += $(top_srcdir)/build-aux/vc-list-files ## end gnulib module vc-list-files ## begin gnulib module verify EXTRA_DIST += verify.h ## end gnulib module verify ## begin gnulib module version-etc libgnu_la_SOURCES += version-etc.h version-etc.c ## end gnulib module version-etc ## begin gnulib module version-etc-fsf libgnu_la_SOURCES += version-etc-fsf.c ## end gnulib module version-etc-fsf ## begin gnulib module wchar BUILT_SOURCES += wchar.h # We need the following in order to create <wchar.h> when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GL_GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GL_GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GL_GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GL_GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GL_GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GL_GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GL_GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GL_GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMPCPY''@/$(GL_GNULIB_WMEMPCPY)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GL_GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GL_GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GL_GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GL_GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GL_GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GL_GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GL_GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GL_GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GL_GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GL_GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GL_GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GL_GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GL_GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GL_GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GL_GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GL_GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GL_GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GL_GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GL_GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GL_GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GL_GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GL_GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GL_GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \ -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \ -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMPCPY''@|$(HAVE_WMEMPCPY)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCSDUP''@|$(HAVE_DECL_WCSDUP)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \ -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|g' \ -e 's|@''REPLACE_WMEMPCPY''@|$(REPLACE_WMEMPCPY)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t EXTRA_DIST += wchar.in.h ## end gnulib module wchar ## begin gnulib module wctype-h BUILT_SOURCES += wctype.h libgnu_la_SOURCES += wctype-h.c # We need the following in order to create <wctype.h> when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ -e 's/@''GNULIB_ISWBLANK''@/$(GL_GNULIB_ISWBLANK)/g' \ -e 's/@''GNULIB_ISWDIGIT''@/$(GL_GNULIB_ISWDIGIT)/g' \ -e 's/@''GNULIB_ISWXDIGIT''@/$(GL_GNULIB_ISWXDIGIT)/g' \ -e 's/@''GNULIB_WCTYPE''@/$(GL_GNULIB_WCTYPE)/g' \ -e 's/@''GNULIB_ISWCTYPE''@/$(GL_GNULIB_ISWCTYPE)/g' \ -e 's/@''GNULIB_WCTRANS''@/$(GL_GNULIB_WCTRANS)/g' \ -e 's/@''GNULIB_TOWCTRANS''@/$(GL_GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWDIGIT''@/$(REPLACE_ISWDIGIT)/g' \ -e 's/@''REPLACE_ISWXDIGIT''@/$(REPLACE_ISWXDIGIT)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/wctype.in.h > $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t EXTRA_DIST += wctype.in.h ## end gnulib module wctype-h ## begin gnulib module xalloc libgnu_la_SOURCES += xmalloc.c EXTRA_DIST += xalloc.h ## end gnulib module xalloc ## begin gnulib module xalloc-die libgnu_la_SOURCES += xalloc-die.c EXTRA_DIST += xalloc.h ## end gnulib module xalloc-die ## begin gnulib module xalloc-oversized EXTRA_DIST += xalloc-oversized.h ## end gnulib module xalloc-oversized ## begin gnulib module xgethostname libgnu_la_SOURCES += xgethostname.h xgethostname.c EXTRA_DIST += xgetaname-impl.h ## end gnulib module xgethostname ## begin gnulib module xstrndup libgnu_la_SOURCES += xstrndup.h xstrndup.c ## end gnulib module xstrndup ## begin gnulib module xstrtol libgnu_la_SOURCES += xstrtol.c xstrtoul.c EXTRA_DIST += xstrtol.h ## end gnulib module xstrtol mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : distclean-local: distclean-gnulib-libobjs distclean-gnulib-libobjs: -rm -f @gl_LIBOBJDEPS@ maintainer-clean-local: distclean-gnulib-libobjs ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00001120372�14445132055�012166� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2023 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: # gnulib-tool --import --local-dir=gl --local-dir=gl-mod/bootstrap \ # --lib=libgnu \ # --source-base=lib \ # --m4-base=m4 \ # --po-base=po-gnulib \ # --doc-base=doc \ # --tests-base=tests \ # --aux-dir=build-aux \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --po-domain=a2ps \ # argmatch \ # backupfile \ # bootstrap \ # dirname \ # filenamecat \ # gettext-h \ # havelib \ # isdir \ # maintainer-makefile \ # manywarnings \ # mempcpy \ # obstack \ # readme-release \ # sig2str \ # stpncpy \ # strchrnul \ # strverscmp \ # version-etc-fsf \ # xalloc \ # xgethostname \ # xstrndup \ # xstrtol VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @GL_COND_OBJ_CANONICALIZE_LGPL_TRUE@am__append_1 = canonicalize-lgpl.c @GL_COND_OBJ_CHDIR_LONG_TRUE@am__append_2 = chdir-long.c @GL_COND_OBJ_CLOSE_TRUE@am__append_3 = close.c @GL_COND_OBJ_CLOSEDIR_TRUE@am__append_4 = closedir.c @GL_COND_OBJ_DIRFD_TRUE@am__append_5 = dirfd.c @GL_COND_OBJ_DUP_TRUE@am__append_6 = dup.c @GL_COND_OBJ_DUP2_TRUE@am__append_7 = dup2.c @GL_COND_OBJ_ERROR_TRUE@am__append_8 = error.c @GL_COND_OBJ_FCHDIR_TRUE@am__append_9 = fchdir.c @GL_COND_OBJ_FCNTL_TRUE@am__append_10 = fcntl.c @GL_COND_OBJ_FDOPENDIR_TRUE@am__append_11 = fdopendir.c @GL_COND_OBJ_FREE_TRUE@am__append_12 = free.c @GL_COND_OBJ_FSTAT_TRUE@am__append_13 = fstat.c @GL_COND_OBJ_FSTATAT_TRUE@am__append_14 = fstatat.c @GL_COND_OBJ_GETCWD_LGPL_TRUE@am__append_15 = getcwd-lgpl.c @GL_COND_OBJ_GETDTABLESIZE_TRUE@am__append_16 = getdtablesize.c @GL_COND_OBJ_GETHOSTNAME_TRUE@am__append_17 = gethostname.c @GL_COND_OBJ_GETPROGNAME_TRUE@am__append_18 = getprogname.c @GL_COND_OBJ_LSTAT_TRUE@am__append_19 = lstat.c @GL_COND_OBJ_MBRTOWC_TRUE@am__append_20 = mbrtowc.c @GL_COND_OBJ_MBSINIT_TRUE@am__append_21 = mbsinit.c @GL_COND_OBJ_MEMCHR_TRUE@am__append_22 = memchr.c @GL_COND_OBJ_MEMPCPY_TRUE@am__append_23 = mempcpy.c @GL_COND_OBJ_MEMRCHR_TRUE@am__append_24 = memrchr.c @GL_COND_OBJ_MSVC_INVAL_TRUE@am__append_25 = msvc-inval.c @GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__append_26 = msvc-nothrow.c @GL_COND_OBJ_OBSTACK_TRUE@am__append_27 = obstack.c @GL_COND_OBJ_OPEN_TRUE@am__append_28 = open.c @GL_COND_OBJ_OPENAT_TRUE@am__append_29 = openat.c @GL_COND_OBJ_OPENDIR_TRUE@am__append_30 = opendir.c @GL_COND_OBJ_PIPE_TRUE@am__append_31 = pipe.c @GL_COND_OBJ_RAWMEMCHR_TRUE@am__append_32 = rawmemchr.c @GL_COND_OBJ_READDIR_TRUE@am__append_33 = readdir.c @GL_COND_OBJ_READLINK_TRUE@am__append_34 = readlink.c @GL_COND_OBJ_READLINKAT_TRUE@am__append_35 = readlinkat.c @GL_COND_OBJ_REALLOCARRAY_TRUE@am__append_36 = reallocarray.c @GL_COND_OBJ_RENAME_TRUE@am__append_37 = rename.c @GL_COND_OBJ_RMDIR_TRUE@am__append_38 = rmdir.c @GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__append_39 = setlocale-lock.c @GL_COND_OBJ_SIG2STR_TRUE@am__append_40 = sig2str.c @GL_COND_OBJ_STAT_TRUE@am__append_41 = stat.c @GL_COND_OBJ_STDIO_READ_TRUE@am__append_42 = stdio-read.c @GL_COND_OBJ_STDIO_WRITE_TRUE@am__append_43 = stdio-write.c @GL_COND_OBJ_STPNCPY_TRUE@am__append_44 = stpncpy.c @GL_COND_OBJ_STRCHRNUL_TRUE@am__append_45 = strchrnul.c @GL_COND_OBJ_STRDUP_TRUE@am__append_46 = strdup.c @GL_COND_OBJ_STRERROR_TRUE@am__append_47 = strerror.c @GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__append_48 = strerror-override.c @GL_COND_OBJ_STRNDUP_TRUE@am__append_49 = strndup.c @GL_COND_OBJ_STRNLEN_TRUE@am__append_50 = strnlen.c @GL_COND_OBJ_STRVERSCMP_TRUE@am__append_51 = strverscmp.c subdir = lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am__libgnu_la_SOURCES_DIST = argmatch.c openat-priv.h openat-proc.c \ backupfile.c backup-find.c basename-lgpl.c c-ctype.h c-ctype.c \ c-strcase.h c-strcasecmp.c c-strncasecmp.c canonicalize-lgpl.c \ chdir-long.c cloexec.c close.c closedir.c dirfd.c dirname.c \ basename.c dirname-lgpl.c stripslash.c dup.c dup2.c error.c \ exitfail.c fchdir.c fcntl.c creat-safer.c open-safer.c \ fd-hook.c fd-safer-flag.c dup-safer-flag.c fdopendir.c \ filenamecat.c filenamecat-lgpl.c free.c fstat.c fstatat.c \ getcwd-lgpl.c getdtablesize.c gethostname.c getprogname.c \ gettext.h malloc/scratch_buffer_grow.c \ malloc/scratch_buffer_grow_preserve.c \ malloc/scratch_buffer_set_array_size.c hard-locale.c ialloc.c \ idx.h isdir.c localcharset.c lstat.c malloca.c mbrtowc.c \ mbsinit.c memchr.c mempcpy.c memrchr.c minmax.h msvc-inval.c \ msvc-nothrow.c obstack.c open.c openat.c openat-die.c \ openat-safer.c opendir.c opendirat.c pipe.c quotearg.c \ rawmemchr.c readdir.c readlink.c readlinkat.c reallocarray.c \ rename.c renameatu.c rmdir.c save-cwd.c setlocale_null.c \ setlocale-lock.c sig2str.c sockets.h sockets.c stat.c \ stat-time.c stdio-read.c stdio-write.c stpncpy.c strchrnul.c \ strdup.c strerror.c strerror-override.c strndup.c strnlen.c \ strverscmp.c sys_socket.c unistd.c dup-safer.c fd-safer.c \ pipe-safer.c version-etc.h version-etc.c version-etc-fsf.c \ wctype-h.c xmalloc.c xalloc-die.c xgethostname.h \ xgethostname.c xstrndup.h xstrndup.c xstrtol.c xstrtoul.c @GL_COND_OBJ_CANONICALIZE_LGPL_TRUE@am__objects_1 = libgnu_la-canonicalize-lgpl.lo @GL_COND_OBJ_CHDIR_LONG_TRUE@am__objects_2 = libgnu_la-chdir-long.lo @GL_COND_OBJ_CLOSE_TRUE@am__objects_3 = libgnu_la-close.lo @GL_COND_OBJ_CLOSEDIR_TRUE@am__objects_4 = libgnu_la-closedir.lo @GL_COND_OBJ_DIRFD_TRUE@am__objects_5 = libgnu_la-dirfd.lo @GL_COND_OBJ_DUP_TRUE@am__objects_6 = libgnu_la-dup.lo @GL_COND_OBJ_DUP2_TRUE@am__objects_7 = libgnu_la-dup2.lo @GL_COND_OBJ_ERROR_TRUE@am__objects_8 = libgnu_la-error.lo @GL_COND_OBJ_FCHDIR_TRUE@am__objects_9 = libgnu_la-fchdir.lo @GL_COND_OBJ_FCNTL_TRUE@am__objects_10 = libgnu_la-fcntl.lo @GL_COND_OBJ_FDOPENDIR_TRUE@am__objects_11 = libgnu_la-fdopendir.lo @GL_COND_OBJ_FREE_TRUE@am__objects_12 = libgnu_la-free.lo @GL_COND_OBJ_FSTAT_TRUE@am__objects_13 = libgnu_la-fstat.lo @GL_COND_OBJ_FSTATAT_TRUE@am__objects_14 = libgnu_la-fstatat.lo @GL_COND_OBJ_GETCWD_LGPL_TRUE@am__objects_15 = \ @GL_COND_OBJ_GETCWD_LGPL_TRUE@ libgnu_la-getcwd-lgpl.lo @GL_COND_OBJ_GETDTABLESIZE_TRUE@am__objects_16 = \ @GL_COND_OBJ_GETDTABLESIZE_TRUE@ libgnu_la-getdtablesize.lo @GL_COND_OBJ_GETHOSTNAME_TRUE@am__objects_17 = \ @GL_COND_OBJ_GETHOSTNAME_TRUE@ libgnu_la-gethostname.lo @GL_COND_OBJ_GETPROGNAME_TRUE@am__objects_18 = \ @GL_COND_OBJ_GETPROGNAME_TRUE@ libgnu_la-getprogname.lo am__dirstamp = $(am__leading_dot)dirstamp @GL_COND_OBJ_LSTAT_TRUE@am__objects_19 = libgnu_la-lstat.lo @GL_COND_OBJ_MBRTOWC_TRUE@am__objects_20 = libgnu_la-mbrtowc.lo @GL_COND_OBJ_MBSINIT_TRUE@am__objects_21 = libgnu_la-mbsinit.lo @GL_COND_OBJ_MEMCHR_TRUE@am__objects_22 = libgnu_la-memchr.lo @GL_COND_OBJ_MEMPCPY_TRUE@am__objects_23 = libgnu_la-mempcpy.lo @GL_COND_OBJ_MEMRCHR_TRUE@am__objects_24 = libgnu_la-memrchr.lo @GL_COND_OBJ_MSVC_INVAL_TRUE@am__objects_25 = libgnu_la-msvc-inval.lo @GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__objects_26 = \ @GL_COND_OBJ_MSVC_NOTHROW_TRUE@ libgnu_la-msvc-nothrow.lo @GL_COND_OBJ_OBSTACK_TRUE@am__objects_27 = libgnu_la-obstack.lo @GL_COND_OBJ_OPEN_TRUE@am__objects_28 = libgnu_la-open.lo @GL_COND_OBJ_OPENAT_TRUE@am__objects_29 = libgnu_la-openat.lo @GL_COND_OBJ_OPENDIR_TRUE@am__objects_30 = libgnu_la-opendir.lo @GL_COND_OBJ_PIPE_TRUE@am__objects_31 = libgnu_la-pipe.lo @GL_COND_OBJ_RAWMEMCHR_TRUE@am__objects_32 = libgnu_la-rawmemchr.lo @GL_COND_OBJ_READDIR_TRUE@am__objects_33 = libgnu_la-readdir.lo @GL_COND_OBJ_READLINK_TRUE@am__objects_34 = libgnu_la-readlink.lo @GL_COND_OBJ_READLINKAT_TRUE@am__objects_35 = libgnu_la-readlinkat.lo @GL_COND_OBJ_REALLOCARRAY_TRUE@am__objects_36 = \ @GL_COND_OBJ_REALLOCARRAY_TRUE@ libgnu_la-reallocarray.lo @GL_COND_OBJ_RENAME_TRUE@am__objects_37 = libgnu_la-rename.lo @GL_COND_OBJ_RMDIR_TRUE@am__objects_38 = libgnu_la-rmdir.lo @GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__objects_39 = \ @GL_COND_OBJ_SETLOCALE_LOCK_TRUE@ libgnu_la-setlocale-lock.lo @GL_COND_OBJ_SIG2STR_TRUE@am__objects_40 = libgnu_la-sig2str.lo @GL_COND_OBJ_STAT_TRUE@am__objects_41 = libgnu_la-stat.lo @GL_COND_OBJ_STDIO_READ_TRUE@am__objects_42 = libgnu_la-stdio-read.lo @GL_COND_OBJ_STDIO_WRITE_TRUE@am__objects_43 = \ @GL_COND_OBJ_STDIO_WRITE_TRUE@ libgnu_la-stdio-write.lo @GL_COND_OBJ_STPNCPY_TRUE@am__objects_44 = libgnu_la-stpncpy.lo @GL_COND_OBJ_STRCHRNUL_TRUE@am__objects_45 = libgnu_la-strchrnul.lo @GL_COND_OBJ_STRDUP_TRUE@am__objects_46 = libgnu_la-strdup.lo @GL_COND_OBJ_STRERROR_TRUE@am__objects_47 = libgnu_la-strerror.lo @GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__objects_48 = libgnu_la-strerror-override.lo @GL_COND_OBJ_STRNDUP_TRUE@am__objects_49 = libgnu_la-strndup.lo @GL_COND_OBJ_STRNLEN_TRUE@am__objects_50 = libgnu_la-strnlen.lo @GL_COND_OBJ_STRVERSCMP_TRUE@am__objects_51 = libgnu_la-strverscmp.lo am_libgnu_la_OBJECTS = libgnu_la-argmatch.lo libgnu_la-openat-proc.lo \ libgnu_la-backupfile.lo libgnu_la-backup-find.lo \ libgnu_la-basename-lgpl.lo libgnu_la-c-ctype.lo \ libgnu_la-c-strcasecmp.lo libgnu_la-c-strncasecmp.lo \ $(am__objects_1) $(am__objects_2) libgnu_la-cloexec.lo \ $(am__objects_3) $(am__objects_4) $(am__objects_5) \ libgnu_la-dirname.lo libgnu_la-basename.lo \ libgnu_la-dirname-lgpl.lo libgnu_la-stripslash.lo \ $(am__objects_6) $(am__objects_7) $(am__objects_8) \ libgnu_la-exitfail.lo $(am__objects_9) $(am__objects_10) \ libgnu_la-creat-safer.lo libgnu_la-open-safer.lo \ libgnu_la-fd-hook.lo libgnu_la-fd-safer-flag.lo \ libgnu_la-dup-safer-flag.lo $(am__objects_11) \ libgnu_la-filenamecat.lo libgnu_la-filenamecat-lgpl.lo \ $(am__objects_12) $(am__objects_13) $(am__objects_14) \ $(am__objects_15) $(am__objects_16) $(am__objects_17) \ $(am__objects_18) malloc/libgnu_la-scratch_buffer_grow.lo \ malloc/libgnu_la-scratch_buffer_grow_preserve.lo \ malloc/libgnu_la-scratch_buffer_set_array_size.lo \ libgnu_la-hard-locale.lo libgnu_la-ialloc.lo \ libgnu_la-isdir.lo libgnu_la-localcharset.lo $(am__objects_19) \ libgnu_la-malloca.lo $(am__objects_20) $(am__objects_21) \ $(am__objects_22) $(am__objects_23) $(am__objects_24) \ $(am__objects_25) $(am__objects_26) $(am__objects_27) \ $(am__objects_28) $(am__objects_29) libgnu_la-openat-die.lo \ libgnu_la-openat-safer.lo $(am__objects_30) \ libgnu_la-opendirat.lo $(am__objects_31) libgnu_la-quotearg.lo \ $(am__objects_32) $(am__objects_33) $(am__objects_34) \ $(am__objects_35) $(am__objects_36) $(am__objects_37) \ libgnu_la-renameatu.lo $(am__objects_38) libgnu_la-save-cwd.lo \ libgnu_la-setlocale_null.lo $(am__objects_39) \ $(am__objects_40) libgnu_la-sockets.lo $(am__objects_41) \ libgnu_la-stat-time.lo $(am__objects_42) $(am__objects_43) \ $(am__objects_44) $(am__objects_45) $(am__objects_46) \ $(am__objects_47) $(am__objects_48) $(am__objects_49) \ $(am__objects_50) $(am__objects_51) libgnu_la-sys_socket.lo \ libgnu_la-unistd.lo libgnu_la-dup-safer.lo \ libgnu_la-fd-safer.lo libgnu_la-pipe-safer.lo \ libgnu_la-version-etc.lo libgnu_la-version-etc-fsf.lo \ libgnu_la-wctype-h.lo libgnu_la-xmalloc.lo \ libgnu_la-xalloc-die.lo libgnu_la-xgethostname.lo \ libgnu_la-xstrndup.lo libgnu_la-xstrtol.lo \ libgnu_la-xstrtoul.lo libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgnu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgnu_la_CFLAGS) \ $(CFLAGS) $(libgnu_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/libgnu_la-argmatch.Plo \ ./$(DEPDIR)/libgnu_la-at-func.Plo \ ./$(DEPDIR)/libgnu_la-at-func2.Plo \ ./$(DEPDIR)/libgnu_la-backup-find.Plo \ ./$(DEPDIR)/libgnu_la-backupfile.Plo \ ./$(DEPDIR)/libgnu_la-basename-lgpl.Plo \ ./$(DEPDIR)/libgnu_la-basename.Plo \ ./$(DEPDIR)/libgnu_la-c-ctype.Plo \ ./$(DEPDIR)/libgnu_la-c-strcasecmp.Plo \ ./$(DEPDIR)/libgnu_la-c-strncasecmp.Plo \ ./$(DEPDIR)/libgnu_la-calloc.Plo \ ./$(DEPDIR)/libgnu_la-canonicalize-lgpl.Plo \ ./$(DEPDIR)/libgnu_la-chdir-long.Plo \ ./$(DEPDIR)/libgnu_la-cloexec.Plo \ ./$(DEPDIR)/libgnu_la-close.Plo \ ./$(DEPDIR)/libgnu_la-closedir.Plo \ ./$(DEPDIR)/libgnu_la-creat-safer.Plo \ ./$(DEPDIR)/libgnu_la-dirfd.Plo \ ./$(DEPDIR)/libgnu_la-dirname-lgpl.Plo \ ./$(DEPDIR)/libgnu_la-dirname.Plo \ ./$(DEPDIR)/libgnu_la-dup-safer-flag.Plo \ ./$(DEPDIR)/libgnu_la-dup-safer.Plo \ ./$(DEPDIR)/libgnu_la-dup.Plo ./$(DEPDIR)/libgnu_la-dup2.Plo \ ./$(DEPDIR)/libgnu_la-error.Plo \ ./$(DEPDIR)/libgnu_la-exitfail.Plo \ ./$(DEPDIR)/libgnu_la-fchdir.Plo \ ./$(DEPDIR)/libgnu_la-fcntl.Plo \ ./$(DEPDIR)/libgnu_la-fd-hook.Plo \ ./$(DEPDIR)/libgnu_la-fd-safer-flag.Plo \ ./$(DEPDIR)/libgnu_la-fd-safer.Plo \ ./$(DEPDIR)/libgnu_la-fdopendir.Plo \ ./$(DEPDIR)/libgnu_la-filenamecat-lgpl.Plo \ ./$(DEPDIR)/libgnu_la-filenamecat.Plo \ ./$(DEPDIR)/libgnu_la-free.Plo ./$(DEPDIR)/libgnu_la-fstat.Plo \ ./$(DEPDIR)/libgnu_la-fstatat.Plo \ ./$(DEPDIR)/libgnu_la-getcwd-lgpl.Plo \ ./$(DEPDIR)/libgnu_la-getdtablesize.Plo \ ./$(DEPDIR)/libgnu_la-gethostname.Plo \ ./$(DEPDIR)/libgnu_la-getprogname.Plo \ ./$(DEPDIR)/libgnu_la-hard-locale.Plo \ ./$(DEPDIR)/libgnu_la-ialloc.Plo \ ./$(DEPDIR)/libgnu_la-isdir.Plo \ ./$(DEPDIR)/libgnu_la-lc-charset-dispatch.Plo \ ./$(DEPDIR)/libgnu_la-localcharset.Plo \ ./$(DEPDIR)/libgnu_la-lstat.Plo \ ./$(DEPDIR)/libgnu_la-malloc.Plo \ ./$(DEPDIR)/libgnu_la-malloca.Plo \ ./$(DEPDIR)/libgnu_la-mbrtowc.Plo \ ./$(DEPDIR)/libgnu_la-mbsinit.Plo \ ./$(DEPDIR)/libgnu_la-mbtowc-lock.Plo \ ./$(DEPDIR)/libgnu_la-memchr.Plo \ ./$(DEPDIR)/libgnu_la-mempcpy.Plo \ ./$(DEPDIR)/libgnu_la-memrchr.Plo \ ./$(DEPDIR)/libgnu_la-msvc-inval.Plo \ ./$(DEPDIR)/libgnu_la-msvc-nothrow.Plo \ ./$(DEPDIR)/libgnu_la-obstack.Plo \ ./$(DEPDIR)/libgnu_la-open-safer.Plo \ ./$(DEPDIR)/libgnu_la-open.Plo \ ./$(DEPDIR)/libgnu_la-openat-die.Plo \ ./$(DEPDIR)/libgnu_la-openat-proc.Plo \ ./$(DEPDIR)/libgnu_la-openat-safer.Plo \ ./$(DEPDIR)/libgnu_la-openat.Plo \ ./$(DEPDIR)/libgnu_la-opendir.Plo \ ./$(DEPDIR)/libgnu_la-opendirat.Plo \ ./$(DEPDIR)/libgnu_la-pipe-safer.Plo \ ./$(DEPDIR)/libgnu_la-pipe.Plo \ ./$(DEPDIR)/libgnu_la-quotearg.Plo \ ./$(DEPDIR)/libgnu_la-rawmemchr.Plo \ ./$(DEPDIR)/libgnu_la-readdir.Plo \ ./$(DEPDIR)/libgnu_la-readlink.Plo \ ./$(DEPDIR)/libgnu_la-readlinkat.Plo \ ./$(DEPDIR)/libgnu_la-realloc.Plo \ ./$(DEPDIR)/libgnu_la-reallocarray.Plo \ ./$(DEPDIR)/libgnu_la-rename.Plo \ ./$(DEPDIR)/libgnu_la-renameatu.Plo \ ./$(DEPDIR)/libgnu_la-rmdir.Plo \ ./$(DEPDIR)/libgnu_la-save-cwd.Plo \ ./$(DEPDIR)/libgnu_la-setlocale-lock.Plo \ ./$(DEPDIR)/libgnu_la-setlocale_null.Plo \ ./$(DEPDIR)/libgnu_la-sig2str.Plo \ ./$(DEPDIR)/libgnu_la-sockets.Plo \ ./$(DEPDIR)/libgnu_la-stat-time.Plo \ ./$(DEPDIR)/libgnu_la-stat-w32.Plo \ ./$(DEPDIR)/libgnu_la-stat.Plo \ ./$(DEPDIR)/libgnu_la-stdio-read.Plo \ ./$(DEPDIR)/libgnu_la-stdio-write.Plo \ ./$(DEPDIR)/libgnu_la-stpncpy.Plo \ ./$(DEPDIR)/libgnu_la-strchrnul.Plo \ ./$(DEPDIR)/libgnu_la-strdup.Plo \ ./$(DEPDIR)/libgnu_la-strerror-override.Plo \ ./$(DEPDIR)/libgnu_la-strerror.Plo \ ./$(DEPDIR)/libgnu_la-stripslash.Plo \ ./$(DEPDIR)/libgnu_la-strndup.Plo \ ./$(DEPDIR)/libgnu_la-strnlen.Plo \ ./$(DEPDIR)/libgnu_la-strverscmp.Plo \ ./$(DEPDIR)/libgnu_la-sys_socket.Plo \ ./$(DEPDIR)/libgnu_la-unistd.Plo \ ./$(DEPDIR)/libgnu_la-version-etc-fsf.Plo \ ./$(DEPDIR)/libgnu_la-version-etc.Plo \ ./$(DEPDIR)/libgnu_la-wctype-h.Plo \ ./$(DEPDIR)/libgnu_la-xalloc-die.Plo \ ./$(DEPDIR)/libgnu_la-xgethostname.Plo \ ./$(DEPDIR)/libgnu_la-xmalloc.Plo \ ./$(DEPDIR)/libgnu_la-xstrndup.Plo \ ./$(DEPDIR)/libgnu_la-xstrtol.Plo \ ./$(DEPDIR)/libgnu_la-xstrtoul.Plo \ malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow.Plo \ malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow_preserve.Plo \ malloc/$(DEPDIR)/libgnu_la-scratch_buffer_set_array_size.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES) DIST_SOURCES = $(am__libgnu_la_SOURCES_DIST) \ $(EXTRA_libgnu_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.14 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = libgnu.la EXTRA_DIST = alignof.h alloca.in.h \ $(top_srcdir)/build-aux/announce-gen argmatch.h assert.in.h \ verify.h assure.h attribute.h backup-internal.h backupfile.h \ basename-lgpl.h $(top_srcdir)/build-aux/bootstrap.in \ c-strcaseeq.h calloc.c calloc.c chdir-long.h cloexec.h \ dirent-private.h dirent.in.h stripslash.c dirname.h \ $(top_srcdir)/build-aux/do-release-commit-and-tag \ eloop-threshold.h errno.in.h error.in.h exitfail.h \ $(top_srcdir)/build-aux/extract-trace fcntl.in.h fcntl--.h \ fcntl-safer.h fd-hook.h filename.h filenamecat.h stat-w32.c \ stat-w32.h at-func.c $(top_srcdir)/build-aux/funclib.sh \ $(top_srcdir)/build-aux/gendocs.sh w32sock.h getprogname.h \ malloc/scratch_buffer.h scratch_buffer.h \ $(top_srcdir)/build-aux/gnu-web-doc-update \ $(top_srcdir)/GNUmakefile $(top_srcdir)/build-aux/gnupload \ hard-locale.h $(top_srcdir)/build-aux/config.rpath ialloc.h \ $(top_srcdir)/build-aux/inline-source intprops-internal.h \ intprops.h inttypes.in.h isdir.h cdefs.h libc-config.h \ limits.in.h localcharset.h locale.in.h $(top_srcdir)/maint.mk \ malloc.c malloc.c malloca.h lc-charset-dispatch.c \ lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h \ mbtowc-lock.c mbtowc-lock.h windows-initguard.h \ memchr.valgrind msvc-inval.h msvc-nothrow.h obstack.h openat.h \ fcntl--.h fcntl-safer.h dirent-private.h opendirat.h \ $(top_srcdir)/build-aux/options-parser pathmax.h quote.h \ quote.h quotearg.h rawmemchr.valgrind dirent-private.h \ at-func.c realloc.c realloc.c at-func2.c renameatu.h \ same-inode.h save-cwd.h setlocale_null.h windows-initguard.h \ sig2str.h _Noreturn.h arg-nonnull.h c++defs.h warn-on-use.h \ w32sock.h stat-w32.c stat-w32.h stat-time.h stdarg.in.h \ intprops-internal.h stdckdint.in.h stddef.in.h stdint.in.h \ stdio.in.h stdlib.in.h strchrnul.valgrind streq.h \ strerror-override.h string.in.h sys_socket.in.h sys_stat.in.h \ sys_types.in.h sys_uio.in.h time.in.h unistd.in.h unistd--.h \ unistd-safer.h $(top_srcdir)/build-aux/useless-if-before-free \ $(top_srcdir)/build-aux/vc-list-files verify.h wchar.in.h \ wctype.in.h xalloc.h xalloc.h xalloc-oversized.h \ xgetaname-impl.h xstrtol.h BUILT_SOURCES = $(ALLOCA_H) $(ASSERT_H) dirent.h $(ERRNO_H) $(ERROR_H) \ fcntl.h malloc/scratch_buffer.gl.h inttypes.h $(LIMITS_H) \ locale.h $(STDARG_H) $(STDCKDINT_H) $(STDDEF_H) $(STDINT_H) \ stdio.h stdlib.h string.h sys/socket.h sys/stat.h sys/types.h \ sys/uio.h time.h unistd.h wchar.h wctype.h SUFFIXES = MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t assert.h \ assert.h-t dirent.h dirent.h-t errno.h errno.h-t error.h \ error.h-t fcntl.h fcntl.h-t malloc/scratch_buffer.gl.h \ malloc/scratch_buffer.gl.h-t inttypes.h inttypes.h-t limits.h \ limits.h-t locale.h locale.h-t stdarg.h stdarg.h-t stdckdint.h \ stdckdint.h-t stddef.h stddef.h-t stdint.h stdint.h-t stdio.h \ stdio.h-t stdlib.h stdlib.h-t string.h string.h-t sys/socket.h \ sys/socket.h-t sys/stat.h sys/stat.h-t sys/types.h \ sys/types.h-t sys/uio.h sys/uio.h-t time.h time.h-t unistd.h \ unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t MOSTLYCLEANDIRS = sys sys sys CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = # No GNU Make output. AM_CPPFLAGS = -DDEFAULT_TEXT_DOMAIN=\"a2ps-gnulib\" AM_CFLAGS = libgnu_la_SOURCES = argmatch.c openat-priv.h openat-proc.c \ backupfile.c backup-find.c basename-lgpl.c c-ctype.h c-ctype.c \ c-strcase.h c-strcasecmp.c c-strncasecmp.c $(am__append_1) \ $(am__append_2) cloexec.c $(am__append_3) $(am__append_4) \ $(am__append_5) dirname.c basename.c dirname-lgpl.c \ stripslash.c $(am__append_6) $(am__append_7) $(am__append_8) \ exitfail.c $(am__append_9) $(am__append_10) creat-safer.c \ open-safer.c fd-hook.c fd-safer-flag.c dup-safer-flag.c \ $(am__append_11) filenamecat.c filenamecat-lgpl.c \ $(am__append_12) $(am__append_13) $(am__append_14) \ $(am__append_15) $(am__append_16) $(am__append_17) \ $(am__append_18) gettext.h malloc/scratch_buffer_grow.c \ malloc/scratch_buffer_grow_preserve.c \ malloc/scratch_buffer_set_array_size.c hard-locale.c ialloc.c \ idx.h isdir.c localcharset.c $(am__append_19) malloca.c \ $(am__append_20) $(am__append_21) $(am__append_22) \ $(am__append_23) $(am__append_24) minmax.h $(am__append_25) \ $(am__append_26) $(am__append_27) $(am__append_28) \ $(am__append_29) openat-die.c openat-safer.c $(am__append_30) \ opendirat.c $(am__append_31) quotearg.c $(am__append_32) \ $(am__append_33) $(am__append_34) $(am__append_35) \ $(am__append_36) $(am__append_37) renameatu.c $(am__append_38) \ save-cwd.c setlocale_null.c $(am__append_39) $(am__append_40) \ sockets.h sockets.c $(am__append_41) stat-time.c \ $(am__append_42) $(am__append_43) $(am__append_44) \ $(am__append_45) $(am__append_46) $(am__append_47) \ $(am__append_48) $(am__append_49) $(am__append_50) \ $(am__append_51) sys_socket.c unistd.c dup-safer.c fd-safer.c \ pipe-safer.c version-etc.h version-etc.c version-etc-fsf.c \ wctype-h.c xmalloc.c xalloc-die.c xgethostname.h \ xgethostname.c xstrndup.h xstrndup.c xstrtol.c xstrtoul.c libgnu_la_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) libgnu_la_LIBADD = $(gl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = calloc.c calloc.c stripslash.c stat-w32.c \ at-func.c malloc.c malloc.c lc-charset-dispatch.c \ mbtowc-lock.c at-func.c realloc.c realloc.c at-func2.c \ stat-w32.c libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(GETHOSTNAME_LIB) \ $(HARD_LOCALE_LIB) $(LIBSOCKET) $(LTLIBINTL) $(MBRTOWC_LIB) \ $(SETLOCALE_NULL_LIB) # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) # In 'sed', replace the pattern space with a "DO NOT EDIT" comment. SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */, # '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT". SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G # '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading # "DO_NOT_EDIT". Although this could be done more simply via: # SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t # the -n and 'w' avoid a fork+exec, at least when GNU Make is used. SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t' # Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that gl_V_at = $(AM_V_GEN) # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H = $(srcdir)/_Noreturn.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H = $(srcdir)/arg-nonnull.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H = $(srcdir)/c++defs.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H = $(srcdir)/warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits lib/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } malloc/$(am__dirstamp): @$(MKDIR_P) malloc @: > malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) malloc/$(DEPDIR) @: > malloc/$(DEPDIR)/$(am__dirstamp) malloc/libgnu_la-scratch_buffer_grow.lo: malloc/$(am__dirstamp) \ malloc/$(DEPDIR)/$(am__dirstamp) malloc/libgnu_la-scratch_buffer_grow_preserve.lo: \ malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp) malloc/libgnu_la-scratch_buffer_set_array_size.lo: \ malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp) libgnu.la: $(libgnu_la_OBJECTS) $(libgnu_la_DEPENDENCIES) $(EXTRA_libgnu_la_DEPENDENCIES) $(AM_V_CCLD)$(libgnu_la_LINK) $(libgnu_la_OBJECTS) $(libgnu_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f malloc/*.$(OBJEXT) -rm -f malloc/*.lo distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-argmatch.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-at-func.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-at-func2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-backup-find.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-backupfile.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-basename-lgpl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-basename.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-c-ctype.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-c-strcasecmp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-c-strncasecmp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-calloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-canonicalize-lgpl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-chdir-long.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-cloexec.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-close.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-closedir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-creat-safer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-dirfd.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-dirname-lgpl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-dirname.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-dup-safer-flag.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-dup-safer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-dup.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-dup2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-error.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-exitfail.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-fchdir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-fcntl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-fd-hook.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-fd-safer-flag.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-fd-safer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-fdopendir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-filenamecat-lgpl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-filenamecat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-free.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-fstat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-fstatat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-getcwd-lgpl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-getdtablesize.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-gethostname.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-getprogname.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-hard-locale.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-ialloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-isdir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-lc-charset-dispatch.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-localcharset.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-lstat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-malloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-malloca.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-mbrtowc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-mbsinit.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-mbtowc-lock.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-memchr.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-mempcpy.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-memrchr.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-msvc-inval.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-msvc-nothrow.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-obstack.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-open-safer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-open.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-openat-die.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-openat-proc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-openat-safer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-openat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-opendir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-opendirat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-pipe-safer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-pipe.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-quotearg.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-rawmemchr.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-readdir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-readlink.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-readlinkat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-realloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-reallocarray.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-rename.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-renameatu.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-rmdir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-save-cwd.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-setlocale-lock.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-setlocale_null.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-sig2str.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-sockets.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-stat-time.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-stat-w32.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-stat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-stdio-read.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-stdio-write.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-stpncpy.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-strchrnul.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-strdup.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-strerror-override.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-strerror.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-stripslash.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-strndup.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-strnlen.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-strverscmp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-sys_socket.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-unistd.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-version-etc-fsf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-version-etc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-wctype-h.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-xalloc-die.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-xgethostname.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-xmalloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-xstrndup.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-xstrtol.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_la-xstrtoul.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow_preserve.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_la-scratch_buffer_set_array_size.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgnu_la-argmatch.lo: argmatch.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-argmatch.lo -MD -MP -MF $(DEPDIR)/libgnu_la-argmatch.Tpo -c -o libgnu_la-argmatch.lo `test -f 'argmatch.c' || echo '$(srcdir)/'`argmatch.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-argmatch.Tpo $(DEPDIR)/libgnu_la-argmatch.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='argmatch.c' object='libgnu_la-argmatch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-argmatch.lo `test -f 'argmatch.c' || echo '$(srcdir)/'`argmatch.c libgnu_la-openat-proc.lo: openat-proc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-openat-proc.lo -MD -MP -MF $(DEPDIR)/libgnu_la-openat-proc.Tpo -c -o libgnu_la-openat-proc.lo `test -f 'openat-proc.c' || echo '$(srcdir)/'`openat-proc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-openat-proc.Tpo $(DEPDIR)/libgnu_la-openat-proc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='openat-proc.c' object='libgnu_la-openat-proc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-openat-proc.lo `test -f 'openat-proc.c' || echo '$(srcdir)/'`openat-proc.c libgnu_la-backupfile.lo: backupfile.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-backupfile.lo -MD -MP -MF $(DEPDIR)/libgnu_la-backupfile.Tpo -c -o libgnu_la-backupfile.lo `test -f 'backupfile.c' || echo '$(srcdir)/'`backupfile.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-backupfile.Tpo $(DEPDIR)/libgnu_la-backupfile.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backupfile.c' object='libgnu_la-backupfile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-backupfile.lo `test -f 'backupfile.c' || echo '$(srcdir)/'`backupfile.c libgnu_la-backup-find.lo: backup-find.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-backup-find.lo -MD -MP -MF $(DEPDIR)/libgnu_la-backup-find.Tpo -c -o libgnu_la-backup-find.lo `test -f 'backup-find.c' || echo '$(srcdir)/'`backup-find.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-backup-find.Tpo $(DEPDIR)/libgnu_la-backup-find.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backup-find.c' object='libgnu_la-backup-find.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-backup-find.lo `test -f 'backup-find.c' || echo '$(srcdir)/'`backup-find.c libgnu_la-basename-lgpl.lo: basename-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-basename-lgpl.lo -MD -MP -MF $(DEPDIR)/libgnu_la-basename-lgpl.Tpo -c -o libgnu_la-basename-lgpl.lo `test -f 'basename-lgpl.c' || echo '$(srcdir)/'`basename-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-basename-lgpl.Tpo $(DEPDIR)/libgnu_la-basename-lgpl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basename-lgpl.c' object='libgnu_la-basename-lgpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-basename-lgpl.lo `test -f 'basename-lgpl.c' || echo '$(srcdir)/'`basename-lgpl.c libgnu_la-c-ctype.lo: c-ctype.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-c-ctype.lo -MD -MP -MF $(DEPDIR)/libgnu_la-c-ctype.Tpo -c -o libgnu_la-c-ctype.lo `test -f 'c-ctype.c' || echo '$(srcdir)/'`c-ctype.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-c-ctype.Tpo $(DEPDIR)/libgnu_la-c-ctype.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='c-ctype.c' object='libgnu_la-c-ctype.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-c-ctype.lo `test -f 'c-ctype.c' || echo '$(srcdir)/'`c-ctype.c libgnu_la-c-strcasecmp.lo: c-strcasecmp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-c-strcasecmp.lo -MD -MP -MF $(DEPDIR)/libgnu_la-c-strcasecmp.Tpo -c -o libgnu_la-c-strcasecmp.lo `test -f 'c-strcasecmp.c' || echo '$(srcdir)/'`c-strcasecmp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-c-strcasecmp.Tpo $(DEPDIR)/libgnu_la-c-strcasecmp.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='c-strcasecmp.c' object='libgnu_la-c-strcasecmp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-c-strcasecmp.lo `test -f 'c-strcasecmp.c' || echo '$(srcdir)/'`c-strcasecmp.c libgnu_la-c-strncasecmp.lo: c-strncasecmp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-c-strncasecmp.lo -MD -MP -MF $(DEPDIR)/libgnu_la-c-strncasecmp.Tpo -c -o libgnu_la-c-strncasecmp.lo `test -f 'c-strncasecmp.c' || echo '$(srcdir)/'`c-strncasecmp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-c-strncasecmp.Tpo $(DEPDIR)/libgnu_la-c-strncasecmp.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='c-strncasecmp.c' object='libgnu_la-c-strncasecmp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-c-strncasecmp.lo `test -f 'c-strncasecmp.c' || echo '$(srcdir)/'`c-strncasecmp.c libgnu_la-canonicalize-lgpl.lo: canonicalize-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-canonicalize-lgpl.lo -MD -MP -MF $(DEPDIR)/libgnu_la-canonicalize-lgpl.Tpo -c -o libgnu_la-canonicalize-lgpl.lo `test -f 'canonicalize-lgpl.c' || echo '$(srcdir)/'`canonicalize-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-canonicalize-lgpl.Tpo $(DEPDIR)/libgnu_la-canonicalize-lgpl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='canonicalize-lgpl.c' object='libgnu_la-canonicalize-lgpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-canonicalize-lgpl.lo `test -f 'canonicalize-lgpl.c' || echo '$(srcdir)/'`canonicalize-lgpl.c libgnu_la-chdir-long.lo: chdir-long.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-chdir-long.lo -MD -MP -MF $(DEPDIR)/libgnu_la-chdir-long.Tpo -c -o libgnu_la-chdir-long.lo `test -f 'chdir-long.c' || echo '$(srcdir)/'`chdir-long.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-chdir-long.Tpo $(DEPDIR)/libgnu_la-chdir-long.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chdir-long.c' object='libgnu_la-chdir-long.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-chdir-long.lo `test -f 'chdir-long.c' || echo '$(srcdir)/'`chdir-long.c libgnu_la-cloexec.lo: cloexec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-cloexec.lo -MD -MP -MF $(DEPDIR)/libgnu_la-cloexec.Tpo -c -o libgnu_la-cloexec.lo `test -f 'cloexec.c' || echo '$(srcdir)/'`cloexec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-cloexec.Tpo $(DEPDIR)/libgnu_la-cloexec.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cloexec.c' object='libgnu_la-cloexec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-cloexec.lo `test -f 'cloexec.c' || echo '$(srcdir)/'`cloexec.c libgnu_la-close.lo: close.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-close.lo -MD -MP -MF $(DEPDIR)/libgnu_la-close.Tpo -c -o libgnu_la-close.lo `test -f 'close.c' || echo '$(srcdir)/'`close.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-close.Tpo $(DEPDIR)/libgnu_la-close.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='close.c' object='libgnu_la-close.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-close.lo `test -f 'close.c' || echo '$(srcdir)/'`close.c libgnu_la-closedir.lo: closedir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-closedir.lo -MD -MP -MF $(DEPDIR)/libgnu_la-closedir.Tpo -c -o libgnu_la-closedir.lo `test -f 'closedir.c' || echo '$(srcdir)/'`closedir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-closedir.Tpo $(DEPDIR)/libgnu_la-closedir.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='closedir.c' object='libgnu_la-closedir.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-closedir.lo `test -f 'closedir.c' || echo '$(srcdir)/'`closedir.c libgnu_la-dirfd.lo: dirfd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-dirfd.lo -MD -MP -MF $(DEPDIR)/libgnu_la-dirfd.Tpo -c -o libgnu_la-dirfd.lo `test -f 'dirfd.c' || echo '$(srcdir)/'`dirfd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-dirfd.Tpo $(DEPDIR)/libgnu_la-dirfd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirfd.c' object='libgnu_la-dirfd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-dirfd.lo `test -f 'dirfd.c' || echo '$(srcdir)/'`dirfd.c libgnu_la-dirname.lo: dirname.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-dirname.lo -MD -MP -MF $(DEPDIR)/libgnu_la-dirname.Tpo -c -o libgnu_la-dirname.lo `test -f 'dirname.c' || echo '$(srcdir)/'`dirname.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-dirname.Tpo $(DEPDIR)/libgnu_la-dirname.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirname.c' object='libgnu_la-dirname.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-dirname.lo `test -f 'dirname.c' || echo '$(srcdir)/'`dirname.c libgnu_la-basename.lo: basename.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-basename.lo -MD -MP -MF $(DEPDIR)/libgnu_la-basename.Tpo -c -o libgnu_la-basename.lo `test -f 'basename.c' || echo '$(srcdir)/'`basename.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-basename.Tpo $(DEPDIR)/libgnu_la-basename.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basename.c' object='libgnu_la-basename.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-basename.lo `test -f 'basename.c' || echo '$(srcdir)/'`basename.c libgnu_la-dirname-lgpl.lo: dirname-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-dirname-lgpl.lo -MD -MP -MF $(DEPDIR)/libgnu_la-dirname-lgpl.Tpo -c -o libgnu_la-dirname-lgpl.lo `test -f 'dirname-lgpl.c' || echo '$(srcdir)/'`dirname-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-dirname-lgpl.Tpo $(DEPDIR)/libgnu_la-dirname-lgpl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirname-lgpl.c' object='libgnu_la-dirname-lgpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-dirname-lgpl.lo `test -f 'dirname-lgpl.c' || echo '$(srcdir)/'`dirname-lgpl.c libgnu_la-stripslash.lo: stripslash.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-stripslash.lo -MD -MP -MF $(DEPDIR)/libgnu_la-stripslash.Tpo -c -o libgnu_la-stripslash.lo `test -f 'stripslash.c' || echo '$(srcdir)/'`stripslash.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-stripslash.Tpo $(DEPDIR)/libgnu_la-stripslash.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stripslash.c' object='libgnu_la-stripslash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-stripslash.lo `test -f 'stripslash.c' || echo '$(srcdir)/'`stripslash.c libgnu_la-dup.lo: dup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-dup.lo -MD -MP -MF $(DEPDIR)/libgnu_la-dup.Tpo -c -o libgnu_la-dup.lo `test -f 'dup.c' || echo '$(srcdir)/'`dup.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-dup.Tpo $(DEPDIR)/libgnu_la-dup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dup.c' object='libgnu_la-dup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-dup.lo `test -f 'dup.c' || echo '$(srcdir)/'`dup.c libgnu_la-dup2.lo: dup2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-dup2.lo -MD -MP -MF $(DEPDIR)/libgnu_la-dup2.Tpo -c -o libgnu_la-dup2.lo `test -f 'dup2.c' || echo '$(srcdir)/'`dup2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-dup2.Tpo $(DEPDIR)/libgnu_la-dup2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dup2.c' object='libgnu_la-dup2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-dup2.lo `test -f 'dup2.c' || echo '$(srcdir)/'`dup2.c libgnu_la-error.lo: error.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-error.lo -MD -MP -MF $(DEPDIR)/libgnu_la-error.Tpo -c -o libgnu_la-error.lo `test -f 'error.c' || echo '$(srcdir)/'`error.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-error.Tpo $(DEPDIR)/libgnu_la-error.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='error.c' object='libgnu_la-error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-error.lo `test -f 'error.c' || echo '$(srcdir)/'`error.c libgnu_la-exitfail.lo: exitfail.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-exitfail.lo -MD -MP -MF $(DEPDIR)/libgnu_la-exitfail.Tpo -c -o libgnu_la-exitfail.lo `test -f 'exitfail.c' || echo '$(srcdir)/'`exitfail.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-exitfail.Tpo $(DEPDIR)/libgnu_la-exitfail.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='exitfail.c' object='libgnu_la-exitfail.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-exitfail.lo `test -f 'exitfail.c' || echo '$(srcdir)/'`exitfail.c libgnu_la-fchdir.lo: fchdir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-fchdir.lo -MD -MP -MF $(DEPDIR)/libgnu_la-fchdir.Tpo -c -o libgnu_la-fchdir.lo `test -f 'fchdir.c' || echo '$(srcdir)/'`fchdir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-fchdir.Tpo $(DEPDIR)/libgnu_la-fchdir.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fchdir.c' object='libgnu_la-fchdir.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-fchdir.lo `test -f 'fchdir.c' || echo '$(srcdir)/'`fchdir.c libgnu_la-fcntl.lo: fcntl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-fcntl.lo -MD -MP -MF $(DEPDIR)/libgnu_la-fcntl.Tpo -c -o libgnu_la-fcntl.lo `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-fcntl.Tpo $(DEPDIR)/libgnu_la-fcntl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fcntl.c' object='libgnu_la-fcntl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-fcntl.lo `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c libgnu_la-creat-safer.lo: creat-safer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-creat-safer.lo -MD -MP -MF $(DEPDIR)/libgnu_la-creat-safer.Tpo -c -o libgnu_la-creat-safer.lo `test -f 'creat-safer.c' || echo '$(srcdir)/'`creat-safer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-creat-safer.Tpo $(DEPDIR)/libgnu_la-creat-safer.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='creat-safer.c' object='libgnu_la-creat-safer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-creat-safer.lo `test -f 'creat-safer.c' || echo '$(srcdir)/'`creat-safer.c libgnu_la-open-safer.lo: open-safer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-open-safer.lo -MD -MP -MF $(DEPDIR)/libgnu_la-open-safer.Tpo -c -o libgnu_la-open-safer.lo `test -f 'open-safer.c' || echo '$(srcdir)/'`open-safer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-open-safer.Tpo $(DEPDIR)/libgnu_la-open-safer.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open-safer.c' object='libgnu_la-open-safer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-open-safer.lo `test -f 'open-safer.c' || echo '$(srcdir)/'`open-safer.c libgnu_la-fd-hook.lo: fd-hook.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-fd-hook.lo -MD -MP -MF $(DEPDIR)/libgnu_la-fd-hook.Tpo -c -o libgnu_la-fd-hook.lo `test -f 'fd-hook.c' || echo '$(srcdir)/'`fd-hook.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-fd-hook.Tpo $(DEPDIR)/libgnu_la-fd-hook.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fd-hook.c' object='libgnu_la-fd-hook.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-fd-hook.lo `test -f 'fd-hook.c' || echo '$(srcdir)/'`fd-hook.c libgnu_la-fd-safer-flag.lo: fd-safer-flag.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-fd-safer-flag.lo -MD -MP -MF $(DEPDIR)/libgnu_la-fd-safer-flag.Tpo -c -o libgnu_la-fd-safer-flag.lo `test -f 'fd-safer-flag.c' || echo '$(srcdir)/'`fd-safer-flag.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-fd-safer-flag.Tpo $(DEPDIR)/libgnu_la-fd-safer-flag.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fd-safer-flag.c' object='libgnu_la-fd-safer-flag.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-fd-safer-flag.lo `test -f 'fd-safer-flag.c' || echo '$(srcdir)/'`fd-safer-flag.c libgnu_la-dup-safer-flag.lo: dup-safer-flag.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-dup-safer-flag.lo -MD -MP -MF $(DEPDIR)/libgnu_la-dup-safer-flag.Tpo -c -o libgnu_la-dup-safer-flag.lo `test -f 'dup-safer-flag.c' || echo '$(srcdir)/'`dup-safer-flag.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-dup-safer-flag.Tpo $(DEPDIR)/libgnu_la-dup-safer-flag.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dup-safer-flag.c' object='libgnu_la-dup-safer-flag.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-dup-safer-flag.lo `test -f 'dup-safer-flag.c' || echo '$(srcdir)/'`dup-safer-flag.c libgnu_la-fdopendir.lo: fdopendir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-fdopendir.lo -MD -MP -MF $(DEPDIR)/libgnu_la-fdopendir.Tpo -c -o libgnu_la-fdopendir.lo `test -f 'fdopendir.c' || echo '$(srcdir)/'`fdopendir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-fdopendir.Tpo $(DEPDIR)/libgnu_la-fdopendir.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fdopendir.c' object='libgnu_la-fdopendir.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-fdopendir.lo `test -f 'fdopendir.c' || echo '$(srcdir)/'`fdopendir.c libgnu_la-filenamecat.lo: filenamecat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-filenamecat.lo -MD -MP -MF $(DEPDIR)/libgnu_la-filenamecat.Tpo -c -o libgnu_la-filenamecat.lo `test -f 'filenamecat.c' || echo '$(srcdir)/'`filenamecat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-filenamecat.Tpo $(DEPDIR)/libgnu_la-filenamecat.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filenamecat.c' object='libgnu_la-filenamecat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-filenamecat.lo `test -f 'filenamecat.c' || echo '$(srcdir)/'`filenamecat.c libgnu_la-filenamecat-lgpl.lo: filenamecat-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-filenamecat-lgpl.lo -MD -MP -MF $(DEPDIR)/libgnu_la-filenamecat-lgpl.Tpo -c -o libgnu_la-filenamecat-lgpl.lo `test -f 'filenamecat-lgpl.c' || echo '$(srcdir)/'`filenamecat-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-filenamecat-lgpl.Tpo $(DEPDIR)/libgnu_la-filenamecat-lgpl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filenamecat-lgpl.c' object='libgnu_la-filenamecat-lgpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-filenamecat-lgpl.lo `test -f 'filenamecat-lgpl.c' || echo '$(srcdir)/'`filenamecat-lgpl.c libgnu_la-free.lo: free.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-free.lo -MD -MP -MF $(DEPDIR)/libgnu_la-free.Tpo -c -o libgnu_la-free.lo `test -f 'free.c' || echo '$(srcdir)/'`free.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-free.Tpo $(DEPDIR)/libgnu_la-free.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='free.c' object='libgnu_la-free.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-free.lo `test -f 'free.c' || echo '$(srcdir)/'`free.c libgnu_la-fstat.lo: fstat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-fstat.lo -MD -MP -MF $(DEPDIR)/libgnu_la-fstat.Tpo -c -o libgnu_la-fstat.lo `test -f 'fstat.c' || echo '$(srcdir)/'`fstat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-fstat.Tpo $(DEPDIR)/libgnu_la-fstat.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstat.c' object='libgnu_la-fstat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-fstat.lo `test -f 'fstat.c' || echo '$(srcdir)/'`fstat.c libgnu_la-fstatat.lo: fstatat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-fstatat.lo -MD -MP -MF $(DEPDIR)/libgnu_la-fstatat.Tpo -c -o libgnu_la-fstatat.lo `test -f 'fstatat.c' || echo '$(srcdir)/'`fstatat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-fstatat.Tpo $(DEPDIR)/libgnu_la-fstatat.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatat.c' object='libgnu_la-fstatat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-fstatat.lo `test -f 'fstatat.c' || echo '$(srcdir)/'`fstatat.c libgnu_la-getcwd-lgpl.lo: getcwd-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-getcwd-lgpl.lo -MD -MP -MF $(DEPDIR)/libgnu_la-getcwd-lgpl.Tpo -c -o libgnu_la-getcwd-lgpl.lo `test -f 'getcwd-lgpl.c' || echo '$(srcdir)/'`getcwd-lgpl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-getcwd-lgpl.Tpo $(DEPDIR)/libgnu_la-getcwd-lgpl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcwd-lgpl.c' object='libgnu_la-getcwd-lgpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-getcwd-lgpl.lo `test -f 'getcwd-lgpl.c' || echo '$(srcdir)/'`getcwd-lgpl.c libgnu_la-getdtablesize.lo: getdtablesize.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-getdtablesize.lo -MD -MP -MF $(DEPDIR)/libgnu_la-getdtablesize.Tpo -c -o libgnu_la-getdtablesize.lo `test -f 'getdtablesize.c' || echo '$(srcdir)/'`getdtablesize.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-getdtablesize.Tpo $(DEPDIR)/libgnu_la-getdtablesize.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getdtablesize.c' object='libgnu_la-getdtablesize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-getdtablesize.lo `test -f 'getdtablesize.c' || echo '$(srcdir)/'`getdtablesize.c libgnu_la-gethostname.lo: gethostname.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-gethostname.lo -MD -MP -MF $(DEPDIR)/libgnu_la-gethostname.Tpo -c -o libgnu_la-gethostname.lo `test -f 'gethostname.c' || echo '$(srcdir)/'`gethostname.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-gethostname.Tpo $(DEPDIR)/libgnu_la-gethostname.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gethostname.c' object='libgnu_la-gethostname.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-gethostname.lo `test -f 'gethostname.c' || echo '$(srcdir)/'`gethostname.c libgnu_la-getprogname.lo: getprogname.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-getprogname.lo -MD -MP -MF $(DEPDIR)/libgnu_la-getprogname.Tpo -c -o libgnu_la-getprogname.lo `test -f 'getprogname.c' || echo '$(srcdir)/'`getprogname.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-getprogname.Tpo $(DEPDIR)/libgnu_la-getprogname.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getprogname.c' object='libgnu_la-getprogname.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-getprogname.lo `test -f 'getprogname.c' || echo '$(srcdir)/'`getprogname.c malloc/libgnu_la-scratch_buffer_grow.lo: malloc/scratch_buffer_grow.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT malloc/libgnu_la-scratch_buffer_grow.lo -MD -MP -MF malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow.Tpo -c -o malloc/libgnu_la-scratch_buffer_grow.lo `test -f 'malloc/scratch_buffer_grow.c' || echo '$(srcdir)/'`malloc/scratch_buffer_grow.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow.Tpo malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/scratch_buffer_grow.c' object='malloc/libgnu_la-scratch_buffer_grow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_la-scratch_buffer_grow.lo `test -f 'malloc/scratch_buffer_grow.c' || echo '$(srcdir)/'`malloc/scratch_buffer_grow.c malloc/libgnu_la-scratch_buffer_grow_preserve.lo: malloc/scratch_buffer_grow_preserve.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT malloc/libgnu_la-scratch_buffer_grow_preserve.lo -MD -MP -MF malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow_preserve.Tpo -c -o malloc/libgnu_la-scratch_buffer_grow_preserve.lo `test -f 'malloc/scratch_buffer_grow_preserve.c' || echo '$(srcdir)/'`malloc/scratch_buffer_grow_preserve.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow_preserve.Tpo malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow_preserve.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/scratch_buffer_grow_preserve.c' object='malloc/libgnu_la-scratch_buffer_grow_preserve.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_la-scratch_buffer_grow_preserve.lo `test -f 'malloc/scratch_buffer_grow_preserve.c' || echo '$(srcdir)/'`malloc/scratch_buffer_grow_preserve.c malloc/libgnu_la-scratch_buffer_set_array_size.lo: malloc/scratch_buffer_set_array_size.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT malloc/libgnu_la-scratch_buffer_set_array_size.lo -MD -MP -MF malloc/$(DEPDIR)/libgnu_la-scratch_buffer_set_array_size.Tpo -c -o malloc/libgnu_la-scratch_buffer_set_array_size.lo `test -f 'malloc/scratch_buffer_set_array_size.c' || echo '$(srcdir)/'`malloc/scratch_buffer_set_array_size.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_la-scratch_buffer_set_array_size.Tpo malloc/$(DEPDIR)/libgnu_la-scratch_buffer_set_array_size.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/scratch_buffer_set_array_size.c' object='malloc/libgnu_la-scratch_buffer_set_array_size.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_la-scratch_buffer_set_array_size.lo `test -f 'malloc/scratch_buffer_set_array_size.c' || echo '$(srcdir)/'`malloc/scratch_buffer_set_array_size.c libgnu_la-hard-locale.lo: hard-locale.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-hard-locale.lo -MD -MP -MF $(DEPDIR)/libgnu_la-hard-locale.Tpo -c -o libgnu_la-hard-locale.lo `test -f 'hard-locale.c' || echo '$(srcdir)/'`hard-locale.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-hard-locale.Tpo $(DEPDIR)/libgnu_la-hard-locale.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hard-locale.c' object='libgnu_la-hard-locale.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-hard-locale.lo `test -f 'hard-locale.c' || echo '$(srcdir)/'`hard-locale.c libgnu_la-ialloc.lo: ialloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-ialloc.lo -MD -MP -MF $(DEPDIR)/libgnu_la-ialloc.Tpo -c -o libgnu_la-ialloc.lo `test -f 'ialloc.c' || echo '$(srcdir)/'`ialloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-ialloc.Tpo $(DEPDIR)/libgnu_la-ialloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ialloc.c' object='libgnu_la-ialloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-ialloc.lo `test -f 'ialloc.c' || echo '$(srcdir)/'`ialloc.c libgnu_la-isdir.lo: isdir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-isdir.lo -MD -MP -MF $(DEPDIR)/libgnu_la-isdir.Tpo -c -o libgnu_la-isdir.lo `test -f 'isdir.c' || echo '$(srcdir)/'`isdir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-isdir.Tpo $(DEPDIR)/libgnu_la-isdir.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='isdir.c' object='libgnu_la-isdir.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-isdir.lo `test -f 'isdir.c' || echo '$(srcdir)/'`isdir.c libgnu_la-localcharset.lo: localcharset.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-localcharset.lo -MD -MP -MF $(DEPDIR)/libgnu_la-localcharset.Tpo -c -o libgnu_la-localcharset.lo `test -f 'localcharset.c' || echo '$(srcdir)/'`localcharset.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-localcharset.Tpo $(DEPDIR)/libgnu_la-localcharset.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='localcharset.c' object='libgnu_la-localcharset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-localcharset.lo `test -f 'localcharset.c' || echo '$(srcdir)/'`localcharset.c libgnu_la-lstat.lo: lstat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-lstat.lo -MD -MP -MF $(DEPDIR)/libgnu_la-lstat.Tpo -c -o libgnu_la-lstat.lo `test -f 'lstat.c' || echo '$(srcdir)/'`lstat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-lstat.Tpo $(DEPDIR)/libgnu_la-lstat.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lstat.c' object='libgnu_la-lstat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-lstat.lo `test -f 'lstat.c' || echo '$(srcdir)/'`lstat.c libgnu_la-malloca.lo: malloca.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-malloca.lo -MD -MP -MF $(DEPDIR)/libgnu_la-malloca.Tpo -c -o libgnu_la-malloca.lo `test -f 'malloca.c' || echo '$(srcdir)/'`malloca.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-malloca.Tpo $(DEPDIR)/libgnu_la-malloca.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloca.c' object='libgnu_la-malloca.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-malloca.lo `test -f 'malloca.c' || echo '$(srcdir)/'`malloca.c libgnu_la-mbrtowc.lo: mbrtowc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-mbrtowc.lo -MD -MP -MF $(DEPDIR)/libgnu_la-mbrtowc.Tpo -c -o libgnu_la-mbrtowc.lo `test -f 'mbrtowc.c' || echo '$(srcdir)/'`mbrtowc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-mbrtowc.Tpo $(DEPDIR)/libgnu_la-mbrtowc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbrtowc.c' object='libgnu_la-mbrtowc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-mbrtowc.lo `test -f 'mbrtowc.c' || echo '$(srcdir)/'`mbrtowc.c libgnu_la-mbsinit.lo: mbsinit.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-mbsinit.lo -MD -MP -MF $(DEPDIR)/libgnu_la-mbsinit.Tpo -c -o libgnu_la-mbsinit.lo `test -f 'mbsinit.c' || echo '$(srcdir)/'`mbsinit.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-mbsinit.Tpo $(DEPDIR)/libgnu_la-mbsinit.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbsinit.c' object='libgnu_la-mbsinit.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-mbsinit.lo `test -f 'mbsinit.c' || echo '$(srcdir)/'`mbsinit.c libgnu_la-memchr.lo: memchr.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-memchr.lo -MD -MP -MF $(DEPDIR)/libgnu_la-memchr.Tpo -c -o libgnu_la-memchr.lo `test -f 'memchr.c' || echo '$(srcdir)/'`memchr.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-memchr.Tpo $(DEPDIR)/libgnu_la-memchr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='memchr.c' object='libgnu_la-memchr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-memchr.lo `test -f 'memchr.c' || echo '$(srcdir)/'`memchr.c libgnu_la-mempcpy.lo: mempcpy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-mempcpy.lo -MD -MP -MF $(DEPDIR)/libgnu_la-mempcpy.Tpo -c -o libgnu_la-mempcpy.lo `test -f 'mempcpy.c' || echo '$(srcdir)/'`mempcpy.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-mempcpy.Tpo $(DEPDIR)/libgnu_la-mempcpy.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mempcpy.c' object='libgnu_la-mempcpy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-mempcpy.lo `test -f 'mempcpy.c' || echo '$(srcdir)/'`mempcpy.c libgnu_la-memrchr.lo: memrchr.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-memrchr.lo -MD -MP -MF $(DEPDIR)/libgnu_la-memrchr.Tpo -c -o libgnu_la-memrchr.lo `test -f 'memrchr.c' || echo '$(srcdir)/'`memrchr.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-memrchr.Tpo $(DEPDIR)/libgnu_la-memrchr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='memrchr.c' object='libgnu_la-memrchr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-memrchr.lo `test -f 'memrchr.c' || echo '$(srcdir)/'`memrchr.c libgnu_la-msvc-inval.lo: msvc-inval.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-msvc-inval.lo -MD -MP -MF $(DEPDIR)/libgnu_la-msvc-inval.Tpo -c -o libgnu_la-msvc-inval.lo `test -f 'msvc-inval.c' || echo '$(srcdir)/'`msvc-inval.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-msvc-inval.Tpo $(DEPDIR)/libgnu_la-msvc-inval.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msvc-inval.c' object='libgnu_la-msvc-inval.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-msvc-inval.lo `test -f 'msvc-inval.c' || echo '$(srcdir)/'`msvc-inval.c libgnu_la-msvc-nothrow.lo: msvc-nothrow.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-msvc-nothrow.lo -MD -MP -MF $(DEPDIR)/libgnu_la-msvc-nothrow.Tpo -c -o libgnu_la-msvc-nothrow.lo `test -f 'msvc-nothrow.c' || echo '$(srcdir)/'`msvc-nothrow.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-msvc-nothrow.Tpo $(DEPDIR)/libgnu_la-msvc-nothrow.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msvc-nothrow.c' object='libgnu_la-msvc-nothrow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-msvc-nothrow.lo `test -f 'msvc-nothrow.c' || echo '$(srcdir)/'`msvc-nothrow.c libgnu_la-obstack.lo: obstack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-obstack.lo -MD -MP -MF $(DEPDIR)/libgnu_la-obstack.Tpo -c -o libgnu_la-obstack.lo `test -f 'obstack.c' || echo '$(srcdir)/'`obstack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-obstack.Tpo $(DEPDIR)/libgnu_la-obstack.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='obstack.c' object='libgnu_la-obstack.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-obstack.lo `test -f 'obstack.c' || echo '$(srcdir)/'`obstack.c libgnu_la-open.lo: open.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-open.lo -MD -MP -MF $(DEPDIR)/libgnu_la-open.Tpo -c -o libgnu_la-open.lo `test -f 'open.c' || echo '$(srcdir)/'`open.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-open.Tpo $(DEPDIR)/libgnu_la-open.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open.c' object='libgnu_la-open.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-open.lo `test -f 'open.c' || echo '$(srcdir)/'`open.c libgnu_la-openat.lo: openat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-openat.lo -MD -MP -MF $(DEPDIR)/libgnu_la-openat.Tpo -c -o libgnu_la-openat.lo `test -f 'openat.c' || echo '$(srcdir)/'`openat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-openat.Tpo $(DEPDIR)/libgnu_la-openat.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='openat.c' object='libgnu_la-openat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-openat.lo `test -f 'openat.c' || echo '$(srcdir)/'`openat.c libgnu_la-openat-die.lo: openat-die.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-openat-die.lo -MD -MP -MF $(DEPDIR)/libgnu_la-openat-die.Tpo -c -o libgnu_la-openat-die.lo `test -f 'openat-die.c' || echo '$(srcdir)/'`openat-die.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-openat-die.Tpo $(DEPDIR)/libgnu_la-openat-die.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='openat-die.c' object='libgnu_la-openat-die.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-openat-die.lo `test -f 'openat-die.c' || echo '$(srcdir)/'`openat-die.c libgnu_la-openat-safer.lo: openat-safer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-openat-safer.lo -MD -MP -MF $(DEPDIR)/libgnu_la-openat-safer.Tpo -c -o libgnu_la-openat-safer.lo `test -f 'openat-safer.c' || echo '$(srcdir)/'`openat-safer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-openat-safer.Tpo $(DEPDIR)/libgnu_la-openat-safer.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='openat-safer.c' object='libgnu_la-openat-safer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-openat-safer.lo `test -f 'openat-safer.c' || echo '$(srcdir)/'`openat-safer.c libgnu_la-opendir.lo: opendir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-opendir.lo -MD -MP -MF $(DEPDIR)/libgnu_la-opendir.Tpo -c -o libgnu_la-opendir.lo `test -f 'opendir.c' || echo '$(srcdir)/'`opendir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-opendir.Tpo $(DEPDIR)/libgnu_la-opendir.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='opendir.c' object='libgnu_la-opendir.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-opendir.lo `test -f 'opendir.c' || echo '$(srcdir)/'`opendir.c libgnu_la-opendirat.lo: opendirat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-opendirat.lo -MD -MP -MF $(DEPDIR)/libgnu_la-opendirat.Tpo -c -o libgnu_la-opendirat.lo `test -f 'opendirat.c' || echo '$(srcdir)/'`opendirat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-opendirat.Tpo $(DEPDIR)/libgnu_la-opendirat.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='opendirat.c' object='libgnu_la-opendirat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-opendirat.lo `test -f 'opendirat.c' || echo '$(srcdir)/'`opendirat.c libgnu_la-pipe.lo: pipe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-pipe.lo -MD -MP -MF $(DEPDIR)/libgnu_la-pipe.Tpo -c -o libgnu_la-pipe.lo `test -f 'pipe.c' || echo '$(srcdir)/'`pipe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-pipe.Tpo $(DEPDIR)/libgnu_la-pipe.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipe.c' object='libgnu_la-pipe.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-pipe.lo `test -f 'pipe.c' || echo '$(srcdir)/'`pipe.c libgnu_la-quotearg.lo: quotearg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-quotearg.lo -MD -MP -MF $(DEPDIR)/libgnu_la-quotearg.Tpo -c -o libgnu_la-quotearg.lo `test -f 'quotearg.c' || echo '$(srcdir)/'`quotearg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-quotearg.Tpo $(DEPDIR)/libgnu_la-quotearg.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quotearg.c' object='libgnu_la-quotearg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-quotearg.lo `test -f 'quotearg.c' || echo '$(srcdir)/'`quotearg.c libgnu_la-rawmemchr.lo: rawmemchr.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-rawmemchr.lo -MD -MP -MF $(DEPDIR)/libgnu_la-rawmemchr.Tpo -c -o libgnu_la-rawmemchr.lo `test -f 'rawmemchr.c' || echo '$(srcdir)/'`rawmemchr.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-rawmemchr.Tpo $(DEPDIR)/libgnu_la-rawmemchr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rawmemchr.c' object='libgnu_la-rawmemchr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-rawmemchr.lo `test -f 'rawmemchr.c' || echo '$(srcdir)/'`rawmemchr.c libgnu_la-readdir.lo: readdir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-readdir.lo -MD -MP -MF $(DEPDIR)/libgnu_la-readdir.Tpo -c -o libgnu_la-readdir.lo `test -f 'readdir.c' || echo '$(srcdir)/'`readdir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-readdir.Tpo $(DEPDIR)/libgnu_la-readdir.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readdir.c' object='libgnu_la-readdir.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-readdir.lo `test -f 'readdir.c' || echo '$(srcdir)/'`readdir.c libgnu_la-readlink.lo: readlink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-readlink.lo -MD -MP -MF $(DEPDIR)/libgnu_la-readlink.Tpo -c -o libgnu_la-readlink.lo `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-readlink.Tpo $(DEPDIR)/libgnu_la-readlink.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readlink.c' object='libgnu_la-readlink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-readlink.lo `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c libgnu_la-readlinkat.lo: readlinkat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-readlinkat.lo -MD -MP -MF $(DEPDIR)/libgnu_la-readlinkat.Tpo -c -o libgnu_la-readlinkat.lo `test -f 'readlinkat.c' || echo '$(srcdir)/'`readlinkat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-readlinkat.Tpo $(DEPDIR)/libgnu_la-readlinkat.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readlinkat.c' object='libgnu_la-readlinkat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-readlinkat.lo `test -f 'readlinkat.c' || echo '$(srcdir)/'`readlinkat.c libgnu_la-reallocarray.lo: reallocarray.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-reallocarray.lo -MD -MP -MF $(DEPDIR)/libgnu_la-reallocarray.Tpo -c -o libgnu_la-reallocarray.lo `test -f 'reallocarray.c' || echo '$(srcdir)/'`reallocarray.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-reallocarray.Tpo $(DEPDIR)/libgnu_la-reallocarray.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='reallocarray.c' object='libgnu_la-reallocarray.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-reallocarray.lo `test -f 'reallocarray.c' || echo '$(srcdir)/'`reallocarray.c libgnu_la-rename.lo: rename.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-rename.lo -MD -MP -MF $(DEPDIR)/libgnu_la-rename.Tpo -c -o libgnu_la-rename.lo `test -f 'rename.c' || echo '$(srcdir)/'`rename.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-rename.Tpo $(DEPDIR)/libgnu_la-rename.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rename.c' object='libgnu_la-rename.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-rename.lo `test -f 'rename.c' || echo '$(srcdir)/'`rename.c libgnu_la-renameatu.lo: renameatu.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-renameatu.lo -MD -MP -MF $(DEPDIR)/libgnu_la-renameatu.Tpo -c -o libgnu_la-renameatu.lo `test -f 'renameatu.c' || echo '$(srcdir)/'`renameatu.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-renameatu.Tpo $(DEPDIR)/libgnu_la-renameatu.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='renameatu.c' object='libgnu_la-renameatu.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-renameatu.lo `test -f 'renameatu.c' || echo '$(srcdir)/'`renameatu.c libgnu_la-rmdir.lo: rmdir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-rmdir.lo -MD -MP -MF $(DEPDIR)/libgnu_la-rmdir.Tpo -c -o libgnu_la-rmdir.lo `test -f 'rmdir.c' || echo '$(srcdir)/'`rmdir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-rmdir.Tpo $(DEPDIR)/libgnu_la-rmdir.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rmdir.c' object='libgnu_la-rmdir.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-rmdir.lo `test -f 'rmdir.c' || echo '$(srcdir)/'`rmdir.c libgnu_la-save-cwd.lo: save-cwd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-save-cwd.lo -MD -MP -MF $(DEPDIR)/libgnu_la-save-cwd.Tpo -c -o libgnu_la-save-cwd.lo `test -f 'save-cwd.c' || echo '$(srcdir)/'`save-cwd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-save-cwd.Tpo $(DEPDIR)/libgnu_la-save-cwd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='save-cwd.c' object='libgnu_la-save-cwd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-save-cwd.lo `test -f 'save-cwd.c' || echo '$(srcdir)/'`save-cwd.c libgnu_la-setlocale_null.lo: setlocale_null.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-setlocale_null.lo -MD -MP -MF $(DEPDIR)/libgnu_la-setlocale_null.Tpo -c -o libgnu_la-setlocale_null.lo `test -f 'setlocale_null.c' || echo '$(srcdir)/'`setlocale_null.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-setlocale_null.Tpo $(DEPDIR)/libgnu_la-setlocale_null.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='setlocale_null.c' object='libgnu_la-setlocale_null.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-setlocale_null.lo `test -f 'setlocale_null.c' || echo '$(srcdir)/'`setlocale_null.c libgnu_la-setlocale-lock.lo: setlocale-lock.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-setlocale-lock.lo -MD -MP -MF $(DEPDIR)/libgnu_la-setlocale-lock.Tpo -c -o libgnu_la-setlocale-lock.lo `test -f 'setlocale-lock.c' || echo '$(srcdir)/'`setlocale-lock.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-setlocale-lock.Tpo $(DEPDIR)/libgnu_la-setlocale-lock.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='setlocale-lock.c' object='libgnu_la-setlocale-lock.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-setlocale-lock.lo `test -f 'setlocale-lock.c' || echo '$(srcdir)/'`setlocale-lock.c libgnu_la-sig2str.lo: sig2str.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-sig2str.lo -MD -MP -MF $(DEPDIR)/libgnu_la-sig2str.Tpo -c -o libgnu_la-sig2str.lo `test -f 'sig2str.c' || echo '$(srcdir)/'`sig2str.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-sig2str.Tpo $(DEPDIR)/libgnu_la-sig2str.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sig2str.c' object='libgnu_la-sig2str.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-sig2str.lo `test -f 'sig2str.c' || echo '$(srcdir)/'`sig2str.c libgnu_la-sockets.lo: sockets.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-sockets.lo -MD -MP -MF $(DEPDIR)/libgnu_la-sockets.Tpo -c -o libgnu_la-sockets.lo `test -f 'sockets.c' || echo '$(srcdir)/'`sockets.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-sockets.Tpo $(DEPDIR)/libgnu_la-sockets.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sockets.c' object='libgnu_la-sockets.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-sockets.lo `test -f 'sockets.c' || echo '$(srcdir)/'`sockets.c libgnu_la-stat.lo: stat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-stat.lo -MD -MP -MF $(DEPDIR)/libgnu_la-stat.Tpo -c -o libgnu_la-stat.lo `test -f 'stat.c' || echo '$(srcdir)/'`stat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-stat.Tpo $(DEPDIR)/libgnu_la-stat.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat.c' object='libgnu_la-stat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-stat.lo `test -f 'stat.c' || echo '$(srcdir)/'`stat.c libgnu_la-stat-time.lo: stat-time.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-stat-time.lo -MD -MP -MF $(DEPDIR)/libgnu_la-stat-time.Tpo -c -o libgnu_la-stat-time.lo `test -f 'stat-time.c' || echo '$(srcdir)/'`stat-time.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-stat-time.Tpo $(DEPDIR)/libgnu_la-stat-time.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat-time.c' object='libgnu_la-stat-time.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-stat-time.lo `test -f 'stat-time.c' || echo '$(srcdir)/'`stat-time.c libgnu_la-stdio-read.lo: stdio-read.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-stdio-read.lo -MD -MP -MF $(DEPDIR)/libgnu_la-stdio-read.Tpo -c -o libgnu_la-stdio-read.lo `test -f 'stdio-read.c' || echo '$(srcdir)/'`stdio-read.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-stdio-read.Tpo $(DEPDIR)/libgnu_la-stdio-read.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdio-read.c' object='libgnu_la-stdio-read.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-stdio-read.lo `test -f 'stdio-read.c' || echo '$(srcdir)/'`stdio-read.c libgnu_la-stdio-write.lo: stdio-write.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-stdio-write.lo -MD -MP -MF $(DEPDIR)/libgnu_la-stdio-write.Tpo -c -o libgnu_la-stdio-write.lo `test -f 'stdio-write.c' || echo '$(srcdir)/'`stdio-write.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-stdio-write.Tpo $(DEPDIR)/libgnu_la-stdio-write.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdio-write.c' object='libgnu_la-stdio-write.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-stdio-write.lo `test -f 'stdio-write.c' || echo '$(srcdir)/'`stdio-write.c libgnu_la-stpncpy.lo: stpncpy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-stpncpy.lo -MD -MP -MF $(DEPDIR)/libgnu_la-stpncpy.Tpo -c -o libgnu_la-stpncpy.lo `test -f 'stpncpy.c' || echo '$(srcdir)/'`stpncpy.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-stpncpy.Tpo $(DEPDIR)/libgnu_la-stpncpy.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stpncpy.c' object='libgnu_la-stpncpy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-stpncpy.lo `test -f 'stpncpy.c' || echo '$(srcdir)/'`stpncpy.c libgnu_la-strchrnul.lo: strchrnul.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-strchrnul.lo -MD -MP -MF $(DEPDIR)/libgnu_la-strchrnul.Tpo -c -o libgnu_la-strchrnul.lo `test -f 'strchrnul.c' || echo '$(srcdir)/'`strchrnul.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-strchrnul.Tpo $(DEPDIR)/libgnu_la-strchrnul.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strchrnul.c' object='libgnu_la-strchrnul.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-strchrnul.lo `test -f 'strchrnul.c' || echo '$(srcdir)/'`strchrnul.c libgnu_la-strdup.lo: strdup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-strdup.lo -MD -MP -MF $(DEPDIR)/libgnu_la-strdup.Tpo -c -o libgnu_la-strdup.lo `test -f 'strdup.c' || echo '$(srcdir)/'`strdup.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-strdup.Tpo $(DEPDIR)/libgnu_la-strdup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strdup.c' object='libgnu_la-strdup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-strdup.lo `test -f 'strdup.c' || echo '$(srcdir)/'`strdup.c libgnu_la-strerror.lo: strerror.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-strerror.lo -MD -MP -MF $(DEPDIR)/libgnu_la-strerror.Tpo -c -o libgnu_la-strerror.lo `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-strerror.Tpo $(DEPDIR)/libgnu_la-strerror.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strerror.c' object='libgnu_la-strerror.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-strerror.lo `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c libgnu_la-strerror-override.lo: strerror-override.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-strerror-override.lo -MD -MP -MF $(DEPDIR)/libgnu_la-strerror-override.Tpo -c -o libgnu_la-strerror-override.lo `test -f 'strerror-override.c' || echo '$(srcdir)/'`strerror-override.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-strerror-override.Tpo $(DEPDIR)/libgnu_la-strerror-override.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strerror-override.c' object='libgnu_la-strerror-override.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-strerror-override.lo `test -f 'strerror-override.c' || echo '$(srcdir)/'`strerror-override.c libgnu_la-strndup.lo: strndup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-strndup.lo -MD -MP -MF $(DEPDIR)/libgnu_la-strndup.Tpo -c -o libgnu_la-strndup.lo `test -f 'strndup.c' || echo '$(srcdir)/'`strndup.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-strndup.Tpo $(DEPDIR)/libgnu_la-strndup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strndup.c' object='libgnu_la-strndup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-strndup.lo `test -f 'strndup.c' || echo '$(srcdir)/'`strndup.c libgnu_la-strnlen.lo: strnlen.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-strnlen.lo -MD -MP -MF $(DEPDIR)/libgnu_la-strnlen.Tpo -c -o libgnu_la-strnlen.lo `test -f 'strnlen.c' || echo '$(srcdir)/'`strnlen.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-strnlen.Tpo $(DEPDIR)/libgnu_la-strnlen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strnlen.c' object='libgnu_la-strnlen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-strnlen.lo `test -f 'strnlen.c' || echo '$(srcdir)/'`strnlen.c libgnu_la-strverscmp.lo: strverscmp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-strverscmp.lo -MD -MP -MF $(DEPDIR)/libgnu_la-strverscmp.Tpo -c -o libgnu_la-strverscmp.lo `test -f 'strverscmp.c' || echo '$(srcdir)/'`strverscmp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-strverscmp.Tpo $(DEPDIR)/libgnu_la-strverscmp.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strverscmp.c' object='libgnu_la-strverscmp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-strverscmp.lo `test -f 'strverscmp.c' || echo '$(srcdir)/'`strverscmp.c libgnu_la-sys_socket.lo: sys_socket.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-sys_socket.lo -MD -MP -MF $(DEPDIR)/libgnu_la-sys_socket.Tpo -c -o libgnu_la-sys_socket.lo `test -f 'sys_socket.c' || echo '$(srcdir)/'`sys_socket.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-sys_socket.Tpo $(DEPDIR)/libgnu_la-sys_socket.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sys_socket.c' object='libgnu_la-sys_socket.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-sys_socket.lo `test -f 'sys_socket.c' || echo '$(srcdir)/'`sys_socket.c libgnu_la-unistd.lo: unistd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-unistd.lo -MD -MP -MF $(DEPDIR)/libgnu_la-unistd.Tpo -c -o libgnu_la-unistd.lo `test -f 'unistd.c' || echo '$(srcdir)/'`unistd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-unistd.Tpo $(DEPDIR)/libgnu_la-unistd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unistd.c' object='libgnu_la-unistd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-unistd.lo `test -f 'unistd.c' || echo '$(srcdir)/'`unistd.c libgnu_la-dup-safer.lo: dup-safer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-dup-safer.lo -MD -MP -MF $(DEPDIR)/libgnu_la-dup-safer.Tpo -c -o libgnu_la-dup-safer.lo `test -f 'dup-safer.c' || echo '$(srcdir)/'`dup-safer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-dup-safer.Tpo $(DEPDIR)/libgnu_la-dup-safer.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dup-safer.c' object='libgnu_la-dup-safer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-dup-safer.lo `test -f 'dup-safer.c' || echo '$(srcdir)/'`dup-safer.c libgnu_la-fd-safer.lo: fd-safer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-fd-safer.lo -MD -MP -MF $(DEPDIR)/libgnu_la-fd-safer.Tpo -c -o libgnu_la-fd-safer.lo `test -f 'fd-safer.c' || echo '$(srcdir)/'`fd-safer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-fd-safer.Tpo $(DEPDIR)/libgnu_la-fd-safer.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fd-safer.c' object='libgnu_la-fd-safer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-fd-safer.lo `test -f 'fd-safer.c' || echo '$(srcdir)/'`fd-safer.c libgnu_la-pipe-safer.lo: pipe-safer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-pipe-safer.lo -MD -MP -MF $(DEPDIR)/libgnu_la-pipe-safer.Tpo -c -o libgnu_la-pipe-safer.lo `test -f 'pipe-safer.c' || echo '$(srcdir)/'`pipe-safer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-pipe-safer.Tpo $(DEPDIR)/libgnu_la-pipe-safer.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipe-safer.c' object='libgnu_la-pipe-safer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-pipe-safer.lo `test -f 'pipe-safer.c' || echo '$(srcdir)/'`pipe-safer.c libgnu_la-version-etc.lo: version-etc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-version-etc.lo -MD -MP -MF $(DEPDIR)/libgnu_la-version-etc.Tpo -c -o libgnu_la-version-etc.lo `test -f 'version-etc.c' || echo '$(srcdir)/'`version-etc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-version-etc.Tpo $(DEPDIR)/libgnu_la-version-etc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='version-etc.c' object='libgnu_la-version-etc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-version-etc.lo `test -f 'version-etc.c' || echo '$(srcdir)/'`version-etc.c libgnu_la-version-etc-fsf.lo: version-etc-fsf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-version-etc-fsf.lo -MD -MP -MF $(DEPDIR)/libgnu_la-version-etc-fsf.Tpo -c -o libgnu_la-version-etc-fsf.lo `test -f 'version-etc-fsf.c' || echo '$(srcdir)/'`version-etc-fsf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-version-etc-fsf.Tpo $(DEPDIR)/libgnu_la-version-etc-fsf.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='version-etc-fsf.c' object='libgnu_la-version-etc-fsf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-version-etc-fsf.lo `test -f 'version-etc-fsf.c' || echo '$(srcdir)/'`version-etc-fsf.c libgnu_la-wctype-h.lo: wctype-h.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-wctype-h.lo -MD -MP -MF $(DEPDIR)/libgnu_la-wctype-h.Tpo -c -o libgnu_la-wctype-h.lo `test -f 'wctype-h.c' || echo '$(srcdir)/'`wctype-h.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-wctype-h.Tpo $(DEPDIR)/libgnu_la-wctype-h.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wctype-h.c' object='libgnu_la-wctype-h.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-wctype-h.lo `test -f 'wctype-h.c' || echo '$(srcdir)/'`wctype-h.c libgnu_la-xmalloc.lo: xmalloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-xmalloc.lo -MD -MP -MF $(DEPDIR)/libgnu_la-xmalloc.Tpo -c -o libgnu_la-xmalloc.lo `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-xmalloc.Tpo $(DEPDIR)/libgnu_la-xmalloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc.c' object='libgnu_la-xmalloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-xmalloc.lo `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c libgnu_la-xalloc-die.lo: xalloc-die.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-xalloc-die.lo -MD -MP -MF $(DEPDIR)/libgnu_la-xalloc-die.Tpo -c -o libgnu_la-xalloc-die.lo `test -f 'xalloc-die.c' || echo '$(srcdir)/'`xalloc-die.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-xalloc-die.Tpo $(DEPDIR)/libgnu_la-xalloc-die.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xalloc-die.c' object='libgnu_la-xalloc-die.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-xalloc-die.lo `test -f 'xalloc-die.c' || echo '$(srcdir)/'`xalloc-die.c libgnu_la-xgethostname.lo: xgethostname.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-xgethostname.lo -MD -MP -MF $(DEPDIR)/libgnu_la-xgethostname.Tpo -c -o libgnu_la-xgethostname.lo `test -f 'xgethostname.c' || echo '$(srcdir)/'`xgethostname.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-xgethostname.Tpo $(DEPDIR)/libgnu_la-xgethostname.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xgethostname.c' object='libgnu_la-xgethostname.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-xgethostname.lo `test -f 'xgethostname.c' || echo '$(srcdir)/'`xgethostname.c libgnu_la-xstrndup.lo: xstrndup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-xstrndup.lo -MD -MP -MF $(DEPDIR)/libgnu_la-xstrndup.Tpo -c -o libgnu_la-xstrndup.lo `test -f 'xstrndup.c' || echo '$(srcdir)/'`xstrndup.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-xstrndup.Tpo $(DEPDIR)/libgnu_la-xstrndup.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xstrndup.c' object='libgnu_la-xstrndup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-xstrndup.lo `test -f 'xstrndup.c' || echo '$(srcdir)/'`xstrndup.c libgnu_la-xstrtol.lo: xstrtol.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-xstrtol.lo -MD -MP -MF $(DEPDIR)/libgnu_la-xstrtol.Tpo -c -o libgnu_la-xstrtol.lo `test -f 'xstrtol.c' || echo '$(srcdir)/'`xstrtol.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-xstrtol.Tpo $(DEPDIR)/libgnu_la-xstrtol.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xstrtol.c' object='libgnu_la-xstrtol.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-xstrtol.lo `test -f 'xstrtol.c' || echo '$(srcdir)/'`xstrtol.c libgnu_la-xstrtoul.lo: xstrtoul.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-xstrtoul.lo -MD -MP -MF $(DEPDIR)/libgnu_la-xstrtoul.Tpo -c -o libgnu_la-xstrtoul.lo `test -f 'xstrtoul.c' || echo '$(srcdir)/'`xstrtoul.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-xstrtoul.Tpo $(DEPDIR)/libgnu_la-xstrtoul.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xstrtoul.c' object='libgnu_la-xstrtoul.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-xstrtoul.lo `test -f 'xstrtoul.c' || echo '$(srcdir)/'`xstrtoul.c libgnu_la-calloc.lo: calloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-calloc.lo -MD -MP -MF $(DEPDIR)/libgnu_la-calloc.Tpo -c -o libgnu_la-calloc.lo `test -f 'calloc.c' || echo '$(srcdir)/'`calloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-calloc.Tpo $(DEPDIR)/libgnu_la-calloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='calloc.c' object='libgnu_la-calloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-calloc.lo `test -f 'calloc.c' || echo '$(srcdir)/'`calloc.c libgnu_la-stat-w32.lo: stat-w32.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-stat-w32.lo -MD -MP -MF $(DEPDIR)/libgnu_la-stat-w32.Tpo -c -o libgnu_la-stat-w32.lo `test -f 'stat-w32.c' || echo '$(srcdir)/'`stat-w32.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-stat-w32.Tpo $(DEPDIR)/libgnu_la-stat-w32.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat-w32.c' object='libgnu_la-stat-w32.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-stat-w32.lo `test -f 'stat-w32.c' || echo '$(srcdir)/'`stat-w32.c libgnu_la-at-func.lo: at-func.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-at-func.lo -MD -MP -MF $(DEPDIR)/libgnu_la-at-func.Tpo -c -o libgnu_la-at-func.lo `test -f 'at-func.c' || echo '$(srcdir)/'`at-func.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-at-func.Tpo $(DEPDIR)/libgnu_la-at-func.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='at-func.c' object='libgnu_la-at-func.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-at-func.lo `test -f 'at-func.c' || echo '$(srcdir)/'`at-func.c libgnu_la-malloc.lo: malloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-malloc.lo -MD -MP -MF $(DEPDIR)/libgnu_la-malloc.Tpo -c -o libgnu_la-malloc.lo `test -f 'malloc.c' || echo '$(srcdir)/'`malloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-malloc.Tpo $(DEPDIR)/libgnu_la-malloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc.c' object='libgnu_la-malloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-malloc.lo `test -f 'malloc.c' || echo '$(srcdir)/'`malloc.c libgnu_la-lc-charset-dispatch.lo: lc-charset-dispatch.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-lc-charset-dispatch.lo -MD -MP -MF $(DEPDIR)/libgnu_la-lc-charset-dispatch.Tpo -c -o libgnu_la-lc-charset-dispatch.lo `test -f 'lc-charset-dispatch.c' || echo '$(srcdir)/'`lc-charset-dispatch.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-lc-charset-dispatch.Tpo $(DEPDIR)/libgnu_la-lc-charset-dispatch.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lc-charset-dispatch.c' object='libgnu_la-lc-charset-dispatch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-lc-charset-dispatch.lo `test -f 'lc-charset-dispatch.c' || echo '$(srcdir)/'`lc-charset-dispatch.c libgnu_la-mbtowc-lock.lo: mbtowc-lock.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-mbtowc-lock.lo -MD -MP -MF $(DEPDIR)/libgnu_la-mbtowc-lock.Tpo -c -o libgnu_la-mbtowc-lock.lo `test -f 'mbtowc-lock.c' || echo '$(srcdir)/'`mbtowc-lock.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-mbtowc-lock.Tpo $(DEPDIR)/libgnu_la-mbtowc-lock.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbtowc-lock.c' object='libgnu_la-mbtowc-lock.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-mbtowc-lock.lo `test -f 'mbtowc-lock.c' || echo '$(srcdir)/'`mbtowc-lock.c libgnu_la-realloc.lo: realloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-realloc.lo -MD -MP -MF $(DEPDIR)/libgnu_la-realloc.Tpo -c -o libgnu_la-realloc.lo `test -f 'realloc.c' || echo '$(srcdir)/'`realloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-realloc.Tpo $(DEPDIR)/libgnu_la-realloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='realloc.c' object='libgnu_la-realloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-realloc.lo `test -f 'realloc.c' || echo '$(srcdir)/'`realloc.c libgnu_la-at-func2.lo: at-func2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -MT libgnu_la-at-func2.lo -MD -MP -MF $(DEPDIR)/libgnu_la-at-func2.Tpo -c -o libgnu_la-at-func2.lo `test -f 'at-func2.c' || echo '$(srcdir)/'`at-func2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_la-at-func2.Tpo $(DEPDIR)/libgnu_la-at-func2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='at-func2.c' object='libgnu_la-at-func2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_la_CFLAGS) $(CFLAGS) -c -o libgnu_la-at-func2.lo `test -f 'at-func2.c' || echo '$(srcdir)/'`at-func2.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf malloc/.libs malloc/_libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" loc-local: ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f malloc/$(DEPDIR)/$(am__dirstamp) -rm -f malloc/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -f ./$(DEPDIR)/libgnu_la-argmatch.Plo -rm -f ./$(DEPDIR)/libgnu_la-at-func.Plo -rm -f ./$(DEPDIR)/libgnu_la-at-func2.Plo -rm -f ./$(DEPDIR)/libgnu_la-backup-find.Plo -rm -f ./$(DEPDIR)/libgnu_la-backupfile.Plo -rm -f ./$(DEPDIR)/libgnu_la-basename-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-basename.Plo -rm -f ./$(DEPDIR)/libgnu_la-c-ctype.Plo -rm -f ./$(DEPDIR)/libgnu_la-c-strcasecmp.Plo -rm -f ./$(DEPDIR)/libgnu_la-c-strncasecmp.Plo -rm -f ./$(DEPDIR)/libgnu_la-calloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-canonicalize-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-chdir-long.Plo -rm -f ./$(DEPDIR)/libgnu_la-cloexec.Plo -rm -f ./$(DEPDIR)/libgnu_la-close.Plo -rm -f ./$(DEPDIR)/libgnu_la-closedir.Plo -rm -f ./$(DEPDIR)/libgnu_la-creat-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-dirfd.Plo -rm -f ./$(DEPDIR)/libgnu_la-dirname-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-dirname.Plo -rm -f ./$(DEPDIR)/libgnu_la-dup-safer-flag.Plo -rm -f ./$(DEPDIR)/libgnu_la-dup-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-dup.Plo -rm -f ./$(DEPDIR)/libgnu_la-dup2.Plo -rm -f ./$(DEPDIR)/libgnu_la-error.Plo -rm -f ./$(DEPDIR)/libgnu_la-exitfail.Plo -rm -f ./$(DEPDIR)/libgnu_la-fchdir.Plo -rm -f ./$(DEPDIR)/libgnu_la-fcntl.Plo -rm -f ./$(DEPDIR)/libgnu_la-fd-hook.Plo -rm -f ./$(DEPDIR)/libgnu_la-fd-safer-flag.Plo -rm -f ./$(DEPDIR)/libgnu_la-fd-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-fdopendir.Plo -rm -f ./$(DEPDIR)/libgnu_la-filenamecat-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-filenamecat.Plo -rm -f ./$(DEPDIR)/libgnu_la-free.Plo -rm -f ./$(DEPDIR)/libgnu_la-fstat.Plo -rm -f ./$(DEPDIR)/libgnu_la-fstatat.Plo -rm -f ./$(DEPDIR)/libgnu_la-getcwd-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-getdtablesize.Plo -rm -f ./$(DEPDIR)/libgnu_la-gethostname.Plo -rm -f ./$(DEPDIR)/libgnu_la-getprogname.Plo -rm -f ./$(DEPDIR)/libgnu_la-hard-locale.Plo -rm -f ./$(DEPDIR)/libgnu_la-ialloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-isdir.Plo -rm -f ./$(DEPDIR)/libgnu_la-lc-charset-dispatch.Plo -rm -f ./$(DEPDIR)/libgnu_la-localcharset.Plo -rm -f ./$(DEPDIR)/libgnu_la-lstat.Plo -rm -f ./$(DEPDIR)/libgnu_la-malloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-malloca.Plo -rm -f ./$(DEPDIR)/libgnu_la-mbrtowc.Plo -rm -f ./$(DEPDIR)/libgnu_la-mbsinit.Plo -rm -f ./$(DEPDIR)/libgnu_la-mbtowc-lock.Plo -rm -f ./$(DEPDIR)/libgnu_la-memchr.Plo -rm -f ./$(DEPDIR)/libgnu_la-mempcpy.Plo -rm -f ./$(DEPDIR)/libgnu_la-memrchr.Plo -rm -f ./$(DEPDIR)/libgnu_la-msvc-inval.Plo -rm -f ./$(DEPDIR)/libgnu_la-msvc-nothrow.Plo -rm -f ./$(DEPDIR)/libgnu_la-obstack.Plo -rm -f ./$(DEPDIR)/libgnu_la-open-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-open.Plo -rm -f ./$(DEPDIR)/libgnu_la-openat-die.Plo -rm -f ./$(DEPDIR)/libgnu_la-openat-proc.Plo -rm -f ./$(DEPDIR)/libgnu_la-openat-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-openat.Plo -rm -f ./$(DEPDIR)/libgnu_la-opendir.Plo -rm -f ./$(DEPDIR)/libgnu_la-opendirat.Plo -rm -f ./$(DEPDIR)/libgnu_la-pipe-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-pipe.Plo -rm -f ./$(DEPDIR)/libgnu_la-quotearg.Plo -rm -f ./$(DEPDIR)/libgnu_la-rawmemchr.Plo -rm -f ./$(DEPDIR)/libgnu_la-readdir.Plo -rm -f ./$(DEPDIR)/libgnu_la-readlink.Plo -rm -f ./$(DEPDIR)/libgnu_la-readlinkat.Plo -rm -f ./$(DEPDIR)/libgnu_la-realloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-reallocarray.Plo -rm -f ./$(DEPDIR)/libgnu_la-rename.Plo -rm -f ./$(DEPDIR)/libgnu_la-renameatu.Plo -rm -f ./$(DEPDIR)/libgnu_la-rmdir.Plo -rm -f ./$(DEPDIR)/libgnu_la-save-cwd.Plo -rm -f ./$(DEPDIR)/libgnu_la-setlocale-lock.Plo -rm -f ./$(DEPDIR)/libgnu_la-setlocale_null.Plo -rm -f ./$(DEPDIR)/libgnu_la-sig2str.Plo -rm -f ./$(DEPDIR)/libgnu_la-sockets.Plo -rm -f ./$(DEPDIR)/libgnu_la-stat-time.Plo -rm -f ./$(DEPDIR)/libgnu_la-stat-w32.Plo -rm -f ./$(DEPDIR)/libgnu_la-stat.Plo -rm -f ./$(DEPDIR)/libgnu_la-stdio-read.Plo -rm -f ./$(DEPDIR)/libgnu_la-stdio-write.Plo -rm -f ./$(DEPDIR)/libgnu_la-stpncpy.Plo -rm -f ./$(DEPDIR)/libgnu_la-strchrnul.Plo -rm -f ./$(DEPDIR)/libgnu_la-strdup.Plo -rm -f ./$(DEPDIR)/libgnu_la-strerror-override.Plo -rm -f ./$(DEPDIR)/libgnu_la-strerror.Plo -rm -f ./$(DEPDIR)/libgnu_la-stripslash.Plo -rm -f ./$(DEPDIR)/libgnu_la-strndup.Plo -rm -f ./$(DEPDIR)/libgnu_la-strnlen.Plo -rm -f ./$(DEPDIR)/libgnu_la-strverscmp.Plo -rm -f ./$(DEPDIR)/libgnu_la-sys_socket.Plo -rm -f ./$(DEPDIR)/libgnu_la-unistd.Plo -rm -f ./$(DEPDIR)/libgnu_la-version-etc-fsf.Plo -rm -f ./$(DEPDIR)/libgnu_la-version-etc.Plo -rm -f ./$(DEPDIR)/libgnu_la-wctype-h.Plo -rm -f ./$(DEPDIR)/libgnu_la-xalloc-die.Plo -rm -f ./$(DEPDIR)/libgnu_la-xgethostname.Plo -rm -f ./$(DEPDIR)/libgnu_la-xmalloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-xstrndup.Plo -rm -f ./$(DEPDIR)/libgnu_la-xstrtol.Plo -rm -f ./$(DEPDIR)/libgnu_la-xstrtoul.Plo -rm -f malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow.Plo -rm -f malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow_preserve.Plo -rm -f malloc/$(DEPDIR)/libgnu_la-scratch_buffer_set_array_size.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-local distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: loc: loc-recursive loc-am: loc-local maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libgnu_la-argmatch.Plo -rm -f ./$(DEPDIR)/libgnu_la-at-func.Plo -rm -f ./$(DEPDIR)/libgnu_la-at-func2.Plo -rm -f ./$(DEPDIR)/libgnu_la-backup-find.Plo -rm -f ./$(DEPDIR)/libgnu_la-backupfile.Plo -rm -f ./$(DEPDIR)/libgnu_la-basename-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-basename.Plo -rm -f ./$(DEPDIR)/libgnu_la-c-ctype.Plo -rm -f ./$(DEPDIR)/libgnu_la-c-strcasecmp.Plo -rm -f ./$(DEPDIR)/libgnu_la-c-strncasecmp.Plo -rm -f ./$(DEPDIR)/libgnu_la-calloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-canonicalize-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-chdir-long.Plo -rm -f ./$(DEPDIR)/libgnu_la-cloexec.Plo -rm -f ./$(DEPDIR)/libgnu_la-close.Plo -rm -f ./$(DEPDIR)/libgnu_la-closedir.Plo -rm -f ./$(DEPDIR)/libgnu_la-creat-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-dirfd.Plo -rm -f ./$(DEPDIR)/libgnu_la-dirname-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-dirname.Plo -rm -f ./$(DEPDIR)/libgnu_la-dup-safer-flag.Plo -rm -f ./$(DEPDIR)/libgnu_la-dup-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-dup.Plo -rm -f ./$(DEPDIR)/libgnu_la-dup2.Plo -rm -f ./$(DEPDIR)/libgnu_la-error.Plo -rm -f ./$(DEPDIR)/libgnu_la-exitfail.Plo -rm -f ./$(DEPDIR)/libgnu_la-fchdir.Plo -rm -f ./$(DEPDIR)/libgnu_la-fcntl.Plo -rm -f ./$(DEPDIR)/libgnu_la-fd-hook.Plo -rm -f ./$(DEPDIR)/libgnu_la-fd-safer-flag.Plo -rm -f ./$(DEPDIR)/libgnu_la-fd-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-fdopendir.Plo -rm -f ./$(DEPDIR)/libgnu_la-filenamecat-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-filenamecat.Plo -rm -f ./$(DEPDIR)/libgnu_la-free.Plo -rm -f ./$(DEPDIR)/libgnu_la-fstat.Plo -rm -f ./$(DEPDIR)/libgnu_la-fstatat.Plo -rm -f ./$(DEPDIR)/libgnu_la-getcwd-lgpl.Plo -rm -f ./$(DEPDIR)/libgnu_la-getdtablesize.Plo -rm -f ./$(DEPDIR)/libgnu_la-gethostname.Plo -rm -f ./$(DEPDIR)/libgnu_la-getprogname.Plo -rm -f ./$(DEPDIR)/libgnu_la-hard-locale.Plo -rm -f ./$(DEPDIR)/libgnu_la-ialloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-isdir.Plo -rm -f ./$(DEPDIR)/libgnu_la-lc-charset-dispatch.Plo -rm -f ./$(DEPDIR)/libgnu_la-localcharset.Plo -rm -f ./$(DEPDIR)/libgnu_la-lstat.Plo -rm -f ./$(DEPDIR)/libgnu_la-malloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-malloca.Plo -rm -f ./$(DEPDIR)/libgnu_la-mbrtowc.Plo -rm -f ./$(DEPDIR)/libgnu_la-mbsinit.Plo -rm -f ./$(DEPDIR)/libgnu_la-mbtowc-lock.Plo -rm -f ./$(DEPDIR)/libgnu_la-memchr.Plo -rm -f ./$(DEPDIR)/libgnu_la-mempcpy.Plo -rm -f ./$(DEPDIR)/libgnu_la-memrchr.Plo -rm -f ./$(DEPDIR)/libgnu_la-msvc-inval.Plo -rm -f ./$(DEPDIR)/libgnu_la-msvc-nothrow.Plo -rm -f ./$(DEPDIR)/libgnu_la-obstack.Plo -rm -f ./$(DEPDIR)/libgnu_la-open-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-open.Plo -rm -f ./$(DEPDIR)/libgnu_la-openat-die.Plo -rm -f ./$(DEPDIR)/libgnu_la-openat-proc.Plo -rm -f ./$(DEPDIR)/libgnu_la-openat-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-openat.Plo -rm -f ./$(DEPDIR)/libgnu_la-opendir.Plo -rm -f ./$(DEPDIR)/libgnu_la-opendirat.Plo -rm -f ./$(DEPDIR)/libgnu_la-pipe-safer.Plo -rm -f ./$(DEPDIR)/libgnu_la-pipe.Plo -rm -f ./$(DEPDIR)/libgnu_la-quotearg.Plo -rm -f ./$(DEPDIR)/libgnu_la-rawmemchr.Plo -rm -f ./$(DEPDIR)/libgnu_la-readdir.Plo -rm -f ./$(DEPDIR)/libgnu_la-readlink.Plo -rm -f ./$(DEPDIR)/libgnu_la-readlinkat.Plo -rm -f ./$(DEPDIR)/libgnu_la-realloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-reallocarray.Plo -rm -f ./$(DEPDIR)/libgnu_la-rename.Plo -rm -f ./$(DEPDIR)/libgnu_la-renameatu.Plo -rm -f ./$(DEPDIR)/libgnu_la-rmdir.Plo -rm -f ./$(DEPDIR)/libgnu_la-save-cwd.Plo -rm -f ./$(DEPDIR)/libgnu_la-setlocale-lock.Plo -rm -f ./$(DEPDIR)/libgnu_la-setlocale_null.Plo -rm -f ./$(DEPDIR)/libgnu_la-sig2str.Plo -rm -f ./$(DEPDIR)/libgnu_la-sockets.Plo -rm -f ./$(DEPDIR)/libgnu_la-stat-time.Plo -rm -f ./$(DEPDIR)/libgnu_la-stat-w32.Plo -rm -f ./$(DEPDIR)/libgnu_la-stat.Plo -rm -f ./$(DEPDIR)/libgnu_la-stdio-read.Plo -rm -f ./$(DEPDIR)/libgnu_la-stdio-write.Plo -rm -f ./$(DEPDIR)/libgnu_la-stpncpy.Plo -rm -f ./$(DEPDIR)/libgnu_la-strchrnul.Plo -rm -f ./$(DEPDIR)/libgnu_la-strdup.Plo -rm -f ./$(DEPDIR)/libgnu_la-strerror-override.Plo -rm -f ./$(DEPDIR)/libgnu_la-strerror.Plo -rm -f ./$(DEPDIR)/libgnu_la-stripslash.Plo -rm -f ./$(DEPDIR)/libgnu_la-strndup.Plo -rm -f ./$(DEPDIR)/libgnu_la-strnlen.Plo -rm -f ./$(DEPDIR)/libgnu_la-strverscmp.Plo -rm -f ./$(DEPDIR)/libgnu_la-sys_socket.Plo -rm -f ./$(DEPDIR)/libgnu_la-unistd.Plo -rm -f ./$(DEPDIR)/libgnu_la-version-etc-fsf.Plo -rm -f ./$(DEPDIR)/libgnu_la-version-etc.Plo -rm -f ./$(DEPDIR)/libgnu_la-wctype-h.Plo -rm -f ./$(DEPDIR)/libgnu_la-xalloc-die.Plo -rm -f ./$(DEPDIR)/libgnu_la-xgethostname.Plo -rm -f ./$(DEPDIR)/libgnu_la-xmalloc.Plo -rm -f ./$(DEPDIR)/libgnu_la-xstrndup.Plo -rm -f ./$(DEPDIR)/libgnu_la-xstrtol.Plo -rm -f ./$(DEPDIR)/libgnu_la-xstrtoul.Plo -rm -f malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow.Plo -rm -f malloc/$(DEPDIR)/libgnu_la-scratch_buffer_grow_preserve.Plo -rm -f malloc/$(DEPDIR)/libgnu_la-scratch_buffer_set_array_size.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-exec install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--depfiles check check-am clean clean-generic clean-libtool \ clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-local distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am loc-am \ loc-local maintainer-clean maintainer-clean-generic \ maintainer-clean-local mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # We need the following in order to create <alloca.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ @GL_GENERATE_ALLOCA_H_TRUE@ -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' \ @GL_GENERATE_ALLOCA_H_TRUE@ $(srcdir)/alloca.in.h > $@-t @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # We need the following in order to create <assert.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ASSERT_H_TRUE@assert.h: assert.in.h verify.h $(top_builddir)/config.status @GL_GENERATE_ASSERT_H_TRUE@ $(gl_V_at){ $(SED_HEADER_STDOUT) \ @GL_GENERATE_ASSERT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ASSERT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ASSERT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ASSERT_H_TRUE@ -e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \ @GL_GENERATE_ASSERT_H_TRUE@ < $(srcdir)/assert.in.h && \ @GL_GENERATE_ASSERT_H_TRUE@ sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \ @GL_GENERATE_ASSERT_H_TRUE@ -e 's|_gl_verify|_gl_static_assert|g' \ @GL_GENERATE_ASSERT_H_TRUE@ -e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \ @GL_GENERATE_ASSERT_H_TRUE@ -e 's|_GL\(_STATIC_ASSERT_H\)|_GL\1|g' \ @GL_GENERATE_ASSERT_H_TRUE@ < $(srcdir)/verify.h; \ @GL_GENERATE_ASSERT_H_TRUE@ } > $@-t @GL_GENERATE_ASSERT_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_ASSERT_H_FALSE@assert.h: $(top_builddir)/config.status @GL_GENERATE_ASSERT_H_FALSE@ rm -f $@ # We need the following in order to create <dirent.h> when the system # doesn't have one that works with the given compiler. dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_DIRENT_H''@|$(HAVE_DIRENT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ -e 's/@''GNULIB_OPENDIR''@/$(GL_GNULIB_OPENDIR)/g' \ -e 's/@''GNULIB_READDIR''@/$(GL_GNULIB_READDIR)/g' \ -e 's/@''GNULIB_REWINDDIR''@/$(GL_GNULIB_REWINDDIR)/g' \ -e 's/@''GNULIB_CLOSEDIR''@/$(GL_GNULIB_CLOSEDIR)/g' \ -e 's/@''GNULIB_DIRFD''@/$(GL_GNULIB_DIRFD)/g' \ -e 's/@''GNULIB_FDOPENDIR''@/$(GL_GNULIB_FDOPENDIR)/g' \ -e 's/@''GNULIB_SCANDIR''@/$(GL_GNULIB_SCANDIR)/g' \ -e 's/@''GNULIB_ALPHASORT''@/$(GL_GNULIB_ALPHASORT)/g' \ -e 's/@''HAVE_OPENDIR''@/$(HAVE_OPENDIR)/g' \ -e 's/@''HAVE_READDIR''@/$(HAVE_READDIR)/g' \ -e 's/@''HAVE_REWINDDIR''@/$(HAVE_REWINDDIR)/g' \ -e 's/@''HAVE_CLOSEDIR''@/$(HAVE_CLOSEDIR)/g' \ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \ -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \ -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \ -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \ -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \ -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \ -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/dirent.in.h > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <errno.h> when the system # doesn't have one that is POSIX compliant. @GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ $(srcdir)/errno.in.h > $@-t @GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ # We need the following in order to create <error.h> when the system # doesn't have one that works. @GL_GENERATE_ERROR_H_TRUE@error.h: error.in.h $(top_builddir)/config.status $(CXXDEFS_H) @GL_GENERATE_ERROR_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''HAVE_ERROR_H''@|$(HAVE_ERROR_H)|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''NEXT_ERROR_H''@|$(NEXT_ERROR_H)|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''HAVE_ERROR''@|$(HAVE_ERROR)|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''HAVE_ERROR_AT_LINE''@|$(HAVE_ERROR_AT_LINE)|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''REPLACE_ERROR''@|$(REPLACE_ERROR)|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e 's|@''REPLACE_ERROR_AT_LINE''@|$(REPLACE_ERROR_AT_LINE)|g' \ @GL_GENERATE_ERROR_H_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ @GL_GENERATE_ERROR_H_TRUE@ $(srcdir)/error.in.h > $@-t @GL_GENERATE_ERROR_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_ERROR_H_FALSE@error.h: $(top_builddir)/config.status @GL_GENERATE_ERROR_H_FALSE@ rm -f $@ # We need the following in order to create <fcntl.h> when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/fcntl.in.h > $@-t $(AM_V_at)mv $@-t $@ malloc/scratch_buffer.gl.h: malloc/scratch_buffer.h $(AM_V_GEN)$(MKDIR_P) 'malloc' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|__always_inline|inline _GL_ATTRIBUTE_ALWAYS_INLINE|g' \ -e 's|__glibc_likely|_GL_LIKELY|g' \ -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \ -e '/libc_hidden_proto/d' \ $(srcdir)/malloc/scratch_buffer.h > $@-t $(AM_V_at)mv $@-t $@ distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile # We need the following in order to create <inttypes.h> when the system # doesn't have one that works with the given compiler. inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''GNULIB_IMAXABS''@/$(GL_GNULIB_IMAXABS)/g' \ -e 's/@''GNULIB_IMAXDIV''@/$(GL_GNULIB_IMAXDIV)/g' \ -e 's/@''GNULIB_STRTOIMAX''@/$(GL_GNULIB_STRTOIMAX)/g' \ -e 's/@''GNULIB_STRTOUMAX''@/$(GL_GNULIB_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ -e 's/@''REPLACE_IMAXABS''@/$(REPLACE_IMAXABS)/g' \ -e 's/@''REPLACE_IMAXDIV''@/$(REPLACE_IMAXDIV)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/inttypes.in.h > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <limits.h> when the system # doesn't have one that is compatible with GNU. @GL_GENERATE_LIMITS_H_TRUE@limits.h: limits.in.h $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ $(srcdir)/limits.in.h > $@-t @GL_GENERATE_LIMITS_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ # We need the following in order to create <locale.h> when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GL_GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GL_GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GL_GNULIB_SETLOCALE_NULL)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GL_GNULIB_DUPLOCALE)/g' \ -e 's/@''GNULIB_LOCALENAME''@/$(GL_GNULIB_LOCALENAME)/g' \ -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e 's|@''LOCALENAME_ENHANCE_LOCALE_FUNCS''@|$(LOCALENAME_ENHANCE_LOCALE_FUNCS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/locale.in.h > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <stdarg.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDARG_H_TRUE@stdarg.h: stdarg.in.h $(top_builddir)/config.status @GL_GENERATE_STDARG_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ @GL_GENERATE_STDARG_H_TRUE@ $(srcdir)/stdarg.in.h > $@-t @GL_GENERATE_STDARG_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_STDARG_H_FALSE@stdarg.h: $(top_builddir)/config.status @GL_GENERATE_STDARG_H_FALSE@ rm -f $@ # We need the following in order to create <stdckdint.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDCKDINT_H_TRUE@stdckdint.h: stdckdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDCKDINT_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ @GL_GENERATE_STDCKDINT_H_TRUE@ $(srcdir)/stdckdint.in.h > $@-t @GL_GENERATE_STDCKDINT_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_STDCKDINT_H_FALSE@stdckdint.h: $(top_builddir)/config.status @GL_GENERATE_STDCKDINT_H_FALSE@ rm -f $@ # We need the following in order to create <stddef.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ $(srcdir)/stddef.in.h > $@-t @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create <stdint.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDINT_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ $(srcdir)/stdint.in.h > $@-t @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_at)mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create <stdio.h> when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FOPEN_GNU''@/$(GL_GNULIB_FOPEN_GNU)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_GETW''@|$(HAVE_DECL_GETW)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_PUTW''@|$(HAVE_DECL_PUTW)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FOPEN_FOR_FOPEN_GNU''@|$(REPLACE_FOPEN_FOR_FOPEN_GNU)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <stdlib.h> when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_GNU''@/$(GL_GNULIB_CALLOC_GNU)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETPROGNAME''@/$(GL_GNULIB_GETPROGNAME)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GL_GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GL_GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_GNULIB_POSIX_MEMALIGN)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GL_GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GL_GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GL_GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_GNU''@/$(GL_GNULIB_REALLOC_GNU)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GL_GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GL_GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GL_GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOL''@/$(GL_GNULIB_STRTOL)/g' \ -e 's/@''GNULIB_STRTOLD''@/$(GL_GNULIB_STRTOLD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GL_GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOUL''@/$(GL_GNULIB_STRTOUL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GL_GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GL_GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GL_GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GL_GNULIB_WCTOMB)/g' \ -e 's/@''GNULIB_MDA_ECVT''@/$(GL_GNULIB_MDA_ECVT)/g' \ -e 's/@''GNULIB_MDA_FCVT''@/$(GL_GNULIB_MDA_FCVT)/g' \ -e 's/@''GNULIB_MDA_GCVT''@/$(GL_GNULIB_MDA_GCVT)/g' \ -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_GNULIB_MDA_MKTEMP)/g' \ -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_GNULIB_MDA_PUTENV)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \ -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETPROGNAME''@|$(HAVE_GETPROGNAME)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE__EXIT''@|$(REPLACE__EXIT)|g' \ -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \ -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_GETLOADAVG''@|$(REPLACE_GETLOADAVG)|g' \ -e 's|@''REPLACE_GETPROGNAME''@|$(REPLACE_GETPROGNAME)|g' \ -e 's|@''REPLACE_GETSUBOPT''@|$(REPLACE_GETSUBOPT)|g' \ -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \ -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKOSTEMP''@|$(REPLACE_MKOSTEMP)|g' \ -e 's|@''REPLACE_MKOSTEMPS''@|$(REPLACE_MKOSTEMPS)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ -e 's|@''REPLACE_POSIX_OPENPT''@|$(REPLACE_POSIX_OPENPT)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \ -e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \ -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <string.h> when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_MEMSET_EXPLICIT''@/$(GL_GNULIB_MEMSET_EXPLICIT)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_MEMSET_EXPLICIT''@|$(HAVE_MEMSET_EXPLICIT)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_MEMPCPY''@|$(REPLACE_MEMPCPY)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_STPCPY''@|$(REPLACE_STPCPY)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <sys/socket.h> when the system # doesn't have one that works with the given compiler. sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)$(MKDIR_P) 'sys' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_SOCKET''@/$(GL_GNULIB_SOCKET)/g' \ -e 's/@''GNULIB_CONNECT''@/$(GL_GNULIB_CONNECT)/g' \ -e 's/@''GNULIB_ACCEPT''@/$(GL_GNULIB_ACCEPT)/g' \ -e 's/@''GNULIB_BIND''@/$(GL_GNULIB_BIND)/g' \ -e 's/@''GNULIB_GETPEERNAME''@/$(GL_GNULIB_GETPEERNAME)/g' \ -e 's/@''GNULIB_GETSOCKNAME''@/$(GL_GNULIB_GETSOCKNAME)/g' \ -e 's/@''GNULIB_GETSOCKOPT''@/$(GL_GNULIB_GETSOCKOPT)/g' \ -e 's/@''GNULIB_LISTEN''@/$(GL_GNULIB_LISTEN)/g' \ -e 's/@''GNULIB_RECV''@/$(GL_GNULIB_RECV)/g' \ -e 's/@''GNULIB_SEND''@/$(GL_GNULIB_SEND)/g' \ -e 's/@''GNULIB_RECVFROM''@/$(GL_GNULIB_RECVFROM)/g' \ -e 's/@''GNULIB_SENDTO''@/$(GL_GNULIB_SENDTO)/g' \ -e 's/@''GNULIB_SETSOCKOPT''@/$(GL_GNULIB_SETSOCKOPT)/g' \ -e 's/@''GNULIB_SHUTDOWN''@/$(GL_GNULIB_SHUTDOWN)/g' \ -e 's/@''GNULIB_ACCEPT4''@/$(GL_GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \ -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \ -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/sys_socket.in.h > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <sys/stat.h> when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)$(MKDIR_P) 'sys' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ -e 's/@''GNULIB_CHMOD''@/$(GL_GNULIB_CHMOD)/g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_CHMOD''@|$(REPLACE_CHMOD)|g' \ -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/sys_stat.in.h > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <sys/types.h> when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) 'sys' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ $(srcdir)/sys_types.in.h > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <sys/uio.h> when the system # doesn't have one that works with the given compiler. sys/uio.h: sys_uio.in.h $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) 'sys' $(AM_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ $(srcdir)/sys_uio.in.h > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <time.h> when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ -e 's/@''GNULIB_TIMESPEC_GETRES''@/$(GL_GNULIB_TIMESPEC_GETRES)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \ -e 's|@''HAVE_TIMESPEC_GETRES''@|$(HAVE_TIMESPEC_GETRES)|g' \ -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''REPLACE_TIMESPEC_GET''@|$(REPLACE_TIMESPEC_GET)|g' \ -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/time.in.h > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create an empty placeholder for # <unistd.h> when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETPASS_GNU''@/$(GL_GNULIB_GETPASS_GNU)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_DUP3''@|$(REPLACE_DUP3)|g' \ -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FDATASYNC''@|$(REPLACE_FDATASYNC)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETENTROPY''@|$(REPLACE_GETENTROPY)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_GETPASS_FOR_GETPASS_GNU''@|$(REPLACE_GETPASS_FOR_GETPASS_GNU)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PIPE2''@|$(REPLACE_PIPE2)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SETHOSTNAME''@|$(REPLACE_SETHOSTNAME)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <wchar.h> when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GL_GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GL_GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GL_GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GL_GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GL_GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GL_GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GL_GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GL_GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMPCPY''@/$(GL_GNULIB_WMEMPCPY)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GL_GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GL_GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GL_GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GL_GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GL_GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GL_GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GL_GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GL_GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GL_GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GL_GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GL_GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GL_GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GL_GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GL_GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GL_GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GL_GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GL_GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GL_GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GL_GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GL_GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GL_GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GL_GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GL_GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \ -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \ -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMPCPY''@|$(HAVE_WMEMPCPY)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCSDUP''@|$(HAVE_DECL_WCSDUP)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \ -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|g' \ -e 's|@''REPLACE_WMEMPCPY''@|$(REPLACE_WMEMPCPY)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ > $@-t $(AM_V_at)mv $@-t $@ # We need the following in order to create <wctype.h> when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(gl_V_at)$(SED_HEADER_STDOUT) \ -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ -e 's/@''GNULIB_ISWBLANK''@/$(GL_GNULIB_ISWBLANK)/g' \ -e 's/@''GNULIB_ISWDIGIT''@/$(GL_GNULIB_ISWDIGIT)/g' \ -e 's/@''GNULIB_ISWXDIGIT''@/$(GL_GNULIB_ISWXDIGIT)/g' \ -e 's/@''GNULIB_WCTYPE''@/$(GL_GNULIB_WCTYPE)/g' \ -e 's/@''GNULIB_ISWCTYPE''@/$(GL_GNULIB_ISWCTYPE)/g' \ -e 's/@''GNULIB_WCTRANS''@/$(GL_GNULIB_WCTRANS)/g' \ -e 's/@''GNULIB_TOWCTRANS''@/$(GL_GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWDIGIT''@/$(REPLACE_ISWDIGIT)/g' \ -e 's/@''REPLACE_ISWXDIGIT''@/$(REPLACE_ISWXDIGIT)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ $(srcdir)/wctype.in.h > $@-t $(AM_V_at)mv $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : distclean-local: distclean-gnulib-libobjs distclean-gnulib-libobjs: -rm -f @gl_LIBOBJDEPS@ maintainer-clean-local: distclean-gnulib-libobjs # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/_Noreturn.h�������������������������������������������������������������������������0000644�0000000�0000000�00000004560�14374751113�012247� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A C macro for declaring that a function does not return. Copyright (C) 2011-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _Noreturn # if (defined __cplusplus \ && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ || (defined _MSC_VER && 1900 <= _MSC_VER)) \ && 0) /* [[noreturn]] is not practically usable, because with it the syntax extern _Noreturn void func (...); would not be valid; such a declaration would only be valid with 'extern' and '_Noreturn' swapped, or without the 'extern' keyword. However, some AIX system header files and several gnulib header files use precisely this syntax with 'extern'. */ # define _Noreturn [[noreturn]] # elif (defined __clang__ && __clang_major__ < 16 \ && defined _GL_WORK_AROUND_LLVM_BUG_59792) /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around that rare LLVM bug, though you may get many false-alarm warnings. */ # define _Noreturn # elif ((!defined __cplusplus || defined __clang__) \ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ || (!defined __STRICT_ANSI__ \ && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 3 < __clang_major__ + (5 <= __clang_minor__)))))) /* _Noreturn works as-is. */ # elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif ������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/alignof.h���������������������������������������������������������������������������0000644�0000000�0000000�00000004177�14374751113�011717� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine alignment of types. Copyright (C) 2003-2004, 2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _ALIGNOF_H #define _ALIGNOF_H #include <stddef.h> /* alignof_slot (TYPE) Determine the alignment of a structure slot (field) of a given type, at compile time. Note that the result depends on the ABI. This is the same as alignof (TYPE). Note: The result cannot be used as a value for an 'enum' constant, due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */ #if defined __cplusplus template <class type> struct alignof_helper { char __slot1; type __slot2; }; # define alignof_slot(type) offsetof (alignof_helper<type>, __slot2) #else # define alignof_slot(type) alignof (type) #endif /* alignof_type (TYPE) Determine the good alignment of an object of the given type at compile time. Note that this is not necessarily the same as alignof_slot(type). For example, with GNU C on x86 platforms and with clang on Linux/x86: alignof_type(long long) = 8, but alignof_slot(long long) = 4. And alignof_type(double) = 8, but - when -malign-double is not specified: alignof_slot(double) = 4, - when -malign-double is specified: alignof_slot(double) = 8. Note: The result cannot be used as a value for an 'enum' constant, due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */ #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ # define alignof_type __alignof__ #else # define alignof_type alignof_slot #endif #endif /* _ALIGNOF_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/alloca.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000004674�14374751113�012142� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Memory allocation on the stack. Copyright (C) 1995, 1999, 2001-2004, 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ #ifndef _GL_ALLOCA_H #define _GL_ALLOCA_H /* alloca (N) returns a pointer to N bytes of memory allocated on the stack, which will last until the function returns. Use of alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns, - for huge N (say, N >= 65536) - you never know how large (or small) the stack is, and when the stack cannot fulfill the memory allocation request, the program just crashes. */ #ifndef alloca /* Some version of mingw have an <alloca.h> that causes trouble when included after 'alloca' gets defined as a macro. As a workaround, include this <alloca.h> first and define 'alloca' as a macro afterwards if needed. */ # if defined __GNUC__ && (defined _WIN32 && ! defined __CYGWIN__) && @HAVE_ALLOCA_H@ # include_next <alloca.h> # endif #endif #ifndef alloca # if defined __GNUC__ || (__clang_major__ >= 4) # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca # elif defined _MSC_VER # include <malloc.h> # define alloca _alloca # elif defined __DECC && defined __VMS # define alloca __ALLOCA # elif defined __TANDEM && defined _TNS_E_TARGET # ifdef __cplusplus extern "C" # endif void *_alloca (unsigned short); # pragma intrinsic (_alloca) # define alloca _alloca # elif defined __MVS__ # include <stdlib.h> # else # include <stddef.h> # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #endif /* _GL_ALLOCA_H */ ��������������������������������������������������������������������a2ps-4.15.5/lib/arg-nonnull.h�����������������������������������������������������������������������0000644�0000000�0000000�00000002353�14374751113�012526� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) # endif #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/argmatch.c��������������������������������������������������������������������������0000644�0000000�0000000�00000017745�14374751113�012066� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* argmatch.c -- find a match for a string in an array Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by David MacKenzie <djm@ai.mit.edu> Modified by Akim Demaille <demaille@inf.enst.fr> */ #include <config.h> /* Specification. */ #include "argmatch.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #define _(msgid) gettext (msgid) #include "error.h" #include "quotearg.h" #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif /* When reporting an invalid argument, show nonprinting characters by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use literal_quoting_style. */ #ifndef ARGMATCH_QUOTING_STYLE # define ARGMATCH_QUOTING_STYLE locale_quoting_style #endif /* Non failing version of argmatch call this function after failing. */ #ifndef ARGMATCH_DIE # include "exitfail.h" # define ARGMATCH_DIE exit (exit_failure) #endif #ifdef ARGMATCH_DIE_DECL ARGMATCH_DIE_DECL; #endif static void __argmatch_die (void) { ARGMATCH_DIE; } /* Used by XARGMATCH. See description in argmatch.h. Default to __argmatch_die, but allow caller to change this at run-time. */ argmatch_exit_fn argmatch_die = __argmatch_die; /* If ARG is an unambiguous match for an element of the NULL-terminated array ARGLIST, return the index in ARGLIST of the matched element, else -1 if it does not match any element or -2 if it is ambiguous (is a prefix of more than one element). If VALLIST is none null, use it to resolve ambiguities limited to synonyms, i.e., for "yes", "yop" -> 0 "no", "nope" -> 1 "y" is a valid argument, for 0, and "n" for 1. */ ptrdiff_t argmatch (const char *arg, const char *const *arglist, const void *vallist, size_t valsize) { size_t i; /* Temporary index in ARGLIST. */ size_t arglen; /* Length of ARG. */ ptrdiff_t matchind = -1; /* Index of first nonexact match. */ bool ambiguous = false; /* If true, multiple nonexact match(es). */ arglen = strlen (arg); /* Test all elements for either exact match or abbreviated matches. */ for (i = 0; arglist[i]; i++) { if (!strncmp (arglist[i], arg, arglen)) { if (strlen (arglist[i]) == arglen) /* Exact match found. */ return i; else if (matchind == -1) /* First nonexact match found. */ matchind = i; else { /* Second nonexact match found. */ if (vallist == NULL || memcmp ((char const *) vallist + valsize * matchind, (char const *) vallist + valsize * i, valsize)) { /* There is a real ambiguity, or we could not disambiguate. */ ambiguous = true; } } } } if (ambiguous) return -2; else return matchind; } ptrdiff_t argmatch_exact (const char *arg, const char *const *arglist) { size_t i; /* Test elements for exact match. */ for (i = 0; arglist[i]; i++) { if (!strcmp (arglist[i], arg)) return i; } return -1; } /* Error reporting for argmatch. CONTEXT is a description of the type of entity that was being matched. VALUE is the invalid value that was given. PROBLEM is the return value from argmatch. */ void argmatch_invalid (const char *context, const char *value, ptrdiff_t problem) { char const *format = (problem == -1 ? _("invalid argument %s for %s") : _("ambiguous argument %s for %s")); error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value), quote_n (1, context)); } /* List the valid arguments for argmatch. ARGLIST is the same as in argmatch. VALLIST is a pointer to an array of values. VALSIZE is the size of the elements of VALLIST */ void argmatch_valid (const char *const *arglist, const void *vallist, size_t valsize) { size_t i; const char *last_val = NULL; /* We try to put synonyms on the same line. The assumption is that synonyms follow each other */ fputs (_("Valid arguments are:"), stderr); for (i = 0; arglist[i]; i++) if ((i == 0) || memcmp (last_val, (char const *) vallist + valsize * i, valsize)) { fprintf (stderr, "\n - %s", quote (arglist[i])); last_val = (char const *) vallist + valsize * i; } else { fprintf (stderr, ", %s", quote (arglist[i])); } putc ('\n', stderr); } /* Never failing versions of the previous functions. CONTEXT is the context for which argmatch is called (e.g., "--version-control", or "$VERSION_CONTROL" etc.). Upon failure, calls the (supposed never to return) function EXIT_FN. */ ptrdiff_t __xargmatch_internal (const char *context, const char *arg, const char *const *arglist, const void *vallist, size_t valsize, argmatch_exit_fn exit_fn, bool allow_abbreviation) { ptrdiff_t res; if (allow_abbreviation) res = argmatch (arg, arglist, vallist, valsize); else res = argmatch_exact (arg, arglist); if (res >= 0) /* Success. */ return res; /* We failed. Explain why. */ argmatch_invalid (context, arg, res); argmatch_valid (arglist, vallist, valsize); (*exit_fn) (); return -1; /* To please the compilers. */ } /* Look for VALUE in VALLIST, an array of objects of size VALSIZE and return the first corresponding argument in ARGLIST */ const char * argmatch_to_argument (const void *value, const char *const *arglist, const void *vallist, size_t valsize) { size_t i; for (i = 0; arglist[i]; i++) if (!memcmp (value, (char const *) vallist + valsize * i, valsize)) return arglist[i]; return NULL; } #ifdef TEST /* * Based on "getversion.c" by David MacKenzie <djm@gnu.ai.mit.edu> */ /* When to make backup files. */ enum backup_type { /* Never make backups. */ no_backups, /* Make simple backups of every file. */ simple_backups, /* Make numbered backups of files that already have numbered backups, and simple backups of the others. */ numbered_existing_backups, /* Make numbered backups of every file. */ numbered_backups }; /* Two tables describing arguments (keys) and their corresponding values */ static const char *const backup_args[] = { "no", "none", "off", "simple", "never", "existing", "nil", "numbered", "t", 0 }; static const enum backup_type backup_vals[] = { no_backups, no_backups, no_backups, simple_backups, simple_backups, numbered_existing_backups, numbered_existing_backups, numbered_backups, numbered_backups }; int main (int argc, const char *const *argv) { const char *cp; enum backup_type backup_type = no_backups; if (argc > 2) { fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", getprogname ()); exit (1); } if ((cp = getenv ("VERSION_CONTROL"))) backup_type = XARGMATCH ("$VERSION_CONTROL", cp, backup_args, backup_vals); if (argc == 2) backup_type = XARGMATCH (getprogname (), argv[1], backup_args, backup_vals); printf ("The version control is '%s'\n", ARGMATCH_TO_ARGUMENT (&backup_type, backup_args, backup_vals)); return 0; } #endif ���������������������������a2ps-4.15.5/lib/argmatch.h��������������������������������������������������������������������������0000644�0000000�0000000�00000050064�14374751113�012062� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* argmatch.h -- definitions and prototypes for argmatch.c Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by David MacKenzie <djm@ai.mit.edu> Modified by Akim Demaille <demaille@inf.enst.fr> */ #ifndef ARGMATCH_H_ # define ARGMATCH_H_ 1 # include <limits.h> # include <stddef.h> # include <stdio.h> # include <string.h> /* memcmp */ # include "gettext.h" # include "quote.h" # ifdef __cplusplus extern "C" { # endif # define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array)) /* Assert there are as many real arguments as there are values (argument list ends with a NULL guard). */ # define ARGMATCH_VERIFY(Arglist, Vallist) \ static_assert (ARRAY_CARDINALITY (Arglist) \ == ARRAY_CARDINALITY (Vallist) + 1) /* Return the index of the element of ARGLIST (NULL terminated) that matches with ARG. If VALLIST is not NULL, then use it to resolve false ambiguities (i.e., different matches of ARG but corresponding to the same values in VALLIST). */ ptrdiff_t argmatch (char const *arg, char const *const *arglist, void const *vallist, size_t valsize) _GL_ATTRIBUTE_PURE; ptrdiff_t argmatch_exact (char const *arg, char const *const *arglist) _GL_ATTRIBUTE_PURE; # define ARGMATCH(Arg, Arglist, Vallist) \ argmatch (Arg, Arglist, (void const *) (Vallist), sizeof *(Vallist)) # define ARGMATCH_EXACT(Arg, Arglist) \ argmatch_exact (Arg, Arglist) /* xargmatch calls this function when it fails. This function should not return. By default, this is a function that calls ARGMATCH_DIE which in turn defaults to 'exit (exit_failure)'. */ typedef void (*argmatch_exit_fn) (void); extern argmatch_exit_fn argmatch_die; /* Report on stderr why argmatch failed. Report correct values. */ void argmatch_invalid (char const *context, char const *value, ptrdiff_t problem); /* Left for compatibility with the old name invalid_arg */ # define invalid_arg(Context, Value, Problem) \ argmatch_invalid (Context, Value, Problem) /* Report on stderr the list of possible arguments. */ void argmatch_valid (char const *const *arglist, void const *vallist, size_t valsize); # define ARGMATCH_VALID(Arglist, Vallist) \ argmatch_valid (Arglist, (void const *) (Vallist), sizeof *(Vallist)) /* Like argmatch/argmatch_exact, but upon failure, report an explanation of the failure, and exit using the function EXIT_FN. */ ptrdiff_t __xargmatch_internal (char const *context, char const *arg, char const *const *arglist, void const *vallist, size_t valsize, argmatch_exit_fn exit_fn, bool allow_abbreviation); /* Programmer friendly interface to __xargmatch_internal. */ # define XARGMATCH(Context, Arg, Arglist, Vallist) \ ((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \ (void const *) (Vallist), \ sizeof *(Vallist), \ argmatch_die, \ true)]) # define XARGMATCH_EXACT(Context, Arg, Arglist, Vallist) \ ((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \ (void const *) (Vallist), \ sizeof *(Vallist), \ argmatch_die, \ false)]) /* Convert a value into a corresponding argument. */ char const *argmatch_to_argument (void const *value, char const *const *arglist, void const *vallist, size_t valsize) _GL_ATTRIBUTE_PURE; # define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \ argmatch_to_argument (Value, Arglist, \ (void const *) (Vallist), sizeof *(Vallist)) # define ARGMATCH_DEFINE_GROUP(Name, Type) \ /* The type of the values of this group. */ \ typedef Type argmatch_##Name##_type; \ \ /* The size of the type of the values of this group. */ \ enum argmatch_##Name##_size_enum \ { \ argmatch_##Name##_size = sizeof (argmatch_##Name##_type) \ }; \ \ /* Argument mapping of this group. */ \ typedef struct \ { \ /* Argument (e.g., "simple"). */ \ const char *arg; \ /* Value (e.g., simple_backups). */ \ const argmatch_##Name##_type val; \ } argmatch_##Name##_arg; \ \ /* Documentation of this group. */ \ typedef struct \ { \ /* Argument (e.g., "simple"). */ \ const char *arg; \ /* Documentation (e.g., N_("always make simple backups")). */ \ const char *doc; \ } argmatch_##Name##_doc; \ \ /* All the features of an argmatch group. */ \ typedef struct \ { \ const argmatch_##Name##_arg* args; \ const argmatch_##Name##_doc* docs; \ \ /* Printed before the usage message. */ \ const char *doc_pre; \ /* Printed after the usage message. */ \ const char *doc_post; \ } argmatch_##Name##_group_type; \ \ /* The structure the user must build. */ \ extern const argmatch_##Name##_group_type argmatch_##Name##_group; \ \ /* Print the documentation of this group. */ \ void argmatch_##Name##_usage (FILE *out); \ \ /* If nonnegative, the index I of ARG in ARGS, i.e, \ ARGS[I] == ARG. \ Return -1 for invalid argument, -2 for ambiguous argument. */ \ ptrdiff_t argmatch_##Name##_choice (const char *arg); \ \ /* A pointer to the corresponding value if it exists, or \ report an error and exit with failure if the argument was \ not recognized. */ \ const argmatch_##Name##_type* \ argmatch_##Name##_value (const char *context, const char *arg); \ \ /* The first argument in ARGS that matches this value, or NULL. */ \ const char * \ argmatch_##Name##_argument (const argmatch_##Name##_type *val); \ \ ptrdiff_t \ argmatch_##Name##_choice (const char *arg) \ { \ const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ size_t size = argmatch_##Name##_size; \ ptrdiff_t res = -1; /* Index of first nonexact match. */ \ bool ambiguous = false; /* Whether multiple nonexact match(es). */ \ size_t arglen = strlen (arg); \ \ /* Test all elements for either exact match or abbreviated \ matches. */ \ for (size_t i = 0; g->args[i].arg; i++) \ if (!strncmp (g->args[i].arg, arg, arglen)) \ { \ if (strlen (g->args[i].arg) == arglen) \ /* Exact match found. */ \ return i; \ else if (res == -1) \ /* First nonexact match found. */ \ res = i; \ else if (memcmp (&g->args[res].val, &g->args[i].val, size)) \ /* Second nonexact match found. */ \ /* There is a real ambiguity, or we could not \ disambiguate. */ \ ambiguous = true; \ } \ return ambiguous ? -2 : res; \ } \ \ const char * \ argmatch_##Name##_argument (const argmatch_##Name##_type *val) \ { \ const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ size_t size = argmatch_##Name##_size; \ for (size_t i = 0; g->args[i].arg; i++) \ if (!memcmp (val, &g->args[i].val, size)) \ return g->args[i].arg; \ return NULL; \ } \ \ /* List the valid values of this group. */ \ static void \ argmatch_##Name##_valid (FILE *out) \ { \ const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ size_t size = argmatch_##Name##_size; \ \ /* Try to put synonyms on the same line. Synonyms are expected \ to follow each other. */ \ fputs (gettext ("Valid arguments are:"), out); \ for (int i = 0; g->args[i].arg; i++) \ if (i == 0 \ || memcmp (&g->args[i-1].val, &g->args[i].val, size)) \ fprintf (out, "\n - %s", quote (g->args[i].arg)); \ else \ fprintf (out, ", %s", quote (g->args[i].arg)); \ putc ('\n', out); \ } \ \ const argmatch_##Name##_type* \ argmatch_##Name##_value (const char *context, const char *arg) \ { \ const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ ptrdiff_t res = argmatch_##Name##_choice (arg); \ if (res < 0) \ { \ argmatch_invalid (context, arg, res); \ argmatch_##Name##_valid (stderr); \ argmatch_die (); \ } \ return &g->args[res].val; \ } \ \ /* The column in which the documentation is displayed. \ The leftmost possible, but no more than 20. */ \ static int \ argmatch_##Name##_doc_col (void) \ { \ const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ size_t size = argmatch_##Name##_size; \ int res = 0; \ for (int i = 0; g->docs[i].arg; ++i) \ { \ int col = 4; \ int ival = argmatch_##Name##_choice (g->docs[i].arg); \ if (ival < 0) \ /* Pseudo argument, display it. */ \ col += strlen (g->docs[i].arg); \ else \ /* Genuine argument, display it with its synonyms. */ \ for (int j = 0; g->args[j].arg; ++j) \ if (! memcmp (&g->args[ival].val, &g->args[j].val, size)) \ col += (col == 4 ? 0 : 2) + strlen (g->args[j].arg); \ if (res <= col) \ res = col <= 20 ? col : 20; \ } \ return res ? res : 20; \ } \ \ void \ argmatch_##Name##_usage (FILE *out) \ { \ const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ size_t size = argmatch_##Name##_size; \ /* Width of the screen. Help2man does not seem to support \ arguments on several lines, so in that case pretend a very \ large width. */ \ const int screen_width = getenv ("HELP2MAN") ? INT_MAX : 80; \ if (g->doc_pre) \ fprintf (out, "%s\n", gettext (g->doc_pre)); \ int doc_col = argmatch_##Name##_doc_col (); \ for (int i = 0; g->docs[i].arg; ++i) \ { \ int col = 0; \ bool first = true; \ int ival = argmatch_##Name##_choice (g->docs[i].arg); \ if (ival < 0) \ /* Pseudo argument, display it. */ \ col += fprintf (out, " %s", g->docs[i].arg); \ else \ /* Genuine argument, display it with its synonyms. */ \ for (int j = 0; g->args[j].arg; ++j) \ if (! memcmp (&g->args[ival].val, &g->args[j].val, size)) \ { \ if (!first \ && screen_width < col + 2 + strlen (g->args[j].arg)) \ { \ fprintf (out, ",\n"); \ col = 0; \ first = true; \ } \ if (first) \ { \ col += fprintf (out, " "); \ first = false; \ } \ else \ col += fprintf (out, ","); \ col += fprintf (out, " %s", g->args[j].arg); \ } \ /* The doc. Separated by at least two spaces. */ \ if (doc_col < col + 2) \ { \ fprintf (out, "\n"); \ col = 0; \ } \ fprintf (out, "%*s%s\n", \ doc_col - col, "", gettext (g->docs[i].doc)); \ } \ if (g->doc_post) \ fprintf (out, "%s\n", gettext (g->doc_post)); \ } # ifdef __cplusplus } # endif #endif /* ARGMATCH_H_ */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/assert.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000002025�14374751113�012174� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Substitute for and wrapper around <assert.h> Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Do not guard the include, since <assert.h> is supposed to define the assert macro each time it is included. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #@INCLUDE_NEXT@ @NEXT_ASSERT_H@ /* The definition of static_assert is copied here. */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/assure.h����������������������������������������������������������������������������0000644�0000000�0000000�00000003621�14374751113�011573� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Run-time assert-like macros. Copyright (C) 2014-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #ifndef _GL_ASSURE_H #define _GL_ASSURE_H #include <assert.h> #include "verify.h" /* Evaluate an assertion E that is guaranteed to be true. If NDEBUG is not defined, abort the program if E is false. If NDEBUG is defined, the compiler can assume E and behavior is undefined if E is false, fails to evaluate, or has side effects. Unlike standard 'assert', this macro evaluates E even when NDEBUG is defined, so as to catch typos, avoid some GCC warnings, and improve performance when E is simple enough. Also see the documentation for 'assume' in verify.h. */ #ifdef NDEBUG # define affirm(E) assume (E) #else # define affirm(E) assert (E) #endif /* Check E's value at runtime, and report an error and abort if not. However, do nothing if NDEBUG is defined. Unlike standard 'assert', this macro compiles E even when NDEBUG is defined, so as to catch typos and avoid some GCC warnings. Unlike 'affirm', it is OK for E to use hard-to-optimize features, since E is not executed if NDEBUG is defined. */ #ifdef NDEBUG # define assure(E) ((void) (0 && (E))) #else # define assure(E) assert (E) #endif #endif ���������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/at-func.c���������������������������������������������������������������������������0000644�0000000�0000000�00000010470�14374751113�011621� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Define at-style functions like fstatat, unlinkat, fchownat, etc. Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering */ #include "filename.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ #ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD # include <errno.h> # ifndef ENOTSUP # define ENOTSUP EINVAL # endif #else # include "openat.h" # include "openat-priv.h" # include "save-cwd.h" #endif #ifdef AT_FUNC_USE_F1_COND # define CALL_FUNC(F) \ (flag == AT_FUNC_USE_F1_COND \ ? AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS) \ : AT_FUNC_F2 (F AT_FUNC_POST_FILE_ARGS)) # define VALIDATE_FLAG(F) \ if (flag & ~AT_FUNC_USE_F1_COND) \ { \ errno = EINVAL; \ return FUNC_FAIL; \ } #else # define CALL_FUNC(F) (AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS)) # define VALIDATE_FLAG(F) /* empty */ #endif #ifdef AT_FUNC_RESULT # define FUNC_RESULT AT_FUNC_RESULT #else # define FUNC_RESULT int #endif #ifdef AT_FUNC_FAIL # define FUNC_FAIL AT_FUNC_FAIL #else # define FUNC_FAIL -1 #endif /* Call AT_FUNC_F1 to operate on FILE, which is in the directory open on descriptor FD. If AT_FUNC_USE_F1_COND is defined to a value, AT_FUNC_POST_FILE_PARAM_DECLS must include a parameter named flag; call AT_FUNC_F2 if FLAG is 0 or fail if FLAG contains more bits than AT_FUNC_USE_F1_COND. Return int and fail with -1 unless AT_FUNC_RESULT or AT_FUNC_FAIL are defined. If possible, do it without changing the working directory. Otherwise, resort to using save_cwd/fchdir, then AT_FUNC_F?/restore_cwd. If either the save_cwd or the restore_cwd fails, then give a diagnostic and exit nonzero. */ FUNC_RESULT AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS) { VALIDATE_FLAG (flag); if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) return CALL_FUNC (file); #ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD errno = ENOTSUP; return FUNC_FAIL; #else { /* Be careful to choose names unlikely to conflict with AT_FUNC_POST_FILE_PARAM_DECLS. */ struct saved_cwd saved_cwd; int saved_errno; FUNC_RESULT err; { char proc_buf[OPENAT_BUFFER_SIZE]; char *proc_file = openat_proc_name (proc_buf, fd, file); if (proc_file) { FUNC_RESULT proc_result = CALL_FUNC (proc_file); int proc_errno = errno; if (proc_file != proc_buf) free (proc_file); /* If the syscall succeeds, or if it fails with an unexpected errno value, then return right away. Otherwise, fall through and resort to using save_cwd/restore_cwd. */ if (FUNC_FAIL != proc_result) return proc_result; if (! EXPECTED_ERRNO (proc_errno)) { errno = proc_errno; return proc_result; } } } if (save_cwd (&saved_cwd) != 0) openat_save_fail (errno); if (0 <= fd && fd == saved_cwd.desc) { /* If saving the working directory collides with the user's requested fd, then the user's fd must have been closed to begin with. */ free_cwd (&saved_cwd); errno = EBADF; return FUNC_FAIL; } if (fchdir (fd) != 0) { saved_errno = errno; free_cwd (&saved_cwd); errno = saved_errno; return FUNC_FAIL; } err = CALL_FUNC (file); saved_errno = (err == FUNC_FAIL ? errno : 0); if (restore_cwd (&saved_cwd) != 0) openat_restore_fail (errno); free_cwd (&saved_cwd); if (saved_errno) errno = saved_errno; return err; } #endif } #undef CALL_FUNC #undef FUNC_RESULT #undef FUNC_FAIL ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/at-func2.c��������������������������������������������������������������������������0000644�0000000�0000000�00000021677�14374751113�011716� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Define 2-FD at-style functions like linkat or renameat. Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering and Eric Blake */ #include <config.h> #include "openat-priv.h" #include <errno.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include "filename.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ #include "filenamecat.h" #include "openat.h" #include "same-inode.h" #include "save-cwd.h" /* Call FUNC to operate on a pair of files, where FILE1 is relative to FD1, and FILE2 is relative to FD2. If possible, do it without changing the working directory. Otherwise, resort to using save_cwd/fchdir, FUNC, restore_cwd (up to two times). If either the save_cwd or the restore_cwd fails, then give a diagnostic and exit nonzero. */ int at_func2 (int fd1, char const *file1, int fd2, char const *file2, int (*func) (char const *file1, char const *file2)) { struct saved_cwd saved_cwd; int saved_errno; int err; char *file1_alt; char *file2_alt; struct stat st1; struct stat st2; /* There are 16 possible scenarios, based on whether an fd is AT_FDCWD or real, and whether a file is absolute or relative: fd1 file1 fd2 file2 action 0 cwd abs cwd abs direct call 1 cwd abs cwd rel direct call 2 cwd abs fd abs direct call 3 cwd abs fd rel chdir to fd2 4 cwd rel cwd abs direct call 5 cwd rel cwd rel direct call 6 cwd rel fd abs direct call 7 cwd rel fd rel convert file1 to abs, then case 3 8 fd abs cwd abs direct call 9 fd abs cwd rel direct call 10 fd abs fd abs direct call 11 fd abs fd rel chdir to fd2 12 fd rel cwd abs chdir to fd1 13 fd rel cwd rel convert file2 to abs, then case 12 14 fd rel fd abs chdir to fd1 15a fd1 rel fd1 rel chdir to fd1 15b fd1 rel fd2 rel chdir to fd1, then case 7 Try some optimizations to reduce fd to AT_FDCWD, or to at least avoid converting an absolute name or doing a double chdir. */ if ((fd1 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file1)) && (fd2 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file2))) return func (file1, file2); /* Case 0-2, 4-6, 8-10. */ /* If /proc/self/fd works, we don't need any stat or chdir. */ { char proc_buf1[OPENAT_BUFFER_SIZE]; char *proc_file1 = ((fd1 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file1)) ? (char *) file1 : openat_proc_name (proc_buf1, fd1, file1)); if (proc_file1) { char proc_buf2[OPENAT_BUFFER_SIZE]; char *proc_file2 = ((fd2 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file2)) ? (char *) file2 : openat_proc_name (proc_buf2, fd2, file2)); if (proc_file2) { int proc_result = func (proc_file1, proc_file2); int proc_errno = errno; if (proc_file1 != proc_buf1 && proc_file1 != file1) free (proc_file1); if (proc_file2 != proc_buf2 && proc_file2 != file2) free (proc_file2); /* If the syscall succeeds, or if it fails with an unexpected errno value, then return right away. Otherwise, fall through and resort to using save_cwd/restore_cwd. */ if (0 <= proc_result) return proc_result; if (! EXPECTED_ERRNO (proc_errno)) { errno = proc_errno; return proc_result; } } else if (proc_file1 != proc_buf1 && proc_file1 != file1) free (proc_file1); } } /* Cases 3, 7, 11-15 remain. Time to normalize directory fds, if possible. */ if (IS_ABSOLUTE_FILE_NAME (file1)) fd1 = AT_FDCWD; /* Case 11 reduced to 3. */ else if (IS_ABSOLUTE_FILE_NAME (file2)) fd2 = AT_FDCWD; /* Case 14 reduced to 12. */ /* Cases 3, 7, 12, 13, 15 remain. */ if (fd1 == AT_FDCWD) /* Cases 3, 7. */ { if (stat (".", &st1) == -1 || fstat (fd2, &st2) == -1) return -1; if (!S_ISDIR (st2.st_mode)) { errno = ENOTDIR; return -1; } if (SAME_INODE (st1, st2)) /* Reduced to cases 1, 5. */ return func (file1, file2); } else if (fd2 == AT_FDCWD) /* Cases 12, 13. */ { if (stat (".", &st2) == -1 || fstat (fd1, &st1) == -1) return -1; if (!S_ISDIR (st1.st_mode)) { errno = ENOTDIR; return -1; } if (SAME_INODE (st1, st2)) /* Reduced to cases 4, 5. */ return func (file1, file2); } else if (fd1 != fd2) /* Case 15b. */ { if (fstat (fd1, &st1) == -1 || fstat (fd2, &st2) == -1) return -1; if (!S_ISDIR (st1.st_mode) || !S_ISDIR (st2.st_mode)) { errno = ENOTDIR; return -1; } if (SAME_INODE (st1, st2)) /* Reduced to case 15a. */ { fd2 = fd1; if (stat (".", &st1) == 0 && SAME_INODE (st1, st2)) return func (file1, file2); /* Further reduced to case 5. */ } } else /* Case 15a. */ { if (fstat (fd1, &st1) == -1) return -1; if (!S_ISDIR (st1.st_mode)) { errno = ENOTDIR; return -1; } if (stat (".", &st2) == 0 && SAME_INODE (st1, st2)) return func (file1, file2); /* Reduced to case 5. */ } /* Catch invalid arguments before changing directories. */ if (file1[0] == '\0' || file2[0] == '\0') { errno = ENOENT; return -1; } /* Cases 3, 7, 12, 13, 15a, 15b remain. With all reductions in place, it is time to start changing directories. */ if (save_cwd (&saved_cwd) != 0) openat_save_fail (errno); if (fd1 != AT_FDCWD && fd2 != AT_FDCWD && fd1 != fd2) /* Case 15b. */ { if (fchdir (fd1) != 0) { saved_errno = errno; free_cwd (&saved_cwd); errno = saved_errno; return -1; } fd1 = AT_FDCWD; /* Reduced to case 7. */ } /* Cases 3, 7, 12, 13, 15a remain. Convert one relative name to absolute, if necessary. */ file1_alt = (char *) file1; file2_alt = (char *) file2; if (fd1 == AT_FDCWD && !IS_ABSOLUTE_FILE_NAME (file1)) /* Case 7. */ { /* It would be nicer to use: file1_alt = file_name_concat (xgetcwd (), file1, NULL); but libraries should not call xalloc_die. */ char *cwd = getcwd (NULL, 0); if (!cwd) { saved_errno = errno; free_cwd (&saved_cwd); errno = saved_errno; return -1; } file1_alt = mfile_name_concat (cwd, file1, NULL); if (!file1_alt) { saved_errno = errno; free (cwd); free_cwd (&saved_cwd); errno = saved_errno; return -1; } free (cwd); /* Reduced to case 3. */ } else if (fd2 == AT_FDCWD && !IS_ABSOLUTE_FILE_NAME (file2)) /* Case 13. */ { char *cwd = getcwd (NULL, 0); if (!cwd) { saved_errno = errno; free_cwd (&saved_cwd); errno = saved_errno; return -1; } file2_alt = mfile_name_concat (cwd, file2, NULL); if (!file2_alt) { saved_errno = errno; free (cwd); free_cwd (&saved_cwd); errno = saved_errno; return -1; } free (cwd); /* Reduced to case 12. */ } /* Cases 3, 12, 15a remain. Change to the correct directory. */ if (fchdir (fd1 == AT_FDCWD ? fd2 : fd1) != 0) { saved_errno = errno; free_cwd (&saved_cwd); if (file1 != file1_alt) free (file1_alt); else if (file2 != file2_alt) free (file2_alt); errno = saved_errno; return -1; } /* Finally safe to perform the user's function, then clean up. */ err = func (file1_alt, file2_alt); saved_errno = (err < 0 ? errno : 0); if (file1 != file1_alt) free (file1_alt); else if (file2 != file2_alt) free (file2_alt); if (restore_cwd (&saved_cwd) != 0) openat_restore_fail (errno); free_cwd (&saved_cwd); if (saved_errno) errno = saved_errno; return err; } #undef CALL_FUNC #undef FUNC_RESULT �����������������������������������������������������������������a2ps-4.15.5/lib/attribute.h�������������������������������������������������������������������������0000644�0000000�0000000�00000021376�14374751113�012303� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ATTRIBUTE_* macros for using attributes in GCC and similar compilers Copyright 2020-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ /* Provide public ATTRIBUTE_* names for the private _GL_ATTRIBUTE_* macros used within Gnulib. */ /* These attributes can be placed in two ways: - At the start of a declaration (i.e. even before storage-class specifiers!); then they apply to all entities that are declared by the declaration. - Immediately after the name of an entity being declared by the declaration; then they apply to that entity only. */ #ifndef _GL_ATTRIBUTE_H #define _GL_ATTRIBUTE_H /* This file defines two types of attributes: * C23 standard attributes. These have macro names that do not begin with 'ATTRIBUTE_'. * Selected GCC attributes; see: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html These names begin with 'ATTRIBUTE_' to avoid name clashes. */ /* =============== Attributes for specific kinds of functions =============== */ /* Attributes for functions that should not be used. */ /* Warn if the entity is used. */ /* Applies to: - function, variable, - struct, union, struct/union member, - enumeration, enumeration item, - typedef, in C++ also: namespace, class, template specialization. */ #define DEPRECATED _GL_ATTRIBUTE_DEPRECATED /* If a function call is not optimized way, warn with MSG. */ /* Applies to: functions. */ #define ATTRIBUTE_WARNING(msg) _GL_ATTRIBUTE_WARNING (msg) /* If a function call is not optimized way, report an error with MSG. */ /* Applies to: functions. */ #define ATTRIBUTE_ERROR(msg) _GL_ATTRIBUTE_ERROR (msg) /* Attributes for memory-allocating functions. */ /* The function returns a pointer to freshly allocated memory. */ /* Applies to: functions. */ #define ATTRIBUTE_MALLOC _GL_ATTRIBUTE_MALLOC /* ATTRIBUTE_ALLOC_SIZE ((N)) - The Nth argument of the function is the size of the returned memory block. ATTRIBUTE_ALLOC_SIZE ((M, N)) - Multiply the Mth and Nth arguments to determine the size of the returned memory block. */ /* Applies to: function, pointer to function, function types. */ #define ATTRIBUTE_ALLOC_SIZE(args) _GL_ATTRIBUTE_ALLOC_SIZE (args) /* ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers that can be freed by passing them as the Ith argument to the function F. ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that can be freed via 'free'; it can be used only after declaring 'free'. */ /* Applies to: functions. Cannot be used on inline functions. */ #define ATTRIBUTE_DEALLOC(f, i) _GL_ATTRIBUTE_DEALLOC(f, i) #define ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC_FREE /* Attributes for variadic functions. */ /* The variadic function expects a trailing NULL argument. ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ /* Applies to: functions. */ #define ATTRIBUTE_SENTINEL(pos) _GL_ATTRIBUTE_SENTINEL (pos) /* ================== Attributes for compiler diagnostics ================== */ /* Attributes that help the compiler diagnose programmer mistakes. Some of them may also help for some compiler optimizations. */ /* ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) - The STRING-INDEXth function argument is a format string of style ARCHETYPE, which is one of: printf, gnu_printf scanf, gnu_scanf, strftime, gnu_strftime, strfmon, or the same thing prefixed and suffixed with '__'. If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK are suitable for the format string. */ /* Applies to: functions. */ #define ATTRIBUTE_FORMAT(spec) _GL_ATTRIBUTE_FORMAT (spec) /* ATTRIBUTE_NONNULL ((N1, N2,...)) - Arguments N1, N2,... must not be NULL. ATTRIBUTE_NONNULL () - All pointer arguments must not be null. */ /* Applies to: functions. */ #define ATTRIBUTE_NONNULL(args) _GL_ATTRIBUTE_NONNULL (args) /* The function's return value is a non-NULL pointer. */ /* Applies to: functions. */ #define ATTRIBUTE_RETURNS_NONNULL _GL_ATTRIBUTE_RETURNS_NONNULL /* Warn if the caller does not use the return value, unless the caller uses something like ignore_value. */ /* Applies to: function, enumeration, class. */ #define NODISCARD _GL_ATTRIBUTE_NODISCARD /* Attributes that disable false alarms when the compiler diagnoses programmer "mistakes". */ /* Do not warn if the entity is not used. */ /* Applies to: - function, variable, - struct, union, struct/union member, - enumeration, enumeration item, - typedef, in C++ also: class. */ #define MAYBE_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED /* The contents of a character array is not meant to be NUL-terminated. */ /* Applies to: struct/union members and variables that are arrays of element type '[[un]signed] char'. */ #define ATTRIBUTE_NONSTRING _GL_ATTRIBUTE_NONSTRING /* Do not warn if control flow falls through to the immediately following 'case' or 'default' label. */ /* Applies to: Empty statement (;), inside a 'switch' statement. */ #define FALLTHROUGH _GL_ATTRIBUTE_FALLTHROUGH /* ================== Attributes for debugging information ================== */ /* Attributes regarding debugging information emitted by the compiler. */ /* Omit the function from stack traces when debugging. */ /* Applies to: function. */ #define ATTRIBUTE_ARTIFICIAL _GL_ATTRIBUTE_ARTIFICIAL /* Make the entity visible to debuggers etc., even with '-fwhole-program'. */ /* Applies to: functions, variables. */ #define ATTRIBUTE_EXTERNALLY_VISIBLE _GL_ATTRIBUTE_EXTERNALLY_VISIBLE /* ========== Attributes that mainly direct compiler optimizations ========== */ /* The function does not throw exceptions. */ /* Applies to: functions. */ #define ATTRIBUTE_NOTHROW _GL_ATTRIBUTE_NOTHROW /* Do not inline the function. */ /* Applies to: functions. */ #define ATTRIBUTE_NOINLINE _GL_ATTRIBUTE_NOINLINE /* Always inline the function, and report an error if the compiler cannot inline. */ /* Applies to: function. */ #define ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE /* It is OK for a compiler to omit duplicate calls with the same arguments. This attribute is safe for a function that neither depends on nor affects observable state, and always returns exactly once - e.g., does not loop forever, and does not call longjmp. (This attribute is stricter than ATTRIBUTE_PURE.) */ /* Applies to: functions. */ #define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST /* It is OK for a compiler to omit duplicate calls with the same arguments if observable state is not changed between calls. This attribute is safe for a function that does not affect observable state, and always returns exactly once. (This attribute is looser than ATTRIBUTE_CONST.) */ /* Applies to: functions. */ #define ATTRIBUTE_PURE _GL_ATTRIBUTE_PURE /* The function is rarely executed. */ /* Applies to: functions. */ #define ATTRIBUTE_COLD _GL_ATTRIBUTE_COLD /* If called from some other compilation unit, the function executes code from that unit only by return or by exception handling, letting the compiler optimize that unit more aggressively. */ /* Applies to: functions. */ #define ATTRIBUTE_LEAF _GL_ATTRIBUTE_LEAF /* For struct members: The member has the smallest possible alignment. For struct, union, class: All members have the smallest possible alignment, minimizing the memory required. */ /* Applies to: struct members, struct, union, in C++ also: class. */ #define ATTRIBUTE_PACKED _GL_ATTRIBUTE_PACKED /* ================ Attributes that make invalid code valid ================ */ /* Attributes that prevent fatal compiler optimizations for code that is not fully ISO C compliant. */ /* Pointers to the type may point to the same storage as pointers to other types, thus disabling strict aliasing optimization. */ /* Applies to: types. */ #define ATTRIBUTE_MAY_ALIAS _GL_ATTRIBUTE_MAY_ALIAS #endif /* _GL_ATTRIBUTE_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/backup-find.c�����������������������������������������������������������������������0000644�0000000�0000000�00000005634�14374751113�012455� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* backupfile.c -- make Emacs style backup file names Copyright 2017-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "backup-internal.h" #include "argmatch.h" #include "xalloc.h" #include <stdlib.h> /* Relative to DIR_FD, return the name of a backup file for the existing file FILE, allocated with malloc. Report an error and exit if out of memory. Do not call this function if backup_type == no_backups. */ char * find_backup_file_name (int dir_fd, char const *file, enum backup_type backup_type) { char *result = backupfile_internal (dir_fd, file, backup_type, false); if (!result) xalloc_die (); return result; } static char const *const backup_args[] = { /* In a series of synonyms, present the most meaningful first, so that argmatch_valid be more readable. */ "none", "off", "simple", "never", "existing", "nil", "numbered", "t", NULL }; static const enum backup_type backup_types[] = { no_backups, no_backups, simple_backups, simple_backups, numbered_existing_backups, numbered_existing_backups, numbered_backups, numbered_backups }; /* Ensure that these two vectors have the same number of elements, not counting the final NULL in the first one. */ ARGMATCH_VERIFY (backup_args, backup_types); /* Return the type of backup specified by VERSION. If VERSION is NULL or the empty string, return numbered_existing_backups. If VERSION is invalid or ambiguous, fail with a diagnostic appropriate for the specified CONTEXT. Unambiguous abbreviations are accepted. */ enum backup_type get_version (char const *context, char const *version) { if (version == 0 || *version == 0) return numbered_existing_backups; else return XARGMATCH (context, version, backup_args, backup_types); } /* Return the type of backup specified by VERSION. If VERSION is NULL, use the value of the envvar VERSION_CONTROL. If the specified string is invalid or ambiguous, fail with a diagnostic appropriate for the specified CONTEXT. Unambiguous abbreviations are accepted. */ enum backup_type xget_version (char const *context, char const *version) { if (version && *version) return get_version (context, version); else return get_version ("$VERSION_CONTROL", getenv ("VERSION_CONTROL")); } ����������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/backup-internal.h�������������������������������������������������������������������0000644�0000000�0000000�00000001574�14374751113�013355� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Backup files. Copyright (C) 2017-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include "backupfile.h" #include <stdlib.h> extern char *backupfile_internal (int, char const *, enum backup_type, bool) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; ������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/backupfile.c������������������������������������������������������������������������0000644�0000000�0000000�00000027757�14374751113�012411� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* backupfile.c -- make Emacs style backup file names Copyright (C) 1990-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert and David MacKenzie. Some algorithms adapted from GNU Emacs. */ #include <config.h> #include "backup-internal.h" #include <dirent.h> #include <errno.h> #include <fcntl.h> #include <stdckdint.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include "attribute.h" #include "basename-lgpl.h" #include "ialloc.h" #include "opendirat.h" #include "renameatu.h" #ifndef _D_EXACT_NAMLEN # define _D_EXACT_NAMLEN(dp) strlen ((dp)->d_name) #endif #if ! (HAVE_PATHCONF && defined _PC_NAME_MAX) # define pathconf(file, option) (errno = -1) # define fpathconf(fd, option) (errno = -1) #endif #ifndef _POSIX_NAME_MAX # define _POSIX_NAME_MAX 14 #endif #if defined _XOPEN_NAME_MAX # define NAME_MAX_MINIMUM _XOPEN_NAME_MAX #else # define NAME_MAX_MINIMUM _POSIX_NAME_MAX #endif #ifndef HAVE_DOS_FILE_NAMES # define HAVE_DOS_FILE_NAMES 0 #endif #ifndef HAVE_LONG_FILE_NAMES # define HAVE_LONG_FILE_NAMES 0 #endif /* ISDIGIT differs from isdigit, as follows: - Its arg may be any int or unsigned int; it need not be an unsigned char or EOF. - It's typically faster. POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to ISDIGIT unless it's important to use the locale's definition of "digit" even when the host does not conform to POSIX. */ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) /* The extension added to file names to produce a simple (as opposed to numbered) backup file name. */ char const *simple_backup_suffix = NULL; /* Set SIMPLE_BACKUP_SUFFIX to S, or to a default specified by the environment if S is null. If S or the environment does not specify a valid backup suffix, use "~". */ void set_simple_backup_suffix (char const *s) { if (!s) s = getenv ("SIMPLE_BACKUP_SUFFIX"); simple_backup_suffix = s && *s && s == last_component (s) ? s : "~"; } /* If FILE (which was of length FILELEN before an extension was appended to it) is too long, replace the extension with the single char E. If the result is still too long, remove the char just before E. Return true if the extension was OK already, false if it needed replacement. If DIR_FD is nonnegative, it is a file descriptor for FILE's parent. *BASE_MAX is either 0, or the cached result of a previous call for FILE's parent's _PC_NAME_MAX. */ static bool check_extension (char *file, idx_t filelen, char e, int dir_fd, idx_t *base_max) { char *base = last_component (file); idx_t baselen = base_len (base); idx_t baselen_max = HAVE_LONG_FILE_NAMES ? 255 : NAME_MAX_MINIMUM; if (HAVE_DOS_FILE_NAMES || NAME_MAX_MINIMUM < baselen) { /* The new base name is long enough to require a pathconf check. */ if (*base_max == 0) { long name_max; if (dir_fd < 0) { /* Temporarily modify the buffer into its parent directory name, invoke pathconf on the directory, and then restore the buffer. */ char tmp[sizeof "."]; memcpy (tmp, base, sizeof "."); strcpy (base, "."); errno = 0; name_max = pathconf (file, _PC_NAME_MAX); name_max -= !errno; memcpy (base, tmp, sizeof "."); } else { errno = 0; name_max = fpathconf (dir_fd, _PC_NAME_MAX); name_max -= !errno; } *base_max = (0 <= name_max && name_max <= SIZE_MAX ? name_max : name_max < -1 ? NAME_MAX_MINIMUM : SIZE_MAX); } baselen_max = *base_max; } if (HAVE_DOS_FILE_NAMES && baselen_max <= 12) { /* Live within DOS's 8.3 limit. */ char *dot = strchr (base, '.'); if (!dot) baselen_max = 8; else { char const *second_dot = strchr (dot + 1, '.'); baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } if (baselen <= baselen_max) return true; else { baselen = file + filelen - base; if (baselen_max <= baselen) baselen = baselen_max - 1; base[baselen] = e; base[baselen + 1] = '\0'; return false; } } /* Returned values for NUMBERED_BACKUP. */ enum numbered_backup_result { /* The new backup name is the same length as an existing backup name, so it's valid for that directory. */ BACKUP_IS_SAME_LENGTH, /* Some backup names already exist, but the returned name is longer than any of them, and its length should be checked. */ BACKUP_IS_LONGER, /* There are no existing backup names. The new name's length should be checked. */ BACKUP_IS_NEW, /* Memory allocation failure. */ BACKUP_NOMEM }; /* Relative to DIR_FD, *BUFFER contains a file name. Store into *BUFFER the next backup name for the named file, with a version number greater than all the existing numbered backups. Reallocate *BUFFER as necessary; its initial allocated size is BUFFER_SIZE, which must be at least 5 bytes longer than the file name to make room for the initially appended ".~1~". FILELEN is the length of the original file name. (The original file name is not necessarily null-terminated; FILELEN does not count trailing slashes after a non-slash.) BASE_OFFSET is the offset of the basename in *BUFFER. The returned value indicates what kind of backup was found. If an I/O or other read error occurs, use the highest backup number that was found. *DIRPP is the destination directory. If *DIRPP is null, open the destination directory and store the resulting stream into *DIRPP and its file descriptor into *PNEW_FD without closing the stream. */ static enum numbered_backup_result numbered_backup (int dir_fd, char **buffer, idx_t buffer_size, idx_t filelen, idx_t base_offset, DIR **dirpp, int *pnew_fd) { enum numbered_backup_result result = BACKUP_IS_NEW; DIR *dirp = *dirpp; char *buf = *buffer; idx_t versionlenmax = 1; idx_t baselen = filelen - base_offset; if (dirp) rewinddir (dirp); else { /* Temporarily modify the buffer into its parent directory name, open the directory, and then restore the buffer. */ char tmp[sizeof "."]; char *base = buf + base_offset; memcpy (tmp, base, sizeof "."); strcpy (base, "."); dirp = opendirat (dir_fd, buf, 0, pnew_fd); if (!dirp && errno == ENOMEM) result = BACKUP_NOMEM; memcpy (base, tmp, sizeof "."); strcpy (base + baselen, ".~1~"); if (!dirp) return result; *dirpp = dirp; } for (struct dirent *dp; (dp = readdir (dirp)) != NULL; ) { if (_D_EXACT_NAMLEN (dp) < baselen + 4) continue; if (memcmp (buf + base_offset, dp->d_name, baselen + 2) != 0) continue; char const *p = dp->d_name + baselen + 2; /* Check whether this file has a version number and if so, whether it is larger. Use string operations rather than integer arithmetic, to avoid problems with integer overflow. */ if (! ('1' <= *p && *p <= '9')) continue; bool all_9s = (*p == '9'); idx_t versionlen; for (versionlen = 1; ISDIGIT (p[versionlen]); versionlen++) all_9s &= (p[versionlen] == '9'); if (! (p[versionlen] == '~' && !p[versionlen + 1] && (versionlenmax < versionlen || (versionlenmax == versionlen && memcmp (buf + filelen + 2, p, versionlen) <= 0)))) continue; /* This entry has the largest version number seen so far. Append this highest numbered extension to the file name, prepending '0' to the number if it is all 9s. */ versionlenmax = all_9s + versionlen; result = (all_9s ? BACKUP_IS_LONGER : BACKUP_IS_SAME_LENGTH); idx_t new_buffer_size = filelen + 2 + versionlenmax + 2; if (buffer_size < new_buffer_size) { idx_t grown; if (! ckd_add (&grown, new_buffer_size, new_buffer_size >> 1)) new_buffer_size = grown; char *new_buf = irealloc (buf, new_buffer_size); if (!new_buf) { *buffer = buf; return BACKUP_NOMEM; } buf = new_buf; buffer_size = new_buffer_size; } char *q = buf + filelen; *q++ = '.'; *q++ = '~'; *q = '0'; q += all_9s; memcpy (q, p, versionlen + 2); /* Add 1 to the version number. */ q += versionlen; while (*--q == '9') *q = '0'; ++*q; } *buffer = buf; return result; } /* Relative to DIR_FD, return the name of the new backup file for the existing file FILE, allocated with malloc. If RENAME, also rename FILE to the new name. On failure, return NULL and set errno. Do not call this function if backup_type == no_backups. */ char * backupfile_internal (int dir_fd, char const *file, enum backup_type backup_type, bool rename) { idx_t base_offset = last_component (file) - file; idx_t filelen = base_offset + base_len (file + base_offset); if (! simple_backup_suffix) set_simple_backup_suffix (NULL); /* Allow room for simple or ".~N~" backups. The guess must be at least sizeof ".~1~", but otherwise will be adjusted as needed. */ idx_t simple_backup_suffix_size = strlen (simple_backup_suffix) + 1; idx_t backup_suffix_size_guess = simple_backup_suffix_size; enum { GUESS = sizeof ".~12345~" }; if (backup_suffix_size_guess < GUESS) backup_suffix_size_guess = GUESS; idx_t ssize = filelen + backup_suffix_size_guess + 1; char *s = imalloc (ssize); if (!s) return s; DIR *dirp = NULL; int sdir = dir_fd; idx_t base_max = 0; while (true) { bool extended = true; memcpy (s, file, filelen); if (backup_type == simple_backups) memcpy (s + filelen, simple_backup_suffix, simple_backup_suffix_size); else switch (numbered_backup (dir_fd, &s, ssize, filelen, base_offset, &dirp, &sdir)) { case BACKUP_IS_SAME_LENGTH: break; case BACKUP_IS_NEW: if (backup_type == numbered_existing_backups) { backup_type = simple_backups; memcpy (s + filelen, simple_backup_suffix, simple_backup_suffix_size); } FALLTHROUGH; case BACKUP_IS_LONGER: extended = check_extension (s, filelen, '~', sdir, &base_max); break; case BACKUP_NOMEM: if (dirp) closedir (dirp); free (s); errno = ENOMEM; return NULL; } if (! rename) break; idx_t offset = backup_type == simple_backups ? 0 : base_offset; unsigned flags = backup_type == simple_backups ? 0 : RENAME_NOREPLACE; if (renameatu (sdir, file + offset, sdir, s + offset, flags) == 0) break; int e = errno; if (! (e == EEXIST && extended)) { if (dirp) closedir (dirp); free (s); errno = e; return NULL; } } if (dirp) closedir (dirp); return s; } �����������������a2ps-4.15.5/lib/backupfile.h������������������������������������������������������������������������0000644�0000000�0000000�00000003726�14374751113�012404� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* backupfile.h -- declarations for making Emacs style backup file names Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef BACKUPFILE_H_ #define BACKUPFILE_H_ /* Get AT_FDCWD, as a convenience for users of this file. */ #include <fcntl.h> #include <stdlib.h> #ifdef __cplusplus extern "C" { #endif /* When to make backup files. */ enum backup_type { /* Never make backups. */ no_backups, /* Make simple backups of every file. */ simple_backups, /* Make numbered backups of files that already have numbered backups, and simple backups of the others. */ numbered_existing_backups, /* Make numbered backups of every file. */ numbered_backups }; #define VALID_BACKUP_TYPE(Type) \ ((unsigned int) (Type) <= numbered_backups) extern char const *simple_backup_suffix; void set_simple_backup_suffix (char const *); char *backup_file_rename (int, char const *, enum backup_type) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; char *find_backup_file_name (int, char const *, enum backup_type) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; enum backup_type get_version (char const *context, char const *arg); enum backup_type xget_version (char const *context, char const *arg); #ifdef __cplusplus } #endif #endif /* ! BACKUPFILE_H_ */ ������������������������������������������a2ps-4.15.5/lib/basename-lgpl.c���������������������������������������������������������������������0000644�0000000�0000000�00000003440�14374751113�012772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* basename.c -- return the last element in a file name Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "basename-lgpl.h" #include <string.h> #include "filename.h" char * last_component (char const *name) { char const *base = name + FILE_SYSTEM_PREFIX_LEN (name); char const *p; bool last_was_slash = false; while (ISSLASH (*base)) base++; for (p = base; *p; p++) { if (ISSLASH (*p)) last_was_slash = true; else if (last_was_slash) { base = p; last_was_slash = false; } } return (char *) base; } size_t base_len (char const *name) { size_t len; size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--) continue; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1 && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2]) return 2; if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len && len == prefix_len && ISSLASH (name[prefix_len])) return prefix_len + 1; return len; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/basename-lgpl.h���������������������������������������������������������������������0000644�0000000�0000000�00000005324�14374751113�013002� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Extract the last component (base name) of a file name. Copyright (C) 1998, 2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _BASENAME_LGPL_H #define _BASENAME_LGPL_H #include <stddef.h> #ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 #endif #ifdef __cplusplus extern "C" { #endif /* Return the address of the last file name component of FILENAME. If FILENAME has some trailing slash(es), they are considered to be part of the last component. If FILENAME has no relative file name components because it is a file system root, return the empty string. Examples: FILENAME RESULT "foo.c" "foo.c" "foo/bar.c" "bar.c" "/foo/bar.c" "bar.c" "foo/bar/" "bar/" "foo/bar//" "bar//" "/" "" "//" "" "" "" The return value is a tail of the given FILENAME; do NOT free() it! */ /* This function was traditionally called 'basename', but we avoid this function name because * Various platforms have different functions in their libc. In particular, the glibc basename(), defined in <string.h>, does not consider trailing slashes to be part of the component: FILENAME RESULT "foo/bar/" "" "foo/bar//" "" * The 'basename' command eliminates trailing slashes and for a root produces a non-empty result: FILENAME RESULT "foo/bar/" "bar" "foo/bar//" "bar" "/" "/" "//" "/" */ extern char *last_component (char const *filename) _GL_ATTRIBUTE_PURE; /* Return the length of the basename FILENAME. Typically FILENAME is the value returned by base_name or last_component. Act like strlen (FILENAME), except omit all trailing slashes. */ extern size_t base_len (char const *filename) _GL_ATTRIBUTE_PURE; #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _BASENAME_LGPL_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/basename.c��������������������������������������������������������������������������0000644�0000000�0000000�00000003525�14374751113�012042� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* basename.c -- return the last element in a file name Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "dirname.h" #include <string.h> #include "xalloc.h" char * base_name (char const *name) { char const *base = last_component (name); idx_t length; int dotslash_len; if (*base) { length = base_len (base); /* Collapse a sequence of trailing slashes into one. */ length += ISSLASH (base[length]); /* On systems with drive letters, "a/b:c" must return "./b:c" rather than "b:c" to avoid confusion with a drive letter. On systems with pure POSIX semantics, this is not an issue. */ dotslash_len = FILE_SYSTEM_PREFIX_LEN (base) != 0 ? 2 : 0; } else { /* There is no last component, so NAME is a file system root or the empty string. */ base = name; length = base_len (base); dotslash_len = 0; } char *p = ximalloc (dotslash_len + length + 1); if (dotslash_len) { p[0] = '.'; p[1] = '/'; } /* Finally, copy the basename. */ memcpy (p + dotslash_len, base, length); p[dotslash_len + length] = '\0'; return p; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/c++defs.h���������������������������������������������������������������������������0000644�0000000�0000000�00000035577�14374751113�011522� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* C++ compatible function declaration macros. Copyright (C) 2010-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* Begin/end the GNULIB_NAMESPACE namespace. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { # define _GL_END_NAMESPACE } #else # define _GL_BEGIN_NAMESPACE # define _GL_END_NAMESPACE #endif /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some platforms, but is declared and works fine on the platforms on which it exists: #if @GNULIB_FOO@ # if !@HAVE_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on all platforms, but is broken/insufficient and needs to be replaced on some platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on some platforms but is broken/insufficient and needs to be replaced on some of them and is additionally either missing or undeclared on some other platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif */ /* _GL_EXTERN_C declaration; performs the declaration with C linkage. */ #if defined __cplusplus # define _GL_EXTERN_C extern "C" #else # define _GL_EXTERN_C extern #endif /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); declares a replacement function, named rpl_func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype rpl_func parameters_and_attributes /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); declares the system function, named func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype func parameters_and_attributes /* _GL_CXXALIAS_RPL (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); Wrapping rpl_func in an object with an inline conversion operator avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is actually used in the program. */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::rpl_func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_MDA (func, rettype, parameters); is to be used when func is a Microsoft deprecated alias, on native Windows. It declares a C++ alias called GNULIB_NAMESPACE::func that redirects to _func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); */ #define _GL_CXXALIAS_MDA(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast<type>(::rpl_func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); is like _GL_CXXALIAS_MDA (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); Wrapping func in an object with an inline conversion operator avoids a reference to func unless GNULIB_NAMESPACE::func is actually used in the program. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast<type>(::func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function is picked among a set of overloaded functions, namely the one with rettype2 and parameters2. Two consecutive casts are used to silence the "cannot find a match" and "invalid conversion" errors that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* The outer cast must be a reinterpret_cast. The inner cast: When the function is defined as a set of overloaded functions, it works as a static_cast<>, choosing the designated variant. When the function is defined as a single variant, it works as a reinterpret_cast<>. The parenthesized cast syntax works both ways. */ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast<type>((rettype2 (*) parameters2)(::func)); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN (func); causes a warning to be emitted when ::func is used but not when GNULIB_NAMESPACE::func is used. func must be defined without overloaded variants. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN(func) \ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, we enable the warning only when not optimizing. */ # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN_2(func,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN(func) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); causes a warning to be emitted when the given overloaded variant of ::func is used but not when GNULIB_NAMESPACE::func is used. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, we enable the warning only when not optimizing. */ # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif #endif /* _GL_CXXDEFS_H */ ���������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/c-ctype.c���������������������������������������������������������������������������0000644�0000000�0000000�00000001513�14374751113�011626� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Character handling in C locale. Copyright (C) 2003-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #define C_CTYPE_INLINE _GL_EXTERN_INLINE #include "c-ctype.h" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/c-ctype.h���������������������������������������������������������������������������0000644�0000000�0000000�00000022441�14374751113�011636� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Character handling in C locale. These functions work like the corresponding functions in <ctype.h>, except that they have the C (POSIX) locale hardwired, whereas the <ctype.h> functions' behaviour depends on the current locale set via setlocale. Copyright (C) 2000-2003, 2006, 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef C_CTYPE_H #define C_CTYPE_H #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef C_CTYPE_INLINE # define C_CTYPE_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. */ #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) /* The character set is ASCII or one of its variants or extensions, not EBCDIC. Testing the value of '\n' and '\r' is not relevant. */ # define C_CTYPE_ASCII 1 #elif ! (' ' == '\x40' && '0' == '\xf0' \ && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \ && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2') # error "Only ASCII and EBCDIC are supported" #endif #if 'A' < 0 # error "EBCDIC and char is signed -- not supported" #endif /* Cases for control characters. */ #define _C_CTYPE_CNTRL \ case '\a': case '\b': case '\f': case '\n': \ case '\r': case '\t': case '\v': \ _C_CTYPE_OTHER_CNTRL /* ASCII control characters other than those with \-letter escapes. */ #if C_CTYPE_ASCII # define _C_CTYPE_OTHER_CNTRL \ case '\x00': case '\x01': case '\x02': case '\x03': \ case '\x04': case '\x05': case '\x06': case '\x0e': \ case '\x0f': case '\x10': case '\x11': case '\x12': \ case '\x13': case '\x14': case '\x15': case '\x16': \ case '\x17': case '\x18': case '\x19': case '\x1a': \ case '\x1b': case '\x1c': case '\x1d': case '\x1e': \ case '\x1f': case '\x7f' #else /* Use EBCDIC code page 1047's assignments for ASCII control chars; assume all EBCDIC code pages agree about these assignments. */ # define _C_CTYPE_OTHER_CNTRL \ case '\x00': case '\x01': case '\x02': case '\x03': \ case '\x07': case '\x0e': case '\x0f': case '\x10': \ case '\x11': case '\x12': case '\x13': case '\x18': \ case '\x19': case '\x1c': case '\x1d': case '\x1e': \ case '\x1f': case '\x26': case '\x27': case '\x2d': \ case '\x2e': case '\x32': case '\x37': case '\x3c': \ case '\x3d': case '\x3f' #endif /* Cases for lowercase hex letters, and lowercase letters, all offset by N. */ #define _C_CTYPE_LOWER_A_THRU_F_N(N) \ case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \ case 'e' + (N): case 'f' + (N) #define _C_CTYPE_LOWER_N(N) \ _C_CTYPE_LOWER_A_THRU_F_N(N): \ case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \ case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \ case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \ case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \ case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N) /* Cases for hex letters, digits, lower, punct, and upper. */ #define _C_CTYPE_A_THRU_F \ _C_CTYPE_LOWER_A_THRU_F_N (0): \ _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a') #define _C_CTYPE_DIGIT \ case '0': case '1': case '2': case '3': \ case '4': case '5': case '6': case '7': \ case '8': case '9' #define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0) #define _C_CTYPE_PUNCT \ case '!': case '"': case '#': case '$': \ case '%': case '&': case '\'': case '(': \ case ')': case '*': case '+': case ',': \ case '-': case '.': case '/': case ':': \ case ';': case '<': case '=': case '>': \ case '?': case '@': case '[': case '\\': \ case ']': case '^': case '_': case '`': \ case '{': case '|': case '}': case '~' #define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a') /* Function definitions. */ /* Unlike the functions in <ctype.h>, which require an argument in the range of the 'unsigned char' type, the functions here operate on values that are in the 'unsigned char' range or in the 'char' range. In other words, when you have a 'char' value, you need to cast it before using it as argument to a <ctype.h> function: const char *s = ...; if (isalpha ((unsigned char) *s)) ... but you don't need to cast it for the functions defined in this file: const char *s = ...; if (c_isalpha (*s)) ... */ C_CTYPE_INLINE bool c_isalnum (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isalpha (int c) { switch (c) { _C_CTYPE_LOWER: _C_CTYPE_UPPER: return true; default: return false; } } /* The function isascii is not locale dependent. Its use in EBCDIC is questionable. */ C_CTYPE_INLINE bool c_isascii (int c) { switch (c) { case ' ': _C_CTYPE_CNTRL: _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isblank (int c) { return c == ' ' || c == '\t'; } C_CTYPE_INLINE bool c_iscntrl (int c) { switch (c) { _C_CTYPE_CNTRL: return true; default: return false; } } C_CTYPE_INLINE bool c_isdigit (int c) { switch (c) { _C_CTYPE_DIGIT: return true; default: return false; } } C_CTYPE_INLINE bool c_isgraph (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_islower (int c) { switch (c) { _C_CTYPE_LOWER: return true; default: return false; } } C_CTYPE_INLINE bool c_isprint (int c) { switch (c) { case ' ': _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_ispunct (int c) { switch (c) { _C_CTYPE_PUNCT: return true; default: return false; } } C_CTYPE_INLINE bool c_isspace (int c) { switch (c) { case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': return true; default: return false; } } C_CTYPE_INLINE bool c_isupper (int c) { switch (c) { _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isxdigit (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_A_THRU_F: return true; default: return false; } } C_CTYPE_INLINE int c_tolower (int c) { switch (c) { _C_CTYPE_UPPER: return c - 'A' + 'a'; default: return c; } } C_CTYPE_INLINE int c_toupper (int c) { switch (c) { _C_CTYPE_LOWER: return c - 'a' + 'A'; default: return c; } } #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif /* C_CTYPE_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/c-strcase.h�������������������������������������������������������������������������0000644�0000000�0000000�00000004056�14374751113�012160� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Case-insensitive string comparison functions in C locale. Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef C_STRCASE_H #define C_STRCASE_H #include <stddef.h> /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. More precisely, one of the string arguments must be an ASCII string; the other one can also contain non-ASCII characters (but then the comparison result will be nonzero). */ #ifdef __cplusplus extern "C" { #endif /* Compare strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. */ extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; /* Compare no more than N characters of strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. */ extern int c_strncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE; #ifdef __cplusplus } #endif #endif /* C_STRCASE_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/c-strcasecmp.c����������������������������������������������������������������������0000644�0000000�0000000�00000003066�14374751113�012653� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* c-strcasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "c-strcase.h" #include <limits.h> #include "c-ctype.h" int c_strcasecmp (const char *s1, const char *s2) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return _GL_CMP (c1, c2); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/c-strcaseeq.h�����������������������������������������������������������������������0000644�0000000�0000000�00000010526�14374751113�012505� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Optimized case-insensitive string comparison in C locale. Copyright (C) 2001-2002, 2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>. */ #include "c-strcase.h" #include "c-ctype.h" /* STRCASEEQ allows to optimize string comparison with a small literal string. STRCASEEQ (s, "UTF-8", 'U','T','F','-','8',0,0,0,0) is semantically equivalent to c_strcasecmp (s, "UTF-8") == 0 just faster. */ /* Help GCC to generate good code for string comparisons with immediate strings. */ #if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ /* Case insensitive comparison of ASCII characters. */ # if C_CTYPE_ASCII # define CASEEQ(other,upper) \ (c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper)) # else # define CASEEQ(other,upper) \ (c_toupper (other) == (upper)) # endif static inline int strcaseeq9 (const char *s1, const char *s2) { return c_strcasecmp (s1 + 9, s2 + 9) == 0; } static inline int strcaseeq8 (const char *s1, const char *s2, char s28) { if (CASEEQ (s1[8], s28)) { if (s28 == 0) return 1; else return strcaseeq9 (s1, s2); } else return 0; } static inline int strcaseeq7 (const char *s1, const char *s2, char s27, char s28) { if (CASEEQ (s1[7], s27)) { if (s27 == 0) return 1; else return strcaseeq8 (s1, s2, s28); } else return 0; } static inline int strcaseeq6 (const char *s1, const char *s2, char s26, char s27, char s28) { if (CASEEQ (s1[6], s26)) { if (s26 == 0) return 1; else return strcaseeq7 (s1, s2, s27, s28); } else return 0; } static inline int strcaseeq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[5], s25)) { if (s25 == 0) return 1; else return strcaseeq6 (s1, s2, s26, s27, s28); } else return 0; } static inline int strcaseeq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[4], s24)) { if (s24 == 0) return 1; else return strcaseeq5 (s1, s2, s25, s26, s27, s28); } else return 0; } static inline int strcaseeq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[3], s23)) { if (s23 == 0) return 1; else return strcaseeq4 (s1, s2, s24, s25, s26, s27, s28); } else return 0; } static inline int strcaseeq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[2], s22)) { if (s22 == 0) return 1; else return strcaseeq3 (s1, s2, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int strcaseeq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[1], s21)) { if (s21 == 0) return 1; else return strcaseeq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int strcaseeq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (CASEEQ (s1[0], s20)) { if (s20 == 0) return 1; else return strcaseeq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); } else return 0; } #define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ strcaseeq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) #else #define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ (c_strcasecmp (s1, s2) == 0) #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/c-strncasecmp.c���������������������������������������������������������������������0000644�0000000�0000000�00000003130�14374751113�013021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* c-strncasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "c-strcase.h" #include <limits.h> #include "c-ctype.h" int c_strncasecmp (const char *s1, const char *s2, size_t n) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2 || n == 0) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (--n == 0 || c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return _GL_CMP (c1, c2); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/calloc.c����������������������������������������������������������������������������0000644�0000000�0000000�00000002672�14374751113�011526� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* calloc() function that is glibc compatible. This wrapper function is required at least on Tru64 UNIX 5.1 and mingw. Copyright (C) 2004-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering and Bruno Haible */ #include <config.h> /* Specification. */ #include <stdlib.h> #include <errno.h> #include "xalloc-oversized.h" /* Call the system's calloc below. */ #undef calloc /* Allocate and zero-fill an NxS-byte block of memory from the heap, even if N or S is zero. */ void * rpl_calloc (size_t n, size_t s) { if (n == 0 || s == 0) n = s = 1; if (xalloc_oversized (n, s)) { errno = ENOMEM; return NULL; } void *result = calloc (n, s); #if !HAVE_MALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } ����������������������������������������������������������������������a2ps-4.15.5/lib/canonicalize-lgpl.c�����������������������������������������������������������������0000644�0000000�0000000�00000034415�14374751113�013664� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Return the canonical absolute name of a given file. Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ # define _GL_ARG_NONNULL(params) # include <libc-config.h> #endif /* Specification. */ #include <stdlib.h> #include <errno.h> #include <fcntl.h> #include <limits.h> #include <string.h> #include <sys/stat.h> #include <unistd.h> #include <eloop-threshold.h> #include <filename.h> #include <idx.h> #include <intprops.h> #include <scratch_buffer.h> #ifdef _LIBC # include <shlib-compat.h> # define GCC_LINT 1 # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define __canonicalize_file_name canonicalize_file_name # define __realpath realpath # define __strdup strdup # include "pathmax.h" # define __faccessat faccessat # if defined _WIN32 && !defined __CYGWIN__ # define __getcwd _getcwd # elif HAVE_GETCWD # if IN_RELOCWRAPPER /* When building the relocatable program wrapper, use the system's getcwd function, not the gnulib override, otherwise we would get a link error. */ # undef getcwd # endif # if defined VMS && !defined getcwd /* We want the directory in Unix syntax, not in VMS syntax. The gnulib override of 'getcwd' takes 2 arguments; the original VMS 'getcwd' takes 3 arguments. */ # define __getcwd(buf, max) getcwd (buf, max, 0) # else # define __getcwd getcwd # endif # else # define __getcwd(buf, max) getwd (buf) # endif # define __mempcpy mempcpy # define __pathconf pathconf # define __rawmemchr rawmemchr # define __readlink readlink # if IN_RELOCWRAPPER /* When building the relocatable program wrapper, use the system's memmove function, not the gnulib override, otherwise we would get a link error. */ # undef memmove # endif #endif /* Suppress bogus GCC -Wmaybe-uninitialized warnings. */ #if defined GCC_LINT || defined lint # define IF_LINT(Code) Code #else # define IF_LINT(Code) /* empty */ #endif #ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # define DOUBLE_SLASH_IS_DISTINCT_ROOT false #endif #if defined _LIBC || !FUNC_REALPATH_WORKS /* Return true if FILE's existence can be shown, false (setting errno) otherwise. Follow symbolic links. */ static bool file_accessible (char const *file) { # if defined _LIBC || HAVE_FACCESSAT return __faccessat (AT_FDCWD, file, F_OK, AT_EACCESS) == 0; # else struct stat st; return stat (file, &st) == 0 || errno == EOVERFLOW; # endif } /* True if concatenating END as a suffix to a file name means that the code needs to check that the file name is that of a searchable directory, since the canonicalize_filename_mode_stk code won't check this later anyway when it checks an ordinary file name component within END. END must either be empty, or start with a slash. */ static bool _GL_ATTRIBUTE_PURE suffix_requires_dir_check (char const *end) { /* If END does not start with a slash, the suffix is OK. */ while (ISSLASH (*end)) { /* Two or more slashes act like a single slash. */ do end++; while (ISSLASH (*end)); switch (*end++) { default: return false; /* An ordinary file name component is OK. */ case '\0': return true; /* Trailing "/" is trouble. */ case '.': break; /* Possibly "." or "..". */ } /* Trailing "/.", or "/.." even if not trailing, is trouble. */ if (!*end || (*end == '.' && (!end[1] || ISSLASH (end[1])))) return true; } return false; } /* Append this to a file name to test whether it is a searchable directory. On POSIX platforms "/" suffices, but "/./" is sometimes needed on macOS 10.13 <https://bugs.gnu.org/30350>, and should also work on platforms like AIX 7.2 that need at least "/.". */ # if defined _LIBC || defined LSTAT_FOLLOWS_SLASHED_SYMLINK static char const dir_suffix[] = "/"; # else static char const dir_suffix[] = "/./"; # endif /* Return true if DIR is a searchable dir, false (setting errno) otherwise. DIREND points to the NUL byte at the end of the DIR string. Store garbage into DIREND[0 .. strlen (dir_suffix)]. */ static bool dir_check (char *dir, char *dirend) { strcpy (dirend, dir_suffix); return file_accessible (dir); } static idx_t get_path_max (void) { # ifdef PATH_MAX long int path_max = PATH_MAX; # else /* The caller invoked realpath with a null RESOLVED, even though PATH_MAX is not defined as a constant. The glibc manual says programs should not do this, and POSIX says the behavior is undefined. Historically, glibc here used the result of pathconf, or 1024 if that failed; stay consistent with this (dubious) historical practice. */ int err = errno; long int path_max = __pathconf ("/", _PC_PATH_MAX); __set_errno (err); # endif return path_max < 0 ? 1024 : path_max <= IDX_MAX ? path_max : IDX_MAX; } /* Scratch buffers used by realpath_stk and managed by __realpath. */ struct realpath_bufs { struct scratch_buffer rname; struct scratch_buffer extra; struct scratch_buffer link; }; static char * realpath_stk (const char *name, char *resolved, struct realpath_bufs *bufs) { char *dest; char const *start; char const *end; int num_links = 0; if (name == NULL) { /* As per Single Unix Specification V2 we must return an error if either parameter is a null pointer. We extend this to allow the RESOLVED parameter to be NULL in case the we are expected to allocate the room for the return value. */ __set_errno (EINVAL); return NULL; } if (name[0] == '\0') { /* As per Single Unix Specification V2 we must return an error if the name argument points to an empty string. */ __set_errno (ENOENT); return NULL; } char *rname = bufs->rname.data; bool end_in_extra_buffer = false; bool failed = true; /* This is always zero for Posix hosts, but can be 2 for MS-Windows and MS-DOS X:/foo/bar file names. */ idx_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); if (!IS_ABSOLUTE_FILE_NAME (name)) { while (!__getcwd (bufs->rname.data, bufs->rname.length)) { if (errno != ERANGE) { dest = rname; goto error; } if (!scratch_buffer_grow (&bufs->rname)) return NULL; rname = bufs->rname.data; } dest = __rawmemchr (rname, '\0'); start = name; prefix_len = FILE_SYSTEM_PREFIX_LEN (rname); } else { dest = __mempcpy (rname, name, prefix_len); *dest++ = '/'; if (DOUBLE_SLASH_IS_DISTINCT_ROOT) { if (prefix_len == 0 /* implies ISSLASH (name[0]) */ && ISSLASH (name[1]) && !ISSLASH (name[2])) *dest++ = '/'; *dest = '\0'; } start = name + prefix_len; } for ( ; *start; start = end) { /* Skip sequence of multiple file name separators. */ while (ISSLASH (*start)) ++start; /* Find end of component. */ for (end = start; *end && !ISSLASH (*end); ++end) /* Nothing. */; /* Length of this file name component; it can be zero if a file name ends in '/'. */ idx_t startlen = end - start; if (startlen == 0) break; else if (startlen == 1 && start[0] == '.') /* nothing */; else if (startlen == 2 && start[0] == '.' && start[1] == '.') { /* Back up to previous component, ignore if at root already. */ if (dest > rname + prefix_len + 1) for (--dest; dest > rname && !ISSLASH (dest[-1]); --dest) continue; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 && !prefix_len && ISSLASH (*dest) && !ISSLASH (dest[1])) dest++; } else { if (!ISSLASH (dest[-1])) *dest++ = '/'; while (rname + bufs->rname.length - dest < startlen + sizeof dir_suffix) { idx_t dest_offset = dest - rname; if (!scratch_buffer_grow_preserve (&bufs->rname)) return NULL; rname = bufs->rname.data; dest = rname + dest_offset; } dest = __mempcpy (dest, start, startlen); *dest = '\0'; char *buf; ssize_t n; while (true) { buf = bufs->link.data; idx_t bufsize = bufs->link.length; n = __readlink (rname, buf, bufsize - 1); if (n < bufsize - 1) break; if (!scratch_buffer_grow (&bufs->link)) return NULL; } if (0 <= n) { if (++num_links > __eloop_threshold ()) { __set_errno (ELOOP); goto error; } buf[n] = '\0'; char *extra_buf = bufs->extra.data; idx_t end_idx IF_LINT (= 0); if (end_in_extra_buffer) end_idx = end - extra_buf; size_t len = strlen (end); if (INT_ADD_OVERFLOW (len, n)) { __set_errno (ENOMEM); return NULL; } while (bufs->extra.length <= len + n) { if (!scratch_buffer_grow_preserve (&bufs->extra)) return NULL; extra_buf = bufs->extra.data; } if (end_in_extra_buffer) end = extra_buf + end_idx; /* Careful here, end may be a pointer into extra_buf... */ memmove (&extra_buf[n], end, len + 1); name = end = memcpy (extra_buf, buf, n); end_in_extra_buffer = true; if (IS_ABSOLUTE_FILE_NAME (buf)) { idx_t pfxlen = FILE_SYSTEM_PREFIX_LEN (buf); dest = __mempcpy (rname, buf, pfxlen); *dest++ = '/'; /* It's an absolute symlink */ if (DOUBLE_SLASH_IS_DISTINCT_ROOT) { if (ISSLASH (buf[1]) && !ISSLASH (buf[2]) && !pfxlen) *dest++ = '/'; *dest = '\0'; } /* Install the new prefix to be in effect hereafter. */ prefix_len = pfxlen; } else { /* Back up to previous component, ignore if at root already: */ if (dest > rname + prefix_len + 1) for (--dest; dest > rname && !ISSLASH (dest[-1]); --dest) continue; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 && ISSLASH (*dest) && !ISSLASH (dest[1]) && !prefix_len) dest++; } } else if (! (suffix_requires_dir_check (end) ? dir_check (rname, dest) : errno == EINVAL)) goto error; } } if (dest > rname + prefix_len + 1 && ISSLASH (dest[-1])) --dest; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 && !prefix_len && ISSLASH (*dest) && !ISSLASH (dest[1])) dest++; failed = false; error: *dest++ = '\0'; if (resolved != NULL) { /* Copy the full result on success or partial result if failure was due to the path not existing or not being accessible. */ if ((!failed || errno == ENOENT || errno == EACCES) && dest - rname <= get_path_max ()) { strcpy (resolved, rname); if (failed) return NULL; else return resolved; } if (!failed) __set_errno (ENAMETOOLONG); return NULL; } else { if (failed) return NULL; else return __strdup (bufs->rname.data); } } /* Return the canonical absolute name of file NAME. A canonical name does not contain any ".", ".." components nor any repeated file name separators ('/') or symlinks. All file name components must exist. If RESOLVED is null, the result is malloc'd; otherwise, if the canonical name is PATH_MAX chars or more, returns null with 'errno' set to ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, returns the name in RESOLVED. If the name cannot be resolved and RESOLVED is non-NULL, it contains the name of the first component that cannot be resolved. If the name can be resolved, RESOLVED holds the same value as the value returned. */ char * __realpath (const char *name, char *resolved) { struct realpath_bufs bufs; scratch_buffer_init (&bufs.rname); scratch_buffer_init (&bufs.extra); scratch_buffer_init (&bufs.link); char *result = realpath_stk (name, resolved, &bufs); scratch_buffer_free (&bufs.link); scratch_buffer_free (&bufs.extra); scratch_buffer_free (&bufs.rname); return result; } libc_hidden_def (__realpath) versioned_symbol (libc, __realpath, realpath, GLIBC_2_3); #endif /* defined _LIBC || !FUNC_REALPATH_WORKS */ #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3) char * attribute_compat_text_section __old_realpath (const char *name, char *resolved) { if (resolved == NULL) { __set_errno (EINVAL); return NULL; } return __realpath (name, resolved); } compat_symbol (libc, __old_realpath, realpath, GLIBC_2_0); #endif char * __canonicalize_file_name (const char *name) { return __realpath (name, NULL); } weak_alias (__canonicalize_file_name, canonicalize_file_name) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/cdefs.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000064427�14374751113�011370� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1992-2023 Free Software Foundation, Inc. Copyright The GNU Toolchain Authors. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _SYS_CDEFS_H #define _SYS_CDEFS_H 1 /* We are almost always included from features.h. */ #ifndef _FEATURES_H # include <features.h> #endif /* The GNU libc does not support any K&R compilers or the traditional mode of ISO C compilers anymore. Check for some of the combinations not supported anymore. */ #if defined __GNUC__ && !defined __STDC__ # error "You need a ISO C conforming compiler to use the glibc headers" #endif /* Some user header file might have defined this before. */ #undef __P #undef __PMT /* Compilers that lack __has_attribute may object to #if defined __has_attribute && __has_attribute (...) even though they do not need to evaluate the right-hand side of the &&. Similarly for __has_builtin, etc. */ #if (defined __has_attribute \ && (!defined __clang_minor__ \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 3 < __clang_major__ + (5 <= __clang_minor__)))) # define __glibc_has_attribute(attr) __has_attribute (attr) #else # define __glibc_has_attribute(attr) 0 #endif #ifdef __has_builtin # define __glibc_has_builtin(name) __has_builtin (name) #else # define __glibc_has_builtin(name) 0 #endif #ifdef __has_extension # define __glibc_has_extension(ext) __has_extension (ext) #else # define __glibc_has_extension(ext) 0 #endif #if defined __GNUC__ || defined __clang__ /* All functions, except those with callbacks or those that synchronize memory, are leaf functions. */ # if __GNUC_PREREQ (4, 6) && !defined _LIBC # define __LEAF , __leaf__ # define __LEAF_ATTR __attribute__ ((__leaf__)) # else # define __LEAF # define __LEAF_ATTR # endif /* GCC can always grok prototypes. For C++ programs we add throw() to help it optimize the function calls. But this only works with gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions as non-throwing using a function attribute since programs can use the -fexceptions options for C code as well. */ # if !defined __cplusplus \ && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__)) # define __THROW __attribute__ ((__nothrow__ __LEAF)) # define __THROWNL __attribute__ ((__nothrow__)) # define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct # define __NTHNL(fct) __attribute__ ((__nothrow__)) fct # else # if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major >= 4) # if __cplusplus >= 201103L # define __THROW noexcept (true) # else # define __THROW throw () # endif # define __THROWNL __THROW # define __NTH(fct) __LEAF_ATTR fct __THROW # define __NTHNL(fct) fct __THROW # else # define __THROW # define __THROWNL # define __NTH(fct) fct # define __NTHNL(fct) fct # endif # endif #else /* Not GCC or clang. */ # if (defined __cplusplus \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) # define __inline inline # else # define __inline /* No inline functions. */ # endif # define __THROW # define __THROWNL # define __NTH(fct) fct #endif /* GCC || clang. */ /* These two macros are not used in glibc anymore. They are kept here only because some other projects expect the macros to be defined. */ #define __P(args) args #define __PMT(args) args /* For these things, GCC behaves the ANSI way normally, and the non-ANSI way under -traditional. */ #define __CONCAT(x,y) x ## y #define __STRING(x) #x /* This is not a typedef so `const __ptr_t' does the right thing. */ #define __ptr_t void * /* C++ needs to know that types and declarations are C, not C++. */ #ifdef __cplusplus # define __BEGIN_DECLS extern "C" { # define __END_DECLS } #else # define __BEGIN_DECLS # define __END_DECLS #endif /* Gnulib avoids these definitions, as they don't work on non-glibc platforms. In particular, __bos and __bos0 are defined differently in the Android libc. */ #ifndef __GNULIB_CDEFS /* Fortify support. */ # define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) # define __bos0(ptr) __builtin_object_size (ptr, 0) /* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ # if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ || __GNUC_PREREQ (12, 0)) # define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) # define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) # else # define __glibc_objsize0(__o) __bos0 (__o) # define __glibc_objsize(__o) __bos (__o) # endif /* Compile time conditions to choose between the regular, _chk and _chk_warn variants. These conditions should get evaluated to constant and optimized away. */ # define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) # define __glibc_unsigned_or_positive(__l) \ ((__typeof (__l)) 0 < (__typeof (__l)) -1 \ || (__builtin_constant_p (__l) && (__l) > 0)) /* Length is known to be safe at compile time if the __L * __S <= __OBJSZ condition can be folded to a constant and if it is true, or unknown (-1) */ # define __glibc_safe_or_unknown_len(__l, __s, __osz) \ ((__osz) == (__SIZE_TYPE__) -1 \ || (__glibc_unsigned_or_positive (__l) \ && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ (__s), (__osz))) \ && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), (__s), (__osz)))) /* Conversely, we know at compile time that the length is unsafe if the __L * __S <= __OBJSZ condition can be folded to a constant and if it is false. */ # define __glibc_unsafe_len(__l, __s, __osz) \ (__glibc_unsigned_or_positive (__l) \ && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ __s, __osz)) \ && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) /* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be declared. */ # define __glibc_fortify(f, __l, __s, __osz, ...) \ (__glibc_safe_or_unknown_len (__l, __s, __osz) \ ? __ ## f ## _alias (__VA_ARGS__) \ : (__glibc_unsafe_len (__l, __s, __osz) \ ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \ : __ ## f ## _chk (__VA_ARGS__, __osz))) \ /* Fortify function f, where object size argument passed to f is the number of elements and not total size. */ # define __glibc_fortify_n(f, __l, __s, __osz, ...) \ (__glibc_safe_or_unknown_len (__l, __s, __osz) \ ? __ ## f ## _alias (__VA_ARGS__) \ : (__glibc_unsafe_len (__l, __s, __osz) \ ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ #endif #if __GNUC_PREREQ (4,3) # define __warnattr(msg) __attribute__((__warning__ (msg))) # define __errordecl(name, msg) \ extern void name (void) __attribute__((__error__ (msg))) #else # define __warnattr(msg) # define __errordecl(name, msg) extern void name (void) #endif /* Support for flexible arrays. Headers that should use flexible arrays only if they're "real" (e.g. only if they won't affect sizeof()) should test #if __glibc_c99_flexarr_available. */ #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc # define __flexarr [] # define __glibc_c99_flexarr_available 1 #elif __GNUC_PREREQ (2,97) || defined __clang__ /* GCC 2.97 and clang support C99 flexible array members as an extension, even when in C89 mode or compiling C++ (any version). */ # define __flexarr [] # define __glibc_c99_flexarr_available 1 #elif defined __GNUC__ /* Pre-2.97 GCC did not support C99 flexible arrays but did have an equivalent extension with slightly different notation. */ # define __flexarr [0] # define __glibc_c99_flexarr_available 1 #else /* Some other non-C99 compiler. Approximate with [1]. */ # define __flexarr [1] # define __glibc_c99_flexarr_available 0 #endif /* __asm__ ("xyz") is used throughout the headers to rename functions at the assembly language level. This is wrapped by the __REDIRECT macro, in order to support compilers that can do this some other way. When compilers don't support asm-names at all, we have to do preprocessor tricks instead (which don't have exactly the right semantics, but it's the best we can do). Example: int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ #if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4) # define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) # ifdef __cplusplus # define __REDIRECT_NTH(name, proto, alias) \ name proto __THROW __asm__ (__ASMNAME (#alias)) # define __REDIRECT_NTHNL(name, proto, alias) \ name proto __THROWNL __asm__ (__ASMNAME (#alias)) # else # define __REDIRECT_NTH(name, proto, alias) \ name proto __asm__ (__ASMNAME (#alias)) __THROW # define __REDIRECT_NTHNL(name, proto, alias) \ name proto __asm__ (__ASMNAME (#alias)) __THROWNL # endif # define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) # define __ASMNAME2(prefix, cname) __STRING (prefix) cname /* #elif __SOME_OTHER_COMPILER__ # define __REDIRECT(name, proto, alias) name proto; \ _Pragma("let " #name " = " #alias) */ #endif /* GCC and clang have various useful declarations that can be made with the '__attribute__' syntax. All of the ways we use this do fine if they are omitted for compilers that don't understand it. */ #if !(defined __GNUC__ || defined __clang__) # define __attribute__(xyz) /* Ignore */ #endif /* At some point during the gcc 2.96 development the `malloc' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__) # define __attribute_malloc__ __attribute__ ((__malloc__)) #else # define __attribute_malloc__ /* Ignore */ #endif /* Tell the compiler which arguments to an allocation function indicate the size of the allocation. */ #if __GNUC_PREREQ (4, 3) # define __attribute_alloc_size__(params) \ __attribute__ ((__alloc_size__ params)) #else # define __attribute_alloc_size__(params) /* Ignore. */ #endif /* Tell the compiler which argument to an allocation function indicates the alignment of the allocation. */ #if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__) # define __attribute_alloc_align__(param) \ __attribute__ ((__alloc_align__ param)) #else # define __attribute_alloc_align__(param) /* Ignore. */ #endif /* At some point during the gcc 2.96 development the `pure' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__) # define __attribute_pure__ __attribute__ ((__pure__)) #else # define __attribute_pure__ /* Ignore */ #endif /* This declaration tells the compiler that the value is constant. */ #if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__) # define __attribute_const__ __attribute__ ((__const__)) #else # define __attribute_const__ /* Ignore */ #endif #if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) # define __attribute_maybe_unused__ __attribute__ ((__unused__)) #else # define __attribute_maybe_unused__ /* Ignore */ #endif /* At some point during the gcc 3.1 development the `used' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__) # define __attribute_used__ __attribute__ ((__used__)) # define __attribute_noinline__ __attribute__ ((__noinline__)) #else # define __attribute_used__ __attribute__ ((__unused__)) # define __attribute_noinline__ /* Ignore */ #endif /* Since version 3.2, gcc allows marking deprecated functions. */ #if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__) # define __attribute_deprecated__ __attribute__ ((__deprecated__)) #else # define __attribute_deprecated__ /* Ignore */ #endif /* Since version 4.5, gcc also allows one to specify the message printed when a deprecated function is used. clang claims to be gcc 4.2, but may also support this feature. */ #if __GNUC_PREREQ (4,5) \ || __glibc_has_extension (__attribute_deprecated_with_message__) # define __attribute_deprecated_msg__(msg) \ __attribute__ ((__deprecated__ (msg))) #else # define __attribute_deprecated_msg__(msg) __attribute_deprecated__ #endif /* At some point during the gcc 2.8 development the `format_arg' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. If several `format_arg' attributes are given for the same function, in gcc-3.0 and older, all but the last one are ignored. In newer gccs, all designated arguments are considered. */ #if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__) # define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) #else # define __attribute_format_arg__(x) /* Ignore */ #endif /* At some point during the gcc 2.97 development the `strfmon' format attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__) # define __attribute_format_strfmon__(a,b) \ __attribute__ ((__format__ (__strfmon__, a, b))) #else # define __attribute_format_strfmon__(a,b) /* Ignore */ #endif /* The nonnull function attribute marks pointer parameters that must not be NULL. This has the name __nonnull in glibc, and __attribute_nonnull__ in files shared with Gnulib to avoid collision with a different __nonnull in DragonFlyBSD 5.9. */ #ifndef __attribute_nonnull__ # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) # define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) # else # define __attribute_nonnull__(params) # endif #endif #ifndef __nonnull # define __nonnull(params) __attribute_nonnull__ (params) #endif /* The returns_nonnull function attribute marks the return type of the function as always being non-null. */ #ifndef __returns_nonnull # if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__) # define __returns_nonnull __attribute__ ((__returns_nonnull__)) # else # define __returns_nonnull # endif #endif /* If fortification mode, we warn about unused results of certain function calls which can lead to problems. */ #if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__) # define __attribute_warn_unused_result__ \ __attribute__ ((__warn_unused_result__)) # if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 # define __wur __attribute_warn_unused_result__ # endif #else # define __attribute_warn_unused_result__ /* empty */ #endif #ifndef __wur # define __wur /* Ignore */ #endif /* Forces a function to be always inlined. */ #if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__) /* The Linux kernel defines __always_inline in stddef.h (283d7573), and it conflicts with this definition. Therefore undefine it first to allow either header to be included first. */ # undef __always_inline # define __always_inline __inline __attribute__ ((__always_inline__)) #else # undef __always_inline # define __always_inline __inline #endif /* Associate error messages with the source location of the call site rather than with the source location inside the function. */ #if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__) # define __attribute_artificial__ __attribute__ ((__artificial__)) #else # define __attribute_artificial__ /* Ignore */ #endif /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions older than 4.3 may define these macros and still not guarantee GNU inlining semantics. clang++ identifies itself as gcc-4.2, but has support for GNU inlining semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and __GNUC_GNU_INLINE__ macro definitions. */ #if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ || defined __GNUC_GNU_INLINE__))) # if defined __GNUC_STDC_INLINE__ || defined __cplusplus # define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) # define __extern_always_inline \ extern __always_inline __attribute__ ((__gnu_inline__)) # else # define __extern_inline extern __inline # define __extern_always_inline extern __always_inline # endif #endif #ifdef __extern_always_inline # define __fortify_function __extern_always_inline __attribute_artificial__ #endif /* GCC 4.3 and above allow passing all anonymous arguments of an __extern_always_inline function to some other vararg function. */ #if __GNUC_PREREQ (4,3) # define __va_arg_pack() __builtin_va_arg_pack () # define __va_arg_pack_len() __builtin_va_arg_pack_len () #endif /* It is possible to compile containing GCC extensions even if GCC is run in pedantic mode if the uses are carefully marked using the `__extension__' keyword. But this is not generally available before version 2.8. */ #if !(__GNUC_PREREQ (2,8) || defined __clang__) # define __extension__ /* Ignore */ #endif /* __restrict is known in EGCS 1.2 and above, and in clang. It works also in C++ mode (outside of arrays), but only when spelled as '__restrict', not 'restrict'. */ #if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3) # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L # define __restrict restrict # else # define __restrict /* Ignore */ # endif #endif /* ISO C99 also allows to declare arrays as non-overlapping. The syntax is array_name[restrict] GCC 3.1 and clang support this. This syntax is not usable in C++ mode. */ #if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus # define __restrict_arr __restrict #else # ifdef __GNUC__ # define __restrict_arr /* Not supported in old GCC. */ # else # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L # define __restrict_arr restrict # else /* Some other non-C99 compiler. */ # define __restrict_arr /* Not supported. */ # endif # endif #endif #if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect) # define __glibc_unlikely(cond) __builtin_expect ((cond), 0) # define __glibc_likely(cond) __builtin_expect ((cond), 1) #else # define __glibc_unlikely(cond) (cond) # define __glibc_likely(cond) (cond) #endif #if (!defined _Noreturn \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ && !(__GNUC_PREREQ (4,7) \ || (3 < __clang_major__ + (5 <= __clang_minor__)))) # if __GNUC_PREREQ (2,8) # define _Noreturn __attribute__ ((__noreturn__)) # else # define _Noreturn # endif #endif #if __GNUC_PREREQ (8, 0) /* Describes a char array whose address can safely be passed as the first argument to strncpy and strncat, as the char array is not necessarily a NUL-terminated string. */ # define __attribute_nonstring__ __attribute__ ((__nonstring__)) #else # define __attribute_nonstring__ #endif /* Undefine (also defined in libc-symbols.h). */ #undef __attribute_copy__ #if __GNUC_PREREQ (9, 0) /* Copies attributes from the declaration or type referenced by the argument. */ # define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) #else # define __attribute_copy__(arg) #endif #if (!defined _Static_assert && !defined __cplusplus \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \ || defined __STRICT_ANSI__)) # define _Static_assert(expr, diagnostic) \ extern int (*__Static_assert_function (void)) \ [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] #endif /* Gnulib avoids including these, as they don't work on non-glibc or older glibc platforms. */ #ifndef __GNULIB_CDEFS # include <bits/wordsize.h> # include <bits/long-double.h> #endif #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 # ifdef __REDIRECT /* Alias name defined automatically. */ # define __LDBL_REDIR(name, proto) ... unused__ldbl_redir # define __LDBL_REDIR_DECL(name) \ extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); /* Alias name defined automatically, with leading underscores. */ # define __LDBL_REDIR2_DECL(name) \ extern __typeof (__##name) __##name \ __asm (__ASMNAME ("__" #name "ieee128")); /* Alias name defined manually. */ # define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 # define __LDBL_REDIR1_DECL(name, alias) \ extern __typeof (name) name __asm (__ASMNAME (#alias)); # define __LDBL_REDIR1_NTH(name, proto, alias) \ __REDIRECT_NTH (name, proto, alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) /* Unused. */ # define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl # define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth # else _Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); # endif #elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH # define __LDBL_COMPAT 1 # ifdef __REDIRECT # define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) # define __LDBL_REDIR(name, proto) \ __LDBL_REDIR1 (name, proto, __nldbl_##name) # define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) # define __LDBL_REDIR_NTH(name, proto) \ __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) # define __LDBL_REDIR2_DECL(name) \ extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); # define __LDBL_REDIR1_DECL(name, alias) \ extern __typeof (name) name __asm (__ASMNAME (#alias)); # define __LDBL_REDIR_DECL(name) \ extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); # define __REDIRECT_LDBL(name, proto, alias) \ __LDBL_REDIR1 (name, proto, __nldbl_##alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) # endif #endif #if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ || !defined __REDIRECT # define __LDBL_REDIR1(name, proto, alias) name proto # define __LDBL_REDIR(name, proto) name proto # define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW # define __LDBL_REDIR_NTH(name, proto) name proto __THROW # define __LDBL_REDIR2_DECL(name) # define __LDBL_REDIR_DECL(name) # ifdef __REDIRECT # define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __REDIRECT_NTH (name, proto, alias) # endif #endif /* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is intended for use in preprocessor macros. Note: MESSAGE must be a _single_ string; concatenation of string literals is not supported. */ #if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) # define __glibc_macro_warning1(message) _Pragma (#message) # define __glibc_macro_warning(message) \ __glibc_macro_warning1 (GCC warning message) #else # define __glibc_macro_warning(msg) #endif /* Generic selection (ISO C11) is a C-only feature, available in GCC since version 4.9. Previous versions do not provide generic selection, even though they might set __STDC_VERSION__ to 201112L, when in -std=c11 mode. Thus, we must check for !defined __GNUC__ when testing __STDC_VERSION__ for generic selection support. On the other hand, Clang also defines __GNUC__, so a clang-specific check is required to enable the use of generic selection. */ #if !defined __cplusplus \ && (__GNUC_PREREQ (4, 9) \ || __glibc_has_extension (c_generic_selections) \ || (!defined __GNUC__ && defined __STDC_VERSION__ \ && __STDC_VERSION__ >= 201112L)) # define __HAVE_GENERIC_SELECTION 1 #else # define __HAVE_GENERIC_SELECTION 0 #endif #if __GNUC_PREREQ (10, 0) /* Designates a 1-based positional argument ref-index of pointer type that can be used to access size-index elements of the pointed-to array according to access mode, or at least one element when size-index is not provided: access (access-mode, <ref-index> [, <size-index>]) */ # define __attr_access(x) __attribute__ ((__access__ x)) /* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may use the access attribute to get object sizes from function definition arguments, so we can't use them on functions we fortify. Drop the object size hints for such functions. */ # if __USE_FORTIFY_LEVEL == 3 # define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o))) # else # define __fortified_attr_access(a, o, s) __attr_access ((a, o, s)) # endif # if __GNUC_PREREQ (11, 0) # define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno))) # else # define __attr_access_none(argno) # endif #else # define __fortified_attr_access(a, o, s) # define __attr_access(x) # define __attr_access_none(argno) #endif #if __GNUC_PREREQ (11, 0) /* Designates dealloc as a function to call to deallocate objects allocated by the declared function. */ # define __attr_dealloc(dealloc, argno) \ __attribute__ ((__malloc__ (dealloc, argno))) # define __attr_dealloc_free __attr_dealloc (__builtin_free, 1) #else # define __attr_dealloc(dealloc, argno) # define __attr_dealloc_free #endif /* Specify that a function such as setjmp or vfork may return twice. */ #if __GNUC_PREREQ (4, 1) # define __attribute_returns_twice__ __attribute__ ((__returns_twice__)) #else # define __attribute_returns_twice__ /* Ignore. */ #endif #endif /* sys/cdefs.h */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/chdir-long.c������������������������������������������������������������������������0000644�0000000�0000000�00000015241�14374751113�012313� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* provide a chdir function that tries not to fail due to ENAMETOOLONG Copyright (C) 2004-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering */ #include <config.h> #include "chdir-long.h" #include <errno.h> #include <fcntl.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #include "assure.h" #ifndef PATH_MAX # error "compile this file only if your system defines PATH_MAX" #endif /* The results of openat() in this file are not leaked to any single-threaded code that could use stdio. FIXME - if the kernel ever adds support for multi-thread safety for avoiding standard fds, then we should use openat_safer. */ struct cd_buf { int fd; }; static void cdb_init (struct cd_buf *cdb) { cdb->fd = AT_FDCWD; } static int cdb_fchdir (struct cd_buf const *cdb) { return fchdir (cdb->fd); } static void cdb_free (struct cd_buf const *cdb) { if (0 <= cdb->fd) { bool close_fail = close (cdb->fd); assure (! close_fail); } } /* Given a file descriptor of an open directory (or AT_FDCWD), CDB->fd, try to open the CDB->fd-relative directory, DIR. If the open succeeds, update CDB->fd with the resulting descriptor, close the incoming file descriptor, and return zero. Upon failure, return -1 and set errno. */ static int cdb_advance_fd (struct cd_buf *cdb, char const *dir) { int new_fd = openat (cdb->fd, dir, O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK); if (new_fd < 0) return -1; cdb_free (cdb); cdb->fd = new_fd; return 0; } /* Return a pointer to the first non-slash in S. */ static char * _GL_ATTRIBUTE_PURE find_non_slash (char const *s) { size_t n_slash = strspn (s, "/"); return (char *) s + n_slash; } /* This is a function much like chdir, but without the PATH_MAX limitation on the length of the directory name. A significant difference is that it must be able to modify (albeit only temporarily) the directory name. It handles an arbitrarily long directory name by operating on manageable portions of the name. On systems without the openat syscall, this means changing the working directory to more and more "distant" points along the long directory name and then restoring the working directory. If any of those attempts to save or restore the working directory fails, this function exits nonzero. Note that this function may still fail with errno == ENAMETOOLONG, but only if the specified directory name contains a component that is long enough to provoke such a failure all by itself (e.g. if the component has length PATH_MAX or greater on systems that define PATH_MAX). */ int chdir_long (char *dir) { int e = chdir (dir); if (e == 0 || errno != ENAMETOOLONG) return e; { size_t len = strlen (dir); char *dir_end = dir + len; struct cd_buf cdb; size_t n_leading_slash; cdb_init (&cdb); /* If DIR is the empty string, then the chdir above must have failed and set errno to ENOENT. */ assure (0 < len); assure (PATH_MAX <= len); /* Count leading slashes. */ n_leading_slash = strspn (dir, "/"); /* Handle any leading slashes as well as any name that matches the regular expression, m!^//hostname[/]*! . Handling this prefix separately usually results in a single additional cdb_advance_fd call, but it's worthwhile, since it makes the code in the following loop cleaner. */ if (n_leading_slash == 2) { int err; /* Find next slash. We already know that dir[2] is neither a slash nor '\0'. */ char *slash = memchr (dir + 3, '/', dir_end - (dir + 3)); if (slash == NULL) { errno = ENAMETOOLONG; return -1; } *slash = '\0'; err = cdb_advance_fd (&cdb, dir); *slash = '/'; if (err != 0) goto Fail; dir = find_non_slash (slash + 1); } else if (n_leading_slash) { if (cdb_advance_fd (&cdb, "/") != 0) goto Fail; dir += n_leading_slash; } assure (*dir != '/'); assure (dir <= dir_end); while (PATH_MAX <= dir_end - dir) { int err; /* Find a slash that is PATH_MAX or fewer bytes away from dir. I.e. see if there is a slash that will give us a name of length PATH_MAX-1 or less. */ char *slash = memrchr (dir, '/', PATH_MAX); if (slash == NULL) { errno = ENAMETOOLONG; return -1; } *slash = '\0'; assure (slash - dir < PATH_MAX); err = cdb_advance_fd (&cdb, dir); *slash = '/'; if (err != 0) goto Fail; dir = find_non_slash (slash + 1); } if (dir < dir_end) { if (cdb_advance_fd (&cdb, dir) != 0) goto Fail; } if (cdb_fchdir (&cdb) != 0) goto Fail; cdb_free (&cdb); return 0; Fail: { int saved_errno = errno; cdb_free (&cdb); errno = saved_errno; return -1; } } } #if TEST_CHDIR # include "closeout.h" # include "error.h" int main (int argc, char *argv[]) { char *line = NULL; size_t n = 0; int len; atexit (close_stdout); len = getline (&line, &n, stdin); if (len < 0) { int saved_errno = errno; if (feof (stdin)) exit (0); error (EXIT_FAILURE, saved_errno, "reading standard input"); } else if (len == 0) exit (0); if (line[len-1] == '\n') line[len-1] = '\0'; if (chdir_long (line) != 0) error (EXIT_FAILURE, errno, "chdir_long failed: %s", line); if (argc <= 1) { /* Using 'pwd' here makes sense only if it is a robust implementation, like the one in coreutils after the 2004-04-19 changes. */ char const *cmd = "pwd"; execlp (cmd, (char *) NULL); error (EXIT_FAILURE, errno, "%s", cmd); } fclose (stdin); fclose (stderr); exit (EXIT_SUCCESS); } #endif /* Local Variables: compile-command: "gcc -DTEST_CHDIR=1 -g -O -W -Wall chdir-long.c libcoreutils.a" End: */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/chdir-long.h������������������������������������������������������������������������0000644�0000000�0000000�00000002070�14374751113�012314� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* provide a chdir function that tries not to fail due to ENAMETOOLONG Copyright (C) 2004-2005, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <unistd.h> #include <limits.h> #include "pathmax.h" /* On systems without PATH_MAX, presume that chdir accepts arbitrarily long directory names. */ #ifndef PATH_MAX # define chdir_long(Dir) chdir (Dir) #else int chdir_long (char *dir); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/cloexec.c���������������������������������������������������������������������������0000644�0000000�0000000�00000004454�14374751113�011713� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* cloexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 1991, 2004-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* The code is taken from glibc/manual/llio.texi */ #include <config.h> #include "cloexec.h" #include <errno.h> #include <fcntl.h> #include <unistd.h> /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, or clear the flag if VALUE is false. Return 0 on success, or -1 on error with 'errno' set. Note that on MingW, this function does NOT protect DESC from being inherited into spawned children. Instead, either use dup_cloexec followed by closing the original DESC, or use interfaces such as open or pipe2 that accept flags like O_CLOEXEC to create DESC non-inheritable in the first place. */ int set_cloexec_flag (int desc, bool value) { #ifdef F_SETFD int flags = fcntl (desc, F_GETFD, 0); if (0 <= flags) { int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC); if (flags == newflags || fcntl (desc, F_SETFD, newflags) != -1) return 0; } return -1; #else /* !F_SETFD */ /* Use dup2 to reject invalid file descriptors; the cloexec flag will be unaffected. */ if (desc < 0) { errno = EBADF; return -1; } if (dup2 (desc, desc) < 0) /* errno is EBADF here. */ return -1; /* There is nothing we can do on this kind of platform. Punt. */ return 0; #endif /* !F_SETFD */ } /* Duplicates a file handle FD, while marking the copy to be closed prior to exec or spawn. Returns -1 and sets errno if FD could not be duplicated. */ int dup_cloexec (int fd) { return fcntl (fd, F_DUPFD_CLOEXEC, 0); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/cloexec.h���������������������������������������������������������������������������0000644�0000000�0000000�00000002727�14374751113�011721� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* cloexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 2004, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, or clear the flag if VALUE is false. Return 0 on success, or -1 on error with 'errno' set. Note that on MingW, this function does NOT protect DESC from being inherited into spawned children. Instead, either use dup_cloexec followed by closing the original DESC, or use interfaces such as open or pipe2 that accept flags like O_CLOEXEC to create DESC non-inheritable in the first place. */ int set_cloexec_flag (int desc, bool value); /* Duplicates a file handle FD, while marking the copy to be closed prior to exec or spawn. Returns -1 and sets errno if FD could not be duplicated. */ int dup_cloexec (int fd); �����������������������������������������a2ps-4.15.5/lib/close.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000003143�14374751113�011370� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* close replacement. Copyright (C) 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #include "fd-hook.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef close #if defined _WIN32 && !defined __CYGWIN__ # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int close_nothrow (int fd) { int result; TRY_MSVC_INVAL { result = _close (fd); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } # else # define close_nothrow _close # endif #else # define close_nothrow close #endif /* Override close() to call into other gnulib modules. */ int rpl_close (int fd) { #if WINDOWS_SOCKETS int retval = execute_all_close_hooks (close_nothrow, fd); #else int retval = close_nothrow (fd); #endif #if REPLACE_FCHDIR if (retval >= 0) _gl_unregister_fd (fd); #endif return retval; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/closedir.c��������������������������������������������������������������������������0000644�0000000�0000000�00000003017�14374751113�012067� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Stop reading the entries of a directory. Copyright (C) 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <dirent.h> #if REPLACE_FCHDIR # include <unistd.h> #endif #if HAVE_CLOSEDIR /* Override closedir(), to keep track of the open file descriptors. Needed because there is a function dirfd(). */ #else # include <stdlib.h> # include "dirent-private.h" #endif int closedir (DIR *dirp) { # if REPLACE_FCHDIR || REPLACE_DIRFD int fd = dirfd (dirp); # endif int retval; #if HAVE_CLOSEDIR # undef closedir retval = closedir (dirp); # ifdef __KLIBC__ if (!retval) _gl_unregister_dirp_fd (fd); # endif #else if (dirp->current != INVALID_HANDLE_VALUE) FindClose (dirp->current); free (dirp); retval = 0; #endif #if REPLACE_FCHDIR if (retval >= 0) _gl_unregister_fd (fd); #endif return retval; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/creat-safer.c�����������������������������������������������������������������������0000644�0000000�0000000�00000001723�14374751113�012461� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invoke creat, but avoid some glitches. Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> #include "fcntl-safer.h" #include <fcntl.h> #include "unistd-safer.h" int creat_safer (char const *file, mode_t mode) { return fd_safer (creat (file, mode)); } ���������������������������������������������a2ps-4.15.5/lib/dirent-private.h��������������������������������������������������������������������0000644�0000000�0000000�00000003161�14374751113�013225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Private details of the DIR type. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _DIRENT_PRIVATE_H #define _DIRENT_PRIVATE_H 1 #define WIN32_LEAN_AND_MEAN #include <windows.h> /* Don't assume that UNICODE is not defined. */ #undef WIN32_FIND_DATA #define WIN32_FIND_DATA WIN32_FIND_DATAA struct gl_directory { /* Status, or error code to produce in next readdir() call. -2 means the end of the directory is already reached, -1 means the entry was already filled by FindFirstFile, 0 means the entry needs to be filled using FindNextFile. A positive value is an error code. */ int status; /* Handle, reading the directory, at current position. */ HANDLE current; /* Found directory entry. */ WIN32_FIND_DATA entry; /* Argument to pass to FindFirstFile. It consists of the absolutized directory name, followed by a directory separator and the wildcards. */ char dir_name_mask[1]; }; #endif /* _DIRENT_PRIVATE_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dirent.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000025222�14374751113�012164� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <dirent.h>. Copyright (C) 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_DIRENT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_DIRENT_H@ # @INCLUDE_NEXT@ @NEXT_DIRENT_H@ #endif #ifndef _@GUARD_PREFIX@_DIRENT_H #define _@GUARD_PREFIX@_DIRENT_H /* Get ino_t. Needed on some systems, including glibc 2.8. */ #include <sys/types.h> #if !@HAVE_DIRENT_H@ /* Define types DIR and 'struct dirent'. */ # if !GNULIB_defined_struct_dirent struct dirent { char d_type; char d_name[1]; }; /* Possible values for 'd_type'. */ # define DT_UNKNOWN 0 # define DT_FIFO 1 /* FIFO */ # define DT_CHR 2 /* character device */ # define DT_DIR 4 /* directory */ # define DT_BLK 6 /* block device */ # define DT_REG 8 /* regular file */ # define DT_LNK 10 /* symbolic link */ # define DT_SOCK 12 /* socket */ # define DT_WHT 14 /* whiteout */ typedef struct gl_directory DIR; # define GNULIB_defined_struct_dirent 1 # endif #endif /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers that can be freed by passing them as the Ith argument to the function F. */ #ifndef _GL_ATTRIBUTE_DEALLOC # if __GNUC__ >= 11 # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) # else # define _GL_ATTRIBUTE_DEALLOC(f, i) # endif #endif /* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly allocated memory. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_MALLOC # if __GNUC__ >= 3 || defined __clang__ # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) # else # define _GL_ATTRIBUTE_MALLOC # endif #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #ifndef _GL_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE /* empty */ # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ #if @GNULIB_CLOSEDIR@ # if @REPLACE_CLOSEDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef closedir # define closedir rpl_closedir # define GNULIB_defined_closedir 1 # endif _GL_FUNCDECL_RPL (closedir, int, (DIR *dirp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (closedir, int, (DIR *dirp)); # else # if !@HAVE_CLOSEDIR@ _GL_FUNCDECL_SYS (closedir, int, (DIR *dirp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (closedir, int, (DIR *dirp)); # endif _GL_CXXALIASWARN (closedir); #elif defined GNULIB_POSIXCHECK # undef closedir # if HAVE_RAW_DECL_CLOSEDIR _GL_WARN_ON_USE (closedir, "closedir is not portable - " "use gnulib module closedir for portability"); # endif #endif #if @GNULIB_OPENDIR@ # if @REPLACE_OPENDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef opendir # define opendir rpl_opendir # define GNULIB_defined_opendir 1 # endif _GL_FUNCDECL_RPL (opendir, DIR *, (const char *dir_name) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (closedir, 1)); _GL_CXXALIAS_RPL (opendir, DIR *, (const char *dir_name)); # else # if !@HAVE_OPENDIR@ || __GNUC__ >= 11 _GL_FUNCDECL_SYS (opendir, DIR *, (const char *dir_name) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (closedir, 1)); # endif _GL_CXXALIAS_SYS (opendir, DIR *, (const char *dir_name)); # endif _GL_CXXALIASWARN (opendir); #else # if @GNULIB_CLOSEDIR@ && __GNUC__ >= 11 && !defined opendir /* For -Wmismatched-dealloc: Associate opendir with closedir or rpl_closedir. */ _GL_FUNCDECL_SYS (opendir, DIR *, (const char *dir_name) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (closedir, 1)); # endif # if defined GNULIB_POSIXCHECK # undef opendir # if HAVE_RAW_DECL_OPENDIR _GL_WARN_ON_USE (opendir, "opendir is not portable - " "use gnulib module opendir for portability"); # endif # endif #endif #if @GNULIB_READDIR@ # if !@HAVE_READDIR@ _GL_FUNCDECL_SYS (readdir, struct dirent *, (DIR *dirp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (readdir, struct dirent *, (DIR *dirp)); _GL_CXXALIASWARN (readdir); #elif defined GNULIB_POSIXCHECK # undef readdir # if HAVE_RAW_DECL_READDIR _GL_WARN_ON_USE (readdir, "readdir is not portable - " "use gnulib module readdir for portability"); # endif #endif #if @GNULIB_REWINDDIR@ # if !@HAVE_REWINDDIR@ _GL_FUNCDECL_SYS (rewinddir, void, (DIR *dirp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (rewinddir, void, (DIR *dirp)); _GL_CXXALIASWARN (rewinddir); #elif defined GNULIB_POSIXCHECK # undef rewinddir # if HAVE_RAW_DECL_REWINDDIR _GL_WARN_ON_USE (rewinddir, "rewinddir is not portable - " "use gnulib module rewinddir for portability"); # endif #endif #if @GNULIB_DIRFD@ /* Return the file descriptor associated with the given directory stream, or -1 if none exists. */ # if @REPLACE_DIRFD@ /* On kLIBC, dirfd() is a macro that does not work. Undefine it. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) || defined dirfd # undef dirfd # define dirfd rpl_dirfd # endif _GL_FUNCDECL_RPL (dirfd, int, (DIR *) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (dirfd, int, (DIR *)); # ifdef __KLIBC__ /* Gnulib internal hooks needed to maintain the dirfd metadata. */ _GL_EXTERN_C int _gl_register_dirp_fd (int fd, DIR *dirp) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_dirp_fd (int fd); # endif # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined dirfd /* dirfd is defined as a macro and not as a function. Turn it into a function and get rid of the macro. */ static inline int (dirfd) (DIR *dp) { return dirfd (dp); } # undef dirfd # endif # if !(@HAVE_DECL_DIRFD@ || defined dirfd) _GL_FUNCDECL_SYS (dirfd, int, (DIR *) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (dirfd, int, (DIR *)); # endif _GL_CXXALIASWARN (dirfd); #elif defined GNULIB_POSIXCHECK # undef dirfd # if HAVE_RAW_DECL_DIRFD _GL_WARN_ON_USE (dirfd, "dirfd is unportable - " "use gnulib module dirfd for portability"); # endif #endif #if @GNULIB_FDOPENDIR@ /* Open a directory stream visiting the given directory file descriptor. Return NULL and set errno if fd is not visiting a directory. On success, this function consumes fd (it will be implicitly closed either by this function or by a subsequent closedir). */ # if @REPLACE_FDOPENDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopendir # define fdopendir rpl_fdopendir # endif _GL_FUNCDECL_RPL (fdopendir, DIR *, (int fd) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (closedir, 1)); _GL_CXXALIAS_RPL (fdopendir, DIR *, (int fd)); # else # if !@HAVE_FDOPENDIR@ || !@HAVE_DECL_FDOPENDIR@ || __GNUC__ >= 11 _GL_FUNCDECL_SYS (fdopendir, DIR *, (int fd) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (closedir, 1)); # endif _GL_CXXALIAS_SYS (fdopendir, DIR *, (int fd)); # endif _GL_CXXALIASWARN (fdopendir); #else # if @GNULIB_CLOSEDIR@ && __GNUC__ >= 11 && !defined fdopendir /* For -Wmismatched-dealloc: Associate fdopendir with closedir or rpl_closedir. */ _GL_FUNCDECL_SYS (fdopendir, DIR *, (int fd) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (closedir, 1)); # endif # if defined GNULIB_POSIXCHECK # undef fdopendir # if HAVE_RAW_DECL_FDOPENDIR _GL_WARN_ON_USE (fdopendir, "fdopendir is unportable - " "use gnulib module fdopendir for portability"); # endif # endif #endif #if @GNULIB_SCANDIR@ /* Scan the directory DIR, calling FILTER on each directory entry. Entries for which FILTER returns nonzero are individually malloc'd, sorted using qsort with CMP, and collected in a malloc'd array in *NAMELIST. Returns the number of entries selected, or -1 on error. */ # if !@HAVE_SCANDIR@ _GL_FUNCDECL_SYS (scandir, int, (const char *dir, struct dirent ***namelist, int (*filter) (const struct dirent *), int (*cmp) (const struct dirent **, const struct dirent **)) _GL_ARG_NONNULL ((1, 2, 4))); # endif /* Need to cast, because on glibc systems, the fourth parameter is int (*cmp) (const void *, const void *). */ _GL_CXXALIAS_SYS_CAST (scandir, int, (const char *dir, struct dirent ***namelist, int (*filter) (const struct dirent *), int (*cmp) (const struct dirent **, const struct dirent **))); _GL_CXXALIASWARN (scandir); #elif defined GNULIB_POSIXCHECK # undef scandir # if HAVE_RAW_DECL_SCANDIR _GL_WARN_ON_USE (scandir, "scandir is unportable - " "use gnulib module scandir for portability"); # endif #endif #if @GNULIB_ALPHASORT@ /* Compare two 'struct dirent' entries alphabetically. */ # if !@HAVE_ALPHASORT@ _GL_FUNCDECL_SYS (alphasort, int, (const struct dirent **, const struct dirent **) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* Need to cast, because on glibc systems, the parameters are (const void *, const void *). */ _GL_CXXALIAS_SYS_CAST (alphasort, int, (const struct dirent **, const struct dirent **)); _GL_CXXALIASWARN (alphasort); #elif defined GNULIB_POSIXCHECK # undef alphasort # if HAVE_RAW_DECL_ALPHASORT _GL_WARN_ON_USE (alphasort, "alphasort is unportable - " "use gnulib module alphasort for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_DIRENT_H */ #endif /* _@GUARD_PREFIX@_DIRENT_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dirfd.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000004447�14374751113�011363� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dirfd.c -- return the file descriptor associated with an open DIR* Copyright (C) 2001, 2006, 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> #include <dirent.h> #include <errno.h> #ifdef __KLIBC__ # include <stdlib.h> # include <io.h> static struct dirp_fd_list { DIR *dirp; int fd; struct dirp_fd_list *next; } *dirp_fd_start = NULL; /* Register fd associated with dirp to dirp_fd_list. */ int _gl_register_dirp_fd (int fd, DIR *dirp) { struct dirp_fd_list *new_dirp_fd = malloc (sizeof *new_dirp_fd); if (!new_dirp_fd) return -1; new_dirp_fd->dirp = dirp; new_dirp_fd->fd = fd; new_dirp_fd->next = dirp_fd_start; dirp_fd_start = new_dirp_fd; return 0; } /* Unregister fd from dirp_fd_list with closing it */ void _gl_unregister_dirp_fd (int fd) { struct dirp_fd_list *dirp_fd; struct dirp_fd_list *dirp_fd_prev; for (dirp_fd_prev = NULL, dirp_fd = dirp_fd_start; dirp_fd; dirp_fd_prev = dirp_fd, dirp_fd = dirp_fd->next) { if (dirp_fd->fd == fd) { if (dirp_fd_prev) dirp_fd_prev->next = dirp_fd->next; else /* dirp_fd == dirp_fd_start */ dirp_fd_start = dirp_fd_start->next; close (fd); free (dirp_fd); break; } } } #endif int dirfd (DIR *dir_p) { int fd = DIR_TO_FD (dir_p); if (fd == -1) #ifndef __KLIBC__ errno = ENOTSUP; #else { struct dirp_fd_list *dirp_fd; for (dirp_fd = dirp_fd_start; dirp_fd; dirp_fd = dirp_fd->next) if (dirp_fd->dirp == dir_p) return dirp_fd->fd; errno = EINVAL; } #endif return fd; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dirname-lgpl.c����������������������������������������������������������������������0000644�0000000�0000000�00000006142�14374751113�012640� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dirname.c -- return all but the last element in a file name Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "dirname.h" #include <stdlib.h> #include <string.h> /* Return the length of the prefix of FILE that will be used by dir_name. If FILE is in the working directory, this returns zero even though 'dir_name (FILE)' will return ".". Works properly even if there are trailing slashes (by effectively ignoring them). */ size_t dir_len (char const *file) { size_t prefix_length = FILE_SYSTEM_PREFIX_LEN (file); size_t length; /* Advance prefix_length beyond important leading slashes. */ prefix_length += (prefix_length != 0 ? (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && ISSLASH (file[prefix_length])) : (ISSLASH (file[0]) ? ((DOUBLE_SLASH_IS_DISTINCT_ROOT && ISSLASH (file[1]) && ! ISSLASH (file[2]) ? 2 : 1)) : 0)); /* Strip the basename and any redundant slashes before it. */ for (length = last_component (file) - file; prefix_length < length; length--) if (! ISSLASH (file[length - 1])) break; return length; } /* In general, we can't use the builtin 'dirname' function if available, since it has different meanings in different environments. In some environments the builtin 'dirname' modifies its argument. Return the leading directories part of FILE, allocated with malloc. Works properly even if there are trailing slashes (by effectively ignoring them). Return NULL on failure. If lstat (FILE) would succeed, then { chdir (dir_name (FILE)); lstat (base_name (FILE)); } will access the same file. Likewise, if the sequence { chdir (dir_name (FILE)); rename (base_name (FILE), "foo"); } succeeds, you have renamed FILE to "foo" in the same directory FILE was in. */ char * mdir_name (char const *file) { size_t length = dir_len (file); bool append_dot = (length == 0 || (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && length == FILE_SYSTEM_PREFIX_LEN (file) && file[2] != '\0' && ! ISSLASH (file[2]))); char *dir = malloc (length + append_dot + 1); if (!dir) return NULL; memcpy (dir, file, length); if (append_dot) dir[length++] = '.'; dir[length] = '\0'; return dir; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dirname.c���������������������������������������������������������������������������0000644�0000000�0000000�00000002264�14374751113�011705� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dirname.c -- return all but the last element in a file name Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "dirname.h" #include <stdlib.h> #include <string.h> #include "xalloc.h" /* Just like mdir_name (dirname-lgpl.c), except, rather than returning NULL upon malloc failure, here, we report the "memory exhausted" condition and exit. */ char * dir_name (char const *file) { char *result = mdir_name (file); if (!result) xalloc_die (); return result; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dirname.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003024�14374751113�011705� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Take file names apart into directory and base names. Copyright (C) 1998, 2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef DIRNAME_H_ # define DIRNAME_H_ 1 # include <stdlib.h> # include "filename.h" # include "basename-lgpl.h" # ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' # endif #ifdef __cplusplus extern "C" { #endif # if GNULIB_DIRNAME char *base_name (char const *file) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; char *dir_name (char const *file) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; # endif char *mdir_name (char const *file) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE; bool strip_trailing_slashes (char *file); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* not DIRNAME_H_ */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dup-safer-flag.c��������������������������������������������������������������������0000644�0000000�0000000�00000002444�14374751113�013063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Duplicate a file descriptor result, avoiding clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. Copyright (C) 2001, 2004-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert and Eric Blake. */ #include <config.h> /* Specification. */ #include "unistd-safer.h" #include <fcntl.h> #include <unistd.h> /* Like dup, but do not return STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. If FLAG contains O_CLOEXEC, behave like fcntl(F_DUPFD_CLOEXEC) rather than fcntl(F_DUPFD). */ int dup_safer_flag (int fd, int flag) { return fcntl (fd, (flag & O_CLOEXEC) ? F_DUPFD_CLOEXEC : F_DUPFD, STDERR_FILENO + 1); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dup-safer.c�������������������������������������������������������������������������0000644�0000000�0000000�00000002027�14374751113�012151� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invoke dup, but avoid some glitches. Copyright (C) 2001, 2004-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <config.h> #include "unistd-safer.h" #include <fcntl.h> #include <unistd.h> /* Like dup, but do not return STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. */ int dup_safer (int fd) { return fcntl (fd, F_DUPFD, STDERR_FILENO + 1); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dup.c�������������������������������������������������������������������������������0000644�0000000�0000000�00000003637�14374751113�011063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Duplicate an open file descriptor. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef dup #if defined _WIN32 && !defined __CYGWIN__ # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int dup_nothrow (int fd) { int result; TRY_MSVC_INVAL { result = _dup (fd); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } # else # define dup_nothrow _dup # endif #elif defined __KLIBC__ # include <fcntl.h> # include <sys/stat.h> # include <InnoTekLIBC/backend.h> static int dup_nothrow (int fd) { int dupfd; struct stat sbuf; dupfd = dup (fd); if (dupfd == -1 && errno == ENOTSUP \ && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { char path[_MAX_PATH]; /* Get a path from fd */ if (!__libc_Back_ioFHToPath (fd, path, sizeof (path))) dupfd = open (path, O_RDONLY); } return dupfd; } #else # define dup_nothrow dup #endif int rpl_dup (int fd) { int result = dup_nothrow (fd); #if REPLACE_FCHDIR if (result >= 0) result = _gl_register_dup (fd, result); #endif return result; } �������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/dup2.c������������������������������������������������������������������������������0000644�0000000�0000000�00000007742�14374751113�011146� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Duplicate an open file descriptor to a specified file descriptor. Copyright (C) 1999, 2004-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Paul Eggert */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #include <fcntl.h> #undef dup2 #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" # endif /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int dup2_nothrow (int fd, int desired_fd) { int result; TRY_MSVC_INVAL { result = _dup2 (fd, desired_fd); } CATCH_MSVC_INVAL { errno = EBADF; result = -1; } DONE_MSVC_INVAL; return result; } # else # define dup2_nothrow _dup2 # endif static int ms_windows_dup2 (int fd, int desired_fd) { int result; /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, dup2 (fd, fd) returns 0, but all further attempts to use fd in future dup2 calls will hang. */ if (fd == desired_fd) { if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return fd; } /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: https://bugs.winehq.org/show_bug.cgi?id=21289 */ if (desired_fd < 0) { errno = EBADF; return -1; } result = dup2_nothrow (fd, desired_fd); if (result == 0) result = desired_fd; return result; } # define dup2 ms_windows_dup2 #elif defined __KLIBC__ # include <InnoTekLIBC/backend.h> static int klibc_dup2dirfd (int fd, int desired_fd) { int tempfd; int dupfd; tempfd = open ("NUL", O_RDONLY); if (tempfd == -1) return -1; if (tempfd == desired_fd) { close (tempfd); char path[_MAX_PATH]; if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) return -1; return open(path, O_RDONLY); } dupfd = klibc_dup2dirfd (fd, desired_fd); close (tempfd); return dupfd; } static int klibc_dup2 (int fd, int desired_fd) { int dupfd; struct stat sbuf; dupfd = dup2 (fd, desired_fd); if (dupfd == -1 && errno == ENOTSUP \ && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { close (desired_fd); return klibc_dup2dirfd (fd, desired_fd); } return dupfd; } # define dup2 klibc_dup2 #endif int rpl_dup2 (int fd, int desired_fd) { int result; #ifdef F_GETFL /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. On Cygwin 1.5.x, dup2 (1, 1) returns 0. On Cygwin 1.7.17, dup2 (1, -1) dumps core. On Cygwin 1.7.25, dup2 (1, 256) can dump core. On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ # if HAVE_SETDTABLESIZE setdtablesize (desired_fd + 1); # endif if (desired_fd < 0) fd = desired_fd; if (fd == desired_fd) return fcntl (fd, F_GETFL) == -1 ? -1 : fd; #endif result = dup2 (fd, desired_fd); /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ if (result == -1 && errno == EMFILE) errno = EBADF; #if REPLACE_FCHDIR if (fd != desired_fd && result != -1) result = _gl_register_dup (fd, result); #endif return result; } ������������������������������a2ps-4.15.5/lib/eloop-threshold.h�������������������������������������������������������������������0000644�0000000�0000000�00000006334�14374751113�013405� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Threshold at which to diagnose ELOOP. Generic version. Copyright (C) 2012-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _ELOOP_THRESHOLD_H #define _ELOOP_THRESHOLD_H 1 #include <limits.h> #ifdef _LIBC # include <sys/param.h> # define _GL_ATTRIBUTE_CONST __attribute__ ((const)) #else # include <unistd.h> # include "minmax.h" # define __sysconf sysconf # if (!defined SYMLOOP_MAX \ && ! (defined _SC_SYMLOOP_MAX && defined _POSIX_SYMLOOP_MAX)) # define SYMLOOP_MAX 8 # endif #endif /* POSIX specifies SYMLOOP_MAX as the "Maximum number of symbolic links that can be reliably traversed in the resolution of a pathname in the absence of a loop." This makes it a minimum that we should certainly accept. But it leaves open the possibility that more might sometimes work--just not "reliably". For example, Linux implements a complex policy whereby there is a small limit on the number of direct symlink traversals (a symlink to a symlink to a symlink), but larger limit on the total number of symlink traversals overall. Hence the SYMLOOP_MAX number should be the small one, but the limit library functions enforce on users should be the larger one. So, we use the larger of the reported SYMLOOP_MAX (if any) and our own constant MIN_ELOOP_THRESHOLD, below. This constant should be large enough that it never rules out a file name and directory tree that the underlying system (i.e. calls to 'open' et al) would resolve successfully. It should be small enough that actual loops are detected without a huge number of iterations. */ #ifndef MIN_ELOOP_THRESHOLD # define MIN_ELOOP_THRESHOLD 40 #endif /* Return the maximum number of symlink traversals to permit before diagnosing ELOOP. */ static inline unsigned int _GL_ATTRIBUTE_CONST __eloop_threshold (void) { #ifdef SYMLOOP_MAX const int symloop_max = SYMLOOP_MAX; #else /* The function is marked 'const' even though we use memory and call a function, because sysconf is required to return the same value in every call and so it must always be safe to call __eloop_threshold exactly once and reuse the value. */ static long int sysconf_symloop_max; if (sysconf_symloop_max == 0) sysconf_symloop_max = __sysconf (_SC_SYMLOOP_MAX); const unsigned int symloop_max = (sysconf_symloop_max <= 0 ? _POSIX_SYMLOOP_MAX : sysconf_symloop_max); #endif return MAX (symloop_max, MIN_ELOOP_THRESHOLD); } #endif /* eloop-threshold.h */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/errno.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000016447�14374751113�012035� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A POSIX-like <errno.h>. Copyright (C) 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_ERRNO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ERRNO_H@ #ifndef _@GUARD_PREFIX@_ERRNO_H #define _@GUARD_PREFIX@_ERRNO_H /* On native Windows platforms, many macros are not defined. */ # if defined _WIN32 && ! defined __CYGWIN__ /* These are the same values as defined by MSVC 10, for interoperability. */ # ifndef ENOMSG # define ENOMSG 122 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 111 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 121 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 134 # define GNULIB_defined_EPROTO 1 # endif # ifndef EBADMSG # define EBADMSG 104 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 132 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 129 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 117 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 106 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ECANCELED # define ECANCELED 105 # define GNULIB_defined_ECANCELED 1 # endif # ifndef EOWNERDEAD # define EOWNERDEAD 133 # define GNULIB_defined_EOWNERDEAD 1 # endif # ifndef ENOTRECOVERABLE # define ENOTRECOVERABLE 127 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EINPROGRESS # define EINPROGRESS 112 # define EALREADY 103 # define ENOTSOCK 128 # define EDESTADDRREQ 109 # define EMSGSIZE 115 # define EPROTOTYPE 136 # define ENOPROTOOPT 123 # define EPROTONOSUPPORT 135 # define EOPNOTSUPP 130 # define EAFNOSUPPORT 102 # define EADDRINUSE 100 # define EADDRNOTAVAIL 101 # define ENETDOWN 116 # define ENETUNREACH 118 # define ECONNRESET 108 # define ENOBUFS 119 # define EISCONN 113 # define ENOTCONN 126 # define ETIMEDOUT 138 # define ECONNREFUSED 107 # define ELOOP 114 # define EHOSTUNREACH 110 # define EWOULDBLOCK 140 # define GNULIB_defined_ESOCK 1 # endif # ifndef ETXTBSY # define ETXTBSY 139 # define ENODATA 120 /* not required by POSIX */ # define ENOSR 124 /* not required by POSIX */ # define ENOSTR 125 /* not required by POSIX */ # define ETIME 137 /* not required by POSIX */ # define EOTHER 131 /* not required by POSIX */ # define GNULIB_defined_ESTREAMS 1 # endif /* These are intentionally the same values as the WSA* error numbers, defined in <winsock2.h>. */ # define ESOCKTNOSUPPORT 10044 /* not required by POSIX */ # define EPFNOSUPPORT 10046 /* not required by POSIX */ # define ESHUTDOWN 10058 /* not required by POSIX */ # define ETOOMANYREFS 10059 /* not required by POSIX */ # define EHOSTDOWN 10064 /* not required by POSIX */ # define EPROCLIM 10067 /* not required by POSIX */ # define EUSERS 10068 /* not required by POSIX */ # define EDQUOT 10069 # define ESTALE 10070 # define EREMOTE 10071 /* not required by POSIX */ # define GNULIB_defined_EWINSOCK 1 # endif /* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */ # if @EMULTIHOP_HIDDEN@ # define EMULTIHOP @EMULTIHOP_VALUE@ # define GNULIB_defined_EMULTIHOP 1 # endif # if @ENOLINK_HIDDEN@ # define ENOLINK @ENOLINK_VALUE@ # define GNULIB_defined_ENOLINK 1 # endif # if @EOVERFLOW_HIDDEN@ # define EOVERFLOW @EOVERFLOW_VALUE@ # define GNULIB_defined_EOVERFLOW 1 # endif /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK, EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined. Likewise, on NonStop Kernel, EDQUOT is not defined. Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151, HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133. Note: When one of these systems defines some of these macros some day, binaries will have to be recompiled so that they recognizes the new errno values from the system. */ # ifndef ENOMSG # define ENOMSG 2000 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 2001 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 2002 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 2003 # define GNULIB_defined_EPROTO 1 # endif # ifndef EMULTIHOP # define EMULTIHOP 2004 # define GNULIB_defined_EMULTIHOP 1 # endif # ifndef EBADMSG # define EBADMSG 2005 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 2006 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 2007 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 2011 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 2012 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ESTALE # define ESTALE 2009 # define GNULIB_defined_ESTALE 1 # endif # ifndef EDQUOT # define EDQUOT 2010 # define GNULIB_defined_EDQUOT 1 # endif # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 # endif /* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not defined. */ # ifndef EOWNERDEAD # if defined __sun /* Use the same values as defined for Solaris >= 8, for interoperability. */ # define EOWNERDEAD 58 # define ENOTRECOVERABLE 59 # elif defined _WIN32 && ! defined __CYGWIN__ /* We have a conflict here: pthreads-win32 defines these values differently than MSVC 10. It's hairy to decide which one to use. */ # if defined __MINGW32__ && !defined USE_WINDOWS_THREADS /* Use the same values as defined by pthreads-win32, for interoperability. */ # define EOWNERDEAD 43 # define ENOTRECOVERABLE 44 # else /* Use the same values as defined by MSVC 10, for interoperability. */ # define EOWNERDEAD 133 # define ENOTRECOVERABLE 127 # endif # else # define EOWNERDEAD 2013 # define ENOTRECOVERABLE 2014 # endif # define GNULIB_defined_EOWNERDEAD 1 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EILSEQ # define EILSEQ 2015 # define GNULIB_defined_EILSEQ 1 # endif #endif /* _@GUARD_PREFIX@_ERRNO_H */ #endif /* _@GUARD_PREFIX@_ERRNO_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/error.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000024711�14374751113�011420� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Error handler for noninteractive utilities Copyright (C) 1990-1998, 2000-2007, 2009-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */ #if !_LIBC # include <config.h> #endif #include "error.h" #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #if !_LIBC && ENABLE_NLS # include "gettext.h" # define _(msgid) gettext (msgid) #endif #ifdef _LIBC # include <libintl.h> # include <stdbool.h> # include <stdint.h> # include <wchar.h> # define mbsrtowcs __mbsrtowcs # define USE_UNLOCKED_IO 0 # define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(a, b) # define _GL_ARG_NONNULL(a) #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif #ifndef _ # define _(String) String #endif /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ unsigned int error_message_count; #ifdef _LIBC /* In the GNU C library, there is a predefined variable for this. */ # define program_name program_invocation_name # include <errno.h> # include <limits.h> # include <libio/libioP.h> /* In GNU libc we want do not want to use the common name 'error' directly. Instead make it a weak alias. */ extern void __error (int status, int errnum, const char *message, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern void __error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) __attribute__ ((__format__ (__printf__, 5, 6))); # define error __error # define error_at_line __error_at_line # include <libio/iolibio.h> # define fflush(s) _IO_fflush (s) # undef putc # define putc(c, fp) _IO_putc (c, fp) # include <bits/libc-lock.h> #else /* not _LIBC */ # include <fcntl.h> # include <unistd.h> # if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif # endif /* The gnulib override of fcntl is not needed in this file. */ # undef fcntl # if !(GNULIB_STRERROR_R_POSIX || HAVE_DECL_STRERROR_R) # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" # endif # if STRERROR_R_CHAR_P char *strerror_r (int errnum, char *buf, size_t buflen); # else int strerror_r (int errnum, char *buf, size_t buflen); # endif # endif # define program_name getprogname () # if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r # define __strerror_r strerror_r # endif /* GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r */ #endif /* not _LIBC */ #if !_LIBC /* Return non-zero if FD is open. */ static int is_open (int fd) { # if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows: The initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE. There is no fcntl, and the gnulib replacement fcntl does not support F_GETFL. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; # else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); # endif } #endif static void flush_stdout (void) { #if !_LIBC int stdout_fd; # if GNULIB_FREOPEN_SAFER /* Use of gnulib's freopen-safer module normally ensures that fileno (stdout) == 1 whenever stdout is open. */ stdout_fd = STDOUT_FILENO; # else /* POSIX states that fileno (stdout) after fclose is unspecified. But in practice it is not a problem, because stdout is statically allocated and the fd of a FILE stream is stored as a field in its allocated memory. */ stdout_fd = fileno (stdout); # endif /* POSIX states that fflush (stdout) after fclose is unspecified; it is safe in glibc, but not on all other platforms. fflush (NULL) is always defined, but too draconian. */ if (0 <= stdout_fd && is_open (stdout_fd)) #endif fflush (stdout); } static void print_errno_message (int errnum) { char const *s; #if _LIBC || GNULIB_STRERROR_R_POSIX || defined HAVE_STRERROR_R char errbuf[1024]; # if _LIBC || (!GNULIB_STRERROR_R_POSIX && STRERROR_R_CHAR_P) s = __strerror_r (errnum, errbuf, sizeof errbuf); # else if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) s = errbuf; else s = 0; # endif #else s = strerror (errnum); #endif #if !_LIBC if (! s) s = _("Unknown system error"); #endif #if _LIBC __fxprintf (NULL, ": %s", s); #else fprintf (stderr, ": %s", s); #endif } static void _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3)) error_tail (int status, int errnum, const char *message, va_list args) { #if _LIBC if (_IO_fwide (stderr, 0) > 0) { size_t len = strlen (message) + 1; wchar_t *wmessage = NULL; mbstate_t st; size_t res; const char *tmp; bool use_malloc = false; while (1) { if (__libc_use_alloca (len * sizeof (wchar_t))) wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); else { if (!use_malloc) wmessage = NULL; wchar_t *p = (wchar_t *) realloc (wmessage, len * sizeof (wchar_t)); if (p == NULL) { free (wmessage); fputws_unlocked (L"out of memory\n", stderr); return; } wmessage = p; use_malloc = true; } memset (&st, '\0', sizeof (st)); tmp = message; res = mbsrtowcs (wmessage, &tmp, len, &st); if (res != len) break; if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0)) { /* This really should not happen if everything is fine. */ res = (size_t) -1; break; } len *= 2; } if (res == (size_t) -1) { /* The string cannot be converted. */ if (use_malloc) { free (wmessage); use_malloc = false; } wmessage = (wchar_t *) L"???"; } __vfwprintf (stderr, wmessage, args); if (use_malloc) free (wmessage); } else #endif vfprintf (stderr, message, args); ++error_message_count; if (errnum) print_errno_message (errnum); #if _LIBC __fxprintf (NULL, "\n"); #else putc ('\n', stderr); #endif fflush (stderr); if (status) exit (status); } /* Print the program name and error message MESSAGE, which is a printf-style format string with optional args. If ERRNUM is nonzero, print its corresponding system error message. Exit with status STATUS if it is nonzero. */ void error (int status, int errnum, const char *message, ...) { va_list args; #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s: ", program_name); #else fprintf (stderr, "%s: ", program_name); #endif } va_start (args, message); error_tail (status, errnum, message, args); va_end (args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ int error_one_per_line; void error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) { va_list args; if (error_one_per_line) { static const char *old_file_name; static unsigned int old_line_number; if (old_line_number == line_number && (file_name == old_file_name || (old_file_name != NULL && file_name != NULL && strcmp (old_file_name, file_name) == 0))) /* Simply return and print nothing. */ return; old_file_name = file_name; old_line_number = line_number; } #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s:", program_name); #else fprintf (stderr, "%s:", program_name); #endif } #if _LIBC __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ", file_name, line_number); #else fprintf (stderr, file_name != NULL ? "%s:%u: " : " ", file_name, line_number); #endif va_start (args, message); error_tail (status, errnum, message, args); va_end (args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } #ifdef _LIBC /* Make the weak alias. */ # undef error # undef error_at_line weak_alias (__error, error) weak_alias (__error_at_line, error_at_line) #endif �������������������������������������������������������a2ps-4.15.5/lib/error.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000010337�14374751113�012031� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Declarations for error-reporting functions. Copyright (C) 1995-1997, 2003, 2006, 2008-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_ERROR_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif /* The include_next requires a split double-inclusion guard. */ #if @HAVE_ERROR_H@ # @INCLUDE_NEXT@ @NEXT_ERROR_H@ #endif #ifndef _@GUARD_PREFIX@_ERROR_H #define _@GUARD_PREFIX@_ERROR_H /* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */ #include <stdio.h> /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ #if GNULIB_VFPRINTF_POSIX # define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD #else # define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM #endif #ifdef __cplusplus extern "C" { #endif /* Print a message with 'fprintf (stderr, FORMAT, ...)'; if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ #if @REPLACE_ERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef error # define error rpl_error # endif _GL_FUNCDECL_RPL (error, void, (int __status, int __errnum, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4))); _GL_CXXALIAS_RPL (error, void, (int __status, int __errnum, const char *__format, ...)); #else # if ! @HAVE_ERROR@ _GL_FUNCDECL_SYS (error, void, (int __status, int __errnum, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4))); # endif _GL_CXXALIAS_SYS (error, void, (int __status, int __errnum, const char *__format, ...)); #endif #if __GLIBC__ >= 2 _GL_CXXALIASWARN (error); #endif /* Likewise. If FILENAME is non-NULL, include FILENAME:LINENO: in the message. */ #if @REPLACE_ERROR_AT_LINE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef error_at_line # define error_at_line rpl_error_at_line # endif _GL_FUNCDECL_RPL (error_at_line, void, (int __status, int __errnum, const char *__filename, unsigned int __lineno, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6))); _GL_CXXALIAS_RPL (error_at_line, void, (int __status, int __errnum, const char *__filename, unsigned int __lineno, const char *__format, ...)); #else # if ! @HAVE_ERROR_AT_LINE@ _GL_FUNCDECL_SYS (error_at_line, void, (int __status, int __errnum, const char *__filename, unsigned int __lineno, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6))); # endif _GL_CXXALIAS_SYS (error_at_line, void, (int __status, int __errnum, const char *__filename, unsigned int __lineno, const char *__format, ...)); #endif _GL_CXXALIASWARN (error_at_line); /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ extern void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ extern unsigned int error_message_count; /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ extern int error_one_per_line; #ifdef __cplusplus } #endif #endif /* _@GUARD_PREFIX@_ERROR_H */ #endif /* _@GUARD_PREFIX@_ERROR_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/exitfail.c��������������������������������������������������������������������������0000644�0000000�0000000�00000001555�14374751113�012075� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Failure exit status Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "exitfail.h" #include <stdlib.h> int volatile exit_failure = EXIT_FAILURE; ���������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/exitfail.h��������������������������������������������������������������������������0000644�0000000�0000000�00000001424�14374751113�012075� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Failure exit status Copyright (C) 2002, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ extern int volatile exit_failure; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fchdir.c����������������������������������������������������������������������������0000644�0000000�0000000�00000013365�14374751113�011531� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* fchdir replacement. Copyright (C) 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #include <dirent.h> #include <errno.h> #include <fcntl.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include "assure.h" #include "filename.h" #include "filenamecat.h" #ifndef REPLACE_OPEN_DIRECTORY # define REPLACE_OPEN_DIRECTORY 0 #endif /* This replacement assumes that a directory is not renamed while opened through a file descriptor. FIXME: On mingw, this would be possible to enforce if we were to also open a HANDLE to each directory currently visited by a file descriptor, since mingw refuses to rename any in-use file system object. */ /* Array of file descriptors opened. If REPLACE_OPEN_DIRECTORY or if it points to a directory, it stores info about this directory. */ typedef struct { char *name; /* Absolute name of the directory, or NULL. */ /* FIXME - add a DIR* member to make dirfd possible on mingw? */ } dir_info_t; static dir_info_t *dirs; static size_t dirs_allocated; /* Try to ensure dirs has enough room for a slot at index fd; free any contents already in that slot. Return false and set errno to ENOMEM on allocation failure. */ static bool ensure_dirs_slot (size_t fd) { if (fd < dirs_allocated) free (dirs[fd].name); else { size_t new_allocated; dir_info_t *new_dirs; new_allocated = 2 * dirs_allocated + 1; if (new_allocated <= fd) new_allocated = fd + 1; new_dirs = (dirs != NULL ? (dir_info_t *) realloc (dirs, new_allocated * sizeof *dirs) : (dir_info_t *) malloc (new_allocated * sizeof *dirs)); if (new_dirs == NULL) return false; memset (new_dirs + dirs_allocated, 0, (new_allocated - dirs_allocated) * sizeof *dirs); dirs = new_dirs; dirs_allocated = new_allocated; } return true; } /* Return an absolute name of DIR in malloc'd storage. Upon failure, return NULL with errno set. */ static char * get_name (char const *dir) { char *cwd; char *result; if (IS_ABSOLUTE_FILE_NAME (dir)) return strdup (dir); /* We often encounter "."; treat it as a special case. */ cwd = getcwd (NULL, 0); if (!cwd || (dir[0] == '.' && dir[1] == '\0')) return cwd; result = mfile_name_concat (cwd, dir, NULL); free (cwd); return result; } /* Hook into the gnulib replacements for open() and close() to keep track of the open file descriptors. */ /* Close FD, cleaning up any fd to name mapping if fd was visiting a directory. */ void _gl_unregister_fd (int fd) { if (fd >= 0 && fd < dirs_allocated) { free (dirs[fd].name); dirs[fd].name = NULL; } } /* Mark FD as visiting FILENAME. FD must be non-negative, and refer to an open file descriptor. If REPLACE_OPEN_DIRECTORY is non-zero, this should only be called if FD is visiting a directory. Close FD and return -1 with errno set if there is insufficient memory to track the directory name; otherwise return FD. */ int _gl_register_fd (int fd, const char *filename) { struct stat statbuf; assure (0 <= fd); if (REPLACE_OPEN_DIRECTORY || (fstat (fd, &statbuf) == 0 && S_ISDIR (statbuf.st_mode))) { if (!ensure_dirs_slot (fd) || (dirs[fd].name = get_name (filename)) == NULL) { int saved_errno = errno; close (fd); errno = saved_errno; return -1; } } return fd; } /* Mark NEWFD as a duplicate of OLDFD; useful from dup, dup2, dup3, and fcntl. Both arguments must be valid and distinct file descriptors. Close NEWFD and return -1 if OLDFD is tracking a directory, but there is insufficient memory to track the same directory in NEWFD; otherwise return NEWFD. */ int _gl_register_dup (int oldfd, int newfd) { assure (0 <= oldfd && 0 <= newfd && oldfd != newfd); if (oldfd < dirs_allocated && dirs[oldfd].name) { /* Duplicated a directory; must ensure newfd is allocated. */ if (!ensure_dirs_slot (newfd) || (dirs[newfd].name = strdup (dirs[oldfd].name)) == NULL) { int saved_errno = errno; close (newfd); errno = saved_errno; newfd = -1; } } else if (newfd < dirs_allocated) { /* Duplicated a non-directory; ensure newfd is cleared. */ free (dirs[newfd].name); dirs[newfd].name = NULL; } return newfd; } /* If FD is currently visiting a directory, then return the name of that directory. Otherwise, return NULL and set errno. */ const char * _gl_directory_name (int fd) { if (0 <= fd && fd < dirs_allocated && dirs[fd].name != NULL) return dirs[fd].name; /* At this point, fd is either invalid, or open but not a directory. If dup2 fails, errno is correctly EBADF. */ if (0 <= fd) { if (dup2 (fd, fd) == fd) errno = ENOTDIR; } else errno = EBADF; return NULL; } /* Implement fchdir() in terms of chdir(). */ int fchdir (int fd) { const char *name = _gl_directory_name (fd); return name ? chdir (name) : -1; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fcntl--.h���������������������������������������������������������������������������0000644�0000000�0000000�00000001753�14374751113�011535� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Like fcntl.h, but redefine some names to avoid glitches. Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <fcntl.h> #include "fcntl-safer.h" #undef open #define open open_safer #undef creat #define creat creat_safer #if GNULIB_OPENAT_SAFER # undef openat # define openat openat_safer #endif ���������������������a2ps-4.15.5/lib/fcntl-safer.h�����������������������������������������������������������������������0000644�0000000�0000000�00000001734�14374751113�012500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invoke fcntl-like functions, but avoid some glitches. Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <sys/types.h> int open_safer (char const *, int, ...); int creat_safer (char const *, mode_t); #if GNULIB_OPENAT_SAFER int openat_safer (int, char const *, int, ...); #endif ������������������������������������a2ps-4.15.5/lib/fcntl.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000044621�14374751113�011377� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide file descriptor control. Copyright (C) 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake <ebb9@byu.net>. */ #include <config.h> /* Specification. */ #include <fcntl.h> #include <errno.h> #include <limits.h> #include <stdarg.h> #include <stdlib.h> #include <unistd.h> #ifdef __KLIBC__ # define INCL_DOS # include <os2.h> #endif #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif /* Upper bound on getdtablesize(). See lib/getdtablesize.c. */ # define OPEN_MAX_MAX 0x10000 /* Duplicate OLDFD into the first available slot of at least NEWFD, which must be positive, with FLAGS determining whether the duplicate will be inheritable. */ static int dupfd (int oldfd, int newfd, int flags) { /* Mingw has no way to create an arbitrary fd. Iterate until all file descriptors less than newfd are filled up. */ HANDLE curr_process = GetCurrentProcess (); HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd); unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT]; unsigned int fds_to_close_bound = 0; int result; BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE; int mode; if (newfd < 0 || getdtablesize () <= newfd) { errno = EINVAL; return -1; } if (old_handle == INVALID_HANDLE_VALUE || (mode = _setmode (oldfd, O_BINARY)) == -1) { /* oldfd is not open, or is an unassigned standard file descriptor. */ errno = EBADF; return -1; } _setmode (oldfd, mode); flags |= mode; for (;;) { HANDLE new_handle; int duplicated_fd; unsigned int index; if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ old_handle, /* SourceHandle */ curr_process, /* TargetProcessHandle */ (PHANDLE) &new_handle, /* TargetHandle */ (DWORD) 0, /* DesiredAccess */ inherit, /* InheritHandle */ DUPLICATE_SAME_ACCESS)) /* Options */ { switch (GetLastError ()) { case ERROR_TOO_MANY_OPEN_FILES: errno = EMFILE; break; case ERROR_INVALID_HANDLE: case ERROR_INVALID_TARGET_HANDLE: case ERROR_DIRECT_ACCESS_HANDLE: errno = EBADF; break; case ERROR_INVALID_PARAMETER: case ERROR_INVALID_FUNCTION: case ERROR_INVALID_ACCESS: errno = EINVAL; break; default: errno = EACCES; break; } result = -1; break; } duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags); if (duplicated_fd < 0) { CloseHandle (new_handle); result = -1; break; } if (newfd <= duplicated_fd) { result = duplicated_fd; break; } /* Set the bit duplicated_fd in fds_to_close[]. */ index = (unsigned int) duplicated_fd / CHAR_BIT; if (fds_to_close_bound <= index) { if (sizeof fds_to_close <= index) /* Need to increase OPEN_MAX_MAX. */ abort (); memset (fds_to_close + fds_to_close_bound, '\0', index + 1 - fds_to_close_bound); fds_to_close_bound = index + 1; } fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT); } /* Close the previous fds that turned out to be too small. */ { int saved_errno = errno; unsigned int duplicated_fd; for (duplicated_fd = 0; duplicated_fd < fds_to_close_bound * CHAR_BIT; duplicated_fd++) if ((fds_to_close[duplicated_fd / CHAR_BIT] >> (duplicated_fd % CHAR_BIT)) & 1) close (duplicated_fd); errno = saved_errno; } # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (oldfd, result); # endif return result; } #endif /* W32 */ /* Forward declarations, because we '#undef fcntl' in the middle of this compilation unit. */ /* Our implementation of fcntl (fd, F_DUPFD, target). */ static int rpl_fcntl_DUPFD (int fd, int target); /* Our implementation of fcntl (fd, F_DUPFD_CLOEXEC, target). */ static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target); #ifdef __KLIBC__ /* Adds support for fcntl on directories. */ static int klibc_fcntl (int fd, int action, /* arg */...); #endif /* Perform the specified ACTION on the file descriptor FD, possibly using the argument ARG further described below. This replacement handles the following actions, and forwards all others on to the native fcntl. An unrecognized ACTION returns -1 with errno set to EINVAL. F_DUPFD - duplicate FD, with int ARG being the minimum target fd. If successful, return the duplicate, which will be inheritable; otherwise return -1 and set errno. F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum target fd. If successful, return the duplicate, which will not be inheritable; otherwise return -1 and set errno. F_GETFD - ARG need not be present. If successful, return a non-negative value containing the descriptor flags of FD (only FD_CLOEXEC is portable, but other flags may be present); otherwise return -1 and set errno. */ int fcntl (int fd, int action, /* arg */...) #undef fcntl #ifdef __KLIBC__ # define fcntl klibc_fcntl #endif { va_list arg; int result = -1; va_start (arg, action); switch (action) { case F_DUPFD: { int target = va_arg (arg, int); result = rpl_fcntl_DUPFD (fd, target); break; } case F_DUPFD_CLOEXEC: { int target = va_arg (arg, int); result = rpl_fcntl_DUPFD_CLOEXEC (fd, target); break; } #if !HAVE_FCNTL case F_GETFD: { # if defined _WIN32 && ! defined __CYGWIN__ HANDLE handle = (HANDLE) _get_osfhandle (fd); DWORD flags; if (handle == INVALID_HANDLE_VALUE || GetHandleInformation (handle, &flags) == 0) errno = EBADF; else result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; # else /* !W32 */ /* Use dup2 to reject invalid file descriptors. No way to access this information, so punt. */ if (0 <= dup2 (fd, fd)) result = 0; # endif /* !W32 */ break; } /* F_GETFD */ #endif /* !HAVE_FCNTL */ /* Implementing F_SETFD on mingw is not trivial - there is no API for changing the O_NOINHERIT bit on an fd, and merely changing the HANDLE_FLAG_INHERIT bit on the underlying handle can lead to odd state. It may be possible by duplicating the handle, using _open_osfhandle with the right flags, then using dup2 to move the duplicate onto the original, but that is not supported for now. */ default: { #if HAVE_FCNTL switch (action) { #ifdef F_BARRIERFSYNC /* macOS */ case F_BARRIERFSYNC: #endif #ifdef F_CHKCLEAN /* macOS */ case F_CHKCLEAN: #endif #ifdef F_CLOSEM /* NetBSD, HP-UX */ case F_CLOSEM: #endif #ifdef F_FLUSH_DATA /* macOS */ case F_FLUSH_DATA: #endif #ifdef F_FREEZE_FS /* macOS */ case F_FREEZE_FS: #endif #ifdef F_FULLFSYNC /* macOS */ case F_FULLFSYNC: #endif #ifdef F_GETCONFINED /* macOS */ case F_GETCONFINED: #endif #ifdef F_GETDEFAULTPROTLEVEL /* macOS */ case F_GETDEFAULTPROTLEVEL: #endif #ifdef F_GETFD /* POSIX */ case F_GETFD: #endif #ifdef F_GETFL /* POSIX */ case F_GETFL: #endif #ifdef F_GETLEASE /* Linux */ case F_GETLEASE: #endif #ifdef F_GETNOSIGPIPE /* macOS */ case F_GETNOSIGPIPE: #endif #ifdef F_GETOWN /* POSIX */ case F_GETOWN: #endif #ifdef F_GETPIPE_SZ /* Linux */ case F_GETPIPE_SZ: #endif #ifdef F_GETPROTECTIONCLASS /* macOS */ case F_GETPROTECTIONCLASS: #endif #ifdef F_GETPROTECTIONLEVEL /* macOS */ case F_GETPROTECTIONLEVEL: #endif #ifdef F_GET_SEALS /* Linux */ case F_GET_SEALS: #endif #ifdef F_GETSIG /* Linux */ case F_GETSIG: #endif #ifdef F_MAXFD /* NetBSD */ case F_MAXFD: #endif #ifdef F_RECYCLE /* macOS */ case F_RECYCLE: #endif #ifdef F_SETFIFOENH /* HP-UX */ case F_SETFIFOENH: #endif #ifdef F_THAW_FS /* macOS */ case F_THAW_FS: #endif /* These actions take no argument. */ result = fcntl (fd, action); break; #ifdef F_ADD_SEALS /* Linux */ case F_ADD_SEALS: #endif #ifdef F_BADFD /* Solaris */ case F_BADFD: #endif #ifdef F_CHECK_OPENEVT /* macOS */ case F_CHECK_OPENEVT: #endif #ifdef F_DUP2FD /* FreeBSD, AIX, Solaris */ case F_DUP2FD: #endif #ifdef F_DUP2FD_CLOEXEC /* FreeBSD, Solaris */ case F_DUP2FD_CLOEXEC: #endif #ifdef F_DUP2FD_CLOFORK /* Solaris */ case F_DUP2FD_CLOFORK: #endif #ifdef F_DUPFD /* POSIX */ case F_DUPFD: #endif #ifdef F_DUPFD_CLOEXEC /* POSIX */ case F_DUPFD_CLOEXEC: #endif #ifdef F_DUPFD_CLOFORK /* Solaris */ case F_DUPFD_CLOFORK: #endif #ifdef F_GETXFL /* Solaris */ case F_GETXFL: #endif #ifdef F_GLOBAL_NOCACHE /* macOS */ case F_GLOBAL_NOCACHE: #endif #ifdef F_MAKECOMPRESSED /* macOS */ case F_MAKECOMPRESSED: #endif #ifdef F_MOVEDATAEXTENTS /* macOS */ case F_MOVEDATAEXTENTS: #endif #ifdef F_NOCACHE /* macOS */ case F_NOCACHE: #endif #ifdef F_NODIRECT /* macOS */ case F_NODIRECT: #endif #ifdef F_NOTIFY /* Linux */ case F_NOTIFY: #endif #ifdef F_OPLKACK /* IRIX */ case F_OPLKACK: #endif #ifdef F_OPLKREG /* IRIX */ case F_OPLKREG: #endif #ifdef F_RDAHEAD /* macOS */ case F_RDAHEAD: #endif #ifdef F_SETBACKINGSTORE /* macOS */ case F_SETBACKINGSTORE: #endif #ifdef F_SETCONFINED /* macOS */ case F_SETCONFINED: #endif #ifdef F_SETFD /* POSIX */ case F_SETFD: #endif #ifdef F_SETFL /* POSIX */ case F_SETFL: #endif #ifdef F_SETLEASE /* Linux */ case F_SETLEASE: #endif #ifdef F_SETNOSIGPIPE /* macOS */ case F_SETNOSIGPIPE: #endif #ifdef F_SETOWN /* POSIX */ case F_SETOWN: #endif #ifdef F_SETPIPE_SZ /* Linux */ case F_SETPIPE_SZ: #endif #ifdef F_SETPROTECTIONCLASS /* macOS */ case F_SETPROTECTIONCLASS: #endif #ifdef F_SETSIG /* Linux */ case F_SETSIG: #endif #ifdef F_SINGLE_WRITER /* macOS */ case F_SINGLE_WRITER: #endif /* These actions take an 'int' argument. */ { int x = va_arg (arg, int); result = fcntl (fd, action, x); } break; default: /* Other actions take a pointer argument. */ { void *p = va_arg (arg, void *); result = fcntl (fd, action, p); } break; } #else errno = EINVAL; #endif break; } } va_end (arg); return result; } static int rpl_fcntl_DUPFD (int fd, int target) { int result; #if !HAVE_FCNTL result = dupfd (fd, target, 0); #elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR /* Detect invalid target; needed for cygwin 1.5.x. */ if (target < 0 || getdtablesize () <= target) { result = -1; errno = EINVAL; } else { /* Haiku alpha 2 loses fd flags on original. */ int flags = fcntl (fd, F_GETFD); if (flags < 0) result = -1; else { result = fcntl (fd, F_DUPFD, target); if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) { int saved_errno = errno; close (result); result = -1; errno = saved_errno; } # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif } } #else result = fcntl (fd, F_DUPFD, target); #endif return result; } static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target) { int result; #if !HAVE_FCNTL result = dupfd (fd, target, O_CLOEXEC); #else /* HAVE_FCNTL */ # if defined __NetBSD__ || defined __HAIKU__ /* On NetBSD 9.0, the system fcntl (fd, F_DUPFD_CLOEXEC, target) has only the same effect as fcntl (fd, F_DUPFD, target). */ /* On Haiku, the system fcntl (fd, F_DUPFD_CLOEXEC, target) sets the FD_CLOEXEC flag on fd, not on target. Therefore avoid the system fcntl in this case. */ # define have_dupfd_cloexec -1 # else /* Try the system call first, if the headers claim it exists (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we may be running with a glibc that has the macro but with an older kernel that does not support it. Cache the information on whether the system call really works, but avoid caching failure if the corresponding F_DUPFD fails for any reason. 0 = unknown, 1 = yes, -1 = no. */ static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; if (0 <= have_dupfd_cloexec) { result = fcntl (fd, F_DUPFD_CLOEXEC, target); if (0 <= result || errno != EINVAL) { have_dupfd_cloexec = 1; # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif } else { result = rpl_fcntl_DUPFD (fd, target); if (result >= 0) have_dupfd_cloexec = -1; } } else # endif result = rpl_fcntl_DUPFD (fd, target); if (0 <= result && have_dupfd_cloexec == -1) { int flags = fcntl (result, F_GETFD); if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) { int saved_errno = errno; close (result); errno = saved_errno; result = -1; } } #endif /* HAVE_FCNTL */ return result; } #undef fcntl #ifdef __KLIBC__ static int klibc_fcntl (int fd, int action, /* arg */...) { va_list arg_ptr; int arg; struct stat sbuf; int result; va_start (arg_ptr, action); arg = va_arg (arg_ptr, int); result = fcntl (fd, action, arg); /* EPERM for F_DUPFD, ENOTSUP for others */ if (result == -1 && (errno == EPERM || errno == ENOTSUP) && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { ULONG ulMode; switch (action) { case F_DUPFD: /* Find available fd */ while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) arg++; result = dup2 (fd, arg); break; /* Using underlying APIs is right ? */ case F_GETFD: if (DosQueryFHState (fd, &ulMode)) break; result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; break; case F_SETFD: if (arg & ~FD_CLOEXEC) break; if (DosQueryFHState (fd, &ulMode)) break; if (arg & FD_CLOEXEC) ulMode |= OPEN_FLAGS_NOINHERIT; else ulMode &= ~OPEN_FLAGS_NOINHERIT; /* Filter supported flags. */ ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); if (DosSetFHState (fd, ulMode)) break; result = 0; break; case F_GETFL: result = 0; break; case F_SETFL: if (arg != 0) break; result = 0; break; default: errno = EINVAL; break; } } va_end (arg_ptr); return result; } #endif ���������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fcntl.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000031331�14374751113�012003� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Like <fcntl.h>, but with non-working flags defined to 0. Copyright (C) 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Paul Eggert */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_fcntl_h /* Special invocation convention. */ /* Needed before <sys/stat.h>. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* On some systems other than glibc, <sys/stat.h> is a prerequisite of <fcntl.h>. On glibc systems, we would like to avoid namespace pollution. But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden <sys/stat.h> from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include <sys/stat.h> #endif #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ /* Native Windows platforms declare open(), creat() in <io.h>. */ #if (@GNULIB_CREAT@ || @GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_FCNTL_H /* Needed before <sys/stat.h>. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* On some systems other than glibc, <sys/stat.h> is a prerequisite of <fcntl.h>. On glibc systems, we would like to avoid namespace pollution. But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden <sys/stat.h> from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include <sys/stat.h> #endif /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ /* Native Windows platforms declare open(), creat() in <io.h>. */ #if (@GNULIB_CREAT@ || @GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif #ifndef _@GUARD_PREFIX@_FCNTL_H #define _@GUARD_PREFIX@_FCNTL_H #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ # include <unistd.h> #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ #if @GNULIB_CREAT@ # if @REPLACE_CREAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef creat # define creat rpl_creat # endif _GL_FUNCDECL_RPL (creat, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (creat, int, (const char *filename, mode_t mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef creat # define creat _creat # endif _GL_CXXALIAS_MDA (creat, int, (const char *filename, mode_t mode)); # else _GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); # endif _GL_CXXALIASWARN (creat); #elif defined GNULIB_POSIXCHECK # undef creat /* Assume creat is always declared. */ _GL_WARN_ON_USE (creat, "creat is not always POSIX compliant - " "use gnulib module creat for portability"); #elif @GNULIB_MDA_CREAT@ /* On native Windows, map 'creat' to '_creat', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::creat always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef creat # define creat _creat # endif /* Need to cast, because in mingw the last argument is 'int mode'. */ _GL_CXXALIAS_MDA_CAST (creat, int, (const char *filename, mode_t mode)); # else _GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); # endif _GL_CXXALIASWARN (creat); #endif #if @GNULIB_FCNTL@ # if @REPLACE_FCNTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcntl # define fcntl rpl_fcntl # endif _GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); _GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); # if !GNULIB_defined_rpl_fcntl # define GNULIB_defined_rpl_fcntl 1 # endif # else # if !@HAVE_FCNTL@ _GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); # if !GNULIB_defined_fcntl # define GNULIB_defined_fcntl 1 # endif # endif _GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); # endif _GL_CXXALIASWARN (fcntl); #elif defined GNULIB_POSIXCHECK # undef fcntl # if HAVE_RAW_DECL_FCNTL _GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " "use gnulib module fcntl for portability"); # endif #endif #if @GNULIB_OPEN@ # if @REPLACE_OPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open rpl_open # endif _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open _open # endif _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); # else _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); # endif /* On HP-UX 11, in C++ mode, open() is defined as an inline function with a default argument. _GL_CXXALIASWARN does not work in this case. */ # if !defined __hpux _GL_CXXALIASWARN (open); # endif #elif defined GNULIB_POSIXCHECK # undef open /* Assume open is always declared. */ _GL_WARN_ON_USE (open, "open is not always POSIX compliant - " "use gnulib module open for portability"); #elif @GNULIB_MDA_OPEN@ /* On native Windows, map 'open' to '_open', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::open always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open _open # endif _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); # else _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); # endif # if !defined __hpux _GL_CXXALIASWARN (open); # endif #endif #if @GNULIB_OPENAT@ # if @REPLACE_OPENAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef openat # define openat rpl_openat # endif _GL_FUNCDECL_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # else # if !@HAVE_OPENAT@ _GL_FUNCDECL_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # endif _GL_CXXALIASWARN (openat); #elif defined GNULIB_POSIXCHECK # undef openat # if HAVE_RAW_DECL_OPENAT _GL_WARN_ON_USE (openat, "openat is not portable - " "use gnulib module openat for portability"); # endif #endif /* Fix up the FD_* macros, only known to be missing on mingw. */ #ifndef FD_CLOEXEC # define FD_CLOEXEC 1 #endif /* Fix up the supported F_* macros. Intentionally leave other F_* macros undefined. Only known to be missing on mingw. */ #ifndef F_DUPFD_CLOEXEC # define F_DUPFD_CLOEXEC 0x40000000 /* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ # define GNULIB_defined_F_DUPFD_CLOEXEC 1 #else # define GNULIB_defined_F_DUPFD_CLOEXEC 0 #endif #ifndef F_DUPFD # define F_DUPFD 1 #endif #ifndef F_GETFD # define F_GETFD 2 #endif /* Fix up the O_* macros. */ /* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT to values outside 'int' range, so omit these misdefinitions. But avoid namespace pollution on non-AIX systems. */ #ifdef _AIX # include <limits.h> # if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX) # undef O_CLOEXEC # endif # if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX) # undef O_NOFOLLOW # endif # if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX) # undef O_TTY_INIT # endif #endif #if !defined O_DIRECT && defined O_DIRECTIO /* Tru64 spells it 'O_DIRECTIO'. */ # define O_DIRECT O_DIRECTIO #endif #if !defined O_CLOEXEC && defined O_NOINHERIT /* Mingw spells it 'O_NOINHERIT'. */ # define O_CLOEXEC O_NOINHERIT #endif #ifndef O_CLOEXEC # define O_CLOEXEC 0x40000000 /* Try to not collide with system O_* flags. */ # define GNULIB_defined_O_CLOEXEC 1 #else # define GNULIB_defined_O_CLOEXEC 0 #endif #ifndef O_DIRECT # define O_DIRECT 0 #endif #ifndef O_DIRECTORY # define O_DIRECTORY 0 #endif #ifndef O_DSYNC # define O_DSYNC 0 #endif #ifndef O_EXEC # define O_EXEC O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_IGNORE_CTTY # define O_IGNORE_CTTY 0 #endif #ifndef O_NDELAY # define O_NDELAY 0 #endif #ifndef O_NOATIME # define O_NOATIME 0 #endif #ifndef O_NONBLOCK # define O_NONBLOCK O_NDELAY #endif /* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY or to 0 as fallback. */ #if @GNULIB_NONBLOCKING@ # if O_NONBLOCK # define GNULIB_defined_O_NONBLOCK 0 # else # define GNULIB_defined_O_NONBLOCK 1 # undef O_NONBLOCK # define O_NONBLOCK 0x40000000 # endif #endif #ifndef O_NOCTTY # define O_NOCTTY 0 #endif #ifndef O_NOFOLLOW # define O_NOFOLLOW 0 #endif #ifndef O_NOLINK # define O_NOLINK 0 #endif #ifndef O_NOLINKS # define O_NOLINKS 0 #endif #ifndef O_NOTRANS # define O_NOTRANS 0 #endif #ifndef O_RSYNC # define O_RSYNC 0 #endif #ifndef O_SEARCH # define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_SYNC # define O_SYNC 0 #endif #ifndef O_TTY_INIT # define O_TTY_INIT 0 #endif #if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) # undef O_ACCMODE # define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) #endif /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in fcntl.h */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif #if defined __BEOS__ || defined __HAIKU__ /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif #ifndef O_BINARY # define O_BINARY 0 # define O_TEXT 0 #endif /* Fix up the AT_* macros. */ /* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its value exceeds INT_MAX, so its use as an int doesn't conform to the C standard, and GCC and Sun C complain in some cases. If the bug is present, undef AT_FDCWD here, so it can be redefined below. */ #if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 # undef AT_FDCWD #endif /* Use the same bit pattern as Solaris 9, but with the proper signedness. The bit pattern is important, in case this actually is Solaris with the above workaround. */ #ifndef AT_FDCWD # define AT_FDCWD (-3041965) #endif /* Use the same values as Solaris 9. This shouldn't matter, but there's no real reason to differ. */ #ifndef AT_SYMLINK_NOFOLLOW # define AT_SYMLINK_NOFOLLOW 4096 #endif #ifndef AT_REMOVEDIR # define AT_REMOVEDIR 1 #endif /* Solaris 9 lacks these two, so just pick unique values. */ #ifndef AT_SYMLINK_FOLLOW # define AT_SYMLINK_FOLLOW 2 #endif #ifndef AT_EACCESS # define AT_EACCESS 4 #endif /* Ignore this flag if not supported. */ #ifndef AT_NO_AUTOMOUNT # define AT_NO_AUTOMOUNT 0 #endif #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fd-hook.c���������������������������������������������������������������������������0000644�0000000�0000000�00000007025�14374751113�011615� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Hook for making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2023 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2009. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "fd-hook.h" #include <stdlib.h> /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* The first and last link in the doubly linked list. Initially the list is empty. */ static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL }; int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd); else return remaining_list->private_close_fn (remaining_list->private_next, primary, fd); } int execute_all_close_hooks (gl_close_fn primary, int fd) { return execute_close_hooks (anchor.private_next, primary, fd); } int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd, request, arg); else return remaining_list->private_ioctl_fn (remaining_list->private_next, primary, fd, request, arg); } int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg) { return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg); } void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link) { if (close_hook == NULL) close_hook = execute_close_hooks; if (ioctl_hook == NULL) ioctl_hook = execute_ioctl_hooks; if (link->private_next == NULL && link->private_prev == NULL) { /* Add the link to the doubly linked list. */ link->private_next = anchor.private_next; link->private_prev = &anchor; link->private_close_fn = close_hook; link->private_ioctl_fn = ioctl_hook; anchor.private_next->private_prev = link; anchor.private_next = link; } else { /* The link is already in use. */ if (link->private_close_fn != close_hook || link->private_ioctl_fn != ioctl_hook) abort (); } } void unregister_fd_hook (struct fd_hook *link) { struct fd_hook *next = link->private_next; struct fd_hook *prev = link->private_prev; if (next != NULL && prev != NULL) { /* The link is in use. Remove it from the doubly linked list. */ prev->private_next = next; next->private_prev = prev; /* Clear the link, to mark it unused. */ link->private_next = NULL; link->private_prev = NULL; link->private_close_fn = NULL; link->private_ioctl_fn = NULL; } } #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fd-hook.h���������������������������������������������������������������������������0000644�0000000�0000000�00000011364�14374751113�011623� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Hook for making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef FD_HOOK_H #define FD_HOOK_H #ifdef __cplusplus extern "C" { #endif /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* Type of function that closes FD. */ typedef int (*gl_close_fn) (int fd); /* Type of function that applies a control request to FD. */ typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); /* An element of the list of file descriptor hooks. In CLOS (Common Lisp Object System) speak, it consists of an "around" method for the close() function and an "around" method for the ioctl() function. The fields of this structure are considered private. */ struct fd_hook { /* Doubly linked list. */ struct fd_hook *private_next; struct fd_hook *private_prev; /* Function that treats the types of FD that it knows about and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ int (*private_close_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Function that treats the types of FD that it knows about and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a fallback. */ int (*private_ioctl_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); }; /* This type of function closes FD, applying special knowledge for the FD types it knows about, and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for close(). */ typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute all close hooks, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_all_close_hooks (gl_close_fn primary, int fd); /* This type of function applies a control request to FD, applying special knowledge for the FD types it knows about, and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for ioctl(). */ typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute all ioctl hooks, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg); /* Add a function pair to the list of file descriptor hooks. CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. The LINK variable points to a piece of memory which is guaranteed to be accessible until the corresponding call to unregister_fd_hook. */ extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link); /* Removes a hook from the list of file descriptor hooks. */ extern void unregister_fd_hook (struct fd_hook *link); #endif #ifdef __cplusplus } #endif #endif /* FD_HOOK_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fd-safer-flag.c���������������������������������������������������������������������0000644�0000000�0000000�00000003352�14374751113�012663� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Adjust a file descriptor result so that it avoids clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert and Eric Blake. */ #include <config.h> /* Specification. */ #include "unistd-safer.h" #include <errno.h> #include <unistd.h> /* Return FD, unless FD would be a copy of standard input, output, or error; in that case, return a duplicate of FD, closing FD. If FLAG contains O_CLOEXEC, the returned FD will have close-on-exec semantics. On failure to duplicate, close FD, set errno, and return -1. Preserve errno if FD is negative, so that the caller can always inspect errno when the returned value is negative. This function is usefully wrapped around functions that return file descriptors, e.g., fd_safer_flag (open ("file", O_RDONLY | flag), flag). */ int fd_safer_flag (int fd, int flag) { if (STDIN_FILENO <= fd && fd <= STDERR_FILENO) { int f = dup_safer_flag (fd, flag); int e = errno; close (fd); errno = e; fd = f; } return fd; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fd-safer.c��������������������������������������������������������������������������0000644�0000000�0000000�00000003003�14374751113�011745� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Return a safer copy of a file descriptor. Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <config.h> #include "unistd-safer.h" #include <errno.h> #include <unistd.h> /* Return FD, unless FD would be a copy of standard input, output, or error; in that case, return a duplicate of FD, closing FD. On failure to duplicate, close FD, set errno, and return -1. Preserve errno if FD is negative, so that the caller can always inspect errno when the returned value is negative. This function is usefully wrapped around functions that return file descriptors, e.g., fd_safer (open ("file", O_RDONLY)). */ int fd_safer (int fd) { if (STDIN_FILENO <= fd && fd <= STDERR_FILENO) { int f = dup_safer (fd); int e = errno; close (fd); errno = e; fd = f; } return fd; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fdopendir.c�������������������������������������������������������������������������0000644�0000000�0000000�00000015035�14374751113�012240� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* provide a replacement fdopendir function Copyright (C) 2004-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering */ #include <config.h> #include <dirent.h> #include <stdlib.h> #include <unistd.h> #if !HAVE_FDOPENDIR # include "openat.h" # include "openat-priv.h" # include "save-cwd.h" # if GNULIB_DIRENT_SAFER # include "dirent--.h" # endif # ifndef REPLACE_FCHDIR # define REPLACE_FCHDIR 0 # endif static DIR *fdopendir_with_dup (int, int, struct saved_cwd const *); static DIR *fd_clone_opendir (int, struct saved_cwd const *); /* Replacement for POSIX fdopendir. First, try to simulate it via opendir ("/proc/self/fd/..."). Failing that, simulate it by using fchdir metadata, or by doing save_cwd/fchdir/opendir(".")/restore_cwd. If either the save_cwd or the restore_cwd fails (relatively unlikely), then give a diagnostic and exit nonzero. If successful, the resulting stream is based on FD in implementations where streams are based on file descriptors and in applications where no other thread or signal handler allocates or frees file descriptors. In other cases, consult dirfd on the result to find out whether FD is still being used. Otherwise, this function works just like POSIX fdopendir. W A R N I N G: Unlike other fd-related functions, this one places constraints on FD. If this function returns successfully, FD is under control of the dirent.h system, and the caller should not close or modify the state of FD other than by the dirent.h functions. */ # ifdef __KLIBC__ # include <InnoTekLIBC/backend.h> DIR * fdopendir (int fd) { char path[_MAX_PATH]; DIR *dirp; /* Get a path from fd */ if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) return NULL; dirp = opendir (path); if (!dirp) return NULL; /* Unregister fd registered by opendir() */ _gl_unregister_dirp_fd (dirfd (dirp)); /* Register our fd */ if (_gl_register_dirp_fd (fd, dirp)) { int saved_errno = errno; closedir (dirp); errno = saved_errno; dirp = NULL; } return dirp; } # else DIR * fdopendir (int fd) { DIR *dir = fdopendir_with_dup (fd, -1, NULL); if (! REPLACE_FCHDIR && ! dir) { int saved_errno = errno; if (EXPECTED_ERRNO (saved_errno)) { struct saved_cwd cwd; if (save_cwd (&cwd) != 0) openat_save_fail (errno); dir = fdopendir_with_dup (fd, -1, &cwd); saved_errno = errno; free_cwd (&cwd); errno = saved_errno; } } return dir; } # endif /* Like fdopendir, except that if OLDER_DUPFD is not -1, it is known to be a dup of FD which is less than FD - 1 and which will be closed by the caller and not otherwise used by the caller. This function makes sure that FD is closed and all file descriptors less than FD are open, and then calls fd_clone_opendir on a dup of FD. That way, barring race conditions, fd_clone_opendir returns a stream whose file descriptor is FD. If REPLACE_FCHDIR or CWD is null, use opendir ("/proc/self/fd/...", falling back on fchdir metadata. Otherwise, CWD is a saved version of the working directory; use fchdir/opendir(".")/restore_cwd(CWD). */ static DIR * fdopendir_with_dup (int fd, int older_dupfd, struct saved_cwd const *cwd) { int dupfd = dup (fd); if (dupfd < 0 && errno == EMFILE) dupfd = older_dupfd; if (dupfd < 0) return NULL; else { DIR *dir; int saved_errno; if (dupfd < fd - 1 && dupfd != older_dupfd) { dir = fdopendir_with_dup (fd, dupfd, cwd); saved_errno = errno; } else { close (fd); dir = fd_clone_opendir (dupfd, cwd); saved_errno = errno; if (! dir) { int fd1 = dup (dupfd); if (fd1 != fd) openat_save_fail (fd1 < 0 ? errno : EBADF); } } if (dupfd != older_dupfd) close (dupfd); errno = saved_errno; return dir; } } /* Like fdopendir, except the result controls a clone of FD. It is the caller's responsibility both to close FD and (if the result is not null) to closedir the result. */ static DIR * fd_clone_opendir (int fd, struct saved_cwd const *cwd) { if (REPLACE_FCHDIR || ! cwd) { DIR *dir = NULL; int saved_errno = EOPNOTSUPP; char buf[OPENAT_BUFFER_SIZE]; char *proc_file = openat_proc_name (buf, fd, "."); if (proc_file) { dir = opendir (proc_file); saved_errno = errno; if (proc_file != buf) free (proc_file); } # if REPLACE_FCHDIR if (! dir && EXPECTED_ERRNO (saved_errno)) { char const *name = _gl_directory_name (fd); DIR *dp = name ? opendir (name) : NULL; /* The caller has done an elaborate dance to arrange for opendir to consume just the right file descriptor. If dirfd returns -1, though, we're on a system like mingw where opendir does not consume a file descriptor. Consume it via 'dup' instead. */ if (dp && dirfd (dp) < 0) dup (fd); return dp; } # endif errno = saved_errno; return dir; } else { if (fchdir (fd) != 0) return NULL; else { DIR *dir = opendir ("."); int saved_errno = errno; if (restore_cwd (cwd) != 0) openat_restore_fail (errno); errno = saved_errno; return dir; } } } #else /* HAVE_FDOPENDIR */ # include <errno.h> # include <sys/stat.h> # undef fdopendir /* Like fdopendir, but work around GNU/Hurd bug by validating FD. */ DIR * rpl_fdopendir (int fd) { struct stat st; if (fstat (fd, &st)) return NULL; if (!S_ISDIR (st.st_mode)) { errno = ENOTDIR; return NULL; } return fdopendir (fd); } #endif /* HAVE_FDOPENDIR */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/filename.h��������������������������������������������������������������������������0000644�0000000�0000000�00000011106�14374751113�012046� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Basic filename support macros. Copyright (C) 2001-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ /* From Paul Eggert and Jim Meyering. */ #ifndef _FILENAME_H #define _FILENAME_H #include <string.h> #ifdef __cplusplus extern "C" { #endif /* Filename support. ISSLASH(C) tests whether C is a directory separator character. HAS_DEVICE(Filename) tests whether Filename contains a device specification. FILE_SYSTEM_PREFIX_LEN(Filename) length of the device specification at the beginning of Filename, index of the part consisting of alternating components and slashes. FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 when a non-empty device specification can be followed by an empty or relative part, 0 when a non-empty device specification must be followed by a slash, 0 when device specification don't exist. IS_ABSOLUTE_FILE_NAME(Filename) tests whether Filename is independent of any notion of "current directory". IS_RELATIVE_FILE_NAME(Filename) tests whether Filename may be concatenated to a directory filename. Note: On native Windows, OS/2, DOS, "c:" is neither an absolute nor a relative file name! IS_FILE_NAME_WITH_DIR(Filename) tests whether Filename contains a device or directory specification. */ #if defined _WIN32 || defined __CYGWIN__ \ || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') /* Internal macro: Tests whether a character is a drive letter. */ # define _IS_DRIVE_LETTER(C) \ (((C) >= 'A' && (C) <= 'Z') || ((C) >= 'a' && (C) <= 'z')) /* Help the compiler optimizing it. This assumes ASCII. */ # undef _IS_DRIVE_LETTER # define _IS_DRIVE_LETTER(C) \ (((unsigned int) (C) | ('a' - 'A')) - 'a' <= 'z' - 'a') # define HAS_DEVICE(Filename) \ (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':') # define FILE_SYSTEM_PREFIX_LEN(Filename) (HAS_DEVICE (Filename) ? 2 : 0) # ifdef __CYGWIN__ # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 # else /* On native Windows, OS/2, DOS, the system has the notion of a "current directory" on each drive. */ # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 # endif # if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define IS_ABSOLUTE_FILE_NAME(Filename) \ ISSLASH ((Filename)[FILE_SYSTEM_PREFIX_LEN (Filename)]) # else # define IS_ABSOLUTE_FILE_NAME(Filename) \ (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename)) # endif # define IS_RELATIVE_FILE_NAME(Filename) \ (! (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename))) # define IS_FILE_NAME_WITH_DIR(Filename) \ (strchr ((Filename), '/') != NULL || strchr ((Filename), '\\') != NULL \ || HAS_DEVICE (Filename)) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define HAS_DEVICE(Filename) ((void) (Filename), 0) # define FILE_SYSTEM_PREFIX_LEN(Filename) ((void) (Filename), 0) # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 # define IS_ABSOLUTE_FILE_NAME(Filename) ISSLASH ((Filename)[0]) # define IS_RELATIVE_FILE_NAME(Filename) (! ISSLASH ((Filename)[0])) # define IS_FILE_NAME_WITH_DIR(Filename) (strchr ((Filename), '/') != NULL) #endif /* Deprecated macros. For backward compatibility with old users of the 'filename' module. */ #define IS_ABSOLUTE_PATH IS_ABSOLUTE_FILE_NAME #define IS_PATH_WITH_DIR IS_FILE_NAME_WITH_DIR #ifdef __cplusplus } #endif #endif /* _FILENAME_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/filenamecat-lgpl.c������������������������������������������������������������������0000644�0000000�0000000�00000005411�14374751113�013467� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Concatenate two arbitrary file names. Copyright (C) 1996-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> /* Specification. */ #include "filenamecat.h" #include <stdlib.h> #include <string.h> #include "basename-lgpl.h" #include "filename.h" #if ! HAVE_MEMPCPY && ! defined mempcpy # define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N))) #endif /* Concatenate two file name components, DIR and BASE, in newly-allocated storage and return the result. The resulting file name F is such that the commands "ls F" and "(cd DIR; ls ./BASE)" refer to the same file. If necessary, put a separator between DIR and BASE in the result. Typically this separator is "/", but in rare cases it might be ".". In any case, if BASE_IN_RESULT is non-NULL, set *BASE_IN_RESULT to point to the copy of BASE at the end of the returned concatenation. If malloc fails, return NULL with errno set. */ char * mfile_name_concat (char const *dir, char const *base, char **base_in_result) { char const *dirbase = last_component (dir); size_t dirbaselen = base_len (dirbase); size_t dirlen = dirbase - dir + dirbaselen; size_t baselen = strlen (base); char sep = '\0'; if (dirbaselen) { /* DIR is not a file system root, so separate with / if needed. */ if (! ISSLASH (dir[dirlen - 1]) && ! ISSLASH (*base)) sep = '/'; } else if (ISSLASH (*base)) { /* DIR is a file system root and BASE begins with a slash, so separate with ".". For example, if DIR is "/" and BASE is "/foo" then return "/./foo", as "//foo" would be wrong on some POSIX systems. A fancier algorithm could omit "." in some cases but is not worth the trouble. */ sep = '.'; } char *p_concat = malloc (dirlen + (sep != '\0') + baselen + 1); if (p_concat == NULL) return NULL; { char *p; p = mempcpy (p_concat, dir, dirlen); *p = sep; p += sep != '\0'; if (base_in_result) *base_in_result = p; p = mempcpy (p, base, baselen); *p = '\0'; } return p_concat; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/filenamecat.c�����������������������������������������������������������������������0000644�0000000�0000000�00000002421�14374751113�012531� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Concatenate two arbitrary file names. Copyright (C) 1996-2007, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> /* Specification. */ #include "filenamecat.h" #include <stdlib.h> #include <string.h> #include "xalloc.h" /* Just like mfile_name_concat (filenamecat-lgpl.c), except, rather than returning NULL upon malloc failure, here, we report the "memory exhausted" condition and exit. */ char * file_name_concat (char const *dir, char const *base, char **base_in_result) { char *p = mfile_name_concat (dir, base, base_in_result); if (p == NULL) xalloc_die (); return p; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/filenamecat.h�����������������������������������������������������������������������0000644�0000000�0000000�00000002317�14374751113�012542� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Concatenate two arbitrary file names. Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <stdlib.h> #if GNULIB_FILENAMECAT char *file_name_concat (char const *dir, char const *base, char **base_in_result) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; #endif char *mfile_name_concat (char const *dir, char const *base, char **base_in_result) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/free.c������������������������������������������������������������������������������0000644�0000000�0000000�00000003000�14415562304�011172� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Make free() preserve errno. Copyright (C) 2003, 2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Paul Eggert */ #include <config.h> /* Specification. */ #include <stdlib.h> /* A function definition is only needed if HAVE_FREE_POSIX is not defined. */ #if !HAVE_FREE_POSIX # include <errno.h> void rpl_free (void *p) # undef free { # if defined __GNUC__ && !defined __clang__ /* An invalid GCC optimization <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98396> would optimize away the assignments in the code below, when link-time optimization (LTO) is enabled. Make the code more complicated, so that GCC does not grok how to optimize it. */ int err[2]; err[0] = errno; err[1] = errno; errno = 0; GC_free (p); errno = err[errno == 0]; # else int err = errno; GC_free (p); errno = err; # endif } #endif a2ps-4.15.5/lib/fstat.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000005153�14374751113�011407� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* fstat() replacement. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* If the user's config.h happens to include <sys/stat.h>, let it include only the system's <sys/stat.h> here, so that orig_fstat doesn't recurse to rpl_fstat. */ #define __need_system_sys_stat_h #include <config.h> /* Get the original definition of fstat. It might be defined as a macro. */ #include <sys/types.h> #include <sys/stat.h> #undef __need_system_sys_stat_h #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif #if !defined WINDOWS_NATIVE static int orig_fstat (int fd, struct stat *buf) { return fstat (fd, buf); } #endif /* Specification. */ #ifdef __osf__ /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <sys/stat.h> above. */ # include "sys/stat.h" #else # include <sys/stat.h> #endif #include "stat-time.h" #include <errno.h> #include <unistd.h> #ifdef WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include <windows.h> # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif # include "stat-w32.h" #endif int rpl_fstat (int fd, struct stat *buf) { #if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY /* Handle the case when rpl_open() used a dummy file descriptor to work around an open() that can't normally visit directories. */ const char *name = _gl_directory_name (fd); if (name != NULL) return stat (name, buf); #endif #ifdef WINDOWS_NATIVE /* Fill the fields ourselves, because the original fstat function returns values for st_atime, st_mtime, st_ctime that depend on the current time zone. See <https://lists.gnu.org/r/bug-gnulib/2017-04/msg00134.html> */ HANDLE h = (HANDLE) _get_osfhandle (fd); if (h == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return _gl_fstat_by_handle (h, NULL, buf); #else return stat_time_normalize (orig_fstat (fd, buf), buf); #endif } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/fstatat.c���������������������������������������������������������������������������0000644�0000000�0000000�00000011215�14374751113�011730� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Work around an fstatat bug on Solaris 9. Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert and Jim Meyering. */ /* If the user's config.h happens to include <sys/stat.h>, let it include only the system's <sys/stat.h> here, so that orig_fstatat doesn't recurse to rpl_fstatat. */ #define __need_system_sys_stat_h #include <config.h> /* Get the original definition of fstatat. It might be defined as a macro. */ #include <sys/types.h> #include <sys/stat.h> #undef __need_system_sys_stat_h #if HAVE_FSTATAT && HAVE_WORKING_FSTATAT_ZERO_FLAG static int orig_fstatat (int fd, char const *filename, struct stat *buf, int flags) { return fstatat (fd, filename, buf, flags); } #endif #ifdef __osf__ /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <sys/stat.h> above. */ # include "sys/stat.h" #else # include <sys/stat.h> #endif #include "stat-time.h" #include <errno.h> #include <fcntl.h> #include <stdlib.h> #include <string.h> #if HAVE_FSTATAT && HAVE_WORKING_FSTATAT_ZERO_FLAG # ifndef LSTAT_FOLLOWS_SLASHED_SYMLINK # define LSTAT_FOLLOWS_SLASHED_SYMLINK 0 # endif static int normal_fstatat (int fd, char const *file, struct stat *st, int flag) { return stat_time_normalize (orig_fstatat (fd, file, st, flag), st); } /* fstatat should always follow symbolic links that end in /, but on Solaris 9 it doesn't if AT_SYMLINK_NOFOLLOW is specified. Likewise, trailing slash on a non-directory should be an error. These are the same problems that lstat.c and stat.c address, so solve it in a similar way. AIX 7.1 fstatat (AT_FDCWD, ..., 0) always fails, which is a bug. Work around this bug if FSTATAT_AT_FDCWD_0_BROKEN is nonzero. */ int rpl_fstatat (int fd, char const *file, struct stat *st, int flag) { int result = normal_fstatat (fd, file, st, flag); size_t len; if (LSTAT_FOLLOWS_SLASHED_SYMLINK || result != 0) return result; len = strlen (file); if (flag & AT_SYMLINK_NOFOLLOW) { /* Fix lstat behavior. */ if (file[len - 1] != '/' || S_ISDIR (st->st_mode)) return 0; if (!S_ISLNK (st->st_mode)) { errno = ENOTDIR; return -1; } result = normal_fstatat (fd, file, st, flag & ~AT_SYMLINK_NOFOLLOW); } /* Fix stat behavior. */ if (result == 0 && !S_ISDIR (st->st_mode) && file[len - 1] == '/') { errno = ENOTDIR; return -1; } return result; } #else /* ! (HAVE_FSTATAT && HAVE_WORKING_FSTATAT_ZERO_FLAG) */ /* On mingw, the gnulib <sys/stat.h> defines 'stat' as a function-like macro; but using it in AT_FUNC_F2 causes compilation failure because the preprocessor sees a use of a macro that requires two arguments but is only given one. Hence, we need an inline forwarder to get past the preprocessor. */ static int stat_func (char const *name, struct stat *st) { return stat (name, st); } /* Likewise, if there is no native 'lstat', then the gnulib <sys/stat.h> defined it as stat, which also needs adjustment. */ # if !HAVE_LSTAT # undef lstat # define lstat stat_func # endif /* Replacement for Solaris' function by the same name. <https://www.google.com/search?q=fstatat+site:docs.oracle.com> First, try to simulate it via l?stat ("/proc/self/fd/FD/FILE"). Failing that, simulate it via save_cwd/fchdir/(stat|lstat)/restore_cwd. If either the save_cwd or the restore_cwd fails (relatively unlikely), then give a diagnostic and exit nonzero. Otherwise, this function works just like Solaris' fstatat. */ # define AT_FUNC_NAME fstatat # define AT_FUNC_F1 lstat # define AT_FUNC_F2 stat_func # define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW # define AT_FUNC_POST_FILE_PARAM_DECLS , struct stat *st, int flag # define AT_FUNC_POST_FILE_ARGS , st # include "at-func.c" # undef AT_FUNC_NAME # undef AT_FUNC_F1 # undef AT_FUNC_F2 # undef AT_FUNC_USE_F1_COND # undef AT_FUNC_POST_FILE_PARAM_DECLS # undef AT_FUNC_POST_FILE_ARGS #endif /* !HAVE_FSTATAT */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/getcwd-lgpl.c�����������������������������������������������������������������������0000644�0000000�0000000�00000006266�14374751113�012505� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is part of gnulib. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification */ #include <unistd.h> #include <errno.h> #include <stdlib.h> #include <string.h> #if GNULIB_GETCWD /* Favor GPL getcwd.c if both getcwd and getcwd-lgpl modules are in use. */ typedef int dummy; #else /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Returns NULL if the directory couldn't be determined (perhaps because the absolute name was longer than PATH_MAX, or because of missing read/search permissions on parent directories) or SIZE was too small. If successful, returns BUF. If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # undef getcwd # if defined _WIN32 && !defined __CYGWIN__ # define getcwd _getcwd # endif char * rpl_getcwd (char *buf, size_t size) { char *ptr; char *result; /* Handle single size operations. */ if (buf) { if (!size) { errno = EINVAL; return NULL; } return getcwd (buf, size); } if (size) { buf = malloc (size); if (!buf) { errno = ENOMEM; return NULL; } result = getcwd (buf, size); if (!result) free (buf); return result; } /* Flexible sizing requested. Avoid over-allocation for the common case of a name that fits within a 4k page, minus some space for local variables, to be sure we don't skip over a guard page. */ { char tmp[4032]; size = sizeof tmp; ptr = getcwd (tmp, size); if (ptr) { result = strdup (ptr); if (!result) errno = ENOMEM; return result; } if (errno != ERANGE) return NULL; } /* My what a large directory name we have. */ do { size <<= 1; ptr = realloc (buf, size); if (ptr == NULL) { free (buf); errno = ENOMEM; return NULL; } buf = ptr; result = getcwd (buf, size); } while (!result && errno == ERANGE); if (!result) free (buf); else { /* Here result == buf. */ /* Shrink result before returning it. */ size_t actual_size = strlen (result) + 1; if (actual_size < size) { char *shrinked_result = realloc (result, actual_size); if (shrinked_result != NULL) result = shrinked_result; } } return result; } #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/getdtablesize.c���������������������������������������������������������������������0000644�0000000�0000000�00000006565�14374751113�013124� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getdtablesize() function: Return maximum possible file descriptor value + 1. Copyright (C) 2008-2023 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #if defined _WIN32 && ! defined __CYGWIN__ # include <stdio.h> # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" # endif # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int _setmaxstdio_nothrow (int newmax) { int result; TRY_MSVC_INVAL { result = _setmaxstdio (newmax); } CATCH_MSVC_INVAL { result = -1; } DONE_MSVC_INVAL; return result; } # else # define _setmaxstdio_nothrow _setmaxstdio # endif /* Cache for the previous getdtablesize () result. Safe to cache because Windows also lacks setrlimit. */ static int dtablesize; int getdtablesize (void) { if (dtablesize == 0) { /* We are looking for the number N such that the valid file descriptors are 0..N-1. It can be obtained through a loop as follows: { int fd; for (fd = 3; fd < 65536; fd++) if (dup2 (0, fd) == -1) break; return fd; } On Windows XP, the result is 2048. The drawback of this loop is that it allocates memory for a libc internal array that is never freed. The number N can also be obtained as the upper bound for _getmaxstdio (). _getmaxstdio () returns the maximum number of open FILE objects. The sanity check in _setmaxstdio reveals the maximum number of file descriptors. This too allocates memory, but it is freed when we call _setmaxstdio with the original value. */ int orig_max_stdio = _getmaxstdio (); unsigned int bound; for (bound = 0x10000; _setmaxstdio_nothrow (bound) < 0; bound = bound / 2) ; _setmaxstdio_nothrow (orig_max_stdio); dtablesize = bound; } return dtablesize; } #else # include <limits.h> # include <sys/resource.h> # ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY # endif # ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY # endif # ifdef __CYGWIN__ /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it hits the compile-time constant hard limit of 3200. We might as well just report the hard limit. */ # define rlim_cur rlim_max # endif int getdtablesize (void) { struct rlimit lim; if (getrlimit (RLIMIT_NOFILE, &lim) == 0 && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX && lim.rlim_cur != RLIM_INFINITY && lim.rlim_cur != RLIM_SAVED_CUR && lim.rlim_cur != RLIM_SAVED_MAX) return lim.rlim_cur; return INT_MAX; } #endif �������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/gethostname.c�����������������������������������������������������������������������0000644�0000000�0000000�00000005364�14374751113�012610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gethostname emulation for SysV and POSIX.1. Copyright (C) 1992, 2003, 2006, 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* David MacKenzie <djm@gnu.ai.mit.edu> Windows port by Simon Josefsson <simon@josefsson.org> */ #include <config.h> #if !(defined _WIN32 && !defined __CYGWIN__) /* Unix API. */ /* Specification. */ #include <unistd.h> #ifdef HAVE_UNAME # include <sys/utsname.h> #endif #include <string.h> /* Put up to LEN chars of the host name into NAME. Null terminate it if the name is shorter than LEN. Return 0 if ok, -1 if error. */ #include <stddef.h> int gethostname (char *name, size_t len) { #ifdef HAVE_UNAME struct utsname uts; if (uname (&uts) == -1) return -1; if (len > sizeof (uts.nodename)) { /* More space than we need is available. */ name[sizeof (uts.nodename)] = '\0'; len = sizeof (uts.nodename); } strncpy (name, uts.nodename, len); #else strcpy (name, ""); /* Hardcode your system name if you want. */ #endif return 0; } #else /* Native Windows API. Which primitive to choose? - gethostname() requires linking with -lws2_32. - GetComputerName() does not return the right kind of hostname. - GetComputerNameEx(ComputerNameDnsHostname,...) returns the right hostname, but it is hard to use portably: - It requires defining _WIN32_WINNT to at least 0x0500. - With mingw, it also requires "#define GetComputerNameEx GetComputerNameExA". - With older versions of mingw, none of the declarations are present at all, not even of the enum value ComputerNameDnsHostname. So we use gethostname(). Linking with -lws2_32 is the least evil. */ #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include <unistd.h> /* Get INT_MAX. */ #include <limits.h> /* Get set_winsock_errno. */ #include "w32sock.h" #include "sockets.h" #undef gethostname int rpl_gethostname (char *name, size_t len) { int r; if (len > INT_MAX) len = INT_MAX; gl_sockets_startup (SOCKETS_1_1); r = gethostname (name, (int) len); if (r < 0) set_winsock_errno (); return r; } #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/getprogname.c�����������������������������������������������������������������������0000644�0000000�0000000�00000022306�14374751113�012575� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Program name management. Copyright (C) 2016-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. Also get __argv declaration. */ #include <stdlib.h> #include <errno.h> /* get program_invocation_name declaration */ #ifdef _AIX # include <unistd.h> # include <procinfo.h> # include <string.h> #endif #ifdef __MVS__ # ifndef _OPEN_SYS # define _OPEN_SYS # endif # include <string.h> # include <sys/ps.h> #endif #ifdef __hpux # include <unistd.h> # include <sys/param.h> # include <sys/pstat.h> # include <string.h> #endif #if defined __sgi || defined __osf__ # include <string.h> # include <unistd.h> # include <stdio.h> # include <fcntl.h> # include <sys/procfs.h> #endif #if defined __SCO_VERSION__ || defined __sysv5__ # include <fcntl.h> # include <string.h> #endif #include "basename-lgpl.h" #ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Solaris >= 11, Cygwin, Android API level >= 21 */ char const * getprogname (void) { # if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* glibc, BeOS */ /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ return program_invocation_short_name; # elif HAVE_DECL_PROGRAM_INVOCATION_NAME /* glibc, BeOS */ /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ return last_component (program_invocation_name); # elif HAVE_GETEXECNAME /* Solaris */ /* https://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */ const char *p = getexecname (); if (!p) p = "?"; return last_component (p); # elif HAVE_DECL___ARGV /* mingw, MSVC */ /* https://docs.microsoft.com/en-us/cpp/c-runtime-library/argc-argv-wargv */ const char *p = __argv && __argv[0] ? __argv[0] : "?"; return last_component (p); # elif HAVE_VAR___PROGNAME /* OpenBSD, Android, QNX */ /* https://man.openbsd.org/style.9 */ /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */ /* Be careful to declare this only when we absolutely need it (OpenBSD 5.1), rather than when it's available. Otherwise, its mere declaration makes program_invocation_short_name malfunction (have zero length) with Fedora 25's glibc. */ extern char *__progname; const char *p = __progname; # if defined __ANDROID__ return last_component (p); # else return p && p[0] ? p : "?"; # endif # elif _AIX /* AIX */ /* Idea by Bastien ROUCARIÈS, https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html Reference: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_61/com.ibm.aix.basetrf1/getprocs.htm */ static char *p; static int first = 1; if (first) { first = 0; pid_t pid = getpid (); struct procentry64 procs; p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1) ? strdup (procs.pi_comm) : NULL); if (!p) p = "?"; } return p; # elif defined __hpux static char *p; static int first = 1; if (first) { first = 0; pid_t pid = getpid (); struct pst_status status; if (pstat_getproc (&status, sizeof status, 0, pid) > 0) { char *ucomm = status.pst_ucomm; char *cmd = status.pst_cmd; if (strlen (ucomm) < PST_UCOMMLEN - 1) p = ucomm; else { /* ucomm is truncated to length PST_UCOMMLEN - 1. Look at cmd instead. */ char *space = strchr (cmd, ' '); if (space != NULL) *space = '\0'; p = strrchr (cmd, '/'); if (p != NULL) p++; else p = cmd; if (strlen (p) > PST_UCOMMLEN - 1 && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) /* p is less truncated than ucomm. */ ; else p = ucomm; } p = strdup (p); } else { # if !defined __LP64__ /* Support for 32-bit programs running in 64-bit HP-UX. The documented way to do this is to use the same source code as above, but in a compilation unit where '#define _PSTAT64 1' is in effect. I prefer a single compilation unit; the struct size and the offsets are not going to change. */ char status64[1216]; if (__pstat_getproc64 (status64, sizeof status64, 0, pid) > 0) { char *ucomm = status64 + 288; char *cmd = status64 + 168; if (strlen (ucomm) < PST_UCOMMLEN - 1) p = ucomm; else { /* ucomm is truncated to length PST_UCOMMLEN - 1. Look at cmd instead. */ char *space = strchr (cmd, ' '); if (space != NULL) *space = '\0'; p = strrchr (cmd, '/'); if (p != NULL) p++; else p = cmd; if (strlen (p) > PST_UCOMMLEN - 1 && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) /* p is less truncated than ucomm. */ ; else p = ucomm; } p = strdup (p); } else # endif p = NULL; } if (!p) p = "?"; } return p; # elif __MVS__ /* z/OS */ /* https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/rtwgetp.htm */ static char *p = "?"; static int first = 1; if (first) { pid_t pid = getpid (); int token; W_PSPROC buf; first = 0; memset (&buf, 0, sizeof(buf)); buf.ps_cmdptr = (char *) malloc (buf.ps_cmdlen = PS_CMDBLEN_LONG); buf.ps_conttyptr = (char *) malloc (buf.ps_conttylen = PS_CONTTYBLEN); buf.ps_pathptr = (char *) malloc (buf.ps_pathlen = PS_PATHBLEN); if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr) { for (token = 0; token >= 0; token = w_getpsent (token, &buf, sizeof(buf))) { if (token > 0 && buf.ps_pid == pid) { char *s = strdup (last_component (buf.ps_pathptr)); if (s) p = s; break; } } } free (buf.ps_cmdptr); free (buf.ps_conttyptr); free (buf.ps_pathptr); } return p; # elif defined __sgi || defined __osf__ /* IRIX or Tru64 */ char filename[50]; int fd; # if defined __sgi sprintf (filename, "/proc/pinfo/%d", (int) getpid ()); # else sprintf (filename, "/proc/%d", (int) getpid ()); # endif fd = open (filename, O_RDONLY | O_CLOEXEC); if (0 <= fd) { prpsinfo_t buf; int ioctl_ok = 0 <= ioctl (fd, PIOCPSINFO, &buf); close (fd); if (ioctl_ok) { char *name = buf.pr_fname; size_t namesize = sizeof buf.pr_fname; /* It may not be NUL-terminated. */ char *namenul = memchr (name, '\0', namesize); size_t namelen = namenul ? namenul - name : namesize; char *namecopy = malloc (namelen + 1); if (namecopy) { namecopy[namelen] = '\0'; return memcpy (namecopy, name, namelen); } } } return NULL; # elif defined __SCO_VERSION__ || defined __sysv5__ /* SCO OpenServer6/UnixWare */ char buf[80]; int fd; sprintf (buf, "/proc/%d/cmdline", getpid()); fd = open (buf, O_RDONLY); if (0 <= fd) { size_t n = read (fd, buf, 79); if (n > 0) { buf[n] = '\0'; /* Guarantee null-termination */ char *progname; progname = strrchr (buf, '/'); if (progname) { progname = progname + 1; /* Skip the '/' */ } else { progname = buf; } char *ret; ret = malloc (strlen (progname) + 1); if (ret) { strcpy (ret, progname); return ret; } } close (fd); } return "?"; # else # error "getprogname module not ported to this OS" # endif } #endif /* * Hey Emacs! * Local Variables: * coding: utf-8 * End: */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/getprogname.h�����������������������������������������������������������������������0000644�0000000�0000000�00000001710�14374751113�012576� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Program name management. Copyright (C) 2016-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_GETPROGNAME_H #define _GL_GETPROGNAME_H #include <stdlib.h> #if __GNUC__ || (__clang_major__ >= 4) # warning "The include file getprogname.h is deprecated. Use <stdlib.h> instead." #endif #endif ��������������������������������������������������������a2ps-4.15.5/lib/gettext.h���������������������������������������������������������������������������0000644�0000000�0000000�00000025015�14374751113�011756� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convenience header for conditional use of GNU <libintl.h>. Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option or through "#define ENABLE NLS 0" before including this file. */ #if defined ENABLE_NLS && ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include <libintl.h> /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of <locale.h> a NOP. We don't include <libintl.h> as well because people using "gettext.h" will not include <libintl.h>, and also including <libintl.h> would fail on SunOS 4, whereas <locale.h> is OK. */ #if defined(__sun) # include <locale.h> #endif /* Many header files from the libstdc++ coming with g++ 3.3 or newer include <libintl.h>, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of <libintl.h> a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include <cstdlib> # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H # include <libintl.h> # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* Prefer gnulib's setlocale override over libintl's setlocale override. */ #ifdef GNULIB_defined_setlocale # undef setlocale # define setlocale rpl_setlocale #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String /* The separator between msgctxt and msgid in a .mo file. */ #define GETTEXT_CONTEXT_GLUE "\004" /* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be short and rarely need to change. The letter 'p' stands for 'particular' or 'special'. */ #ifdef DEFAULT_TEXT_DOMAIN # define pgettext(Msgctxt, Msgid) \ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #else # define pgettext(Msgctxt, Msgid) \ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #endif #define dpgettext(Domainname, Msgctxt, Msgid) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) #ifdef DEFAULT_TEXT_DOMAIN # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #else # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #endif #define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) #if defined __GNUC__ || defined __clang__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * pgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) return msgid; else return translation; } #if defined __GNUC__ || defined __clang__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * npgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); if (translation == msg_ctxt_id || translation == msgid_plural) return (n == 1 ? msgid : msgid_plural); else return translation; } /* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID can be arbitrary expressions. But for string literals these macros are less efficient than those above. */ #include <string.h> /* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported. This relates to the -Wvla and -Wvla-larger-than warnings, enabled in the default GCC many warnings set. This allows programs to disable use of VLAs, which may be unintended, or may be awkward to support portably, or may have security implications due to non-deterministic stack usage. */ #if (!defined GNULIB_NO_VLA \ && defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ && !defined __STDC_NO_VLA__) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 #endif #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS #include <stdlib.h> #endif #define pgettext_expr(Msgctxt, Msgid) \ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) #if defined __GNUC__ || defined __clang__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); found_translation = (translation != msg_ctxt_id); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return msgid; } #define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #if defined __GNUC__ || defined __clang__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcnpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return (n == 1 ? msgid : msgid_plural); } #endif /* _LIBGETTEXT_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/hard-locale.c�����������������������������������������������������������������������0000644�0000000�0000000�00000002722�14374751113�012440� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* hard-locale.c -- Determine whether a locale is hard. Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "hard-locale.h" #include <locale.h> #include <stdlib.h> #include <string.h> bool hard_locale (int category) { char locale[SETLOCALE_NULL_MAX]; if (setlocale_null_r (category, locale, sizeof (locale))) return false; if (!(strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0)) return true; #if defined __ANDROID__ /* On Android 5.0 or newer, it is possible to set a locale that has the same name as the "C" locale but in fact uses UTF-8 encoding. Cf. test case 2 in <https://lists.gnu.org/archive/html/bug-gnulib/2023-01/msg00141.html>. */ if (MB_CUR_MAX > 1) return true; #endif return false; } ����������������������������������������������a2ps-4.15.5/lib/hard-locale.h�����������������������������������������������������������������������0000644�0000000�0000000�00000002260�14374751113�012442� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine whether a locale is hard. Copyright (C) 1999, 2003-2004, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef HARD_LOCALE_H_ # define HARD_LOCALE_H_ 1 /* Return true if the specified CATEGORY of the current locale is hard, i.e. different from the C or POSIX locale that has a fixed behavior. CATEGORY must be one of the LC_* values, but not LC_ALL. Note: This function uses the current global locale; it ignores the per-thread locale. */ extern bool hard_locale (int category); #endif /* HARD_LOCALE_H_ */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/ialloc.c����������������������������������������������������������������������������0000644�0000000�0000000�00000001512�14374751113�011524� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* malloc with idx_t rather than size_t Copyright 2021-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #define IALLOC_INLINE _GL_EXTERN_INLINE #include "ialloc.h" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/ialloc.h����������������������������������������������������������������������������0000644�0000000�0000000�00000004463�14374751113�011541� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ialloc.h -- malloc with idx_t rather than size_t Copyright 2021-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef IALLOC_H_ #define IALLOC_H_ #include "idx.h" #include <errno.h> #include <stdint.h> #include <stdlib.h> #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef IALLOC_INLINE # define IALLOC_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif IALLOC_INLINE void * _GL_ATTRIBUTE_COLD _gl_alloc_nomem (void) { errno = ENOMEM; return NULL; } IALLOC_INLINE _GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/ void * imalloc (idx_t s) { return s <= SIZE_MAX ? malloc (s) : _gl_alloc_nomem (); } IALLOC_INLINE /*_GL_ATTRIBUTE_DEALLOC_FREE*/ void * irealloc (void *p, idx_t s) { /* Work around GNU realloc glitch by treating a zero size as if it were 1, so that returning NULL is equivalent to failing. */ return s <= SIZE_MAX ? realloc (p, s | !s) : _gl_alloc_nomem (); } IALLOC_INLINE _GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/ void * icalloc (idx_t n, idx_t s) { if (SIZE_MAX < n) { if (s != 0) return _gl_alloc_nomem (); n = 0; } if (SIZE_MAX < s) { if (n != 0) return _gl_alloc_nomem (); s = 0; } return calloc (n, s); } IALLOC_INLINE void * ireallocarray (void *p, idx_t n, idx_t s) { /* Work around GNU reallocarray glitch by treating a zero size as if it were 1, so that returning NULL is equivalent to failing. */ if (n == 0 || s == 0) n = s = 1; return (n <= SIZE_MAX && s <= SIZE_MAX ? reallocarray (p, n, s) : _gl_alloc_nomem ()); } #ifdef __cplusplus } #endif #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/idx.h�������������������������������������������������������������������������������0000644�0000000�0000000�00000012062�14374751113�011054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A type for indices and sizes. Copyright (C) 2020-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _IDX_H #define _IDX_H /* Get ptrdiff_t. */ #include <stddef.h> /* Get PTRDIFF_MAX. */ #include <stdint.h> /* The type 'idx_t' holds an (array) index or an (object) size. Its implementation promotes to a signed integer type, which can hold the values 0..2^63-1 (on 64-bit platforms) or 0..2^31-1 (on 32-bit platforms). Why a signed integer type? * Security: Signed types can be checked for overflow via '-fsanitize=undefined', but unsigned types cannot. * Comparisons without surprises: ISO C99 § 6.3.1.8 specifies a few surprising results for comparisons, such as (int) -3 < (unsigned long) 7 => false (int) -3 < (unsigned int) 7 => false and on 32-bit machines: (long) -3 < (unsigned int) 7 => false This is surprising because the natural comparison order is by value in the realm of infinite-precision signed integers (ℤ). The best way to get rid of such surprises is to use signed types for numerical integer values, and use unsigned types only for bit masks and enums. Why not use 'size_t' directly? * Because 'size_t' is an unsigned type, and a signed type is better. See above. Why not use 'ssize_t'? * 'ptrdiff_t' is more portable; it is standardized by ISO C whereas 'ssize_t' is standardized only by POSIX. * 'ssize_t' is not required to be as wide as 'size_t', and some now-obsolete POSIX platforms had 'size_t' wider than 'ssize_t'. * Conversely, some now-obsolete platforms had 'ptrdiff_t' wider than 'size_t', which can be a win and conforms to POSIX. Won't this cause a problem with objects larger than PTRDIFF_MAX? * Typical modern or large platforms do not allocate such objects, so this is not much of a problem in practice; for example, you can safely write 'idx_t len = strlen (s);'. To port to older small platforms where allocations larger than PTRDIFF_MAX could in theory be a problem, you can use Gnulib's ialloc module, or functions like ximalloc in Gnulib's xalloc module. Why not use 'ptrdiff_t' directly? * Maintainability: When reading and modifying code, it helps to know that a certain variable cannot have negative values. For example, when you have a loop int n = ...; for (int i = 0; i < n; i++) ... or ptrdiff_t n = ...; for (ptrdiff_t i = 0; i < n; i++) ... you have to ask yourself "what if n < 0?". Whereas in idx_t n = ...; for (idx_t i = 0; i < n; i++) ... you know that this case cannot happen. Similarly, when a programmer writes idx_t = ptr2 - ptr1; there is an implied assertion that ptr1 and ptr2 point into the same object and that ptr1 <= ptr2. * Being future-proof: In the future, range types (integers which are constrained to a certain range of values) may be added to C compilers or to the C standard. Several programming languages (Ada, Haskell, Common Lisp, Pascal) already have range types. Such range types may help producing good code and good warnings. The type 'idx_t' could then be typedef'ed to a range type that is signed after promotion. */ /* In the future, idx_t could be typedef'ed to a signed range type. The clang "extended integer types", supported in Clang 11 or newer <https://clang.llvm.org/docs/LanguageExtensions.html#extended-integer-types>, are a special case of range types. However, these types don't support binary operators with plain integer types (e.g. expressions such as x > 1). Therefore, they don't behave like signed types (and not like unsigned types either). So, we cannot use them here. */ /* Use the signed type 'ptrdiff_t'. */ /* Note: ISO C does not mandate that 'size_t' and 'ptrdiff_t' have the same size, but it is so on all platforms we have seen since 1990. */ typedef ptrdiff_t idx_t; /* IDX_MAX is the maximum value of an idx_t. */ #define IDX_MAX PTRDIFF_MAX /* So far no need has been found for an IDX_WIDTH macro. Perhaps there should be another macro IDX_VALUE_BITS that does not count the sign bit and is therefore one less than PTRDIFF_WIDTH. */ #endif /* _IDX_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/intprops-internal.h�����������������������������������������������������������������0000644�0000000�0000000�00000042555�14374751113�013772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* intprops-internal.h -- properties of integer types not visible to users Copyright (C) 2001-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_INTPROPS_INTERNAL_H #define _GL_INTPROPS_INTERNAL_H #include <limits.h> /* Return a value with the common real type of E and V and the value of V. Do not evaluate E. */ #define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>. */ #define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the real type T is signed. */ #define _GL_TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the real expression E, after promotion, has a signed or floating type. Do not evaluate E. */ #define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. */ /* The width in bits of the integer type or expression T. Do not evaluate T. T must not be a bit-field expression. Padding bits are not supported; this is checked at compile-time below. */ #define _GL_TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) /* The maximum and minimum values for the type of the expression E, after integer promotion. E is not evaluated. */ #define _GL_INT_MINIMUM(e) \ (_GL_EXPR_SIGNED (e) \ ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_CONVERT (e, 0)) #define _GL_INT_MAXIMUM(e) \ (_GL_EXPR_SIGNED (e) \ ? _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_NEGATE_CONVERT (e, 1)) #define _GL_SIGNED_INT_MAXIMUM(e) \ (((_GL_INT_CONVERT (e, 1) << (_GL_TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1) /* Work around OpenVMS incompatibility with C99. */ #if !defined LLONG_MAX && defined __INT64_MAX # define LLONG_MAX __INT64_MAX # define LLONG_MIN __INT64_MIN #endif /* This include file assumes that signed types are two's complement without padding bits; the above macros have undefined behavior otherwise. If this is a problem for you, please let us know how to fix it for your host. This assumption is tested by the intprops-tests module. */ /* Does the __typeof__ keyword work? This could be done by 'configure', but for now it's easier to do it by hand. */ #if (2 <= __GNUC__ \ || (4 <= __clang_major__) \ || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ || (0x5110 <= __SUNPRO_C && !__STDC__)) # define _GL_HAVE___TYPEOF__ 1 #else # define _GL_HAVE___TYPEOF__ 0 #endif /* Return 1 if the integer type or expression T might be signed. Return 0 if it is definitely unsigned. T must not be a bit-field expression. This macro does not evaluate its argument, and expands to an integer constant expression. */ #if _GL_HAVE___TYPEOF__ # define _GL_SIGNED_TYPE_OR_EXPR(t) _GL_TYPE_SIGNED (__typeof__ (t)) #else # define _GL_SIGNED_TYPE_OR_EXPR(t) 1 #endif /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. A should not have side effects, and A's type should be an integer with minimum value MIN and maximum MAX. */ #define _GL_INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ ((min) < 0 ? (a) < - (max) : 0 < (a)) /* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow (A, B, P) work when P is non-null. */ #ifdef __EDG__ /* EDG-based compilers like nvc 22.1 cannot add 64-bit signed to unsigned <https://bugs.gnu.org/53256>. */ # define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 #elif defined __has_builtin # define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) /* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269>. */ #elif 7 <= __GNUC__ # define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 #else # define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 #endif /* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */ #if defined __clang_major__ && __clang_major__ < 14 /* Work around Clang bug <https://bugs.llvm.org/show_bug.cgi?id=16404>. */ # define _GL_HAS_BUILTIN_MUL_OVERFLOW 0 #else # define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW #endif /* True if __builtin_add_overflow_p (A, B, C) works, and similarly for __builtin_sub_overflow_p and __builtin_mul_overflow_p. */ #ifdef __EDG__ /* In EDG-based compilers like ICC 2021.3 and earlier, __builtin_add_overflow_p etc. are not treated as integral constant expressions even when all arguments are. */ # define _GL_HAS_BUILTIN_OVERFLOW_P 0 #elif defined __has_builtin # define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p) #else # define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) #endif #if (!defined _GL_STDCKDINT_H && 202311 <= __STDC_VERSION__ \ && ! (_GL_HAS_BUILTIN_ADD_OVERFLOW && _GL_HAS_BUILTIN_MUL_OVERFLOW)) # include <stdckdint.h> #endif /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. Return 1 if the result overflows. Arguments should not have side effects and A, B and *R can be of any integer type other than char, bool, a bit-precise integer type, or an enumeration type. */ #if _GL_HAS_BUILTIN_ADD_OVERFLOW # define _GL_INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r) # define _GL_INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r) #elif defined ckd_add && defined ckd_sub && !defined _GL_STDCKDINT_H # define _GL_INT_ADD_WRAPV(a, b, r) ckd_add (r, + (a), + (b)) # define _GL_INT_SUBTRACT_WRAPV(a, b, r) ckd_sub (r, + (a), + (b)) #else # define _GL_INT_ADD_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) # define _GL_INT_SUBTRACT_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW) #endif #if _GL_HAS_BUILTIN_MUL_OVERFLOW # if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \ || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \ && !defined __EDG__) # define _GL_INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r) # else /* Work around GCC bug 91450. */ # define _GL_INT_MULTIPLY_WRAPV(a, b, r) \ ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && _GL_EXPR_SIGNED (a) && _GL_EXPR_SIGNED (b) \ && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \ ? ((void) __builtin_mul_overflow (a, b, r), 1) \ : __builtin_mul_overflow (a, b, r)) # endif #elif defined ckd_mul && !defined _GL_STDCKDINT_H # define _GL_INT_MULTIPLY_WRAPV(a, b, r) ckd_mul (r, + (a), + (b)) #else # define _GL_INT_MULTIPLY_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW) #endif /* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 https://llvm.org/bugs/show_bug.cgi?id=25390 For now, assume all versions of GCC-like compilers generate bogus warnings for _Generic. This matters only for compilers that lack relevant builtins. */ #if __GNUC__ || defined __clang__ # define _GL__GENERIC_BOGUS 1 #else # define _GL__GENERIC_BOGUS 0 #endif /* Store the low-order bits of A <op> B into *R, where OP specifies the operation and OVERFLOW the overflow predicate. Return 1 if the result overflows. Arguments should not have side effects, and A, B and *R can be of any integer type other than char, bool, a bit-precise integer type, or an enumeration type. */ #if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS # define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ (_Generic \ (*(r), \ signed char: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ signed char, SCHAR_MIN, SCHAR_MAX), \ unsigned char: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ unsigned char, 0, UCHAR_MAX), \ short int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ short int, SHRT_MIN, SHRT_MAX), \ unsigned short int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ unsigned short int, 0, USHRT_MAX), \ int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX), \ unsigned int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ unsigned int, 0, UINT_MAX), \ long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX), \ unsigned long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ unsigned long int, 0, ULONG_MAX), \ long long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ long long int, LLONG_MIN, LLONG_MAX), \ unsigned long long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ unsigned long long int, 0, ULLONG_MAX))) #else /* Store the low-order bits of A <op> B into *R, where OP specifies the operation and OVERFLOW the overflow predicate. If *R is signed, its type is ST with bounds SMIN..SMAX; otherwise its type is UT with bounds U..UMAX. ST and UT are narrower than int. Return 1 if the result overflows. Arguments should not have side effects, and A, B and *R can be of any integer type other than char, bool, a bit-precise integer type, or an enumeration type. */ # if _GL_HAVE___TYPEOF__ # define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ (_GL_TYPE_SIGNED (__typeof__ (*(r))) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax)) # else # define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ (overflow (a, b, smin, smax) \ ? (overflow (a, b, 0, umax) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \ : (overflow (a, b, 0, umax) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0))) # endif # define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ (sizeof *(r) == sizeof (signed char) \ ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ signed char, SCHAR_MIN, SCHAR_MAX, \ unsigned char, UCHAR_MAX) \ : sizeof *(r) == sizeof (short int) \ ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ short int, SHRT_MIN, SHRT_MAX, \ unsigned short int, USHRT_MAX) \ : sizeof *(r) == sizeof (int) \ ? (_GL_EXPR_SIGNED (*(r)) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ unsigned int, 0, UINT_MAX)) \ : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) # ifdef LLONG_MAX # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ (sizeof *(r) == sizeof (long int) \ ? (_GL_EXPR_SIGNED (*(r)) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ unsigned long int, 0, ULONG_MAX)) \ : (_GL_EXPR_SIGNED (*(r)) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ long long int, LLONG_MIN, LLONG_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ unsigned long long int, 0, ULLONG_MAX))) # else # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ (_GL_EXPR_SIGNED (*(r)) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ unsigned long int, 0, ULONG_MAX)) # endif #endif /* Store the low-order bits of A <op> B into *R, where the operation is given by OP. Use the unsigned type UT for calculation to avoid overflow problems. *R's type is T, with extrema TMIN and TMAX. T can be any signed integer type other than char, bool, a bit-precise integer type, or an enumeration type. Return 1 if the result overflows. */ #define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ (overflow (a, b, tmin, tmax) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) /* Return 1 if the integer expressions A - B and -A would overflow, respectively. Arguments should not have side effects, and can be any signed integer type other than char, bool, a bit-precise integer type, or an enumeration type. These macros are tuned for their last input argument being a constant. */ #if _GL_HAS_BUILTIN_OVERFLOW_P # define _GL_INT_NEGATE_OVERFLOW(a) \ __builtin_sub_overflow_p (0, a, (__typeof__ (- (a))) 0) #else # define _GL_INT_NEGATE_OVERFLOW(a) \ _GL_INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #endif /* Return the low-order bits of A <op> B, where the operation is given by OP. Use the unsigned type UT for calculation to avoid undefined behavior on signed integer overflow, and convert the result to type T. UT is at least as wide as T and is no narrower than unsigned int, T is two's complement, and there is no padding or trap representations. Assume that converting UT to T yields the low-order bits, as is done in all known two's-complement C compilers. E.g., see: https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html According to the C standard, converting UT to T yields an implementation-defined result or signal for values outside T's range. However, code that works around this theoretical problem runs afoul of a compiler bug in Oracle Studio 12.3 x86. See: https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html As the compiler bug is real, don't try to work around the theoretical problem. */ #define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ ((t) ((ut) (a) op (ut) (b))) /* Return true if the numeric values A + B, A - B, A * B fall outside the range TMIN..TMAX. Arguments should not have side effects and can be any integer type other than char, bool, a bit-precise integer type, or an enumeration type. TMIN should be signed and nonpositive. TMAX should be positive, and should be signed unless TMIN is zero. */ #define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \ ((b) < 0 \ ? (((tmin) \ ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \ && (a) < (tmin) - (b)) \ : (a) <= -1 - (b)) \ || ((_GL_EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \ : (a) < 0 \ ? (((tmin) \ ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \ && (b) < (tmin) - (a)) \ : (b) <= -1 - (a)) \ || ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \ && (tmax) < (a) + (b))) \ : (tmax) < (b) || (tmax) - (b) < (a)) #define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \ (((a) < 0) == ((b) < 0) \ ? ((a) < (b) \ ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \ : (tmax) < (a) - (b)) \ : (a) < 0 \ ? ((!_GL_EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \ || (a) - (tmin) < (b)) \ : ((! (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ && _GL_EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \ && (tmax) <= -1 - (b)) \ || (tmax) + (b) < (a))) #define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \ ((b) < 0 \ ? ((a) < 0 \ ? (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ ? (a) < (tmax) / (b) \ : ((_GL_INT_NEGATE_OVERFLOW (b) \ ? _GL_INT_CONVERT (b, tmax) >> (_GL_TYPE_WIDTH (+ (b)) - 1) \ : (tmax) / -(b)) \ <= -1 - (a))) \ : _GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \ ? (_GL_EXPR_SIGNED (a) \ ? 0 < (a) + (tmin) \ : 0 < (a) && -1 - (tmin) < (a) - 1) \ : (tmin) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (_GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \ ? (_GL_EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \ : (tmin) / (a) < (b)) \ : (tmax) / (b) < (a))) #endif /* _GL_INTPROPS_INTERNAL_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/intprops.h��������������������������������������������������������������������������0000644�0000000�0000000�00000036250�14374751113�012153� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* intprops.h -- properties of integer types Copyright (C) 2001-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H #include "intprops-internal.h" /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if the real type T is signed. */ #define TYPE_SIGNED(t) _GL_TYPE_SIGNED (t) /* Return 1 if the real expression E, after promotion, has a signed or floating type. Do not evaluate E. */ #define EXPR_SIGNED(e) _GL_EXPR_SIGNED (e) /* Minimum and maximum values for integer types and expressions. */ /* The width in bits of the integer type or expression T. Do not evaluate T. T must not be a bit-field expression. Padding bits are not supported; this is checked at compile-time below. */ #define TYPE_WIDTH(t) _GL_TYPE_WIDTH (t) /* The maximum and minimum values for the integer type T. */ #define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. T must not be a bit-field expression. Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is unsigned, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. T must not be a bit-field expression. */ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) /* Range overflow checks. The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C operators overflow arithmetically when given the same arguments. These macros do not rely on undefined or implementation-defined behavior. Although their implementations are simple and straightforward, they are harder to use and may be less efficient than the INT_<op>_WRAPV, INT_<op>_OK, and INT_<op>_OVERFLOW macros described below. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); Restrictions on *_RANGE_OVERFLOW macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The arithmetic arguments (including the MIN and MAX arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value MIN and maximum MAX. Unsigned types should use a zero MIN of the proper type. Because all arguments are subject to integer promotions, these macros typically do not work on types narrower than 'int'. These macros are tuned for constant MIN and MAX. For commutative operations such as A + B, they are also tuned for constant B. */ /* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (a) < (min) - (b) \ : (max) - (b) < (a)) /* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (max) + (b) < (a) \ : (a) < (min) + (b)) /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ _GL_INT_NEGATE_RANGE_OVERFLOW (a, min, max) /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Avoid && and || as they tickle bugs in Sun C 5.11 2010/08/13 and other compilers; see <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>. */ #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? ((a) < 0 \ ? (a) < (max) / (b) \ : (b) == -1 \ ? 0 \ : (min) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (a) < (min) / (b) \ : (max) / (b) < (a))) /* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. */ #define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ ((min) < 0 && (b) == -1 && (a) < - (max)) /* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. Mathematically, % should never overflow, but on x86-like hosts INT_MIN % -1 traps, and the C standard permits this, so treat this as an overflow too. */ #define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) /* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Here, MIN and MAX are for A only, and B need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0 <= B < wordwidth, and that when A is negative then A << B has undefined behavior and A >> B has implementation-defined behavior, but do not check these other restrictions. */ #define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ ((a) < 0 \ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) /* The _GL*_OVERFLOW macros have the same restrictions as the *_RANGE_OVERFLOW macros, except that they do not assume that operands (e.g., A and B) have the same type as MIN and MAX. Instead, they assume that the result (e.g., A + B) has that type. */ #if _GL_HAS_BUILTIN_OVERFLOW_P # define _GL_ADD_OVERFLOW(a, b, min, max) \ __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0) # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0) # define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0) #else # define _GL_ADD_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? (b) <= (a) + (b) \ : (b) < 0 ? (a) <= (a) + (b) \ : (a) + (b) < (b)) # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? 1 \ : (b) < 0 ? (a) - (b) <= (a) \ : (a) < (b)) # define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) #endif #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (b) <= (a) + (b) - 1 \ : (b) < 0 && (a) + (b) <= (a)) #define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) /* Return a nonzero value if A is a mathematical multiple of B, where A is unsigned, B is negative, and MAX is the maximum value of A's type. A's type must be the same as (A % B)'s type. Normally (A % -B == 0) suffices, but things get tricky if -B would overflow. */ #define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ ? (a) \ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ : (a) % - (b)) \ == 0) /* Check for integer overflow, and report low order bits of answer. The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. The INT_<op>_WRAPV macros compute the low-order bits of the sum, difference, and product of two C integers, and return 1 if these low-order bits are not numerically correct. These macros work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. Example usage, assuming A and B are long int: if (INT_MULTIPLY_OVERFLOW (a, b)) printf ("result would overflow\n"); else printf ("result is %ld (no overflow)\n", a * b); Example usage with WRAPV flavor: long int result; bool overflow = INT_MULTIPLY_WRAPV (a, b, &result); printf ("result is %ld (%s)\n", result, overflow ? "after overflow" : "no overflow"); Restrictions on these macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The WRAPV macros are not constant expressions. They support only +, binary -, and *. Because the WRAPV macros convert the result, they report overflow in different circumstances than the OVERFLOW macros do. For example, in the typical case with 16-bit 'short' and 32-bit 'int', if A, B and *R are all of type 'short' then INT_ADD_OVERFLOW (A, B) returns false because the addition cannot overflow after A and B are converted to 'int', whereas INT_ADD_WRAPV (A, B, R) returns true or false depending on whether the sum fits into 'short'. These macros are tuned for their last input argument being a constant. A, B, and *R should be integers; they need not be the same type, and they need not be all signed or all unsigned. However, none of the integer types should be bit-precise, and *R's type should not be char, bool, or an enumeration type. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ #define INT_ADD_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) #define INT_SUBTRACT_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) #define INT_NEGATE_OVERFLOW(a) _GL_INT_NEGATE_OVERFLOW (a) #define INT_MULTIPLY_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) #define INT_DIVIDE_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) #define INT_REMAINDER_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) #define INT_LEFT_SHIFT_OVERFLOW(a, b) \ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) /* Return 1 if the expression A <op> B would overflow, where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, assuming MIN and MAX are the minimum and maximum for the result type. Arguments should be free of side effects. */ #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ op_result_overflow (a, b, \ _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \ _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b))) /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. Return 1 if the result overflows. See above for restrictions. */ #define INT_ADD_WRAPV(a, b, r) _GL_INT_ADD_WRAPV (a, b, r) #define INT_SUBTRACT_WRAPV(a, b, r) _GL_INT_SUBTRACT_WRAPV (a, b, r) #define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r) /* The following macros compute A + B, A - B, and A * B, respectively. If no overflow occurs, they set *R to the result and return 1; otherwise, they return 0 and may modify *R. Example usage: long int result; if (INT_ADD_OK (a, b, &result)) printf ("result is %ld\n", result); else printf ("overflow\n"); A, B, and *R should be integers; they need not be the same type, and they need not be all signed or all unsigned. However, none of the integer types should be bit-precise, and *R's type should not be char, bool, or an enumeration type. These macros work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. These macros are not constant expressions. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. These macros are tuned for B being a constant. */ #define INT_ADD_OK(a, b, r) (! INT_ADD_WRAPV (a, b, r)) #define INT_SUBTRACT_OK(a, b, r) (! INT_SUBTRACT_WRAPV (a, b, r)) #define INT_MULTIPLY_OK(a, b, r) (! INT_MULTIPLY_WRAPV (a, b, r)) #endif /* _GL_INTPROPS_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/inttypes.in.h�����������������������������������������������������������������������0000644�0000000�0000000�00000052741�14374751113�012564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2006-2023 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Derek Price. This file is part of gnulib. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* * ISO C 99 <inttypes.h> for platforms that lack it. * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html> */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Include the original <inttypes.h> if it exists, and if this file has not been included yet or if this file includes gnulib stdint.h which in turn includes this file. The include_next requires a split double-inclusion guard. */ #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H # if @HAVE_INTTYPES_H@ /* Some pre-C++11 <stdint.h> implementations need this. */ # if defined __cplusplus && ! defined __STDC_FORMAT_MACROS # define __STDC_FORMAT_MACROS 1 # endif # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ # define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H # endif #endif #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H #define INTTYPES_H /* Include <stdint.h> or the gnulib replacement. But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include <stdint.h> #endif /* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ #include <limits.h> /* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */ #if defined _WIN32 && ! defined __CYGWIN__ # include <stdio.h> #endif #if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) # error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to <bug-gnulib@gnu.org>." #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* 7.8.1 Macros for format specifiers */ #if defined _TNS_R_TARGET /* Tandem NonStop R series and compatible platforms released before July 2005 support %Ld but not %lld. */ # define _LONG_LONG_FORMAT_PREFIX "L" #else # define _LONG_LONG_FORMAT_PREFIX "ll" #endif #if !defined PRId8 # ifdef INT8_MAX # define PRId8 "d" # endif #endif #if !defined PRIi8 # ifdef INT8_MAX # define PRIi8 "i" # endif #endif #if !defined PRIo8 # ifdef UINT8_MAX # define PRIo8 "o" # endif #endif #if !defined PRIu8 # ifdef UINT8_MAX # define PRIu8 "u" # endif #endif #if !defined PRIx8 # ifdef UINT8_MAX # define PRIx8 "x" # endif #endif #if !defined PRIX8 # ifdef UINT8_MAX # define PRIX8 "X" # endif #endif #if !defined PRId16 # ifdef INT16_MAX # define PRId16 "d" # endif #endif #if !defined PRIi16 # ifdef INT16_MAX # define PRIi16 "i" # endif #endif #if !defined PRIo16 # ifdef UINT16_MAX # define PRIo16 "o" # endif #endif #if !defined PRIu16 # ifdef UINT16_MAX # define PRIu16 "u" # endif #endif #if !defined PRIx16 # ifdef UINT16_MAX # define PRIx16 "x" # endif #endif #if !defined PRIX16 # ifdef UINT16_MAX # define PRIX16 "X" # endif #endif #if !defined PRId32 # ifdef INT32_MAX # define PRId32 "d" # endif #endif #if !defined PRIi32 # ifdef INT32_MAX # define PRIi32 "i" # endif #endif #if !defined PRIo32 # ifdef UINT32_MAX # define PRIo32 "o" # endif #endif #if !defined PRIu32 # ifdef UINT32_MAX # define PRIu32 "u" # endif #endif #if !defined PRIx32 # ifdef UINT32_MAX # define PRIx32 "x" # endif #endif #if !defined PRIX32 # ifdef UINT32_MAX # define PRIX32 "X" # endif #endif #ifdef INT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _PRI64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRI64_PREFIX "I64" # elif LONG_MAX >> 30 == 1 # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined PRId64 # define PRId64 _PRI64_PREFIX "d" # endif # if !defined PRIi64 # define PRIi64 _PRI64_PREFIX "i" # endif #endif #ifdef UINT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _PRIu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRIu64_PREFIX "I64" # elif ULONG_MAX >> 31 == 1 # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined PRIo64 # define PRIo64 _PRIu64_PREFIX "o" # endif # if !defined PRIu64 # define PRIu64 _PRIu64_PREFIX "u" # endif # if !defined PRIx64 # define PRIx64 _PRIu64_PREFIX "x" # endif # if !defined PRIX64 # define PRIX64 _PRIu64_PREFIX "X" # endif #endif #if !defined PRIdLEAST8 # define PRIdLEAST8 "d" #endif #if !defined PRIiLEAST8 # define PRIiLEAST8 "i" #endif #if !defined PRIoLEAST8 # define PRIoLEAST8 "o" #endif #if !defined PRIuLEAST8 # define PRIuLEAST8 "u" #endif #if !defined PRIxLEAST8 # define PRIxLEAST8 "x" #endif #if !defined PRIXLEAST8 # define PRIXLEAST8 "X" #endif #if !defined PRIdLEAST16 # define PRIdLEAST16 "d" #endif #if !defined PRIiLEAST16 # define PRIiLEAST16 "i" #endif #if !defined PRIoLEAST16 # define PRIoLEAST16 "o" #endif #if !defined PRIuLEAST16 # define PRIuLEAST16 "u" #endif #if !defined PRIxLEAST16 # define PRIxLEAST16 "x" #endif #if !defined PRIXLEAST16 # define PRIXLEAST16 "X" #endif #if !defined PRIdLEAST32 # define PRIdLEAST32 "d" #endif #if !defined PRIiLEAST32 # define PRIiLEAST32 "i" #endif #if !defined PRIoLEAST32 # define PRIoLEAST32 "o" #endif #if !defined PRIuLEAST32 # define PRIuLEAST32 "u" #endif #if !defined PRIxLEAST32 # define PRIxLEAST32 "x" #endif #if !defined PRIXLEAST32 # define PRIXLEAST32 "X" #endif #ifdef INT64_MAX # if !defined PRIdLEAST64 # define PRIdLEAST64 PRId64 # endif # if !defined PRIiLEAST64 # define PRIiLEAST64 PRIi64 # endif #endif #ifdef UINT64_MAX # if !defined PRIoLEAST64 # define PRIoLEAST64 PRIo64 # endif # if !defined PRIuLEAST64 # define PRIuLEAST64 PRIu64 # endif # if !defined PRIxLEAST64 # define PRIxLEAST64 PRIx64 # endif # if !defined PRIXLEAST64 # define PRIXLEAST64 PRIX64 # endif #endif #if !defined PRIdFAST8 # if INT_FAST8_MAX > INT32_MAX # define PRIdFAST8 PRId64 # else # define PRIdFAST8 "d" # endif #endif #if !defined PRIiFAST8 # if INT_FAST8_MAX > INT32_MAX # define PRIiFAST8 PRIi64 # else # define PRIiFAST8 "i" # endif #endif #if !defined PRIoFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIoFAST8 PRIo64 # else # define PRIoFAST8 "o" # endif #endif #if !defined PRIuFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIuFAST8 PRIu64 # else # define PRIuFAST8 "u" # endif #endif #if !defined PRIxFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIxFAST8 PRIx64 # else # define PRIxFAST8 "x" # endif #endif #if !defined PRIXFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIXFAST8 PRIX64 # else # define PRIXFAST8 "X" # endif #endif #if !defined PRIdFAST16 # if INT_FAST16_MAX > INT32_MAX # define PRIdFAST16 PRId64 # else # define PRIdFAST16 "d" # endif #endif #if !defined PRIiFAST16 # if INT_FAST16_MAX > INT32_MAX # define PRIiFAST16 PRIi64 # else # define PRIiFAST16 "i" # endif #endif #if !defined PRIoFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIoFAST16 PRIo64 # else # define PRIoFAST16 "o" # endif #endif #if !defined PRIuFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIuFAST16 PRIu64 # else # define PRIuFAST16 "u" # endif #endif #if !defined PRIxFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIxFAST16 PRIx64 # else # define PRIxFAST16 "x" # endif #endif #if !defined PRIXFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIXFAST16 PRIX64 # else # define PRIXFAST16 "X" # endif #endif #if !defined PRIdFAST32 # if INT_FAST32_MAX > INT32_MAX # define PRIdFAST32 PRId64 # else # define PRIdFAST32 "d" # endif #endif #if !defined PRIiFAST32 # if INT_FAST32_MAX > INT32_MAX # define PRIiFAST32 PRIi64 # else # define PRIiFAST32 "i" # endif #endif #if !defined PRIoFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIoFAST32 PRIo64 # else # define PRIoFAST32 "o" # endif #endif #if !defined PRIuFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIuFAST32 PRIu64 # else # define PRIuFAST32 "u" # endif #endif #if !defined PRIxFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIxFAST32 PRIx64 # else # define PRIxFAST32 "x" # endif #endif #if !defined PRIXFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIXFAST32 PRIX64 # else # define PRIXFAST32 "X" # endif #endif #ifdef INT64_MAX # if !defined PRIdFAST64 # define PRIdFAST64 PRId64 # endif # if !defined PRIiFAST64 # define PRIiFAST64 PRIi64 # endif #endif #ifdef UINT64_MAX # if !defined PRIoFAST64 # define PRIoFAST64 PRIo64 # endif # if !defined PRIuFAST64 # define PRIuFAST64 PRIu64 # endif # if !defined PRIxFAST64 # define PRIxFAST64 PRIx64 # endif # if !defined PRIXFAST64 # define PRIXFAST64 PRIX64 # endif #endif #if !defined PRIdMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define PRIdMAX PRId64 # else # define PRIdMAX "ld" # endif #endif #if !defined PRIiMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define PRIiMAX PRIi64 # else # define PRIiMAX "li" # endif #endif #if !defined PRIoMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIoMAX PRIo64 # else # define PRIoMAX "lo" # endif #endif #if !defined PRIuMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIuMAX PRIu64 # else # define PRIuMAX "lu" # endif #endif #if !defined PRIxMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIxMAX PRIx64 # else # define PRIxMAX "lx" # endif #endif #if !defined PRIXMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIXMAX PRIX64 # else # define PRIXMAX "lX" # endif #endif #if !defined PRIdPTR # ifdef INTPTR_MAX # define PRIdPTR @PRIPTR_PREFIX@ "d" # endif #endif #if !defined PRIiPTR # ifdef INTPTR_MAX # define PRIiPTR @PRIPTR_PREFIX@ "i" # endif #endif #if !defined PRIoPTR # ifdef UINTPTR_MAX # define PRIoPTR @PRIPTR_PREFIX@ "o" # endif #endif #if !defined PRIuPTR # ifdef UINTPTR_MAX # define PRIuPTR @PRIPTR_PREFIX@ "u" # endif #endif #if !defined PRIxPTR # ifdef UINTPTR_MAX # define PRIxPTR @PRIPTR_PREFIX@ "x" # endif #endif #if !defined PRIXPTR # ifdef UINTPTR_MAX # define PRIXPTR @PRIPTR_PREFIX@ "X" # endif #endif #if !defined SCNd8 # ifdef INT8_MAX # define SCNd8 "hhd" # endif #endif #if !defined SCNi8 # ifdef INT8_MAX # define SCNi8 "hhi" # endif #endif #if !defined SCNo8 # ifdef UINT8_MAX # define SCNo8 "hho" # endif #endif #if !defined SCNu8 # ifdef UINT8_MAX # define SCNu8 "hhu" # endif #endif #if !defined SCNx8 # ifdef UINT8_MAX # define SCNx8 "hhx" # endif #endif #if !defined SCNd16 # ifdef INT16_MAX # define SCNd16 "hd" # endif #endif #if !defined SCNi16 # ifdef INT16_MAX # define SCNi16 "hi" # endif #endif #if !defined SCNo16 # ifdef UINT16_MAX # define SCNo16 "ho" # endif #endif #if !defined SCNu16 # ifdef UINT16_MAX # define SCNu16 "hu" # endif #endif #if !defined SCNx16 # ifdef UINT16_MAX # define SCNx16 "hx" # endif #endif #if !defined SCNd32 # ifdef INT32_MAX # define SCNd32 "d" # endif #endif #if !defined SCNi32 # ifdef INT32_MAX # define SCNi32 "i" # endif #endif #if !defined SCNo32 # ifdef UINT32_MAX # define SCNo32 "o" # endif #endif #if !defined SCNu32 # ifdef UINT32_MAX # define SCNu32 "u" # endif #endif #if !defined SCNx32 # ifdef UINT32_MAX # define SCNx32 "x" # endif #endif #ifdef INT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _SCN64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCN64_PREFIX "I64" # elif LONG_MAX >> 30 == 1 # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined SCNd64 # define SCNd64 _SCN64_PREFIX "d" # endif # if !defined SCNi64 # define SCNi64 _SCN64_PREFIX "i" # endif #endif #ifdef UINT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _SCNu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCNu64_PREFIX "I64" # elif ULONG_MAX >> 31 == 1 # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined SCNo64 # define SCNo64 _SCNu64_PREFIX "o" # endif # if !defined SCNu64 # define SCNu64 _SCNu64_PREFIX "u" # endif # if !defined SCNx64 # define SCNx64 _SCNu64_PREFIX "x" # endif #endif #if !defined SCNdLEAST8 # define SCNdLEAST8 "hhd" #endif #if !defined SCNiLEAST8 # define SCNiLEAST8 "hhi" #endif #if !defined SCNoLEAST8 # define SCNoLEAST8 "hho" #endif #if !defined SCNuLEAST8 # define SCNuLEAST8 "hhu" #endif #if !defined SCNxLEAST8 # define SCNxLEAST8 "hhx" #endif #if !defined SCNdLEAST16 # define SCNdLEAST16 "hd" #endif #if !defined SCNiLEAST16 # define SCNiLEAST16 "hi" #endif #if !defined SCNoLEAST16 # define SCNoLEAST16 "ho" #endif #if !defined SCNuLEAST16 # define SCNuLEAST16 "hu" #endif #if !defined SCNxLEAST16 # define SCNxLEAST16 "hx" #endif #if !defined SCNdLEAST32 # define SCNdLEAST32 "d" #endif #if !defined SCNiLEAST32 # define SCNiLEAST32 "i" #endif #if !defined SCNoLEAST32 # define SCNoLEAST32 "o" #endif #if !defined SCNuLEAST32 # define SCNuLEAST32 "u" #endif #if !defined SCNxLEAST32 # define SCNxLEAST32 "x" #endif #ifdef INT64_MAX # if !defined SCNdLEAST64 # define SCNdLEAST64 SCNd64 # endif # if !defined SCNiLEAST64 # define SCNiLEAST64 SCNi64 # endif #endif #ifdef UINT64_MAX # if !defined SCNoLEAST64 # define SCNoLEAST64 SCNo64 # endif # if !defined SCNuLEAST64 # define SCNuLEAST64 SCNu64 # endif # if !defined SCNxLEAST64 # define SCNxLEAST64 SCNx64 # endif #endif #if !defined SCNdFAST8 # if INT_FAST8_MAX > INT32_MAX # define SCNdFAST8 SCNd64 # elif INT_FAST8_MAX == 0x7fff # define SCNdFAST8 "hd" # elif INT_FAST8_MAX == 0x7f # define SCNdFAST8 "hhd" # else # define SCNdFAST8 "d" # endif #endif #if !defined SCNiFAST8 # if INT_FAST8_MAX > INT32_MAX # define SCNiFAST8 SCNi64 # elif INT_FAST8_MAX == 0x7fff # define SCNiFAST8 "hi" # elif INT_FAST8_MAX == 0x7f # define SCNiFAST8 "hhi" # else # define SCNiFAST8 "i" # endif #endif #if !defined SCNoFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNoFAST8 SCNo64 # elif UINT_FAST8_MAX == 0xffff # define SCNoFAST8 "ho" # elif UINT_FAST8_MAX == 0xff # define SCNoFAST8 "hho" # else # define SCNoFAST8 "o" # endif #endif #if !defined SCNuFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNuFAST8 SCNu64 # elif UINT_FAST8_MAX == 0xffff # define SCNuFAST8 "hu" # elif UINT_FAST8_MAX == 0xff # define SCNuFAST8 "hhu" # else # define SCNuFAST8 "u" # endif #endif #if !defined SCNxFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNxFAST8 SCNx64 # elif UINT_FAST8_MAX == 0xffff # define SCNxFAST8 "hx" # elif UINT_FAST8_MAX == 0xff # define SCNxFAST8 "hhx" # else # define SCNxFAST8 "x" # endif #endif #if !defined SCNdFAST16 # if INT_FAST16_MAX > INT32_MAX # define SCNdFAST16 SCNd64 # elif INT_FAST16_MAX == 0x7fff # define SCNdFAST16 "hd" # else # define SCNdFAST16 "d" # endif #endif #if !defined SCNiFAST16 # if INT_FAST16_MAX > INT32_MAX # define SCNiFAST16 SCNi64 # elif INT_FAST16_MAX == 0x7fff # define SCNiFAST16 "hi" # else # define SCNiFAST16 "i" # endif #endif #if !defined SCNoFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNoFAST16 SCNo64 # elif UINT_FAST16_MAX == 0xffff # define SCNoFAST16 "ho" # else # define SCNoFAST16 "o" # endif #endif #if !defined SCNuFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNuFAST16 SCNu64 # elif UINT_FAST16_MAX == 0xffff # define SCNuFAST16 "hu" # else # define SCNuFAST16 "u" # endif #endif #if !defined SCNxFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNxFAST16 SCNx64 # elif UINT_FAST16_MAX == 0xffff # define SCNxFAST16 "hx" # else # define SCNxFAST16 "x" # endif #endif #if !defined SCNdFAST32 # if INT_FAST32_MAX > INT32_MAX # define SCNdFAST32 SCNd64 # else # define SCNdFAST32 "d" # endif #endif #if !defined SCNiFAST32 # if INT_FAST32_MAX > INT32_MAX # define SCNiFAST32 SCNi64 # else # define SCNiFAST32 "i" # endif #endif #if !defined SCNoFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNoFAST32 SCNo64 # else # define SCNoFAST32 "o" # endif #endif #if !defined SCNuFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNuFAST32 SCNu64 # else # define SCNuFAST32 "u" # endif #endif #if !defined SCNxFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNxFAST32 SCNx64 # else # define SCNxFAST32 "x" # endif #endif #ifdef INT64_MAX # if !defined SCNdFAST64 # define SCNdFAST64 SCNd64 # endif # if !defined SCNiFAST64 # define SCNiFAST64 SCNi64 # endif #endif #ifdef UINT64_MAX # if !defined SCNoFAST64 # define SCNoFAST64 SCNo64 # endif # if !defined SCNuFAST64 # define SCNuFAST64 SCNu64 # endif # if !defined SCNxFAST64 # define SCNxFAST64 SCNx64 # endif #endif #if !defined SCNdMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define SCNdMAX SCNd64 # else # define SCNdMAX "ld" # endif #endif #if !defined SCNiMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define SCNiMAX SCNi64 # else # define SCNiMAX "li" # endif #endif #if !defined SCNoMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNoMAX SCNo64 # else # define SCNoMAX "lo" # endif #endif #if !defined SCNuMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNuMAX SCNu64 # else # define SCNuMAX "lu" # endif #endif #if !defined SCNxMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNxMAX SCNx64 # else # define SCNxMAX "lx" # endif #endif #if !defined SCNdPTR # ifdef INTPTR_MAX # define SCNdPTR @PRIPTR_PREFIX@ "d" # endif #endif #if !defined SCNiPTR # ifdef INTPTR_MAX # define SCNiPTR @PRIPTR_PREFIX@ "i" # endif #endif #if !defined SCNoPTR # ifdef UINTPTR_MAX # define SCNoPTR @PRIPTR_PREFIX@ "o" # endif #endif #if !defined SCNuPTR # ifdef UINTPTR_MAX # define SCNuPTR @PRIPTR_PREFIX@ "u" # endif #endif #if !defined SCNxPTR # ifdef UINTPTR_MAX # define SCNxPTR @PRIPTR_PREFIX@ "x" # endif #endif /* 7.8.2 Functions for greatest-width integer types */ #ifdef __cplusplus extern "C" { #endif #if @GNULIB_IMAXABS@ # if @REPLACE_IMAXABS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef imaxabs # define imaxabs rpl_imaxabs # endif _GL_FUNCDECL_RPL (imaxabs, intmax_t, (intmax_t x)); _GL_CXXALIAS_RPL (imaxabs, intmax_t, (intmax_t x)); # else # if !@HAVE_DECL_IMAXABS@ _GL_FUNCDECL_SYS (imaxabs, intmax_t, (intmax_t x)); # endif _GL_CXXALIAS_SYS (imaxabs, intmax_t, (intmax_t x)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (imaxabs); # endif #elif defined GNULIB_POSIXCHECK # undef imaxabs # if HAVE_RAW_DECL_IMAXABS _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " "use gnulib module imaxabs for portability"); # endif #endif #if @GNULIB_IMAXDIV@ # if !@HAVE_IMAXDIV_T@ # if !GNULIB_defined_imaxdiv_t typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; # define GNULIB_defined_imaxdiv_t 1 # endif # endif # if @REPLACE_IMAXDIV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef imaxdiv # define imaxdiv rpl_imaxdiv # endif _GL_FUNCDECL_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom)); _GL_CXXALIAS_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom)); # else # if !@HAVE_DECL_IMAXDIV@ _GL_FUNCDECL_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom)); # endif _GL_CXXALIAS_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (imaxdiv); # endif #elif defined GNULIB_POSIXCHECK # undef imaxdiv # if HAVE_RAW_DECL_IMAXDIV _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " "use gnulib module imaxdiv for portability"); # endif #endif #if @GNULIB_STRTOIMAX@ # if @REPLACE_STRTOIMAX@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtoimax # define strtoimax rpl_strtoimax # endif _GL_FUNCDECL_RPL (strtoimax, intmax_t, (const char *restrict, char **restrict, int) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *restrict, char **restrict, int)); # else # if !@HAVE_DECL_STRTOIMAX@ # undef strtoimax _GL_FUNCDECL_SYS (strtoimax, intmax_t, (const char *restrict, char **restrict, int) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *restrict, char **restrict, int)); # endif _GL_CXXALIASWARN (strtoimax); #elif defined GNULIB_POSIXCHECK # undef strtoimax # if HAVE_RAW_DECL_STRTOIMAX _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " "use gnulib module strtoimax for portability"); # endif #endif #if @GNULIB_STRTOUMAX@ # if @REPLACE_STRTOUMAX@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtoumax # define strtoumax rpl_strtoumax # endif _GL_FUNCDECL_RPL (strtoumax, uintmax_t, (const char *restrict, char **restrict, int) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoumax, uintmax_t, (const char *restrict, char **restrict, int)); # else # if !@HAVE_DECL_STRTOUMAX@ # undef strtoumax _GL_FUNCDECL_SYS (strtoumax, uintmax_t, (const char *restrict, char **restrict, int) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *restrict, char **restrict, int)); # endif _GL_CXXALIASWARN (strtoumax); #elif defined GNULIB_POSIXCHECK # undef strtoumax # if HAVE_RAW_DECL_STRTOUMAX _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " "use gnulib module strtoumax for portability"); # endif #endif /* Don't bother defining or declaring wcstoimax and wcstoumax, since wide-character functions like this are hardly ever useful. */ #ifdef __cplusplus } #endif #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ �������������������������������a2ps-4.15.5/lib/isdir.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000002071�14374751113�011374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* isdir.c -- determine whether a directory exists Copyright (C) 1990, 1998, 2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "isdir.h" #include <sys/types.h> #include <sys/stat.h> /* If PATH is an existing directory or symbolic link to a directory, return nonzero, else 0. */ int isdir (const char *path) { struct stat stats; return stat (path, &stats) == 0 && S_ISDIR (stats.st_mode); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/isdir.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000001405�14374751113�011401� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine whether a directory exists. Copyright (C) 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ int isdir (const char *path); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/lc-charset-dispatch.c���������������������������������������������������������������0000644�0000000�0000000�00000005220�14374751113�014103� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Dispatching based on the current locale's character encoding. Copyright (C) 2018-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2018. */ #include <config.h> /* Specification. */ #include "lc-charset-dispatch.h" #if GNULIB_defined_mbstate_t # include "localcharset.h" # include "streq.h" # if GNULIB_WCHAR_SINGLE_LOCALE /* When we know that the locale does not change, provide a speedup by caching the value of locale_encoding_classification. */ # define locale_encoding_classification_cached locale_encoding_classification # else /* By default, don't make assumptions, hence no caching. */ # define locale_encoding_classification_uncached locale_encoding_classification # endif # if GNULIB_WCHAR_SINGLE_LOCALE static inline # endif enc_t locale_encoding_classification_uncached (void) { const char *encoding = locale_charset (); if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) return enc_utf8; if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) return enc_eucjp; if (STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) return enc_94; if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) return enc_euctw; if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) return enc_gb18030; if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) return enc_sjis; return enc_other; } # if GNULIB_WCHAR_SINGLE_LOCALE static int cached_locale_enc = -1; enc_t locale_encoding_classification_cached (void) { if (cached_locale_enc < 0) cached_locale_enc = locale_encoding_classification_uncached (); return cached_locale_enc; } # endif #else /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/lc-charset-dispatch.h���������������������������������������������������������������0000644�0000000�0000000�00000002572�14374751113�014117� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Dispatching based on the current locale's character encoding. Copyright (C) 2018-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2018. */ #include <wchar.h> #if GNULIB_defined_mbstate_t /* A classification of special values of the encoding of the current locale. */ typedef enum { enc_other, /* other */ enc_utf8, /* UTF-8 */ enc_eucjp, /* EUC-JP */ enc_94, /* EUC-KR, GB2312, BIG5 */ enc_euctw, /* EUC-TW */ enc_gb18030, /* GB18030 */ enc_sjis /* SJIS */ } enc_t; /* Returns a classification of special values of the encoding of the current locale. */ extern enc_t locale_encoding_classification (void); #endif ��������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/libc-config.h�����������������������������������������������������������������������0000644�0000000�0000000�00000014150�14374751113�012444� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* System definitions for code taken from the GNU C Library Copyright 2017-2023 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ /* This is intended to be a good-enough substitute for glibc system macros like those defined in <sys/cdefs.h>, so that Gnulib code shared with glibc can do this as the first #include: #ifndef _LIBC # include <libc-config.h> #endif When compiled as part of glibc this is a no-op; when compiled as part of Gnulib this includes Gnulib's <config.h> and defines macros that glibc library code would normally assume. Note: This header file MUST NOT be included by public header files of Gnulib. */ #include <config.h> /* On glibc this includes <features.h> and <sys/cdefs.h> and #defines _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and DragonFlyBSD 5.9 it includes <sys/cdefs.h> which defines __nonnull. Elsewhere it is harmless. */ #include <errno.h> /* From glibc <errno.h>. */ #ifndef __set_errno # define __set_errno(val) (errno = (val)) #endif /* From glibc <features.h>. */ #ifndef __GNUC_PREREQ # if defined __GNUC__ && defined __GNUC_MINOR__ # define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) # else # define __GNUC_PREREQ(maj, min) 0 # endif #endif #ifndef __glibc_clang_prereq # if defined __clang_major__ && defined __clang_minor__ # ifdef __apple_build_version__ /* Apple for some reason renumbers __clang_major__ and __clang_minor__. Gnulib code uses only __glibc_clang_prereq (3, 5); map it to 6000000 <= __apple_build_version__. Support for other calls to __glibc_clang_prereq can be added here as needed. */ # define __glibc_clang_prereq(maj, min) \ ((maj) == 3 && (min) == 5 ? 6000000 <= __apple_build_version__ : 0) # else # define __glibc_clang_prereq(maj, min) \ ((maj) < __clang_major__ + ((min) <= __clang_minor__)) # endif # else # define __glibc_clang_prereq(maj, min) 0 # endif #endif #ifndef __attribute_nonnull__ /* <sys/cdefs.h> either does not exist, or is too old for Gnulib. Prepare to include <cdefs.h>, which is Gnulib's version of a more-recent glibc <sys/cdefs.h>. */ /* Define _FEATURES_H so that <cdefs.h> does not include <features.h>. */ # ifndef _FEATURES_H # define _FEATURES_H 1 # endif /* Define __GNULIB_CDEFS so that <cdefs.h> does not attempt to include nonexistent files. */ # define __GNULIB_CDEFS /* Undef the macros unconditionally defined by our copy of glibc <sys/cdefs.h>, so that they do not clash with any system-defined versions. */ # undef _SYS_CDEFS_H # undef __ASMNAME # undef __ASMNAME2 # undef __BEGIN_DECLS # undef __CONCAT # undef __END_DECLS # undef __HAVE_GENERIC_SELECTION # undef __LDBL_COMPAT # undef __LDBL_REDIR # undef __LDBL_REDIR1 # undef __LDBL_REDIR1_DECL # undef __LDBL_REDIR1_NTH # undef __LDBL_REDIR2_DECL # undef __LDBL_REDIR_DECL # undef __LDBL_REDIR_NTH # undef __LEAF # undef __LEAF_ATTR # undef __NTH # undef __NTHNL # undef __REDIRECT # undef __REDIRECT_LDBL # undef __REDIRECT_NTH # undef __REDIRECT_NTHNL # undef __REDIRECT_NTH_LDBL # undef __STRING # undef __THROW # undef __THROWNL # undef __attr_access # undef __attr_access_none # undef __attr_dealloc # undef __attr_dealloc_free # undef __attribute__ # undef __attribute_alloc_align__ # undef __attribute_alloc_size__ # undef __attribute_artificial__ # undef __attribute_const__ # undef __attribute_deprecated__ # undef __attribute_deprecated_msg__ # undef __attribute_format_arg__ # undef __attribute_format_strfmon__ # undef __attribute_malloc__ # undef __attribute_maybe_unused__ # undef __attribute_noinline__ # undef __attribute_nonstring__ # undef __attribute_pure__ # undef __attribute_returns_twice__ # undef __attribute_used__ # undef __attribute_warn_unused_result__ # undef __errordecl # undef __extension__ # undef __extern_always_inline # undef __extern_inline # undef __flexarr # undef __fortified_attr_access # undef __fortify_function # undef __glibc_c99_flexarr_available # undef __glibc_has_attribute # undef __glibc_has_builtin # undef __glibc_has_extension # undef __glibc_likely # undef __glibc_macro_warning # undef __glibc_macro_warning1 # undef __glibc_unlikely # undef __inline # undef __ptr_t # undef __restrict # undef __restrict_arr # undef __va_arg_pack # undef __va_arg_pack_len # undef __warnattr # undef __wur # ifndef __GNULIB_CDEFS # undef __bos # undef __bos0 # undef __glibc_fortify # undef __glibc_fortify_n # undef __glibc_objsize # undef __glibc_objsize0 # undef __glibc_safe_len_cond # undef __glibc_safe_or_unknown_len # undef __glibc_unsafe_len # undef __glibc_unsigned_or_positive # endif /* Include our copy of glibc <sys/cdefs.h>. */ # include <cdefs.h> /* <cdefs.h> __inline is too pessimistic for non-GCC. */ # undef __inline # ifndef HAVE___INLINE # if 199901 <= __STDC_VERSION__ || defined inline # define __inline inline # else # define __inline # endif # endif #endif /* defined __glibc_likely */ /* A substitute for glibc <libc-symbols.h>, good enough for Gnulib. */ #define attribute_hidden #define libc_hidden_proto(name) #define libc_hidden_def(name) #define libc_hidden_weak(name) #define libc_hidden_ver(local, name) #define strong_alias(name, aliasname) #define weak_alias(name, aliasname) /* A substitute for glibc <shlib-compat.h>, good enough for Gnulib. */ #define SHLIB_COMPAT(lib, introduced, obsoleted) 0 #define compat_symbol(lib, local, symbol, version) extern int dummy #define versioned_symbol(lib, local, symbol, version) extern int dummy ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/limits.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000011055�14374751113�012177� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <limits.h>. Copyright 2016-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_LIMITS_H /* Special invocation convention: On Haiku/x86_64, we have a sequence of nested includes <limits.h> -> <syslimits.h> -> <limits.h>. In this situation, LONG_MAX and INT_MAX are not yet defined, therefore we should not attempt to define LONG_BIT. */ #@INCLUDE_NEXT@ @NEXT_LIMITS_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_LIMITS_H # define _GL_ALREADY_INCLUDING_LIMITS_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_LIMITS_H@ # undef _GL_ALREADY_INCLUDING_LIMITS_H #ifndef _@GUARD_PREFIX@_LIMITS_H #define _@GUARD_PREFIX@_LIMITS_H #ifndef LLONG_MIN # if defined LONG_LONG_MIN /* HP-UX 11.31 */ # define LLONG_MIN LONG_LONG_MIN # elif defined LONGLONG_MIN /* IRIX 6.5 */ # define LLONG_MIN LONGLONG_MIN # elif defined __GNUC__ # define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) # endif #endif #ifndef LLONG_MAX # if defined LONG_LONG_MAX /* HP-UX 11.31 */ # define LLONG_MAX LONG_LONG_MAX # elif defined LONGLONG_MAX /* IRIX 6.5 */ # define LLONG_MAX LONGLONG_MAX # elif defined __GNUC__ # define LLONG_MAX __LONG_LONG_MAX__ # endif #endif #ifndef ULLONG_MAX # if defined ULONG_LONG_MAX /* HP-UX 11.31 */ # define ULLONG_MAX ULONG_LONG_MAX # elif defined ULONGLONG_MAX /* IRIX 6.5 */ # define ULLONG_MAX ULONGLONG_MAX # elif defined __GNUC__ # define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) # endif #endif /* The number of usable bits in an unsigned or signed integer type with minimum value MIN and maximum value MAX, as an int expression suitable in #if. Cover all known practical hosts. This implementation exploits the fact that MAX is 1 less than a power of 2, and merely counts the number of 1 bits in MAX; "COBn" means "count the number of 1 bits in the low-order n bits"). */ #define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) #define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) #define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) #define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) #define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) #define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) #define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) #ifndef WORD_BIT /* Assume 'int' is 32 bits wide. */ # define WORD_BIT 32 #endif #ifndef LONG_BIT /* Assume 'long' is 32 or 64 bits wide. */ # if LONG_MAX == INT_MAX # define LONG_BIT 32 # else # define LONG_BIT 64 # endif #endif /* Macros specified by C23 and by ISO/IEC TS 18661-1:2014. */ #if (! defined ULLONG_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__ \ || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))) # define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) # define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) # define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) # define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) # define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) # define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) # define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) # define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) # define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) # define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) # define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) #endif /* Macros specified by C23. */ #if (defined _GNU_SOURCE \ || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__)) # if ! defined BOOL_WIDTH # define BOOL_WIDTH 1 # define BOOL_MAX 1 # elif ! defined BOOL_MAX # define BOOL_MAX ((((1U << (BOOL_WIDTH - 1)) - 1) << 1) + 1) # endif #endif #endif /* _@GUARD_PREFIX@_LIMITS_H */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/localcharset.c����������������������������������������������������������������������0000644�0000000�0000000�00000115722�14374751113�012736� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2006, 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>. */ #include <config.h> /* Specification. */ #include "localcharset.h" #include <stddef.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET # define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ #endif #if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE # include <locale.h> #endif #if defined __EMX__ /* Assume EMX program runs on OS/2, even if compiled under DOS. */ # ifndef OS2 # define OS2 # endif #endif #if !defined WINDOWS_NATIVE # if HAVE_LANGINFO_CODESET # include <langinfo.h> # else # if 0 /* see comment regarding use of setlocale(), below */ # include <locale.h> # endif # endif # ifdef __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include <windows.h> # endif #elif defined WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include <windows.h> /* For the use of setlocale() below, the Gnulib override in setlocale.c is not needed; see the platform lists in setlocale_null.m4. */ # undef setlocale #endif #if defined OS2 # define INCL_DOS # include <os2.h> #endif /* For MB_CUR_MAX_L */ #if defined DARWIN7 # include <xlocale.h> #endif #if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 /* On these platforms, we use a mapping from non-canonical encoding name to GNU canonical encoding name. */ /* With glibc-2.1 or newer, we don't need any canonicalization, because glibc has iconv and both glibc and libiconv support all GNU canonical names directly. */ # if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__) struct table_entry { const char alias[11+1]; const char canonical[11+1]; }; /* Table of platform-dependent mappings, sorted in ascending order. */ static const struct table_entry alias_table[] = { # if defined __FreeBSD__ /* FreeBSD */ /*{ "ARMSCII-8", "ARMSCII-8" },*/ { "Big5", "BIG5" }, { "C", "ASCII" }, /*{ "CP1131", "CP1131" },*/ /*{ "CP1251", "CP1251" },*/ /*{ "CP866", "CP866" },*/ /*{ "GB18030", "GB18030" },*/ /*{ "GB2312", "GB2312" },*/ /*{ "GBK", "GBK" },*/ /*{ "ISCII-DEV", "?" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-9", "ISO-8859-9" }, /*{ "KOI8-R", "KOI8-R" },*/ /*{ "KOI8-U", "KOI8-U" },*/ { "SJIS", "SHIFT_JIS" }, { "US-ASCII", "ASCII" }, { "eucCN", "GB2312" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" } # define alias_table_defined # endif # if defined __NetBSD__ /* NetBSD */ { "646", "ASCII" }, /*{ "ARMSCII-8", "ARMSCII-8" },*/ /*{ "BIG5", "BIG5" },*/ { "Big5-HKSCS", "BIG5-HKSCS" }, /*{ "CP1251", "CP1251" },*/ /*{ "CP866", "CP866" },*/ /*{ "GB18030", "GB18030" },*/ /*{ "GB2312", "GB2312" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, /*{ "KOI8-R", "KOI8-R" },*/ /*{ "KOI8-U", "KOI8-U" },*/ /*{ "PT154", "PT154" },*/ { "SJIS", "SHIFT_JIS" }, { "eucCN", "GB2312" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW", "EUC-TW" } # define alias_table_defined # endif # if defined __OpenBSD__ /* OpenBSD */ { "646", "ASCII" }, { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "US-ASCII", "ASCII" } # define alias_table_defined # endif # if defined __APPLE__ && defined __MACH__ /* Mac OS X */ /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is useless: - It returns the empty string when LANG is set to a locale of the form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 LC_CTYPE file. - The environment variables LANG, LC_CTYPE, LC_ALL are not set by the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. - The documentation says: "... all code that calls BSD system routines should ensure that the const *char parameters of these routines are in UTF-8 encoding. All BSD system functions expect their string parameters to be in UTF-8 encoding and nothing else." It also says "An additional caveat is that string parameters for files, paths, and other file-system entities must be in canonical UTF-8. In a canonical UTF-8 Unicode string, all decomposable characters are decomposed ..." but this is not true: You can pass non-decomposed UTF-8 strings to file system functions, and it is the OS which will convert them to decomposed UTF-8 before accessing the file system. - The Apple Terminal application displays UTF-8 by default. - However, other applications are free to use different encodings: - xterm uses ISO-8859-1 by default. - TextEdit uses MacRoman by default. We prefer UTF-8 over decomposed UTF-8-MAC because one should minimize the use of decomposed Unicode. Unfortunately, through the Darwin file system, decomposed UTF-8 strings are leaked into user space nevertheless. Then there are also the locales with encodings other than US-ASCII and UTF-8. These locales can be occasionally useful to users (e.g. when grepping through ISO-8859-1 encoded text files), when all their file names are in US-ASCII. */ { "ARMSCII-8", "ARMSCII-8" }, { "Big5", "BIG5" }, { "Big5HKSCS", "BIG5-HKSCS" }, { "CP1131", "CP1131" }, { "CP1251", "CP1251" }, { "CP866", "CP866" }, { "CP949", "CP949" }, { "GB18030", "GB18030" }, { "GB2312", "GB2312" }, { "GBK", "GBK" }, /*{ "ISCII-DEV", "?" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-9", "ISO-8859-9" }, { "KOI8-R", "KOI8-R" }, { "KOI8-U", "KOI8-U" }, { "PT154", "PT154" }, { "SJIS", "SHIFT_JIS" }, { "eucCN", "GB2312" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" } # define alias_table_defined # endif # if defined _AIX /* AIX */ /*{ "GBK", "GBK" },*/ { "IBM-1046", "CP1046" }, { "IBM-1124", "CP1124" }, { "IBM-1129", "CP1129" }, { "IBM-1252", "CP1252" }, { "IBM-850", "CP850" }, { "IBM-856", "CP856" }, { "IBM-921", "ISO-8859-13" }, { "IBM-922", "CP922" }, { "IBM-932", "CP932" }, { "IBM-943", "CP943" }, { "IBM-eucCN", "GB2312" }, { "IBM-eucJP", "EUC-JP" }, { "IBM-eucKR", "EUC-KR" }, { "IBM-eucTW", "EUC-TW" }, { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-6", "ISO-8859-6" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, { "TIS-620", "TIS-620" }, /*{ "UTF-8", "UTF-8" },*/ { "big5", "BIG5" } # define alias_table_defined # endif # if defined __hpux /* HP-UX */ { "SJIS", "SHIFT_JIS" }, { "arabic8", "HP-ARABIC8" }, { "big5", "BIG5" }, { "cp1251", "CP1251" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW", "EUC-TW" }, { "gb18030", "GB18030" }, { "greek8", "HP-GREEK8" }, { "hebrew8", "HP-HEBREW8" }, { "hkbig5", "BIG5-HKSCS" }, { "hp15CN", "GB2312" }, { "iso88591", "ISO-8859-1" }, { "iso885913", "ISO-8859-13" }, { "iso885915", "ISO-8859-15" }, { "iso88592", "ISO-8859-2" }, { "iso88594", "ISO-8859-4" }, { "iso88595", "ISO-8859-5" }, { "iso88596", "ISO-8859-6" }, { "iso88597", "ISO-8859-7" }, { "iso88598", "ISO-8859-8" }, { "iso88599", "ISO-8859-9" }, { "kana8", "HP-KANA8" }, { "koi8r", "KOI8-R" }, { "roman8", "HP-ROMAN8" }, { "tis620", "TIS-620" }, { "turkish8", "HP-TURKISH8" }, { "utf8", "UTF-8" } # define alias_table_defined # endif # if defined __sgi /* IRIX */ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-9", "ISO-8859-9" }, { "eucCN", "GB2312" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW", "EUC-TW" } # define alias_table_defined # endif # if defined __osf__ /* OSF/1 */ /*{ "GBK", "GBK" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, { "KSC5601", "CP949" }, { "SJIS", "SHIFT_JIS" }, { "TACTIS", "TIS-620" }, /*{ "UTF-8", "UTF-8" },*/ { "big5", "BIG5" }, { "cp850", "CP850" }, { "dechanyu", "DEC-HANYU" }, { "dechanzi", "GB2312" }, { "deckanji", "DEC-KANJI" }, { "deckorean", "EUC-KR" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW", "EUC-TW" }, { "sdeckanji", "EUC-JP" } # define alias_table_defined # endif # if defined __sun /* Solaris */ { "5601", "EUC-KR" }, { "646", "ASCII" }, /*{ "BIG5", "BIG5" },*/ { "Big5-HKSCS", "BIG5-HKSCS" }, { "GB18030", "GB18030" }, /*{ "GBK", "GBK" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-11", "TIS-620" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-3", "ISO-8859-3" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-6", "ISO-8859-6" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, { "PCK", "SHIFT_JIS" }, { "TIS620.2533", "TIS-620" }, /*{ "UTF-8", "UTF-8" },*/ { "ansi-1251", "CP1251" }, { "cns11643", "EUC-TW" }, { "eucJP", "EUC-JP" }, { "gb2312", "GB2312" }, { "koi8-r", "KOI8-R" } # define alias_table_defined # endif # if defined __minix /* Minix */ { "646", "ASCII" } # define alias_table_defined # endif # if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */ { "CP1361", "JOHAB" }, { "CP20127", "ASCII" }, { "CP20866", "KOI8-R" }, { "CP20936", "GB2312" }, { "CP21866", "KOI8-RU" }, { "CP28591", "ISO-8859-1" }, { "CP28592", "ISO-8859-2" }, { "CP28593", "ISO-8859-3" }, { "CP28594", "ISO-8859-4" }, { "CP28595", "ISO-8859-5" }, { "CP28596", "ISO-8859-6" }, { "CP28597", "ISO-8859-7" }, { "CP28598", "ISO-8859-8" }, { "CP28599", "ISO-8859-9" }, { "CP28605", "ISO-8859-15" }, { "CP38598", "ISO-8859-8" }, { "CP51932", "EUC-JP" }, { "CP51936", "GB2312" }, { "CP51949", "EUC-KR" }, { "CP51950", "EUC-TW" }, { "CP54936", "GB18030" }, { "CP65001", "UTF-8" }, { "CP936", "GBK" } # define alias_table_defined # endif # if defined OS2 /* OS/2 */ /* The list of encodings is taken from "List of OS/2 Codepages" by Alex Taylor: <http://altsan.org/os2/toolkits/uls/index.html#codepages>. See also "__convcp() of kLIBC": <https://github.com/bitwiseworks/libc/blob/master/src/emx/src/lib/locale/__convcp.c>. */ { "CP1004", "CP1252" }, /*{ "CP1041", "CP943" },*/ /*{ "CP1088", "CP949" },*/ { "CP1089", "ISO-8859-6" }, /*{ "CP1114", "CP950" },*/ /*{ "CP1115", "GB2312" },*/ { "CP1208", "UTF-8" }, /*{ "CP1380", "GB2312" },*/ { "CP1381", "GB2312" }, { "CP1383", "GB2312" }, { "CP1386", "GBK" }, /*{ "CP301", "CP943" },*/ { "CP3372", "EUC-JP" }, { "CP4946", "CP850" }, /*{ "CP5048", "JIS_X0208-1990" },*/ /*{ "CP5049", "JIS_X0212-1990" },*/ /*{ "CP5067", "KS_C_5601-1987" },*/ { "CP813", "ISO-8859-7" }, { "CP819", "ISO-8859-1" }, { "CP878", "KOI8-R" }, /*{ "CP897", "CP943" },*/ { "CP912", "ISO-8859-2" }, { "CP913", "ISO-8859-3" }, { "CP914", "ISO-8859-4" }, { "CP915", "ISO-8859-5" }, { "CP916", "ISO-8859-8" }, { "CP920", "ISO-8859-9" }, { "CP921", "ISO-8859-13" }, { "CP923", "ISO-8859-15" }, /*{ "CP941", "CP943" },*/ /*{ "CP947", "CP950" },*/ /*{ "CP951", "CP949" },*/ /*{ "CP952", "JIS_X0208-1990" },*/ /*{ "CP953", "JIS_X0212-1990" },*/ { "CP954", "EUC-JP" }, { "CP964", "EUC-TW" }, { "CP970", "EUC-KR" }, /*{ "CP971", "KS_C_5601-1987" },*/ { "IBM-1004", "CP1252" }, /*{ "IBM-1006", "?" },*/ /*{ "IBM-1008", "?" },*/ /*{ "IBM-1041", "CP943" },*/ /*{ "IBM-1051", "?" },*/ /*{ "IBM-1088", "CP949" },*/ { "IBM-1089", "ISO-8859-6" }, /*{ "IBM-1098", "?" },*/ /*{ "IBM-1114", "CP950" },*/ /*{ "IBM-1115", "GB2312" },*/ /*{ "IBM-1116", "?" },*/ /*{ "IBM-1117", "?" },*/ /*{ "IBM-1118", "?" },*/ /*{ "IBM-1119", "?" },*/ { "IBM-1124", "CP1124" }, { "IBM-1125", "CP1125" }, { "IBM-1131", "CP1131" }, { "IBM-1208", "UTF-8" }, { "IBM-1250", "CP1250" }, { "IBM-1251", "CP1251" }, { "IBM-1252", "CP1252" }, { "IBM-1253", "CP1253" }, { "IBM-1254", "CP1254" }, { "IBM-1255", "CP1255" }, { "IBM-1256", "CP1256" }, { "IBM-1257", "CP1257" }, /*{ "IBM-1275", "?" },*/ /*{ "IBM-1276", "?" },*/ /*{ "IBM-1277", "?" },*/ /*{ "IBM-1280", "?" },*/ /*{ "IBM-1281", "?" },*/ /*{ "IBM-1282", "?" },*/ /*{ "IBM-1283", "?" },*/ /*{ "IBM-1380", "GB2312" },*/ { "IBM-1381", "GB2312" }, { "IBM-1383", "GB2312" }, { "IBM-1386", "GBK" }, /*{ "IBM-301", "CP943" },*/ { "IBM-3372", "EUC-JP" }, { "IBM-367", "ASCII" }, { "IBM-437", "CP437" }, { "IBM-4946", "CP850" }, /*{ "IBM-5048", "JIS_X0208-1990" },*/ /*{ "IBM-5049", "JIS_X0212-1990" },*/ /*{ "IBM-5067", "KS_C_5601-1987" },*/ { "IBM-813", "ISO-8859-7" }, { "IBM-819", "ISO-8859-1" }, { "IBM-850", "CP850" }, /*{ "IBM-851", "?" },*/ { "IBM-852", "CP852" }, { "IBM-855", "CP855" }, { "IBM-856", "CP856" }, { "IBM-857", "CP857" }, /*{ "IBM-859", "?" },*/ { "IBM-860", "CP860" }, { "IBM-861", "CP861" }, { "IBM-862", "CP862" }, { "IBM-863", "CP863" }, { "IBM-864", "CP864" }, { "IBM-865", "CP865" }, { "IBM-866", "CP866" }, /*{ "IBM-868", "?" },*/ { "IBM-869", "CP869" }, { "IBM-874", "CP874" }, { "IBM-878", "KOI8-R" }, /*{ "IBM-895", "?" },*/ /*{ "IBM-897", "CP943" },*/ /*{ "IBM-907", "?" },*/ /*{ "IBM-909", "?" },*/ { "IBM-912", "ISO-8859-2" }, { "IBM-913", "ISO-8859-3" }, { "IBM-914", "ISO-8859-4" }, { "IBM-915", "ISO-8859-5" }, { "IBM-916", "ISO-8859-8" }, { "IBM-920", "ISO-8859-9" }, { "IBM-921", "ISO-8859-13" }, { "IBM-922", "CP922" }, { "IBM-923", "ISO-8859-15" }, { "IBM-932", "CP932" }, /*{ "IBM-941", "CP943" },*/ /*{ "IBM-942", "?" },*/ { "IBM-943", "CP943" }, /*{ "IBM-947", "CP950" },*/ { "IBM-949", "CP949" }, { "IBM-950", "CP950" }, /*{ "IBM-951", "CP949" },*/ /*{ "IBM-952", "JIS_X0208-1990" },*/ /*{ "IBM-953", "JIS_X0212-1990" },*/ { "IBM-954", "EUC-JP" }, /*{ "IBM-955", "?" },*/ { "IBM-964", "EUC-TW" }, { "IBM-970", "EUC-KR" }, /*{ "IBM-971", "KS_C_5601-1987" },*/ { "IBM-eucCN", "GB2312" }, { "IBM-eucJP", "EUC-JP" }, { "IBM-eucKR", "EUC-KR" }, { "IBM-eucTW", "EUC-TW" }, { "IBM33722", "EUC-JP" }, { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-3", "ISO-8859-3" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-6", "ISO-8859-6" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, /*{ "JISX0201-1976", "JISX0201-1976" },*/ /*{ "JISX0208-1978", "?" },*/ /*{ "JISX0208-1983", "JIS_X0208-1983" },*/ /*{ "JISX0208-1990", "JIS_X0208-1990" },*/ /*{ "JISX0212-1990", "JIS_X0212-1990" },*/ /*{ "KSC5601-1987", "KS_C_5601-1987" },*/ { "SJIS-1", "CP943" }, { "SJIS-2", "CP943" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW-1993", "EUC-TW" } # define alias_table_defined # endif # if defined VMS /* OpenVMS */ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation "Compaq C Run-Time Library Reference Manual for OpenVMS systems" section 10.7 "Handling Different Character Sets". */ { "DECHANYU", "DEC-HANYU" }, { "DECHANZI", "GB2312" }, { "DECKANJI", "DEC-KANJI" }, { "DECKOREAN", "EUC-KR" }, { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, { "SDECKANJI", "EUC-JP" }, { "SJIS", "SHIFT_JIS" }, { "eucJP", "EUC-JP" }, { "eucTW", "EUC-TW" } # define alias_table_defined # endif # ifndef alias_table_defined /* Just a dummy entry, to avoid a C syntax error. */ { "", "" } # endif }; # endif #else /* On these platforms, we use a mapping from locale name to GNU canonical encoding name. */ struct table_entry { const char locale[17+1]; const char canonical[11+1]; }; /* Table of platform-dependent mappings, sorted in ascending order. */ static const struct table_entry locale_table[] = { # if defined __FreeBSD__ /* FreeBSD 4.2 */ { "cs_CZ.ISO_8859-2", "ISO-8859-2" }, { "da_DK.DIS_8859-15", "ISO-8859-15" }, { "da_DK.ISO_8859-1", "ISO-8859-1" }, { "de_AT.DIS_8859-15", "ISO-8859-15" }, { "de_AT.ISO_8859-1", "ISO-8859-1" }, { "de_CH.DIS_8859-15", "ISO-8859-15" }, { "de_CH.ISO_8859-1", "ISO-8859-1" }, { "de_DE.DIS_8859-15", "ISO-8859-15" }, { "de_DE.ISO_8859-1", "ISO-8859-1" }, { "en_AU.DIS_8859-15", "ISO-8859-15" }, { "en_AU.ISO_8859-1", "ISO-8859-1" }, { "en_CA.DIS_8859-15", "ISO-8859-15" }, { "en_CA.ISO_8859-1", "ISO-8859-1" }, { "en_GB.DIS_8859-15", "ISO-8859-15" }, { "en_GB.ISO_8859-1", "ISO-8859-1" }, { "en_US.DIS_8859-15", "ISO-8859-15" }, { "en_US.ISO_8859-1", "ISO-8859-1" }, { "es_ES.DIS_8859-15", "ISO-8859-15" }, { "es_ES.ISO_8859-1", "ISO-8859-1" }, { "fi_FI.DIS_8859-15", "ISO-8859-15" }, { "fi_FI.ISO_8859-1", "ISO-8859-1" }, { "fr_BE.DIS_8859-15", "ISO-8859-15" }, { "fr_BE.ISO_8859-1", "ISO-8859-1" }, { "fr_CA.DIS_8859-15", "ISO-8859-15" }, { "fr_CA.ISO_8859-1", "ISO-8859-1" }, { "fr_CH.DIS_8859-15", "ISO-8859-15" }, { "fr_CH.ISO_8859-1", "ISO-8859-1" }, { "fr_FR.DIS_8859-15", "ISO-8859-15" }, { "fr_FR.ISO_8859-1", "ISO-8859-1" }, { "hr_HR.ISO_8859-2", "ISO-8859-2" }, { "hu_HU.ISO_8859-2", "ISO-8859-2" }, { "is_IS.DIS_8859-15", "ISO-8859-15" }, { "is_IS.ISO_8859-1", "ISO-8859-1" }, { "it_CH.DIS_8859-15", "ISO-8859-15" }, { "it_CH.ISO_8859-1", "ISO-8859-1" }, { "it_IT.DIS_8859-15", "ISO-8859-15" }, { "it_IT.ISO_8859-1", "ISO-8859-1" }, { "ja_JP.EUC", "EUC-JP" }, { "ja_JP.SJIS", "SHIFT_JIS" }, { "ja_JP.Shift_JIS", "SHIFT_JIS" }, { "ko_KR.EUC", "EUC-KR" }, { "la_LN.ASCII", "ASCII" }, { "la_LN.DIS_8859-15", "ISO-8859-15" }, { "la_LN.ISO_8859-1", "ISO-8859-1" }, { "la_LN.ISO_8859-2", "ISO-8859-2" }, { "la_LN.ISO_8859-4", "ISO-8859-4" }, { "lt_LN.ASCII", "ASCII" }, { "lt_LN.DIS_8859-15", "ISO-8859-15" }, { "lt_LN.ISO_8859-1", "ISO-8859-1" }, { "lt_LN.ISO_8859-2", "ISO-8859-2" }, { "lt_LT.ISO_8859-4", "ISO-8859-4" }, { "nl_BE.DIS_8859-15", "ISO-8859-15" }, { "nl_BE.ISO_8859-1", "ISO-8859-1" }, { "nl_NL.DIS_8859-15", "ISO-8859-15" }, { "nl_NL.ISO_8859-1", "ISO-8859-1" }, { "no_NO.DIS_8859-15", "ISO-8859-15" }, { "no_NO.ISO_8859-1", "ISO-8859-1" }, { "pl_PL.ISO_8859-2", "ISO-8859-2" }, { "pt_PT.DIS_8859-15", "ISO-8859-15" }, { "pt_PT.ISO_8859-1", "ISO-8859-1" }, { "ru_RU.CP866", "CP866" }, { "ru_RU.ISO_8859-5", "ISO-8859-5" }, { "ru_RU.KOI8-R", "KOI8-R" }, { "ru_SU.CP866", "CP866" }, { "ru_SU.ISO_8859-5", "ISO-8859-5" }, { "ru_SU.KOI8-R", "KOI8-R" }, { "sl_SI.ISO_8859-2", "ISO-8859-2" }, { "sv_SE.DIS_8859-15", "ISO-8859-15" }, { "sv_SE.ISO_8859-1", "ISO-8859-1" }, { "uk_UA.KOI8-U", "KOI8-U" }, { "zh_CN.EUC", "GB2312" }, { "zh_TW.BIG5", "BIG5" }, { "zh_TW.Big5", "BIG5" } # define locale_table_defined # endif # if defined __DJGPP__ /* DOS / DJGPP 2.03 */ /* The encodings given here may not all be correct. If you find that the encoding given for your language and country is not the one your DOS machine actually uses, just correct it in this file, and send a mail to Juan Manuel Guerrero <juan.guerrero@gmx.de> and <bug-gnulib@gnu.org>. */ { "C", "ASCII" }, { "ar", "CP864" }, { "ar_AE", "CP864" }, { "ar_DZ", "CP864" }, { "ar_EG", "CP864" }, { "ar_IQ", "CP864" }, { "ar_IR", "CP864" }, { "ar_JO", "CP864" }, { "ar_KW", "CP864" }, { "ar_MA", "CP864" }, { "ar_OM", "CP864" }, { "ar_QA", "CP864" }, { "ar_SA", "CP864" }, { "ar_SY", "CP864" }, { "be", "CP866" }, { "be_BE", "CP866" }, { "bg", "CP866" }, /* not CP855 ?? */ { "bg_BG", "CP866" }, /* not CP855 ?? */ { "ca", "CP850" }, { "ca_ES", "CP850" }, { "cs", "CP852" }, { "cs_CZ", "CP852" }, { "da", "CP865" }, /* not CP850 ?? */ { "da_DK", "CP865" }, /* not CP850 ?? */ { "de", "CP850" }, { "de_AT", "CP850" }, { "de_CH", "CP850" }, { "de_DE", "CP850" }, { "el", "CP869" }, { "el_GR", "CP869" }, { "en", "CP850" }, { "en_AU", "CP850" }, /* not CP437 ?? */ { "en_CA", "CP850" }, { "en_GB", "CP850" }, { "en_NZ", "CP437" }, { "en_US", "CP437" }, { "en_ZA", "CP850" }, /* not CP437 ?? */ { "eo", "CP850" }, { "eo_EO", "CP850" }, { "es", "CP850" }, { "es_AR", "CP850" }, { "es_BO", "CP850" }, { "es_CL", "CP850" }, { "es_CO", "CP850" }, { "es_CR", "CP850" }, { "es_CU", "CP850" }, { "es_DO", "CP850" }, { "es_EC", "CP850" }, { "es_ES", "CP850" }, { "es_GT", "CP850" }, { "es_HN", "CP850" }, { "es_MX", "CP850" }, { "es_NI", "CP850" }, { "es_PA", "CP850" }, { "es_PE", "CP850" }, { "es_PY", "CP850" }, { "es_SV", "CP850" }, { "es_UY", "CP850" }, { "es_VE", "CP850" }, { "et", "CP850" }, { "et_EE", "CP850" }, { "eu", "CP850" }, { "eu_ES", "CP850" }, { "fi", "CP850" }, { "fi_FI", "CP850" }, { "fr", "CP850" }, { "fr_BE", "CP850" }, { "fr_CA", "CP850" }, { "fr_CH", "CP850" }, { "fr_FR", "CP850" }, { "ga", "CP850" }, { "ga_IE", "CP850" }, { "gd", "CP850" }, { "gd_GB", "CP850" }, { "gl", "CP850" }, { "gl_ES", "CP850" }, { "he", "CP862" }, { "he_IL", "CP862" }, { "hr", "CP852" }, { "hr_HR", "CP852" }, { "hu", "CP852" }, { "hu_HU", "CP852" }, { "id", "CP850" }, /* not CP437 ?? */ { "id_ID", "CP850" }, /* not CP437 ?? */ { "is", "CP861" }, /* not CP850 ?? */ { "is_IS", "CP861" }, /* not CP850 ?? */ { "it", "CP850" }, { "it_CH", "CP850" }, { "it_IT", "CP850" }, { "ja", "CP932" }, { "ja_JP", "CP932" }, { "kr", "CP949" }, /* not CP934 ?? */ { "kr_KR", "CP949" }, /* not CP934 ?? */ { "lt", "CP775" }, { "lt_LT", "CP775" }, { "lv", "CP775" }, { "lv_LV", "CP775" }, { "mk", "CP866" }, /* not CP855 ?? */ { "mk_MK", "CP866" }, /* not CP855 ?? */ { "mt", "CP850" }, { "mt_MT", "CP850" }, { "nb", "CP865" }, /* not CP850 ?? */ { "nb_NO", "CP865" }, /* not CP850 ?? */ { "nl", "CP850" }, { "nl_BE", "CP850" }, { "nl_NL", "CP850" }, { "nn", "CP865" }, /* not CP850 ?? */ { "nn_NO", "CP865" }, /* not CP850 ?? */ { "no", "CP865" }, /* not CP850 ?? */ { "no_NO", "CP865" }, /* not CP850 ?? */ { "pl", "CP852" }, { "pl_PL", "CP852" }, { "pt", "CP850" }, { "pt_BR", "CP850" }, { "pt_PT", "CP850" }, { "ro", "CP852" }, { "ro_RO", "CP852" }, { "ru", "CP866" }, { "ru_RU", "CP866" }, { "sk", "CP852" }, { "sk_SK", "CP852" }, { "sl", "CP852" }, { "sl_SI", "CP852" }, { "sq", "CP852" }, { "sq_AL", "CP852" }, { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */ { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */ { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */ { "sv", "CP850" }, { "sv_SE", "CP850" }, { "th", "CP874" }, { "th_TH", "CP874" }, { "tr", "CP857" }, { "tr_TR", "CP857" }, { "uk", "CP1125" }, { "uk_UA", "CP1125" }, { "zh_CN", "GBK" }, { "zh_TW", "CP950" } /* not CP938 ?? */ # define locale_table_defined # endif # ifndef locale_table_defined /* Just a dummy entry, to avoid a C syntax error. */ { "", "" } # endif }; #endif /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed below. The result must not be freed; it is statically allocated. The result becomes invalid when setlocale() is used to change the global locale, or when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG is changed; threads in multithreaded programs should not do this. If the canonical name cannot be determined, the result is a non-canonical name. */ #ifdef STATIC STATIC #endif const char * locale_charset (void) { const char *codeset; /* This function must be multithread-safe. To achieve this without using thread-local storage, we use a simple strcpy or memcpy to fill this static buffer. Filling it through, for example, strcpy + strcat would not be guaranteed to leave the buffer's contents intact if another thread is currently accessing it. If necessary, the contents is first assembled in a stack-allocated buffer. */ #if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 # if HAVE_LANGINFO_CODESET /* Most systems support nl_langinfo (CODESET) nowadays. */ codeset = nl_langinfo (CODESET); # ifdef __CYGWIN__ /* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always returns "US-ASCII". Return the suffix of the locale name from the environment variables (if present) or the codepage as a number. */ if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) { const char *locale; static char resultbuf[2 + 10 + 1]; locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (resultbuf)) { /* This way of filling resultbuf is multithread-safe. */ memcpy (resultbuf, dot, modifier - dot); resultbuf [modifier - dot] = '\0'; return resultbuf; } } } /* The Windows API has a function returning the locale's codepage as a number: GetACP(). This encoding is used by Cygwin, unless the user has set the environment variable CYGWIN=codepage:oem (which very few people do). Output directed to console windows needs to be converted (to GetOEMCP() if the console is using a raster font, or to GetConsoleOutputCP() if it is using a TrueType font). Cygwin does this conversion transparently (see winsup/cygwin/fhandler_console.cc), converting to GetConsoleOutputCP(). This leads to correct results, except when SetConsoleOutputCP has been called and a raster font is in use. */ { char buf[2 + 10 + 1]; sprintf (buf, "CP%u", GetACP ()); strcpy (resultbuf, buf); codeset = resultbuf; } } # endif if (codeset == NULL) /* The canonical name cannot be determined. */ codeset = ""; # elif defined WINDOWS_NATIVE char buf[2 + 10 + 1]; static char resultbuf[2 + 10 + 1]; /* The Windows API has a function returning the locale's codepage as a number, but the value doesn't change according to what the 'setlocale' call specified. So we use it as a last resort, in case the string returned by 'setlocale' doesn't specify the codepage. */ char *current_locale = setlocale (LC_CTYPE, NULL); char *pdot = strrchr (current_locale, '.'); if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf)) sprintf (buf, "CP%s", pdot + 1); else { /* The Windows API has a function returning the locale's codepage as a number: GetACP(). When the output goes to a console window, it needs to be provided in GetOEMCP() encoding if the console is using a raster font, or in GetConsoleOutputCP() encoding if it is using a TrueType font. But in GUI programs and for output sent to files and pipes, GetACP() encoding is the best bet. */ sprintf (buf, "CP%u", GetACP ()); } /* For a locale name such as "French_France.65001", in Windows 10, setlocale now returns "French_France.utf8" instead. */ if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0) codeset = "UTF-8"; else { strcpy (resultbuf, buf); codeset = resultbuf; } # elif defined OS2 const char *locale; static char resultbuf[2 + 10 + 1]; ULONG cp[3]; ULONG cplen; codeset = NULL; /* Allow user to override the codeset, as set in the operating system, with standard language environment variables. */ locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (resultbuf)) { /* This way of filling resultbuf is multithread-safe. */ memcpy (resultbuf, dot, modifier - dot); resultbuf [modifier - dot] = '\0'; return resultbuf; } } /* For the POSIX locale, don't use the system's codepage. */ if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0) codeset = ""; } if (codeset == NULL) { /* OS/2 has a function returning the locale's codepage as a number. */ if (DosQueryCp (sizeof (cp), cp, &cplen)) codeset = ""; else { char buf[2 + 10 + 1]; sprintf (buf, "CP%u", cp[0]); strcpy (resultbuf, buf); codeset = resultbuf; } } # else # error "Add code for other platforms here." # endif /* Resolve alias. */ { # ifdef alias_table_defined /* On some platforms, UTF-8 locales are the most frequently used ones. Speed up the common case and slow down the less common cases by testing for this case first. */ # if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || defined __sun || defined __CYGWIN__ if (strcmp (codeset, "UTF-8") == 0) goto done_table_lookup; else # endif { const struct table_entry * const table = alias_table; size_t const table_size = sizeof (alias_table) / sizeof (struct table_entry); /* The table is sorted. Perform a binary search. */ size_t hi = table_size; size_t lo = 0; while (lo < hi) { /* Invariant: for i < lo, strcmp (table[i].alias, codeset) < 0, for i >= hi, strcmp (table[i].alias, codeset) > 0. */ size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ int cmp = strcmp (table[mid].alias, codeset); if (cmp < 0) lo = mid + 1; else if (cmp > 0) hi = mid; else { /* Found an i with strcmp (table[i].alias, codeset) == 0. */ codeset = table[mid].canonical; goto done_table_lookup; } } } if (0) done_table_lookup: ; else # endif { /* Did not find it in the table. */ /* On Mac OS X, all modern locales use the UTF-8 encoding. BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ # if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ codeset = "UTF-8"; # else /* Don't return an empty string. GNU libc and GNU libiconv interpret the empty string as denoting "the locale's character encoding", thus GNU libiconv would call this function a second time. */ if (codeset[0] == '\0') codeset = "ASCII"; # endif } } #else /* On old systems which lack it, use setlocale or getenv. */ const char *locale = NULL; /* But most old systems don't have a complete set of locales. Some (like DJGPP) have only the C locale. Therefore we don't use setlocale here; it would return "C" when it doesn't support the locale name the user has set. */ # if 0 locale = setlocale (LC_CTYPE, NULL); # endif if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); if (locale == NULL) locale = ""; } } /* Map locale name to canonical encoding name. */ { # ifdef locale_table_defined const struct table_entry * const table = locale_table; size_t const table_size = sizeof (locale_table) / sizeof (struct table_entry); /* The table is sorted. Perform a binary search. */ size_t hi = table_size; size_t lo = 0; while (lo < hi) { /* Invariant: for i < lo, strcmp (table[i].locale, locale) < 0, for i >= hi, strcmp (table[i].locale, locale) > 0. */ size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ int cmp = strcmp (table[mid].locale, locale); if (cmp < 0) lo = mid + 1; else if (cmp > 0) hi = mid; else { /* Found an i with strcmp (table[i].locale, locale) == 0. */ codeset = table[mid].canonical; goto done_table_lookup; } } if (0) done_table_lookup: ; else # endif { /* Did not find it in the table. */ /* On Mac OS X, all modern locales use the UTF-8 encoding. BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ # if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ codeset = "UTF-8"; # else /* The canonical name cannot be determined. */ /* Don't return an empty string. GNU libc and GNU libiconv interpret the empty string as denoting "the locale's character encoding", thus GNU libiconv would call this function a second time. */ codeset = "ASCII"; # endif } } #endif #ifdef DARWIN7 /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" (the default codeset) does not work when MB_CUR_MAX is 1. */ if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1) codeset = "ASCII"; #endif return codeset; } ����������������������������������������������a2ps-4.15.5/lib/localcharset.h����������������������������������������������������������������������0000644�0000000�0000000�00000014316�14374751113�012740� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2003, 2009-2023 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H #ifdef __cplusplus extern "C" { #endif /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed below. The result must not be freed; it is statically allocated. The result becomes invalid when setlocale() is used to change the global locale, or when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG is changed; threads in multithreaded programs should not do this. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); /* About GNU canonical names for character encodings: Every canonical name must be supported by GNU libiconv. Support by GNU libc is also desirable. The name is case insensitive. Usually an upper case MIME charset name is preferred. The current list of these GNU canonical names is: name MIME? used by which systems (darwin = Mac OS X, windows = native Windows) ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos ISO-8859-3 Y glibc solaris cygwin ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos ISO-8859-6 Y glibc aix hpux solaris cygwin ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos ISO-8859-8 Y glibc aix hpux osf solaris cygwin zos ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin zos ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin ISO-8859-14 glibc cygwin ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin KOI8-T glibc CP437 dos CP775 dos CP850 aix osf dos CP852 dos CP855 dos CP856 aix CP857 dos CP861 dos CP862 dos CP864 dos CP865 dos CP866 freebsd netbsd openbsd darwin dos CP869 dos CP874 windows dos CP922 aix CP932 aix cygwin windows dos CP943 aix zos CP949 osf darwin windows dos CP950 windows dos CP1046 aix CP1124 aix CP1125 dos CP1129 aix CP1131 freebsd darwin CP1250 windows CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows CP1252 aix windows CP1253 windows CP1254 windows CP1255 glibc windows CP1256 windows CP1257 windows GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos EUC-TW glibc aix hpux irix osf solaris netbsd BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos BIG5-HKSCS glibc hpux solaris netbsd darwin GBK glibc aix osf solaris freebsd darwin cygwin windows dos GB18030 glibc hpux solaris freebsd netbsd darwin SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin JOHAB glibc solaris windows TIS-620 glibc aix hpux osf solaris cygwin zos VISCII Y glibc TCVN5712-1 glibc ARMSCII-8 glibc freebsd netbsd darwin GEORGIAN-PS glibc cygwin PT154 glibc netbsd cygwin HP-ROMAN8 hpux HP-ARABIC8 hpux HP-GREEK8 hpux HP-HEBREW8 hpux HP-TURKISH8 hpux HP-KANA8 hpux DEC-KANJI osf DEC-HANYU osf UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin zos Note: Names which are not marked as being a MIME name should not be used in Internet protocols for information interchange (mail, news, etc.). Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications must understand both names and treat them as equivalent. */ #ifdef __cplusplus } #endif #endif /* _LOCALCHARSET_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/locale.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000023771�14374751113�012145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A POSIX <locale.h>. Copyright (C) 2007-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if (defined _WIN32 && !defined __CYGWIN__ && defined __need_locale_t) \ || defined _GL_ALREADY_INCLUDING_LOCALE_H /* Special invocation convention: - Inside mingw header files, - To handle Solaris header files (through Solaris 10) when combined with gettext's libintl.h. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_LOCALE_H #define _GL_ALREADY_INCLUDING_LOCALE_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #undef _GL_ALREADY_INCLUDING_LOCALE_H #ifndef _@GUARD_PREFIX@_LOCALE_H #define _@GUARD_PREFIX@_LOCALE_H /* NetBSD 5.0 mis-defines NULL. */ #include <stddef.h> /* Mac OS X 10.5 defines the locale_t type in <xlocale.h>. */ #if @HAVE_XLOCALE_H@ # include <xlocale.h> #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C. On systems that don't define it, use the same value as GNU libintl. */ #if !defined LC_MESSAGES # define LC_MESSAGES 1729 #endif /* On native Windows with MSVC, 'struct lconv' lacks the members int_p_* and int_n_*. Instead of overriding 'struct lconv', merely define these member names as macros. This avoids trouble in C++ mode. */ #if defined _MSC_VER # define int_p_cs_precedes p_cs_precedes # define int_p_sign_posn p_sign_posn # define int_p_sep_by_space p_sep_by_space # define int_n_cs_precedes n_cs_precedes # define int_n_sign_posn n_sign_posn # define int_n_sep_by_space n_sep_by_space #endif /* Bionic libc's 'struct lconv' is just a dummy. */ #if @REPLACE_STRUCT_LCONV@ # define lconv rpl_lconv struct lconv { /* All 'char *' are actually 'const char *'. */ /* Members that depend on the LC_NUMERIC category of the locale. See <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_04> */ /* Symbol used as decimal point. */ char *decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *grouping; /* Members that depend on the LC_MONETARY category of the locale. See <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_03> */ /* Symbol used as decimal point. */ char *mon_decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *mon_thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *mon_grouping; /* Sign used to indicate a value >= 0. */ char *positive_sign; /* Sign used to indicate a value < 0. */ char *negative_sign; /* For formatting local currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *currency_symbol; /* Number of digits after the decimal point. */ char frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char p_cs_precedes; /* For values >= 0: Position of the sign. */ char p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char n_cs_precedes; /* For values < 0: Position of the sign. */ char n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char n_sep_by_space; /* For formatting international currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *int_curr_symbol; /* Number of digits after the decimal point. */ char int_frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_p_cs_precedes; /* For values >= 0: Position of the sign. */ char int_p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char int_p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_n_cs_precedes; /* For values < 0: Position of the sign. */ char int_n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char int_n_sep_by_space; }; #endif #if @GNULIB_LOCALECONV@ # if @REPLACE_LOCALECONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localeconv # define localeconv rpl_localeconv # endif _GL_FUNCDECL_RPL (localeconv, struct lconv *, (void)); _GL_CXXALIAS_RPL (localeconv, struct lconv *, (void)); # else _GL_CXXALIAS_SYS (localeconv, struct lconv *, (void)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (localeconv); # endif #elif @REPLACE_STRUCT_LCONV@ # undef localeconv # define localeconv localeconv_used_without_requesting_gnulib_module_localeconv #elif defined GNULIB_POSIXCHECK # undef localeconv # if HAVE_RAW_DECL_LOCALECONV _GL_WARN_ON_USE (localeconv, "localeconv returns too few information on some platforms - " "use gnulib module localeconv for portability"); # endif #endif #if @GNULIB_SETLOCALE@ # if @REPLACE_SETLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setlocale # define setlocale rpl_setlocale # define GNULIB_defined_setlocale 1 # endif _GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale)); _GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale)); # else _GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (setlocale); # endif #elif defined GNULIB_POSIXCHECK # undef setlocale # if HAVE_RAW_DECL_SETLOCALE _GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " "use gnulib module setlocale for portability"); # endif #endif #if @GNULIB_SETLOCALE_NULL@ /* Included here for convenience. */ # include "setlocale_null.h" #endif #if /*@GNULIB_NEWLOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_NEWLOCALE@) # if @REPLACE_NEWLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef newlocale # define newlocale rpl_newlocale # define GNULIB_defined_newlocale 1 # endif _GL_FUNCDECL_RPL (newlocale, locale_t, (int category_mask, const char *name, locale_t base) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (newlocale, locale_t, (int category_mask, const char *name, locale_t base)); # else # if @HAVE_NEWLOCALE@ _GL_CXXALIAS_SYS (newlocale, locale_t, (int category_mask, const char *name, locale_t base)); # endif # endif # if __GLIBC__ >= 2 && @HAVE_NEWLOCALE@ _GL_CXXALIASWARN (newlocale); # endif # if @HAVE_NEWLOCALE@ || @REPLACE_NEWLOCALE@ # ifndef HAVE_WORKING_NEWLOCALE # define HAVE_WORKING_NEWLOCALE 1 # endif # endif #elif defined GNULIB_POSIXCHECK # undef newlocale # if HAVE_RAW_DECL_NEWLOCALE _GL_WARN_ON_USE (newlocale, "newlocale is not portable"); # endif #endif #if @GNULIB_DUPLOCALE@ || (@GNULIB_LOCALENAME@ && @LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_DUPLOCALE@) # if @REPLACE_DUPLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef duplocale # define duplocale rpl_duplocale # define GNULIB_defined_duplocale 1 # endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); # else # if @HAVE_DUPLOCALE@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); # endif # endif # if __GLIBC__ >= 2 && @HAVE_DUPLOCALE@ _GL_CXXALIASWARN (duplocale); # endif # if @HAVE_DUPLOCALE@ || @REPLACE_DUPLOCALE@ # ifndef HAVE_WORKING_DUPLOCALE # define HAVE_WORKING_DUPLOCALE 1 # endif # endif #elif defined GNULIB_POSIXCHECK # undef duplocale # if HAVE_RAW_DECL_DUPLOCALE _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " "use gnulib module duplocale for portability"); # endif #endif #if /*@GNULIB_FREELOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_FREELOCALE@) # if @REPLACE_FREELOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef freelocale # define freelocale rpl_freelocale # define GNULIB_defined_freelocale 1 # endif _GL_FUNCDECL_RPL (freelocale, void, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (freelocale, void, (locale_t locale)); # else # if @HAVE_FREELOCALE@ /* Need to cast, because on FreeBSD and Mac OS X 10.13, the return type is int. */ _GL_CXXALIAS_SYS_CAST (freelocale, void, (locale_t locale)); # endif # endif # if __GLIBC__ >= 2 && @HAVE_FREELOCALE@ _GL_CXXALIASWARN (freelocale); # endif #elif defined GNULIB_POSIXCHECK # undef freelocale # if HAVE_RAW_DECL_FREELOCALE _GL_WARN_ON_USE (freelocale, "freelocale is not portable"); # endif #endif #endif /* _@GUARD_PREFIX@_LOCALE_H */ #endif /* _@GUARD_PREFIX@_LOCALE_H */ #endif /* !(__need_locale_t || _GL_ALREADY_INCLUDING_LOCALE_H) */ �������a2ps-4.15.5/lib/lstat.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000007236�14374751113�011421� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Work around a bug of lstat on some systems Copyright (C) 1997-2006, 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering */ /* If the user's config.h happens to include <sys/stat.h>, let it include only the system's <sys/stat.h> here, so that orig_lstat doesn't recurse to rpl_lstat. */ #define __need_system_sys_stat_h #include <config.h> #if !HAVE_LSTAT /* On systems that lack symlinks, our replacement <sys/stat.h> already defined lstat as stat, so there is nothing further to do other than avoid an empty file. */ typedef int dummy; #else /* HAVE_LSTAT */ /* Get the original definition of lstat. It might be defined as a macro. */ # include <sys/types.h> # include <sys/stat.h> # undef __need_system_sys_stat_h static int orig_lstat (const char *filename, struct stat *buf) { return lstat (filename, buf); } /* Specification. */ # ifdef __osf__ /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <sys/stat.h> above. */ # include "sys/stat.h" # else # include <sys/stat.h> # endif # include "stat-time.h" # include <string.h> # include <errno.h> /* lstat works differently on Linux and Solaris systems. POSIX (see "pathname resolution" in the glossary) requires that programs like 'ls' take into consideration the fact that FILE has a trailing slash when FILE is a symbolic link. On Linux and Solaris 10 systems, the lstat function already has the desired semantics (in treating 'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)', but on Solaris 9 and earlier it does not. If FILE has a trailing slash and specifies a symbolic link, then use stat() to get more info on the referent of FILE. If the referent is a non-directory, then set errno to ENOTDIR and return -1. Otherwise, return stat's result. */ int rpl_lstat (const char *file, struct stat *sbuf) { int result = orig_lstat (file, sbuf); /* This replacement file can blindly check against '/' rather than using the ISSLASH macro, because all platforms with '\\' either lack symlinks (mingw) or have working lstat (cygwin) and thus do not compile this file. 0 len should have already been filtered out above, with a failure return of ENOENT. */ if (result == 0) { if (S_ISDIR (sbuf->st_mode) || file[strlen (file) - 1] != '/') result = stat_time_normalize (result, sbuf); else { /* At this point, a trailing slash is permitted only on symlink-to-dir; but it should have found information on the directory, not the symlink. Call 'stat' to get info about the link's referent. Our replacement stat guarantees valid results, even if the symlink is not pointing to a directory. */ if (!S_ISLNK (sbuf->st_mode)) { errno = ENOTDIR; return -1; } result = stat (file, sbuf); } } return result; } #endif /* HAVE_LSTAT */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/malloc/�����������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132365�011446� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/malloc/scratch_buffer.h�������������������������������������������������������������0000644�0000000�0000000�00000011742�14374751113�014523� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Variable-sized buffer with on-stack default allocation. Copyright (C) 2015-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _SCRATCH_BUFFER_H #define _SCRATCH_BUFFER_H /* Scratch buffers with a default stack allocation and fallback to heap allocation. It is expected that this function is used in this way: struct scratch_buffer tmpbuf; scratch_buffer_init (&tmpbuf); while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) if (!scratch_buffer_grow (&tmpbuf)) return -1; scratch_buffer_free (&tmpbuf); return 0; The allocation functions (scratch_buffer_grow, scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make sure that the heap allocation, if any, is freed, so that the code above does not have a memory leak. The buffer still remains in a state that can be deallocated using scratch_buffer_free, so a loop like this is valid as well: struct scratch_buffer tmpbuf; scratch_buffer_init (&tmpbuf); while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) if (!scratch_buffer_grow (&tmpbuf)) break; scratch_buffer_free (&tmpbuf); scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed to grow the buffer by at least 512 bytes. This means that when using the scratch buffer as a backing store for a non-character array whose element size, in bytes, is 512 or smaller, the scratch buffer only has to grow once to make room for at least one more element. */ #include <stdbool.h> #include <stddef.h> #include <stdlib.h> /* Scratch buffer. Must be initialized with scratch_buffer_init before its use. */ struct scratch_buffer { void *data; /* Pointer to the beginning of the scratch area. */ size_t length; /* Allocated space at the data pointer, in bytes. */ union { max_align_t __align; char __c[1024]; } __space; }; /* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space and BUFFER->length reflects the available space. */ static inline void scratch_buffer_init (struct scratch_buffer *buffer) { buffer->data = buffer->__space.__c; buffer->length = sizeof (buffer->__space); } /* Deallocates *BUFFER (if it was heap-allocated). */ static inline void scratch_buffer_free (struct scratch_buffer *buffer) { if (buffer->data != buffer->__space.__c) free (buffer->data); } /* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT preserved. Return true on success, false on allocation failure (in which case the old buffer is freed). On success, the new buffer is larger than the previous size. On failure, *BUFFER is deallocated, but remains in a free-able state, and errno is set. */ bool __libc_scratch_buffer_grow (struct scratch_buffer *buffer); libc_hidden_proto (__libc_scratch_buffer_grow) /* Alias for __libc_scratch_buffer_grow. */ static __always_inline bool scratch_buffer_grow (struct scratch_buffer *buffer) { return __glibc_likely (__libc_scratch_buffer_grow (buffer)); } /* Like __libc_scratch_buffer_grow, but preserve the old buffer contents on success, as a prefix of the new buffer. */ bool __libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer); libc_hidden_proto (__libc_scratch_buffer_grow_preserve) /* Alias for __libc_scratch_buffer_grow_preserve. */ static __always_inline bool scratch_buffer_grow_preserve (struct scratch_buffer *buffer) { return __glibc_likely (__libc_scratch_buffer_grow_preserve (buffer)); } /* Grow *BUFFER so that it can store at least NELEM elements of SIZE bytes. The buffer contents are NOT preserved. Both NELEM and SIZE can be zero. Return true on success, false on allocation failure (in which case the old buffer is freed, but *BUFFER remains in a free-able state, and errno is set). It is unspecified whether this function can reduce the array size. */ bool __libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer, size_t nelem, size_t size); libc_hidden_proto (__libc_scratch_buffer_set_array_size) /* Alias for __libc_scratch_set_array_size. */ static __always_inline bool scratch_buffer_set_array_size (struct scratch_buffer *buffer, size_t nelem, size_t size) { return __glibc_likely (__libc_scratch_buffer_set_array_size (buffer, nelem, size)); } #endif /* _SCRATCH_BUFFER_H */ ������������������������������a2ps-4.15.5/lib/malloc/scratch_buffer_grow.c��������������������������������������������������������0000644�0000000�0000000�00000003145�14374751113�015552� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Variable-sized buffer with on-stack default allocation. Copyright (C) 2015-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <libc-config.h> #endif #include <scratch_buffer.h> #include <errno.h> bool __libc_scratch_buffer_grow (struct scratch_buffer *buffer) { void *new_ptr; size_t new_length = buffer->length * 2; /* Discard old buffer. */ scratch_buffer_free (buffer); /* Check for overflow. */ if (__glibc_likely (new_length >= buffer->length)) new_ptr = malloc (new_length); else { __set_errno (ENOMEM); new_ptr = NULL; } if (__glibc_unlikely (new_ptr == NULL)) { /* Buffer must remain valid to free. */ scratch_buffer_init (buffer); return false; } /* Install new heap-based buffer. */ buffer->data = new_ptr; buffer->length = new_length; return true; } libc_hidden_def (__libc_scratch_buffer_grow) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/malloc/scratch_buffer_grow_preserve.c�����������������������������������������������0000644�0000000�0000000�00000003754�14374751113�017473� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Variable-sized buffer with on-stack default allocation. Copyright (C) 2015-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <libc-config.h> #endif #include <scratch_buffer.h> #include <errno.h> #include <string.h> bool __libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer) { size_t new_length = 2 * buffer->length; void *new_ptr; if (buffer->data == buffer->__space.__c) { /* Move buffer to the heap. No overflow is possible because buffer->length describes a small buffer on the stack. */ new_ptr = malloc (new_length); if (new_ptr == NULL) return false; memcpy (new_ptr, buffer->__space.__c, buffer->length); } else { /* Buffer was already on the heap. Check for overflow. */ if (__glibc_likely (new_length >= buffer->length)) new_ptr = realloc (buffer->data, new_length); else { __set_errno (ENOMEM); new_ptr = NULL; } if (__glibc_unlikely (new_ptr == NULL)) { /* Deallocate, but buffer must remain valid to free. */ free (buffer->data); scratch_buffer_init (buffer); return false; } } /* Install new heap-based buffer. */ buffer->data = new_ptr; buffer->length = new_length; return true; } libc_hidden_def (__libc_scratch_buffer_grow_preserve) ��������������������a2ps-4.15.5/lib/malloc/scratch_buffer_set_array_size.c����������������������������������������������0000644�0000000�0000000�00000003653�14374751113�017623� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Variable-sized buffer with on-stack default allocation. Copyright (C) 2015-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <libc-config.h> #endif #include <scratch_buffer.h> #include <errno.h> #include <limits.h> bool __libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer, size_t nelem, size_t size) { size_t new_length = nelem * size; /* Avoid overflow check if both values are small. */ if ((nelem | size) >> (sizeof (size_t) * CHAR_BIT / 2) != 0 && nelem != 0 && size != new_length / nelem) { /* Overflow. Discard the old buffer, but it must remain valid to free. */ scratch_buffer_free (buffer); scratch_buffer_init (buffer); __set_errno (ENOMEM); return false; } if (new_length <= buffer->length) return true; /* Discard old buffer. */ scratch_buffer_free (buffer); char *new_ptr = malloc (new_length); if (new_ptr == NULL) { /* Buffer must remain valid to free. */ scratch_buffer_init (buffer); return false; } /* Install new heap-based buffer. */ buffer->data = new_ptr; buffer->length = new_length; return true; } libc_hidden_def (__libc_scratch_buffer_set_array_size) �������������������������������������������������������������������������������������a2ps-4.15.5/lib/malloc.c����������������������������������������������������������������������������0000644�0000000�0000000�00000002430�14374751113�011530� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* malloc() function that is glibc compatible. Copyright (C) 1997-1998, 2006-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include <config.h> #include <stdlib.h> #include <errno.h> #include "xalloc-oversized.h" /* Allocate an N-byte block of memory from the heap, even if N is 0. */ void * rpl_malloc (size_t n) { if (n == 0) n = 1; if (xalloc_oversized (n, 1)) { errno = ENOMEM; return NULL; } void *result = malloc (n); #if !HAVE_MALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/malloca.c���������������������������������������������������������������������������0000644�0000000�0000000�00000007165�14374751113�011703� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Safe automatic memory allocation. Copyright (C) 2003, 2006-2007, 2009-2023 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003, 2018. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define _GL_USE_STDLIB_ALLOC 1 #include <config.h> /* Specification. */ #include "malloca.h" #include <stdckdint.h> #include "idx.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they are only invoked for big memory sizes. Here we use a bit in the address as an indicator, an idea by Ondřej Bílka. malloca() can return three types of pointers: - Pointers ≡ 0 mod 2*sa_alignment_max come from stack allocation. - Pointers ≡ sa_alignment_max mod 2*sa_alignment_max come from heap allocation. - NULL comes from a failed heap allocation. */ /* Type for holding very small pointer differences. */ typedef unsigned char small_t; /* Verify that it is wide enough. */ static_assert (2 * sa_alignment_max - 1 <= (small_t) -1); void * mmalloca (size_t n) { #if HAVE_ALLOCA /* Allocate one more word, used to determine the address to pass to freea(), and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */ uintptr_t alignment2_mask = 2 * sa_alignment_max - 1; int plus = sizeof (small_t) + alignment2_mask; idx_t nplus; if (!ckd_add (&nplus, n, plus) && !xalloc_oversized (nplus, 1)) { char *mem = (char *) malloc (nplus); if (mem != NULL) { uintptr_t umem = (uintptr_t)mem, umemplus; /* The ckd_add avoids signed integer overflow on theoretical platforms where UINTPTR_MAX <= INT_MAX. */ ckd_add (&umemplus, umem, sizeof (small_t) + sa_alignment_max - 1); idx_t offset = ((umemplus & ~alignment2_mask) + sa_alignment_max - umem); void *vp = mem + offset; small_t *p = vp; /* Here p >= mem + sizeof (small_t), and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1 hence p + n <= mem + nplus. So, the memory range [p, p+n) lies in the allocated memory range [mem, mem + nplus). */ p[-1] = offset; /* p ≡ sa_alignment_max mod 2*sa_alignment_max. */ return p; } } /* Out of memory. */ return NULL; #else # if !MALLOC_0_IS_NONNULL if (n == 0) n = 1; # endif return malloc (n); #endif } #if HAVE_ALLOCA void freea (void *p) { /* Check argument. */ if ((uintptr_t) p & (sa_alignment_max - 1)) { /* p was not the result of a malloca() call. Invalid argument. */ abort (); } /* Determine whether p was a non-NULL pointer returned by mmalloca(). */ if ((uintptr_t) p & sa_alignment_max) { void *mem = (char *) p - ((small_t *) p)[-1]; free (mem); } } #endif /* * Hey Emacs! * Local Variables: * coding: utf-8 * End: */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/malloca.h���������������������������������������������������������������������������0000644�0000000�0000000�00000010773�14374751113�011707� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Safe automatic memory allocation. Copyright (C) 2003-2007, 2009-2023 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MALLOCA_H #define _MALLOCA_H #include <alloca.h> #include <stddef.h> #include <stdlib.h> #include <stdint.h> #include "xalloc-oversized.h" #ifdef __cplusplus extern "C" { #endif /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call alloca(N); otherwise it returns NULL. It either returns N bytes of memory allocated on the stack, that lasts until the function returns, or NULL. Use of safe_alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns. */ #if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. This must be a macro, not a function. */ # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) #else # define safe_alloca(N) ((void) (N), NULL) #endif /* Free a block of memory allocated through malloca(). */ #if HAVE_ALLOCA extern void freea (void *p); #else # define freea free #endif /* malloca(N) is a safe variant of alloca(N). It allocates N bytes of memory allocated on the stack, that must be freed using freea() before the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ ((N) < 4032 - (2 * sa_alignment_max - 1) \ ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ + (2 * sa_alignment_max - 1)) \ & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ : mmalloca (N)) #else # define malloca(N) \ mmalloca (N) #endif extern void *mmalloca (size_t n) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1) _GL_ATTRIBUTE_ALLOC_SIZE ((1)); /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). It allocates an array of N objects, each with S bytes of memory, on the stack. N and S should be nonnegative and free of side effects. The array must be freed using freea() before the function returns. */ #define nmalloca(n, s) \ (xalloc_oversized (n, s) ? NULL : malloca ((n) * (size_t) (s))) #ifdef __cplusplus } #endif /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ # define sa_alignof __alignof__ #elif defined __cplusplus template <class type> struct sa_alignof_helper { char __slot1; type __slot2; }; # define sa_alignof(type) offsetof (sa_alignof_helper<type>, __slot2) #elif defined __hpux /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #elif defined _AIX /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #else # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif enum { /* The desired alignment of memory allocations is the maximum alignment among all elementary types. */ sa_alignment_long = sa_alignof (long), sa_alignment_double = sa_alignof (double), sa_alignment_longlong = sa_alignof (long long), sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) | (sa_alignment_longlong - 1) | (sa_alignment_longdouble - 1) ) + 1 }; #endif /* _MALLOCA_H */ �����a2ps-4.15.5/lib/mbrtowc-impl-utf8.h�����������������������������������������������������������������0000644�0000000�0000000�00000012255�14374751113�013574� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert multibyte character to wide character. Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2008. */ /* This file contains the part of the body of the mbrtowc and mbrtoc32 functions that handles the special case of the UTF-8 encoding. */ /* Cf. unistr/u8-mbtouc.c. */ unsigned char c = (unsigned char) p[0]; if (c < 0x80) { if (pwc != NULL) *pwc = c; res = (c == 0 ? 0 : 1); goto success; } if (c >= 0xc2) { if (c < 0xe0) { if (m == 1) goto incomplete; else /* m >= 2 */ { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40) { if (pwc != NULL) *pwc = ((unsigned int) (c & 0x1f) << 6) | (unsigned int) (c2 ^ 0x80); res = 2; goto success; } } } else if (c < 0xf0) { if (m == 1) goto incomplete; else { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40 && (c >= 0xe1 || c2 >= 0xa0) && (c != 0xed || c2 < 0xa0)) { if (m == 2) goto incomplete; else /* m >= 3 */ { unsigned char c3 = (unsigned char) p[2]; if ((c3 ^ 0x80) < 0x40) { unsigned int wc = (((unsigned int) (c & 0x0f) << 12) | ((unsigned int) (c2 ^ 0x80) << 6) | (unsigned int) (c3 ^ 0x80)); if (FITS_IN_CHAR_TYPE (wc)) { if (pwc != NULL) *pwc = wc; res = 3; goto success; } } } } } } else if (c <= 0xf4) { if (m == 1) goto incomplete; else { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40 && (c >= 0xf1 || c2 >= 0x90) && (c < 0xf4 || (/* c == 0xf4 && */ c2 < 0x90))) { if (m == 2) goto incomplete; else { unsigned char c3 = (unsigned char) p[2]; if ((c3 ^ 0x80) < 0x40) { if (m == 3) goto incomplete; else /* m >= 4 */ { unsigned char c4 = (unsigned char) p[3]; if ((c4 ^ 0x80) < 0x40) { unsigned int wc = (((unsigned int) (c & 0x07) << 18) | ((unsigned int) (c2 ^ 0x80) << 12) | ((unsigned int) (c3 ^ 0x80) << 6) | (unsigned int) (c4 ^ 0x80)); if (FITS_IN_CHAR_TYPE (wc)) { if (pwc != NULL) *pwc = wc; res = 4; goto success; } } } } } } } } } goto invalid; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/mbrtowc-impl.h����������������������������������������������������������������������0000644�0000000�0000000�00000016240�14374751113�012706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert multibyte character to wide character. Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2008. */ /* This file contains the body of the mbrtowc and mbrtoc32 functions, when GNULIB_defined_mbstate_t is defined. */ char *pstate = (char *)ps; if (s == NULL) { pwc = NULL; s = ""; n = 1; } if (n == 0) return (size_t)(-2); /* Here n > 0. */ if (pstate == NULL) pstate = internal_state; { size_t nstate = pstate[0]; char buf[4]; const char *p; size_t m; enc_t enc; int res; switch (nstate) { case 0: p = s; m = n; break; case 3: buf[2] = pstate[3]; FALLTHROUGH; case 2: buf[1] = pstate[2]; FALLTHROUGH; case 1: buf[0] = pstate[1]; p = buf; m = nstate; buf[m++] = s[0]; if (n >= 2 && m < 4) { buf[m++] = s[1]; if (n >= 3 && m < 4) buf[m++] = s[2]; } break; default: errno = EINVAL; return (size_t)(-1); } /* Here m > 0. */ enc = locale_encoding_classification (); if (enc == enc_utf8) /* UTF-8 */ { /* Achieve - multi-thread safety and - the ability to produce wide character values > WCHAR_MAX by not calling mbtowc() at all. */ #include "mbrtowc-impl-utf8.h" } else { /* The hidden internal state of mbtowc would make this function not multi-thread safe. Achieve multi-thread safety through a lock. */ wchar_t wc; res = mbtowc_with_lock (&wc, p, m); if (res >= 0) { if ((wc == 0) != (res == 0)) abort (); if (pwc != NULL) *pwc = wc; goto success; } /* mbtowc does not distinguish between invalid and incomplete multibyte sequences. But mbrtowc needs to make this distinction. There are two possible approaches: - Use iconv() and its return value. - Use built-in knowledge about the possible encodings. Given the low quality of implementation of iconv() on the systems that lack mbrtowc(), we use the second approach. The possible encodings are: - 8-bit encodings, - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, - UTF-8 (already handled above). Use specialized code for each. */ if (m >= 4 || m >= MB_CUR_MAX) goto invalid; /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ switch (enc) { /* As a reference for this code, you can use the GNU libiconv implementation. Look for uses of the RET_TOOFEW macro. */ case enc_eucjp: /* EUC-JP */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) goto incomplete; } if (m == 2) { unsigned char c = (unsigned char) p[0]; if (c == 0x8f) { unsigned char c2 = (unsigned char) p[1]; if (c2 >= 0xa1 && c2 < 0xff) goto incomplete; } } goto invalid; } case enc_94: /* EUC-KR, GB2312, BIG5 */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if (c >= 0xa1 && c < 0xff) goto incomplete; } goto invalid; } case enc_euctw: /* EUC-TW */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0xa1 && c < 0xff) || c == 0x8e) goto incomplete; } else /* m == 2 || m == 3 */ { unsigned char c = (unsigned char) p[0]; if (c == 0x8e) goto incomplete; } goto invalid; } case enc_gb18030: /* GB18030 */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) goto incomplete; } else /* m == 2 || m == 3 */ { unsigned char c = (unsigned char) p[0]; if (c >= 0x90 && c <= 0xe3) { unsigned char c2 = (unsigned char) p[1]; if (c2 >= 0x30 && c2 <= 0x39) { if (m == 2) goto incomplete; else /* m == 3 */ { unsigned char c3 = (unsigned char) p[2]; if (c3 >= 0x81 && c3 <= 0xfe) goto incomplete; } } } } goto invalid; } case enc_sjis: /* SJIS */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) || (c >= 0xf0 && c <= 0xf9)) goto incomplete; } goto invalid; } default: /* An unknown multibyte encoding. */ goto incomplete; } } success: /* res >= 0 is the corrected return value of mbtowc_with_lock (&wc, p, m). */ if (nstate >= (res > 0 ? res : 1)) abort (); res -= nstate; pstate[0] = 0; return res; incomplete: { size_t k = nstate; /* Here 0 <= k < m < 4. */ pstate[++k] = s[0]; if (k < m) { pstate[++k] = s[1]; if (k < m) pstate[++k] = s[2]; } if (k != m) abort (); } pstate[0] = m; return (size_t)(-2); invalid: errno = EILSEQ; /* The conversion state is undefined, says POSIX. */ return (size_t)(-1); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/mbrtowc.c���������������������������������������������������������������������������0000644�0000000�0000000�00000007147�14374751113�011750� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert multibyte character to wide character. Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <wchar.h> #if GNULIB_defined_mbstate_t /* Implement mbrtowc() on top of mbtowc() for the non-UTF-8 locales and directly for the UTF-8 locales. */ # include <errno.h> # include <stdint.h> # include <stdlib.h> # if defined _WIN32 && !defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> # elif HAVE_PTHREAD_API # include <pthread.h> # if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS # include <threads.h> # pragma weak thrd_exit # define c11_threads_in_use() (thrd_exit != NULL) # else # define c11_threads_in_use() 0 # endif # elif HAVE_THREADS_H # include <threads.h> # endif # include "attribute.h" # include "lc-charset-dispatch.h" # include "mbtowc-lock.h" static_assert (sizeof (mbstate_t) >= 4); static char internal_state[4]; size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { # define FITS_IN_CHAR_TYPE(wc) ((wc) <= WCHAR_MAX) # include "mbrtowc-impl.h" } #else /* Override the system's mbrtowc() function. */ # if MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ # include "hard-locale.h" # include <locale.h> # endif # undef mbrtowc size_t rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { size_t ret; wchar_t wc; # if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG if (s == NULL) { pwc = NULL; s = ""; n = 1; } # endif # if MBRTOWC_EMPTY_INPUT_BUG if (n == 0) return (size_t) -2; # endif if (! pwc) pwc = &wc; # if MBRTOWC_RETVAL_BUG { static mbstate_t internal_state; /* Override mbrtowc's internal state. We cannot call mbsinit() on the hidden internal state, but we can call it on our variable. */ if (ps == NULL) ps = &internal_state; if (!mbsinit (ps)) { /* Parse the rest of the multibyte character byte for byte. */ size_t count = 0; for (; n > 0; s++, n--) { ret = mbrtowc (&wc, s, 1, ps); if (ret == (size_t)(-1)) return (size_t)(-1); count++; if (ret != (size_t)(-2)) { /* The multibyte character has been completed. */ *pwc = wc; return (wc == 0 ? 0 : count); } } return (size_t)(-2); } } # endif # if MBRTOWC_STORES_INCOMPLETE_BUG ret = mbrtowc (&wc, s, n, ps); if (ret < (size_t) -2 && pwc != NULL) *pwc = wc; # else ret = mbrtowc (pwc, s, n, ps); # endif # if MBRTOWC_NUL_RETVAL_BUG if (ret < (size_t) -2 && !*pwc) return 0; # endif # if MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE)) { unsigned char uc = *s; *pwc = uc; return 1; } # endif return ret; } #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/mbsinit.c���������������������������������������������������������������������������0000644�0000000�0000000�00000004532�14374751113�011733� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Test for initial conversion state. Copyright (C) 2008-2023 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <wchar.h> #if GNULIB_defined_mbstate_t /* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs() and wcrtomb(), wcsrtombs(). We assume that - sizeof (mbstate_t) >= 4, - only stateless encodings are supported (such as UTF-8 and EUC-JP, but not ISO-2022 variants), - for each encoding, the number of bytes for a wide character is <= 4. (This maximum is attained for UTF-8, GB18030, EUC-TW.) We define the meaning of mbstate_t as follows: - In mb -> wc direction, mbstate_t's first byte contains the number of buffered bytes (in the range 0..3), followed by up to 3 buffered bytes. See mbrtowc.c. - In wc -> mb direction, mbstate_t contains no information. In other words, it is always in the initial state. */ static_assert (sizeof (mbstate_t) >= 4); int mbsinit (const mbstate_t *ps) { const char *pstate = (const char *)ps; return pstate == NULL || pstate[0] == 0; } #else int mbsinit (const mbstate_t *ps) { # if defined _WIN32 && !defined __CYGWIN__ /* Native Windows. */ /* MSVC defines 'mbstate_t' as an 8-byte struct; the first 4 bytes matter. On mingw, 'mbstate_t' is sometimes defined as 'int', sometimes defined as an 8-byte struct, of which the first 4 bytes matter. */ return ps == NULL || *(const unsigned int *)ps == 0; # else /* Minix, HP-UX 11.00, Solaris 2.6, Interix, ... */ /* Maybe this definition works, maybe not... */ return ps == NULL || *(const char *)ps == 0; # endif } #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/mbtowc-lock.c�����������������������������������������������������������������������0000644�0000000�0000000�00000010446�14374751113�012510� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Return the internal lock used by mbrtowc and mbrtoc32. Copyright (C) 2019-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2019-2020. */ #include <config.h> /* When it is known that the gl_get_mbtowc_lock function is defined by a dependency library, it should not be defined here. */ #if OMIT_MBTOWC_LOCK /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #else /* This file defines the internal lock used by mbrtowc and mbrtoc32. It is a separate compilation unit, so that only one copy of it is present when linking statically. */ /* Prohibit renaming this symbol. */ # undef gl_get_mbtowc_lock /* Macro for exporting a symbol (function, not variable) defined in this file, when compiled into a shared library. */ # ifndef DLL_EXPORTED # if HAVE_VISIBILITY /* Override the effect of the compiler option '-fvisibility=hidden'. */ # define DLL_EXPORTED __attribute__((__visibility__("default"))) # elif defined _WIN32 || defined __CYGWIN__ # define DLL_EXPORTED __declspec(dllexport) # else # define DLL_EXPORTED # endif # endif # if defined _WIN32 && !defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> # include "windows-initguard.h" /* The return type is a 'CRITICAL_SECTION *', not a 'glwthread_mutex_t *', because the latter is not guaranteed to be a stable ABI in the future. */ /* Make sure the function gets exported from DLLs. */ DLL_EXPORTED CRITICAL_SECTION *gl_get_mbtowc_lock (void); static glwthread_initguard_t guard = GLWTHREAD_INITGUARD_INIT; static CRITICAL_SECTION lock; /* Returns the internal lock used by mbrtowc and mbrtoc32. */ CRITICAL_SECTION * gl_get_mbtowc_lock (void) { if (!guard.done) { if (InterlockedIncrement (&guard.started) == 0) { /* This thread is the first one to need the lock. Initialize it. */ InitializeCriticalSection (&lock); guard.done = 1; } else { /* Don't let guard.started grow and wrap around. */ InterlockedDecrement (&guard.started); /* Yield the CPU while waiting for another thread to finish initializing this mutex. */ while (!guard.done) Sleep (0); } } return &lock; } # elif HAVE_PTHREAD_API # include <pthread.h> static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; /* Make sure the function gets exported from shared libraries. */ DLL_EXPORTED pthread_mutex_t *gl_get_mbtowc_lock (void); /* Returns the internal lock used by mbrtowc and mbrtoc32. */ pthread_mutex_t * gl_get_mbtowc_lock (void) { return &mutex; } # elif HAVE_THREADS_H # include <threads.h> # include <stdlib.h> static int volatile init_needed = 1; static once_flag init_once = ONCE_FLAG_INIT; static mtx_t mutex; static void atomic_init (void) { if (mtx_init (&mutex, mtx_plain) != thrd_success) abort (); init_needed = 0; } /* Make sure the function gets exported from shared libraries. */ DLL_EXPORTED mtx_t *gl_get_mbtowc_lock (void); /* Returns the internal lock used by mbrtowc and mbrtoc32. */ mtx_t * gl_get_mbtowc_lock (void) { if (init_needed) call_once (&init_once, atomic_init); return &mutex; } # endif # if (defined _WIN32 || defined __CYGWIN__) && !defined _MSC_VER /* Make sure the '__declspec(dllimport)' in mbrtowc.c and mbrtoc32.c does not cause a link failure when no DLLs are involved. */ # if defined _WIN64 || defined _LP64 # define IMP(x) __imp_##x # else # define IMP(x) _imp__##x # endif void * IMP(gl_get_mbtowc_lock) = &gl_get_mbtowc_lock; # endif #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/mbtowc-lock.h�����������������������������������������������������������������������0000644�0000000�0000000�00000006304�14374751113�012513� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Use the internal lock used by mbrtowc and mbrtoc32. Copyright (C) 2019-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2019-2020. */ /* Use a lock, so that no two threads can invoke mbtowc at the same time. */ static inline int mbtowc_unlocked (wchar_t *pwc, const char *p, size_t m) { /* Put the hidden internal state of mbtowc into its initial state. This is needed at least with glibc, uClibc, and MSVC CRT. See <https://sourceware.org/bugzilla/show_bug.cgi?id=9674>. */ mbtowc (NULL, NULL, 0); return mbtowc (pwc, p, m); } /* Prohibit renaming this symbol. */ #undef gl_get_mbtowc_lock #if GNULIB_MBRTOWC_SINGLE_THREAD /* All uses of this function are in a single thread. No locking needed. */ static int mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) { return mbtowc_unlocked (pwc, p, m); } #elif defined _WIN32 && !defined __CYGWIN__ extern __declspec(dllimport) CRITICAL_SECTION *gl_get_mbtowc_lock (void); static int mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) { CRITICAL_SECTION *lock = gl_get_mbtowc_lock (); int ret; EnterCriticalSection (lock); ret = mbtowc_unlocked (pwc, p, m); LeaveCriticalSection (lock); return ret; } #elif HAVE_PTHREAD_API /* AIX, IRIX, Cygwin */ extern # if defined _WIN32 || defined __CYGWIN__ __declspec(dllimport) # endif pthread_mutex_t *gl_get_mbtowc_lock (void); # if HAVE_WEAK_SYMBOLS /* IRIX */ /* Avoid the need to link with '-lpthread'. */ # pragma weak pthread_mutex_lock # pragma weak pthread_mutex_unlock /* Determine whether libpthread is in use. */ # pragma weak pthread_mutexattr_gettype /* See the comments in lock.h. */ # define pthread_in_use() \ (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) # else # define pthread_in_use() 1 # endif static int mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) { if (pthread_in_use()) { pthread_mutex_t *lock = gl_get_mbtowc_lock (); int ret; if (pthread_mutex_lock (lock)) abort (); ret = mbtowc_unlocked (pwc, p, m); if (pthread_mutex_unlock (lock)) abort (); return ret; } else return mbtowc_unlocked (pwc, p, m); } #elif HAVE_THREADS_H extern mtx_t *gl_get_mbtowc_lock (void); static int mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) { mtx_t *lock = gl_get_mbtowc_lock (); int ret; if (mtx_lock (lock) != thrd_success) abort (); ret = mbtowc_unlocked (pwc, p, m); if (mtx_unlock (lock) != thrd_success) abort (); return ret; } #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/memchr.c����������������������������������������������������������������������������0000644�0000000�0000000�00000013455�14374751113�011545� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2023 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se) and commentary by Jim Blandy (jimb@ai.mit.edu); adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), and implemented by Roland McGrath (roland@ai.mit.edu). NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <config.h> #endif #include <string.h> #include <stddef.h> #if defined _LIBC # include <memcopy.h> #else # define reg_char char #endif #include <limits.h> #if HAVE_BP_SYM_H || defined _LIBC # include <bp-sym.h> #else # define BP_SYM(sym) sym #endif #undef __memchr #ifdef _LIBC # undef memchr #endif #ifndef weak_alias # define __memchr memchr #endif /* Search no more than N bytes of S for C. */ void * __memchr (void const *s, int c_in, size_t n) { /* On 32-bit hardware, choosing longword to be a 32-bit unsigned long instead of a 64-bit uintmax_t tends to give better performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; longword repeated_one; longword repeated_c; unsigned reg_char c; c = (unsigned char) c_in; /* Handle the first few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s; n > 0 && (size_t) char_ptr % sizeof (longword) != 0; --n, ++char_ptr) if (*char_ptr == c) return (void *) char_ptr; longword_ptr = (const longword *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ repeated_one = 0x01010101; repeated_c = c | (c << 8); repeated_c |= repeated_c << 16; if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) { size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) { repeated_one |= repeated_one << i; repeated_c |= repeated_c << i; } } } /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if *any of the four* bytes in the longword in question are equal to c. We first use an xor with repeated_c. This reduces the task to testing whether *any of the four* bytes in longword1 is zero. We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. So, the test whether any byte in longword1 is zero is equivalent to testing whether tmp is nonzero. */ while (n >= sizeof (longword)) { longword longword1 = *longword_ptr ^ repeated_c; if ((((longword1 - repeated_one) & ~longword1) & (repeated_one << 7)) != 0) break; longword_ptr++; n -= sizeof (longword); } char_ptr = (const unsigned char *) longword_ptr; /* At this point, we know that either n < sizeof (longword), or one of the sizeof (longword) bytes starting at char_ptr is == c. On little-endian machines, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. But this does not work on big-endian machines. Choose code that works in both cases. */ for (; n > 0; --n, ++char_ptr) { if (*char_ptr == c) return (void *) char_ptr; } return NULL; } #ifdef weak_alias weak_alias (__memchr, BP_SYM (memchr)) #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/memchr.valgrind���������������������������������������������������������������������0000644�0000000�0000000�00000002163�14374751113�013123� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Suppress a valgrind message about use of uninitialized memory in memchr(). # Copyright (C) 2009-2023 Free Software Foundation, Inc. # # This file is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # License, or (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # POSIX states that when the character is found, memchr must not read extra # bytes in an overestimated length (for example, where memchr is used to # implement strnlen). However, we use a safe word read to provide a speedup. { memchr-value4 Memcheck:Value4 fun:rpl_memchr } { memchr-value8 Memcheck:Value8 fun:rpl_memchr } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/mempcpy.c���������������������������������������������������������������������������0000644�0000000�0000000�00000002213�14374751113�011732� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copy memory area and return pointer after last written byte. Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <string.h> /* A function definition is only needed if HAVE_MEMPCPY is not defined. */ #if !HAVE_MEMPCPY /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ void * mempcpy (void *dest, const void *src, size_t n) { return (char *) memcpy (dest, src, n) + n; } #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/memrchr.c���������������������������������������������������������������������������0000644�0000000�0000000�00000013115�14374751113�011720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* memrchr -- find the last occurrence of a byte in a memory block Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2023 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se) and commentary by Jim Blandy (jimb@ai.mit.edu); adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), and implemented by Roland McGrath (roland@ai.mit.edu). This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if defined _LIBC # include <memcopy.h> #else # include <config.h> # define reg_char char #endif #include <string.h> #include <limits.h> #undef __memrchr #ifdef _LIBC # undef memrchr #endif #ifndef weak_alias # define __memrchr memrchr #endif /* Search no more than N bytes of S for C. */ void * __memrchr (void const *s, int c_in, size_t n) { /* On 32-bit hardware, choosing longword to be a 32-bit unsigned long instead of a 64-bit uintmax_t tends to give better performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; longword repeated_one; longword repeated_c; unsigned reg_char c; c = (unsigned char) c_in; /* Handle the last few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s + n; n > 0 && (size_t) char_ptr % sizeof (longword) != 0; --n) if (*--char_ptr == c) return (void *) char_ptr; longword_ptr = (const void *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ repeated_one = 0x01010101; repeated_c = c | (c << 8); repeated_c |= repeated_c << 16; if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) { size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) { repeated_one |= repeated_one << i; repeated_c |= repeated_c << i; } } } /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if *any of the four* bytes in the longword in question are equal to c. We first use an xor with repeated_c. This reduces the task to testing whether *any of the four* bytes in longword1 is zero. We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. So, the test whether any byte in longword1 is zero is equivalent to testing whether tmp is nonzero. */ while (n >= sizeof (longword)) { longword longword1 = *--longword_ptr ^ repeated_c; if ((((longword1 - repeated_one) & ~longword1) & (repeated_one << 7)) != 0) { longword_ptr++; break; } n -= sizeof (longword); } char_ptr = (const unsigned char *) longword_ptr; /* At this point, we know that either n < sizeof (longword), or one of the sizeof (longword) bytes starting at char_ptr is == c. On little-endian machines, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. But this does not work on big-endian machines. Choose code that works in both cases. */ while (n-- > 0) { if (*--char_ptr == c) return (void *) char_ptr; } return NULL; } #ifdef weak_alias weak_alias (__memrchr, memrchr) #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/minmax.h����������������������������������������������������������������������������0000644�0000000�0000000�00000004532�14374751113�011564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* MIN, MAX macros. Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MINMAX_H #define _MINMAX_H /* Note: MIN, MAX are also defined in <sys/param.h> on some systems (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about MIN, MAX macro redefinitions on some systems; the workaround is to #include this file as the last one among the #include list. */ /* Before we define the following symbols we get the <limits.h> file since otherwise we get redefinitions on some systems if <limits.h> is included after this file. Likewise for <sys/param.h>. If more than one of these system headers define MIN and MAX, pick just one of the headers (because the definitions most likely are the same). */ #if HAVE_MINMAX_IN_LIMITS_H # include <limits.h> #elif HAVE_MINMAX_IN_SYS_PARAM_H # include <sys/param.h> #endif /* Note: MIN and MAX should be used with two arguments of the same type. They might not return the minimum and maximum of their two arguments, if the arguments have different types or have unusual floating-point values. For example, on a typical host with 32-bit 'int', 64-bit 'long long', and 64-bit IEEE 754 'double' types: MAX (-1, 2147483648) returns 4294967295. MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0. MAX (NaN, 0.0) returns 0.0. MAX (+0.0, -0.0) returns -0.0. and in each case the answer is in some sense bogus. */ /* MAX(a,b) returns the maximum of A and B. */ #ifndef MAX # define MAX(a,b) ((a) > (b) ? (a) : (b)) #endif /* MIN(a,b) returns the minimum of A and B. */ #ifndef MIN # define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif #endif /* _MINMAX_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/msvc-inval.c������������������������������������������������������������������������0000644�0000000�0000000�00000007553�14374751113�012353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "msvc-inval.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* Get _invalid_parameter_handler type and _set_invalid_parameter_handler declaration. */ # include <stdlib.h> # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { } # else /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> # if defined _MSC_VER static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # else /* An index to thread-local storage. */ static DWORD tls_index; static int tls_initialized /* = 0 */; /* Used as a fallback only. */ static struct gl_msvc_inval_per_thread not_per_thread; struct gl_msvc_inval_per_thread * gl_msvc_inval_current (void) { if (!tls_initialized) { tls_index = TlsAlloc (); tls_initialized = 1; } if (tls_index == TLS_OUT_OF_INDEXES) /* TlsAlloc had failed. */ return ¬_per_thread; else { struct gl_msvc_inval_per_thread *pointer = (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index); if (pointer == NULL) { /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */ pointer = (struct gl_msvc_inval_per_thread *) malloc (sizeof (struct gl_msvc_inval_per_thread)); if (pointer == NULL) /* Could not allocate memory. Use the global storage. */ pointer = ¬_per_thread; TlsSetValue (tls_index, pointer); } return pointer; } } static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current (); if (current->restart_valid) longjmp (current->restart, 1); else /* An invalid parameter notification from outside the gnulib code. Give the caller a chance to intervene. */ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # endif # endif static int gl_msvc_inval_initialized /* = 0 */; void gl_msvc_inval_ensure_handler (void) { if (gl_msvc_inval_initialized == 0) { _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler); gl_msvc_inval_initialized = 1; } } #endif �����������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/msvc-inval.h������������������������������������������������������������������������0000644�0000000�0000000�00000021226�14374751113�012351� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MSVC_INVAL_H #define _MSVC_INVAL_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines macros that turn such an invalid parameter notification into a non-local exit. An error code can then be produced at the target of this exit. You can thus write code like TRY_MSVC_INVAL { <Code that can trigger an invalid parameter notification but does not do 'return', 'break', 'continue', nor 'goto'.> } CATCH_MSVC_INVAL { <Code that handles an invalid parameter notification but does not do 'return', 'break', 'continue', nor 'goto'.> } DONE_MSVC_INVAL; This entire block expands to a single statement. The handling of invalid parameters can be done in three ways: * The default way, which is reasonable for programs (not libraries): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) * The way for libraries that make "hairy" calls (like close(-1), or fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) * The way for libraries that make no "hairy" calls: AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) */ #define DEFAULT_HANDLING 0 #define HAIRY_LIBRARY_HANDLING 1 #define SANE_LIBRARY_HANDLING 2 #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* A native Windows platform with the "invalid parameter handler" concept, and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING /* Default handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that just returns. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) # else /* Handling for hairy libraries. */ # include <excpt.h> /* Gnulib can define its own status codes, as described in the page "Raising Software Exceptions" on microsoft.com <https://docs.microsoft.com/en-us/cpp/cpp/raising-software-exceptions>. Our status codes are composed of - 0xE0000000, mandatory for all user-defined status codes, - 0x474E550, a API identifier ("GNU"), - 0, 1, 2, ..., used to distinguish different status codes from the same API. */ # define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) # if defined _MSC_VER /* A compiler that supports __try/__except, as described in the page "try-except statement" on microsoft.com <https://docs.microsoft.com/en-us/cpp/cpp/try-except-statement>. With __try/__except, we can use the multithread-safe exception handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ __try # define CATCH_MSVC_INVAL \ __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ ? EXCEPTION_EXECUTE_HANDLER \ : EXCEPTION_CONTINUE_SEARCH) # define DONE_MSVC_INVAL \ } \ while (0) # else /* Any compiler. We can only use setjmp/longjmp. */ # include <setjmp.h> # ifdef __cplusplus extern "C" { # endif struct gl_msvc_inval_per_thread { /* The restart that will resume execution at the code between CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ jmp_buf restart; /* Tells whether the contents of restart is valid. */ int restart_valid; }; /* Ensure that the invalid parameter handler in installed that passes control to the gl_msvc_inval_restart if it is valid, or raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); /* Return a pointer to the per-thread data for the current thread. */ extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ struct gl_msvc_inval_per_thread *msvc_inval_current; \ gl_msvc_inval_ensure_handler (); \ msvc_inval_current = gl_msvc_inval_current (); \ /* First, initialize gl_msvc_inval_restart. */ \ if (setjmp (msvc_inval_current->restart) == 0) \ { \ /* Then, mark it as valid. */ \ msvc_inval_current->restart_valid = 1; # define CATCH_MSVC_INVAL \ /* Execution completed. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; \ } \ else \ { \ /* Execution triggered an invalid parameter notification. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; # define DONE_MSVC_INVAL \ } \ } \ while (0) # endif # endif #else /* A platform that does not need to the invalid parameter handler, or when SANE_LIBRARY_HANDLING is desired. */ /* The braces here avoid GCC warnings like "warning: suggest explicit braces to avoid ambiguous 'else'". */ # define TRY_MSVC_INVAL \ do \ { \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) #endif #endif /* _MSVC_INVAL_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/msvc-nothrow.c����������������������������������������������������������������������0000644�0000000�0000000�00000002556�14374751113�012740� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "msvc-nothrow.h" /* Get declarations of the native Windows API functions. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef _get_osfhandle #if HAVE_MSVC_INVALID_PARAMETER_HANDLER intptr_t _gl_nothrow_get_osfhandle (int fd) { intptr_t result; TRY_MSVC_INVAL { result = _get_osfhandle (fd); } CATCH_MSVC_INVAL { result = (intptr_t) INVALID_HANDLE_VALUE; } DONE_MSVC_INVAL; return result; } #endif ��������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/msvc-nothrow.h����������������������������������������������������������������������0000644�0000000�0000000�00000003023�14374751113�012733� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MSVC_NOTHROW_H #define _MSVC_NOTHROW_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines wrappers that turn such an invalid parameter notification into an error code. */ #if defined _WIN32 && ! defined __CYGWIN__ /* Get original declaration of _get_osfhandle. */ # include <io.h> # if HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Override _get_osfhandle. */ extern intptr_t _gl_nothrow_get_osfhandle (int fd); # define _get_osfhandle _gl_nothrow_get_osfhandle # endif #endif #endif /* _MSVC_NOTHROW_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/obstack.c���������������������������������������������������������������������������0000644�0000000�0000000�00000027552�14374751113�011723� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* obstack.c - subroutines used implicitly by object stack macros Copyright (C) 1988-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifdef _LIBC # include <obstack.h> #else # include <config.h> # include "obstack.h" #endif /* NOTE BEFORE MODIFYING THIS FILE: _OBSTACK_INTERFACE_VERSION in obstack.h must be incremented whenever callers compiled using an old obstack.h can no longer properly call the functions in this file. */ /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself, and the installed library supports the same library interface we do. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand 'configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 # include <gnu-versions.h> # if (_GNU_OBSTACK_INTERFACE_VERSION == _OBSTACK_INTERFACE_VERSION \ || (_GNU_OBSTACK_INTERFACE_VERSION == 1 \ && _OBSTACK_INTERFACE_VERSION == 2 \ && defined SIZEOF_INT && defined SIZEOF_SIZE_T \ && SIZEOF_INT == SIZEOF_SIZE_T)) # define _OBSTACK_ELIDE_CODE # endif #endif #ifndef _OBSTACK_ELIDE_CODE /* If GCC, or if an oddball (testing?) host that #defines __alignof__, use the already-supplied __alignof__. Otherwise, this must be Gnulib (as glibc assumes GCC); defer to Gnulib's alignof_type. */ # if !defined __GNUC__ && !defined __alignof__ # include <alignof.h> # define __alignof__(type) alignof_type (type) # endif # include <stdlib.h> # include <stdint.h> # ifndef MAX # define MAX(a,b) ((a) > (b) ? (a) : (b)) # endif /* Determine default alignment. */ /* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT. But in fact it might be less smart and round addresses to as much as DEFAULT_ROUNDING. So we prepare for it to do that. DEFAULT_ALIGNMENT cannot be an enum constant; see gnulib's alignof.h. */ #define DEFAULT_ALIGNMENT MAX (__alignof__ (long double), \ MAX (__alignof__ (uintmax_t), \ __alignof__ (void *))) #define DEFAULT_ROUNDING MAX (sizeof (long double), \ MAX (sizeof (uintmax_t), \ sizeof (void *))) /* Call functions with either the traditional malloc/free calling interface, or the mmalloc/mfree interface (that adds an extra first argument), based on the value of use_extra_arg. */ static void * call_chunkfun (struct obstack *h, size_t size) { if (h->use_extra_arg) return h->chunkfun.extra (h->extra_arg, size); else return h->chunkfun.plain (size); } static void call_freefun (struct obstack *h, void *old_chunk) { if (h->use_extra_arg) h->freefun.extra (h->extra_arg, old_chunk); else h->freefun.plain (old_chunk); } /* Initialize an obstack H for use. Specify chunk size SIZE (0 means default). Objects start on multiples of ALIGNMENT (0 means use default). Return nonzero if successful, calls obstack_alloc_failed_handler if allocation fails. */ static int _obstack_begin_worker (struct obstack *h, _OBSTACK_SIZE_T size, _OBSTACK_SIZE_T alignment) { struct _obstack_chunk *chunk; /* points to new chunk */ if (alignment == 0) alignment = DEFAULT_ALIGNMENT; if (size == 0) /* Default size is what GNU malloc can fit in a 4096-byte block. */ { /* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc. Use the values for range checking, because if range checking is off, the extra bytes won't be missed terribly, but if range checking is on and we used a larger request, a whole extra 4096 bytes would be allocated. These number are irrelevant to the new GNU malloc. I suspect it is less sensitive to the size of the request. */ int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1)) + 4 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1)); size = 4096 - extra; } h->chunk_size = size; h->alignment_mask = alignment - 1; chunk = h->chunk = call_chunkfun (h, h->chunk_size); if (!chunk) (*obstack_alloc_failed_handler) (); h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents, alignment - 1); h->chunk_limit = chunk->limit = (char *) chunk + h->chunk_size; chunk->prev = 0; /* The initial chunk now contains no empty object. */ h->maybe_empty_object = 0; h->alloc_failed = 0; return 1; } int _obstack_begin (struct obstack *h, _OBSTACK_SIZE_T size, _OBSTACK_SIZE_T alignment, void *(*chunkfun) (size_t), void (*freefun) (void *)) { h->chunkfun.plain = chunkfun; h->freefun.plain = freefun; h->use_extra_arg = 0; return _obstack_begin_worker (h, size, alignment); } int _obstack_begin_1 (struct obstack *h, _OBSTACK_SIZE_T size, _OBSTACK_SIZE_T alignment, void *(*chunkfun) (void *, size_t), void (*freefun) (void *, void *), void *arg) { h->chunkfun.extra = chunkfun; h->freefun.extra = freefun; h->extra_arg = arg; h->use_extra_arg = 1; return _obstack_begin_worker (h, size, alignment); } /* Allocate a new current chunk for the obstack *H on the assumption that LENGTH bytes need to be added to the current object, or a new object of length LENGTH allocated. Copies any partial object from the end of the old chunk to the beginning of the new one. */ void _obstack_newchunk (struct obstack *h, _OBSTACK_SIZE_T length) { struct _obstack_chunk *old_chunk = h->chunk; struct _obstack_chunk *new_chunk = 0; size_t obj_size = h->next_free - h->object_base; char *object_base; /* Compute size for new chunk. */ size_t sum1 = obj_size + length; size_t sum2 = sum1 + h->alignment_mask; size_t new_size = sum2 + (obj_size >> 3) + 100; if (new_size < sum2) new_size = sum2; if (new_size < h->chunk_size) new_size = h->chunk_size; /* Allocate and initialize the new chunk. */ if (obj_size <= sum1 && sum1 <= sum2) new_chunk = call_chunkfun (h, new_size); if (!new_chunk) (*obstack_alloc_failed_handler)(); h->chunk = new_chunk; new_chunk->prev = old_chunk; new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size; /* Compute an aligned object_base in the new chunk */ object_base = __PTR_ALIGN ((char *) new_chunk, new_chunk->contents, h->alignment_mask); /* Move the existing object to the new chunk. */ memcpy (object_base, h->object_base, obj_size); /* If the object just copied was the only data in OLD_CHUNK, free that chunk and remove it from the chain. But not if that chunk might contain an empty object. */ if (!h->maybe_empty_object && (h->object_base == __PTR_ALIGN ((char *) old_chunk, old_chunk->contents, h->alignment_mask))) { new_chunk->prev = old_chunk->prev; call_freefun (h, old_chunk); } h->object_base = object_base; h->next_free = h->object_base + obj_size; /* The new chunk certainly contains no empty object yet. */ h->maybe_empty_object = 0; } /* Return nonzero if object OBJ has been allocated from obstack H. This is here for debugging. If you use it in a program, you are probably losing. */ /* Suppress -Wmissing-prototypes warning. We don't want to declare this in obstack.h because it is just for debugging. */ int _obstack_allocated_p (struct obstack *h, void *obj) __attribute_pure__; int _obstack_allocated_p (struct obstack *h, void *obj) { struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ struct _obstack_chunk *plp; /* point to previous chunk if any */ lp = (h)->chunk; /* We use >= rather than > since the object cannot be exactly at the beginning of the chunk but might be an empty object exactly at the end of an adjacent chunk. */ while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj)) { plp = lp->prev; lp = plp; } return lp != 0; } /* Free objects in obstack H, including OBJ and everything allocate more recently than OBJ. If OBJ is zero, free everything in H. */ void _obstack_free (struct obstack *h, void *obj) { struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ struct _obstack_chunk *plp; /* point to previous chunk if any */ lp = h->chunk; /* We use >= because there cannot be an object at the beginning of a chunk. But there can be an empty object at that address at the end of another chunk. */ while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj)) { plp = lp->prev; call_freefun (h, lp); lp = plp; /* If we switch chunks, we can't tell whether the new current chunk contains an empty object, so assume that it may. */ h->maybe_empty_object = 1; } if (lp) { h->object_base = h->next_free = (char *) (obj); h->chunk_limit = lp->limit; h->chunk = lp; } else if (obj != 0) /* obj is not in any of the chunks! */ abort (); } _OBSTACK_SIZE_T _obstack_memory_used (struct obstack *h) { struct _obstack_chunk *lp; _OBSTACK_SIZE_T nbytes = 0; for (lp = h->chunk; lp != 0; lp = lp->prev) { nbytes += lp->limit - (char *) lp; } return nbytes; } # ifndef _OBSTACK_NO_ERROR_HANDLER /* Define the error handler. */ # include <stdio.h> /* Exit value used when 'print_and_abort' is used. */ # ifdef _LIBC int obstack_exit_failure = EXIT_FAILURE; # else # include "exitfail.h" # define obstack_exit_failure exit_failure # endif # ifdef _LIBC # include <libintl.h> # else # include "gettext.h" # endif # ifndef _ # define _(msgid) gettext (msgid) # endif # ifdef _LIBC # include <libio/iolibio.h> # endif static __attribute_noreturn__ void print_and_abort (void) { /* Don't change any of these strings. Yes, it would be possible to add the newline to the string and use fputs or so. But this must not happen because the "memory exhausted" message appears in other places like this and the translation should be reused instead of creating a very similar string which requires a separate translation. */ # ifdef _LIBC (void) __fxprintf (NULL, "%s\n", _("memory exhausted")); # else fprintf (stderr, "%s\n", _("memory exhausted")); # endif exit (obstack_exit_failure); } /* The functions allocating more room by calling 'obstack_chunk_alloc' jump to the handler pointed to by 'obstack_alloc_failed_handler'. This can be set to a user defined function which should either abort gracefully or use longjump - but shouldn't return. This variable by default points to the internal function 'print_and_abort'. */ __attribute_noreturn__ void (*obstack_alloc_failed_handler) (void) = print_and_abort; # endif /* !_OBSTACK_NO_ERROR_HANDLER */ #endif /* !_OBSTACK_ELIDE_CODE */ ������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/obstack.h���������������������������������������������������������������������������0000644�0000000�0000000�00000054400�14374751113�011720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* obstack.h - object stack macros Copyright (C) 1988-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Summary: All the apparent functions defined here are macros. The idea is that you would use these pre-tested macros to solve a very specific set of problems, and they would run fast. Caution: no side-effects in arguments please!! They may be evaluated MANY times!! These macros operate a stack of objects. Each object starts life small, and may grow to maturity. (Consider building a word syllable by syllable.) An object can move while it is growing. Once it has been "finished" it never changes address again. So the "top of the stack" is typically an immature growing object, while the rest of the stack is of mature, fixed size and fixed address objects. These routines grab large chunks of memory, using a function you supply, called 'obstack_chunk_alloc'. On occasion, they free chunks, by calling 'obstack_chunk_free'. You must define them and declare them before using any obstack macros. Each independent stack is represented by a 'struct obstack'. Each of the obstack macros expects a pointer to such a structure as the first argument. One motivation for this package is the problem of growing char strings in symbol tables. Unless you are "fascist pig with a read-only mind" --Gosper's immortal quote from HAKMEM item 154, out of context--you would not like to put any arbitrary upper limit on the length of your symbols. In practice this often means you will build many short symbols and a few long symbols. At the time you are reading a symbol you don't know how long it is. One traditional method is to read a symbol into a buffer, realloc()ating the buffer every time you try to read a symbol that is longer than the buffer. This is beaut, but you still will want to copy the symbol from the buffer to a more permanent symbol-table entry say about half the time. With obstacks, you can work differently. Use one obstack for all symbol names. As you read a symbol, grow the name in the obstack gradually. When the name is complete, finalize it. Then, if the symbol exists already, free the newly read name. The way we do this is to take a large chunk, allocating memory from low addresses. When you want to build a symbol in the chunk you just add chars above the current "high water mark" in the chunk. When you have finished adding chars, because you got to the end of the symbol, you know how long the chars are, and you can create a new object. Mostly the chars will not burst over the highest address of the chunk, because you would typically expect a chunk to be (say) 100 times as long as an average object. In case that isn't clear, when we have enough chars to make up the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed) so we just point to it where it lies. No moving of chars is needed and this is the second win: potentially long strings need never be explicitly shuffled. Once an object is formed, it does not change its address during its lifetime. When the chars burst over a chunk boundary, we allocate a larger chunk, and then copy the partly formed object from the end of the old chunk to the beginning of the new larger chunk. We then carry on accreting characters to the end of the object as we normally would. A special macro is provided to add a single char at a time to a growing object. This allows the use of register variables, which break the ordinary 'growth' macro. Summary: We allocate large chunks. We carve out one object at a time from the current chunk. Once carved, an object never moves. We are free to append data of any size to the currently growing object. Exactly one object is growing in an obstack at any one time. You can run one obstack per control block. You may have as many control blocks as you dare. Because of the way we do it, you can "unwind" an obstack back to a previous state. (You may remove objects much as you would with a stack.) */ /* Don't do the contents of this file more than once. */ #ifndef _OBSTACK_H #define _OBSTACK_H 1 #ifndef _OBSTACK_INTERFACE_VERSION # define _OBSTACK_INTERFACE_VERSION 2 #endif #include <stddef.h> /* For size_t and ptrdiff_t. */ #include <string.h> /* For __GNU_LIBRARY__, and memcpy. */ #if __STDC_VERSION__ < 199901L || defined __HP_cc # define __FLEXIBLE_ARRAY_MEMBER 1 #else # define __FLEXIBLE_ARRAY_MEMBER #endif #if _OBSTACK_INTERFACE_VERSION == 1 /* For binary compatibility with obstack version 1, which used "int" and "long" for these two types. */ # define _OBSTACK_SIZE_T unsigned int # define _CHUNK_SIZE_T unsigned long # define _OBSTACK_CAST(type, expr) ((type) (expr)) #else /* Version 2 with sane types, especially for 64-bit hosts. */ # define _OBSTACK_SIZE_T size_t # define _CHUNK_SIZE_T size_t # define _OBSTACK_CAST(type, expr) (expr) #endif /* If B is the base of an object addressed by P, return the result of aligning P to the next multiple of A + 1. B and P must be of type char *. A + 1 must be a power of 2. */ #define __BPTR_ALIGN(B, P, A) ((B) + (((P) - (B) + (A)) & ~(A))) /* Similar to __BPTR_ALIGN (B, P, A), except optimize the common case where pointers can be converted to integers, aligned as integers, and converted back again. If ptrdiff_t is narrower than a pointer (e.g., the AS/400), play it safe and compute the alignment relative to B. Otherwise, use the faster strategy of computing the alignment relative to 0. */ #define __PTR_ALIGN(B, P, A) \ __BPTR_ALIGN (sizeof (ptrdiff_t) < sizeof (void *) ? (B) : (char *) 0, \ P, A) #ifndef __attribute_pure__ # define __attribute_pure__ _GL_ATTRIBUTE_PURE #endif /* Not the same as _Noreturn, since it also works with function pointers. */ #ifndef __attribute_noreturn__ # if 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ || 0x5110 <= __SUNPRO_C # define __attribute_noreturn__ __attribute__ ((__noreturn__)) # else # define __attribute_noreturn__ # endif #endif #ifdef __cplusplus extern "C" { #endif struct _obstack_chunk /* Lives at front of each chunk. */ { char *limit; /* 1 past end of this chunk */ struct _obstack_chunk *prev; /* address of prior chunk or NULL */ char contents[__FLEXIBLE_ARRAY_MEMBER]; /* objects begin here */ }; struct obstack /* control current object in current chunk */ { _CHUNK_SIZE_T chunk_size; /* preferred size to allocate chunks in */ struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */ char *object_base; /* address of object we are building */ char *next_free; /* where to add next char to current object */ char *chunk_limit; /* address of char after current chunk */ union { _OBSTACK_SIZE_T i; void *p; } temp; /* Temporary for some macros. */ _OBSTACK_SIZE_T alignment_mask; /* Mask of alignment for each object. */ /* These prototypes vary based on 'use_extra_arg'. */ union { void *(*plain) (size_t); void *(*extra) (void *, size_t); } chunkfun; union { void (*plain) (void *); void (*extra) (void *, void *); } freefun; void *extra_arg; /* first arg for chunk alloc/dealloc funcs */ unsigned use_extra_arg : 1; /* chunk alloc/dealloc funcs take extra arg */ unsigned maybe_empty_object : 1; /* There is a possibility that the current chunk contains a zero-length object. This prevents freeing the chunk if we allocate a bigger chunk to replace it. */ unsigned alloc_failed : 1; /* No longer used, as we now call the failed handler on error, but retained for binary compatibility. */ }; /* Declare the external functions we use; they are in obstack.c. */ extern void _obstack_newchunk (struct obstack *, _OBSTACK_SIZE_T); extern void _obstack_free (struct obstack *, void *); extern int _obstack_begin (struct obstack *, _OBSTACK_SIZE_T, _OBSTACK_SIZE_T, void *(*) (size_t), void (*) (void *)); extern int _obstack_begin_1 (struct obstack *, _OBSTACK_SIZE_T, _OBSTACK_SIZE_T, void *(*) (void *, size_t), void (*) (void *, void *), void *); extern _OBSTACK_SIZE_T _obstack_memory_used (struct obstack *) __attribute_pure__; /* Error handler called when 'obstack_chunk_alloc' failed to allocate more memory. This can be set to a user defined function which should either abort gracefully or use longjump - but shouldn't return. The default action is to print a message and abort. */ extern __attribute_noreturn__ void (*obstack_alloc_failed_handler) (void); /* Exit value used when 'print_and_abort' is used. */ extern int obstack_exit_failure; /* Pointer to beginning of object being allocated or to be allocated next. Note that this might not be the final address of the object because a new chunk might be needed to hold the final size. */ #define obstack_base(h) ((void *) (h)->object_base) /* Size for allocating ordinary chunks. */ #define obstack_chunk_size(h) ((h)->chunk_size) /* Pointer to next byte not yet allocated in current chunk. */ #define obstack_next_free(h) ((void *) (h)->next_free) /* Mask specifying low bits that should be clear in address of an object. */ #define obstack_alignment_mask(h) ((h)->alignment_mask) /* To prevent prototype warnings provide complete argument list. */ #define obstack_init(h) \ _obstack_begin ((h), 0, 0, \ _OBSTACK_CAST (void *(*) (size_t), obstack_chunk_alloc), \ _OBSTACK_CAST (void (*) (void *), obstack_chunk_free)) #define obstack_begin(h, size) \ _obstack_begin ((h), (size), 0, \ _OBSTACK_CAST (void *(*) (size_t), obstack_chunk_alloc), \ _OBSTACK_CAST (void (*) (void *), obstack_chunk_free)) #define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ _obstack_begin ((h), (size), (alignment), \ _OBSTACK_CAST (void *(*) (size_t), chunkfun), \ _OBSTACK_CAST (void (*) (void *), freefun)) #define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ _obstack_begin_1 ((h), (size), (alignment), \ _OBSTACK_CAST (void *(*) (void *, size_t), chunkfun), \ _OBSTACK_CAST (void (*) (void *, void *), freefun), arg) #define obstack_chunkfun(h, newchunkfun) \ ((void) ((h)->chunkfun.extra = (void *(*) (void *, size_t)) (newchunkfun))) #define obstack_freefun(h, newfreefun) \ ((void) ((h)->freefun.extra = (void *(*) (void *, void *)) (newfreefun))) #define obstack_1grow_fast(h, achar) ((void) (*((h)->next_free)++ = (achar))) #define obstack_blank_fast(h, n) ((void) ((h)->next_free += (n))) #define obstack_memory_used(h) _obstack_memory_used (h) #if defined __GNUC__ || defined __clang__ # if !(defined __GNUC_MINOR__ && __GNUC__ * 1000 + __GNUC_MINOR__ >= 2008 \ || defined __clang__) # define __extension__ # endif /* For GNU C, if not -traditional, we can define these macros to compute all args only once without using a global variable. Also, we can avoid using the 'temp' slot, to make faster code. */ # define obstack_object_size(OBSTACK) \ __extension__ \ ({ struct obstack const *__o = (OBSTACK); \ (_OBSTACK_SIZE_T) (__o->next_free - __o->object_base); }) /* The local variable is named __o1 to avoid a shadowed variable warning when invoked from other obstack macros. */ # define obstack_room(OBSTACK) \ __extension__ \ ({ struct obstack const *__o1 = (OBSTACK); \ (_OBSTACK_SIZE_T) (__o1->chunk_limit - __o1->next_free); }) # define obstack_make_room(OBSTACK, length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ _OBSTACK_SIZE_T __len = (length); \ if (obstack_room (__o) < __len) \ _obstack_newchunk (__o, __len); \ (void) 0; }) # define obstack_empty_p(OBSTACK) \ __extension__ \ ({ struct obstack const *__o = (OBSTACK); \ (__o->chunk->prev == 0 \ && __o->next_free == __PTR_ALIGN ((char *) __o->chunk, \ __o->chunk->contents, \ __o->alignment_mask)); }) # define obstack_grow(OBSTACK, where, length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ _OBSTACK_SIZE_T __len = (length); \ if (obstack_room (__o) < __len) \ _obstack_newchunk (__o, __len); \ memcpy (__o->next_free, where, __len); \ __o->next_free += __len; \ (void) 0; }) # define obstack_grow0(OBSTACK, where, length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ _OBSTACK_SIZE_T __len = (length); \ if (obstack_room (__o) < __len + 1) \ _obstack_newchunk (__o, __len + 1); \ memcpy (__o->next_free, where, __len); \ __o->next_free += __len; \ *(__o->next_free)++ = 0; \ (void) 0; }) # define obstack_1grow(OBSTACK, datum) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ if (obstack_room (__o) < 1) \ _obstack_newchunk (__o, 1); \ obstack_1grow_fast (__o, datum); }) /* These assume that the obstack alignment is good enough for pointers or ints, and that the data added so far to the current object shares that much alignment. */ # define obstack_ptr_grow(OBSTACK, datum) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ if (obstack_room (__o) < sizeof (void *)) \ _obstack_newchunk (__o, sizeof (void *)); \ obstack_ptr_grow_fast (__o, datum); }) # define obstack_int_grow(OBSTACK, datum) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ if (obstack_room (__o) < sizeof (int)) \ _obstack_newchunk (__o, sizeof (int)); \ obstack_int_grow_fast (__o, datum); }) # define obstack_ptr_grow_fast(OBSTACK, aptr) \ __extension__ \ ({ struct obstack *__o1 = (OBSTACK); \ void *__p1 = __o1->next_free; \ *(const void **) __p1 = (aptr); \ __o1->next_free += sizeof (const void *); \ (void) 0; }) # define obstack_int_grow_fast(OBSTACK, aint) \ __extension__ \ ({ struct obstack *__o1 = (OBSTACK); \ void *__p1 = __o1->next_free; \ *(int *) __p1 = (aint); \ __o1->next_free += sizeof (int); \ (void) 0; }) # define obstack_blank(OBSTACK, length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ _OBSTACK_SIZE_T __len = (length); \ if (obstack_room (__o) < __len) \ _obstack_newchunk (__o, __len); \ obstack_blank_fast (__o, __len); }) # define obstack_alloc(OBSTACK, length) \ __extension__ \ ({ struct obstack *__h = (OBSTACK); \ obstack_blank (__h, (length)); \ obstack_finish (__h); }) # define obstack_copy(OBSTACK, where, length) \ __extension__ \ ({ struct obstack *__h = (OBSTACK); \ obstack_grow (__h, (where), (length)); \ obstack_finish (__h); }) # define obstack_copy0(OBSTACK, where, length) \ __extension__ \ ({ struct obstack *__h = (OBSTACK); \ obstack_grow0 (__h, (where), (length)); \ obstack_finish (__h); }) /* The local variable is named __o1 to avoid a shadowed variable warning when invoked from other obstack macros, typically obstack_free. */ # define obstack_finish(OBSTACK) \ __extension__ \ ({ struct obstack *__o1 = (OBSTACK); \ void *__value = (void *) __o1->object_base; \ if (__o1->next_free == __value) \ __o1->maybe_empty_object = 1; \ __o1->next_free \ = __PTR_ALIGN (__o1->object_base, __o1->next_free, \ __o1->alignment_mask); \ if ((size_t) (__o1->next_free - (char *) __o1->chunk) \ > (size_t) (__o1->chunk_limit - (char *) __o1->chunk)) \ __o1->next_free = __o1->chunk_limit; \ __o1->object_base = __o1->next_free; \ __value; }) # define obstack_free(OBSTACK, OBJ) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ void *__obj = (void *) (OBJ); \ if (__obj > (void *) __o->chunk && __obj < (void *) __o->chunk_limit) \ __o->next_free = __o->object_base = (char *) __obj; \ else \ _obstack_free (__o, __obj); }) #else /* not __GNUC__ */ # define obstack_object_size(h) \ ((_OBSTACK_SIZE_T) ((h)->next_free - (h)->object_base)) # define obstack_room(h) \ ((_OBSTACK_SIZE_T) ((h)->chunk_limit - (h)->next_free)) # define obstack_empty_p(h) \ ((h)->chunk->prev == 0 \ && (h)->next_free == __PTR_ALIGN ((char *) (h)->chunk, \ (h)->chunk->contents, \ (h)->alignment_mask)) /* Note that the call to _obstack_newchunk is enclosed in (..., 0) so that we can avoid having void expressions in the arms of the conditional expression. Casting the third operand to void was tried before, but some compilers won't accept it. */ # define obstack_make_room(h, length) \ ((h)->temp.i = (length), \ ((obstack_room (h) < (h)->temp.i) \ ? (_obstack_newchunk (h, (h)->temp.i), 0) : 0), \ (void) 0) # define obstack_grow(h, where, length) \ ((h)->temp.i = (length), \ ((obstack_room (h) < (h)->temp.i) \ ? (_obstack_newchunk ((h), (h)->temp.i), 0) : 0), \ memcpy ((h)->next_free, where, (h)->temp.i), \ (h)->next_free += (h)->temp.i, \ (void) 0) # define obstack_grow0(h, where, length) \ ((h)->temp.i = (length), \ ((obstack_room (h) < (h)->temp.i + 1) \ ? (_obstack_newchunk ((h), (h)->temp.i + 1), 0) : 0), \ memcpy ((h)->next_free, where, (h)->temp.i), \ (h)->next_free += (h)->temp.i, \ *((h)->next_free)++ = 0, \ (void) 0) # define obstack_1grow(h, datum) \ (((obstack_room (h) < 1) \ ? (_obstack_newchunk ((h), 1), 0) : 0), \ obstack_1grow_fast (h, datum)) # define obstack_ptr_grow(h, datum) \ (((obstack_room (h) < sizeof (char *)) \ ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \ obstack_ptr_grow_fast (h, datum)) # define obstack_int_grow(h, datum) \ (((obstack_room (h) < sizeof (int)) \ ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \ obstack_int_grow_fast (h, datum)) # define obstack_ptr_grow_fast(h, aptr) \ (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr), \ (void) 0) # define obstack_int_grow_fast(h, aint) \ (((int *) ((h)->next_free += sizeof (int)))[-1] = (aint), \ (void) 0) # define obstack_blank(h, length) \ ((h)->temp.i = (length), \ ((obstack_room (h) < (h)->temp.i) \ ? (_obstack_newchunk ((h), (h)->temp.i), 0) : 0), \ obstack_blank_fast (h, (h)->temp.i)) # define obstack_alloc(h, length) \ (obstack_blank ((h), (length)), obstack_finish ((h))) # define obstack_copy(h, where, length) \ (obstack_grow ((h), (where), (length)), obstack_finish ((h))) # define obstack_copy0(h, where, length) \ (obstack_grow0 ((h), (where), (length)), obstack_finish ((h))) # define obstack_finish(h) \ (((h)->next_free == (h)->object_base \ ? (((h)->maybe_empty_object = 1), 0) \ : 0), \ (h)->temp.p = (h)->object_base, \ (h)->next_free \ = __PTR_ALIGN ((h)->object_base, (h)->next_free, \ (h)->alignment_mask), \ (((size_t) ((h)->next_free - (char *) (h)->chunk) \ > (size_t) ((h)->chunk_limit - (char *) (h)->chunk)) \ ? ((h)->next_free = (h)->chunk_limit) : 0), \ (h)->object_base = (h)->next_free, \ (h)->temp.p) # define obstack_free(h, obj) \ ((h)->temp.p = (void *) (obj), \ (((h)->temp.p > (void *) (h)->chunk \ && (h)->temp.p < (void *) (h)->chunk_limit) \ ? (void) ((h)->next_free = (h)->object_base = (char *) (h)->temp.p) \ : _obstack_free ((h), (h)->temp.p))) #endif /* not __GNUC__ */ #ifdef __cplusplus } /* C++ */ #endif #endif /* _OBSTACK_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/open-safer.c������������������������������������������������������������������������0000644�0000000�0000000�00000002446�14374751113�012327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invoke open, but avoid some glitches. Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <config.h> #include "fcntl-safer.h" #include <fcntl.h> #include <stdarg.h> #include "unistd-safer.h" int open_safer (char const *file, int flags, ...) { mode_t mode = 0; if (flags & O_CREAT) { va_list ap; va_start (ap, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (ap, PROMOTED_MODE_T); va_end (ap); } return fd_safer (open (file, flags, mode)); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/open.c������������������������������������������������������������������������������0000644�0000000�0000000�00000015377�14374751113�011240� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Open a descriptor to a file. Copyright (C) 2007-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2007. */ /* If the user's config.h happens to include <fcntl.h>, let it include only the system's <fcntl.h> here, so that orig_open doesn't recurse to rpl_open. */ #define __need_system_fcntl_h #include <config.h> /* Get the original definition of open. It might be defined as a macro. */ #include <fcntl.h> #include <sys/types.h> #undef __need_system_fcntl_h static int orig_open (const char *filename, int flags, mode_t mode) { #if defined _WIN32 && !defined __CYGWIN__ return _open (filename, flags, mode); #else return open (filename, flags, mode); #endif } /* Specification. */ /* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <fcntl.h> above. */ #include "fcntl.h" #include "cloexec.h" #include <errno.h> #include <stdarg.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #ifndef REPLACE_OPEN_DIRECTORY # define REPLACE_OPEN_DIRECTORY 0 #endif int open (const char *filename, int flags, ...) { /* 0 = unknown, 1 = yes, -1 = no. */ #if GNULIB_defined_O_CLOEXEC int have_cloexec = -1; #else static int have_cloexec; #endif mode_t mode; int fd; mode = 0; if (flags & O_CREAT) { va_list arg; va_start (arg, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (arg, PROMOTED_MODE_T); va_end (arg); } #if GNULIB_defined_O_NONBLOCK /* The only known platform that lacks O_NONBLOCK is mingw, but it also lacks named pipes and Unix sockets, which are the only two file types that require non-blocking handling in open(). Therefore, it is safe to ignore O_NONBLOCK here. It is handy that mingw also lacks openat(), so that is also covered here. */ flags &= ~O_NONBLOCK; #endif #if defined _WIN32 && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; #endif #if OPEN_TRAILING_SLASH_BUG /* Fail if one of O_CREAT, O_WRONLY, O_RDWR is specified and the filename ends in a slash, as POSIX says such a filename must name a directory <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>: "A pathname that contains at least one non-<slash> character and that ends with one or more trailing <slash> characters shall not be resolved successfully unless the last pathname component before the trailing <slash> characters names an existing directory" If the named file already exists as a directory, then - if O_CREAT is specified, open() must fail because of the semantics of O_CREAT, - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX <https://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html> says that it fails with errno = EISDIR in this case. If the named file does not exist or does not name a directory, then - if O_CREAT is specified, open() must fail since open() cannot create directories, - if O_WRONLY or O_RDWR is specified, open() must fail because the file does not contain a '.' directory. */ if ((flags & O_CREAT) || (flags & O_ACCMODE) == O_RDWR || (flags & O_ACCMODE) == O_WRONLY) { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') { errno = EISDIR; return -1; } } #endif fd = orig_open (filename, flags & ~(have_cloexec < 0 ? O_CLOEXEC : 0), mode); if (flags & O_CLOEXEC) { if (! have_cloexec) { if (0 <= fd) have_cloexec = 1; else if (errno == EINVAL) { fd = orig_open (filename, flags & ~O_CLOEXEC, mode); have_cloexec = -1; } } if (have_cloexec < 0 && 0 <= fd) set_cloexec_flag (fd, true); } #if REPLACE_FCHDIR /* Implementing fchdir and fdopendir requires the ability to open a directory file descriptor. If open doesn't support that (as on mingw), we use a dummy file that behaves the same as directories on Linux (ie. always reports EOF on attempts to read()), and override fstat() in fchdir.c to hide the fact that we have a dummy. */ if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES && ((flags & O_ACCMODE) == O_RDONLY || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) { struct stat statbuf; if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) { /* Maximum recursion depth of 1. */ fd = open ("/dev/null", flags, mode); if (0 <= fd) fd = _gl_register_fd (fd, filename); } else errno = EACCES; } #endif #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. Rationale: POSIX says such a filename must name a directory <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>: "A pathname that contains at least one non-<slash> character and that ends with one or more trailing <slash> characters shall not be resolved successfully unless the last pathname component before the trailing <slash> characters names an existing directory" If the named file without the slash is not a directory, open() must fail with ENOTDIR. */ if (fd >= 0) { /* We know len is positive, since open did not fail with ENOENT. */ size_t len = strlen (filename); if (filename[len - 1] == '/') { struct stat statbuf; if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) { close (fd); errno = ENOTDIR; return -1; } } } #endif #if REPLACE_FCHDIR if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) fd = _gl_register_fd (fd, filename); #endif return fd; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/openat-die.c������������������������������������������������������������������������0000644�0000000�0000000�00000003506�14374751113�012313� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Report a save- or restore-cwd failure in our openat replacement and then exit. Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "openat.h" #include <stdlib.h> #ifndef GNULIB_LIBPOSIX # include "error.h" #endif #include "exitfail.h" #include "gettext.h" #define _(msgid) gettext (msgid) _Noreturn void openat_save_fail (int errnum) { #ifndef GNULIB_LIBPOSIX error (exit_failure, errnum, _("unable to record current working directory")); #endif /* _Noreturn cannot be applied to error, since it returns when its first argument is 0. To help compilers understand that this function does not return, call abort. Also, the abort is a safety feature if exit_failure is 0 (which shouldn't happen). */ abort (); } /* Exit with an error about failure to restore the working directory during an openat emulation. The caller must ensure that fd 2 is not a just-opened fd, even when openat_safer is not in use. */ _Noreturn void openat_restore_fail (int errnum) { #ifndef GNULIB_LIBPOSIX error (exit_failure, errnum, _("failed to return to initial working directory")); #endif /* As above. */ abort (); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/openat-priv.h�����������������������������������������������������������������������0000644�0000000�0000000�00000005064�14374751113�012540� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Internals for openat-like functions. Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering */ #ifndef _GL_HEADER_OPENAT_PRIV #define _GL_HEADER_OPENAT_PRIV #include <errno.h> #include <limits.h> #include <stdlib.h> /* Maximum number of bytes that it is safe to allocate as a single array on the stack, and that is known as a compile-time constant. The assumption is that we'll touch the array very quickly, or a temporary very near the array, provoking an out-of-memory trap. On some operating systems, there is only one guard page for the stack, and a page size can be as small as 4096 bytes. Subtract 64 in the hope that this will let the compiler touch a nearby temporary and provoke a trap. */ #define SAFER_ALLOCA_MAX (4096 - 64) #define SAFER_ALLOCA(m) ((m) < SAFER_ALLOCA_MAX ? (m) : SAFER_ALLOCA_MAX) #if defined PATH_MAX # define OPENAT_BUFFER_SIZE SAFER_ALLOCA (PATH_MAX) #elif defined _XOPEN_PATH_MAX # define OPENAT_BUFFER_SIZE SAFER_ALLOCA (_XOPEN_PATH_MAX) #else # define OPENAT_BUFFER_SIZE SAFER_ALLOCA (1024) #endif char *openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file); /* Trying to access a BUILD_PROC_NAME file will fail on systems without /proc support, and even on systems *with* ProcFS support. Return nonzero if the failure may be legitimate, e.g., because /proc is not readable, or the particular .../fd/N directory is not present. */ #define EXPECTED_ERRNO(Errno) \ ((Errno) == ENOTDIR || (Errno) == ENOENT \ || (Errno) == EPERM || (Errno) == EACCES \ || (Errno) == ENOSYS /* Solaris 8 */ \ || (Errno) == EOPNOTSUPP /* FreeBSD */) /* Wrapper function shared among linkat and renameat. */ int at_func2 (int fd1, char const *file1, int fd2, char const *file2, int (*func) (char const *file1, char const *file2)); #endif /* _GL_HEADER_OPENAT_PRIV */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/openat-proc.c�����������������������������������������������������������������������0000644�0000000�0000000�00000011410�14374751113�012506� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Create /proc/self/fd-related names for subfiles of open directories. Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <config.h> #include "openat-priv.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #ifdef __KLIBC__ /* OS/2 */ # include <InnoTekLIBC/backend.h> #endif #ifdef __MVS__ /* z/OS */ # include <termios.h> #endif #include "intprops.h" /* Set BUF to the name of the subfile of the directory identified by FD, where the subfile is named FILE. If successful, return BUF if the result fits in BUF, dynamically allocated memory otherwise. Return NULL (setting errno) on error. */ char * openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file) { char *result = buf; int dirlen; /* Make sure the caller gets ENOENT when appropriate. */ if (!*file) { buf[0] = '\0'; return buf; } #if !(defined __KLIBC__ || defined __MVS__) /* Generic code for Linux, Solaris, and similar platforms. */ # define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/" { enum { PROC_SELF_FD_DIR_SIZE_BOUND = (sizeof PROC_SELF_FD_FORMAT - (sizeof "%d" - 1) + INT_STRLEN_BOUND (int)) }; static int proc_status = 0; if (! proc_status) { /* Set PROC_STATUS to a positive value if /proc/self/fd is reliable, and a negative value otherwise. Solaris 10 /proc/self/fd mishandles "..", and any file name might expand to ".." after symbolic link expansion, so avoid /proc/self/fd if it mishandles "..". Solaris 10 has openat, but this problem is exhibited on code that built on Solaris 8 and running on Solaris 10. */ int proc_self_fd = open ("/proc/self/fd", O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK | O_CLOEXEC); if (proc_self_fd < 0) proc_status = -1; else { /* Detect whether /proc/self/fd/%i/../fd exists, where %i is the number of a file descriptor open on /proc/self/fd. On Linux, that name resolves to /proc/self/fd, which was opened above. However, on Solaris, it may resolve to /proc/self/fd/fd, which cannot exist, since all names in /proc/self/fd are numeric. */ char dotdot_buf[PROC_SELF_FD_DIR_SIZE_BOUND + sizeof "../fd" - 1]; sprintf (dotdot_buf, PROC_SELF_FD_FORMAT "../fd", proc_self_fd); proc_status = access (dotdot_buf, F_OK) ? -1 : 1; close (proc_self_fd); } } if (proc_status < 0) return NULL; else { size_t bufsize = PROC_SELF_FD_DIR_SIZE_BOUND + strlen (file); if (OPENAT_BUFFER_SIZE < bufsize) { result = malloc (bufsize); if (! result) return NULL; } dirlen = sprintf (result, PROC_SELF_FD_FORMAT, fd); } } #else /* (defined __KLIBC__ || defined __MVS__), i.e. OS/2 or z/OS */ /* OS/2 kLIBC provides a function to retrieve a path from a fd. */ { size_t bufsize; # ifdef __KLIBC__ char dir[_MAX_PATH]; if (__libc_Back_ioFHToPath (fd, dir, sizeof dir)) return NULL; # endif # ifdef __MVS__ char dir[_XOPEN_PATH_MAX]; /* Documentation: https://www.ibm.com/docs/en/zos/2.2.0?topic=functions-w-ioctl-w-pioctl-control-devices */ if (w_ioctl (fd, _IOCC_GPN, sizeof dir, dir) < 0) return NULL; /* Documentation: https://www.ibm.com/docs/en/zos/2.2.0?topic=functions-e2a-l-convert-characters-from-ebcdic-ascii */ dirlen = __e2a_l (dir, strlen (dir)); if (dirlen < 0 || dirlen >= sizeof dir) return NULL; dir[dirlen] = '\0'; # endif dirlen = strlen (dir); bufsize = dirlen + 1 + strlen (file) + 1; /* 1 for '/', 1 for null */ if (OPENAT_BUFFER_SIZE < bufsize) { result = malloc (bufsize); if (! result) return NULL; } strcpy (result, dir); result[dirlen++] = '/'; } #endif strcpy (result + dirlen, file); return result; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/openat-safer.c����������������������������������������������������������������������0000644�0000000�0000000�00000002542�14374751113�012651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invoke openat, but avoid some glitches. Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert for open, ported by Eric Blake for openat. */ #include <config.h> #include "fcntl-safer.h" #include <fcntl.h> #include <stdarg.h> #include "unistd-safer.h" int openat_safer (int fd, char const *file, int flags, ...) { mode_t mode = 0; if (flags & O_CREAT) { va_list ap; va_start (ap, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (ap, PROMOTED_MODE_T); va_end (ap); } return fd_safer (openat (fd, file, flags, mode)); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/openat.c����������������������������������������������������������������������������0000644�0000000�0000000�00000022302�14374751113�011547� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* provide a replacement openat function Copyright (C) 2004-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering */ /* If the user's config.h happens to include <fcntl.h>, let it include only the system's <fcntl.h> here, so that orig_openat doesn't recurse to rpl_openat. */ #define __need_system_fcntl_h #include <config.h> /* Get the original definition of open. It might be defined as a macro. */ #include <fcntl.h> #include <sys/types.h> #undef __need_system_fcntl_h #if HAVE_OPENAT static int orig_openat (int fd, char const *filename, int flags, mode_t mode) { return openat (fd, filename, flags, mode); } #endif /* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <fcntl.h> above. */ #include "fcntl.h" #include "openat.h" #include "cloexec.h" #include <stdarg.h> #include <stddef.h> #include <stdlib.h> #include <string.h> #include <sys/stat.h> #include <errno.h> #if HAVE_OPENAT /* Like openat, but support O_CLOEXEC and work around Solaris 9 bugs with trailing slash. */ int rpl_openat (int dfd, char const *filename, int flags, ...) { /* 0 = unknown, 1 = yes, -1 = no. */ #if GNULIB_defined_O_CLOEXEC int have_cloexec = -1; #else static int have_cloexec; #endif mode_t mode; int fd; mode = 0; if (flags & O_CREAT) { va_list arg; va_start (arg, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (arg, PROMOTED_MODE_T); va_end (arg); } # if OPEN_TRAILING_SLASH_BUG /* Fail if one of O_CREAT, O_WRONLY, O_RDWR is specified and the filename ends in a slash, as POSIX says such a filename must name a directory <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>: "A pathname that contains at least one non-<slash> character and that ends with one or more trailing <slash> characters shall not be resolved successfully unless the last pathname component before the trailing <slash> characters names an existing directory" If the named file already exists as a directory, then - if O_CREAT is specified, open() must fail because of the semantics of O_CREAT, - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX <https://pubs.opengroup.org/onlinepubs/9699919799/functions/openat.html> says that it fails with errno = EISDIR in this case. If the named file does not exist or does not name a directory, then - if O_CREAT is specified, open() must fail since open() cannot create directories, - if O_WRONLY or O_RDWR is specified, open() must fail because the file does not contain a '.' directory. */ if ((flags & O_CREAT) || (flags & O_ACCMODE) == O_RDWR || (flags & O_ACCMODE) == O_WRONLY) { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') { errno = EISDIR; return -1; } } # endif fd = orig_openat (dfd, filename, flags & ~(have_cloexec < 0 ? O_CLOEXEC : 0), mode); if (flags & O_CLOEXEC) { if (! have_cloexec) { if (0 <= fd) have_cloexec = 1; else if (errno == EINVAL) { fd = orig_openat (dfd, filename, flags & ~O_CLOEXEC, mode); have_cloexec = -1; } } if (have_cloexec < 0 && 0 <= fd) set_cloexec_flag (fd, true); } # if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. Rationale: POSIX says such a filename must name a directory <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>: "A pathname that contains at least one non-<slash> character and that ends with one or more trailing <slash> characters shall not be resolved successfully unless the last pathname component before the trailing <slash> characters names an existing directory" If the named file without the slash is not a directory, open() must fail with ENOTDIR. */ if (fd >= 0) { /* We know len is positive, since open did not fail with ENOENT. */ size_t len = strlen (filename); if (filename[len - 1] == '/') { struct stat statbuf; if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) { close (fd); errno = ENOTDIR; return -1; } } } # endif return fd; } #else /* !HAVE_OPENAT */ # include "filename.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ # include "openat-priv.h" # include "save-cwd.h" /* Replacement for Solaris' openat function. <https://www.google.com/search?q=openat+site:docs.oracle.com> First, try to simulate it via open ("/proc/self/fd/FD/FILE"). Failing that, simulate it by doing save_cwd/fchdir/open/restore_cwd. If either the save_cwd or the restore_cwd fails (relatively unlikely), then give a diagnostic and exit nonzero. Otherwise, upon failure, set errno and return -1, as openat does. Upon successful completion, return a file descriptor. */ int openat (int fd, char const *file, int flags, ...) { mode_t mode = 0; if (flags & O_CREAT) { va_list arg; va_start (arg, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (arg, PROMOTED_MODE_T); va_end (arg); } return openat_permissive (fd, file, flags, mode, NULL); } /* Like openat (FD, FILE, FLAGS, MODE), but if CWD_ERRNO is nonnull, set *CWD_ERRNO to an errno value if unable to save or restore the initial working directory. This is needed only the first time remove.c's remove_dir opens a command-line directory argument. If a previous attempt to restore the current working directory failed, then we must not even try to access a '.'-relative name. It is the caller's responsibility not to call this function in that case. */ int openat_permissive (int fd, char const *file, int flags, mode_t mode, int *cwd_errno) { struct saved_cwd saved_cwd; int saved_errno; int err; bool save_ok; if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) return open (file, flags, mode); { char buf[OPENAT_BUFFER_SIZE]; char *proc_file = openat_proc_name (buf, fd, file); if (proc_file) { int open_result = open (proc_file, flags, mode); int open_errno = errno; if (proc_file != buf) free (proc_file); /* If the syscall succeeds, or if it fails with an unexpected errno value, then return right away. Otherwise, fall through and resort to using save_cwd/restore_cwd. */ if (0 <= open_result || ! EXPECTED_ERRNO (open_errno)) { errno = open_errno; return open_result; } } } save_ok = (save_cwd (&saved_cwd) == 0); if (! save_ok) { if (! cwd_errno) openat_save_fail (errno); *cwd_errno = errno; } if (0 <= fd && fd == saved_cwd.desc) { /* If saving the working directory collides with the user's requested fd, then the user's fd must have been closed to begin with. */ free_cwd (&saved_cwd); errno = EBADF; return -1; } err = fchdir (fd); saved_errno = errno; if (! err) { err = open (file, flags, mode); saved_errno = errno; if (save_ok && restore_cwd (&saved_cwd) != 0) { if (! cwd_errno) { /* Don't write a message to just-created fd 2. */ saved_errno = errno; if (err == STDERR_FILENO) close (err); openat_restore_fail (saved_errno); } *cwd_errno = errno; } } free_cwd (&saved_cwd); errno = saved_errno; return err; } /* Return true if our openat implementation must resort to using save_cwd and restore_cwd. */ bool openat_needs_fchdir (void) { bool needs_fchdir = true; int fd = open ("/", O_SEARCH | O_CLOEXEC); if (0 <= fd) { char buf[OPENAT_BUFFER_SIZE]; char *proc_file = openat_proc_name (buf, fd, "."); if (proc_file) { needs_fchdir = false; if (proc_file != buf) free (proc_file); } close (fd); } return needs_fchdir; } #endif /* !HAVE_OPENAT */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/openat.h����������������������������������������������������������������������������0000644�0000000�0000000�00000006007�14374751113�011560� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* provide a replacement openat function Copyright (C) 2004-2006, 2008-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering */ #ifndef _GL_HEADER_OPENAT #define _GL_HEADER_OPENAT #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #if !HAVE_OPENAT int openat_permissive (int fd, char const *file, int flags, mode_t mode, int *cwd_errno); bool openat_needs_fchdir (void); #else # define openat_permissive(Fd, File, Flags, Mode, Cwd_errno) \ openat (Fd, File, Flags, Mode) # define openat_needs_fchdir() false #endif _Noreturn void openat_restore_fail (int); _Noreturn void openat_save_fail (int); /* Using these function names makes application code slightly more readable than it would be with fchownat (..., 0) or fchownat (..., AT_SYMLINK_NOFOLLOW). */ #if GNULIB_CHOWNAT # ifndef CHOWNAT_INLINE # define CHOWNAT_INLINE _GL_INLINE # endif CHOWNAT_INLINE int chownat (int fd, char const *file, uid_t owner, gid_t group) { return fchownat (fd, file, owner, group, 0); } CHOWNAT_INLINE int lchownat (int fd, char const *file, uid_t owner, gid_t group) { return fchownat (fd, file, owner, group, AT_SYMLINK_NOFOLLOW); } #endif #if GNULIB_CHMODAT # ifndef CHMODAT_INLINE # define CHMODAT_INLINE _GL_INLINE # endif CHMODAT_INLINE int chmodat (int fd, char const *file, mode_t mode) { return fchmodat (fd, file, mode, 0); } CHMODAT_INLINE int lchmodat (int fd, char const *file, mode_t mode) { return fchmodat (fd, file, mode, AT_SYMLINK_NOFOLLOW); } #endif #if GNULIB_STATAT # ifndef STATAT_INLINE # define STATAT_INLINE _GL_INLINE # endif _GL_ATTRIBUTE_DEPRECATED STATAT_INLINE int statat (int fd, char const *name, struct stat *st) { return fstatat (fd, name, st, 0); } _GL_ATTRIBUTE_DEPRECATED STATAT_INLINE int lstatat (int fd, char const *name, struct stat *st) { return fstatat (fd, name, st, AT_SYMLINK_NOFOLLOW); } #endif /* For now, there are no wrappers named laccessat or leuidaccessat, since gnulib doesn't support faccessat(,AT_SYMLINK_NOFOLLOW) and since access rights on symlinks are of limited utility. Likewise, wrappers are not provided for accessat or euidaccessat, so as to avoid dragging in -lgen on some platforms. */ _GL_INLINE_HEADER_END #endif /* _GL_HEADER_OPENAT */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/opendir.c���������������������������������������������������������������������������0000644�0000000�0000000�00000007727�14374751113�011737� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Start reading the entries of a directory. Copyright (C) 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <dirent.h> #include <errno.h> #include <stddef.h> #if HAVE_OPENDIR /* Override opendir(), to keep track of the open file descriptors. Needed because there is a function dirfd(). */ #else # include <stdlib.h> # include "dirent-private.h" # include "filename.h" #endif #if REPLACE_FCHDIR # include <unistd.h> #endif #ifdef __KLIBC__ # include <io.h> # include <fcntl.h> #endif #if defined _WIN32 && ! defined __CYGWIN__ /* Don't assume that UNICODE is not defined. */ # undef WIN32_FIND_DATA # define WIN32_FIND_DATA WIN32_FIND_DATAA # undef GetFullPathName # define GetFullPathName GetFullPathNameA # undef FindFirstFile # define FindFirstFile FindFirstFileA #endif DIR * opendir (const char *dir_name) { #if HAVE_OPENDIR # undef opendir DIR *dirp; dirp = opendir (dir_name); if (dirp == NULL) return NULL; # ifdef __KLIBC__ { int fd = open (dir_name, O_RDONLY); if (fd == -1 || _gl_register_dirp_fd (fd, dirp)) { int saved_errno = errno; close (fd); closedir (dirp); errno = saved_errno; return NULL; } } # endif #else char dir_name_mask[MAX_PATH + 1 + 1 + 1]; int status; HANDLE current; WIN32_FIND_DATA entry; struct gl_directory *dirp; if (dir_name[0] == '\0') { errno = ENOENT; return NULL; } /* Make the dir_name absolute, so that we continue reading the same directory if the current directory changed between this opendir() call and a subsequent rewinddir() call. */ if (!GetFullPathName (dir_name, MAX_PATH, dir_name_mask, NULL)) { errno = EINVAL; return NULL; } /* Append the mask. "*" and "*.*" appear to be equivalent. */ { char *p; p = dir_name_mask + strlen (dir_name_mask); if (p > dir_name_mask && !ISSLASH (p[-1])) *p++ = '\\'; *p++ = '*'; *p = '\0'; } /* Start searching the directory. */ status = -1; current = FindFirstFile (dir_name_mask, &entry); if (current == INVALID_HANDLE_VALUE) { switch (GetLastError ()) { case ERROR_FILE_NOT_FOUND: status = -2; break; case ERROR_PATH_NOT_FOUND: errno = ENOENT; return NULL; case ERROR_DIRECTORY: errno = ENOTDIR; return NULL; case ERROR_ACCESS_DENIED: errno = EACCES; return NULL; default: errno = EIO; return NULL; } } /* Allocate the result. */ dirp = (struct gl_directory *) malloc (offsetof (struct gl_directory, dir_name_mask[0]) + strlen (dir_name_mask) + 1); if (dirp == NULL) { if (current != INVALID_HANDLE_VALUE) FindClose (current); errno = ENOMEM; return NULL; } dirp->status = status; dirp->current = current; if (status == -1) memcpy (&dirp->entry, &entry, sizeof (WIN32_FIND_DATA)); strcpy (dirp->dir_name_mask, dir_name_mask); #endif #if REPLACE_FCHDIR { int fd = dirfd (dirp); if (0 <= fd && _gl_register_fd (fd, dir_name) != fd) { int saved_errno = errno; closedir (dirp); errno = saved_errno; return NULL; } } #endif return dirp; } �����������������������������������������a2ps-4.15.5/lib/opendirat.c�������������������������������������������������������������������������0000644�0000000�0000000�00000003300�14374751113�012243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Open a directory relative to another directory. Copyright 2006-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Written by Jim Meyering and Paul Eggert. */ #include <config.h> #include <opendirat.h> #include <errno.h> #include <fcntl--.h> #include <unistd.h> /* Relative to DIR_FD, open the directory DIR, passing EXTRA_FLAGS to the underlying openat call. On success, store into *PNEW_FD the underlying file descriptor of the newly opened directory and return the directory stream. On failure, return NULL and set errno. On success, *PNEW_FD is at least 3, so this is a "safer" function. */ DIR * opendirat (int dir_fd, char const *dir, int extra_flags, int *pnew_fd) { int open_flags = (O_RDONLY | O_CLOEXEC | O_DIRECTORY | O_NOCTTY | O_NONBLOCK | extra_flags); int new_fd = openat (dir_fd, dir, open_flags); if (new_fd < 0) return NULL; DIR *dirp = fdopendir (new_fd); if (dirp) *pnew_fd = new_fd; else { int fdopendir_errno = errno; close (new_fd); errno = fdopendir_errno; } return dirp; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/opendirat.h�������������������������������������������������������������������������0000644�0000000�0000000�00000001561�14374751113�012257� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Open a directory relative to another directory. Copyright (C) 2018-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <dirent.h> DIR *opendirat (int, char const *, int, int *) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (closedir, 1); �����������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/pathmax.h���������������������������������������������������������������������������0000644�0000000�0000000�00000005630�14374751113�011735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Define PATH_MAX somehow. Requires sys/types.h. Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _PATHMAX_H # define _PATHMAX_H /* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, including the terminating NUL byte. <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html> PATH_MAX is not defined on systems which have no limit on filename length, such as GNU/Hurd. This file does *not* define PATH_MAX always. Programs that use this file can handle the GNU/Hurd case in several ways: - Either with a package-wide handling, or with a per-file handling, - Either through a #ifdef PATH_MAX or through a fallback like #ifndef PATH_MAX # define PATH_MAX 8192 #endif or through a fallback like #ifndef PATH_MAX # define PATH_MAX pathconf ("/", _PC_PATH_MAX) #endif */ # include <unistd.h> # include <limits.h> # ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 256 # endif /* Don't include sys/param.h if it already has been. */ # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include <sys/param.h> # endif # if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN # endif # ifdef __hpux /* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, *not* including the terminating NUL byte, and is set to 1023. Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is not defined at all any more. */ # undef PATH_MAX # define PATH_MAX 1024 # endif # if defined _WIN32 && ! defined __CYGWIN__ /* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, section "Maximum Path Length Limitation", <https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#maximum-path-length-limitation> explains that the maximum size of a filename, including the terminating NUL byte, is 260 = 3 + 256 + 1. This is the same value as - FILENAME_MAX in <stdio.h>, - _MAX_PATH in <stdlib.h>, - MAX_PATH in <windef.h>. Undefine the original value, because mingw's <limits.h> gets it wrong. */ # undef PATH_MAX # define PATH_MAX 260 # endif #endif /* _PATHMAX_H */ ��������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/pipe-safer.c������������������������������������������������������������������������0000644�0000000�0000000�00000002626�14374751113�012323� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invoke pipe, but avoid some glitches. Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> #include "unistd-safer.h" #include <unistd.h> #include <errno.h> /* Like pipe, but ensure that neither of the file descriptors is STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. Fail with ENOSYS on platforms that lack pipe. */ int pipe_safer (int fd[2]) { if (pipe (fd) == 0) { int i; for (i = 0; i < 2; i++) { fd[i] = fd_safer (fd[i]); if (fd[i] < 0) { int saved_errno = errno; close (fd[1 - i]); errno = saved_errno; return -1; } } return 0; } return -1; } ����������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/pipe.c������������������������������������������������������������������������������0000644�0000000�0000000�00000002536�14374751113�011225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Create a pipe. Copyright (C) 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #if defined _WIN32 && ! defined __CYGWIN__ /* Native Windows API. */ /* Get _pipe(). */ # include <io.h> /* Get _O_BINARY. */ # include <fcntl.h> int pipe (int fd[2]) { /* Mingw changes fd to {-1,-1} on failure, but this violates http://austingroupbugs.net/view.php?id=467 */ int tmp[2]; int result = _pipe (tmp, 4096, _O_BINARY); if (!result) { fd[0] = tmp[0]; fd[1] = tmp[1]; } return result; } #else # error "This platform lacks a pipe function, and Gnulib doesn't provide a replacement. This is a bug in Gnulib." #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/quote.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000003503�14374751113�011425� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* quote.h - prototypes for quote.c Copyright (C) 1998-2001, 2003, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef QUOTE_H_ # define QUOTE_H_ 1 # include <stddef.h> /* The quoting options used by quote_n and quote. Its type is incomplete, so it's useful only in expressions like '"e_quoting_options'. */ extern struct quoting_options quote_quoting_options; /* Return an unambiguous printable representation of ARG (of size ARGSIZE), allocated in slot N, suitable for diagnostics. If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE. */ char const *quote_n_mem (int n, char const *arg, size_t argsize); /* Return an unambiguous printable representation of ARG (of size ARGSIZE), suitable for diagnostics. If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE. */ char const *quote_mem (char const *arg, size_t argsize); /* Return an unambiguous printable representation of ARG, allocated in slot N, suitable for diagnostics. */ char const *quote_n (int n, char const *arg); /* Return an unambiguous printable representation of ARG, suitable for diagnostics. */ char const *quote (char const *arg); #endif /* !QUOTE_H_ */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/quotearg.c��������������������������������������������������������������������������0000644�0000000�0000000�00000104526�14374751113�012121� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* quotearg.c - quote arguments for output Copyright (C) 1998-2002, 2004-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert <eggert@twinsun.com> */ /* Without this pragma, gcc 4.7.0 20111124 mistakenly suggests that the quoting_options_from_style function might be candidate for attribute 'pure' */ #if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" #endif #include <config.h> #include "quotearg.h" #include "quote.h" #include "attribute.h" #include "minmax.h" #include "xalloc.h" #include "c-strcaseeq.h" #include "localcharset.h" #include <ctype.h> #include <errno.h> #include <limits.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #include <wchar.h> #include <wctype.h> #include "gettext.h" #define _(msgid) gettext (msgid) #define N_(msgid) msgid #ifndef SIZE_MAX # define SIZE_MAX ((size_t) -1) #endif #define INT_BITS (sizeof (int) * CHAR_BIT) struct quoting_options { /* Basic quoting style. */ enum quoting_style style; /* Additional flags. Bitwise combination of enum quoting_flags. */ int flags; /* Quote the characters indicated by this bit vector even if the quoting style would not normally require them to be quoted. */ unsigned int quote_these_too[(UCHAR_MAX / INT_BITS) + 1]; /* The left quote for custom_quoting_style. */ char const *left_quote; /* The right quote for custom_quoting_style. */ char const *right_quote; }; /* Names of quoting styles. */ char const *const quoting_style_args[] = { "literal", "shell", "shell-always", "shell-escape", "shell-escape-always", "c", "c-maybe", "escape", "locale", "clocale", 0 }; /* Correspondences to quoting style names. */ enum quoting_style const quoting_style_vals[] = { literal_quoting_style, shell_quoting_style, shell_always_quoting_style, shell_escape_quoting_style, shell_escape_always_quoting_style, c_quoting_style, c_maybe_quoting_style, escape_quoting_style, locale_quoting_style, clocale_quoting_style }; /* The default quoting options. */ static struct quoting_options default_quoting_options; /* Allocate a new set of quoting options, with contents initially identical to O if O is not null, or to the default if O is null. It is the caller's responsibility to free the result. */ struct quoting_options * clone_quoting_options (struct quoting_options *o) { int e = errno; struct quoting_options *p = xmemdup (o ? o : &default_quoting_options, sizeof *o); errno = e; return p; } /* Get the value of O's quoting style. If O is null, use the default. */ enum quoting_style get_quoting_style (struct quoting_options const *o) { return (o ? o : &default_quoting_options)->style; } /* In O (or in the default if O is null), set the value of the quoting style to S. */ void set_quoting_style (struct quoting_options *o, enum quoting_style s) { (o ? o : &default_quoting_options)->style = s; } /* In O (or in the default if O is null), set the value of the quoting options for character C to I. Return the old value. Currently, the only values defined for I are 0 (the default) and 1 (which means to quote the character even if it would not otherwise be quoted). */ int set_char_quoting (struct quoting_options *o, char c, int i) { unsigned char uc = c; unsigned int *p = (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS; int shift = uc % INT_BITS; int r = (*p >> shift) & 1; *p ^= ((i & 1) ^ r) << shift; return r; } /* In O (or in the default if O is null), set the value of the quoting options flag to I, which can be a bitwise combination of enum quoting_flags, or 0 for default behavior. Return the old value. */ int set_quoting_flags (struct quoting_options *o, int i) { int r; if (!o) o = &default_quoting_options; r = o->flags; o->flags = i; return r; } void set_custom_quoting (struct quoting_options *o, char const *left_quote, char const *right_quote) { if (!o) o = &default_quoting_options; o->style = custom_quoting_style; if (!left_quote || !right_quote) abort (); o->left_quote = left_quote; o->right_quote = right_quote; } /* Return quoting options for STYLE, with no extra quoting. */ static struct quoting_options /* NOT PURE!! */ quoting_options_from_style (enum quoting_style style) { struct quoting_options o = { literal_quoting_style, 0, { 0 }, NULL, NULL }; if (style == custom_quoting_style) abort (); o.style = style; return o; } /* MSGID approximates a quotation mark. Return its translation if it has one; otherwise, return either it or "\"", depending on S. S is either clocale_quoting_style or locale_quoting_style. */ static char const * gettext_quote (char const *msgid, enum quoting_style s) { char const *translation = _(msgid); char const *locale_code; if (translation != msgid) return translation; /* For UTF-8 and GB-18030, use single quotes U+2018 and U+2019. Here is a list of other locales that include U+2018 and U+2019: ISO-8859-7 0xA1 KOI8-T 0x91 CP869 0x8B CP874 0x91 CP932 0x81 0x65 CP936 0xA1 0xAE CP949 0xA1 0xAE CP950 0xA1 0xA5 CP1250 0x91 CP1251 0x91 CP1252 0x91 CP1253 0x91 CP1254 0x91 CP1255 0x91 CP1256 0x91 CP1257 0x91 EUC-JP 0xA1 0xC6 EUC-KR 0xA1 0xAE EUC-TW 0xA1 0xE4 BIG5 0xA1 0xA5 BIG5-HKSCS 0xA1 0xA5 EUC-CN 0xA1 0xAE GBK 0xA1 0xAE Georgian-PS 0x91 PT154 0x91 None of these is still in wide use; using iconv is overkill. */ locale_code = locale_charset (); if (STRCASEEQ (locale_code, "UTF-8", 'U','T','F','-','8',0,0,0,0)) return msgid[0] == '`' ? "\xe2\x80\x98": "\xe2\x80\x99"; if (STRCASEEQ (locale_code, "GB18030", 'G','B','1','8','0','3','0',0,0)) return msgid[0] == '`' ? "\xa1\ae": "\xa1\xaf"; return (s == clocale_quoting_style ? "\"" : "'"); } /* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of argument ARG (of size ARGSIZE), using QUOTING_STYLE, FLAGS, and QUOTE_THESE_TOO to control quoting. Terminate the output with a null character, and return the written size of the output, not counting the terminating null. If BUFFERSIZE is too small to store the output string, return the value that would have been returned had BUFFERSIZE been large enough. If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE. This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG, ARGSIZE, O), except it breaks O into its component pieces and is not careful about errno. */ static size_t quotearg_buffer_restyled (char *buffer, size_t buffersize, char const *arg, size_t argsize, enum quoting_style quoting_style, int flags, unsigned int const *quote_these_too, char const *left_quote, char const *right_quote) { size_t i; size_t len = 0; size_t orig_buffersize = 0; char const *quote_string = 0; size_t quote_string_len = 0; bool backslash_escapes = false; bool unibyte_locale = MB_CUR_MAX == 1; bool elide_outer_quotes = (flags & QA_ELIDE_OUTER_QUOTES) != 0; bool pending_shell_escape_end = false; bool encountered_single_quote = false; bool all_c_and_shell_quote_compat = true; #define STORE(c) \ do \ { \ if (len < buffersize) \ buffer[len] = (c); \ len++; \ } \ while (0) #define START_ESC() \ do \ { \ if (elide_outer_quotes) \ goto force_outer_quoting_style; \ escaping = true; \ if (quoting_style == shell_always_quoting_style \ && ! pending_shell_escape_end) \ { \ STORE ('\''); \ STORE ('$'); \ STORE ('\''); \ pending_shell_escape_end = true; \ } \ STORE ('\\'); \ } \ while (0) #define END_ESC() \ do \ { \ if (pending_shell_escape_end && ! escaping) \ { \ STORE ('\''); \ STORE ('\''); \ pending_shell_escape_end = false; \ } \ } \ while (0) process_input: switch (quoting_style) { case c_maybe_quoting_style: quoting_style = c_quoting_style; elide_outer_quotes = true; FALLTHROUGH; case c_quoting_style: if (!elide_outer_quotes) STORE ('"'); backslash_escapes = true; quote_string = "\""; quote_string_len = 1; break; case escape_quoting_style: backslash_escapes = true; elide_outer_quotes = false; break; case locale_quoting_style: case clocale_quoting_style: case custom_quoting_style: { if (quoting_style != custom_quoting_style) { /* TRANSLATORS: Get translations for open and closing quotation marks. The message catalog should translate "`" to a left quotation mark suitable for the locale, and similarly for "'". For example, a French Unicode local should translate these to U+00AB (LEFT-POINTING DOUBLE ANGLE QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK), respectively. If the catalog has no translation, we will try to use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the current locale is not Unicode, locale_quoting_style will quote 'like this', and clocale_quoting_style will quote "like this". You should always include translations for "`" and "'" even if U+2018 and U+2019 are appropriate for your locale. If you don't know what to put here, please see <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> and use glyphs suitable for your language. */ left_quote = gettext_quote (N_("`"), quoting_style); right_quote = gettext_quote (N_("'"), quoting_style); } if (!elide_outer_quotes) for (quote_string = left_quote; *quote_string; quote_string++) STORE (*quote_string); backslash_escapes = true; quote_string = right_quote; quote_string_len = strlen (quote_string); } break; case shell_escape_quoting_style: backslash_escapes = true; FALLTHROUGH; case shell_quoting_style: elide_outer_quotes = true; FALLTHROUGH; case shell_escape_always_quoting_style: if (!elide_outer_quotes) backslash_escapes = true; FALLTHROUGH; case shell_always_quoting_style: quoting_style = shell_always_quoting_style; if (!elide_outer_quotes) STORE ('\''); quote_string = "'"; quote_string_len = 1; break; case literal_quoting_style: elide_outer_quotes = false; break; default: abort (); } for (i = 0; ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize); i++) { unsigned char c; unsigned char esc; bool is_right_quote = false; bool escaping = false; bool c_and_shell_quote_compat = false; if (backslash_escapes && quoting_style != shell_always_quoting_style && quote_string_len && (i + quote_string_len <= (argsize == SIZE_MAX && 1 < quote_string_len /* Use strlen only if we must: when argsize is SIZE_MAX, and when the quote string is more than 1 byte long. If we do call strlen, save the result. */ ? (argsize = strlen (arg)) : argsize)) && memcmp (arg + i, quote_string, quote_string_len) == 0) { if (elide_outer_quotes) goto force_outer_quoting_style; is_right_quote = true; } c = arg[i]; switch (c) { case '\0': if (backslash_escapes) { START_ESC (); /* If quote_string were to begin with digits, we'd need to test for the end of the arg as well. However, it's hard to imagine any locale that would use digits in quotes, and set_custom_quoting is documented not to accept them. Use only a single \0 with shell-escape as currently digits are not printed within $'...' */ if (quoting_style != shell_always_quoting_style && i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9') { STORE ('0'); STORE ('0'); } c = '0'; /* We don't have to worry that this last '0' will be backslash-escaped because, again, quote_string should not start with it and because quote_these_too is documented as not accepting it. */ } else if (flags & QA_ELIDE_NULL_BYTES) continue; break; case '?': switch (quoting_style) { case shell_always_quoting_style: if (elide_outer_quotes) goto force_outer_quoting_style; break; case c_quoting_style: if ((flags & QA_SPLIT_TRIGRAPHS) && i + 2 < argsize && arg[i + 1] == '?') switch (arg[i + 2]) { case '!': case '\'': case '(': case ')': case '-': case '/': case '<': case '=': case '>': /* Escape the second '?' in what would otherwise be a trigraph. */ if (elide_outer_quotes) goto force_outer_quoting_style; c = arg[i + 2]; i += 2; STORE ('?'); STORE ('"'); STORE ('"'); STORE ('?'); break; default: break; } break; default: break; } break; case '\a': esc = 'a'; goto c_escape; case '\b': esc = 'b'; goto c_escape; case '\f': esc = 'f'; goto c_escape; case '\n': esc = 'n'; goto c_and_shell_escape; case '\r': esc = 'r'; goto c_and_shell_escape; case '\t': esc = 't'; goto c_and_shell_escape; case '\v': esc = 'v'; goto c_escape; case '\\': esc = c; /* Never need to escape '\' in shell case. */ if (quoting_style == shell_always_quoting_style) { if (elide_outer_quotes) goto force_outer_quoting_style; goto store_c; } /* No need to escape the escape if we are trying to elide outer quotes and nothing else is problematic. */ if (backslash_escapes && elide_outer_quotes && quote_string_len) goto store_c; c_and_shell_escape: if (quoting_style == shell_always_quoting_style && elide_outer_quotes) goto force_outer_quoting_style; /* fall through */ c_escape: if (backslash_escapes) { c = esc; goto store_escape; } break; case '{': case '}': /* sometimes special if isolated */ if (! (argsize == SIZE_MAX ? arg[1] == '\0' : argsize == 1)) break; FALLTHROUGH; case '#': case '~': if (i != 0) break; FALLTHROUGH; case ' ': c_and_shell_quote_compat = true; FALLTHROUGH; case '!': /* special in bash */ case '"': case '$': case '&': case '(': case ')': case '*': case ';': case '<': case '=': /* sometimes special in 0th or (with "set -k") later args */ case '>': case '[': case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */ case '`': case '|': /* A shell special character. In theory, '$' and '`' could be the first bytes of multibyte characters, which means we should check them with mbrtowc, but in practice this doesn't happen so it's not worth worrying about. */ if (quoting_style == shell_always_quoting_style && elide_outer_quotes) goto force_outer_quoting_style; break; case '\'': encountered_single_quote = true; c_and_shell_quote_compat = true; if (quoting_style == shell_always_quoting_style) { if (elide_outer_quotes) goto force_outer_quoting_style; if (buffersize && ! orig_buffersize) { /* Just scan string to see if supports a more concise representation, rather than writing a longer string but returning the length of the more concise form. */ orig_buffersize = buffersize; buffersize = 0; } STORE ('\''); STORE ('\\'); STORE ('\''); pending_shell_escape_end = false; } break; case '%': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case ']': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': /* These characters don't cause problems, no matter what the quoting style is. They cannot start multibyte sequences. A digit or a special letter would cause trouble if it appeared at the beginning of quote_string because we'd then escape by prepending a backslash. However, it's hard to imagine any locale that would use digits or letters as quotes, and set_custom_quoting is documented not to accept them. Also, a digit or a special letter would cause trouble if it appeared in quote_these_too, but that's also documented as not accepting them. */ c_and_shell_quote_compat = true; break; default: /* If we have a multibyte sequence, copy it until we reach its end, find an error, or come back to the initial shift state. For C-like styles, if the sequence has unprintable characters, escape the whole sequence, since we can't easily escape single characters within it. */ { /* Length of multibyte sequence found so far. */ size_t m; bool printable; if (unibyte_locale) { m = 1; printable = isprint (c) != 0; } else { mbstate_t mbstate; memset (&mbstate, 0, sizeof mbstate); m = 0; printable = true; if (argsize == SIZE_MAX) argsize = strlen (arg); do { wchar_t w; size_t bytes = mbrtowc (&w, &arg[i + m], argsize - (i + m), &mbstate); if (bytes == 0) break; else if (bytes == (size_t) -1) { printable = false; break; } else if (bytes == (size_t) -2) { printable = false; while (i + m < argsize && arg[i + m]) m++; break; } else { /* Work around a bug with older shells that "see" a '\' that is really the 2nd byte of a multibyte character. In practice the problem is limited to ASCII chars >= '@' that are shell special chars. */ if ('[' == 0x5b && elide_outer_quotes && quoting_style == shell_always_quoting_style) { size_t j; for (j = 1; j < bytes; j++) switch (arg[i + m + j]) { case '[': case '\\': case '^': case '`': case '|': goto force_outer_quoting_style; default: break; } } if (! iswprint (w)) printable = false; m += bytes; } } while (! mbsinit (&mbstate)); } c_and_shell_quote_compat = printable; if (1 < m || (backslash_escapes && ! printable)) { /* Output a multibyte sequence, or an escaped unprintable unibyte character. */ size_t ilim = i + m; for (;;) { if (backslash_escapes && ! printable) { START_ESC (); STORE ('0' + (c >> 6)); STORE ('0' + ((c >> 3) & 7)); c = '0' + (c & 7); } else if (is_right_quote) { STORE ('\\'); is_right_quote = false; } if (ilim <= i + 1) break; END_ESC (); STORE (c); c = arg[++i]; } goto store_c; } } } if (! (((backslash_escapes && quoting_style != shell_always_quoting_style) || elide_outer_quotes) && quote_these_too && quote_these_too[c / INT_BITS] >> (c % INT_BITS) & 1) && !is_right_quote) goto store_c; store_escape: START_ESC (); store_c: END_ESC (); STORE (c); if (! c_and_shell_quote_compat) all_c_and_shell_quote_compat = false; } if (len == 0 && quoting_style == shell_always_quoting_style && elide_outer_quotes) goto force_outer_quoting_style; /* Single shell quotes (') are commonly enough used as an apostrophe, that we attempt to minimize the quoting in this case. Note itʼs better to use the apostrophe modifier "\u02BC" if possible, as that renders better and works with the word match regex \W+ etc. */ if (quoting_style == shell_always_quoting_style && ! elide_outer_quotes && encountered_single_quote) { if (all_c_and_shell_quote_compat) return quotearg_buffer_restyled (buffer, orig_buffersize, arg, argsize, c_quoting_style, flags, quote_these_too, left_quote, right_quote); else if (! buffersize && orig_buffersize) { /* Disable read-only scan, and reprocess to write quoted string. */ buffersize = orig_buffersize; len = 0; goto process_input; } } if (quote_string && !elide_outer_quotes) for (; *quote_string; quote_string++) STORE (*quote_string); if (len < buffersize) buffer[len] = '\0'; return len; force_outer_quoting_style: /* Don't reuse quote_these_too, since the addition of outer quotes sufficiently quotes the specified characters. */ if (quoting_style == shell_always_quoting_style && backslash_escapes) quoting_style = shell_escape_always_quoting_style; return quotearg_buffer_restyled (buffer, buffersize, arg, argsize, quoting_style, flags & ~QA_ELIDE_OUTER_QUOTES, NULL, left_quote, right_quote); } /* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of argument ARG (of size ARGSIZE), using O to control quoting. If O is null, use the default. Terminate the output with a null character, and return the written size of the output, not counting the terminating null. If BUFFERSIZE is too small to store the output string, return the value that would have been returned had BUFFERSIZE been large enough. If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE. */ size_t quotearg_buffer (char *buffer, size_t buffersize, char const *arg, size_t argsize, struct quoting_options const *o) { struct quoting_options const *p = o ? o : &default_quoting_options; int e = errno; size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize, p->style, p->flags, p->quote_these_too, p->left_quote, p->right_quote); errno = e; return r; } char * quotearg_alloc (char const *arg, size_t argsize, struct quoting_options const *o) { return quotearg_alloc_mem (arg, argsize, NULL, o); } /* Like quotearg_buffer (..., ARG, ARGSIZE, O), except return newly allocated storage containing the quoted string, and store the resulting size into *SIZE, if non-NULL. The result can contain embedded null bytes only if ARGSIZE is not SIZE_MAX, SIZE is not NULL, and set_quoting_flags has not set the null byte elision flag. */ char * quotearg_alloc_mem (char const *arg, size_t argsize, size_t *size, struct quoting_options const *o) { struct quoting_options const *p = o ? o : &default_quoting_options; int e = errno; /* Elide embedded null bytes if we can't return a size. */ int flags = p->flags | (size ? 0 : QA_ELIDE_NULL_BYTES); size_t bufsize = quotearg_buffer_restyled (0, 0, arg, argsize, p->style, flags, p->quote_these_too, p->left_quote, p->right_quote) + 1; char *buf = xcharalloc (bufsize); quotearg_buffer_restyled (buf, bufsize, arg, argsize, p->style, flags, p->quote_these_too, p->left_quote, p->right_quote); errno = e; if (size) *size = bufsize - 1; return buf; } /* A storage slot with size and pointer to a value. */ struct slotvec { size_t size; char *val; }; /* Preallocate a slot 0 buffer, so that the caller can always quote one small component of a "memory exhausted" message in slot 0. */ static char slot0[256]; static int nslots = 1; static struct slotvec slotvec0 = {sizeof slot0, slot0}; static struct slotvec *slotvec = &slotvec0; void quotearg_free (void) { struct slotvec *sv = slotvec; int i; for (i = 1; i < nslots; i++) free (sv[i].val); if (sv[0].val != slot0) { free (sv[0].val); slotvec0.size = sizeof slot0; slotvec0.val = slot0; } if (sv != &slotvec0) { free (sv); slotvec = &slotvec0; } nslots = 1; } /* Use storage slot N to return a quoted version of argument ARG. ARG is of size ARGSIZE, but if that is SIZE_MAX, ARG is a null-terminated string. OPTIONS specifies the quoting options. The returned value points to static storage that can be reused by the next call to this function with the same value of N. N must be nonnegative; it is typically small, and must be less than MIN (INT_MAX, IDX_MAX). The type of N is signed to allow for future extensions (using negative values). */ static char * quotearg_n_options (int n, char const *arg, size_t argsize, struct quoting_options const *options) { int e = errno; struct slotvec *sv = slotvec; int nslots_max = MIN (INT_MAX, IDX_MAX); if (! (0 <= n && n < nslots_max)) abort (); if (nslots <= n) { bool preallocated = (sv == &slotvec0); idx_t new_nslots = nslots; slotvec = sv = xpalloc (preallocated ? NULL : sv, &new_nslots, n - nslots + 1, nslots_max, sizeof *sv); if (preallocated) *sv = slotvec0; memset (sv + nslots, 0, (new_nslots - nslots) * sizeof *sv); nslots = new_nslots; } { size_t size = sv[n].size; char *val = sv[n].val; /* Elide embedded null bytes since we don't return a size. */ int flags = options->flags | QA_ELIDE_NULL_BYTES; size_t qsize = quotearg_buffer_restyled (val, size, arg, argsize, options->style, flags, options->quote_these_too, options->left_quote, options->right_quote); if (size <= qsize) { sv[n].size = size = qsize + 1; if (val != slot0) free (val); sv[n].val = val = xcharalloc (size); quotearg_buffer_restyled (val, size, arg, argsize, options->style, flags, options->quote_these_too, options->left_quote, options->right_quote); } errno = e; return val; } } char * quotearg_n (int n, char const *arg) { return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options); } char * quotearg_n_mem (int n, char const *arg, size_t argsize) { return quotearg_n_options (n, arg, argsize, &default_quoting_options); } char * quotearg (char const *arg) { return quotearg_n (0, arg); } char * quotearg_mem (char const *arg, size_t argsize) { return quotearg_n_mem (0, arg, argsize); } char * quotearg_n_style (int n, enum quoting_style s, char const *arg) { struct quoting_options const o = quoting_options_from_style (s); return quotearg_n_options (n, arg, SIZE_MAX, &o); } char * quotearg_n_style_mem (int n, enum quoting_style s, char const *arg, size_t argsize) { struct quoting_options const o = quoting_options_from_style (s); return quotearg_n_options (n, arg, argsize, &o); } char * quotearg_style (enum quoting_style s, char const *arg) { return quotearg_n_style (0, s, arg); } char * quotearg_style_mem (enum quoting_style s, char const *arg, size_t argsize) { return quotearg_n_style_mem (0, s, arg, argsize); } char * quotearg_char_mem (char const *arg, size_t argsize, char ch) { struct quoting_options options; options = default_quoting_options; set_char_quoting (&options, ch, 1); return quotearg_n_options (0, arg, argsize, &options); } char * quotearg_char (char const *arg, char ch) { return quotearg_char_mem (arg, SIZE_MAX, ch); } char * quotearg_colon (char const *arg) { return quotearg_char (arg, ':'); } char * quotearg_colon_mem (char const *arg, size_t argsize) { return quotearg_char_mem (arg, argsize, ':'); } char * quotearg_n_style_colon (int n, enum quoting_style s, char const *arg) { struct quoting_options options; options = quoting_options_from_style (s); set_char_quoting (&options, ':', 1); return quotearg_n_options (n, arg, SIZE_MAX, &options); } char * quotearg_n_custom (int n, char const *left_quote, char const *right_quote, char const *arg) { return quotearg_n_custom_mem (n, left_quote, right_quote, arg, SIZE_MAX); } char * quotearg_n_custom_mem (int n, char const *left_quote, char const *right_quote, char const *arg, size_t argsize) { struct quoting_options o = default_quoting_options; set_custom_quoting (&o, left_quote, right_quote); return quotearg_n_options (n, arg, argsize, &o); } char * quotearg_custom (char const *left_quote, char const *right_quote, char const *arg) { return quotearg_n_custom (0, left_quote, right_quote, arg); } char * quotearg_custom_mem (char const *left_quote, char const *right_quote, char const *arg, size_t argsize) { return quotearg_n_custom_mem (0, left_quote, right_quote, arg, argsize); } /* The quoting option used by the functions of quote.h. */ struct quoting_options quote_quoting_options = { locale_quoting_style, 0, { 0 }, NULL, NULL }; char const * quote_n_mem (int n, char const *arg, size_t argsize) { return quotearg_n_options (n, arg, argsize, "e_quoting_options); } char const * quote_mem (char const *arg, size_t argsize) { return quote_n_mem (0, arg, argsize); } char const * quote_n (int n, char const *arg) { return quote_n_mem (n, arg, SIZE_MAX); } char const * quote (char const *arg) { return quote_n (0, arg); } /* * Hey Emacs! * Local Variables: * coding: utf-8 * End: */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/quotearg.h��������������������������������������������������������������������������0000644�0000000�0000000�00000042433�14374751113�012124� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* quotearg.h - quote arguments for output Copyright (C) 1998-2002, 2004, 2006, 2008-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert <eggert@twinsun.com> */ #ifndef QUOTEARG_H_ # define QUOTEARG_H_ 1 # include <stdlib.h> /* Basic quoting styles. For each style, an example is given on the input strings "simple", "\0 \t\n'\"\033?""?/\\", and "a:b", using quotearg_buffer, quotearg_mem, and quotearg_colon_mem with that style and the default flags and quoted characters. Note that the examples are shown here as valid C strings rather than what displays on a terminal (with "??/" as a trigraph for "\\"). */ enum quoting_style { /* Output names as-is (ls --quoting-style=literal). Can result in embedded null bytes if QA_ELIDE_NULL_BYTES is not in effect. quotearg_buffer: "simple", "\0 \t\n'\"\033??/\\", "a:b" quotearg: "simple", " \t\n'\"\033??/\\", "a:b" quotearg_colon: "simple", " \t\n'\"\033??/\\", "a:b" */ literal_quoting_style, /* Quote names for the shell if they contain shell metacharacters or would cause ambiguous output (ls --quoting-style=shell). Can result in embedded null bytes if QA_ELIDE_NULL_BYTES is not in effect. quotearg_buffer: "simple", "'\0 \t\n'\\''\"\033??/\\'", "a:b" quotearg: "simple", "' \t\n'\\''\"\033??/\\'", "a:b" quotearg_colon: "simple", "' \t\n'\\''\"\033??/\\'", "'a:b'" */ shell_quoting_style, /* Quote names for the shell, even if they would normally not require quoting (ls --quoting-style=shell-always). Can result in embedded null bytes if QA_ELIDE_NULL_BYTES is not in effect. Behaves like shell_quoting_style if QA_ELIDE_OUTER_QUOTES is in effect. quotearg_buffer: "'simple'", "'\0 \t\n'\\''\"\033??/\\'", "'a:b'" quotearg: "'simple'", "' \t\n'\\''\"\033??/\\'", "'a:b'" quotearg_colon: "'simple'", "' \t\n'\\''\"\033??/\\'", "'a:b'" */ shell_always_quoting_style, /* Quote names for the shell if they contain shell metacharacters or other problematic characters (ls --quoting-style=shell-escape). Non printable characters are quoted using the $'...' syntax, which originated in ksh93 and is widely supported by most shells, and proposed for inclusion in POSIX. quotearg_buffer: "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b" quotearg: "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b" quotearg_colon: "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "'a:b'" */ shell_escape_quoting_style, /* Quote names for the shell even if they would normally not require quoting (ls --quoting-style=shell-escape). Non printable characters are quoted using the $'...' syntax, which originated in ksh93 and is widely supported by most shells, and proposed for inclusion in POSIX. Behaves like shell_escape_quoting_style if QA_ELIDE_OUTER_QUOTES is in effect. quotearg_buffer: "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b" quotearg: "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b" quotearg_colon: "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "'a:b'" */ shell_escape_always_quoting_style, /* Quote names as for a C language string (ls --quoting-style=c). Behaves like c_maybe_quoting_style if QA_ELIDE_OUTER_QUOTES is in effect. Split into consecutive strings if QA_SPLIT_TRIGRAPHS. quotearg_buffer: "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" quotearg: "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" quotearg_colon: "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a\\:b\"" */ c_quoting_style, /* Like c_quoting_style except omit the surrounding double-quote characters if no quoted characters are encountered. quotearg_buffer: "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "a:b" quotearg: "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "a:b" quotearg_colon: "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" */ c_maybe_quoting_style, /* Like c_quoting_style except always omit the surrounding double-quote characters and ignore QA_SPLIT_TRIGRAPHS (ls --quoting-style=escape). quotearg_buffer: "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a:b" quotearg: "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a:b" quotearg_colon: "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a\\:b" */ escape_quoting_style, /* Like clocale_quoting_style, but use single quotes in the default C locale or if the program does not use gettext (ls --quoting-style=locale). For UTF-8 locales, quote characters will use Unicode. LC_MESSAGES=C quotearg_buffer: "`simple'", "`\\0 \\t\\n\\'\"\\033??/\\\\'", "`a:b'" quotearg: "`simple'", "`\\0 \\t\\n\\'\"\\033??/\\\\'", "`a:b'" quotearg_colon: "`simple'", "`\\0 \\t\\n\\'\"\\033??/\\\\'", "`a\\:b'" LC_MESSAGES=pt_PT.utf8 quotearg_buffer: "\302\253simple\302\273", "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273" quotearg: "\302\253simple\302\273", "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273" quotearg_colon: "\302\253simple\302\273", "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273" */ locale_quoting_style, /* Like c_quoting_style except use quotation marks appropriate for the locale and ignore QA_SPLIT_TRIGRAPHS (ls --quoting-style=clocale). LC_MESSAGES=C quotearg_buffer: "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" quotearg: "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" quotearg_colon: "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a\\:b\"" LC_MESSAGES=pt_PT.utf8 quotearg_buffer: "\302\253simple\302\273", "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273" quotearg: "\302\253simple\302\273", "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273" quotearg_colon: "\302\253simple\302\273", "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273" */ clocale_quoting_style, /* Like clocale_quoting_style except use the custom quotation marks set by set_custom_quoting. If custom quotation marks are not set, the behavior is undefined. left_quote = right_quote = "'" quotearg_buffer: "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'" quotearg: "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'" quotearg_colon: "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a\\:b'" left_quote = "(" and right_quote = ")" quotearg_buffer: "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a:b)" quotearg: "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a:b)" quotearg_colon: "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a\\:b)" left_quote = ":" and right_quote = " " quotearg_buffer: ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a:b " quotearg: ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a:b " quotearg_colon: ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a\\:b " left_quote = "\"'" and right_quote = "'\"" Notice that this is treated as a single level of quotes or two levels where the outer quote need not be escaped within the inner quotes. For two levels where the outer quote must be escaped within the inner quotes, you must use separate quotearg invocations. quotearg_buffer: "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a:b'\"" quotearg: "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a:b'\"" quotearg_colon: "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a\\:b'\"" */ custom_quoting_style }; /* Flags for use in set_quoting_flags. */ enum quoting_flags { /* Always elide null bytes from styles that do not quote them, even when the length of the result is available to the caller. */ QA_ELIDE_NULL_BYTES = 0x01, /* Omit the surrounding quote characters if no escaped characters are encountered. Note that if no other character needs escaping, then neither does the escape character. */ QA_ELIDE_OUTER_QUOTES = 0x02, /* In the c_quoting_style and c_maybe_quoting_style, split ANSI trigraph sequences into concatenated strings (for example, "?""?/" rather than "??/", which could be confused with "\\"). */ QA_SPLIT_TRIGRAPHS = 0x04 }; /* For now, --quoting-style=literal is the default, but this may change. */ # ifndef DEFAULT_QUOTING_STYLE # define DEFAULT_QUOTING_STYLE literal_quoting_style # endif /* Names of quoting styles and their corresponding values. */ extern char const *const quoting_style_args[]; extern enum quoting_style const quoting_style_vals[]; struct quoting_options; /* The functions listed below set and use a hidden variable that contains the default quoting style options. */ /* Allocate a new set of quoting options, with contents initially identical to O if O is not null, or to the default if O is null. It is the caller's responsibility to free the result. */ struct quoting_options *clone_quoting_options (struct quoting_options *o) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; /* Get the value of O's quoting style. If O is null, use the default. */ enum quoting_style get_quoting_style (struct quoting_options const *o); /* In O (or in the default if O is null), set the value of the quoting style to S. */ void set_quoting_style (struct quoting_options *o, enum quoting_style s); /* In O (or in the default if O is null), set the value of the quoting options for character C to I. Return the old value. Currently, the only values defined for I are 0 (the default) and 1 (which means to quote the character even if it would not otherwise be quoted). C must never be a digit or a letter that has special meaning after a backslash (for example, "\t" for tab). */ int set_char_quoting (struct quoting_options *o, char c, int i); /* In O (or in the default if O is null), set the value of the quoting options flag to I, which can be a bitwise combination of enum quoting_flags, or 0 for default behavior. Return the old value. */ int set_quoting_flags (struct quoting_options *o, int i); /* In O (or in the default if O is null), set the value of the quoting style to custom_quoting_style, set the left quote to LEFT_QUOTE, and set the right quote to RIGHT_QUOTE. Each of LEFT_QUOTE and RIGHT_QUOTE must be null-terminated and can be the empty string. Because backslashes are used for escaping, it does not make sense for RIGHT_QUOTE to contain a backslash. RIGHT_QUOTE must not begin with a digit or a letter that has special meaning after a backslash (for example, "\t" for tab). */ void set_custom_quoting (struct quoting_options *o, char const *left_quote, char const *right_quote); /* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of argument ARG (of size ARGSIZE), using O to control quoting. If O is null, use the default. Terminate the output with a null character, and return the written size of the output, not counting the terminating null. If BUFFERSIZE is too small to store the output string, return the value that would have been returned had BUFFERSIZE been large enough. If ARGSIZE is -1, use the string length of the argument for ARGSIZE. On output, BUFFER might contain embedded null bytes if ARGSIZE was not -1, the style of O does not use backslash escapes, and the flags of O do not request elision of null bytes.*/ size_t quotearg_buffer (char *restrict buffer, size_t buffersize, char const *arg, size_t argsize, struct quoting_options const *o); /* Like quotearg_buffer, except return the result in a newly allocated buffer. It is the caller's responsibility to free the result. The result will not contain embedded null bytes. */ char *quotearg_alloc (char const *arg, size_t argsize, struct quoting_options const *o) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; /* Like quotearg_alloc, except that the length of the result, excluding the terminating null byte, is stored into SIZE if it is non-NULL. The result might contain embedded null bytes if ARGSIZE was not -1, SIZE was not NULL, the style of O does not use backslash escapes, and the flags of O do not request elision of null bytes.*/ char *quotearg_alloc_mem (char const *arg, size_t argsize, size_t *size, struct quoting_options const *o) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; /* Use storage slot N to return a quoted version of the string ARG. Use the default quoting options. The returned value points to static storage that can be reused by the next call to this function with the same value of N. N must be nonnegative. The output of all functions in the quotearg_n family are guaranteed to not contain embedded null bytes.*/ char *quotearg_n (int n, char const *arg); /* Equivalent to quotearg_n (0, ARG). */ char *quotearg (char const *arg); /* Use storage slot N to return a quoted version of the argument ARG of size ARGSIZE. This is like quotearg_n (N, ARG), except it can quote null bytes. */ char *quotearg_n_mem (int n, char const *arg, size_t argsize); /* Equivalent to quotearg_n_mem (0, ARG, ARGSIZE). */ char *quotearg_mem (char const *arg, size_t argsize); /* Use style S and storage slot N to return a quoted version of the string ARG. This is like quotearg_n (N, ARG), except that it uses S with no other options to specify the quoting method. */ char *quotearg_n_style (int n, enum quoting_style s, char const *arg); /* Use style S and storage slot N to return a quoted version of the argument ARG of size ARGSIZE. This is like quotearg_n_style (N, S, ARG), except it can quote null bytes. */ char *quotearg_n_style_mem (int n, enum quoting_style s, char const *arg, size_t argsize); /* Equivalent to quotearg_n_style (0, S, ARG). */ char *quotearg_style (enum quoting_style s, char const *arg); /* Equivalent to quotearg_n_style_mem (0, S, ARG, ARGSIZE). */ char *quotearg_style_mem (enum quoting_style s, char const *arg, size_t argsize); /* Like quotearg (ARG), except also quote any instances of CH. See set_char_quoting for a description of acceptable CH values. */ char *quotearg_char (char const *arg, char ch); /* Like quotearg_char (ARG, CH), except it can quote null bytes. */ char *quotearg_char_mem (char const *arg, size_t argsize, char ch); /* Equivalent to quotearg_char (ARG, ':'). */ char *quotearg_colon (char const *arg); /* Like quotearg_colon (ARG), except it can quote null bytes. */ char *quotearg_colon_mem (char const *arg, size_t argsize); /* Like quotearg_n_style, except with ':' quoting enabled. */ char *quotearg_n_style_colon (int n, enum quoting_style s, char const *arg); /* Like quotearg_n_style (N, S, ARG) but with S as custom_quoting_style with left quote as LEFT_QUOTE and right quote as RIGHT_QUOTE. See set_custom_quoting for a description of acceptable LEFT_QUOTE and RIGHT_QUOTE values. */ char *quotearg_n_custom (int n, char const *left_quote, char const *right_quote, char const *arg); /* Like quotearg_n_custom (N, LEFT_QUOTE, RIGHT_QUOTE, ARG) except it can quote null bytes. */ char *quotearg_n_custom_mem (int n, char const *left_quote, char const *right_quote, char const *arg, size_t argsize); /* Equivalent to quotearg_n_custom (0, LEFT_QUOTE, RIGHT_QUOTE, ARG). */ char *quotearg_custom (char const *left_quote, char const *right_quote, char const *arg); /* Equivalent to quotearg_n_custom_mem (0, LEFT_QUOTE, RIGHT_QUOTE, ARG, ARGSIZE). */ char *quotearg_custom_mem (char const *left_quote, char const *right_quote, char const *arg, size_t argsize); /* Free any dynamically allocated memory. */ void quotearg_free (void); #endif /* !QUOTEARG_H_ */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/rawmemchr.c�������������������������������������������������������������������������0000644�0000000�0000000�00000011461�14374751113�012252� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Searching in a string. Copyright (C) 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <string.h> /* A function definition is only needed if HAVE_RAWMEMCHR is not defined. */ #if !HAVE_RAWMEMCHR # include <limits.h> # include <stdint.h> /* Find the first occurrence of C in S. */ void * rawmemchr (const void *s, int c_in) { /* Change this typedef to experiment with performance. */ typedef uintptr_t longword; /* If you change the "uintptr_t", you should change UINTPTR_WIDTH to match. This verifies that the type does not have padding bits. */ static_assert (UINTPTR_WIDTH == UCHAR_WIDTH * sizeof (longword)); const unsigned char *char_ptr; unsigned char c = c_in; /* Handle the first few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s; (uintptr_t) char_ptr % alignof (longword) != 0; ++char_ptr) if (*char_ptr == c) return (void *) char_ptr; longword const *longword_ptr = s = char_ptr; /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ longword repeated_one = (longword) -1 / UCHAR_MAX; longword repeated_c = repeated_one * c; longword repeated_hibit = repeated_one * (UCHAR_MAX / 2 + 1); /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if any of the bytes in the longword in question are equal to c. We first use an xor with repeated_c. This reduces the task to testing whether any of the bytes in longword1 is zero. (The following comments assume 8-bit bytes, as POSIX requires; the code's use of UCHAR_MAX should work even if bytes have more than 8 bits.) We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one * 0x80). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. The test whether any byte in longword1 is zero is equivalent to testing whether tmp is nonzero. This test can read beyond the end of a string, depending on where C_IN is encountered. However, this is considered safe since the initialization phase ensured that the read will be aligned, therefore, the read will not cross page boundaries and will not cause a fault. */ while (1) { longword longword1 = *longword_ptr ^ repeated_c; if ((((longword1 - repeated_one) & ~longword1) & repeated_hibit) != 0) break; longword_ptr++; } char_ptr = s = longword_ptr; /* At this point, we know that one of the sizeof (longword) bytes starting at char_ptr is == c. If we knew endianness, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. However, the following simple and portable code does not attempt this potential optimization. */ while (*char_ptr != c) char_ptr++; return (void *) char_ptr; } #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/rawmemchr.valgrind������������������������������������������������������������������0000644�0000000�0000000�00000001714�14374751113�013636� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Suppress a valgrind message about use of uninitialized memory in rawmemchr(). # Copyright (C) 2008-2023 Free Software Foundation, Inc. # # This file is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # License, or (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # This use is OK because it provides only a speedup. { rawmemchr-value4 Memcheck:Value4 fun:rawmemchr } { rawmemchr-value8 Memcheck:Value8 fun:rawmemchr } ����������������������������������������������������a2ps-4.15.5/lib/readdir.c���������������������������������������������������������������������������0000644�0000000�0000000�00000006072�14374751113�011701� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Read the next entry of a directory. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <dirent.h> #include <errno.h> #include <stddef.h> #include "dirent-private.h" /* Don't assume that UNICODE is not defined. */ #undef FindNextFile #define FindNextFile FindNextFileA struct dirent * readdir (DIR *dirp) { char type; struct dirent *result; /* There is no need to add code to produce entries for "." and "..". According to the POSIX:2008 section "4.12 Pathname Resolution" <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html> "." and ".." are syntactic entities. POSIX also says: "If entries for dot or dot-dot exist, one entry shall be returned for dot and one entry shall be returned for dot-dot; otherwise, they shall not be returned." */ switch (dirp->status) { case -2: /* End of directory already reached. */ return NULL; case -1: break; case 0: if (!FindNextFile (dirp->current, &dirp->entry)) { switch (GetLastError ()) { case ERROR_NO_MORE_FILES: dirp->status = -2; return NULL; default: errno = EIO; return NULL; } } break; default: errno = dirp->status; return NULL; } dirp->status = 0; if (dirp->entry.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) type = DT_DIR; else if (dirp->entry.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) type = DT_LNK; else if ((dirp->entry.dwFileAttributes & ~(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_TEMPORARY | FILE_ATTRIBUTE_SPARSE_FILE | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | FILE_ATTRIBUTE_ENCRYPTED)) == 0) /* Devices like COM1, LPT1, NUL would also have the attributes 0x20 but they cannot occur here. */ type = DT_REG; else type = DT_UNKNOWN; /* Reuse the memory of dirp->entry for the result. */ result = (struct dirent *) ((char *) dirp->entry.cFileName - offsetof (struct dirent, d_name[0])); result->d_type = type; return result; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/readlink.c��������������������������������������������������������������������������0000644�0000000�0000000�00000006223�14374751113�012056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Read the contents of a symbolic link. Copyright (C) 2003-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/stat.h> #if !HAVE_READLINK /* readlink() substitute for systems that don't have a readlink() function, such as DJGPP 2.03 and mingw32. */ ssize_t readlink (char const *file, _GL_UNUSED char *buf, _GL_UNUSED size_t bufsize) { struct stat statbuf; /* In general we should use lstat() here, not stat(). But on platforms without symbolic links, lstat() - if it exists - would be equivalent to stat(), therefore we can use stat(). This saves us a configure check. */ if (stat (file, &statbuf) >= 0) errno = EINVAL; return -1; } #else /* HAVE_READLINK */ # undef readlink /* readlink() wrapper that uses correct types, for systems like cygwin 1.5.x where readlink returns int, and which rejects trailing slash, for Solaris 9. */ ssize_t rpl_readlink (char const *file, char *buf, size_t bufsize) { # if READLINK_TRAILING_SLASH_BUG size_t file_len = strlen (file); if (file_len && file[file_len - 1] == '/') { /* Even if FILE without the slash is a symlink to a directory, both lstat() and stat() must resolve the trailing slash to the directory rather than the symlink. We can therefore safely use stat() to distinguish between EINVAL and ENOTDIR/ENOENT, avoiding extra overhead of rpl_lstat(). */ struct stat st; if (stat (file, &st) == 0 || errno == EOVERFLOW) errno = EINVAL; return -1; } # endif /* READLINK_TRAILING_SLASH_BUG */ ssize_t r = readlink (file, buf, bufsize); # if READLINK_TRUNCATE_BUG if (r < 0 && errno == ERANGE) { /* Try again with a bigger buffer. This is just for test cases; real code invariably discards short reads. */ char stackbuf[4032]; r = readlink (file, stackbuf, sizeof stackbuf); if (r < 0) { if (errno == ERANGE) { /* Clear the buffer, which is good enough for real code. Thankfully, no test cases try short reads of enormous symlinks and what would be the point anyway? */ r = bufsize; memset (buf, 0, r); } } else { if (bufsize < r) r = bufsize; memcpy (buf, stackbuf, r); } } # endif return r; } #endif /* HAVE_READLINK */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/readlinkat.c������������������������������������������������������������������������0000644�0000000�0000000�00000007145�14374751113�012407� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Read a symlink relative to an open directory. Copyright (C) 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Eric Blake */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #include <stdlib.h> #include <string.h> #include <sys/stat.h> #if HAVE_READLINKAT # undef fstatat # undef readlinkat ssize_t rpl_readlinkat (int fd, char const *file, char *buf, size_t bufsize) { # if READLINK_TRAILING_SLASH_BUG size_t file_len = strlen (file); if (file_len && file[file_len - 1] == '/') { /* Even if FILE without the slash is a symlink to a directory, both lstat() and stat() must resolve the trailing slash to the directory rather than the symlink. We can therefore safely use fstatat(..., 0) to distinguish between EINVAL and ENOTDIR/ENOENT, avoiding extra overhead of rpl_fstatat(). */ struct stat st; if (fstatat (fd, file, &st, 0) == 0 || errno == EOVERFLOW) errno = EINVAL; return -1; } # endif /* READLINK_TRAILING_SLASH_BUG */ ssize_t r = readlinkat (fd, file, buf, bufsize); # if READLINK_TRUNCATE_BUG if (r < 0 && errno == ERANGE) { /* Try again with a bigger buffer. This is just for test cases; real code invariably discards short reads. */ char stackbuf[4032]; r = readlinkat (fd, file, stackbuf, sizeof stackbuf); if (r < 0) { if (errno == ERANGE) { /* Clear the buffer, which is good enough for real code. Thankfully, no test cases try short reads of enormous symlinks and what would be the point anyway? */ r = bufsize; memset (buf, 0, r); } } else { if (bufsize < r) r = bufsize; memcpy (buf, stackbuf, r); } } # endif return r; } #else /* Gnulib provides a readlink stub for mingw; use it for distinction between EINVAL and ENOENT, rather than always failing with ENOSYS. */ /* POSIX 2008 says that unlike readlink, readlinkat returns 0 for success instead of the buffer length. But this would render readlinkat worthless since readlink does not guarantee a NUL-terminated buffer. Assume this was a bug in POSIX. */ /* Read the contents of symlink FILE into buffer BUF of size BUFSIZE, in the directory open on descriptor FD. If possible, do it without changing the working directory. Otherwise, resort to using save_cwd/fchdir, then readlink/restore_cwd. If either the save_cwd or the restore_cwd fails, then give a diagnostic and exit nonzero. */ # define AT_FUNC_NAME readlinkat # define AT_FUNC_F1 readlink # define AT_FUNC_POST_FILE_PARAM_DECLS , char *buf, size_t bufsize # define AT_FUNC_POST_FILE_ARGS , buf, bufsize # define AT_FUNC_RESULT ssize_t # include "at-func.c" # undef AT_FUNC_NAME # undef AT_FUNC_F1 # undef AT_FUNC_POST_FILE_PARAM_DECLS # undef AT_FUNC_POST_FILE_ARGS # undef AT_FUNC_RESULT #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/realloc.c���������������������������������������������������������������������������0000644�0000000�0000000�00000003131�14374751113�011701� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* realloc() function that is glibc compatible. Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering and Bruno Haible */ #include <config.h> #include <stdlib.h> #include <errno.h> #include "xalloc-oversized.h" /* Call the system's realloc below. This file does not define _GL_USE_STDLIB_ALLOC because it needs Gnulib's malloc if present. */ #undef realloc /* Change the size of an allocated block of memory P to N bytes, with error checking. If P is NULL, use malloc. Otherwise if N is zero, free P and return NULL. */ void * rpl_realloc (void *p, size_t n) { if (p == NULL) return malloc (n); if (n == 0) { free (p); return NULL; } if (xalloc_oversized (n, 1)) { errno = ENOMEM; return NULL; } void *result = realloc (p, n); #if !HAVE_MALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/reallocarray.c����������������������������������������������������������������������0000644�0000000�0000000�00000002166�14374751113�012747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* reallocarray function that is glibc compatible. Copyright (C) 2017-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Darshit Shah */ #include <config.h> #include <stdckdint.h> #include <stdlib.h> #include <errno.h> void * reallocarray (void *ptr, size_t nmemb, size_t size) { size_t nbytes; if (ckd_mul (&nbytes, nmemb, size)) { errno = ENOMEM; return NULL; } /* Rely on the semantics of GNU realloc. */ return realloc (ptr, nbytes); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/rename.c����������������������������������������������������������������������������0000644�0000000�0000000�00000032135�14374751113�011535� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Work around rename bugs in some systems. Copyright (C) 2001-2003, 2005-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Volker Borchert, Eric Blake. */ #include <config.h> #include <stdio.h> #undef rename #if defined _WIN32 && ! defined __CYGWIN__ /* The mingw rename has problems with trailing slashes; it also requires use of native Windows calls to allow atomic renames over existing files. */ # include <errno.h> # include <stdlib.h> # include <sys/stat.h> # include <unistd.h> # define WIN32_LEAN_AND_MEAN # include <windows.h> # include "dirname.h" /* Don't assume that UNICODE is not defined. */ # undef MoveFileEx # define MoveFileEx MoveFileExA /* Rename the file SRC to DST. This replacement is necessary on Windows, on which the system rename function will not replace an existing DST. */ int rpl_rename (char const *src, char const *dst) { int error; size_t src_len = strlen (src); size_t dst_len = strlen (dst); char *src_base = last_component (src); char *dst_base = last_component (dst); bool src_slash; bool dst_slash; bool dst_exists; struct stat src_st; struct stat dst_st; /* Filter out dot as last component. */ if (!src_len || !dst_len) { errno = ENOENT; return -1; } if (*src_base == '.') { size_t len = base_len (src_base); if (len == 1 || (len == 2 && src_base[1] == '.')) { errno = EINVAL; return -1; } } if (*dst_base == '.') { size_t len = base_len (dst_base); if (len == 1 || (len == 2 && dst_base[1] == '.')) { errno = EINVAL; return -1; } } /* Presence of a trailing slash requires directory semantics. If the source does not exist, or if the destination cannot be turned into a directory, give up now. Otherwise, strip trailing slashes before calling rename. There are no symlinks on mingw, so stat works instead of lstat. */ src_slash = ISSLASH (src[src_len - 1]); dst_slash = ISSLASH (dst[dst_len - 1]); if (stat (src, &src_st)) return -1; if (stat (dst, &dst_st)) { if (errno != ENOENT || (!S_ISDIR (src_st.st_mode) && dst_slash)) return -1; dst_exists = false; } else { if (S_ISDIR (dst_st.st_mode) != S_ISDIR (src_st.st_mode)) { errno = S_ISDIR (dst_st.st_mode) ? EISDIR : ENOTDIR; return -1; } dst_exists = true; } /* There are no symlinks, so if a file existed with a trailing slash, it must be a directory, and we don't have to worry about stripping strip trailing slash. However, mingw refuses to replace an existing empty directory, so we have to help it out. And canonicalize_file_name is not yet ported to mingw; however, for directories, getcwd works as a viable alternative. Ensure that we can get back to where we started before using it; later attempts to return are fatal. Note that we can end up losing a directory if rename then fails, but it was empty, so not much damage was done. */ if (dst_exists && S_ISDIR (dst_st.st_mode)) { char *cwd = getcwd (NULL, 0); char *src_temp; char *dst_temp; if (!cwd || chdir (cwd)) return -1; if (IS_ABSOLUTE_FILE_NAME (src)) { dst_temp = chdir (dst) ? NULL : getcwd (NULL, 0); src_temp = chdir (src) ? NULL : getcwd (NULL, 0); } else { src_temp = chdir (src) ? NULL : getcwd (NULL, 0); if (!IS_ABSOLUTE_FILE_NAME (dst) && chdir (cwd)) abort (); dst_temp = chdir (dst) ? NULL : getcwd (NULL, 0); } if (chdir (cwd)) abort (); free (cwd); if (!src_temp || !dst_temp) { free (src_temp); free (dst_temp); errno = ENOMEM; return -1; } src_len = strlen (src_temp); if (strncmp (src_temp, dst_temp, src_len) == 0 && (ISSLASH (dst_temp[src_len]) || dst_temp[src_len] == '\0')) { error = dst_temp[src_len]; free (src_temp); free (dst_temp); if (error) { errno = EINVAL; return -1; } return 0; } if (rmdir (dst)) { free (src_temp); free (dst_temp); return -1; } free (src_temp); free (dst_temp); } /* MoveFileEx works if SRC is a directory without any flags, but fails with MOVEFILE_REPLACE_EXISTING, so try without flags first. Thankfully, MoveFileEx handles hard links correctly, even though rename() does not. */ if (MoveFileEx (src, dst, 0)) return 0; /* Retry with MOVEFILE_REPLACE_EXISTING if the move failed due to the destination already existing. */ error = GetLastError (); if (error == ERROR_FILE_EXISTS || error == ERROR_ALREADY_EXISTS) { if (MoveFileEx (src, dst, MOVEFILE_REPLACE_EXISTING)) return 0; error = GetLastError (); } switch (error) { case ERROR_FILE_NOT_FOUND: case ERROR_PATH_NOT_FOUND: case ERROR_BAD_PATHNAME: case ERROR_DIRECTORY: errno = ENOENT; break; case ERROR_ACCESS_DENIED: case ERROR_SHARING_VIOLATION: errno = EACCES; break; case ERROR_OUTOFMEMORY: errno = ENOMEM; break; case ERROR_CURRENT_DIRECTORY: errno = EBUSY; break; case ERROR_NOT_SAME_DEVICE: errno = EXDEV; break; case ERROR_WRITE_PROTECT: errno = EROFS; break; case ERROR_WRITE_FAULT: case ERROR_READ_FAULT: case ERROR_GEN_FAILURE: errno = EIO; break; case ERROR_HANDLE_DISK_FULL: case ERROR_DISK_FULL: case ERROR_DISK_TOO_FRAGMENTED: errno = ENOSPC; break; case ERROR_FILE_EXISTS: case ERROR_ALREADY_EXISTS: errno = EEXIST; break; case ERROR_BUFFER_OVERFLOW: case ERROR_FILENAME_EXCED_RANGE: errno = ENAMETOOLONG; break; case ERROR_INVALID_NAME: case ERROR_DELETE_PENDING: errno = EPERM; /* ? */ break; # ifndef ERROR_FILE_TOO_LARGE /* This value is documented but not defined in all versions of windows.h. */ # define ERROR_FILE_TOO_LARGE 223 # endif case ERROR_FILE_TOO_LARGE: errno = EFBIG; break; default: errno = EINVAL; break; } return -1; } #else /* ! W32 platform */ # include <errno.h> # include <stdio.h> # include <stdlib.h> # include <string.h> # include <sys/stat.h> # include <unistd.h> # include "dirname.h" # include "same-inode.h" /* Rename the file SRC to DST, fixing any trailing slash bugs. */ int rpl_rename (char const *src, char const *dst) { size_t src_len = strlen (src); size_t dst_len = strlen (dst); char *src_temp = (char *) src; char *dst_temp = (char *) dst; bool src_slash; bool dst_slash; _GL_UNUSED bool dst_exists; int ret_val = -1; int rename_errno = ENOTDIR; struct stat src_st; struct stat dst_st; if (!src_len || !dst_len) return rename (src, dst); /* Let strace see the ENOENT failure. */ # if RENAME_DEST_EXISTS_BUG { char *src_base = last_component (src); char *dst_base = last_component (dst); if (*src_base == '.') { size_t len = base_len (src_base); if (len == 1 || (len == 2 && src_base[1] == '.')) { errno = EINVAL; return -1; } } if (*dst_base == '.') { size_t len = base_len (dst_base); if (len == 1 || (len == 2 && dst_base[1] == '.')) { errno = EINVAL; return -1; } } } # endif /* RENAME_DEST_EXISTS_BUG */ src_slash = src[src_len - 1] == '/'; dst_slash = dst[dst_len - 1] == '/'; # if !RENAME_HARD_LINK_BUG && !RENAME_DEST_EXISTS_BUG /* If there are no trailing slashes, then trust the native implementation unless we also suspect issues with hard link detection or file/directory conflicts. */ if (!src_slash && !dst_slash) return rename (src, dst); # endif /* !RENAME_HARD_LINK_BUG && !RENAME_DEST_EXISTS_BUG */ /* Presence of a trailing slash requires directory semantics. If the source does not exist, or if the destination cannot be turned into a directory, give up now. Otherwise, strip trailing slashes before calling rename. */ if (lstat (src, &src_st)) return -1; if (lstat (dst, &dst_st)) { if (errno != ENOENT || (!S_ISDIR (src_st.st_mode) && dst_slash)) return -1; dst_exists = false; } else { if (S_ISDIR (dst_st.st_mode) != S_ISDIR (src_st.st_mode)) { errno = S_ISDIR (dst_st.st_mode) ? EISDIR : ENOTDIR; return -1; } # if RENAME_HARD_LINK_BUG if (SAME_INODE (src_st, dst_st)) return 0; # endif /* RENAME_HARD_LINK_BUG */ dst_exists = true; } # if (RENAME_TRAILING_SLASH_SOURCE_BUG || RENAME_DEST_EXISTS_BUG \ || RENAME_HARD_LINK_BUG) /* If the only bug was that a trailing slash was allowed on a non-existing file destination, as in Solaris 10, then we've already covered that situation. But if there is any problem with a trailing slash on an existing source or destination, as in Solaris 9, or if a directory can overwrite a symlink, as on Cygwin 1.5, or if directories cannot be created with trailing slash, as on NetBSD 1.6, then we must strip the offending slash and check that we have not encountered a symlink instead of a directory. Stripping a trailing slash interferes with POSIX semantics, where rename behavior on a symlink with a trailing slash operates on the corresponding target directory. We prefer the GNU semantics of rejecting any use of a symlink with trailing slash, but do not enforce them, since Solaris 10 is able to obey POSIX semantics and there might be clients expecting it, as counter-intuitive as those semantics are. Technically, we could also follow the POSIX behavior by chasing a readlink trail, but that is harder to implement. */ if (src_slash) { src_temp = strdup (src); if (!src_temp) { /* Rather than rely on strdup-posix, we set errno ourselves. */ rename_errno = ENOMEM; goto out; } strip_trailing_slashes (src_temp); if (lstat (src_temp, &src_st)) { rename_errno = errno; goto out; } if (S_ISLNK (src_st.st_mode)) goto out; } if (dst_slash) { dst_temp = strdup (dst); if (!dst_temp) { rename_errno = ENOMEM; goto out; } strip_trailing_slashes (dst_temp); if (lstat (dst_temp, &dst_st)) { if (errno != ENOENT) { rename_errno = errno; goto out; } } else if (S_ISLNK (dst_st.st_mode)) goto out; } # endif /* RENAME_TRAILING_SLASH_SOURCE_BUG || RENAME_DEST_EXISTS_BUG || RENAME_HARD_LINK_BUG */ # if RENAME_DEST_EXISTS_BUG /* Cygwin 1.5 sometimes behaves oddly when moving a non-empty directory on top of an empty one (the old directory name can reappear if the new directory tree is removed). Work around this by removing the target first, but don't remove the target if it is a subdirectory of the source. Note that we can end up losing a directory if rename then fails, but it was empty, so not much damage was done. */ if (dst_exists && S_ISDIR (dst_st.st_mode)) { if (src_st.st_dev != dst_st.st_dev) { rename_errno = EXDEV; goto out; } if (src_temp != src) free (src_temp); src_temp = canonicalize_file_name (src); if (dst_temp != dst) free (dst_temp); dst_temp = canonicalize_file_name (dst); if (!src_temp || !dst_temp) { rename_errno = ENOMEM; goto out; } src_len = strlen (src_temp); if (strncmp (src_temp, dst_temp, src_len) == 0 && dst_temp[src_len] == '/') { rename_errno = EINVAL; goto out; } if (rmdir (dst)) { rename_errno = errno; goto out; } } # endif /* RENAME_DEST_EXISTS_BUG */ ret_val = rename (src_temp, dst_temp); rename_errno = errno; out: _GL_UNUSED_LABEL; if (src_temp != src) free (src_temp); if (dst_temp != dst) free (dst_temp); errno = rename_errno; return ret_val; } #endif /* ! W32 platform */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/renameatu.c�������������������������������������������������������������������������0000644�0000000�0000000�00000016012�14374751113�012243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Rename a file relative to open directories. Copyright (C) 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Eric Blake and Paul Eggert */ #include <config.h> #include "renameatu.h" #include <errno.h> #include <stdio.h> #include <sys/stat.h> #include <unistd.h> #ifdef __linux__ # include <sys/syscall.h> #endif static int errno_fail (int e) { errno = e; return -1; } #if HAVE_RENAMEAT # include <stdlib.h> # include <string.h> # include "dirname.h" # include "openat.h" #else # include "openat-priv.h" static int rename_noreplace (char const *src, char const *dst) { /* This has a race between the call to lstat and the call to rename. */ struct stat st; return (lstat (dst, &st) == 0 || errno == EOVERFLOW ? errno_fail (EEXIST) : errno == ENOENT ? rename (src, dst) : -1); } #endif #undef renameat #if HAVE_RENAMEAT /* Act like renameat (FD1, SRC, FD2, DST), except fail with EEXIST if FLAGS is nonzero and it is easy to fail atomically if DST already exists. This lets renameatu be atomic when it can be implemented in terms of renameatx_np. */ static int renameat2ish (int fd1, char const *src, int fd2, char const *dst, unsigned int flags) { # ifdef RENAME_EXCL if (flags) { int r = renameatx_np (fd1, src, fd2, dst, RENAME_EXCL); if (r == 0 || errno != ENOTSUP) return r; } # endif return renameat (fd1, src, fd2, dst); } #endif /* Rename FILE1, in the directory open on descriptor FD1, to FILE2, in the directory open on descriptor FD2. If possible, do it without changing the working directory. Otherwise, resort to using save_cwd/fchdir, then rename/restore_cwd. If either the save_cwd or the restore_cwd fails, then give a diagnostic and exit nonzero. Obey FLAGS when doing the renaming. If FLAGS is zero, this function is equivalent to renameat (FD1, SRC, FD2, DST). Otherwise, attempt to implement FLAGS even if the implementation is not atomic; this differs from the GNU/Linux native renameat2, which fails if it cannot guarantee atomicity. */ int renameatu (int fd1, char const *src, int fd2, char const *dst, unsigned int flags) { int ret_val = -1; int err = EINVAL; #ifdef HAVE_RENAMEAT2 ret_val = renameat2 (fd1, src, fd2, dst, flags); err = errno; #elif defined SYS_renameat2 ret_val = syscall (SYS_renameat2, fd1, src, fd2, dst, flags); err = errno; #endif if (! (ret_val < 0 && (err == EINVAL || err == ENOSYS || err == ENOTSUP))) return ret_val; #if HAVE_RENAMEAT { size_t src_len; size_t dst_len; char *src_temp = (char *) src; char *dst_temp = (char *) dst; bool src_slash; bool dst_slash; int rename_errno = ENOTDIR; struct stat src_st; struct stat dst_st; bool dst_found_nonexistent = false; switch (flags) { case 0: break; case RENAME_NOREPLACE: /* This has a race between the call to fstatat and the calls to renameat below. This fstatat is needed even if RENAME_EXCL is defined, because RENAME_EXCL is buggy on macOS 11.2: renameatx_np (fd, "X", fd, "X", RENAME_EXCL) incorrectly succeeds when X exists. */ if (fstatat (fd2, dst, &dst_st, AT_SYMLINK_NOFOLLOW) == 0 || errno == EOVERFLOW) return errno_fail (EEXIST); if (errno != ENOENT) return -1; dst_found_nonexistent = true; break; default: return errno_fail (ENOTSUP); } /* Let strace see any ENOENT failure. */ src_len = strlen (src); dst_len = strlen (dst); if (!src_len || !dst_len) return renameat2ish (fd1, src, fd2, dst, flags); src_slash = src[src_len - 1] == '/'; dst_slash = dst[dst_len - 1] == '/'; if (!src_slash && !dst_slash) return renameat2ish (fd1, src, fd2, dst, flags); /* Presence of a trailing slash requires directory semantics. If the source does not exist, or if the destination cannot be turned into a directory, give up now. Otherwise, strip trailing slashes before calling rename. */ if (fstatat (fd1, src, &src_st, AT_SYMLINK_NOFOLLOW)) return -1; if (dst_found_nonexistent) { if (!S_ISDIR (src_st.st_mode)) return errno_fail (ENOENT); } else if (fstatat (fd2, dst, &dst_st, AT_SYMLINK_NOFOLLOW)) { if (errno != ENOENT || !S_ISDIR (src_st.st_mode)) return -1; } else if (!S_ISDIR (dst_st.st_mode)) return errno_fail (ENOTDIR); else if (!S_ISDIR (src_st.st_mode)) return errno_fail (EISDIR); # if RENAME_TRAILING_SLASH_SOURCE_BUG /* See the lengthy comment in rename.c why Solaris 9 is forced to GNU behavior, while Solaris 10 is left with POSIX behavior, regarding symlinks with trailing slash. */ ret_val = -1; if (src_slash) { src_temp = strdup (src); if (!src_temp) { /* Rather than rely on strdup-posix, we set errno ourselves. */ rename_errno = ENOMEM; goto out; } strip_trailing_slashes (src_temp); if (fstatat (fd1, src_temp, &src_st, AT_SYMLINK_NOFOLLOW)) { rename_errno = errno; goto out; } if (S_ISLNK (src_st.st_mode)) goto out; } if (dst_slash) { dst_temp = strdup (dst); if (!dst_temp) { rename_errno = ENOMEM; goto out; } strip_trailing_slashes (dst_temp); char readlink_buf[1]; if (readlinkat (fd2, dst_temp, readlink_buf, sizeof readlink_buf) < 0) { if (errno != ENOENT && errno != EINVAL) { rename_errno = errno; goto out; } } else goto out; } # endif /* RENAME_TRAILING_SLASH_SOURCE_BUG */ /* renameat does not honor trailing / on Solaris 10. Solve it in a similar manner to rename. No need to worry about bugs not present on Solaris, since all other systems either lack renameat or honor trailing slash correctly. */ ret_val = renameat2ish (fd1, src_temp, fd2, dst_temp, flags); rename_errno = errno; goto out; out: if (src_temp != src) free (src_temp); if (dst_temp != dst) free (dst_temp); errno = rename_errno; return ret_val; } #else /* !HAVE_RENAMEAT */ /* RENAME_NOREPLACE is the only flag currently supported. */ if (flags & ~RENAME_NOREPLACE) return errno_fail (ENOTSUP); return at_func2 (fd1, src, fd2, dst, flags ? rename_noreplace : rename); #endif /* !HAVE_RENAMEAT */ } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/renameatu.h�������������������������������������������������������������������������0000644�0000000�0000000�00000002137�14374751113�012253� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Rename a file relative to open directories. Copyright 2017-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Paul Eggert */ /* Get RENAME_* macros from <stdio.h> if present, otherwise supply the traditional Linux values. */ #include <stdio.h> #ifndef RENAME_NOREPLACE # define RENAME_NOREPLACE (1 << 0) # define RENAME_EXCHANGE (1 << 1) # define RENAME_WHITEOUT (1 << 2) #endif extern int renameatu (int, char const *, int, char const *, unsigned int); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/rmdir.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000003166�14374751113�011405� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Work around rmdir bugs. Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include <unistd.h> #include <errno.h> #include <string.h> #include "filename.h" #undef rmdir #if defined _WIN32 && !defined __CYGWIN__ # define rmdir _rmdir #endif /* Remove directory DIR. Return 0 if successful, -1 if not. */ int rpl_rmdir (char const *dir) { /* Work around cygwin 1.5.x bug where rmdir("dir/./") succeeds. */ size_t len = strlen (dir); int result; while (len && ISSLASH (dir[len - 1])) len--; if (len && dir[len - 1] == '.' && (1 == len || ISSLASH (dir[len - 2]))) { errno = EINVAL; return -1; } result = rmdir (dir); /* Work around mingw bug, where rmdir("file/") fails with EINVAL instead of ENOTDIR. We've already filtered out trailing ., the only reason allowed by POSIX for EINVAL. */ if (result == -1 && errno == EINVAL) errno = ENOTDIR; return result; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/same-inode.h������������������������������������������������������������������������0000644�0000000�0000000�00000003237�14374751113�012315� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Determine whether two stat buffers are known to refer to the same file. Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef SAME_INODE_H # define SAME_INODE_H 1 # include <sys/types.h> # if defined __VMS && __CRTL_VER < 80200000 # define SAME_INODE(a, b) \ ((a).st_ino[0] == (b).st_ino[0] \ && (a).st_ino[1] == (b).st_ino[1] \ && (a).st_ino[2] == (b).st_ino[2] \ && (a).st_dev == (b).st_dev) # elif defined _WIN32 && ! defined __CYGWIN__ /* Native Windows. */ # if _GL_WINDOWS_STAT_INODES /* stat() and fstat() set st_dev and st_ino to 0 if information about the inode is not available. */ # define SAME_INODE(a, b) \ (!((a).st_ino == 0 && (a).st_dev == 0) \ && (a).st_ino == (b).st_ino && (a).st_dev == (b).st_dev) # else /* stat() and fstat() set st_ino to 0 always. */ # define SAME_INODE(a, b) 0 # endif # else # define SAME_INODE(a, b) \ ((a).st_ino == (b).st_ino \ && (a).st_dev == (b).st_dev) # endif #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/save-cwd.c��������������������������������������������������������������������������0000644�0000000�0000000�00000005724�14374751113�012003� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* save-cwd.c -- Save and restore current working directory. Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> #include "save-cwd.h" #include <errno.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include "chdir-long.h" #include "unistd--.h" #if GNULIB_FCNTL_SAFER # include "fcntl--.h" #else # define GNULIB_FCNTL_SAFER 0 #endif /* Record the location of the current working directory in CWD so that the program may change to other directories and later use restore_cwd to return to the recorded location. This function may allocate space using malloc (via getcwd) or leave a file descriptor open; use free_cwd to perform the necessary free or close. Upon failure, no memory is allocated, any locally opened file descriptors are closed; return non-zero -- in that case, free_cwd need not be called, but doing so is ok. Otherwise, return zero. The _raison d'etre_ for this interface is that the working directory is sometimes inaccessible, and getcwd is not robust or as efficient. So, we prefer to use the open/fchdir approach, but fall back on getcwd if necessary. This module works for most cases with just the getcwd-lgpl module, but to be truly robust, use the getcwd module. Some systems lack fchdir altogether: e.g., OS/2, pre-2001 Cygwin, SCO Xenix. Also, SunOS 4 and Irix 5.3 provide the function, yet it doesn't work for partitions on which auditing is enabled. If you're still using an obsolete system with these problems, please send email to the maintainer of this code. */ int save_cwd (struct saved_cwd *cwd) { cwd->name = NULL; cwd->desc = open (".", O_SEARCH | O_CLOEXEC); if (!GNULIB_FCNTL_SAFER) cwd->desc = fd_safer_flag (cwd->desc, O_CLOEXEC); if (cwd->desc < 0) { cwd->name = getcwd (NULL, 0); return cwd->name ? 0 : -1; } return 0; } /* Change to recorded location, CWD, in directory hierarchy. Upon failure, return -1 (errno is set by chdir or fchdir). Upon success, return zero. */ int restore_cwd (const struct saved_cwd *cwd) { if (0 <= cwd->desc) return fchdir (cwd->desc); else return chdir_long (cwd->name); } void free_cwd (struct saved_cwd *cwd) { if (cwd->desc >= 0) close (cwd->desc); free (cwd->name); } ��������������������������������������������a2ps-4.15.5/lib/save-cwd.h��������������������������������������������������������������������������0000644�0000000�0000000�00000002046�14374751113�012002� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Save and restore current working directory. Copyright (C) 1995, 1997-1998, 2003, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #ifndef SAVE_CWD_H # define SAVE_CWD_H 1 struct saved_cwd { int desc; char *name; }; int save_cwd (struct saved_cwd *cwd); int restore_cwd (const struct saved_cwd *cwd); void free_cwd (struct saved_cwd *cwd); #endif /* SAVE_CWD_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/scratch_buffer.h��������������������������������������������������������������������0000644�0000000�0000000�00000010612�14374751113�013247� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Variable-sized buffer with on-stack default allocation. Copyright (C) 2017-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert, 2017. */ #ifndef _GL_SCRATCH_BUFFER_H #define _GL_SCRATCH_BUFFER_H /* Scratch buffers with a default stack allocation and fallback to heap allocation. It is expected that this function is used in this way: struct scratch_buffer tmpbuf; scratch_buffer_init (&tmpbuf); while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) if (!scratch_buffer_grow (&tmpbuf)) return -1; scratch_buffer_free (&tmpbuf); return 0; The allocation functions (scratch_buffer_grow, scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make sure that the heap allocation, if any, is freed, so that the code above does not have a memory leak. The buffer still remains in a state that can be deallocated using scratch_buffer_free, so a loop like this is valid as well: struct scratch_buffer tmpbuf; scratch_buffer_init (&tmpbuf); while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) if (!scratch_buffer_grow (&tmpbuf)) break; scratch_buffer_free (&tmpbuf); scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed to grow the buffer by at least 512 bytes. This means that when using the scratch buffer as a backing store for a non-character array whose element size, in bytes, is 512 or smaller, the scratch buffer only has to grow once to make room for at least one more element. */ /* Scratch buffer. Must be initialized with scratch_buffer_init before its use. */ struct scratch_buffer; /* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space and BUFFER->length reflects the available space. */ #if 0 extern void scratch_buffer_init (struct scratch_buffer *buffer); #endif /* Deallocates *BUFFER (if it was heap-allocated). */ #if 0 extern void scratch_buffer_free (struct scratch_buffer *buffer); #endif /* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT preserved. Return true on success, false on allocation failure (in which case the old buffer is freed). On success, the new buffer is larger than the previous size. On failure, *BUFFER is deallocated, but remains in a free-able state, and errno is set. */ #if 0 extern bool scratch_buffer_grow (struct scratch_buffer *buffer); #endif /* Like scratch_buffer_grow, but preserve the old buffer contents on success, as a prefix of the new buffer. */ #if 0 extern bool scratch_buffer_grow_preserve (struct scratch_buffer *buffer); #endif /* Grow *BUFFER so that it can store at least NELEM elements of SIZE bytes. The buffer contents are NOT preserved. Both NELEM and SIZE can be zero. Return true on success, false on allocation failure (in which case the old buffer is freed, but *BUFFER remains in a free-able state, and errno is set). It is unspecified whether this function can reduce the array size. */ #if 0 extern bool scratch_buffer_set_array_size (struct scratch_buffer *buffer, size_t nelem, size_t size); #endif /* The implementation is imported from glibc. */ /* Avoid possible conflicts with symbols exported by the GNU libc. */ #define __libc_scratch_buffer_grow gl_scratch_buffer_grow #define __libc_scratch_buffer_grow_preserve gl_scratch_buffer_grow_preserve #define __libc_scratch_buffer_set_array_size gl_scratch_buffer_set_array_size #ifndef _GL_LIKELY /* Rely on __builtin_expect, as provided by the module 'builtin-expect'. */ # define _GL_LIKELY(cond) __builtin_expect ((cond), 1) # define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0) #endif #include <malloc/scratch_buffer.gl.h> #endif /* _GL_SCRATCH_BUFFER_H */ ����������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/setlocale-lock.c��������������������������������������������������������������������0000644�0000000�0000000�00000010530�14374751113�013162� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Return the internal lock used by setlocale_null_r. Copyright (C) 2019-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2019. */ #include <config.h> /* When it is known that the gl_get_setlocale_null_lock function is defined by a dependency library, it should not be defined here. */ #if OMIT_SETLOCALE_LOCK /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #else /* This file defines the internal lock used by setlocale_null_r. It is a separate compilation unit, so that only one copy of it is present when linking statically. */ /* Prohibit renaming this symbol. */ # undef gl_get_setlocale_null_lock /* Macro for exporting a symbol (function, not variable) defined in this file, when compiled into a shared library. */ # ifndef DLL_EXPORTED # if HAVE_VISIBILITY /* Override the effect of the compiler option '-fvisibility=hidden'. */ # define DLL_EXPORTED __attribute__((__visibility__("default"))) # elif defined _WIN32 || defined __CYGWIN__ # define DLL_EXPORTED __declspec(dllexport) # else # define DLL_EXPORTED # endif # endif # if defined _WIN32 && !defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> # include "windows-initguard.h" /* The return type is a 'CRITICAL_SECTION *', not a 'glwthread_mutex_t *', because the latter is not guaranteed to be a stable ABI in the future. */ /* Make sure the function gets exported from DLLs. */ DLL_EXPORTED CRITICAL_SECTION *gl_get_setlocale_null_lock (void); static glwthread_initguard_t guard = GLWTHREAD_INITGUARD_INIT; static CRITICAL_SECTION lock; /* Returns the internal lock used by setlocale_null_r. */ CRITICAL_SECTION * gl_get_setlocale_null_lock (void) { if (!guard.done) { if (InterlockedIncrement (&guard.started) == 0) { /* This thread is the first one to need the lock. Initialize it. */ InitializeCriticalSection (&lock); guard.done = 1; } else { /* Don't let guard.started grow and wrap around. */ InterlockedDecrement (&guard.started); /* Yield the CPU while waiting for another thread to finish initializing this mutex. */ while (!guard.done) Sleep (0); } } return &lock; } # elif HAVE_PTHREAD_API # include <pthread.h> static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; /* Make sure the function gets exported from shared libraries. */ DLL_EXPORTED pthread_mutex_t *gl_get_setlocale_null_lock (void); /* Returns the internal lock used by setlocale_null_r. */ pthread_mutex_t * gl_get_setlocale_null_lock (void) { return &mutex; } # elif HAVE_THREADS_H # include <threads.h> # include <stdlib.h> static int volatile init_needed = 1; static once_flag init_once = ONCE_FLAG_INIT; static mtx_t mutex; static void atomic_init (void) { if (mtx_init (&mutex, mtx_plain) != thrd_success) abort (); init_needed = 0; } /* Make sure the function gets exported from shared libraries. */ DLL_EXPORTED mtx_t *gl_get_setlocale_null_lock (void); /* Returns the internal lock used by setlocale_null_r. */ mtx_t * gl_get_setlocale_null_lock (void) { if (init_needed) call_once (&init_once, atomic_init); return &mutex; } # endif # if (defined _WIN32 || defined __CYGWIN__) && !defined _MSC_VER /* Make sure the '__declspec(dllimport)' in setlocale_null.c does not cause a link failure when no DLLs are involved. */ # if defined _WIN64 || defined _LP64 # define IMP(x) __imp_##x # else # define IMP(x) _imp__##x # endif void * IMP(gl_get_setlocale_null_lock) = &gl_get_setlocale_null_lock; # endif #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/setlocale_null.c��������������������������������������������������������������������0000644�0000000�0000000�00000025243�14374751113�013275� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Query the name of the current global locale. Copyright (C) 2019-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2019. */ #include <config.h> /* Specification. */ #include "setlocale_null.h" #include <errno.h> #include <locale.h> #include <stdlib.h> #include <string.h> #if defined _WIN32 && !defined __CYGWIN__ # include <wchar.h> #endif #if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) # if defined _WIN32 && !defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> # elif HAVE_PTHREAD_API # include <pthread.h> # if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS # include <threads.h> # pragma weak thrd_exit # define c11_threads_in_use() (thrd_exit != NULL) # else # define c11_threads_in_use() 0 # endif # elif HAVE_THREADS_H # include <threads.h> # endif #endif /* Use the system's setlocale() function, not the gnulib override, here. */ #undef setlocale static const char * setlocale_null_androidfix (int category) { const char *result = setlocale (category, NULL); #ifdef __ANDROID__ if (result == NULL) switch (category) { case LC_CTYPE: case LC_NUMERIC: case LC_TIME: case LC_COLLATE: case LC_MONETARY: case LC_MESSAGES: case LC_ALL: case LC_PAPER: case LC_NAME: case LC_ADDRESS: case LC_TELEPHONE: case LC_MEASUREMENT: result = "C"; break; default: break; } #endif return result; } static int setlocale_null_unlocked (int category, char *buf, size_t bufsize) { #if defined _WIN32 && !defined __CYGWIN__ && defined _MSC_VER /* On native Windows, nowadays, the setlocale() implementation is based on _wsetlocale() and uses malloc() for the result. We are better off using _wsetlocale() directly. */ const wchar_t *result = _wsetlocale (category, NULL); if (result == NULL) { /* CATEGORY is invalid. */ if (bufsize > 0) /* Return an empty string in BUF. This is a convenience for callers that don't want to write explicit code for handling EINVAL. */ buf[0] = '\0'; return EINVAL; } else { size_t length = wcslen (result); if (length < bufsize) { size_t i; /* Convert wchar_t[] -> char[], assuming plain ASCII. */ for (i = 0; i <= length; i++) buf[i] = result[i]; return 0; } else { if (bufsize > 0) { /* Return a truncated result in BUF. This is a convenience for callers that don't want to write explicit code for handling ERANGE. */ size_t i; /* Convert wchar_t[] -> char[], assuming plain ASCII. */ for (i = 0; i < bufsize; i++) buf[i] = result[i]; buf[bufsize - 1] = '\0'; } return ERANGE; } } #else const char *result = setlocale_null_androidfix (category); if (result == NULL) { /* CATEGORY is invalid. */ if (bufsize > 0) /* Return an empty string in BUF. This is a convenience for callers that don't want to write explicit code for handling EINVAL. */ buf[0] = '\0'; return EINVAL; } else { size_t length = strlen (result); if (length < bufsize) { memcpy (buf, result, length + 1); return 0; } else { if (bufsize > 0) { /* Return a truncated result in BUF. This is a convenience for callers that don't want to write explicit code for handling ERANGE. */ memcpy (buf, result, bufsize - 1); buf[bufsize - 1] = '\0'; } return ERANGE; } } #endif } #if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin < 3.4.6 */ /* Use a lock, so that no two threads can invoke setlocale_null_unlocked at the same time. */ /* Prohibit renaming this symbol. */ # undef gl_get_setlocale_null_lock # if defined _WIN32 && !defined __CYGWIN__ extern __declspec(dllimport) CRITICAL_SECTION *gl_get_setlocale_null_lock (void); static int setlocale_null_with_lock (int category, char *buf, size_t bufsize) { CRITICAL_SECTION *lock = gl_get_setlocale_null_lock (); int ret; EnterCriticalSection (lock); ret = setlocale_null_unlocked (category, buf, bufsize); LeaveCriticalSection (lock); return ret; } # elif HAVE_PTHREAD_API /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin < 3.4.6 */ extern # if defined _WIN32 || defined __CYGWIN__ __declspec(dllimport) # endif pthread_mutex_t *gl_get_setlocale_null_lock (void); # if HAVE_WEAK_SYMBOLS /* musl libc, FreeBSD, NetBSD, OpenBSD, Haiku */ /* Avoid the need to link with '-lpthread'. */ # pragma weak pthread_mutex_lock # pragma weak pthread_mutex_unlock /* Determine whether libpthread is in use. */ # pragma weak pthread_mutexattr_gettype /* See the comments in lock.h. */ # define pthread_in_use() \ (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) # else # define pthread_in_use() 1 # endif static int setlocale_null_with_lock (int category, char *buf, size_t bufsize) { if (pthread_in_use()) { pthread_mutex_t *lock = gl_get_setlocale_null_lock (); int ret; if (pthread_mutex_lock (lock)) abort (); ret = setlocale_null_unlocked (category, buf, bufsize); if (pthread_mutex_unlock (lock)) abort (); return ret; } else return setlocale_null_unlocked (category, buf, bufsize); } # elif HAVE_THREADS_H extern mtx_t *gl_get_setlocale_null_lock (void); static int setlocale_null_with_lock (int category, char *buf, size_t bufsize) { mtx_t *lock = gl_get_setlocale_null_lock (); int ret; if (mtx_lock (lock) != thrd_success) abort (); ret = setlocale_null_unlocked (category, buf, bufsize); if (mtx_unlock (lock) != thrd_success) abort (); return ret; } # endif #endif int setlocale_null_r (int category, char *buf, size_t bufsize) { #if SETLOCALE_NULL_ALL_MTSAFE # if SETLOCALE_NULL_ONE_MTSAFE return setlocale_null_unlocked (category, buf, bufsize); # else if (category == LC_ALL) return setlocale_null_unlocked (category, buf, bufsize); else return setlocale_null_with_lock (category, buf, bufsize); # endif #else # if SETLOCALE_NULL_ONE_MTSAFE if (category == LC_ALL) return setlocale_null_with_lock (category, buf, bufsize); else return setlocale_null_unlocked (category, buf, bufsize); # else return setlocale_null_with_lock (category, buf, bufsize); # endif #endif } const char * setlocale_null (int category) { #if SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE return setlocale_null_androidfix (category); #else /* This call must be multithread-safe. To achieve this without using thread-local storage: 1. We use a specific static buffer for each possible CATEGORY argument. So that different threads can call setlocale_mtsafe with different CATEGORY arguments, without interfering. 2. We use a simple strcpy or memcpy to fill this static buffer. Filling it through, for example, strcpy + strcat would not be guaranteed to leave the buffer's contents intact if another thread is currently accessing it. If necessary, the contents is first assembled in a stack-allocated buffer. */ if (category == LC_ALL) { # if SETLOCALE_NULL_ALL_MTSAFE return setlocale_null_androidfix (LC_ALL); # else char buf[SETLOCALE_NULL_ALL_MAX]; static char resultbuf[SETLOCALE_NULL_ALL_MAX]; if (setlocale_null_r (LC_ALL, buf, sizeof (buf))) return "C"; strcpy (resultbuf, buf); return resultbuf; # endif } else { # if SETLOCALE_NULL_ONE_MTSAFE return setlocale_null_androidfix (category); # else enum { LC_CTYPE_INDEX, LC_NUMERIC_INDEX, LC_TIME_INDEX, LC_COLLATE_INDEX, LC_MONETARY_INDEX, LC_MESSAGES_INDEX, # ifdef LC_PAPER LC_PAPER_INDEX, # endif # ifdef LC_NAME LC_NAME_INDEX, # endif # ifdef LC_ADDRESS LC_ADDRESS_INDEX, # endif # ifdef LC_TELEPHONE LC_TELEPHONE_INDEX, # endif # ifdef LC_MEASUREMENT LC_MEASUREMENT_INDEX, # endif # ifdef LC_IDENTIFICATION LC_IDENTIFICATION_INDEX, # endif LC_INDICES_COUNT } i; char buf[SETLOCALE_NULL_MAX]; static char resultbuf[LC_INDICES_COUNT][SETLOCALE_NULL_MAX]; int err; err = setlocale_null_r (category, buf, sizeof (buf)); if (err == EINVAL) return NULL; if (err) return "C"; switch (category) { case LC_CTYPE: i = LC_CTYPE_INDEX; break; case LC_NUMERIC: i = LC_NUMERIC_INDEX; break; case LC_TIME: i = LC_TIME_INDEX; break; case LC_COLLATE: i = LC_COLLATE_INDEX; break; case LC_MONETARY: i = LC_MONETARY_INDEX; break; case LC_MESSAGES: i = LC_MESSAGES_INDEX; break; # ifdef LC_PAPER case LC_PAPER: i = LC_PAPER_INDEX; break; # endif # ifdef LC_NAME case LC_NAME: i = LC_NAME_INDEX; break; # endif # ifdef LC_ADDRESS case LC_ADDRESS: i = LC_ADDRESS_INDEX; break; # endif # ifdef LC_TELEPHONE case LC_TELEPHONE: i = LC_TELEPHONE_INDEX; break; # endif # ifdef LC_MEASUREMENT case LC_MEASUREMENT: i = LC_MEASUREMENT_INDEX; break; # endif # ifdef LC_IDENTIFICATION case LC_IDENTIFICATION: i = LC_IDENTIFICATION_INDEX; break; # endif default: /* If you get here, a #ifdef LC_xxx is missing. */ abort (); } strcpy (resultbuf[i], buf); return resultbuf[i]; # endif } #endif } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/setlocale_null.h��������������������������������������������������������������������0000644�0000000�0000000�00000006664�14374751113�013310� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Query the name of the current global locale. Copyright (C) 2019-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2019. */ #ifndef _SETLOCALE_NULL_H #define _SETLOCALE_NULL_H #include <stddef.h> #include "arg-nonnull.h" #ifdef __cplusplus extern "C" { #endif /* Recommended size of a buffer for a locale name for a single category. On glibc systems, you can have locale names that are relative file names; assume a maximum length 256. In native Windows, in 2018 the longest locale name was of length 58 ("FYRO Macedonian_Former Yugoslav Republic of Macedonia.1251"). */ #define SETLOCALE_NULL_MAX (256+1) /* Recommended size of a buffer for a locale name with all categories. On glibc systems, you can have locale names that are relative file names; assume maximum length 256 for each. There are 12 categories; so, the maximum total length is 148+12*256. In native Windows, there are 5 categories, and the maximum total length is 55+5*58. */ #define SETLOCALE_NULL_ALL_MAX (148+12*256+1) /* setlocale_null_r (CATEGORY, BUF, BUFSIZE) is like setlocale (CATEGORY, NULL), except that - it is guaranteed to be multithread-safe, - it returns the resulting locale category name or locale name in the user-supplied buffer BUF, which must be BUFSIZE bytes long. The recommended minimum buffer size is - SETLOCALE_NULL_MAX for CATEGORY != LC_ALL, and - SETLOCALE_NULL_ALL_MAX for CATEGORY == LC_ALL. The return value is an error code: 0 if the call is successful, EINVAL if CATEGORY is invalid, or ERANGE if BUFSIZE is smaller than the length needed size (including the trailing NUL byte). In the latter case, a truncated result is returned in BUF, but still NUL-terminated if BUFSIZE > 0. For this call to be multithread-safe, *all* calls to setlocale (CATEGORY, NULL) in all other threads must have been converted to use setlocale_null_r or setlocale_null as well, and the other threads must not make other setlocale invocations (since changing the global locale has side effects on all threads). */ extern int setlocale_null_r (int category, char *buf, size_t bufsize) _GL_ARG_NONNULL ((2)); /* setlocale_null (CATEGORY) is like setlocale (CATEGORY, NULL), except that it is guaranteed to be multithread-safe. The return value is NULL if CATEGORY is invalid. For this call to be multithread-safe, *all* calls to setlocale (CATEGORY, NULL) in all other threads must have been converted to use setlocale_null_r or setlocale_null as well, and the other threads must not make other setlocale invocations (since changing the global locale has side effects on all threads). */ extern const char *setlocale_null (int category); #ifdef __cplusplus } #endif #endif /* _SETLOCALE_NULL_H */ ����������������������������������������������������������������������������a2ps-4.15.5/lib/sig2str.c���������������������������������������������������������������������������0000644�0000000�0000000�00000016350�14374751113�011664� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* sig2str.c -- convert between signal names and numbers Copyright (C) 2002, 2004, 2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <config.h> #include <limits.h> #include <signal.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include "sig2str.h" #ifndef SIGRTMIN # define SIGRTMIN 0 # undef SIGRTMAX #endif #ifndef SIGRTMAX # define SIGRTMAX (SIGRTMIN - 1) #endif #define NUMNAME(name) { SIG##name, #name } /* Signal names and numbers. Put the preferred name first. */ static struct numname { int num; char const name[8]; } numname_table[] = { /* Signals required by POSIX 1003.1-2001 base, listed in traditional numeric order where possible. */ #ifdef SIGHUP NUMNAME (HUP), #endif #ifdef SIGINT NUMNAME (INT), #endif #ifdef SIGQUIT NUMNAME (QUIT), #endif #ifdef SIGILL NUMNAME (ILL), #endif #ifdef SIGTRAP NUMNAME (TRAP), #endif #ifdef SIGABRT NUMNAME (ABRT), #endif #ifdef SIGFPE NUMNAME (FPE), #endif #ifdef SIGKILL NUMNAME (KILL), #endif #ifdef SIGSEGV NUMNAME (SEGV), #endif /* On Haiku, SIGSEGV == SIGBUS, but we prefer SIGSEGV to match strsignal.c output, so SIGBUS must be listed second. */ #ifdef SIGBUS NUMNAME (BUS), #endif #ifdef SIGPIPE NUMNAME (PIPE), #endif #ifdef SIGALRM NUMNAME (ALRM), #endif #ifdef SIGTERM NUMNAME (TERM), #endif #ifdef SIGUSR1 NUMNAME (USR1), #endif #ifdef SIGUSR2 NUMNAME (USR2), #endif #ifdef SIGCHLD NUMNAME (CHLD), #endif #ifdef SIGURG NUMNAME (URG), #endif #ifdef SIGSTOP NUMNAME (STOP), #endif #ifdef SIGTSTP NUMNAME (TSTP), #endif #ifdef SIGCONT NUMNAME (CONT), #endif #ifdef SIGTTIN NUMNAME (TTIN), #endif #ifdef SIGTTOU NUMNAME (TTOU), #endif /* Signals required by POSIX 1003.1-2001 with the XSI extension. */ #ifdef SIGSYS NUMNAME (SYS), #endif #ifdef SIGPOLL NUMNAME (POLL), #endif #ifdef SIGVTALRM NUMNAME (VTALRM), #endif #ifdef SIGPROF NUMNAME (PROF), #endif #ifdef SIGXCPU NUMNAME (XCPU), #endif #ifdef SIGXFSZ NUMNAME (XFSZ), #endif /* Unix Version 7. */ #ifdef SIGIOT NUMNAME (IOT), /* Older name for ABRT. */ #endif #ifdef SIGEMT NUMNAME (EMT), #endif /* USG Unix. */ #ifdef SIGPHONE NUMNAME (PHONE), #endif #ifdef SIGWIND NUMNAME (WIND), #endif /* Unix System V. */ #ifdef SIGCLD NUMNAME (CLD), #endif #ifdef SIGPWR NUMNAME (PWR), #endif /* GNU/Linux 2.2 and Solaris 8. */ #ifdef SIGCANCEL NUMNAME (CANCEL), #endif #ifdef SIGLWP NUMNAME (LWP), #endif #ifdef SIGWAITING NUMNAME (WAITING), #endif #ifdef SIGFREEZE NUMNAME (FREEZE), #endif #ifdef SIGTHAW NUMNAME (THAW), #endif #ifdef SIGLOST NUMNAME (LOST), #endif #ifdef SIGWINCH NUMNAME (WINCH), #endif /* GNU/Linux 2.2. */ #ifdef SIGINFO NUMNAME (INFO), #endif #ifdef SIGIO NUMNAME (IO), #endif #ifdef SIGSTKFLT NUMNAME (STKFLT), #endif /* AIX 7. */ #ifdef SIGCPUFAIL NUMNAME (CPUFAIL), #endif /* AIX 5L. */ #ifdef SIGDANGER NUMNAME (DANGER), #endif #ifdef SIGGRANT NUMNAME (GRANT), #endif #ifdef SIGMIGRATE NUMNAME (MIGRATE), #endif #ifdef SIGMSG NUMNAME (MSG), #endif #ifdef SIGPRE NUMNAME (PRE), #endif #ifdef SIGRETRACT NUMNAME (RETRACT), #endif #ifdef SIGSAK NUMNAME (SAK), #endif #ifdef SIGSOUND NUMNAME (SOUND), #endif /* Older AIX versions. */ #ifdef SIGALRM1 NUMNAME (ALRM1), /* unknown; taken from Bash 2.05 */ #endif #ifdef SIGKAP NUMNAME (KAP), /* Older name for SIGGRANT. */ #endif #ifdef SIGVIRT NUMNAME (VIRT), /* unknown; taken from Bash 2.05 */ #endif #ifdef SIGWINDOW NUMNAME (WINDOW), /* Older name for SIGWINCH. */ #endif /* OpenBSD. */ #ifdef SIGTHR NUMNAME (THR), #endif /* BeOS, Haiku */ #ifdef SIGKILLTHR NUMNAME (KILLTHR), #endif /* Older HP-UX versions. */ #ifdef SIGDIL NUMNAME (DIL), #endif /* native Windows */ #ifdef SIGBREAK NUMNAME (BREAK), #endif /* Korn shell and Bash, of uncertain vintage. */ { 0, "EXIT" } }; #define NUMNAME_ENTRIES (sizeof numname_table / sizeof numname_table[0]) /* ISDIGIT differs from isdigit, as follows: - Its arg may be any int or unsigned int; it need not be an unsigned char or EOF. - It's typically faster. POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to isdigit unless it's important to use the locale's definition of "digit" even when the host does not conform to POSIX. */ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) /* Convert the signal name SIGNAME to a signal number. Return the signal number if successful, -1 otherwise. */ static int str2signum (char const *signame) { if (ISDIGIT (*signame)) { char *endp; long int n = strtol (signame, &endp, 10); if (! *endp && n <= SIGNUM_BOUND) return n; } else { unsigned int i; for (i = 0; i < NUMNAME_ENTRIES; i++) if (strcmp (numname_table[i].name, signame) == 0) return numname_table[i].num; { char *endp; int rtmin = SIGRTMIN; int rtmax = SIGRTMAX; if (0 < rtmin && strncmp (signame, "RTMIN", 5) == 0) { long int n = strtol (signame + 5, &endp, 10); if (! *endp && 0 <= n && n <= rtmax - rtmin) return rtmin + n; } else if (0 < rtmax && strncmp (signame, "RTMAX", 5) == 0) { long int n = strtol (signame + 5, &endp, 10); if (! *endp && rtmin - rtmax <= n && n <= 0) return rtmax + n; } } } return -1; } /* Convert the signal name SIGNAME to the signal number *SIGNUM. Return 0 if successful, -1 otherwise. */ int str2sig (char const *signame, int *signum) { *signum = str2signum (signame); return *signum < 0 ? -1 : 0; } /* Convert SIGNUM to a signal name in SIGNAME. SIGNAME must point to a buffer of at least SIG2STR_MAX bytes. Return 0 if successful, -1 otherwise. */ int sig2str (int signum, char *signame) { unsigned int i; for (i = 0; i < NUMNAME_ENTRIES; i++) if (numname_table[i].num == signum) { strcpy (signame, numname_table[i].name); return 0; } { int rtmin = SIGRTMIN; int rtmax = SIGRTMAX; int base, delta; if (! (rtmin <= signum && signum <= rtmax)) return -1; if (signum <= rtmin + (rtmax - rtmin) / 2) { strcpy (signame, "RTMIN"); base = rtmin; } else { strcpy (signame, "RTMAX"); base = rtmax; } delta = signum - base; if (delta != 0) sprintf (signame + 5, "%+d", delta); return 0; } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/sig2str.h���������������������������������������������������������������������������0000644�0000000�0000000�00000002770�14374751113�011672� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* sig2str.h -- convert between signal names and numbers Copyright (C) 2002, 2005, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <signal.h> /* Don't override system declarations of SIG2STR_MAX, sig2str, str2sig. */ #ifndef SIG2STR_MAX # include "intprops.h" /* Size of a buffer needed to hold a signal name like "HUP". */ # define SIG2STR_MAX (sizeof "SIGRTMAX" + INT_STRLEN_BOUND (int) - 1) #ifdef __cplusplus extern "C" { #endif int sig2str (int, char *); int str2sig (char const *, int *); #ifdef __cplusplus } #endif #endif /* An upper bound on signal numbers allowed by the system. */ #if defined _sys_nsig # define SIGNUM_BOUND (_sys_nsig - 1) #elif defined _SIG_MAXSIG # define SIGNUM_BOUND (_SIG_MAXSIG - 2) /* FreeBSD >= 7. */ #elif defined NSIG # define SIGNUM_BOUND (NSIG - 1) #else # define SIGNUM_BOUND 64 #endif ��������a2ps-4.15.5/lib/sockets.c���������������������������������������������������������������������������0000644�0000000�0000000�00000010212�14374751113�011731� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* sockets.c --- wrappers for Windows socket functions Copyright (C) 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Simon Josefsson */ #include <config.h> /* Specification. */ #include "sockets.h" #if WINDOWS_SOCKETS /* This includes winsock2.h on MinGW. */ # include <sys/socket.h> # include "fd-hook.h" # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif /* Get set_winsock_errno, FD_TO_SOCKET etc. */ # include "w32sock.h" static int close_fd_maybe_socket (const struct fd_hook *remaining_list, gl_close_fn primary, int fd) { /* Note about multithread-safety: There is a race condition where, between our calls to closesocket() and the primary close(), some other thread could make system calls that allocate precisely the same HANDLE value as sock; then the primary close() would call CloseHandle() on it. */ SOCKET sock; WSANETWORKEVENTS ev; /* Test whether fd refers to a socket. */ sock = FD_TO_SOCKET (fd); ev.lNetworkEvents = 0xDEADBEEF; WSAEnumNetworkEvents (sock, NULL, &ev); if (ev.lNetworkEvents != 0xDEADBEEF) { /* fd refers to a socket. */ /* FIXME: other applications, like squid, use an undocumented _free_osfhnd free function. But this is not enough: The 'osfile' flags for fd also needs to be cleared, but it is hard to access it. Instead, here we just close twice the file descriptor. */ if (closesocket (sock)) { set_winsock_errno (); return -1; } else { /* This call frees the file descriptor and does a CloseHandle ((HANDLE) _get_osfhandle (fd)), which fails. */ _close (fd); return 0; } } else /* Some other type of file descriptor. */ return execute_close_hooks (remaining_list, primary, fd); } static int ioctl_fd_maybe_socket (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg) { SOCKET sock; WSANETWORKEVENTS ev; /* Test whether fd refers to a socket. */ sock = FD_TO_SOCKET (fd); ev.lNetworkEvents = 0xDEADBEEF; WSAEnumNetworkEvents (sock, NULL, &ev); if (ev.lNetworkEvents != 0xDEADBEEF) { /* fd refers to a socket. */ if (ioctlsocket (sock, request, arg) < 0) { set_winsock_errno (); return -1; } else return 0; } else /* Some other type of file descriptor. */ return execute_ioctl_hooks (remaining_list, primary, fd, request, arg); } static struct fd_hook fd_sockets_hook; static int initialized_sockets_version /* = 0 */; #endif /* WINDOWS_SOCKETS */ int gl_sockets_startup (_GL_UNUSED int version) { #if WINDOWS_SOCKETS if (version > initialized_sockets_version) { WSADATA data; int err; err = WSAStartup (version, &data); if (err != 0) return 1; if (data.wVersion != version) { WSACleanup (); return 2; } if (initialized_sockets_version == 0) register_fd_hook (close_fd_maybe_socket, ioctl_fd_maybe_socket, &fd_sockets_hook); initialized_sockets_version = version; } #endif return 0; } int gl_sockets_cleanup (void) { #if WINDOWS_SOCKETS int err; initialized_sockets_version = 0; unregister_fd_hook (&fd_sockets_hook); err = WSACleanup (); if (err != 0) return 1; #endif return 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/sockets.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003174�14374751113�011747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* sockets.h - wrappers for Windows socket functions Copyright (C) 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Simon Josefsson */ #ifndef SOCKETS_H #define SOCKETS_H 1 #define SOCKETS_1_0 0x0001 #define SOCKETS_1_1 0x0101 #define SOCKETS_2_0 0x0002 #define SOCKETS_2_1 0x0102 #define SOCKETS_2_2 0x0202 int gl_sockets_startup (int version) #ifndef WINDOWS_SOCKETS _GL_ATTRIBUTE_CONST #endif ; int gl_sockets_cleanup (void) #ifndef WINDOWS_SOCKETS _GL_ATTRIBUTE_CONST #endif ; /* This function is useful it you create a socket using gnulib's Winsock wrappers but needs to pass on the socket handle to some other library that only accepts sockets. */ #ifdef WINDOWS_SOCKETS # include <sys/socket.h> # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif static inline SOCKET gl_fd_to_handle (int fd) { return _get_osfhandle (fd); } #else # define gl_fd_to_handle(x) (x) #endif /* WINDOWS_SOCKETS */ #endif /* SOCKETS_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stat-time.c�������������������������������������������������������������������������0000644�0000000�0000000�00000001520�14374751113�012167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* stat-related time functions. Copyright (C) 2012-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE #include "stat-time.h" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stat-time.h�������������������������������������������������������������������������0000644�0000000�0000000�00000017016�14374751113�012203� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* stat-related time functions. Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #ifndef STAT_TIME_H #define STAT_TIME_H 1 #include <errno.h> #include <stdckdint.h> #include <stddef.h> #include <sys/stat.h> #include <time.h> #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_STAT_TIME_INLINE # define _GL_STAT_TIME_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif /* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim for access, status change, data modification, or birth (creation) time respectively. These macros are private to stat-time.h. */ #if _GL_WINDOWS_STAT_TIMESPEC || defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC # if _GL_WINDOWS_STAT_TIMESPEC || defined TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC # define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim) # else # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec) # endif #elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC # define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec) #elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec) #elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec) #endif /* Return the nanosecond component of *ST's access time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_atime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_atim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_atim); # else return 0; # endif } /* Return the nanosecond component of *ST's status change time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_ctime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_ctim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_ctim); # else return 0; # endif } /* Return the nanosecond component of *ST's data modification time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_mtime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_mtim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_mtim); # else return 0; # endif } /* Return the nanosecond component of *ST's birth time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_birthtime_ns (_GL_UNUSED struct stat const *st) { # if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC return STAT_TIMESPEC (st, st_birthtim).tv_nsec; # elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC return STAT_TIMESPEC_NS (st, st_birthtim); # else return 0; # endif } /* Return *ST's access time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_atime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_atim); #else struct timespec t; t.tv_sec = st->st_atime; t.tv_nsec = get_stat_atime_ns (st); return t; #endif } /* Return *ST's status change time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_ctime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_ctim); #else struct timespec t; t.tv_sec = st->st_ctime; t.tv_nsec = get_stat_ctime_ns (st); return t; #endif } /* Return *ST's data modification time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_mtime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_mtim); #else struct timespec t; t.tv_sec = st->st_mtime; t.tv_nsec = get_stat_mtime_ns (st); return t; #endif } /* Return *ST's birth time, if available; otherwise return a value with tv_sec and tv_nsec both equal to -1. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_birthtime (_GL_UNUSED struct stat const *st) { struct timespec t; #if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC) t = STAT_TIMESPEC (st, st_birthtim); #elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC t.tv_sec = st->st_birthtime; t.tv_nsec = st->st_birthtimensec; #elif defined _WIN32 && ! defined __CYGWIN__ /* Native Windows platforms (but not Cygwin) put the "file creation time" in st_ctime (!). See <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/stat-functions>. */ # if _GL_WINDOWS_STAT_TIMESPEC t = st->st_ctim; # else t.tv_sec = st->st_ctime; t.tv_nsec = 0; # endif #else /* Birth time is not supported. */ t.tv_sec = -1; t.tv_nsec = -1; #endif #if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC) /* FreeBSD and NetBSD sometimes signal the absence of knowledge by using zero. Attempt to work around this problem. Alas, this can report failure even for valid timestamps. Also, NetBSD sometimes returns junk in the birth time fields; work around this bug if it is detected. */ if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000)) { t.tv_sec = -1; t.tv_nsec = -1; } #endif return t; } /* If a stat-like function returned RESULT, normalize the timestamps in *ST, in case this platform suffers from the Solaris 11 bug where tv_nsec might be negative. Return the adjusted RESULT, setting errno to EOVERFLOW if normalization overflowed. This function is intended to be private to this .h file. */ _GL_STAT_TIME_INLINE int stat_time_normalize (int result, _GL_UNUSED struct stat *st) { #if defined __sun && defined STAT_TIMESPEC if (result == 0) { long int timespec_hz = 1000000000; short int const ts_off[] = { offsetof (struct stat, st_atim), offsetof (struct stat, st_mtim), offsetof (struct stat, st_ctim) }; int i; for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++) { struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]); long int q = ts->tv_nsec / timespec_hz; long int r = ts->tv_nsec % timespec_hz; if (r < 0) { r += timespec_hz; q--; } ts->tv_nsec = r; /* Overflow is possible, as Solaris 11 stat can yield tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000. INT_ADD_WRAPV is OK, since time_t is signed on Solaris. */ if (ckd_add (&ts->tv_sec, q, ts->tv_sec)) { errno = EOVERFLOW; return -1; } } } #endif return result; } #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stat-w32.c��������������������������������������������������������������������������0000644�0000000�0000000�00000044207�14374751113�011655� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Core of implementation of fstat and stat for native Windows. Copyright (C) 2017-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible. */ #include <config.h> #if defined _WIN32 && ! defined __CYGWIN__ /* Attempt to make <windows.h> define FILE_ID_INFO. But ensure that the redefinition of _WIN32_WINNT does not make us assume Windows Vista or newer when building for an older version of Windows. */ #if HAVE_SDKDDKVER_H # include <sdkddkver.h> # if _WIN32_WINNT >= _WIN32_WINNT_VISTA # define WIN32_ASSUME_VISTA 1 # else # define WIN32_ASSUME_VISTA 0 # endif # if !defined _WIN32_WINNT || (_WIN32_WINNT < _WIN32_WINNT_WIN8) # undef _WIN32_WINNT # define _WIN32_WINNT _WIN32_WINNT_WIN8 # endif #else # define WIN32_ASSUME_VISTA (_WIN32_WINNT >= _WIN32_WINNT_VISTA) #endif #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include <limits.h> #include <string.h> #include <unistd.h> #include <windows.h> /* Specification. */ #include "stat-w32.h" #include "pathmax.h" /* Don't assume that UNICODE is not defined. */ #undef LoadLibrary #define LoadLibrary LoadLibraryA #undef GetFinalPathNameByHandle #define GetFinalPathNameByHandle GetFinalPathNameByHandleA /* Older mingw headers do not define VOLUME_NAME_NONE. */ #ifndef VOLUME_NAME_NONE # define VOLUME_NAME_NONE 4 #endif #if !WIN32_ASSUME_VISTA /* Avoid warnings from gcc -Wcast-function-type. */ # define GetProcAddress \ (void *) GetProcAddress # if _GL_WINDOWS_STAT_INODES == 2 /* GetFileInformationByHandleEx was introduced only in Windows Vista. */ typedef DWORD (WINAPI * GetFileInformationByHandleExFuncType) (HANDLE hFile, FILE_INFO_BY_HANDLE_CLASS fiClass, LPVOID lpBuffer, DWORD dwBufferSize); static GetFileInformationByHandleExFuncType GetFileInformationByHandleExFunc = NULL; # endif /* GetFinalPathNameByHandle was introduced only in Windows Vista. */ typedef DWORD (WINAPI * GetFinalPathNameByHandleFuncType) (HANDLE hFile, LPSTR lpFilePath, DWORD lenFilePath, DWORD dwFlags); static GetFinalPathNameByHandleFuncType GetFinalPathNameByHandleFunc = NULL; static BOOL initialized = FALSE; static void initialize (void) { HMODULE kernel32 = LoadLibrary ("kernel32.dll"); if (kernel32 != NULL) { # if _GL_WINDOWS_STAT_INODES == 2 GetFileInformationByHandleExFunc = (GetFileInformationByHandleExFuncType) GetProcAddress (kernel32, "GetFileInformationByHandleEx"); # endif GetFinalPathNameByHandleFunc = (GetFinalPathNameByHandleFuncType) GetProcAddress (kernel32, "GetFinalPathNameByHandleA"); } initialized = TRUE; } #else # define GetFileInformationByHandleExFunc GetFileInformationByHandleEx # define GetFinalPathNameByHandleFunc GetFinalPathNameByHandle #endif /* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ #if _GL_WINDOWS_STAT_TIMESPEC struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft) { struct timespec result; /* FILETIME: <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime> */ unsigned long long since_1601 = ((unsigned long long) ft->dwHighDateTime << 32) | (unsigned long long) ft->dwLowDateTime; if (since_1601 == 0) { result.tv_sec = 0; result.tv_nsec = 0; } else { /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 leap years, in total 134774 days. */ unsigned long long since_1970 = since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; result.tv_sec = since_1970 / (unsigned long long) 10000000; result.tv_nsec = (unsigned long) (since_1970 % (unsigned long long) 10000000) * 100; } return result; } #else time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft) { /* FILETIME: <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime> */ unsigned long long since_1601 = ((unsigned long long) ft->dwHighDateTime << 32) | (unsigned long long) ft->dwLowDateTime; if (since_1601 == 0) return 0; else { /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 leap years, in total 134774 days. */ unsigned long long since_1970 = since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; return since_1970 / (unsigned long long) 10000000; } } #endif /* Fill *BUF with information about the file designated by H. PATH is the file name, if known, otherwise NULL. Return 0 if successful, or -1 with errno set upon failure. */ int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf) { /* GetFileType <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfiletype> */ DWORD type = GetFileType (h); if (type == FILE_TYPE_DISK) { #if !WIN32_ASSUME_VISTA if (!initialized) initialize (); #endif /* st_mode can be determined through GetFileAttributesEx <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileattributesexa> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_win32_file_attribute_data> or through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> or through GetFileInformationByHandleEx with argument FileBasicInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_basic_info> The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ BY_HANDLE_FILE_INFORMATION info; if (! GetFileInformationByHandle (h, &info)) goto failed; /* Test for error conditions before starting to fill *buf. */ if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) { errno = EOVERFLOW; return -1; } #if _GL_WINDOWS_STAT_INODES /* st_ino can be determined through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> as 64 bits, or through GetFileInformationByHandleEx with argument FileIdInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_id_info> as 128 bits. The latter requires -D_WIN32_WINNT=_WIN32_WINNT_WIN8 or higher. */ /* Experiments show that GetFileInformationByHandleEx does not provide much more information than GetFileInformationByHandle: * The dwVolumeSerialNumber from GetFileInformationByHandle is equal to the low 32 bits of the 64-bit VolumeSerialNumber from GetFileInformationByHandleEx, and is apparently sufficient for identifying the device. * The nFileIndex from GetFileInformationByHandle is equal to the low 64 bits of the 128-bit FileId from GetFileInformationByHandleEx, and the high 64 bits of this 128-bit FileId are zero. * On a FAT file system, GetFileInformationByHandleEx fails with error ERROR_INVALID_PARAMETER, whereas GetFileInformationByHandle succeeds. * On a CIFS/SMB file system, GetFileInformationByHandleEx fails with error ERROR_INVALID_LEVEL, whereas GetFileInformationByHandle succeeds. */ # if _GL_WINDOWS_STAT_INODES == 2 if (GetFileInformationByHandleExFunc != NULL) { FILE_ID_INFO id; if (GetFileInformationByHandleExFunc (h, FileIdInfo, &id, sizeof (id))) { buf->st_dev = id.VolumeSerialNumber; static_assert (sizeof (ino_t) == sizeof (id.FileId)); memcpy (&buf->st_ino, &id.FileId, sizeof (ino_t)); goto ino_done; } else { switch (GetLastError ()) { case ERROR_INVALID_PARAMETER: /* older Windows version, or FAT */ case ERROR_INVALID_LEVEL: /* CIFS/SMB file system */ goto fallback; default: goto failed; } } } fallback: ; /* Fallback for older Windows versions. */ buf->st_dev = info.dwVolumeSerialNumber; buf->st_ino._gl_ino[0] = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; buf->st_ino._gl_ino[1] = 0; ino_done: ; # else /* _GL_WINDOWS_STAT_INODES == 1 */ buf->st_dev = info.dwVolumeSerialNumber; buf->st_ino = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; # endif #else /* st_ino is not wide enough for identifying a file on a device. Without st_ino, st_dev is pointless. */ buf->st_dev = 0; buf->st_ino = 0; #endif /* st_mode. */ unsigned int mode = /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) | S_IREAD_UGO | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { /* Determine whether the file is executable by looking at the file name suffix. If the file name is already known, use it. Otherwise, for non-empty files, it can be determined through GetFinalPathNameByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfinalpathnamebyhandlea> or through GetFileInformationByHandleEx with argument FileNameInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_name_info> Both require -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) { char fpath[PATH_MAX]; if (path != NULL || (GetFinalPathNameByHandleFunc != NULL && GetFinalPathNameByHandleFunc (h, fpath, sizeof (fpath), VOLUME_NAME_NONE) < sizeof (fpath) && (path = fpath, 1))) { const char *last_dot = NULL; const char *p; for (p = path; *p != '\0'; p++) if (*p == '.') last_dot = p; if (last_dot != NULL) { const char *suffix = last_dot + 1; if (_stricmp (suffix, "exe") == 0 || _stricmp (suffix, "bat") == 0 || _stricmp (suffix, "cmd") == 0 || _stricmp (suffix, "com") == 0) mode |= S_IEXEC_UGO; } } else /* Cannot determine file name. Pretend that it is executable. */ mode |= S_IEXEC_UGO; } } buf->st_mode = mode; /* st_nlink can be determined through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> or through GetFileInformationByHandleEx with argument FileStandardInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_standard_info> The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ buf->st_nlink = (info.nNumberOfLinks > SHRT_MAX ? SHRT_MAX : info.nNumberOfLinks); /* There's no easy way to map the Windows SID concept to an integer. */ buf->st_uid = 0; buf->st_gid = 0; /* st_rdev is irrelevant for normal files and directories. */ buf->st_rdev = 0; /* st_size can be determined through GetFileSizeEx <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfilesizeex> or through GetFileAttributesEx <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileattributesexa> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_win32_file_attribute_data> or through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> or through GetFileInformationByHandleEx with argument FileStandardInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_standard_info> The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ if (sizeof (buf->st_size) <= 4) /* Range check already done above. */ buf->st_size = info.nFileSizeLow; else buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; /* st_atime, st_mtime, st_ctime can be determined through GetFileTime <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfiletime> or through GetFileAttributesEx <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileattributesexa> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_win32_file_attribute_data> or through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> or through GetFileInformationByHandleEx with argument FileBasicInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_basic_info> The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ #if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); #else buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); #endif return 0; } else if (type == FILE_TYPE_CHAR || type == FILE_TYPE_PIPE) { buf->st_dev = 0; #if _GL_WINDOWS_STAT_INODES == 2 buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; #else buf->st_ino = 0; #endif buf->st_mode = (type == FILE_TYPE_PIPE ? _S_IFIFO : _S_IFCHR); buf->st_nlink = 1; buf->st_uid = 0; buf->st_gid = 0; buf->st_rdev = 0; if (type == FILE_TYPE_PIPE) { /* PeekNamedPipe <https://msdn.microsoft.com/en-us/library/aa365779.aspx> */ DWORD bytes_available; if (PeekNamedPipe (h, NULL, 0, NULL, &bytes_available, NULL)) buf->st_size = bytes_available; else buf->st_size = 0; } else buf->st_size = 0; #if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim.tv_sec = 0; buf->st_atim.tv_nsec = 0; buf->st_mtim.tv_sec = 0; buf->st_mtim.tv_nsec = 0; buf->st_ctim.tv_sec = 0; buf->st_ctim.tv_nsec = 0; #else buf->st_atime = 0; buf->st_mtime = 0; buf->st_ctime = 0; #endif return 0; } else { errno = ENOENT; return -1; } failed: { DWORD error = GetLastError (); #if 0 fprintf (stderr, "_gl_fstat_by_handle error 0x%x\n", (unsigned int) error); #endif switch (error) { case ERROR_ACCESS_DENIED: case ERROR_SHARING_VIOLATION: errno = EACCES; break; case ERROR_OUTOFMEMORY: errno = ENOMEM; break; case ERROR_WRITE_FAULT: case ERROR_READ_FAULT: case ERROR_GEN_FAILURE: errno = EIO; break; default: errno = EINVAL; break; } return -1; } } #else /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stat-w32.h��������������������������������������������������������������������������0000644�0000000�0000000�00000003107�14374751113�011654� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Core of implementation of fstat and stat for native Windows. Copyright (C) 2017-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _STAT_W32_H #define _STAT_W32_H 1 /* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ #if _GL_WINDOWS_STAT_TIMESPEC extern struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft); #else extern time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft); #endif /* Fill *BUF with information about the file designated by H. PATH is the file name, if known, otherwise NULL. Return 0 if successful, or -1 with errno set upon failure. */ extern int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf); /* Bitmasks for st_mode. */ #define S_IREAD_UGO (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6)) #define S_IWRITE_UGO (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6)) #define S_IEXEC_UGO (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6)) #endif /* _STAT_W32_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stat.c������������������������������������������������������������������������������0000644�0000000�0000000�00000032714�14374751113�011244� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Work around platform bugs in stat. Copyright (C) 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake and Bruno Haible. */ /* If the user's config.h happens to include <sys/stat.h>, let it include only the system's <sys/stat.h> here, so that orig_stat doesn't recurse to rpl_stat. */ #define __need_system_sys_stat_h #include <config.h> /* Get the original definition of stat. It might be defined as a macro. */ #include <sys/types.h> #include <sys/stat.h> #undef __need_system_sys_stat_h #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif #if !defined WINDOWS_NATIVE static int orig_stat (const char *filename, struct stat *buf) { return stat (filename, buf); } #endif /* Specification. */ #ifdef __osf__ /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <sys/stat.h> above. */ # include "sys/stat.h" #else # include <sys/stat.h> #endif #include "stat-time.h" #include <errno.h> #include <limits.h> #include <string.h> #include "filename.h" #include "malloca.h" #ifdef WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include <windows.h> # include "stat-w32.h" /* Don't assume that UNICODE is not defined. */ # undef WIN32_FIND_DATA # define WIN32_FIND_DATA WIN32_FIND_DATAA # undef CreateFile # define CreateFile CreateFileA # undef FindFirstFile # define FindFirstFile FindFirstFileA #endif #ifdef WINDOWS_NATIVE /* Return TRUE if the given file name denotes an UNC root. */ static BOOL is_unc_root (const char *rname) { /* Test whether it has the syntax '\\server\share'. */ if (ISSLASH (rname[0]) && ISSLASH (rname[1])) { /* It starts with two slashes. Find the next slash. */ const char *p = rname + 2; const char *q = p; while (*q != '\0' && !ISSLASH (*q)) q++; if (q > p && *q != '\0') { /* Found the next slash at q. */ q++; const char *r = q; while (*r != '\0' && !ISSLASH (*r)) r++; if (r > q && *r == '\0') return TRUE; } } return FALSE; } #endif /* Store information about NAME into ST. Work around bugs with trailing slashes. Mingw has other bugs (such as st_ino always being 0 on success) which this wrapper does not work around. But at least this implementation provides the ability to emulate fchdir correctly. */ int rpl_stat (char const *name, struct stat *buf) { #ifdef WINDOWS_NATIVE /* Fill the fields ourselves, because the original stat function returns values for st_atime, st_mtime, st_ctime that depend on the current time zone. See <https://lists.gnu.org/r/bug-gnulib/2017-04/msg00134.html> */ /* XXX Should we convert to wchar_t* and prepend '\\?\', in order to work around length limitations <https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file> ? */ /* POSIX <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13> specifies: "More than two leading <slash> characters shall be treated as a single <slash> character." */ if (ISSLASH (name[0]) && ISSLASH (name[1]) && ISSLASH (name[2])) { name += 2; while (ISSLASH (name[1])) name++; } size_t len = strlen (name); size_t drive_prefix_len = (HAS_DEVICE (name) ? 2 : 0); /* Remove trailing slashes (except the very first one, at position drive_prefix_len), but remember their presence. */ size_t rlen; bool check_dir = false; rlen = len; while (rlen > drive_prefix_len && ISSLASH (name[rlen-1])) { check_dir = true; if (rlen == drive_prefix_len + 1) break; rlen--; } /* Handle '' and 'C:'. */ if (!check_dir && rlen == drive_prefix_len) { errno = ENOENT; return -1; } /* Handle '\\'. */ if (rlen == 1 && ISSLASH (name[0]) && len >= 2) { errno = ENOENT; return -1; } const char *rname; char *malloca_rname; if (rlen == len) { rname = name; malloca_rname = NULL; } else { malloca_rname = malloca (rlen + 1); if (malloca_rname == NULL) { errno = ENOMEM; return -1; } memcpy (malloca_rname, name, rlen); malloca_rname[rlen] = '\0'; rname = malloca_rname; } /* There are two ways to get at the requested information: - by scanning the parent directory and examining the relevant directory entry, - by opening the file directly. The first approach fails for root directories (e.g. 'C:\') and UNC root directories (e.g. '\\server\share'). The second approach fails for some system files (e.g. 'C:\pagefile.sys' and 'C:\hiberfil.sys'): ERROR_SHARING_VIOLATION. The second approach gives more information (in particular, correct st_dev, st_ino, st_nlink fields). So we use the second approach and, as a fallback except for root and UNC root directories, also the first approach. */ { int ret; { /* Approach based on the file. */ /* Open a handle to the file. CreateFile <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-createfilea> <https://docs.microsoft.com/en-us/windows/desktop/FileIO/creating-and-opening-files> */ HANDLE h = CreateFile (rname, FILE_READ_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, /* FILE_FLAG_POSIX_SEMANTICS (treat file names that differ only in case as different) makes sense only when applied to *all* filesystem operations. */ FILE_FLAG_BACKUP_SEMANTICS /* | FILE_FLAG_POSIX_SEMANTICS */, NULL); if (h != INVALID_HANDLE_VALUE) { ret = _gl_fstat_by_handle (h, rname, buf); CloseHandle (h); goto done; } } /* Test for root and UNC root directories. */ if ((rlen == drive_prefix_len + 1 && ISSLASH (rname[drive_prefix_len])) || is_unc_root (rname)) goto failed; /* Fallback. */ { /* Approach based on the directory entry. */ if (strchr (rname, '?') != NULL || strchr (rname, '*') != NULL) { /* Other Windows API functions would fail with error ERROR_INVALID_NAME. */ if (malloca_rname != NULL) freea (malloca_rname); errno = ENOENT; return -1; } /* Get the details about the directory entry. This can be done through FindFirstFile <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-findfirstfilea> <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-_win32_find_dataa> or through FindFirstFileEx with argument FindExInfoBasic <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-findfirstfileexa> <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ne-minwinbase-findex_info_levels> <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-_win32_find_dataa> */ WIN32_FIND_DATA info; HANDLE h = FindFirstFile (rname, &info); if (h == INVALID_HANDLE_VALUE) goto failed; /* Test for error conditions before starting to fill *buf. */ if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) { FindClose (h); if (malloca_rname != NULL) freea (malloca_rname); errno = EOVERFLOW; return -1; } # if _GL_WINDOWS_STAT_INODES buf->st_dev = 0; # if _GL_WINDOWS_STAT_INODES == 2 buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; # else /* _GL_WINDOWS_STAT_INODES == 1 */ buf->st_ino = 0; # endif # else /* st_ino is not wide enough for identifying a file on a device. Without st_ino, st_dev is pointless. */ buf->st_dev = 0; buf->st_ino = 0; # endif /* st_mode. */ unsigned int mode = /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) | S_IREAD_UGO | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { /* Determine whether the file is executable by looking at the file name suffix. */ if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) { const char *last_dot = NULL; const char *p; for (p = info.cFileName; *p != '\0'; p++) if (*p == '.') last_dot = p; if (last_dot != NULL) { const char *suffix = last_dot + 1; if (_stricmp (suffix, "exe") == 0 || _stricmp (suffix, "bat") == 0 || _stricmp (suffix, "cmd") == 0 || _stricmp (suffix, "com") == 0) mode |= S_IEXEC_UGO; } } } buf->st_mode = mode; /* st_nlink. Ignore hard links here. */ buf->st_nlink = 1; /* There's no easy way to map the Windows SID concept to an integer. */ buf->st_uid = 0; buf->st_gid = 0; /* st_rdev is irrelevant for normal files and directories. */ buf->st_rdev = 0; /* st_size. */ if (sizeof (buf->st_size) <= 4) /* Range check already done above. */ buf->st_size = info.nFileSizeLow; else buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; /* st_atime, st_mtime, st_ctime. */ # if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); # else buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); # endif FindClose (h); ret = 0; } done: if (ret >= 0 && check_dir && !S_ISDIR (buf->st_mode)) { errno = ENOTDIR; ret = -1; } if (malloca_rname != NULL) { int saved_errno = errno; freea (malloca_rname); errno = saved_errno; } return ret; } failed: { DWORD error = GetLastError (); #if 0 fprintf (stderr, "rpl_stat error 0x%x\n", (unsigned int) error); #endif if (malloca_rname != NULL) freea (malloca_rname); switch (error) { /* Some of these errors probably cannot happen with the specific flags that we pass to CreateFile. But who knows... */ case ERROR_FILE_NOT_FOUND: /* The last component of rname does not exist. */ case ERROR_PATH_NOT_FOUND: /* Some directory component in rname does not exist. */ case ERROR_BAD_PATHNAME: /* rname is such as '\\server'. */ case ERROR_BAD_NET_NAME: /* rname is such as '\\server\nonexistentshare'. */ case ERROR_INVALID_NAME: /* rname contains wildcards, misplaced colon, etc. */ case ERROR_DIRECTORY: errno = ENOENT; break; case ERROR_ACCESS_DENIED: /* rname is such as 'C:\System Volume Information\foo'. */ case ERROR_SHARING_VIOLATION: /* rname is such as 'C:\pagefile.sys' (second approach only). */ /* XXX map to EACCES or EPERM? */ errno = EACCES; break; case ERROR_OUTOFMEMORY: errno = ENOMEM; break; case ERROR_WRITE_PROTECT: errno = EROFS; break; case ERROR_WRITE_FAULT: case ERROR_READ_FAULT: case ERROR_GEN_FAILURE: errno = EIO; break; case ERROR_BUFFER_OVERFLOW: case ERROR_FILENAME_EXCED_RANGE: errno = ENAMETOOLONG; break; case ERROR_DELETE_PENDING: /* XXX map to EACCES or EPERM? */ errno = EPERM; break; default: errno = EINVAL; break; } return -1; } #else int result = orig_stat (name, buf); if (result == 0) { # if REPLACE_FUNC_STAT_FILE /* Solaris 9 mistakenly succeeds when given a non-directory with a trailing slash. */ if (!S_ISDIR (buf->st_mode)) { size_t len = strlen (name); if (ISSLASH (name[len - 1])) { errno = ENOTDIR; return -1; } } # endif /* REPLACE_FUNC_STAT_FILE */ result = stat_time_normalize (result, buf); } return result; #endif } ����������������������������������������������������a2ps-4.15.5/lib/stdarg.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000002224�14374751113�012160� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Substitute for and wrapper around <stdarg.h>. Copyright (C) 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_STDARG_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDARG_H@ #ifndef _@GUARD_PREFIX@_STDARG_H #define _@GUARD_PREFIX@_STDARG_H #ifndef va_copy # define va_copy(a,b) ((a) = (b)) #endif #endif /* _@GUARD_PREFIX@_STDARG_H */ #endif /* _@GUARD_PREFIX@_STDARG_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stdckdint.in.h����������������������������������������������������������������������0000644�0000000�0000000�00000002641�14374751113�012666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* stdckdint.h -- checked integer arithmetic Copyright 2022-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_STDCKDINT_H #define _GL_STDCKDINT_H #include "intprops-internal.h" /* Store into *R the low-order bits of A + B, A - B, A * B, respectively. Return 1 if the result overflows, 0 otherwise. A, B, and *R can have any integer type other than char, bool, a bit-precise integer type, or an enumeration type. These are like the standard macros introduced in C23, except that arguments should not have side effects. */ #define ckd_add(r, a, b) ((bool) _GL_INT_ADD_WRAPV (a, b, r)) #define ckd_sub(r, a, b) ((bool) _GL_INT_SUBTRACT_WRAPV (a, b, r)) #define ckd_mul(r, a, b) ((bool) _GL_INT_MULTIPLY_WRAPV (a, b, r)) #endif /* _GL_STDCKDINT_H */ �����������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stddef.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000012034�14374751113�012145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues. Copyright (C) 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake. */ /* * POSIX 2008 <stddef.h> for platforms that have issues. * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html> */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_wchar_t || defined __need_size_t \ || defined __need_ptrdiff_t || defined __need_NULL \ || defined __need_wint_t /* Special invocation convention inside gcc header files. In particular, gcc provides a version of <stddef.h> that blindly redefines NULL even when __need_wint_t was defined, even though wint_t is not normally provided by <stddef.h>. Hence, we must remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ /* On TinyCC, make sure that the macros that indicate the special invocation convention get undefined. */ # undef __need_wchar_t # undef __need_size_t # undef __need_ptrdiff_t # undef __need_NULL # undef __need_wint_t # endif #else /* Normal invocation convention. */ # ifndef _@GUARD_PREFIX@_STDDEF_H /* On AIX 7.2, with xlc in 64-bit mode, <stddef.h> defines max_align_t to a type with alignment 4, but 'long' has alignment 8. */ # if defined _AIX && defined __LP64__ # if !GNULIB_defined_max_align_t # ifdef _MAX_ALIGN_T /* /usr/include/stddef.h has already defined max_align_t. Override it. */ typedef long rpl_max_align_t; # define max_align_t rpl_max_align_t # else /* Prevent /usr/include/stddef.h from defining max_align_t. */ typedef long max_align_t; # define _MAX_ALIGN_T # endif # define GNULIB_defined_max_align_t 1 # endif # endif /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ # if (@REPLACE_NULL@ \ && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) # undef NULL # ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ # if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ # define NULL __null # else # define NULL 0L # endif # else # define NULL ((void *) 0) # endif # endif # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif /* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is a hack in case the configure-time test was done with g++ even though we are currently compiling with gcc. On MSVC, max_align_t is defined only in C++ mode, after <cstddef> was included. Its definition is good since it has an alignment of 8 (on x86 and x86_64). Similarly on OS/2 kLIBC. */ #if (defined _MSC_VER || (defined __KLIBC__ && !defined __LIBCN__)) \ && defined __cplusplus # include <cstddef> #else # if ! (@HAVE_MAX_ALIGN_T@ || (defined _GCC_MAX_ALIGN_T && !defined __clang__)) # if !GNULIB_defined_max_align_t /* On the x86, the maximum storage alignment of double, long, etc. is 4, but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, and the C11 standard allows this. Work around this problem by using __alignof__ (which returns 8 for double) rather than _Alignof (which returns 4), and align each union member accordingly. */ # if defined __GNUC__ || (__clang_major__ >= 4) # define _GL_STDDEF_ALIGNAS(type) \ __attribute__ ((__aligned__ (__alignof__ (type)))) # else # define _GL_STDDEF_ALIGNAS(type) /* */ # endif typedef union { char *__p _GL_STDDEF_ALIGNAS (char *); double __d _GL_STDDEF_ALIGNAS (double); long double __ld _GL_STDDEF_ALIGNAS (long double); long int __i _GL_STDDEF_ALIGNAS (long int); } rpl_max_align_t; # define max_align_t rpl_max_align_t # define GNULIB_defined_max_align_t 1 # endif # endif #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stdint.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000054754�14374751113�012220� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2001-2002, 2004-2023 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* * ISO C 99 <stdint.h> for platforms that lack it. * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdint.h.html> */ #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* When including a system file that in turn includes <inttypes.h>, use the system <inttypes.h>, not our substitute. This avoids problems with (for example) VMS, whose <sys/bitypes.h> includes <inttypes.h>. */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* On Android (Bionic libc), <sys/types.h> includes this file before having defined 'time_t'. Therefore in this case avoid including other system header files; just include the system's <stdint.h>. Ideally we should test __BIONIC__ here, but it is only defined after <sys/cdefs.h> has been included; hence test __ANDROID__ instead. */ #if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef signed char int8_t;" that will get messed up by our macro. Our macros should all be consistent with the system versions, except for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users with "This header file is to be used only for c99 mode compilations" diagnostics. */ # define __STDINT_H__ # endif /* Some pre-C++11 <stdint.h> implementations need this. */ # ifdef __cplusplus # ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS 1 # endif # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 # endif # endif /* Other systems may have an incomplete or buggy <stdint.h>. Include it before <inttypes.h>, since any "#include <stdint.h>" in <inttypes.h> would reinclude us, skipping our contents because _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */ #include <limits.h> /* Override WINT_MIN and WINT_MAX if gnulib's <wchar.h> or <wctype.h> overrides wint_t. */ #if @GNULIBHEADERS_OVERRIDE_WINT_T@ # undef WINT_MIN # undef WINT_MAX # define WINT_MIN 0x0U # define WINT_MAX 0xffffffffU #endif #if ! @HAVE_C99_STDINT_H@ /* <sys/types.h> defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). AIX 5.2 <sys/types.h> isn't needed and causes troubles. Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but relies on the system <stdint.h> definitions, so include <sys/types.h> after @NEXT_STDINT_H@. */ # if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include <sys/types.h> # endif # if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. <inttypes.h> also defines intptr_t and uintptr_t. */ # include <inttypes.h> # elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ # include <sys/inttypes.h> # endif # if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by <sys/types.h>. */ # include <sys/bitypes.h> # endif # undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ /* These are separate macros, because if you try to merge these macros into a single one, HP-UX cc rejects the resulting expression in constant expressions. */ # define _STDINT_UNSIGNED_MIN(bits, zero) \ (zero) # define _STDINT_SIGNED_MIN(bits, zero) \ (~ _STDINT_MAX (1, bits, zero)) # define _STDINT_MAX(signed, bits, zero) \ (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types /* 7.18.1.1. Exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef int8_t # undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; # define int8_t gl_int8_t # define uint8_t gl_uint8_t # undef int16_t # undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; # define int16_t gl_int16_t # define uint16_t gl_uint16_t # undef int32_t # undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; # define int32_t gl_int32_t # define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long int, the code below won't mistakenly define it to be a 64-bit long int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ # ifdef INT64_MAX # define GL_INT64_T # else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ # if LONG_MAX >> 31 >> 31 == 1 # undef int64_t typedef long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif defined _MSC_VER # undef int64_t typedef __int64 gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # else # undef int64_t typedef long long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # endif # endif # ifdef UINT64_MAX # define GL_UINT64_T # else # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # undef uint64_t typedef unsigned long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif defined _MSC_VER # undef uint64_t typedef unsigned __int64 gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # else # undef uint64_t typedef unsigned long long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # endif # endif /* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ # define _UINT8_T # define _UINT32_T # define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef int_least8_t # undef uint_least8_t # undef int_least16_t # undef uint_least16_t # undef int_least32_t # undef uint_least32_t # undef int_least64_t # undef uint_least64_t # define int_least8_t int8_t # define uint_least8_t uint8_t # define int_least16_t int16_t # define uint_least16_t uint16_t # define int_least32_t int32_t # define uint_least32_t uint32_t # ifdef GL_INT64_T # define int_least64_t int64_t # endif # ifdef GL_UINT64_T # define uint_least64_t uint64_t # endif /* 7.18.1.3. Fastest minimum-width integer types */ /* Note: Other <stdint.h> substitutes may define these types differently. It is not recommended to use these types in public header files. */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. The following code normally uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ # undef int_fast8_t # undef uint_fast8_t # undef int_fast16_t # undef uint_fast16_t # undef int_fast32_t # undef uint_fast32_t # undef int_fast64_t # undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; # ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; # else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; # endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; # define int_fast8_t gl_int_fast8_t # define uint_fast8_t gl_uint_fast8_t # define int_fast16_t gl_int_fast16_t # define uint_fast16_t gl_uint_fast16_t # define int_fast32_t gl_int_fast32_t # define uint_fast32_t gl_uint_fast32_t # ifdef GL_INT64_T # define int_fast64_t int64_t # endif # ifdef GL_UINT64_T # define uint_fast64_t uint64_t # endif /* 7.18.1.4. Integer types capable of holding object pointers */ /* kLIBC's <stdint.h> defines _INTPTR_T_DECLARED and needs its own definitions of intptr_t and uintptr_t (which use int and unsigned) to avoid clashes with declarations of system functions like sbrk. Similarly, MinGW WSL-5.4.1 <stdint.h> needs its own intptr_t and uintptr_t to avoid conflicting declarations of system functions like _findclose in <io.h>. */ # if !((defined __KLIBC__ && defined _INTPTR_T_DECLARED) \ || defined __MINGW32__) # undef intptr_t # undef uintptr_t # ifdef _WIN64 typedef long long int gl_intptr_t; typedef unsigned long long int gl_uintptr_t; # else typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; # endif # define intptr_t gl_intptr_t # define uintptr_t gl_uintptr_t # endif /* 7.18.1.5. Greatest-width integer types */ /* Note: These types are compiler dependent. It may be unwise to use them in public header files. */ /* If the system defines INTMAX_MAX, assume that intmax_t works, and similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ # ifndef INTMAX_MAX # undef INTMAX_C # undef intmax_t # if LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; # define intmax_t gl_intmax_t # elif defined GL_INT64_T # define intmax_t int64_t # else typedef long int gl_intmax_t; # define intmax_t gl_intmax_t # endif # endif # ifndef UINTMAX_MAX # undef UINTMAX_C # undef uintmax_t # if ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # elif defined GL_UINT64_T # define uintmax_t uint64_t # else typedef unsigned long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # endif # endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely to be found in the autoconf macros. */ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; # define GNULIB_defined_stdint_types 1 # endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef INT8_MIN # undef INT8_MAX # undef UINT8_MAX # define INT8_MIN (~ INT8_MAX) # define INT8_MAX 127 # define UINT8_MAX 255 # undef INT16_MIN # undef INT16_MAX # undef UINT16_MAX # define INT16_MIN (~ INT16_MAX) # define INT16_MAX 32767 # define UINT16_MAX 65535 # undef INT32_MIN # undef INT32_MAX # undef UINT32_MAX # define INT32_MIN (~ INT32_MAX) # define INT32_MAX 2147483647 # define UINT32_MAX 4294967295U # if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ # define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) # endif # if defined GL_UINT64_T && ! defined UINT64_MAX # define UINT64_MAX UINTMAX_C (18446744073709551615) # endif /* 7.18.2.2. Limits of minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef INT_LEAST8_MIN # undef INT_LEAST8_MAX # undef UINT_LEAST8_MAX # define INT_LEAST8_MIN INT8_MIN # define INT_LEAST8_MAX INT8_MAX # define UINT_LEAST8_MAX UINT8_MAX # undef INT_LEAST16_MIN # undef INT_LEAST16_MAX # undef UINT_LEAST16_MAX # define INT_LEAST16_MIN INT16_MIN # define INT_LEAST16_MAX INT16_MAX # define UINT_LEAST16_MAX UINT16_MAX # undef INT_LEAST32_MIN # undef INT_LEAST32_MAX # undef UINT_LEAST32_MAX # define INT_LEAST32_MIN INT32_MIN # define INT_LEAST32_MAX INT32_MAX # define UINT_LEAST32_MAX UINT32_MAX # undef INT_LEAST64_MIN # undef INT_LEAST64_MAX # ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX # endif # undef UINT_LEAST64_MAX # ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX # endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ # undef INT_FAST8_MIN # undef INT_FAST8_MAX # undef UINT_FAST8_MAX # define INT_FAST8_MIN SCHAR_MIN # define INT_FAST8_MAX SCHAR_MAX # define UINT_FAST8_MAX UCHAR_MAX # undef INT_FAST16_MIN # undef INT_FAST16_MAX # undef UINT_FAST16_MAX # define INT_FAST16_MIN INT_FAST32_MIN # define INT_FAST16_MAX INT_FAST32_MAX # define UINT_FAST16_MAX UINT_FAST32_MAX # undef INT_FAST32_MIN # undef INT_FAST32_MAX # undef UINT_FAST32_MAX # ifdef __sun # define INT_FAST32_MIN INT_MIN # define INT_FAST32_MAX INT_MAX # define UINT_FAST32_MAX UINT_MAX # else # define INT_FAST32_MIN LONG_MIN # define INT_FAST32_MAX LONG_MAX # define UINT_FAST32_MAX ULONG_MAX # endif # undef INT_FAST64_MIN # undef INT_FAST64_MAX # ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX # endif # undef UINT_FAST64_MAX # ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX # endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ # undef INTPTR_MIN # undef INTPTR_MAX # undef UINTPTR_MAX # ifdef _WIN64 # define INTPTR_MIN LLONG_MIN # define INTPTR_MAX LLONG_MAX # define UINTPTR_MAX ULLONG_MAX # else # define INTPTR_MIN LONG_MIN # define INTPTR_MAX LONG_MAX # define UINTPTR_MAX ULONG_MAX # endif /* 7.18.2.5. Limits of greatest-width integer types */ # ifndef INTMAX_MAX # undef INTMAX_MIN # ifdef INT64_MAX # define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX # else # define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX # endif # endif # ifndef UINTMAX_MAX # ifdef UINT64_MAX # define UINTMAX_MAX UINT64_MAX # else # define UINTMAX_MAX UINT32_MAX # endif # endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ # undef PTRDIFF_MIN # undef PTRDIFF_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define PTRDIFF_MIN _STDINT_SIGNED_MIN (64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else # define PTRDIFF_MIN _STDINT_SIGNED_MIN (32, 0) # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif # else # define PTRDIFF_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # define PTRDIFF_MAX \ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # endif /* sig_atomic_t limits */ # undef SIG_ATOMIC_MIN # undef SIG_ATOMIC_MAX # if @HAVE_SIGNED_SIG_ATOMIC_T@ # define SIG_ATOMIC_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) # else # define SIG_ATOMIC_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) # endif # define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ # undef SIZE_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif # else # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) # endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes <stdint.h> and assumes its types are already defined. */ # if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include <wchar.h> # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # endif # undef WCHAR_MIN # undef WCHAR_MAX # if @HAVE_SIGNED_WCHAR_T@ # define WCHAR_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # else # define WCHAR_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # endif # define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ /* If gnulib's <wchar.h> or <wctype.h> overrides wint_t, @WINT_T_SUFFIX@ is not accurate, therefore use the definitions from above. */ # if !@GNULIBHEADERS_OVERRIDE_WINT_T@ # undef WINT_MIN # undef WINT_MAX # if @HAVE_SIGNED_WINT_T@ # define WINT_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # else # define WINT_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # endif # define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # endif /* 7.18.4. Macros for integer constants */ /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ # undef INT8_C # undef UINT8_C # define INT8_C(x) x # define UINT8_C(x) x # undef INT16_C # undef UINT16_C # define INT16_C(x) x # define UINT16_C(x) x # undef INT32_C # undef UINT32_C # define INT32_C(x) x # define UINT32_C(x) x ## U # undef INT64_C # undef UINT64_C # if LONG_MAX >> 31 >> 31 == 1 # define INT64_C(x) x##L # elif defined _MSC_VER # define INT64_C(x) x##i64 # else # define INT64_C(x) x##LL # endif # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # define UINT64_C(x) x##UL # elif defined _MSC_VER # define UINT64_C(x) x##ui64 # else # define UINT64_C(x) x##ULL # endif /* 7.18.4.2. Macros for greatest-width integer constants */ # ifndef INTMAX_C # if LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL # elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) # else # define INTMAX_C(x) x##L # endif # endif # ifndef UINTMAX_C # if ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL # elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) # else # define UINTMAX_C(x) x##UL # endif # endif #endif /* !@HAVE_C99_STDINT_H@ */ /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (!defined UINTMAX_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # ifdef INT8_MAX # define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) # endif # ifdef UINT8_MAX # define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) # endif # ifdef INT16_MAX # define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) # endif # ifdef UINT16_MAX # define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) # endif # ifdef INT32_MAX # define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) # endif # ifdef UINT32_MAX # define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) # endif # ifdef INT64_MAX # define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) # endif # ifdef UINT64_MAX # define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) # endif # define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) # define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) # define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) # define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) # define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) # define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) # define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) # define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) # define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) # define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) # define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) # define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) # define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) # define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) # define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) # define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) # define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) # define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) # define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) # define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) # define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) # define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) # define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) # ifdef WINT_MAX # define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) # endif # ifdef SIG_ATOMIC_MAX # define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) # endif #endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ ��������������������a2ps-4.15.5/lib/stdio-read.c������������������������������������������������������������������������0000644�0000000�0000000�00000013614�14374751113�012322� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* POSIX compatible FILE stream read function. Copyright (C) 2008-2023 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2011. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <stdio.h> /* Replace these functions only if module 'nonblocking' is requested. */ #if GNULIB_NONBLOCKING /* On native Windows platforms, when read() is called on a non-blocking pipe with an empty buffer, ReadFile() fails with error GetLastError() = ERROR_NO_DATA, and read() in consequence fails with error EINVAL. This read() function is at the basis of the function which fills the buffer of a FILE stream. */ # if defined _WIN32 && ! defined __CYGWIN__ # include <errno.h> # include <io.h> # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif /* Don't assume that UNICODE is not defined. */ # undef GetNamedPipeHandleState # define GetNamedPipeHandleState GetNamedPipeHandleStateA # define CALL_WITH_ERRNO_FIX(RETTYPE, EXPRESSION, FAILED) \ if (ferror (stream)) \ return (EXPRESSION); \ else \ { \ RETTYPE ret; \ SetLastError (0); \ ret = (EXPRESSION); \ if (FAILED) \ { \ if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \ { \ int fd = fileno (stream); \ if (fd >= 0) \ { \ HANDLE h = (HANDLE) _get_osfhandle (fd); \ if (GetFileType (h) == FILE_TYPE_PIPE) \ { \ /* h is a pipe or socket. */ \ DWORD state; \ if (GetNamedPipeHandleState (h, &state, NULL, NULL, \ NULL, NULL, 0) \ && (state & PIPE_NOWAIT) != 0) \ /* h is a pipe in non-blocking mode. \ Change errno from EINVAL to EAGAIN. */ \ errno = EAGAIN; \ } \ } \ } \ } \ return ret; \ } /* Enable this function definition only if gnulib's <stdio.h> has prepared it. Otherwise we get a function definition conflict with mingw64's <stdio.h>. */ # if GNULIB_SCANF int scanf (const char *format, ...) { int retval; va_list args; va_start (args, format); retval = vfscanf (stdin, format, args); va_end (args); return retval; } # endif /* Enable this function definition only if gnulib's <stdio.h> has prepared it. Otherwise we get a function definition conflict with mingw64's <stdio.h>. */ # if GNULIB_FSCANF int fscanf (FILE *stream, const char *format, ...) { int retval; va_list args; va_start (args, format); retval = vfscanf (stream, format, args); va_end (args); return retval; } # endif /* Enable this function definition only if gnulib's <stdio.h> has prepared it. Otherwise we get a function definition conflict with mingw64's <stdio.h>. */ # if GNULIB_VSCANF int vscanf (const char *format, va_list args) { return vfscanf (stdin, format, args); } # endif /* Enable this function definition only if gnulib's <stdio.h> has prepared it. Otherwise we get a function definition conflict with mingw64's <stdio.h>. */ # if GNULIB_VFSCANF int vfscanf (FILE *stream, const char *format, va_list args) #undef vfscanf { CALL_WITH_ERRNO_FIX (int, vfscanf (stream, format, args), ret == EOF) } # endif int getchar (void) { return fgetc (stdin); } int fgetc (FILE *stream) #undef fgetc { CALL_WITH_ERRNO_FIX (int, fgetc (stream), ret == EOF) } char * fgets (char *s, int n, FILE *stream) #undef fgets { CALL_WITH_ERRNO_FIX (char *, fgets (s, n, stream), ret == NULL) } /* We intentionally don't bother to fix gets. */ size_t fread (void *ptr, size_t s, size_t n, FILE *stream) #undef fread { CALL_WITH_ERRNO_FIX (size_t, fread (ptr, s, n, stream), ret < n) } # endif #endif ��������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stdio-write.c�����������������������������������������������������������������������0000644�0000000�0000000�00000016706�14374751113�012546� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* POSIX compatible FILE stream write function. Copyright (C) 2008-2023 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <stdio.h> /* Replace these functions only if module 'nonblocking' or module 'sigpipe' is requested. */ #if GNULIB_NONBLOCKING || GNULIB_SIGPIPE /* On native Windows platforms, SIGPIPE does not exist. When write() is called on a pipe with no readers, WriteFile() fails with error GetLastError() = ERROR_NO_DATA, and write() in consequence fails with error EINVAL. This write() function is at the basis of the function which flushes the buffer of a FILE stream. */ # if defined _WIN32 && ! defined __CYGWIN__ # include <errno.h> # include <signal.h> # include <io.h> # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif /* Don't assume that UNICODE is not defined. */ # undef GetNamedPipeHandleState # define GetNamedPipeHandleState GetNamedPipeHandleStateA # if GNULIB_NONBLOCKING # define CLEAR_ERRNO \ errno = 0; # define HANDLE_ENOSPC \ if (errno == ENOSPC && ferror (stream)) \ { \ int fd = fileno (stream); \ if (fd >= 0) \ { \ HANDLE h = (HANDLE) _get_osfhandle (fd); \ if (GetFileType (h) == FILE_TYPE_PIPE) \ { \ /* h is a pipe or socket. */ \ DWORD state; \ if (GetNamedPipeHandleState (h, &state, NULL, NULL, \ NULL, NULL, 0) \ && (state & PIPE_NOWAIT) != 0) \ /* h is a pipe in non-blocking mode. \ Change errno from ENOSPC to EAGAIN. */ \ errno = EAGAIN; \ } \ } \ } \ else # else # define CLEAR_ERRNO # define HANDLE_ENOSPC # endif # if GNULIB_SIGPIPE # define CLEAR_LastError \ SetLastError (0); # define HANDLE_ERROR_NO_DATA \ if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \ { \ int fd = fileno (stream); \ if (fd >= 0 \ && GetFileType ((HANDLE) _get_osfhandle (fd)) \ == FILE_TYPE_PIPE) \ { \ /* Try to raise signal SIGPIPE. */ \ raise (SIGPIPE); \ /* If it is currently blocked or ignored, change errno from \ EINVAL to EPIPE. */ \ errno = EPIPE; \ } \ } \ else # else # define CLEAR_LastError # define HANDLE_ERROR_NO_DATA # endif # define CALL_WITH_SIGPIPE_EMULATION(RETTYPE, EXPRESSION, FAILED) \ if (ferror (stream)) \ return (EXPRESSION); \ else \ { \ RETTYPE ret; \ CLEAR_ERRNO \ CLEAR_LastError \ ret = (EXPRESSION); \ if (FAILED) \ { \ HANDLE_ENOSPC \ HANDLE_ERROR_NO_DATA \ ; \ } \ return ret; \ } # if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */ int printf (const char *format, ...) { int retval; va_list args; va_start (args, format); retval = vfprintf (stdout, format, args); va_end (args); return retval; } # endif # if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */ int fprintf (FILE *stream, const char *format, ...) { int retval; va_list args; va_start (args, format); retval = vfprintf (stream, format, args); va_end (args); return retval; } # endif # if !REPLACE_VPRINTF_POSIX /* avoid collision with vprintf.c */ int vprintf (const char *format, va_list args) { return vfprintf (stdout, format, args); } # endif # if !REPLACE_VFPRINTF_POSIX /* avoid collision with vfprintf.c */ int vfprintf (FILE *stream, const char *format, va_list args) #undef vfprintf { CALL_WITH_SIGPIPE_EMULATION (int, vfprintf (stream, format, args), ret == EOF) } # endif int putchar (int c) { return fputc (c, stdout); } int fputc (int c, FILE *stream) #undef fputc { CALL_WITH_SIGPIPE_EMULATION (int, fputc (c, stream), ret == EOF) } int fputs (const char *string, FILE *stream) #undef fputs { CALL_WITH_SIGPIPE_EMULATION (int, fputs (string, stream), ret == EOF) } int puts (const char *string) #undef puts { FILE *stream = stdout; CALL_WITH_SIGPIPE_EMULATION (int, puts (string), ret == EOF) } size_t fwrite (const void *ptr, size_t s, size_t n, FILE *stream) #undef fwrite { CALL_WITH_SIGPIPE_EMULATION (size_t, fwrite (ptr, s, n, stream), ret < n) } # endif #endif ����������������������������������������������������������a2ps-4.15.5/lib/stdio.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000172574�14374751113�012036� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <stdio.h>. Copyright (C) 2004, 2007-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H /* Special invocation convention: - Inside glibc header files. - On OSF/1 5.1 we have a sequence of nested includes <stdio.h> -> <getopt.h> -> <ctype.h> -> <sys/localedef.h> -> <sys/lc_core.h> -> <nl_types.h> -> <mesg.h> -> <stdio.h>. In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDIO_H #define _GL_ALREADY_INCLUDING_STDIO_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #undef _GL_ALREADY_INCLUDING_STDIO_H #ifndef _@GUARD_PREFIX@_STDIO_H #define _@GUARD_PREFIX@_STDIO_H /* Get va_list. Needed on many systems, including glibc 2.8. */ #include <stdarg.h> #include <stddef.h> /* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 and eglibc 2.11.2. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* Solaris 10 and NetBSD 7.0 declare renameat in <unistd.h>, not in <stdio.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ && ! defined __GLIBC__ # include <unistd.h> #endif /* Android 4.3 declares renameat in <sys/stat.h>, not in <stdio.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ && ! defined __GLIBC__ # include <sys/stat.h> #endif /* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>. We must include it before we #define perror rpl_perror. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include <stdlib.h> #endif /* MSVC declares 'remove' in <io.h>, not in <stdio.h>. We must include it before we #define remove rpl_remove. */ /* MSVC declares 'rename' in <io.h>, not in <stdio.h>. We must include it before we #define rename rpl_rename. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include <io.h> #endif /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers that can be freed by passing them as the Ith argument to the function F. */ #ifndef _GL_ATTRIBUTE_DEALLOC # if __GNUC__ >= 11 # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) # else # define _GL_ATTRIBUTE_DEALLOC(f, i) # endif #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #ifndef _GL_ATTRIBUTE_FORMAT # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || defined __clang__ # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) # else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ # endif #endif /* An __attribute__ __format__ specifier for a function that takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD */ /* __gnu_printf__ is supported in GCC >= 4.4. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__ #else # define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__ #endif /* An __attribute__ __format__ specifier for a function that takes a format string and arguments, where the format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM */ /* On mingw, Gnulib sets __USE_MINGW_ANSI_STDIO in order to get closer to the standards. The macro GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU indicates whether this change is effective. On older mingw, it is not. */ #if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU # define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD #else # define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM __printf__ #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument)) /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD, except that it indicates to GCC that the supported format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, formatstring_parameter, first_argument)) /* _GL_ATTRIBUTE_FORMAT_SCANF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, except that it indicates to GCC that the supported format string directives are the ones of the system scanf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Macros for stringification. */ #define _GL_STDIO_STRINGIZE(token) #token #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) /* When also using extern inline, suppress the use of static inline in standard headers of problematic Apple configurations, as Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., <https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>. Perhaps Apple will fix this some day. */ #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ && defined __GNUC__ && defined __STDC__) # undef putc_unlocked #endif #if @GNULIB_DPRINTF@ # if @REPLACE_DPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dprintf rpl_dprintf # endif _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...)); # else # if !@HAVE_DPRINTF@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (dprintf); # endif #elif defined GNULIB_POSIXCHECK # undef dprintf # if HAVE_RAW_DECL_DPRINTF _GL_WARN_ON_USE (dprintf, "dprintf is unportable - " "use gnulib module dprintf for portability"); # endif #endif #if @GNULIB_FCLOSE@ /* Close STREAM and its underlying file descriptor. */ # if @REPLACE_FCLOSE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fclose rpl_fclose # endif _GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fclose); # endif #elif defined GNULIB_POSIXCHECK # undef fclose /* Assume fclose is always declared. */ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " "use gnulib module fclose for portable POSIX compliance"); #endif #if @GNULIB_MDA_FCLOSEALL@ /* On native Windows, map 'fcloseall' to '_fcloseall', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::fcloseall on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcloseall # define fcloseall _fcloseall # endif _GL_CXXALIAS_MDA (fcloseall, int, (void)); # else # if @HAVE_DECL_FCLOSEALL@ # if defined __FreeBSD__ || defined __DragonFly__ _GL_CXXALIAS_SYS (fcloseall, void, (void)); # else _GL_CXXALIAS_SYS (fcloseall, int, (void)); # endif # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCLOSEALL@ _GL_CXXALIASWARN (fcloseall); # endif #endif #if @GNULIB_FDOPEN@ # if @REPLACE_FDOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen rpl_fdopen # endif _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen _fdopen # endif _GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); # else # if __GNUC__ >= 11 /* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ _GL_FUNCDECL_SYS (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); # endif _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); #else # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fdopen /* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ _GL_FUNCDECL_SYS (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); # endif # if defined GNULIB_POSIXCHECK # undef fdopen /* Assume fdopen is always declared. */ _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " "use gnulib module fdopen for portability"); # elif @GNULIB_MDA_FDOPEN@ /* On native Windows, map 'fdopen' to '_fdopen', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::fdopen always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen _fdopen # endif _GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); # else _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); # endif #endif #if @GNULIB_FFLUSH@ /* Flush all pending data on STREAM according to POSIX rules. Both output and seekable input streams are supported. Note! LOSS OF DATA can occur if fflush is applied on an input stream that is _not_seekable_ or on an update stream that is _not_seekable_ and in which the most recent operation was input. Seekability can be tested with lseek(fileno(fp),0,SEEK_CUR). */ # if @REPLACE_FFLUSH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fflush rpl_fflush # endif _GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); # else _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fflush); # endif #elif defined GNULIB_POSIXCHECK # undef fflush /* Assume fflush is always declared. */ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " "use gnulib module fflush for portable POSIX compliance"); #endif #if @GNULIB_FGETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgetc # define fgetc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fgetc); # endif #endif #if @GNULIB_FGETS@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgets # define fgets rpl_fgets # endif _GL_FUNCDECL_RPL (fgets, char *, (char *restrict s, int n, FILE *restrict stream) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (fgets, char *, (char *restrict s, int n, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fgets, char *, (char *restrict s, int n, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fgets); # endif #endif #if @GNULIB_MDA_FILENO@ /* On native Windows, map 'fileno' to '_fileno', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::fileno always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fileno # define fileno _fileno # endif _GL_CXXALIAS_MDA (fileno, int, (FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fileno, int, (FILE *restrict stream)); # endif _GL_CXXALIASWARN (fileno); #endif #if @GNULIB_FOPEN@ # if (@GNULIB_FOPEN@ && @REPLACE_FOPEN@) \ || (@GNULIB_FOPEN_GNU@ && @REPLACE_FOPEN_FOR_FOPEN_GNU@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fopen # define fopen rpl_fopen # endif _GL_FUNCDECL_RPL (fopen, FILE *, (const char *restrict filename, const char *restrict mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); _GL_CXXALIAS_RPL (fopen, FILE *, (const char *restrict filename, const char *restrict mode)); # else # if __GNUC__ >= 11 /* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ _GL_FUNCDECL_SYS (fopen, FILE *, (const char *restrict filename, const char *restrict mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); # endif _GL_CXXALIAS_SYS (fopen, FILE *, (const char *restrict filename, const char *restrict mode)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fopen); # endif #else # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fopen /* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ _GL_FUNCDECL_SYS (fopen, FILE *, (const char *restrict filename, const char *restrict mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); # endif # if defined GNULIB_POSIXCHECK # undef fopen /* Assume fopen is always declared. */ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " "use gnulib module fopen for portability"); # endif #endif #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fprintf rpl_fprintf # endif # define GNULIB_overrides_fprintf 1 # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (fprintf, int, (FILE *restrict fp, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (fprintf, int, (FILE *restrict fp, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (fprintf, int, (FILE *restrict fp, const char *restrict format, ...)); # else _GL_CXXALIAS_SYS (fprintf, int, (FILE *restrict fp, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fprintf); # endif #endif #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_fprintf # undef fprintf # endif /* Assume fprintf is always declared. */ _GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " "use gnulib module fprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_FPURGE@ /* Discard all pending buffered I/O data on STREAM. STREAM must not be wide-character oriented. When discarding pending output, the file position is set back to where it was before the write calls. When discarding pending input, the file position is advanced to match the end of the previously read input. Return 0 if successful. Upon error, return -1 and set errno. */ # if @REPLACE_FPURGE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fpurge rpl_fpurge # endif _GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); # else # if !@HAVE_DECL_FPURGE@ _GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fpurge); #elif defined GNULIB_POSIXCHECK # undef fpurge # if HAVE_RAW_DECL_FPURGE _GL_WARN_ON_USE (fpurge, "fpurge is not always present - " "use gnulib module fpurge for portability"); # endif #endif #if @GNULIB_FPUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputc # define fputc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fputc); # endif #endif #if @GNULIB_FPUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputs # define fputs rpl_fputs # endif _GL_FUNCDECL_RPL (fputs, int, (const char *restrict string, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fputs, int, (const char *restrict string, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fputs, int, (const char *restrict string, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fputs); # endif #endif #if @GNULIB_FREAD@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fread # define fread rpl_fread # endif _GL_FUNCDECL_RPL (fread, size_t, (void *restrict ptr, size_t s, size_t n, FILE *restrict stream) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (fread, size_t, (void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fread, size_t, (void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fread); # endif #endif #if @GNULIB_FREOPEN@ # if @REPLACE_FREOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef freopen # define freopen rpl_freopen # endif _GL_FUNCDECL_RPL (freopen, FILE *, (const char *restrict filename, const char *restrict mode, FILE *restrict stream) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (freopen, FILE *, (const char *restrict filename, const char *restrict mode, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (freopen, FILE *, (const char *restrict filename, const char *restrict mode, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (freopen); # endif #elif defined GNULIB_POSIXCHECK # undef freopen /* Assume freopen is always declared. */ _GL_WARN_ON_USE (freopen, "freopen on native Windows platforms is not POSIX compliant - " "use gnulib module freopen for portability"); #endif #if @GNULIB_FSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fscanf # define fscanf rpl_fscanf # endif _GL_FUNCDECL_RPL (fscanf, int, (FILE *restrict stream, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fscanf, int, (FILE *restrict stream, const char *restrict format, ...)); # else _GL_CXXALIAS_SYS (fscanf, int, (FILE *restrict stream, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fscanf); # endif #endif /* Set up the following warnings, based on which modules are in use. GNU Coding Standards discourage the use of fseek, since it imposes an arbitrary limitation on some 32-bit hosts. Remember that the fseek module depends on the fseeko module, so we only have three cases to consider: 1. The developer is not using either module. Issue a warning under GNULIB_POSIXCHECK for both functions, to remind them that both functions have bugs on some systems. _GL_NO_LARGE_FILES has no impact on this warning. 2. The developer is using both modules. They may be unaware of the arbitrary limitations of fseek, so issue a warning under GNULIB_POSIXCHECK. On the other hand, they may be using both modules intentionally, so the developer can define _GL_NO_LARGE_FILES in the compilation units where the use of fseek is safe, to silence the warning. 3. The developer is using the fseeko module, but not fseek. Gnulib guarantees that fseek will still work around platform bugs in that case, but we presume that the developer is aware of the pitfalls of fseek and was trying to avoid it, so issue a warning even when GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be defined to silence the warning in particular compilation units. In C++ compilations with GNULIB_NAMESPACE, in order to avoid that fseek gets defined as a macro, it is recommended that the developer uses the fseek module, even if he is not calling the fseek function. Most gnulib clients that perform stream operations should fall into category 3. */ #if @GNULIB_FSEEK@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 2, above. */ # undef fseek # endif # if @REPLACE_FSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseek # define fseek rpl_fseek # endif _GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); # else _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fseek); # endif #endif #if @GNULIB_FSEEKO@ # if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 3, above. */ # undef fseek # endif # if @REPLACE_FSEEKO@ /* Provide an fseeko function that is aware of a preceding fflush(), and which detects pipes. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseeko # define fseeko rpl_fseeko # endif _GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); # else # if ! @HAVE_DECL_FSEEKO@ _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); # endif _GL_CXXALIASWARN (fseeko); #elif defined GNULIB_POSIXCHECK # define _GL_FSEEK_WARN /* Category 1, above. */ # undef fseek # undef fseeko # if HAVE_RAW_DECL_FSEEKO _GL_WARN_ON_USE (fseeko, "fseeko is unportable - " "use gnulib module fseeko for portability"); # endif #endif #ifdef _GL_FSEEK_WARN # undef _GL_FSEEK_WARN /* Here, either fseek is undefined (but C89 guarantees that it is declared), or it is defined as rpl_fseek (declared above). */ _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " "on 32-bit platforms - " "use fseeko function for handling of large files"); #endif /* ftell, ftello. See the comments on fseek/fseeko. */ #if @GNULIB_FTELL@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 2, above. */ # undef ftell # endif # if @REPLACE_FTELL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftell # define ftell rpl_ftell # endif _GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); # else _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (ftell); # endif #endif #if @GNULIB_FTELLO@ # if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 3, above. */ # undef ftell # endif # if @REPLACE_FTELLO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftello # define ftello rpl_ftello # endif _GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); # else # if ! @HAVE_DECL_FTELLO@ _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); # endif _GL_CXXALIASWARN (ftello); #elif defined GNULIB_POSIXCHECK # define _GL_FTELL_WARN /* Category 1, above. */ # undef ftell # undef ftello # if HAVE_RAW_DECL_FTELLO _GL_WARN_ON_USE (ftello, "ftello is unportable - " "use gnulib module ftello for portability"); # endif #endif #ifdef _GL_FTELL_WARN # undef _GL_FTELL_WARN /* Here, either ftell is undefined (but C89 guarantees that it is declared), or it is defined as rpl_ftell (declared above). */ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " "on 32-bit platforms - " "use ftello function for handling of large files"); #endif #if @GNULIB_FWRITE@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fwrite # define fwrite rpl_fwrite # endif _GL_FUNCDECL_RPL (fwrite, size_t, (const void *restrict ptr, size_t s, size_t n, FILE *restrict stream) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (fwrite, size_t, (const void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fwrite, size_t, (const void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 <https://sourceware.org/bugzilla/show_bug.cgi?id=11959>, which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain versions of gcc and clang, and is not needed for C++. */ # if (0 < __USE_FORTIFY_LEVEL \ && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ && !defined __cplusplus) # undef fwrite # undef fwrite_unlocked extern size_t __REDIRECT (rpl_fwrite, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite); extern size_t __REDIRECT (rpl_fwrite_unlocked, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite_unlocked); # define fwrite rpl_fwrite # define fwrite_unlocked rpl_fwrite_unlocked # endif # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fwrite); # endif #endif #if @GNULIB_GETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getc # define getc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getc); # endif #endif #if @GNULIB_GETCHAR@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getchar # define getchar rpl_getchar # endif _GL_FUNCDECL_RPL (getchar, int, (void)); _GL_CXXALIAS_RPL (getchar, int, (void)); # else _GL_CXXALIAS_SYS (getchar, int, (void)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getchar); # endif #endif #if @GNULIB_GETDELIM@ /* Read input, up to (and including) the next occurrence of DELIMITER, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETDELIM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdelim # define getdelim rpl_getdelim # endif _GL_FUNCDECL_RPL (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2, 4))); _GL_CXXALIAS_RPL (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream)); # else # if !@HAVE_DECL_GETDELIM@ _GL_FUNCDECL_SYS (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2, 4))); # endif _GL_CXXALIAS_SYS (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getdelim); # endif #elif defined GNULIB_POSIXCHECK # undef getdelim # if HAVE_RAW_DECL_GETDELIM _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " "use gnulib module getdelim for portability"); # endif #endif #if @GNULIB_GETLINE@ /* Read a line, up to (and including) the next newline, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETLINE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getline # define getline rpl_getline # endif _GL_FUNCDECL_RPL (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2, 3))); _GL_CXXALIAS_RPL (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream)); # else # if !@HAVE_DECL_GETLINE@ _GL_FUNCDECL_SYS (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 && @HAVE_DECL_GETLINE@ _GL_CXXALIASWARN (getline); # endif #elif defined GNULIB_POSIXCHECK # undef getline # if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is unportable - " "use gnulib module getline for portability"); # endif #endif /* It is very rare that the developer ever has full control of stdin, so any use of gets warrants an unconditional warning; besides, C11 removed it. */ #undef gets #if HAVE_RAW_DECL_GETS && !defined __cplusplus _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif #if @GNULIB_MDA_GETW@ /* On native Windows, map 'getw' to '_getw', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::getw always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getw # define getw _getw # endif _GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream)); # else # if @HAVE_DECL_GETW@ _GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream)); # endif # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getw); # endif #endif #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ struct obstack; /* Grow an obstack with formatted output. Return the number of bytes added to OBS. No trailing nul byte is added, and the object should be closed with obstack_finish before use. Upon memory allocation error, call obstack_alloc_failed_handler. Upon other error, return -1. */ # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_printf rpl_obstack_printf # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # endif _GL_CXXALIASWARN (obstack_printf); # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_vprintf rpl_obstack_vprintf # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # endif _GL_CXXALIASWARN (obstack_vprintf); #endif #if @GNULIB_PCLOSE@ # if !@HAVE_PCLOSE@ _GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); _GL_CXXALIASWARN (pclose); #elif defined GNULIB_POSIXCHECK # undef pclose # if HAVE_RAW_DECL_PCLOSE _GL_WARN_ON_USE (pclose, "pclose is unportable - " "use gnulib module pclose for more portability"); # endif #endif #if @GNULIB_PERROR@ /* Print a message to standard error, describing the value of ERRNO, (if STRING is not NULL and not empty) prefixed with STRING and ": ", and terminated with a newline. */ # if @REPLACE_PERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define perror rpl_perror # endif _GL_FUNCDECL_RPL (perror, void, (const char *string)); _GL_CXXALIAS_RPL (perror, void, (const char *string)); # else _GL_CXXALIAS_SYS (perror, void, (const char *string)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (perror); # endif #elif defined GNULIB_POSIXCHECK # undef perror /* Assume perror is always declared. */ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " "use gnulib module perror for portability"); #endif #if @GNULIB_POPEN@ # if @REPLACE_POPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef popen # define popen rpl_popen # endif _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); # else # if !@HAVE_POPEN@ || __GNUC__ >= 11 _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); # endif _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); # endif _GL_CXXALIASWARN (popen); #else # if @GNULIB_PCLOSE@ && __GNUC__ >= 11 && !defined popen /* For -Wmismatched-dealloc: Associate popen with pclose or rpl_pclose. */ _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); # endif # if defined GNULIB_POSIXCHECK # undef popen # if HAVE_RAW_DECL_POPEN _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " "use gnulib module popen or pipe for more portability"); # endif # endif #endif #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if defined __GNUC__ || defined __clang__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *restrict format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *restrict format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define printf rpl_printf # endif _GL_FUNCDECL_RPL (printf, int, (const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...)); # endif # define GNULIB_overrides_printf 1 # else _GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (printf); # endif #endif #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_printf # undef printf # endif /* Assume printf is always declared. */ _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " "use gnulib module printf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_PUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putc # define putc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (putc); # endif #endif #if @GNULIB_PUTCHAR@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putchar # define putchar rpl_putchar # endif _GL_FUNCDECL_RPL (putchar, int, (int c)); _GL_CXXALIAS_RPL (putchar, int, (int c)); # else _GL_CXXALIAS_SYS (putchar, int, (int c)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (putchar); # endif #endif #if @GNULIB_PUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef puts # define puts rpl_puts # endif _GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (puts, int, (const char *string)); # else _GL_CXXALIAS_SYS (puts, int, (const char *string)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (puts); # endif #endif #if @GNULIB_MDA_PUTW@ /* On native Windows, map 'putw' to '_putw', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::putw always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putw # define putw _putw # endif _GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream)); # else # if @HAVE_DECL_PUTW@ _GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream)); # endif # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (putw); # endif #endif #if @GNULIB_REMOVE@ # if @REPLACE_REMOVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remove # define remove rpl_remove # endif _GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (remove, int, (const char *name)); # else _GL_CXXALIAS_SYS (remove, int, (const char *name)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (remove); # endif #elif defined GNULIB_POSIXCHECK # undef remove /* Assume remove is always declared. */ _GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " "use gnulib module remove for more portability"); #endif #if @GNULIB_RENAME@ # if @REPLACE_RENAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rename # define rename rpl_rename # endif _GL_FUNCDECL_RPL (rename, int, (const char *old_filename, const char *new_filename) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (rename, int, (const char *old_filename, const char *new_filename)); # else _GL_CXXALIAS_SYS (rename, int, (const char *old_filename, const char *new_filename)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (rename); # endif #elif defined GNULIB_POSIXCHECK # undef rename /* Assume rename is always declared. */ _GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " "use gnulib module rename for more portability"); #endif #if @GNULIB_RENAMEAT@ # if @REPLACE_RENAMEAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef renameat # define renameat rpl_renameat # endif _GL_FUNCDECL_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # else # if !@HAVE_RENAMEAT@ _GL_FUNCDECL_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # endif _GL_CXXALIASWARN (renameat); #elif defined GNULIB_POSIXCHECK # undef renameat # if HAVE_RAW_DECL_RENAMEAT _GL_WARN_ON_USE (renameat, "renameat is not portable - " "use gnulib module renameat for portability"); # endif #endif #if @GNULIB_SCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if defined __GNUC__ || defined __clang__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf /* Don't break __attribute__((format(scanf,M,N))). */ # define scanf __scanf__ # endif _GL_FUNCDECL_RPL_1 (__scanf__, int, (const char *restrict format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf # define scanf rpl_scanf # endif _GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...)); # endif # else _GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (scanf); # endif #endif #if @GNULIB_SNPRINTF@ # if @REPLACE_SNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define snprintf rpl_snprintf # endif # define GNULIB_overrides_snprintf 1 _GL_FUNCDECL_RPL (snprintf, int, (char *restrict str, size_t size, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, (char *restrict str, size_t size, const char *restrict format, ...)); # else # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, (char *restrict str, size_t size, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, (char *restrict str, size_t size, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (snprintf); # endif #elif defined GNULIB_POSIXCHECK # undef snprintf # if HAVE_RAW_DECL_SNPRINTF _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " "use gnulib module snprintf for portability"); # endif #endif /* Some people would argue that all sprintf uses should be warned about (for example, OpenBSD issues a link warning for it), since it can cause security holes due to buffer overruns. However, we believe that sprintf can be used safely, and is more efficient than snprintf in those safe cases; and as proof of our belief, we use sprintf in several gnulib modules. So this header intentionally avoids adding a warning to sprintf except when GNULIB_POSIXCHECK is defined. */ #if @GNULIB_SPRINTF_POSIX@ # if @REPLACE_SPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define sprintf rpl_sprintf # endif # define GNULIB_overrides_sprintf 1 _GL_FUNCDECL_RPL (sprintf, int, (char *restrict str, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (sprintf, int, (char *restrict str, const char *restrict format, ...)); # else _GL_CXXALIAS_SYS (sprintf, int, (char *restrict str, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (sprintf); # endif #elif defined GNULIB_POSIXCHECK # undef sprintf /* Assume sprintf is always declared. */ _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " "use gnulib module sprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_MDA_TEMPNAM@ /* On native Windows, map 'tempnam' to '_tempnam', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::tempnam always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tempnam # define tempnam _tempnam # endif _GL_CXXALIAS_MDA (tempnam, char *, (const char *dir, const char *prefix)); # else _GL_CXXALIAS_SYS (tempnam, char *, (const char *dir, const char *prefix)); # endif _GL_CXXALIASWARN (tempnam); #endif #if @GNULIB_TMPFILE@ # if @REPLACE_TMPFILE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define tmpfile rpl_tmpfile # endif _GL_FUNCDECL_RPL (tmpfile, FILE *, (void) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); # else # if __GNUC__ >= 11 /* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ _GL_FUNCDECL_SYS (tmpfile, FILE *, (void) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); # endif _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (tmpfile); # endif #else # if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined tmpfile /* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ _GL_FUNCDECL_SYS (tmpfile, FILE *, (void) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); # endif # if defined GNULIB_POSIXCHECK # undef tmpfile # if HAVE_RAW_DECL_TMPFILE _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " "use gnulib module tmpfile for portability"); # endif # endif #endif #if @GNULIB_VASPRINTF@ /* Write formatted output to a string dynamically allocated with malloc(). If the memory allocation succeeds, store the address of the string in *RESULT and return the number of resulting bytes, excluding the trailing NUL. Upon memory allocation error, or some other error, return -1. */ # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define asprintf rpl_asprintf # endif # define GNULIB_overrides_asprintf _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, (char **result, const char *format, ...)); # endif _GL_CXXALIASWARN (asprintf); # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vasprintf rpl_vasprintf # endif # define GNULIB_overrides_vasprintf 1 _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, (char **result, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vasprintf); #endif #if @GNULIB_VDPRINTF@ # if @REPLACE_VDPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vdprintf rpl_vdprintf # endif _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *restrict format, va_list args)); # else # if !@HAVE_VDPRINTF@ _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be __va_list args. */ _GL_CXXALIAS_SYS_CAST (vdprintf, int, (int fd, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vdprintf); # endif #elif defined GNULIB_POSIXCHECK # undef vdprintf # if HAVE_RAW_DECL_VDPRINTF _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " "use gnulib module vdprintf for portability"); # endif #endif #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vfprintf rpl_vfprintf # endif # define GNULIB_overrides_vfprintf 1 # if @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vfprintf, int, (FILE *restrict fp, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (vfprintf, int, (FILE *restrict fp, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (vfprintf, int, (FILE *restrict fp, const char *restrict format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vfprintf, int, (FILE *restrict fp, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vfprintf); # endif #endif #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vfprintf # undef vfprintf # endif /* Assume vfprintf is always declared. */ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " "use gnulib module vfprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VFSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vfscanf # define vfscanf rpl_vfscanf # endif _GL_FUNCDECL_RPL (vfscanf, int, (FILE *restrict stream, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vfscanf, int, (FILE *restrict stream, const char *restrict format, va_list args)); # else _GL_CXXALIAS_SYS (vfscanf, int, (FILE *restrict stream, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vfscanf); # endif #endif #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vprintf rpl_vprintf # endif # define GNULIB_overrides_vprintf 1 # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vprintf); # endif #endif #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vprintf # undef vprintf # endif /* Assume vprintf is always declared. */ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " "use gnulib module vprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vscanf # define vscanf rpl_vscanf # endif _GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args)); # else _GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vscanf); # endif #endif #if @GNULIB_VSNPRINTF@ # if @REPLACE_VSNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsnprintf rpl_vsnprintf # endif # define GNULIB_overrides_vsnprintf 1 _GL_FUNCDECL_RPL (vsnprintf, int, (char *restrict str, size_t size, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, (char *restrict str, size_t size, const char *restrict format, va_list args)); # else # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, (char *restrict str, size_t size, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, (char *restrict str, size_t size, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vsnprintf); # endif #elif defined GNULIB_POSIXCHECK # undef vsnprintf # if HAVE_RAW_DECL_VSNPRINTF _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " "use gnulib module vsnprintf for portability"); # endif #endif #if @GNULIB_VSPRINTF_POSIX@ # if @REPLACE_VSPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsprintf rpl_vsprintf # endif # define GNULIB_overrides_vsprintf 1 _GL_FUNCDECL_RPL (vsprintf, int, (char *restrict str, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, (char *restrict str, const char *restrict format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vsprintf, int, (char *restrict str, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vsprintf); # endif #elif defined GNULIB_POSIXCHECK # undef vsprintf /* Assume vsprintf is always declared. */ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " "use gnulib module vsprintf-posix for portable " "POSIX compliance"); #endif #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif ������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stdlib.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000162065�14374751113�012167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <stdlib.h>. Copyright (C) 1995, 2001-2004, 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc /* Special invocation conventions inside some gnulib header files, and inside some glibc header files, respectively. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #ifndef _@GUARD_PREFIX@_STDLIB_H #define _@GUARD_PREFIX@_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include <stddef.h> /* MirBSD 10 defines WEXITSTATUS in <sys/wait.h>, not in <stdlib.h>. */ #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS # include <sys/wait.h> #endif /* Solaris declares getloadavg() in <sys/loadavg.h>. */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ /* OpenIndiana has a bug: <sys/time.h> must be included before <sys/loadavg.h>. */ # include <sys/time.h> # include <sys/loadavg.h> #endif /* Native Windows platforms declare _mktemp() in <io.h>. */ #if defined _WIN32 && !defined __CYGWIN__ # include <io.h> #endif #if @GNULIB_RANDOM_R@ /* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included from <stdlib.h> if _REENTRANT is defined. Include it whenever we need 'struct random_data'. */ # if @HAVE_RANDOM_H@ # include <random.h> # endif # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ # include <stdint.h> # endif # if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated <stdlib.h> replacements to coexist. */ # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ int32_t *rptr; /* Rear pointer. */ int32_t *state; /* Array of state values. */ int rand_type; /* Type of random number generator. */ int rand_deg; /* Degree of random number generator. */ int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; # define GNULIB_defined_struct_random_data 1 # endif # endif #endif #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__) /* On Mac OS X 10.3, only <unistd.h> declares mkstemp. */ /* On Mac OS X 10.5, only <unistd.h> declares mkstemps. */ /* On Mac OS X 10.13, only <unistd.h> declares mkostemp and mkostemps. */ /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include <unistd.h> #endif /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers that can be freed by passing them as the Ith argument to the function F. */ #ifndef _GL_ATTRIBUTE_DEALLOC # if __GNUC__ >= 11 # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) # else # define _GL_ATTRIBUTE_DEALLOC(f, i) # endif #endif /* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that can be freed via 'free'; it can be used only after declaring 'free'. */ /* Applies to: functions. Cannot be used on inline functions. */ #ifndef _GL_ATTRIBUTE_DEALLOC_FREE # define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) #endif /* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly allocated memory. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_MALLOC # if __GNUC__ >= 3 || defined __clang__ # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) # else # define _GL_ATTRIBUTE_MALLOC # endif #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #ifndef _GL_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE /* empty */ # endif #endif /* The definition of _Noreturn is copied here. */ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems do not define EXIT_*, despite otherwise supporting C89. */ #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere with proper operation of xargs. */ #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #elif EXIT_FAILURE != 1 # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #if @GNULIB__EXIT@ /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if @REPLACE__EXIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef _Exit # define _Exit rpl__Exit # endif _GL_FUNCDECL_RPL (_Exit, _Noreturn void, (int status)); _GL_CXXALIAS_RPL (_Exit, void, (int status)); # else # if !@HAVE__EXIT@ _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (_Exit); # endif #elif defined GNULIB_POSIXCHECK # undef _Exit # if HAVE_RAW_DECL__EXIT _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " "use gnulib module _Exit for portability"); # endif #endif #if @GNULIB_FREE_POSIX@ # if @REPLACE_FREE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef free # define free rpl_free # endif # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) _GL_FUNCDECL_RPL (free, void, (void *ptr) throw ()); # else _GL_FUNCDECL_RPL (free, void, (void *ptr)); # endif _GL_CXXALIAS_RPL (free, void, (void *ptr)); # else _GL_CXXALIAS_SYS (free, void, (void *ptr)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (free); # endif #elif defined GNULIB_POSIXCHECK # undef free /* Assume free is always declared. */ _GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - " "use gnulib module free for portability"); #endif /* Allocate memory with indefinite extent and specified alignment. */ #if @GNULIB_ALIGNED_ALLOC@ # if @REPLACE_ALIGNED_ALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef aligned_alloc # define aligned_alloc rpl_aligned_alloc # endif _GL_FUNCDECL_RPL (aligned_alloc, void *, (size_t alignment, size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); _GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); # else # if @HAVE_ALIGNED_ALLOC@ # if __GNUC__ >= 11 /* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ _GL_FUNCDECL_SYS (aligned_alloc, void *, (size_t alignment, size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif _GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); # endif # endif # if (__GLIBC__ >= 2) && @HAVE_ALIGNED_ALLOC@ _GL_CXXALIASWARN (aligned_alloc); # endif #else # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined aligned_alloc /* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ _GL_FUNCDECL_SYS (aligned_alloc, void *, (size_t alignment, size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif # if defined GNULIB_POSIXCHECK # undef aligned_alloc # if HAVE_RAW_DECL_ALIGNED_ALLOC _GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - " "use gnulib module aligned_alloc for portability"); # endif # endif #endif #if @GNULIB_ATOLL@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ _GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); #elif defined GNULIB_POSIXCHECK # undef atoll # if HAVE_RAW_DECL_ATOLL _GL_WARN_ON_USE (atoll, "atoll is unportable - " "use gnulib module atoll for portability"); # endif #endif #if @GNULIB_CALLOC_POSIX@ # if (@GNULIB_CALLOC_POSIX@ && @REPLACE_CALLOC_FOR_CALLOC_POSIX@) \ || (@GNULIB_CALLOC_GNU@ && @REPLACE_CALLOC_FOR_CALLOC_GNU@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef calloc # define calloc rpl_calloc # endif _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else # if __GNUC__ >= 11 /* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ _GL_FUNCDECL_SYS (calloc, void *, (size_t nmemb, size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (calloc); # endif #else # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined calloc /* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ _GL_FUNCDECL_SYS (calloc, void *, (size_t nmemb, size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif # if defined GNULIB_POSIXCHECK # undef calloc /* Assume calloc is always declared. */ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " "use gnulib module calloc-posix for portability"); # endif #endif #if @GNULIB_CANONICALIZE_FILE_NAME@ # if @REPLACE_CANONICALIZE_FILE_NAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define canonicalize_file_name rpl_canonicalize_file_name # endif _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else # if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11 _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); # endif # ifndef GNULIB_defined_canonicalize_file_name # define GNULIB_defined_canonicalize_file_name \ (!@HAVE_CANONICALIZE_FILE_NAME@ || @REPLACE_CANONICALIZE_FILE_NAME@) # endif _GL_CXXALIASWARN (canonicalize_file_name); #else # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined canonicalize_file_name /* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or rpl_free. */ _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif # if defined GNULIB_POSIXCHECK # undef canonicalize_file_name # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME _GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " "use gnulib module canonicalize-lgpl for portability"); # endif # endif #endif #if @GNULIB_MDA_ECVT@ /* On native Windows, map 'ecvt' to '_ecvt', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::ecvt on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ecvt # define ecvt _ecvt # endif _GL_CXXALIAS_MDA (ecvt, char *, (double number, int ndigits, int *decptp, int *signp)); # else # if @HAVE_DECL_ECVT@ _GL_CXXALIAS_SYS (ecvt, char *, (double number, int ndigits, int *decptp, int *signp)); # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_ECVT@ _GL_CXXALIASWARN (ecvt); # endif #endif #if @GNULIB_MDA_FCVT@ /* On native Windows, map 'fcvt' to '_fcvt', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::fcvt on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcvt # define fcvt _fcvt # endif _GL_CXXALIAS_MDA (fcvt, char *, (double number, int ndigits, int *decptp, int *signp)); # else # if @HAVE_DECL_FCVT@ _GL_CXXALIAS_SYS (fcvt, char *, (double number, int ndigits, int *decptp, int *signp)); # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCVT@ _GL_CXXALIASWARN (fcvt); # endif #endif #if @GNULIB_MDA_GCVT@ /* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::gcvt on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gcvt # define gcvt _gcvt # endif _GL_CXXALIAS_MDA (gcvt, char *, (double number, int ndigits, char *buf)); # else # if @HAVE_DECL_GCVT@ _GL_CXXALIAS_SYS (gcvt, char *, (double number, int ndigits, char *buf)); # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_GCVT@ _GL_CXXALIASWARN (gcvt); # endif #endif #if @GNULIB_GETLOADAVG@ /* Store max(NELEM,3) load average numbers in LOADAVG[]. The three numbers are the load average of the last 1 minute, the last 5 minutes, and the last 15 minutes, respectively. LOADAVG is an array of NELEM numbers. */ # if @REPLACE_GETLOADAVG@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getloadavg # define getloadavg rpl_getloadavg # endif _GL_FUNCDECL_RPL (getloadavg, int, (double loadavg[], int nelem) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getloadavg, int, (double loadavg[], int nelem)); # else # if !@HAVE_DECL_GETLOADAVG@ _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getloadavg); # endif #elif defined GNULIB_POSIXCHECK # undef getloadavg # if HAVE_RAW_DECL_GETLOADAVG _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " "use gnulib module getloadavg for portability"); # endif #endif #if @GNULIB_GETPROGNAME@ /* Return the base name of the executing program. On native Windows this will usually end in ".exe" or ".EXE". */ # if @REPLACE_GETPROGNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getprogname # define getprogname rpl_getprogname # endif # ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME _GL_FUNCDECL_RPL (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE); # else _GL_FUNCDECL_RPL (getprogname, const char *, (void)); # endif _GL_CXXALIAS_RPL (getprogname, const char *, (void)); # else # if !@HAVE_GETPROGNAME@ # ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME _GL_FUNCDECL_SYS (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE); # else _GL_FUNCDECL_SYS (getprogname, const char *, (void)); # endif # endif _GL_CXXALIAS_SYS (getprogname, const char *, (void)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getprogname); # endif #elif defined GNULIB_POSIXCHECK # undef getprogname # if HAVE_RAW_DECL_GETPROGNAME _GL_WARN_ON_USE (getprogname, "getprogname is unportable - " "use gnulib module getprogname for portability"); # endif #endif #if @GNULIB_GETSUBOPT@ /* Assuming *OPTIONP is a comma separated list of elements of the form "token" or "token=value", getsubopt parses the first of these elements. If the first element refers to a "token" that is member of the given NULL-terminated array of tokens: - It replaces the comma with a NUL byte, updates *OPTIONP to point past the first option and the comma, sets *VALUEP to the value of the element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. For more details see the POSIX specification. https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ # if @REPLACE_GETSUBOPT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getsubopt # define getsubopt rpl_getsubopt # endif _GL_FUNCDECL_RPL (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) _GL_ARG_NONNULL ((1, 2, 3))); _GL_CXXALIAS_RPL (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); # else # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getsubopt); # endif #elif defined GNULIB_POSIXCHECK # undef getsubopt # if HAVE_RAW_DECL_GETSUBOPT _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " "use gnulib module getsubopt for portability"); # endif #endif #if @GNULIB_GRANTPT@ /* Change the ownership and access permission of the slave side of the pseudo-terminal whose master side is specified by FD. */ # if !@HAVE_GRANTPT@ _GL_FUNCDECL_SYS (grantpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (grantpt, int, (int fd)); _GL_CXXALIASWARN (grantpt); #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not rely on GNU or POSIX semantics for malloc and realloc (for example, by never specifying a zero size), so it does not need malloc or realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ # if (@GNULIB_MALLOC_POSIX@ && @REPLACE_MALLOC_FOR_MALLOC_POSIX@) \ || (@GNULIB_MALLOC_GNU@ && @REPLACE_MALLOC_FOR_MALLOC_GNU@) # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else # if __GNUC__ >= 11 /* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ _GL_FUNCDECL_SYS (malloc, void *, (size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (malloc); # endif #else # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined malloc /* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ _GL_FUNCDECL_SYS (malloc, void *, (size_t size) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif # if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); # endif #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBTOWC@ # if @REPLACE_MBTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbtowc # define mbtowc rpl_mbtowc # endif _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *restrict pwc, const char *restrict s, size_t n)); _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *restrict pwc, const char *restrict s, size_t n)); # else # if !@HAVE_MBTOWC@ _GL_FUNCDECL_SYS (mbtowc, int, (wchar_t *restrict pwc, const char *restrict s, size_t n)); # endif _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *restrict pwc, const char *restrict s, size_t n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbtowc); # endif #elif defined GNULIB_POSIXCHECK # undef mbtowc # if HAVE_RAW_DECL_MBTOWC _GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - " "use gnulib module mbtowc for portability"); # endif #endif #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the directory name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ # if !@HAVE_MKDTEMP@ _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); _GL_CXXALIASWARN (mkdtemp); #elif defined GNULIB_POSIXCHECK # undef mkdtemp # if HAVE_RAW_DECL_MKDTEMP _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " "use gnulib module mkdtemp for portability"); # endif #endif #if @GNULIB_MKOSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKOSTEMP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkostemp # define mkostemp rpl_mkostemp # endif _GL_FUNCDECL_RPL (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkostemp, int, (char * /*template*/, int /*flags*/)); # else # if !@HAVE_MKOSTEMP@ _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mkostemp); # endif #elif defined GNULIB_POSIXCHECK # undef mkostemp # if HAVE_RAW_DECL_MKOSTEMP _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " "use gnulib module mkostemp for portability"); # endif #endif #if @GNULIB_MKOSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE before a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKOSTEMPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkostemps # define mkostemps rpl_mkostemps # endif _GL_FUNCDECL_RPL (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); # else # if !@HAVE_MKOSTEMPS@ _GL_FUNCDECL_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mkostemps); # endif #elif defined GNULIB_POSIXCHECK # undef mkostemps # if HAVE_RAW_DECL_MKOSTEMPS _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " "use gnulib module mkostemps for portability"); # endif #endif #if @GNULIB_MKSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKSTEMP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkstemp rpl_mkstemp # endif _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); # else # if ! @HAVE_MKSTEMP@ _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); # endif _GL_CXXALIASWARN (mkstemp); #elif defined GNULIB_POSIXCHECK # undef mkstemp # if HAVE_RAW_DECL_MKSTEMP _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " "use gnulib module mkstemp for portability"); # endif #endif #if @GNULIB_MKSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE prior to a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKSTEMPS@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); _GL_CXXALIASWARN (mkstemps); #elif defined GNULIB_POSIXCHECK # undef mkstemps # if HAVE_RAW_DECL_MKSTEMPS _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " "use gnulib module mkstemps for portability"); # endif #endif #if @GNULIB_MDA_MKTEMP@ /* On native Windows, map 'mktemp' to '_mktemp', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::mktemp always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mktemp # define mktemp _mktemp # endif _GL_CXXALIAS_MDA (mktemp, char *, (char * /*template*/)); # else _GL_CXXALIAS_SYS (mktemp, char *, (char * /*template*/)); # endif _GL_CXXALIASWARN (mktemp); #endif /* Allocate memory with indefinite extent and specified alignment. */ #if @GNULIB_POSIX_MEMALIGN@ # if @REPLACE_POSIX_MEMALIGN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef posix_memalign # define posix_memalign rpl_posix_memalign # endif _GL_FUNCDECL_RPL (posix_memalign, int, (void **memptr, size_t alignment, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_memalign, int, (void **memptr, size_t alignment, size_t size)); # else # if @HAVE_POSIX_MEMALIGN@ _GL_CXXALIAS_SYS (posix_memalign, int, (void **memptr, size_t alignment, size_t size)); # endif # endif # if __GLIBC__ >= 2 && @HAVE_POSIX_MEMALIGN@ _GL_CXXALIASWARN (posix_memalign); # endif #elif defined GNULIB_POSIXCHECK # undef posix_memalign # if HAVE_RAW_DECL_POSIX_MEMALIGN _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - " "use gnulib module posix_memalign for portability"); # endif #endif #if @GNULIB_POSIX_OPENPT@ /* Return an FD open to the master side of a pseudo-terminal. Flags should include O_RDWR, and may also include O_NOCTTY. */ # if @REPLACE_POSIX_OPENPT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef posix_openpt # define posix_openpt rpl_posix_openpt # endif _GL_FUNCDECL_RPL (posix_openpt, int, (int flags)); _GL_CXXALIAS_RPL (posix_openpt, int, (int flags)); # else # if !@HAVE_POSIX_OPENPT@ _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); # endif _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (posix_openpt); # endif #elif defined GNULIB_POSIXCHECK # undef posix_openpt # if HAVE_RAW_DECL_POSIX_OPENPT _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " "use gnulib module posix_openpt for portability"); # endif #endif #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ # if @REPLACE_PTSNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname # define ptsname rpl_ptsname # endif _GL_FUNCDECL_RPL (ptsname, char *, (int fd)); _GL_CXXALIAS_RPL (ptsname, char *, (int fd)); # else # if !@HAVE_PTSNAME@ _GL_FUNCDECL_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIASWARN (ptsname); #elif defined GNULIB_POSIXCHECK # undef ptsname # if HAVE_RAW_DECL_PTSNAME _GL_WARN_ON_USE (ptsname, "ptsname is not portable - " "use gnulib module ptsname for portability"); # endif #endif #if @GNULIB_PTSNAME_R@ /* Set the pathname of the pseudo-terminal slave associated with the master FD is open on and return 0, or set errno and return non-zero on errors. */ # if @REPLACE_PTSNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname_r # define ptsname_r rpl_ptsname_r # endif _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); # else # if !@HAVE_PTSNAME_R@ _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif # ifndef GNULIB_defined_ptsname_r # define GNULIB_defined_ptsname_r (!@HAVE_PTSNAME_R@ || @REPLACE_PTSNAME_R@) # endif _GL_CXXALIASWARN (ptsname_r); #elif defined GNULIB_POSIXCHECK # undef ptsname_r # if HAVE_RAW_DECL_PTSNAME_R _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " "use gnulib module ptsname_r for portability"); # endif #endif #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv rpl_putenv # endif _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (putenv, int, (char *string)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv _putenv # endif _GL_CXXALIAS_MDA (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #elif @GNULIB_MDA_PUTENV@ /* On native Windows, map 'putenv' to '_putenv', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::putenv always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv _putenv # endif /* Need to cast, because on mingw, the parameter is either 'const char *string' or 'char *string'. */ _GL_CXXALIAS_MDA_CAST (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #endif #if @GNULIB_QSORT_R@ /* Sort an array of NMEMB elements, starting at address BASE, each element occupying SIZE bytes, in ascending order according to the comparison function COMPARE. */ # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_qsort_r_fn_types typedef int (*_gl_qsort_r_compar_fn) (void const *, void const *, void *); # define GNULIB_defined_qsort_r_fn_types 1 # endif # ifdef __cplusplus } # endif # if @REPLACE_QSORT_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef qsort_r # define qsort_r rpl_qsort_r # endif _GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, _gl_qsort_r_compar_fn compare, void *arg) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, _gl_qsort_r_compar_fn compare, void *arg)); # else # if !@HAVE_QSORT_R@ _GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, _gl_qsort_r_compar_fn compare, void *arg) _GL_ARG_NONNULL ((1, 4))); # endif _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, _gl_qsort_r_compar_fn compare, void *arg)); # endif _GL_CXXALIASWARN (qsort_r); #elif defined GNULIB_POSIXCHECK # undef qsort_r # if HAVE_RAW_DECL_QSORT_R _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " "use gnulib module qsort_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if !@HAVE_RANDOM_R@ # ifndef RAND_MAX # define RAND_MAX 2147483647 # endif # endif #endif #if @GNULIB_RANDOM@ # if @REPLACE_RANDOM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random # define random rpl_random # endif _GL_FUNCDECL_RPL (random, long, (void)); _GL_CXXALIAS_RPL (random, long, (void)); # else # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); # endif /* Need to cast, because on Haiku, the return type is int. */ _GL_CXXALIAS_SYS_CAST (random, long, (void)); # endif _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random # if HAVE_RAW_DECL_RANDOM _GL_WARN_ON_USE (random, "random is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if @REPLACE_RANDOM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom # define srandom rpl_srandom # endif _GL_FUNCDECL_RPL (srandom, void, (unsigned int seed)); _GL_CXXALIAS_RPL (srandom, void, (unsigned int seed)); # else # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); # endif /* Need to cast, because on FreeBSD, the first parameter is unsigned long seed. */ _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed)); # endif _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom # if HAVE_RAW_DECL_SRANDOM _GL_WARN_ON_USE (srandom, "srandom is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if @REPLACE_INITSTATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate # define initstate rpl_initstate # endif _GL_FUNCDECL_RPL (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); # else # if !@HAVE_INITSTATE@ || !@HAVE_DECL_INITSTATE@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on FreeBSD, the first parameter is unsigned long seed. */ _GL_CXXALIAS_SYS_CAST (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (initstate); # endif #elif defined GNULIB_POSIXCHECK # undef initstate # if HAVE_RAW_DECL_INITSTATE _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if @REPLACE_SETSTATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate # define setstate rpl_setstate # endif _GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setstate, char *, (char *arg_state)); # else # if !@HAVE_SETSTATE@ || !@HAVE_DECL_SETSTATE@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Mac OS X 10.13, HP-UX, Solaris the first parameter is const char *arg_state. */ _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (setstate); # endif #elif defined GNULIB_POSIXCHECK # undef setstate # if HAVE_RAW_DECL_SETSTATE _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random_r # define random_r rpl_random_r # endif _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); # endif _GL_CXXALIASWARN (random_r); #elif defined GNULIB_POSIXCHECK # undef random_r # if HAVE_RAW_DECL_RANDOM_R _GL_WARN_ON_USE (random_r, "random_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom_r # define srandom_r rpl_srandom_r # endif _GL_FUNCDECL_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (srandom_r); #elif defined GNULIB_POSIXCHECK # undef srandom_r # if HAVE_RAW_DECL_SRANDOM_R _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate_r # define initstate_r rpl_initstate_r # endif _GL_FUNCDECL_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); # endif /* Need to cast, because on Haiku, the third parameter is unsigned long buf_size. */ _GL_CXXALIAS_SYS_CAST (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK # undef initstate_r # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate_r # define setstate_r rpl_setstate_r # endif _GL_FUNCDECL_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); # endif /* Need to cast, because on Haiku, the first parameter is void *arg_state. */ _GL_CXXALIAS_SYS_CAST (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK # undef setstate_r # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_REALLOC_POSIX@ # if (@GNULIB_REALLOC_POSIX@ && @REPLACE_REALLOC_FOR_REALLOC_POSIX@) \ || (@GNULIB_REALLOC_GNU@ && @REPLACE_REALLOC_FOR_REALLOC_GNU@) # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size) _GL_ATTRIBUTE_DEALLOC_FREE); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else # if __GNUC__ >= 11 /* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ _GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) _GL_ATTRIBUTE_DEALLOC_FREE); # endif _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (realloc); # endif #else # if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined realloc /* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ _GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) _GL_ATTRIBUTE_DEALLOC_FREE); # endif # if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); # endif #endif #if @GNULIB_REALLOCARRAY@ # if @REPLACE_REALLOCARRAY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef reallocarray # define reallocarray rpl_reallocarray # endif _GL_FUNCDECL_RPL (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); # else # if ! @HAVE_REALLOCARRAY@ _GL_FUNCDECL_SYS (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); # endif _GL_CXXALIAS_SYS (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (reallocarray); # endif #elif defined GNULIB_POSIXCHECK # undef reallocarray # if HAVE_RAW_DECL_REALLOCARRAY _GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " "use gnulib module reallocarray for portability"); # endif #endif #if @GNULIB_REALPATH@ # if @REPLACE_REALPATH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define realpath rpl_realpath # endif _GL_FUNCDECL_RPL (realpath, char *, (const char *restrict name, char *restrict resolved) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (realpath, char *, (const char *restrict name, char *restrict resolved)); # else # if !@HAVE_REALPATH@ _GL_FUNCDECL_SYS (realpath, char *, (const char *restrict name, char *restrict resolved) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (realpath, char *, (const char *restrict name, char *restrict resolved)); # endif _GL_CXXALIASWARN (realpath); #elif defined GNULIB_POSIXCHECK # undef realpath # if HAVE_RAW_DECL_REALPATH _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " "canonicalize or canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_RPMATCH@ /* Test a user response to a question. Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ # if !@HAVE_RPMATCH@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); _GL_CXXALIASWARN (rpmatch); #elif defined GNULIB_POSIXCHECK # undef rpmatch # if HAVE_RAW_DECL_RPMATCH _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " "use gnulib module rpmatch for portability"); # endif #endif #if @GNULIB_SECURE_GETENV@ /* Look up NAME in the environment, returning 0 in insecure situations. */ # if !@HAVE_SECURE_GETENV@ _GL_FUNCDECL_SYS (secure_getenv, char *, (char const *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); _GL_CXXALIASWARN (secure_getenv); #elif defined GNULIB_POSIXCHECK # undef secure_getenv # if HAVE_RAW_DECL_SECURE_GETENV _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " "use gnulib module secure_getenv for portability"); # endif #endif #if @GNULIB_SETENV@ /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ # if @REPLACE_SETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setenv # define setenv rpl_setenv # endif _GL_FUNCDECL_RPL (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setenv, int, (const char *name, const char *value, int replace)); # else # if !@HAVE_DECL_SETENV@ _GL_FUNCDECL_SYS (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setenv, int, (const char *name, const char *value, int replace)); # endif # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) _GL_CXXALIASWARN (setenv); # endif #elif defined GNULIB_POSIXCHECK # undef setenv # if HAVE_RAW_DECL_SETENV _GL_WARN_ON_USE (setenv, "setenv is unportable - " "use gnulib module setenv for portability"); # endif #endif #if @GNULIB_STRTOD@ /* Parse a double from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif # define GNULIB_defined_strtod_function 1 _GL_FUNCDECL_RPL (strtod, double, (const char *restrict str, char **restrict endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtod, double, (const char *restrict str, char **restrict endp)); # else # if !@HAVE_STRTOD@ _GL_FUNCDECL_SYS (strtod, double, (const char *restrict str, char **restrict endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtod, double, (const char *restrict str, char **restrict endp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strtod); # endif #elif defined GNULIB_POSIXCHECK # undef strtod # if HAVE_RAW_DECL_STRTOD _GL_WARN_ON_USE (strtod, "strtod is unportable - " "use gnulib module strtod for portability"); # endif #endif #if @GNULIB_STRTOLD@ /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOLD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtold rpl_strtold # endif # define GNULIB_defined_strtold_function 1 _GL_FUNCDECL_RPL (strtold, long double, (const char *restrict str, char **restrict endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtold, long double, (const char *restrict str, char **restrict endp)); # else # if !@HAVE_STRTOLD@ _GL_FUNCDECL_SYS (strtold, long double, (const char *restrict str, char **restrict endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtold, long double, (const char *restrict str, char **restrict endp)); # endif _GL_CXXALIASWARN (strtold); #elif defined GNULIB_POSIXCHECK # undef strtold # if HAVE_RAW_DECL_STRTOLD _GL_WARN_ON_USE (strtold, "strtold is unportable - " "use gnulib module strtold for portability"); # endif #endif #if @GNULIB_STRTOL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set to ERANGE. */ # if @REPLACE_STRTOL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtol rpl_strtol # endif # define GNULIB_defined_strtol_function 1 _GL_FUNCDECL_RPL (strtol, long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtol, long, (const char *restrict string, char **restrict endptr, int base)); # else # if !@HAVE_STRTOL@ _GL_FUNCDECL_SYS (strtol, long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtol, long, (const char *restrict string, char **restrict endptr, int base)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strtol); # endif #elif defined GNULIB_POSIXCHECK # undef strtol # if HAVE_RAW_DECL_STRTOL _GL_WARN_ON_USE (strtol, "strtol is unportable - " "use gnulib module strtol for portability"); # endif #endif #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set to ERANGE. */ # if @REPLACE_STRTOLL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtoll rpl_strtoll # endif # define GNULIB_defined_strtoll_function 1 _GL_FUNCDECL_RPL (strtoll, long long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoll, long long, (const char *restrict string, char **restrict endptr, int base)); # else # if !@HAVE_STRTOLL@ _GL_FUNCDECL_SYS (strtoll, long long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoll, long long, (const char *restrict string, char **restrict endptr, int base)); # endif _GL_CXXALIASWARN (strtoll); #elif defined GNULIB_POSIXCHECK # undef strtoll # if HAVE_RAW_DECL_STRTOLL _GL_WARN_ON_USE (strtoll, "strtoll is unportable - " "use gnulib module strtoll for portability"); # endif #endif #if @GNULIB_STRTOUL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */ # if @REPLACE_STRTOUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtoul rpl_strtoul # endif # define GNULIB_defined_strtoul_function 1 _GL_FUNCDECL_RPL (strtoul, unsigned long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoul, unsigned long, (const char *restrict string, char **restrict endptr, int base)); # else # if !@HAVE_STRTOUL@ _GL_FUNCDECL_SYS (strtoul, unsigned long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoul, unsigned long, (const char *restrict string, char **restrict endptr, int base)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strtoul); # endif #elif defined GNULIB_POSIXCHECK # undef strtoul # if HAVE_RAW_DECL_STRTOUL _GL_WARN_ON_USE (strtoul, "strtoul is unportable - " "use gnulib module strtoul for portability"); # endif #endif #if @GNULIB_STRTOULL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULLONG_MAX, and errno is set to ERANGE. */ # if @REPLACE_STRTOULL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtoull rpl_strtoull # endif # define GNULIB_defined_strtoull_function 1 _GL_FUNCDECL_RPL (strtoull, unsigned long long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoull, unsigned long long, (const char *restrict string, char **restrict endptr, int base)); # else # if !@HAVE_STRTOULL@ _GL_FUNCDECL_SYS (strtoull, unsigned long long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoull, unsigned long long, (const char *restrict string, char **restrict endptr, int base)); # endif _GL_CXXALIASWARN (strtoull); #elif defined GNULIB_POSIXCHECK # undef strtoull # if HAVE_RAW_DECL_STRTOULL _GL_WARN_ON_USE (strtoull, "strtoull is unportable - " "use gnulib module strtoull for portability"); # endif #endif #if @GNULIB_UNLOCKPT@ /* Unlock the slave side of the pseudo-terminal whose master side is specified by FD, so that it can be opened. */ # if !@HAVE_UNLOCKPT@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (unlockpt, int, (int fd)); _GL_CXXALIASWARN (unlockpt); #elif defined GNULIB_POSIXCHECK # undef unlockpt # if HAVE_RAW_DECL_UNLOCKPT _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " "use gnulib module unlockpt for portability"); # endif #endif #if @GNULIB_UNSETENV@ /* Remove the variable NAME from the environment. */ # if @REPLACE_UNSETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unsetenv # define unsetenv rpl_unsetenv # endif _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); # else # if !@HAVE_DECL_UNSETENV@ _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); # endif # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@) _GL_CXXALIASWARN (unsetenv); # endif #elif defined GNULIB_POSIXCHECK # undef unsetenv # if HAVE_RAW_DECL_UNSETENV _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " "use gnulib module unsetenv for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCTOMB@ # if @REPLACE_WCTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctomb # define wctomb rpl_wctomb # endif _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); # else _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctomb); # endif #endif #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stpncpy.c���������������������������������������������������������������������������0000644�0000000�0000000�00000004167�14374751113�011772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1993, 1995-1997, 2002-2003, 2005-2007, 2009-2023 Free Software * Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* This is almost copied from strncpy.c, written by Torbjorn Granlund. */ #include <config.h> /* Specification. */ #include <string.h> #ifndef weak_alias # define __stpncpy stpncpy #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ char * (__stpncpy) (char *dest, const char *src, size_t n) { char c; char *s = dest; if (n >= 4) { size_t n4 = n >> 2; for (;;) { c = *src++; *dest++ = c; if (c == '\0') break; c = *src++; *dest++ = c; if (c == '\0') break; c = *src++; *dest++ = c; if (c == '\0') break; c = *src++; *dest++ = c; if (c == '\0') break; if (--n4 == 0) goto last_chars; } n -= dest - s; goto zero_fill; } last_chars: n &= 3; if (n == 0) return dest; for (;;) { c = *src++; --n; *dest++ = c; if (c == '\0') break; if (n == 0) return dest; } zero_fill: while (n-- > 0) dest[n] = '\0'; return dest - 1; } #ifdef weak_alias weak_alias (__stpncpy, stpncpy) #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/strchrnul.c�������������������������������������������������������������������������0000644�0000000�0000000�00000013037�14374751113�012312� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Searching in a string. Copyright (C) 2003, 2007-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <string.h> /* Find the first occurrence of C in S or the final NUL byte. */ char * strchrnul (const char *s, int c_in) { /* On 32-bit hardware, choosing longword to be a 32-bit unsigned long instead of a 64-bit uintmax_t tends to give better performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; longword repeated_one; longword repeated_c; unsigned char c; c = (unsigned char) c_in; if (!c) return rawmemchr (s, 0); /* Handle the first few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s; (size_t) char_ptr % sizeof (longword) != 0; ++char_ptr) if (!*char_ptr || *char_ptr == c) return (char *) char_ptr; longword_ptr = (const longword *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ repeated_one = 0x01010101; repeated_c = c | (c << 8); repeated_c |= repeated_c << 16; if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) { size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) { repeated_one |= repeated_one << i; repeated_c |= repeated_c << i; } } } /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if *any of the four* bytes in the longword in question are equal to NUL or c. We first use an xor with repeated_c. This reduces the task to testing whether *any of the four* bytes in longword1 or longword2 is zero. Let's consider longword1. We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. The test whether any byte in longword1 or longword2 is zero is equivalent to testing whether tmp1 is nonzero or tmp2 is nonzero. We can combine this into a single test, whether (tmp1 | tmp2) is nonzero. This test can read more than one byte beyond the end of a string, depending on where the terminating NUL is encountered. However, this is considered safe since the initialization phase ensured that the read will be aligned, therefore, the read will not cross page boundaries and will not cause a fault. */ while (1) { longword longword1 = *longword_ptr ^ repeated_c; longword longword2 = *longword_ptr; if (((((longword1 - repeated_one) & ~longword1) | ((longword2 - repeated_one) & ~longword2)) & (repeated_one << 7)) != 0) break; longword_ptr++; } char_ptr = (const unsigned char *) longword_ptr; /* At this point, we know that one of the sizeof (longword) bytes starting at char_ptr is == 0 or == c. On little-endian machines, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. But this does not work on big-endian machines. Choose code that works in both cases. */ char_ptr = (unsigned char *) longword_ptr; while (*char_ptr && (*char_ptr != c)) char_ptr++; return (char *) char_ptr; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/strchrnul.valgrind������������������������������������������������������������������0000644�0000000�0000000�00000001714�14374751113�013675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Suppress a valgrind message about use of uninitialized memory in strchrnul(). # Copyright (C) 2008-2023 Free Software Foundation, Inc. # # This file is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # License, or (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # This use is OK because it provides only a speedup. { strchrnul-value4 Memcheck:Value4 fun:strchrnul } { strchrnul-value8 Memcheck:Value8 fun:strchrnul } ����������������������������������������������������a2ps-4.15.5/lib/strdup.c����������������������������������������������������������������������������0000644�0000000�0000000�00000002532�14374751113�011605� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <config.h> #endif /* Get specification. */ #include <string.h> #include <stdlib.h> #undef __strdup #ifdef _LIBC # undef strdup #endif #ifndef weak_alias # define __strdup strdup #endif /* Duplicate S, returning an identical malloc'd string. */ char * __strdup (const char *s) { size_t len = strlen (s) + 1; void *new = malloc (len); if (new == NULL) return NULL; return (char *) memcpy (new, s, len); } #ifdef libc_hidden_def libc_hidden_def (__strdup) #endif #ifdef weak_alias weak_alias (__strdup, strdup) #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/streq.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000007703�14374751113�011434� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Optimized string comparison. Copyright (C) 2001-2002, 2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>. */ #ifndef _GL_STREQ_H #define _GL_STREQ_H #include <string.h> /* STREQ_OPT allows to optimize string comparison with a small literal string. STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) is semantically equivalent to strcmp (s, "EUC-KR") == 0 just faster. */ /* Help GCC to generate good code for string comparisons with immediate strings. */ #if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ static inline int streq9 (const char *s1, const char *s2) { return strcmp (s1 + 9, s2 + 9) == 0; } static inline int streq8 (const char *s1, const char *s2, char s28) { if (s1[8] == s28) { if (s28 == 0) return 1; else return streq9 (s1, s2); } else return 0; } static inline int streq7 (const char *s1, const char *s2, char s27, char s28) { if (s1[7] == s27) { if (s27 == 0) return 1; else return streq8 (s1, s2, s28); } else return 0; } static inline int streq6 (const char *s1, const char *s2, char s26, char s27, char s28) { if (s1[6] == s26) { if (s26 == 0) return 1; else return streq7 (s1, s2, s27, s28); } else return 0; } static inline int streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) { if (s1[5] == s25) { if (s25 == 0) return 1; else return streq6 (s1, s2, s26, s27, s28); } else return 0; } static inline int streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) { if (s1[4] == s24) { if (s24 == 0) return 1; else return streq5 (s1, s2, s25, s26, s27, s28); } else return 0; } static inline int streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[3] == s23) { if (s23 == 0) return 1; else return streq4 (s1, s2, s24, s25, s26, s27, s28); } else return 0; } static inline int streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[2] == s22) { if (s22 == 0) return 1; else return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[1] == s21) { if (s21 == 0) return 1; else return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[0] == s20) { if (s20 == 0) return 1; else return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); } else return 0; } #define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) #else #define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ (strcmp (s1, s2) == 0) #endif #endif /* _GL_STREQ_H */ �������������������������������������������������������������a2ps-4.15.5/lib/strerror-override.c�����������������������������������������������������������������0000644�0000000�0000000�00000021646�14374751113�013772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror-override.c --- POSIX compatible system error routine Copyright (C) 2010-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2010. */ #include <config.h> #include "strerror-override.h" #include <errno.h> #if GNULIB_defined_EWINSOCK /* native Windows platforms */ # if HAVE_WINSOCK2_H # include <winsock2.h> # endif #endif #if !GNULIB_defined_strerror_override_macro /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ const char * strerror_override (int errnum) { /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ switch (errnum) { # if REPLACE_STRERROR_0 case 0: return "Success"; # endif # if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */ case EINPROGRESS: return "Operation now in progress"; case EALREADY: return "Operation already in progress"; case ENOTSOCK: return "Socket operation on non-socket"; case EDESTADDRREQ: return "Destination address required"; case EMSGSIZE: return "Message too long"; case EPROTOTYPE: return "Protocol wrong type for socket"; case ENOPROTOOPT: return "Protocol not available"; case EPROTONOSUPPORT: return "Protocol not supported"; case EOPNOTSUPP: return "Operation not supported"; case EAFNOSUPPORT: return "Address family not supported by protocol"; case EADDRINUSE: return "Address already in use"; case EADDRNOTAVAIL: return "Cannot assign requested address"; case ENETDOWN: return "Network is down"; case ENETUNREACH: return "Network is unreachable"; case ECONNRESET: return "Connection reset by peer"; case ENOBUFS: return "No buffer space available"; case EISCONN: return "Transport endpoint is already connected"; case ENOTCONN: return "Transport endpoint is not connected"; case ETIMEDOUT: return "Connection timed out"; case ECONNREFUSED: return "Connection refused"; case ELOOP: return "Too many levels of symbolic links"; case EHOSTUNREACH: return "No route to host"; case EWOULDBLOCK: return "Operation would block"; # endif # if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */ case ETXTBSY: return "Text file busy"; case ENODATA: return "No data available"; case ENOSR: return "Out of streams resources"; case ENOSTR: return "Device not a stream"; case ETIME: return "Timer expired"; case EOTHER: return "Other error"; # endif # if GNULIB_defined_EWINSOCK /* native Windows platforms */ case ESOCKTNOSUPPORT: return "Socket type not supported"; case EPFNOSUPPORT: return "Protocol family not supported"; case ESHUTDOWN: return "Cannot send after transport endpoint shutdown"; case ETOOMANYREFS: return "Too many references: cannot splice"; case EHOSTDOWN: return "Host is down"; case EPROCLIM: return "Too many processes"; case EUSERS: return "Too many users"; case EDQUOT: return "Disk quota exceeded"; case ESTALE: return "Stale NFS file handle"; case EREMOTE: return "Object is remote"; # if HAVE_WINSOCK2_H /* WSA_INVALID_HANDLE maps to EBADF */ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ /* WSA_INVALID_PARAMETER maps to EINVAL */ case WSA_OPERATION_ABORTED: return "Overlapped operation aborted"; case WSA_IO_INCOMPLETE: return "Overlapped I/O event object not in signaled state"; case WSA_IO_PENDING: return "Overlapped operations will complete later"; /* WSAEINTR maps to EINTR */ /* WSAEBADF maps to EBADF */ /* WSAEACCES maps to EACCES */ /* WSAEFAULT maps to EFAULT */ /* WSAEINVAL maps to EINVAL */ /* WSAEMFILE maps to EMFILE */ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ /* WSAEINPROGRESS maps to EINPROGRESS */ /* WSAEALREADY maps to EALREADY */ /* WSAENOTSOCK maps to ENOTSOCK */ /* WSAEDESTADDRREQ maps to EDESTADDRREQ */ /* WSAEMSGSIZE maps to EMSGSIZE */ /* WSAEPROTOTYPE maps to EPROTOTYPE */ /* WSAENOPROTOOPT maps to ENOPROTOOPT */ /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ /* WSAEOPNOTSUPP maps to EOPNOTSUPP */ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */ /* WSAEADDRINUSE maps to EADDRINUSE */ /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */ /* WSAENETDOWN maps to ENETDOWN */ /* WSAENETUNREACH maps to ENETUNREACH */ /* WSAENETRESET maps to ENETRESET */ /* WSAECONNABORTED maps to ECONNABORTED */ /* WSAECONNRESET maps to ECONNRESET */ /* WSAENOBUFS maps to ENOBUFS */ /* WSAEISCONN maps to EISCONN */ /* WSAENOTCONN maps to ENOTCONN */ /* WSAESHUTDOWN is ESHUTDOWN */ /* WSAETOOMANYREFS is ETOOMANYREFS */ /* WSAETIMEDOUT maps to ETIMEDOUT */ /* WSAECONNREFUSED maps to ECONNREFUSED */ /* WSAELOOP maps to ELOOP */ /* WSAENAMETOOLONG maps to ENAMETOOLONG */ /* WSAEHOSTDOWN is EHOSTDOWN */ /* WSAEHOSTUNREACH maps to EHOSTUNREACH */ /* WSAENOTEMPTY maps to ENOTEMPTY */ /* WSAEPROCLIM is EPROCLIM */ /* WSAEUSERS is EUSERS */ /* WSAEDQUOT is EDQUOT */ /* WSAESTALE is ESTALE */ /* WSAEREMOTE is EREMOTE */ case WSASYSNOTREADY: return "Network subsystem is unavailable"; case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range"; case WSANOTINITIALISED: return "Successful WSAStartup not yet performed"; case WSAEDISCON: return "Graceful shutdown in progress"; case WSAENOMORE: case WSA_E_NO_MORE: return "No more results"; case WSAECANCELLED: case WSA_E_CANCELLED: return "Call was canceled"; case WSAEINVALIDPROCTABLE: return "Procedure call table is invalid"; case WSAEINVALIDPROVIDER: return "Service provider is invalid"; case WSAEPROVIDERFAILEDINIT: return "Service provider failed to initialize"; case WSASYSCALLFAILURE: return "System call failure"; case WSASERVICE_NOT_FOUND: return "Service not found"; case WSATYPE_NOT_FOUND: return "Class type not found"; case WSAEREFUSED: return "Database query was refused"; case WSAHOST_NOT_FOUND: return "Host not found"; case WSATRY_AGAIN: return "Nonauthoritative host not found"; case WSANO_RECOVERY: return "Nonrecoverable error"; case WSANO_DATA: return "Valid name, no data record of requested type"; /* WSA_QOS_* omitted */ # endif # endif # if GNULIB_defined_ENOMSG case ENOMSG: return "No message of desired type"; # endif # if GNULIB_defined_EIDRM case EIDRM: return "Identifier removed"; # endif # if GNULIB_defined_ENOLINK case ENOLINK: return "Link has been severed"; # endif # if GNULIB_defined_EPROTO case EPROTO: return "Protocol error"; # endif # if GNULIB_defined_EMULTIHOP case EMULTIHOP: return "Multihop attempted"; # endif # if GNULIB_defined_EBADMSG case EBADMSG: return "Bad message"; # endif # if GNULIB_defined_EOVERFLOW case EOVERFLOW: return "Value too large for defined data type"; # endif # if GNULIB_defined_ENOTSUP case ENOTSUP: return "Not supported"; # endif # if GNULIB_defined_ENETRESET case ENETRESET: return "Network dropped connection on reset"; # endif # if GNULIB_defined_ECONNABORTED case ECONNABORTED: return "Software caused connection abort"; # endif # if GNULIB_defined_ESTALE case ESTALE: return "Stale NFS file handle"; # endif # if GNULIB_defined_EDQUOT case EDQUOT: return "Disk quota exceeded"; # endif # if GNULIB_defined_ECANCELED case ECANCELED: return "Operation canceled"; # endif # if GNULIB_defined_EOWNERDEAD case EOWNERDEAD: return "Owner died"; # endif # if GNULIB_defined_ENOTRECOVERABLE case ENOTRECOVERABLE: return "State not recoverable"; # endif # if GNULIB_defined_EILSEQ case EILSEQ: return "Invalid or incomplete multibyte or wide character"; # endif default: return NULL; } } #endif ������������������������������������������������������������������������������������������a2ps-4.15.5/lib/strerror-override.h�����������������������������������������������������������������0000644�0000000�0000000�00000004050�14374751113�013765� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror-override.h --- POSIX compatible system error routine Copyright (C) 2010-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_STRERROR_OVERRIDE_H # define _GL_STRERROR_OVERRIDE_H # include <errno.h> # include <stddef.h> /* Reasonable buffer size that should never trigger ERANGE; if this proves too small, we intentionally abort(), to remind us to fix this value. */ # define STACKBUF_LEN 256 /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ # if REPLACE_STRERROR_0 \ || GNULIB_defined_ESOCK \ || GNULIB_defined_ESTREAMS \ || GNULIB_defined_EWINSOCK \ || GNULIB_defined_ENOMSG \ || GNULIB_defined_EIDRM \ || GNULIB_defined_ENOLINK \ || GNULIB_defined_EPROTO \ || GNULIB_defined_EMULTIHOP \ || GNULIB_defined_EBADMSG \ || GNULIB_defined_EOVERFLOW \ || GNULIB_defined_ENOTSUP \ || GNULIB_defined_ENETRESET \ || GNULIB_defined_ECONNABORTED \ || GNULIB_defined_ESTALE \ || GNULIB_defined_EDQUOT \ || GNULIB_defined_ECANCELED \ || GNULIB_defined_EOWNERDEAD \ || GNULIB_defined_ENOTRECOVERABLE \ || GNULIB_defined_EILSEQ extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; # else # define strerror_override(ignored) NULL # define GNULIB_defined_strerror_override_macro 1 # endif #endif /* _GL_STRERROR_OVERRIDE_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/strerror.c��������������������������������������������������������������������������0000644�0000000�0000000�00000004057�14374751113�012152� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror.c --- POSIX compatible system error routine Copyright (C) 2007-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <string.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "intprops.h" #include "strerror-override.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef sprintf char * strerror (int n) #undef strerror { static char buf[STACKBUF_LEN]; size_t len; /* Cast away const, due to the historical signature of strerror; callers should not be modifying the string. */ const char *msg = strerror_override (n); if (msg) return (char *) msg; msg = strerror (n); /* Our strerror_r implementation might use the system's strerror buffer, so all other clients of strerror have to see the error copied into a buffer that we manage. This is not thread-safe, even if the system strerror is, but portable programs shouldn't be using strerror if they care about thread-safety. */ if (!msg || !*msg) { static char const fmt[] = "Unknown error %d"; static_assert (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); sprintf (buf, fmt, n); errno = EINVAL; return buf; } /* Fix STACKBUF_LEN if this ever aborts. */ len = strlen (msg); if (sizeof buf <= len) abort (); memcpy (buf, msg, len + 1); return buf; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/string.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000144441�14374751113�012212� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <string.h>. Copyright (C) 1995-1996, 2001-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_STRING_H /* Special invocation convention: - On OS X/NetBSD we have a sequence of nested includes <string.h> -> <strings.h> -> "string.h" In this situation system _chk variants due to -D_FORTIFY_SOURCE might be used after any replacements defined here. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STRING_H #define _GL_ALREADY_INCLUDING_STRING_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #undef _GL_ALREADY_INCLUDING_STRING_H #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include <stddef.h> /* MirBSD defines mbslen as a macro. */ #if @GNULIB_MBSLEN@ && defined __MirBSD__ # include <wchar.h> #endif /* NetBSD 5.0 declares strsignal in <unistd.h>, not in <string.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ && ! defined __GLIBC__ # include <unistd.h> #endif /* AIX 7.2 and Android 13 declare ffsl and ffsll in <strings.h>, not in <string.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if ((@GNULIB_FFSL@ || @GNULIB_FFSLL@ || defined GNULIB_POSIXCHECK) \ && (defined _AIX || defined __ANDROID__)) \ && ! defined __GLIBC__ # include <strings.h> #endif /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers that can be freed by passing them as the Ith argument to the function F. */ #ifndef _GL_ATTRIBUTE_DEALLOC # if __GNUC__ >= 11 # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) # else # define _GL_ATTRIBUTE_DEALLOC(f, i) # endif #endif /* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that can be freed via 'free'; it can be used only after declaring 'free'. */ /* Applies to: functions. Cannot be used on inline functions. */ #ifndef _GL_ATTRIBUTE_DEALLOC_FREE # if defined __cplusplus && defined __GNUC__ && !defined __clang__ /* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */ # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) # else # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC (free, 1) # endif #endif /* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly allocated memory. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_MALLOC # if __GNUC__ >= 3 || defined __clang__ # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) # else # define _GL_ATTRIBUTE_MALLOC # endif #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #ifndef _GL_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE /* empty */ # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though <stdlib.h> may not have been included yet. */ #if @GNULIB_FREE_POSIX@ # if (@REPLACE_FREE@ && !defined free \ && !(defined __cplusplus && defined GNULIB_NAMESPACE)) /* We can't do '#define free rpl_free' here. */ # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) _GL_EXTERN_C void rpl_free (void *) throw (); # else _GL_EXTERN_C void rpl_free (void *); # endif # undef _GL_ATTRIBUTE_DEALLOC_FREE # define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) # else # if defined _MSC_VER && !defined free _GL_EXTERN_C # if defined _DLL __declspec (dllimport) # endif void __cdecl free (void *); # else # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) _GL_EXTERN_C void free (void *) throw (); # else _GL_EXTERN_C void free (void *); # endif # endif # endif #else # if defined _MSC_VER && !defined free _GL_EXTERN_C # if defined _DLL __declspec (dllimport) # endif void __cdecl free (void *); # else # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) _GL_EXTERN_C void free (void *) throw (); # else _GL_EXTERN_C void free (void *); # endif # endif #endif /* Clear a block of memory. The compiler will not delete a call to this function, even if the block is dead after the call. */ #if @GNULIB_EXPLICIT_BZERO@ # if ! @HAVE_EXPLICIT_BZERO@ _GL_FUNCDECL_SYS (explicit_bzero, void, (void *__dest, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n)); _GL_CXXALIASWARN (explicit_bzero); #elif defined GNULIB_POSIXCHECK # undef explicit_bzero # if HAVE_RAW_DECL_EXPLICIT_BZERO _GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - " "use gnulib module explicit_bzero for portability"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ # if !@HAVE_FFSL@ _GL_FUNCDECL_SYS (ffsl, int, (long int i)); # endif _GL_CXXALIAS_SYS (ffsl, int, (long int i)); _GL_CXXALIASWARN (ffsl); #elif defined GNULIB_POSIXCHECK # undef ffsl # if HAVE_RAW_DECL_FFSL _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ # if @REPLACE_FFSLL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define ffsll rpl_ffsll # endif _GL_FUNCDECL_RPL (ffsll, int, (long long int i)); _GL_CXXALIAS_RPL (ffsll, int, (long long int i)); # else # if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIAS_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll # if HAVE_RAW_DECL_FFSLL _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); # endif #endif #if @GNULIB_MDA_MEMCCPY@ /* On native Windows, map 'memccpy' to '_memccpy', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::memccpy always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef memccpy # define memccpy _memccpy # endif _GL_CXXALIAS_MDA (memccpy, void *, (void *dest, const void *src, int c, size_t n)); # else _GL_CXXALIAS_SYS (memccpy, void *, (void *dest, const void *src, int c, size_t n)); # endif _GL_CXXALIASWARN (memccpy); #endif /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef memchr # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memchr, void *, (void const *__s, int __c, size_t __n), void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ || defined __clang__) _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n) throw ()); _GL_CXXALIASWARN1 (memchr, void const *, (void const *__s, int __c, size_t __n) throw ()); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK # undef memchr /* Assume memchr is always declared. */ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " "use gnulib module memchr for portability" ); #endif /* Return the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_MEMMEM@ # if @REPLACE_MEMMEM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memmem rpl_memmem # endif _GL_FUNCDECL_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # else # if ! @HAVE_DECL_MEMMEM@ _GL_FUNCDECL_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # endif _GL_CXXALIASWARN (memmem); #elif defined GNULIB_POSIXCHECK # undef memmem # if HAVE_RAW_DECL_MEMMEM _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " "use gnulib module memmem-simple for portability, " "and module memmem for speed" ); # endif #endif /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ #if @GNULIB_MEMPCPY@ # if @REPLACE_MEMPCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mempcpy # define mempcpy rpl_mempcpy # endif _GL_FUNCDECL_RPL (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); # else # if !@HAVE_MEMPCPY@ _GL_FUNCDECL_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mempcpy); # endif #elif defined GNULIB_POSIXCHECK # undef mempcpy # if HAVE_RAW_DECL_MEMPCPY _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " "use gnulib module mempcpy for portability"); # endif #endif /* Search backwards through a block for a byte (specified as an int). */ #if @GNULIB_MEMRCHR@ # if ! @HAVE_DECL_MEMRCHR@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::memrchr (const void *, int, size_t); } extern "C++" { void * std::memrchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ || defined __clang__) _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t) throw ()); _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t) throw ()); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (memrchr); # endif #elif defined GNULIB_POSIXCHECK # undef memrchr # if HAVE_RAW_DECL_MEMRCHR _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " "use gnulib module memrchr for portability"); # endif #endif /* Overwrite a block of memory. The compiler will not optimize effects away, even if the block is dead after the call. */ #if @GNULIB_MEMSET_EXPLICIT@ # if ! @HAVE_MEMSET_EXPLICIT@ _GL_FUNCDECL_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n)); _GL_CXXALIASWARN (memset_explicit); #elif defined GNULIB_POSIXCHECK # undef memset_explicit # if HAVE_RAW_DECL_MEMSET_EXPLICIT _GL_WARN_ON_USE (memset_explicit, "memset_explicit is unportable - " "use gnulib module memset_explicit for portability"); # endif #endif /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ #if @GNULIB_RAWMEMCHR@ # if ! @HAVE_RAWMEMCHR@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::rawmemchr (const void *, int); } extern "C++" { void * std::rawmemchr (void *, int); } */ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ || defined __clang__) _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in) throw ()); _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in) throw ()); # else _GL_CXXALIASWARN (rawmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef rawmemchr # if HAVE_RAW_DECL_RAWMEMCHR _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " "use gnulib module rawmemchr for portability"); # endif #endif /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @GNULIB_STPCPY@ # if @REPLACE_STPCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpcpy # define stpcpy rpl_stpcpy # endif _GL_FUNCDECL_RPL (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); # else # if !@HAVE_STPCPY@ _GL_FUNCDECL_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (stpcpy); # endif #elif defined GNULIB_POSIXCHECK # undef stpcpy # if HAVE_RAW_DECL_STPCPY _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " "use gnulib module stpcpy for portability"); # endif #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # else # if ! @HAVE_STPNCPY@ _GL_FUNCDECL_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (stpncpy); # endif #elif defined GNULIB_POSIXCHECK # undef stpncpy # if HAVE_RAW_DECL_STPNCPY _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " "use gnulib module stpncpy for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ _GL_WARN_ON_USE_CXX (strchr, const char *, char *, (const char *, int), "strchr cannot work correctly on character strings " "in some multibyte locales - " "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ # if @REPLACE_STRCHRNUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strchrnul rpl_strchrnul # endif _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strchrnul, char *, (const char *str, int ch)); # else # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ || defined __clang__) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in) throw ()); _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in) throw ()); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (strchrnul); # endif #elif defined GNULIB_POSIXCHECK # undef strchrnul # if HAVE_RAW_DECL_STRCHRNUL _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " "use gnulib module strchrnul for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ # if @REPLACE_STRDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup rpl_strdup # endif _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup _strdup # endif _GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif # if (!@HAVE_DECL_STRDUP@ || __GNUC__ >= 11) && !defined strdup _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #else # if __GNUC__ >= 11 && !defined strdup /* For -Wmismatched-dealloc: Associate strdup with free or rpl_free. */ _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif # if defined GNULIB_POSIXCHECK # undef strdup # if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); # endif # elif @GNULIB_MDA_STRDUP@ /* On native Windows, map 'creat' to '_creat', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::strdup always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup _strdup # endif _GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup # undef strdup # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); # endif #endif /* Append no more than N characters from SRC onto DEST. */ #if @GNULIB_STRNCAT@ # if @REPLACE_STRNCAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strncat # define strncat rpl_strncat # endif _GL_FUNCDECL_RPL (strncat, char *, (char *restrict dest, const char *restrict src, size_t n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strncat, char *, (char *restrict dest, const char *restrict src, size_t n)); # else _GL_CXXALIAS_SYS (strncat, char *, (char *restrict dest, const char *restrict src, size_t n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strncat); # endif #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT _GL_WARN_ON_USE (strncat, "strncat is unportable - " "use gnulib module strncat for portability"); # endif #endif /* Return a newly allocated copy of at most N bytes of STRING. */ #if @GNULIB_STRNDUP@ # if @REPLACE_STRNDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strndup # define strndup rpl_strndup # endif _GL_FUNCDECL_RPL (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); _GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); # else # if !@HAVE_DECL_STRNDUP@ || (__GNUC__ >= 11 && !defined strndup) _GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); # endif _GL_CXXALIASWARN (strndup); #else # if __GNUC__ >= 11 && !defined strndup /* For -Wmismatched-dealloc: Associate strndup with free or rpl_free. */ _GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif # if defined GNULIB_POSIXCHECK # undef strndup # if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); # endif # endif #endif /* Find the length (number of bytes) of STRING, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many bytes, return MAXLEN. */ #if @GNULIB_STRNLEN@ # if @REPLACE_STRNLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strnlen # define strnlen rpl_strnlen # endif _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK # undef strnlen # if HAVE_RAW_DECL_STRNLEN _GL_WARN_ON_USE (strnlen, "strnlen is unportable - " "use gnulib module strnlen for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strcspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strcspn /* Assume strcspn is always declared. */ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " "in multibyte locales - " "use mbscspn if you care about internationalization"); #endif /* Find the first occurrence in S of any character in ACCEPT. */ #if @GNULIB_STRPBRK@ # if ! @HAVE_STRPBRK@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const char * strpbrk (const char *, const char *); } extern "C++" { char * strpbrk (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ || defined __clang__) _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept) throw ()); _GL_CXXALIASWARN1 (strpbrk, char const *, (char const *__s, char const *__accept) throw ()); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK /* strpbrk() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk _GL_WARN_ON_USE_CXX (strpbrk, const char *, char *, (const char *, const char *), "strpbrk cannot work correctly on character strings " "in multibyte locales - " "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK _GL_WARN_ON_USE_CXX (strpbrk, const char *, char *, (const char *, const char *), "strpbrk is unportable - " "use gnulib module strpbrk for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it cannot work with multibyte strings. */ # undef strspn /* Assume strspn is always declared. */ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " "in multibyte locales - " "use mbsspn if you care about internationalization"); #endif #if defined GNULIB_POSIXCHECK /* strrchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ _GL_WARN_ON_USE_CXX (strrchr, const char *, char *, (const char *, int), "strrchr cannot work correctly on character strings " "in some multibyte locales - " "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next char after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of strtok() that is multithread-safe and supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strtok_r(). */ #if @GNULIB_STRSEP@ # if ! @HAVE_STRSEP@ _GL_FUNCDECL_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim)); _GL_CXXALIASWARN (strsep); # if defined GNULIB_POSIXCHECK # undef strsep _GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " "in multibyte locales - " "use mbssep if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strsep # if HAVE_RAW_DECL_STRSEP _GL_WARN_ON_USE (strsep, "strsep is unportable - " "use gnulib module strsep for portability"); # endif #endif #if @GNULIB_STRSTR@ # if @REPLACE_STRSTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); # else /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strstr (const char *, const char *); } extern "C++" { char * strstr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strstr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ || defined __clang__) _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle) throw ()); _GL_CXXALIASWARN1 (strstr, const char *, (const char *haystack, const char *needle) throw ()); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK /* strstr() does not work with multibyte strings if the locale encoding is different from UTF-8: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strstr /* Assume strstr is always declared. */ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " "work correctly on character strings in most " "multibyte locales - " "use mbsstr if you care about internationalization, " "or use strstr if you care about speed"); #endif /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. */ #if @GNULIB_STRCASESTR@ # if @REPLACE_STRCASESTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strcasestr rpl_strcasestr # endif _GL_FUNCDECL_RPL (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strcasestr, char *, (const char *haystack, const char *needle)); # else # if ! @HAVE_STRCASESTR@ _GL_FUNCDECL_SYS (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strcasestr (const char *, const char *); } extern "C++" { char * strcasestr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strcasestr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ || defined __clang__) _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle) throw ()); _GL_CXXALIASWARN1 (strcasestr, const char *, (const char *haystack, const char *needle) throw ()); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (strcasestr); # endif #elif defined GNULIB_POSIXCHECK /* strcasestr() does not work with multibyte strings: It is a glibc extension, and glibc implements it only for unibyte locales. */ # undef strcasestr # if HAVE_RAW_DECL_STRCASESTR _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " "strings in multibyte locales - " "use mbscasestr if you care about " "internationalization, or use c-strcasestr if you want " "a locale independent function"); # endif #endif /* Parse S into tokens separated by characters in DELIM. If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = strtok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strsep(). */ #if @GNULIB_STRTOK_R@ # if @REPLACE_STRTOK_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtok_r # define strtok_r rpl_strtok_r # endif _GL_FUNCDECL_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # else # if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK # undef strtok_r # endif # if ! @HAVE_DECL_STRTOK_R@ _GL_FUNCDECL_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # endif _GL_CXXALIASWARN (strtok_r); # if defined GNULIB_POSIXCHECK _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " "strings in multibyte locales - " "use mbstok_r if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strtok_r # if HAVE_RAW_DECL_STRTOK_R _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " "use gnulib module strtok_r for portability"); # endif #endif /* The following functions are not specified by POSIX. They are gnulib extensions. */ #if @GNULIB_MBSLEN@ /* Return the number of multibyte characters in the character string STRING. This considers multibyte characters, unlike strlen, which counts bytes. */ # ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ # undef mbslen # endif # if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbslen rpl_mbslen # endif _GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); # else _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbslen); # endif #endif #if @GNULIB_MBSNLEN@ /* Return the number of multibyte characters in the character string starting at STRING and ending at STRING + LEN. */ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); #endif #if @GNULIB_MBSCHR@ /* Locate the first single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbschr rpl_mbschr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbschr); #endif #if @GNULIB_MBSRCHR@ /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbsrchr); #endif #if @GNULIB_MBSSTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. Unlike strstr(), this function works correctly in multibyte locales with encodings different from UTF-8. */ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASECMP@ /* Compare the character strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function may, in multibyte locales, return 0 for strings of different lengths! Unlike strcasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSNCASECMP@ /* Compare the initial segment of the character string S1 consisting of at most N characters with the initial segment of the character string S2 consisting of at most N characters, ignoring case, returning less than, equal to or greater than zero if the initial segment of S1 is lexicographically less than, equal to or greater than the initial segment of S2. Note: This function may, in multibyte locales, return 0 for initial segments of different lengths! Unlike strncasecmp(), this function works correctly in multibyte locales. But beware that N is not a byte count but a character count! */ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPCASECMP@ /* Compare the initial segment of the character string STRING consisting of at most mbslen (PREFIX) characters with the character string PREFIX, ignoring case. If the two match, return a pointer to the first byte after this prefix in STRING. Otherwise, return NULL. Note: This function may, in multibyte locales, return non-NULL if STRING is of smaller length than PREFIX! Unlike strncasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASESTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK, using case-insensitive comparison. Note: This function may, in multibyte locales, return success even if strlen (haystack) < strlen (needle) ! Unlike strcasestr(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCSPN@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strcspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPBRK@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the pointer to it, or NULL if none exists. Unlike strpbrk(), this function works correctly in multibyte locales. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); # else _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); # endif _GL_CXXALIASWARN (mbspbrk); #endif #if @GNULIB_MBSSPN@ /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSSEP@ /* Search the next delimiter (multibyte character listed in the character string DELIM) starting at the character string *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next multibyte character after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of mbstok_r() that supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbstok_r(). */ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSTOK_R@ /* Parse the character string STRING into tokens separated by characters in the character string DELIM. If STRING is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = mbstok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbssep(). */ _GL_EXTERN_C char * mbstok_r (char *restrict string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif /* Map any int, typically from errno, into an error message. */ #if @GNULIB_STRERROR@ # if @REPLACE_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror # define strerror rpl_strerror # endif _GL_FUNCDECL_RPL (strerror, char *, (int)); _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strerror); # endif #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ _GL_WARN_ON_USE (strerror, "strerror is unportable - " "use gnulib module strerror to guarantee non-NULL result"); #endif /* Map any int, typically from errno, into an error message. Multithread-safe. Uses the POSIX declaration, not the glibc declaration. */ #if @GNULIB_STRERROR_R@ # if @REPLACE_STRERROR_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror_r # define strerror_r rpl_strerror_r # endif _GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); # else # if !@HAVE_DECL_STRERROR_R@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); # endif # if __GLIBC__ >= 2 && @HAVE_DECL_STRERROR_R@ _GL_CXXALIASWARN (strerror_r); # endif #elif defined GNULIB_POSIXCHECK # undef strerror_r # if HAVE_RAW_DECL_STRERROR_R _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " "use gnulib module strerror_r-posix for portability"); # endif #endif /* Return the name of the system error code ERRNUM. */ #if @GNULIB_STRERRORNAME_NP@ # if @REPLACE_STRERRORNAME_NP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerrorname_np # define strerrorname_np rpl_strerrorname_np # endif _GL_FUNCDECL_RPL (strerrorname_np, const char *, (int errnum)); _GL_CXXALIAS_RPL (strerrorname_np, const char *, (int errnum)); # else # if !@HAVE_STRERRORNAME_NP@ _GL_FUNCDECL_SYS (strerrorname_np, const char *, (int errnum)); # endif _GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum)); # endif _GL_CXXALIASWARN (strerrorname_np); #elif defined GNULIB_POSIXCHECK # undef strerrorname_np # if HAVE_RAW_DECL_STRERRORNAME_NP _GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - " "use gnulib module strerrorname_np for portability"); # endif #endif /* Return an abbreviation string for the signal number SIG. */ #if @GNULIB_SIGABBREV_NP@ # if ! @HAVE_SIGABBREV_NP@ _GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig)); # endif _GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig)); _GL_CXXALIASWARN (sigabbrev_np); #elif defined GNULIB_POSIXCHECK # undef sigabbrev_np # if HAVE_RAW_DECL_SIGABBREV_NP _GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - " "use gnulib module sigabbrev_np for portability"); # endif #endif /* Return an English description string for the signal number SIG. */ #if @GNULIB_SIGDESCR_NP@ # if ! @HAVE_SIGDESCR_NP@ _GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig)); # endif _GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig)); _GL_CXXALIASWARN (sigdescr_np); #elif defined GNULIB_POSIXCHECK # undef sigdescr_np # if HAVE_RAW_DECL_SIGDESCR_NP _GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - " "use gnulib module sigdescr_np for portability"); # endif #endif #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strsignal rpl_strsignal # endif _GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); _GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); # else # if ! @HAVE_DECL_STRSIGNAL@ _GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is 'const char *'. */ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); # endif _GL_CXXALIASWARN (strsignal); #elif defined GNULIB_POSIXCHECK # undef strsignal # if HAVE_RAW_DECL_STRSIGNAL _GL_WARN_ON_USE (strsignal, "strsignal is unportable - " "use gnulib module strsignal for portability"); # endif #endif #if @GNULIB_STRVERSCMP@ # if !@HAVE_STRVERSCMP@ _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); _GL_CXXALIASWARN (strverscmp); #elif defined GNULIB_POSIXCHECK # undef strverscmp # if HAVE_RAW_DECL_STRVERSCMP _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " "use gnulib module strverscmp for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/stripslash.c������������������������������������������������������������������������0000644�0000000�0000000�00000003063�14374751113�012460� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* stripslash.c -- remove redundant trailing slashes from a file name Copyright (C) 1990, 2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "dirname.h" /* Remove trailing slashes from FILE. Return true if a trailing slash was removed. This is useful when using file name completion from a shell that adds a "/" after directory names (such as tcsh and bash), because on symlinks to directories, several system calls have different semantics according to whether a trailing slash is present. */ bool strip_trailing_slashes (char *file) { char *base = last_component (file); char *base_lim; bool had_slash; /* last_component returns "" for file system roots, but we need to turn "///" into "/". */ if (! *base) base = file; base_lim = base + base_len (base); had_slash = (*base_lim != '\0'); *base_lim = '\0'; return had_slash; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/strndup.c���������������������������������������������������������������������������0000644�0000000�0000000�00000002066�14374751113�011765� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A replacement function, for systems that lack strndup. Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include <string.h> #include <stdlib.h> char * strndup (char const *s, size_t n) { size_t len = strnlen (s, n); char *new = malloc (len + 1); if (new == NULL) return NULL; new[len] = '\0'; return memcpy (new, s, len); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/strnlen.c���������������������������������������������������������������������������0000644�0000000�0000000�00000002226�14374751113�011751� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Find the length of STRING, but scan at most MAXLEN characters. Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc. Written by Simon Josefsson. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include <string.h> /* Find the length of STRING, but scan at most MAXLEN characters. If no '\0' terminator is found in that many characters, return MAXLEN. */ size_t strnlen (const char *string, size_t maxlen) { const char *end = memchr (string, '\0', maxlen); return end ? (size_t) (end - string) : maxlen; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/strverscmp.c������������������������������������������������������������������������0000644�0000000�0000000�00000006201�14374751113�012471� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Compare strings while treating digits characters numerically. Copyright (C) 1997-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <libc-config.h> # define __strverscmp strverscmp #endif #include <stdint.h> #include <string.h> #include <ctype.h> /* states: S_N: normal, S_I: comparing integral part, S_F: comparing fractional parts, S_Z: idem but with leading Zeroes only */ #define S_N 0x0 #define S_I 0x3 #define S_F 0x6 #define S_Z 0x9 /* result_type: CMP: return diff; LEN: compare using len_diff/diff */ #define CMP 2 #define LEN 3 /* Compare S1 and S2 as strings holding indices/version numbers, returning less than, equal to or greater than zero if S1 is less than, equal to or greater than S2 (for more info, see the texinfo doc). */ int __strverscmp (const char *s1, const char *s2) { const unsigned char *p1 = (const unsigned char *) s1; const unsigned char *p2 = (const unsigned char *) s2; /* Symbol(s) 0 [1-9] others Transition (10) 0 (01) d (00) x */ static const uint_least8_t next_state[] = { /* state x d 0 */ /* S_N */ S_N, S_I, S_Z, /* S_I */ S_N, S_I, S_I, /* S_F */ S_N, S_F, S_F, /* S_Z */ S_N, S_F, S_Z }; static const int_least8_t result_type[] = { /* state x/x x/d x/0 d/x d/d d/0 0/x 0/d 0/0 */ /* S_N */ CMP, CMP, CMP, CMP, LEN, CMP, CMP, CMP, CMP, /* S_I */ CMP, -1, -1, +1, LEN, LEN, +1, LEN, LEN, /* S_F */ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, /* S_Z */ CMP, +1, +1, -1, CMP, CMP, -1, CMP, CMP }; if (p1 == p2) return 0; unsigned char c1 = *p1++; unsigned char c2 = *p2++; /* Hint: '0' is a digit too. */ int state = S_N + ((c1 == '0') + (isdigit (c1) != 0)); int diff; while ((diff = c1 - c2) == 0) { if (c1 == '\0') return diff; state = next_state[state]; c1 = *p1++; c2 = *p2++; state += (c1 == '0') + (isdigit (c1) != 0); } state = result_type[state * 3 + (((c2 == '0') + (isdigit (c2) != 0)))]; switch (state) { case CMP: return diff; case LEN: while (isdigit (*p1++)) if (!isdigit (*p2++)) return 1; return isdigit (*p2) ? -1 : diff; default: return state; } } libc_hidden_def (__strverscmp) weak_alias (__strverscmp, strverscmp) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/sys_socket.c������������������������������������������������������������������������0000644�0000000�0000000�00000001555�14374751113�012456� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Inline functions for <sys/socket.h>. Copyright (C) 2012-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #define _GL_SYS_SOCKET_INLINE _GL_EXTERN_INLINE #include "sys/socket.h" typedef int dummy; ���������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/sys_socket.in.h���������������������������������������������������������������������0000644�0000000�0000000�00000057543�14374751113�013100� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide a sys/socket header file for systems lacking it (read: MinGW) and for systems where it is incomplete. Copyright (C) 2005-2023 Free Software Foundation, Inc. Written by Simon Josefsson. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* This file is supposed to be used on platforms that lack <sys/socket.h>, on platforms where <sys/socket.h> cannot be included standalone, and on platforms where <sys/socket.h> does not provide all necessary definitions. It is intended to provide definitions and prototypes needed by an application. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_SYS_SOCKET_H /* Special invocation convention: - On Cygwin 1.5.x we have a sequence of nested includes <sys/socket.h> -> <cygwin/socket.h> -> <asm/socket.h> -> <cygwin/if.h>, and the latter includes <sys/socket.h>. In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H #if @HAVE_SYS_SOCKET_H@ # define _GL_ALREADY_INCLUDING_SYS_SOCKET_H /* On many platforms, <sys/socket.h> assumes prior inclusion of <sys/types.h>. */ # include <sys/types.h> /* On FreeBSD 6.4, <sys/socket.h> defines some macros that assume that NULL is defined. */ # include <stddef.h> /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@ # undef _GL_ALREADY_INCLUDING_SYS_SOCKET_H #endif #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H #define _@GUARD_PREFIX@_SYS_SOCKET_H #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_SYS_SOCKET_INLINE # define _GL_SYS_SOCKET_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if !@HAVE_SA_FAMILY_T@ # if !GNULIB_defined_sa_family_t /* On OS/2 kLIBC, sa_family_t is unsigned char unless TCPV40HDRS is defined. */ # if !defined __KLIBC__ || defined TCPV40HDRS typedef unsigned short sa_family_t; # else typedef unsigned char sa_family_t; # endif # define GNULIB_defined_sa_family_t 1 # endif #endif #if @HAVE_STRUCT_SOCKADDR_STORAGE@ /* Make the 'struct sockaddr_storage' field 'ss_family' visible on AIX 7.1. */ # if !@HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ # ifndef ss_family # define ss_family __ss_family # endif # endif #else /* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on 2009-05-08, licensed under LGPLv2.1+, plus portability fixes. */ # define __ss_aligntype unsigned long int # define _SS_SIZE 256 # define _SS_PADSIZE \ (_SS_SIZE - ((sizeof (sa_family_t) >= alignof (__ss_aligntype) \ ? sizeof (sa_family_t) \ : alignof (__ss_aligntype)) \ + sizeof (__ss_aligntype))) # if !GNULIB_defined_struct_sockaddr_storage struct sockaddr_storage { sa_family_t ss_family; /* Address family, etc. */ __ss_aligntype __ss_align; /* Force desired alignment. */ char __ss_padding[_SS_PADSIZE]; }; # define GNULIB_defined_struct_sockaddr_storage 1 # endif #endif /* Get struct iovec. */ /* But avoid namespace pollution on glibc systems. */ #if ! defined __GLIBC__ # include <sys/uio.h> #endif #if @HAVE_SYS_SOCKET_H@ /* A platform that has <sys/socket.h>. */ /* For shutdown(). */ # if !defined SHUT_RD # define SHUT_RD 0 # endif # if !defined SHUT_WR # define SHUT_WR 1 # endif # if !defined SHUT_RDWR # define SHUT_RDWR 2 # endif # ifdef __VMS /* OpenVMS */ # ifndef CMSG_SPACE # define CMSG_SPACE(length) _CMSG_SPACE(length) # endif # ifndef CMSG_LEN # define CMSG_LEN(length) _CMSG_LEN(length) # endif # endif #else # ifdef __CYGWIN__ # error "Cygwin does have a sys/socket.h, doesn't it?!?" # endif /* A platform that lacks <sys/socket.h>. Currently only MinGW is supported. See the gnulib manual regarding Windows sockets. MinGW has the header files winsock2.h and ws2tcpip.h that declare the sys/socket.h definitions we need. Note that you can influence which definitions you get by setting the WINVER symbol before including these two files. For example, getaddrinfo is only available if _WIN32_WINNT >= 0x0501 (that symbol is set indirectly through WINVER). You can set this by adding AC_DEFINE(WINVER, 0x0501) to configure.ac. Note that your code may not run on older Windows releases then. My Windows 2000 box was not able to run the code, for example. The situation is slightly confusing because <https://docs.microsoft.com/en-us/windows/desktop/api/ws2tcpip/nf-ws2tcpip-getaddrinfo> suggests that getaddrinfo should be available on all Windows releases. */ # if @HAVE_WINSOCK2_H@ # include <winsock2.h> # endif # if @HAVE_WS2TCPIP_H@ # include <ws2tcpip.h> # endif /* For shutdown(). */ # if !defined SHUT_RD && defined SD_RECEIVE # define SHUT_RD SD_RECEIVE # endif # if !defined SHUT_WR && defined SD_SEND # define SHUT_WR SD_SEND # endif # if !defined SHUT_RDWR && defined SD_BOTH # define SHUT_RDWR SD_BOTH # endif # if @HAVE_WINSOCK2_H@ /* Include headers needed by the emulation code. */ # include <sys/types.h> # include <io.h> /* If these headers don't define socklen_t, <config.h> does. */ # endif /* Rudimentary 'struct msghdr'; this works as long as you don't try to access msg_control or msg_controllen. */ struct msghdr { void *msg_name; socklen_t msg_namelen; struct iovec *msg_iov; int msg_iovlen; int msg_flags; }; #endif /* Ensure SO_REUSEPORT is defined. */ /* For the subtle differences between SO_REUSEPORT and SO_REUSEADDR, see https://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t and https://lwn.net/Articles/542629/ */ #ifndef SO_REUSEPORT # define SO_REUSEPORT SO_REUSEADDR #endif /* Fix some definitions from <winsock2.h>. */ #if @HAVE_WINSOCK2_H@ # if !GNULIB_defined_rpl_fd_isset /* Re-define FD_ISSET to avoid a WSA call while we are not using network sockets. */ _GL_SYS_SOCKET_INLINE int rpl_fd_isset (SOCKET fd, fd_set * set) { u_int i; if (set == NULL) return 0; for (i = 0; i < set->fd_count; i++) if (set->fd_array[i] == fd) return 1; return 0; } # define GNULIB_defined_rpl_fd_isset 1 # endif # undef FD_ISSET # define FD_ISSET(fd, set) rpl_fd_isset(fd, set) #endif /* Hide some function declarations from <winsock2.h>. */ #if @HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h # elif !defined __clang__ _GL_WARN_ON_USE (close, "close() used without including <unistd.h>"); # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname gethostname_used_without_including_unistd_h # else _GL_WARN_ON_USE (gethostname, "gethostname() used without including <unistd.h>"); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including <sys/select.h>"); # endif # endif #endif /* Wrap everything else to use libc file descriptors for sockets. */ #if @GNULIB_SOCKET@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket rpl_socket # endif _GL_FUNCDECL_RPL (socket, int, (int domain, int type, int protocol)); _GL_CXXALIAS_RPL (socket, int, (int domain, int type, int protocol)); # else _GL_CXXALIAS_SYS (socket, int, (int domain, int type, int protocol)); # endif _GL_CXXALIASWARN (socket); #elif @HAVE_WINSOCK2_H@ # undef socket # define socket socket_used_without_requesting_gnulib_module_socket #elif defined GNULIB_POSIXCHECK # undef socket # if HAVE_RAW_DECL_SOCKET _GL_WARN_ON_USE (socket, "socket is not always POSIX compliant - " "use gnulib module socket for portability"); # endif #endif #if @GNULIB_CONNECT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef connect # define connect rpl_connect # endif _GL_FUNCDECL_RPL (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # else /* Need to cast, because on NonStop Kernel, the third parameter is size_t addrlen. */ _GL_CXXALIAS_SYS_CAST (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # endif _GL_CXXALIASWARN (connect); #elif @HAVE_WINSOCK2_H@ # undef connect # define connect socket_used_without_requesting_gnulib_module_connect #elif defined GNULIB_POSIXCHECK # undef connect # if HAVE_RAW_DECL_CONNECT _GL_WARN_ON_USE (connect, "connect is not always POSIX compliant - " "use gnulib module connect for portability"); # endif #endif #if @GNULIB_ACCEPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef accept # define accept rpl_accept # endif _GL_FUNCDECL_RPL (accept, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen)); _GL_CXXALIAS_RPL (accept, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (accept, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen)); # endif _GL_CXXALIASWARN (accept); #elif @HAVE_WINSOCK2_H@ # undef accept # define accept accept_used_without_requesting_gnulib_module_accept #elif defined GNULIB_POSIXCHECK # undef accept # if HAVE_RAW_DECL_ACCEPT _GL_WARN_ON_USE (accept, "accept is not always POSIX compliant - " "use gnulib module accept for portability"); # endif #endif #if @GNULIB_BIND@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef bind # define bind rpl_bind # endif _GL_FUNCDECL_RPL (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # else /* Need to cast, because on NonStop Kernel, the third parameter is size_t addrlen. */ _GL_CXXALIAS_SYS_CAST (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # endif _GL_CXXALIASWARN (bind); #elif @HAVE_WINSOCK2_H@ # undef bind # define bind bind_used_without_requesting_gnulib_module_bind #elif defined GNULIB_POSIXCHECK # undef bind # if HAVE_RAW_DECL_BIND _GL_WARN_ON_USE (bind, "bind is not always POSIX compliant - " "use gnulib module bind for portability"); # endif #endif #if @GNULIB_GETPEERNAME@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpeername # define getpeername rpl_getpeername # endif _GL_FUNCDECL_RPL (getpeername, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (getpeername, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (getpeername, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen)); # endif _GL_CXXALIASWARN (getpeername); #elif @HAVE_WINSOCK2_H@ # undef getpeername # define getpeername getpeername_used_without_requesting_gnulib_module_getpeername #elif defined GNULIB_POSIXCHECK # undef getpeername # if HAVE_RAW_DECL_GETPEERNAME _GL_WARN_ON_USE (getpeername, "getpeername is not always POSIX compliant - " "use gnulib module getpeername for portability"); # endif #endif #if @GNULIB_GETSOCKNAME@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getsockname # define getsockname rpl_getsockname # endif _GL_FUNCDECL_RPL (getsockname, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (getsockname, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (getsockname, int, (int fd, struct sockaddr *restrict addr, socklen_t *restrict addrlen)); # endif _GL_CXXALIASWARN (getsockname); #elif @HAVE_WINSOCK2_H@ # undef getsockname # define getsockname getsockname_used_without_requesting_gnulib_module_getsockname #elif defined GNULIB_POSIXCHECK # undef getsockname # if HAVE_RAW_DECL_GETSOCKNAME _GL_WARN_ON_USE (getsockname, "getsockname is not always POSIX compliant - " "use gnulib module getsockname for portability"); # endif #endif #if @GNULIB_GETSOCKOPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getsockopt # define getsockopt rpl_getsockopt # endif _GL_FUNCDECL_RPL (getsockopt, int, (int fd, int level, int optname, void *restrict optval, socklen_t *restrict optlen) _GL_ARG_NONNULL ((4, 5))); _GL_CXXALIAS_RPL (getsockopt, int, (int fd, int level, int optname, void *restrict optval, socklen_t *restrict optlen)); # else /* Need to cast, because on Solaris 10 systems, the fifth parameter is void *optlen. */ _GL_CXXALIAS_SYS_CAST (getsockopt, int, (int fd, int level, int optname, void *restrict optval, socklen_t *restrict optlen)); # endif _GL_CXXALIASWARN (getsockopt); #elif @HAVE_WINSOCK2_H@ # undef getsockopt # define getsockopt getsockopt_used_without_requesting_gnulib_module_getsockopt #elif defined GNULIB_POSIXCHECK # undef getsockopt # if HAVE_RAW_DECL_GETSOCKOPT _GL_WARN_ON_USE (getsockopt, "getsockopt is not always POSIX compliant - " "use gnulib module getsockopt for portability"); # endif #endif #if @GNULIB_LISTEN@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef listen # define listen rpl_listen # endif _GL_FUNCDECL_RPL (listen, int, (int fd, int backlog)); _GL_CXXALIAS_RPL (listen, int, (int fd, int backlog)); # else _GL_CXXALIAS_SYS (listen, int, (int fd, int backlog)); # endif _GL_CXXALIASWARN (listen); #elif @HAVE_WINSOCK2_H@ # undef listen # define listen listen_used_without_requesting_gnulib_module_listen #elif defined GNULIB_POSIXCHECK # undef listen # if HAVE_RAW_DECL_LISTEN _GL_WARN_ON_USE (listen, "listen is not always POSIX compliant - " "use gnulib module listen for portability"); # endif #endif #if @GNULIB_RECV@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef recv # define recv rpl_recv # endif _GL_FUNCDECL_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); # else /* Need to cast, because on HP-UX 11.31 the return type may be int, depending on compiler options. */ _GL_CXXALIAS_SYS_CAST (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); # endif _GL_CXXALIASWARN (recv); #elif @HAVE_WINSOCK2_H@ # undef recv # define recv recv_used_without_requesting_gnulib_module_recv #elif defined GNULIB_POSIXCHECK # undef recv # if HAVE_RAW_DECL_RECV _GL_WARN_ON_USE (recv, "recv is not always POSIX compliant - " "use gnulib module recv for portability"); # endif #endif #if @GNULIB_SEND@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef send # define send rpl_send # endif _GL_FUNCDECL_RPL (send, ssize_t, (int fd, const void *buf, size_t len, int flags) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (send, ssize_t, (int fd, const void *buf, size_t len, int flags)); # else /* Need to cast, because on HP-UX 11.31 the return type may be int, depending on compiler options. */ _GL_CXXALIAS_SYS_CAST (send, ssize_t, (int fd, const void *buf, size_t len, int flags)); # endif _GL_CXXALIASWARN (send); #elif @HAVE_WINSOCK2_H@ # undef send # define send send_used_without_requesting_gnulib_module_send #elif defined GNULIB_POSIXCHECK # undef send # if HAVE_RAW_DECL_SEND _GL_WARN_ON_USE (send, "send is not always POSIX compliant - " "use gnulib module send for portability"); # endif #endif #if @GNULIB_RECVFROM@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef recvfrom # define recvfrom rpl_recvfrom # endif _GL_FUNCDECL_RPL (recvfrom, ssize_t, (int fd, void *restrict buf, size_t len, int flags, struct sockaddr *restrict from, socklen_t *restrict fromlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (recvfrom, ssize_t, (int fd, void *restrict buf, size_t len, int flags, struct sockaddr *restrict from, socklen_t *restrict fromlen)); # else /* Need to cast, because on Solaris 10 systems, the sixth parameter is void *fromlen. */ _GL_CXXALIAS_SYS_CAST (recvfrom, ssize_t, (int fd, void *restrict buf, size_t len, int flags, struct sockaddr *restrict from, socklen_t *restrict fromlen)); # endif _GL_CXXALIASWARN (recvfrom); #elif @HAVE_WINSOCK2_H@ # undef recvfrom # define recvfrom recvfrom_used_without_requesting_gnulib_module_recvfrom #elif defined GNULIB_POSIXCHECK # undef recvfrom # if HAVE_RAW_DECL_RECVFROM _GL_WARN_ON_USE (recvfrom, "recvfrom is not always POSIX compliant - " "use gnulib module recvfrom for portability"); # endif #endif #if @GNULIB_SENDTO@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sendto # define sendto rpl_sendto # endif _GL_FUNCDECL_RPL (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)); # else /* Need to cast, because on NonStop Kernel, the sixth parameter is size_t tolen. */ _GL_CXXALIAS_SYS_CAST (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)); # endif _GL_CXXALIASWARN (sendto); #elif @HAVE_WINSOCK2_H@ # undef sendto # define sendto sendto_used_without_requesting_gnulib_module_sendto #elif defined GNULIB_POSIXCHECK # undef sendto # if HAVE_RAW_DECL_SENDTO _GL_WARN_ON_USE (sendto, "sendto is not always POSIX compliant - " "use gnulib module sendto for portability"); # endif #endif #if @GNULIB_SETSOCKOPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setsockopt # define setsockopt rpl_setsockopt # endif _GL_FUNCDECL_RPL (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen)); # else /* Need to cast, because on NonStop Kernel, the fifth parameter is size_t optlen. */ _GL_CXXALIAS_SYS_CAST (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen)); # endif _GL_CXXALIASWARN (setsockopt); #elif @HAVE_WINSOCK2_H@ # undef setsockopt # define setsockopt setsockopt_used_without_requesting_gnulib_module_setsockopt #elif defined GNULIB_POSIXCHECK # undef setsockopt # if HAVE_RAW_DECL_SETSOCKOPT _GL_WARN_ON_USE (setsockopt, "setsockopt is not always POSIX compliant - " "use gnulib module setsockopt for portability"); # endif #endif #if @GNULIB_SHUTDOWN@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef shutdown # define shutdown rpl_shutdown # endif _GL_FUNCDECL_RPL (shutdown, int, (int fd, int how)); _GL_CXXALIAS_RPL (shutdown, int, (int fd, int how)); # else _GL_CXXALIAS_SYS (shutdown, int, (int fd, int how)); # endif _GL_CXXALIASWARN (shutdown); #elif @HAVE_WINSOCK2_H@ # undef shutdown # define shutdown shutdown_used_without_requesting_gnulib_module_shutdown #elif defined GNULIB_POSIXCHECK # undef shutdown # if HAVE_RAW_DECL_SHUTDOWN _GL_WARN_ON_USE (shutdown, "shutdown is not always POSIX compliant - " "use gnulib module shutdown for portability"); # endif #endif #if @GNULIB_ACCEPT4@ /* Accept a connection on a socket, with specific opening flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). See also the Linux man page at <https://www.kernel.org/doc/man-pages/online/pages/man2/accept4.2.html>. */ # if @HAVE_ACCEPT4@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define accept4 rpl_accept4 # endif _GL_FUNCDECL_RPL (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); _GL_CXXALIAS_RPL (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); # else _GL_FUNCDECL_SYS (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); _GL_CXXALIAS_SYS (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); # endif _GL_CXXALIASWARN (accept4); #elif defined GNULIB_POSIXCHECK # undef accept4 # if HAVE_RAW_DECL_ACCEPT4 _GL_WARN_ON_USE (accept4, "accept4 is unportable - " "use gnulib module accept4 for portability"); # endif #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */ #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */ #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/sys_stat.in.h�����������������������������������������������������������������������0000644�0000000�0000000�00000064667�14374751113�012570� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide a more complete sys/stat.h header file. Copyright (C) 2005-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ /* This file is supposed to be used on platforms where <sys/stat.h> is incomplete. It is intended to provide definitions and prototypes needed by an application. Start with what the system provides. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_sys_stat_h /* Special invocation convention. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_STAT_H /* Get nlink_t. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* Get struct timespec. */ #include <time.h> /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #ifndef _@GUARD_PREFIX@_SYS_STAT_H #define _@GUARD_PREFIX@_SYS_STAT_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Before doing "#define mknod rpl_mknod" below, we need to include all headers that may declare mknod(). OS/2 kLIBC declares mknod() in <unistd.h>, not in <sys/stat.h>. */ #ifdef __KLIBC__ # include <unistd.h> #endif /* Before doing "#define mkdir rpl_mkdir" below, we need to include all headers that may declare mkdir(). Native Windows platforms declare mkdir in <io.h> and/or <direct.h>, not in <sys/stat.h>. */ #if defined _WIN32 && ! defined __CYGWIN__ # include <io.h> /* mingw32, mingw64 */ # include <direct.h> /* mingw64, MSVC 9 */ #endif /* Native Windows platforms declare umask() in <io.h>. */ #if 0 && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif /* Large File Support on native Windows. */ #if @WINDOWS_64_BIT_ST_SIZE@ # define stat _stati64 #endif /* Optionally, override 'struct stat' on native Windows. */ #if @GNULIB_OVERRIDES_STRUCT_STAT@ # undef stat # if @GNULIB_STAT@ # define stat rpl_stat # else /* Provoke a clear link error if stat() is used as a function and module 'stat' is not in use. */ # define stat stat_used_without_requesting_gnulib_module_stat # endif # if !GNULIB_defined_struct_stat struct stat { dev_t st_dev; ino_t st_ino; mode_t st_mode; nlink_t st_nlink; # if 0 uid_t st_uid; # else /* uid_t is not defined by default on native Windows. */ short st_uid; # endif # if 0 gid_t st_gid; # else /* gid_t is not defined by default on native Windows. */ short st_gid; # endif dev_t st_rdev; off_t st_size; # if 0 blksize_t st_blksize; blkcnt_t st_blocks; # endif # if @WINDOWS_STAT_TIMESPEC@ struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # else time_t st_atime; time_t st_mtime; time_t st_ctime; # endif }; # if @WINDOWS_STAT_TIMESPEC@ # define st_atime st_atim.tv_sec # define st_mtime st_mtim.tv_sec # define st_ctime st_ctim.tv_sec /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_STAT_TIMESPEC 1 # endif # define GNULIB_defined_struct_stat 1 # endif /* Other possible values of st_mode. */ # if 0 # define _S_IFBLK 0x6000 # endif # if 0 # define _S_IFLNK 0xA000 # endif # if 0 # define _S_IFSOCK 0xC000 # endif #endif #ifndef S_IFIFO # ifdef _S_IFIFO # define S_IFIFO _S_IFIFO # endif #endif #ifndef S_IFMT # define S_IFMT 0170000 #endif #if STAT_MACROS_BROKEN # undef S_ISBLK # undef S_ISCHR # undef S_ISDIR # undef S_ISFIFO # undef S_ISLNK # undef S_ISNAM # undef S_ISMPB # undef S_ISMPC # undef S_ISNWK # undef S_ISREG # undef S_ISSOCK #endif #ifndef S_ISBLK # ifdef S_IFBLK # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) # else # define S_ISBLK(m) 0 # endif #endif #ifndef S_ISCHR # ifdef S_IFCHR # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) # else # define S_ISCHR(m) 0 # endif #endif #ifndef S_ISDIR # ifdef S_IFDIR # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) # else # define S_ISDIR(m) 0 # endif #endif #ifndef S_ISDOOR /* Solaris 2.5 and up */ # define S_ISDOOR(m) 0 #endif #ifndef S_ISFIFO # ifdef S_IFIFO # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) # else # define S_ISFIFO(m) 0 # endif #endif #ifndef S_ISLNK # ifdef S_IFLNK # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) # else # define S_ISLNK(m) 0 # endif #endif #ifndef S_ISMPB /* V7 */ # ifdef S_IFMPB # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) # else # define S_ISMPB(m) 0 # define S_ISMPC(m) 0 # endif #endif #ifndef S_ISMPX /* AIX */ # define S_ISMPX(m) 0 #endif #ifndef S_ISNAM /* Xenix */ # ifdef S_IFNAM # define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) # else # define S_ISNAM(m) 0 # endif #endif #ifndef S_ISNWK /* HP/UX */ # ifdef S_IFNWK # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) # else # define S_ISNWK(m) 0 # endif #endif #ifndef S_ISPORT /* Solaris 10 and up */ # define S_ISPORT(m) 0 #endif #ifndef S_ISREG # ifdef S_IFREG # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) # else # define S_ISREG(m) 0 # endif #endif #ifndef S_ISSOCK # ifdef S_IFSOCK # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) # else # define S_ISSOCK(m) 0 # endif #endif #ifndef S_TYPEISMQ # define S_TYPEISMQ(p) 0 #endif #ifndef S_TYPEISTMO # define S_TYPEISTMO(p) 0 #endif #ifndef S_TYPEISSEM # ifdef S_INSEM # define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) # else # define S_TYPEISSEM(p) 0 # endif #endif #ifndef S_TYPEISSHM # ifdef S_INSHD # define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) # else # define S_TYPEISSHM(p) 0 # endif #endif /* high performance ("contiguous data") */ #ifndef S_ISCTG # define S_ISCTG(p) 0 #endif /* Cray DMF (data migration facility): off line, with data */ #ifndef S_ISOFD # define S_ISOFD(p) 0 #endif /* Cray DMF (data migration facility): off line, with no data */ #ifndef S_ISOFL # define S_ISOFL(p) 0 #endif /* 4.4BSD whiteout */ #ifndef S_ISWHT # define S_ISWHT(m) 0 #endif /* If any of the following are undefined, define them to their de facto standard values. */ #if !S_ISUID # define S_ISUID 04000 #endif #if !S_ISGID # define S_ISGID 02000 #endif /* S_ISVTX is a common extension to POSIX. */ #ifndef S_ISVTX # define S_ISVTX 01000 #endif #if !S_IRUSR && S_IREAD # define S_IRUSR S_IREAD #endif #if !S_IRUSR # define S_IRUSR 00400 #endif #if !S_IRGRP # define S_IRGRP (S_IRUSR >> 3) #endif #if !S_IROTH # define S_IROTH (S_IRUSR >> 6) #endif #if !S_IWUSR && S_IWRITE # define S_IWUSR S_IWRITE #endif #if !S_IWUSR # define S_IWUSR 00200 #endif #if !S_IWGRP # define S_IWGRP (S_IWUSR >> 3) #endif #if !S_IWOTH # define S_IWOTH (S_IWUSR >> 6) #endif #if !S_IXUSR && S_IEXEC # define S_IXUSR S_IEXEC #endif #if !S_IXUSR # define S_IXUSR 00100 #endif #if !S_IXGRP # define S_IXGRP (S_IXUSR >> 3) #endif #if !S_IXOTH # define S_IXOTH (S_IXUSR >> 6) #endif #if !S_IRWXU # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) #endif #if !S_IRWXG # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) #endif #if !S_IRWXO # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) #endif /* Although S_IXUGO and S_IRWXUGO are not specified by POSIX and are not implemented in GNU/Linux, some Gnulib-using apps use the macros. */ #if !S_IXUGO # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) #endif #ifndef S_IRWXUGO # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) #endif /* Macros for futimens and utimensat. */ #ifndef UTIME_NOW # define UTIME_NOW (-1) # define UTIME_OMIT (-2) #endif #if @GNULIB_CHMOD@ # if @REPLACE_CHMOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chmod # define chmod rpl_chmod # endif _GL_FUNCDECL_RPL (chmod, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (chmod, int, (const char *filename, mode_t mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chmod # define chmod _chmod # endif /* Need to cast, because in mingw the last argument is 'int mode'. */ _GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); # else _GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); # endif _GL_CXXALIASWARN (chmod); #elif defined GNULIB_POSIXCHECK # undef chmod # if HAVE_RAW_DECL_CHMOD _GL_WARN_ON_USE (chmod, "chmod has portability problems - " "use gnulib module chmod for portability"); # endif #elif @GNULIB_MDA_CHMOD@ /* On native Windows, map 'chmod' to '_chmod', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::chmod always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chmod # define chmod _chmod # endif /* Need to cast, because in mingw the last argument is 'int mode'. */ _GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); # else _GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); # endif _GL_CXXALIASWARN (chmod); #endif #if @GNULIB_FCHMODAT@ # if @REPLACE_FCHMODAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchmodat # define fchmodat rpl_fchmodat # endif _GL_FUNCDECL_RPL (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); # else # if !@HAVE_FCHMODAT@ _GL_FUNCDECL_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); # endif _GL_CXXALIASWARN (fchmodat); #elif defined GNULIB_POSIXCHECK # undef fchmodat # if HAVE_RAW_DECL_FCHMODAT _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FSTAT@ # if @REPLACE_FSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstat # define fstat rpl_fstat # endif _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); # else _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fstat); # endif #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef fstat # define fstat fstat_used_without_requesting_gnulib_module_fstat #elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # define fstat _fstati64 #elif defined GNULIB_POSIXCHECK # undef fstat # if HAVE_RAW_DECL_FSTAT _GL_WARN_ON_USE (fstat, "fstat has portability problems - " "use gnulib module fstat for portability"); # endif #endif #if @GNULIB_FSTATAT@ # if @REPLACE_FSTATAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstatat # define fstatat rpl_fstatat # endif _GL_FUNCDECL_RPL (fstatat, int, (int fd, char const *restrict name, struct stat *restrict st, int flags) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (fstatat, int, (int fd, char const *restrict name, struct stat *restrict st, int flags)); # else # if !@HAVE_FSTATAT@ _GL_FUNCDECL_SYS (fstatat, int, (int fd, char const *restrict name, struct stat *restrict st, int flags) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (fstatat, int, (int fd, char const *restrict name, struct stat *restrict st, int flags)); # endif _GL_CXXALIASWARN (fstatat); #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef fstatat # define fstatat fstatat_used_without_requesting_gnulib_module_fstatat #elif defined GNULIB_POSIXCHECK # undef fstatat # if HAVE_RAW_DECL_FSTATAT _GL_WARN_ON_USE (fstatat, "fstatat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FUTIMENS@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens implementation relies on futimesat, which on Solaris 10 makes an invocation to futimens that is meant to invoke the libc's futimens(), not gnulib's futimens(). */ # if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef futimens # define futimens rpl_futimens # endif _GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); _GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); # else # if !@HAVE_FUTIMENS@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif # if __GLIBC__ >= 2 && @HAVE_FUTIMENS@ _GL_CXXALIASWARN (futimens); # endif #elif defined GNULIB_POSIXCHECK # undef futimens # if HAVE_RAW_DECL_FUTIMENS _GL_WARN_ON_USE (futimens, "futimens is not portable - " "use gnulib module futimens for portability"); # endif #endif #if @GNULIB_GETUMASK@ # if !@HAVE_GETUMASK@ _GL_FUNCDECL_SYS (getumask, mode_t, (void)); # endif _GL_CXXALIAS_SYS (getumask, mode_t, (void)); # if @HAVE_GETUMASK@ _GL_CXXALIASWARN (getumask); # endif #elif defined GNULIB_POSIXCHECK # undef getumask # if HAVE_RAW_DECL_GETUMASK _GL_WARN_ON_USE (getumask, "getumask is not portable - " "use gnulib module getumask for portability"); # endif #endif #if @GNULIB_LCHMOD@ /* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME denotes a symbolic link. */ # if !@HAVE_LCHMOD@ || defined __hpux _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); _GL_CXXALIASWARN (lchmod); #elif defined GNULIB_POSIXCHECK # undef lchmod # if HAVE_RAW_DECL_LCHMOD _GL_WARN_ON_USE (lchmod, "lchmod is unportable - " "use gnulib module lchmod for portability"); # endif #endif #if @GNULIB_MKDIR@ # if @REPLACE_MKDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # elif defined _WIN32 && !defined __CYGWIN__ /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes <direct.h> and <io.h>, which are included above. */ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } # define GNULIB_defined_rpl_mkdir 1 # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # else _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); # endif _GL_CXXALIASWARN (mkdir); #elif defined GNULIB_POSIXCHECK # undef mkdir # if HAVE_RAW_DECL_MKDIR _GL_WARN_ON_USE (mkdir, "mkdir does not always support two parameters - " "use gnulib module mkdir for portability"); # endif #elif @GNULIB_MDA_MKDIR@ /* On native Windows, map 'mkdir' to '_mkdir', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::mkdir always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } # define GNULIB_defined_rpl_mkdir 1 # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # else _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); # endif _GL_CXXALIASWARN (mkdir); #endif #if @GNULIB_MKDIRAT@ # if !@HAVE_MKDIRAT@ _GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkdirat); #elif defined GNULIB_POSIXCHECK # undef mkdirat # if HAVE_RAW_DECL_MKDIRAT _GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_MKFIFO@ # if @REPLACE_MKFIFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkfifo # define mkfifo rpl_mkfifo # endif _GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); # else # if !@HAVE_MKFIFO@ _GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); # endif _GL_CXXALIASWARN (mkfifo); #elif defined GNULIB_POSIXCHECK # undef mkfifo # if HAVE_RAW_DECL_MKFIFO _GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " "use gnulib module mkfifo for portability"); # endif #endif #if @GNULIB_MKFIFOAT@ # if @REPLACE_MKFIFOAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkfifoat # define mkfifoat rpl_mkfifoat # endif _GL_FUNCDECL_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode)); # else # if !@HAVE_MKFIFOAT@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mkfifoat); # endif #elif defined GNULIB_POSIXCHECK # undef mkfifoat # if HAVE_RAW_DECL_MKFIFOAT _GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_MKNOD@ # if @REPLACE_MKNOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mknod # define mknod rpl_mknod # endif _GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); # else # if !@HAVE_MKNOD@ _GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ _GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); # endif _GL_CXXALIASWARN (mknod); #elif defined GNULIB_POSIXCHECK # undef mknod # if HAVE_RAW_DECL_MKNOD _GL_WARN_ON_USE (mknod, "mknod is not portable - " "use gnulib module mknod for portability"); # endif #endif #if @GNULIB_MKNODAT@ # if @REPLACE_MKNODAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mknodat # define mknodat rpl_mknodat # endif _GL_FUNCDECL_RPL (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev)); # else # if !@HAVE_MKNODAT@ _GL_FUNCDECL_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mknodat); # endif #elif defined GNULIB_POSIXCHECK # undef mknodat # if HAVE_RAW_DECL_MKNODAT _GL_WARN_ON_USE (mknodat, "mknodat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_STAT@ # if @REPLACE_STAT@ # if !@GNULIB_OVERRIDES_STRUCT_STAT@ /* We can't use the object-like #define stat rpl_stat, because of struct stat. This means that rpl_stat will not be used if the user does (stat)(a,b). Oh well. */ # if defined _AIX && defined stat && defined _LARGE_FILES /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, so we have to replace stat64() instead of stat(). */ # undef stat64 # define stat64(name, st) rpl_stat (name, st) # elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # if defined __MINGW32__ && defined _stati64 # ifndef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined _stati64 # ifdef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # else # undef _stati64 # define _stati64(name, st) rpl_stat (name, st) # endif # elif defined __MINGW32__ && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32. */ # undef _stat32 # define _stat32(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64i32. */ # undef _stat64i32 # define _stat64i32(name, st) rpl_stat (name, st) # endif # else /* !(_AIX || __MINGW32__ || _MSC_VER) */ # undef stat # define stat(name, st) rpl_stat (name, st) # endif /* !_LARGE_FILES */ # endif /* !@GNULIB_OVERRIDES_STRUCT_STAT@ */ _GL_EXTERN_C int stat (const char *restrict name, struct stat *restrict buf) _GL_ARG_NONNULL ((1, 2)); # endif #elif @GNULIB_OVERRIDES_STRUCT_STAT@ /* see above: #define stat stat_used_without_requesting_gnulib_module_stat */ #elif defined GNULIB_POSIXCHECK # undef stat # if HAVE_RAW_DECL_STAT _GL_WARN_ON_USE (stat, "stat is unportable - " "use gnulib module stat for portability"); # endif #endif #if @GNULIB_LSTAT@ # if ! @HAVE_LSTAT@ /* mingw does not support symlinks, therefore it does not have lstat. But without links, stat does just fine. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lstat stat # endif _GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *restrict name, struct stat *restrict buf)); # elif @REPLACE_LSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lstat # define lstat rpl_lstat # endif _GL_FUNCDECL_RPL (lstat, int, (const char *restrict name, struct stat *restrict buf) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (lstat, int, (const char *restrict name, struct stat *restrict buf)); # else _GL_CXXALIAS_SYS (lstat, int, (const char *restrict name, struct stat *restrict buf)); # endif # if @HAVE_LSTAT@ _GL_CXXALIASWARN (lstat); # endif #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef lstat # define lstat lstat_used_without_requesting_gnulib_module_lstat #elif defined GNULIB_POSIXCHECK # undef lstat # if HAVE_RAW_DECL_LSTAT _GL_WARN_ON_USE (lstat, "lstat is unportable - " "use gnulib module lstat for portability"); # endif #endif #if @GNULIB_MDA_UMASK@ /* On native Windows, map 'umask' to '_umask', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::umask always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef umask # define umask _umask # endif /* Need to cast, because in mingw the last argument is 'int mode'. */ _GL_CXXALIAS_MDA_CAST (umask, mode_t, (mode_t mask)); # else _GL_CXXALIAS_SYS (umask, mode_t, (mode_t mask)); # endif _GL_CXXALIASWARN (umask); #endif #if @GNULIB_UTIMENSAT@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat implementation relies on futimesat, which on Solaris 10 makes an invocation to utimensat that is meant to invoke the libc's utimensat(), not gnulib's utimensat(). */ # if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef utimensat # define utimensat rpl_utimensat # endif _GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # else # if !@HAVE_UTIMENSAT@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # endif # if __GLIBC__ >= 2 && @HAVE_UTIMENSAT@ _GL_CXXALIASWARN (utimensat); # endif #elif defined GNULIB_POSIXCHECK # undef utimensat # if HAVE_RAW_DECL_UTIMENSAT _GL_WARN_ON_USE (utimensat, "utimensat is not portable - " "use gnulib module utimensat for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif �������������������������������������������������������������������������a2ps-4.15.5/lib/sys_types.in.h����������������������������������������������������������������������0000644�0000000�0000000�00000006171�14374751113�012743� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide a more complete sys/types.h. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _WIN32 && !defined __CYGWIN__ \ && (defined __need_off_t || defined __need___off64_t \ || defined __need_ssize_t || defined __need_time_t) /* Special invocation convention inside mingw header files. */ #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ # define _GL_INCLUDING_SYS_TYPES_H #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ # undef _GL_INCLUDING_SYS_TYPES_H #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H /* Override off_t if Large File Support is requested on native Windows. */ #if @WINDOWS_64_BIT_OFF_T@ /* Same as int64_t in <stdint.h>. */ # if defined _MSC_VER # define off_t __int64 # else # define off_t long long int # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif /* Override dev_t and ino_t if distinguishable inodes support is requested on native Windows. */ #if @WINDOWS_STAT_INODES@ # if @WINDOWS_STAT_INODES@ == 2 /* Experimental, not useful in Windows 10. */ /* Define dev_t to a 64-bit type. */ # if !defined GNULIB_defined_dev_t typedef unsigned long long int rpl_dev_t; # undef dev_t # define dev_t rpl_dev_t # define GNULIB_defined_dev_t 1 # endif /* Define ino_t to a 128-bit type. */ # if !defined GNULIB_defined_ino_t /* MSVC does not have a 128-bit integer type. GCC has a 128-bit integer type __int128, but only on 64-bit targets. */ typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t; # undef ino_t # define ino_t rpl_ino_t # define GNULIB_defined_ino_t 1 # endif # else /* @WINDOWS_STAT_INODES@ == 1 */ /* Define ino_t to a 64-bit type. */ # if !defined GNULIB_defined_ino_t typedef unsigned long long int rpl_ino_t; # undef ino_t # define ino_t rpl_ino_t # define GNULIB_defined_ino_t 1 # endif # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@ #endif /* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ # include <stddef.h> #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* __need_XXX */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/sys_uio.in.h������������������������������������������������������������������������0000644�0000000�0000000�00000003236�14374751113�012372� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Substitute for <sys/uio.h>. Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ # if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ # endif @PRAGMA_COLUMNS@ #ifndef _@GUARD_PREFIX@_SYS_UIO_H #if @HAVE_SYS_UIO_H@ /* On OpenBSD 4.4, <sys/uio.h> assumes prior inclusion of <sys/types.h>. */ # include <sys/types.h> /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_UIO_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_UIO_H #define _@GUARD_PREFIX@_SYS_UIO_H #if !@HAVE_SYS_UIO_H@ /* A platform that lacks <sys/uio.h>. */ /* Get 'size_t' and 'ssize_t'. */ # include <sys/types.h> # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_iovec /* All known platforms that lack <sys/uio.h> also lack any declaration of struct iovec in any other header. */ struct iovec { void *iov_base; size_t iov_len; }; # define GNULIB_defined_struct_iovec 1 # endif # ifdef __cplusplus } # endif #endif #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/time.in.h���������������������������������������������������������������������������0000644�0000000�0000000�00000041717�14374751113�011644� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A more-standard <time.h>. Copyright (C) 2007-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Don't get in the way of glibc when it includes time.h merely to declare a few standard symbols, rather than to declare all the symbols. (However, skip this for MinGW as it treats __need_time_t incompatibly.) Also, Solaris 8 <time.h> eventually includes itself recursively; if that is happening, just include the system <time.h> without adding our own declarations. */ #if (((defined __need_time_t || defined __need_clock_t \ || defined __need_timespec) \ && !defined __MINGW32__) \ || defined _@GUARD_PREFIX@_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else # define _@GUARD_PREFIX@_TIME_H /* mingw's <time.h> provides the functions asctime_r, ctime_r, gmtime_r, localtime_r only if <unistd.h> or <pthread.h> has been included before. */ # if defined __MINGW32__ # include <unistd.h> # endif # @INCLUDE_NEXT@ @NEXT_TIME_H@ /* NetBSD 5.0 mis-defines NULL. */ # include <stddef.h> /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems don't define struct timespec (e.g., AIX 4.1). Or they define it with the wrong member names or define it in <sys/time.h> (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, but the pthreads-win32 library defines it in <pthread.h>. */ # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ # if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ # include <sys/time.h> # elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ # include <pthread.h> # elif @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ # include <unistd.h> # else # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_timespec # undef timespec # define timespec rpl_timespec struct timespec { time_t tv_sec; long int tv_nsec; }; # define GNULIB_defined_struct_timespec 1 # endif # ifdef __cplusplus } # endif # endif # endif # if !GNULIB_defined_struct_time_t_must_be_integral /* https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html requires time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating point, and it is much easier to write code that doesn't have to worry about that corner case, so we force the issue. */ struct __time_t_must_be_integral { unsigned int __floating_time_t_unsupported : (time_t) 1; }; # define GNULIB_defined_struct_time_t_must_be_integral 1 # endif /* Define TIME_UTC, a positive integer constant used for timespec_get(). */ # if ! @TIME_H_DEFINES_TIME_UTC@ # if !GNULIB_defined_TIME_UTC # define TIME_UTC 1 # define GNULIB_defined_TIME_UTC 1 # endif # endif /* Set *TS to the current time, and return BASE. Upon failure, return 0. */ # if @GNULIB_TIMESPEC_GET@ # if @REPLACE_TIMESPEC_GET@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef timespec_get # define timespec_get rpl_timespec_get # endif _GL_FUNCDECL_RPL (timespec_get, int, (struct timespec *ts, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (timespec_get, int, (struct timespec *ts, int base)); # else # if !@HAVE_TIMESPEC_GET@ _GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (timespec_get); # endif # endif /* Set *TS to the current time resolution, and return BASE. Upon failure, return 0. */ # if @GNULIB_TIMESPEC_GETRES@ # if ! @HAVE_TIMESPEC_GETRES@ _GL_FUNCDECL_SYS (timespec_getres, int, (struct timespec *ts, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timespec_getres, int, (struct timespec *ts, int base)); _GL_CXXALIASWARN (timespec_getres); # endif /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/nanosleep.html>. */ # if @GNULIB_NANOSLEEP@ # if @REPLACE_NANOSLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define nanosleep rpl_nanosleep # endif _GL_FUNCDECL_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # else # if ! @HAVE_NANOSLEEP@ _GL_FUNCDECL_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # endif _GL_CXXALIASWARN (nanosleep); # endif /* Initialize time conversion information. */ # if @GNULIB_TZSET@ # if @REPLACE_TZSET@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tzset # define tzset rpl_tzset # endif _GL_FUNCDECL_RPL (tzset, void, (void)); _GL_CXXALIAS_RPL (tzset, void, (void)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tzset # define tzset _tzset # endif _GL_CXXALIAS_MDA (tzset, void, (void)); # else _GL_CXXALIAS_SYS (tzset, void, (void)); # endif _GL_CXXALIASWARN (tzset); # elif @GNULIB_MDA_TZSET@ /* On native Windows, map 'tzset' to '_tzset', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::tzset always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tzset # define tzset _tzset # endif _GL_CXXALIAS_MDA (tzset, void, (void)); # else _GL_CXXALIAS_SYS (tzset, void, (void)); # endif _GL_CXXALIASWARN (tzset); # endif /* Return the 'time_t' representation of TP and normalize TP. */ # if @GNULIB_MKTIME@ # if @REPLACE_MKTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mktime rpl_mktime # endif _GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); # else _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mktime); # endif # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/localtime_r.html> and <https://pubs.opengroup.org/onlinepubs/9699919799/functions/gmtime_r.html>. */ # if @GNULIB_TIME_R@ # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime_r # define localtime_r rpl_localtime_r # endif _GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (localtime_r); # endif # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime_r # define gmtime_r rpl_gmtime_r # endif _GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (gmtime_r); # endif # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/localtime.html> and <https://pubs.opengroup.org/onlinepubs/9699919799/functions/gmtime.html>. */ # if @GNULIB_LOCALTIME@ || @REPLACE_LOCALTIME@ # if @REPLACE_LOCALTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime # define localtime rpl_localtime # endif _GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (localtime); # endif # endif # if 0 || @REPLACE_GMTIME@ # if @REPLACE_GMTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime # define gmtime rpl_gmtime # endif _GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer)); # endif _GL_CXXALIASWARN (gmtime); # endif /* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/strptime.html>. */ # if @GNULIB_STRPTIME@ # if ! @HAVE_STRPTIME@ _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm)); _GL_CXXALIASWARN (strptime); # endif /* Convert *TP to a date and time string. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/ctime.html>. */ # if @GNULIB_CTIME@ # if @REPLACE_CTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define ctime rpl_ctime # endif _GL_ATTRIBUTE_DEPRECATED _GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp)); # else _GL_CXXALIAS_SYS (ctime, char *, (time_t const *__tp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (ctime); # endif # endif /* Convert *TP to a date and time string. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/strftime.html>. */ # if @GNULIB_STRFTIME@ # if @REPLACE_STRFTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strftime rpl_strftime # endif _GL_FUNCDECL_RPL (strftime, size_t, (char *restrict __buf, size_t __bufsize, const char *restrict __fmt, const struct tm *restrict __tp) _GL_ARG_NONNULL ((1, 3, 4))); _GL_CXXALIAS_RPL (strftime, size_t, (char *restrict __buf, size_t __bufsize, const char *restrict __fmt, const struct tm *restrict __tp)); # else _GL_CXXALIAS_SYS (strftime, size_t, (char *restrict __buf, size_t __bufsize, const char *restrict __fmt, const struct tm *restrict __tp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strftime); # endif # endif # if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@ /* Functions that use a first-class time zone data type, instead of relying on an implicit global time zone. Inspired by NetBSD. */ /* Represents a time zone. (timezone_t) NULL stands for UTC. */ typedef struct tm_zone *timezone_t; /* tzalloc (name) Returns a time zone object for the given time zone NAME. This object represents the time zone that other functions would use it the TZ environment variable was set to NAME. If NAME is NULL, the result represents the time zone that other functions would use it the TZ environment variable was unset. May return NULL if NAME is invalid (this is platform dependent) or upon memory allocation failure. */ _GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name)); _GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); /* tzfree (tz) Frees a time zone object. The argument must have been returned by tzalloc(). */ _GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz)); _GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); /* localtime_rz (tz, &t, &result) Converts an absolute time T to a broken-down time RESULT, assuming the time zone TZ. This function is like 'localtime_r', but relies on the argument TZ instead of an implicit global time zone. */ _GL_FUNCDECL_SYS (localtime_rz, struct tm *, (timezone_t __tz, time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_SYS (localtime_rz, struct tm *, (timezone_t __tz, time_t const *restrict __timer, struct tm *restrict __result)); /* mktime_z (tz, &tm) Normalizes the broken-down time TM and converts it to an absolute time, assuming the time zone TZ. Returns the absolute time. This function is like 'mktime', but relies on the argument TZ instead of an implicit global time zone. */ _GL_FUNCDECL_SYS (mktime_z, time_t, (timezone_t __tz, struct tm *restrict __tm) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_SYS (mktime_z, time_t, (timezone_t __tz, struct tm *restrict __tm)); /* Time zone abbreviation strings (returned by 'localtime_rz' or 'mktime_z' in the 'tm_zone' member of 'struct tm') are valid as long as - the 'struct tm' argument is not destroyed or overwritten, and - the 'timezone_t' argument is not freed through tzfree(). */ # endif /* Convert TM to a time_t value, assuming UTC. */ # if @GNULIB_TIMEGM@ # if @REPLACE_TIMEGM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef timegm # define timegm rpl_timegm # endif _GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); # else # if ! @HAVE_TIMEGM@ _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (timegm); # endif # endif /* Encourage applications to avoid unsafe functions that can overrun buffers when given outlandish struct tm values. Portable applications should use strftime (or even sprintf) instead. */ # if defined GNULIB_POSIXCHECK # undef asctime _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef asctime_r # if HAVE_RAW_DECL_ASCTIME_R _GL_WARN_ON_USE (asctime_r, "asctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # endif # if defined GNULIB_POSIXCHECK # undef ctime _GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime_r # if HAVE_RAW_DECL_CTIME_R _GL_WARN_ON_USE (ctime_r, "ctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # endif #endif �������������������������������������������������a2ps-4.15.5/lib/unistd--.h��������������������������������������������������������������������������0000644�0000000�0000000�00000001744�14374751113�011735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Like unistd.h, but redefine some names to avoid glitches. Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #include <unistd.h> #include "unistd-safer.h" #undef dup #define dup dup_safer #undef pipe #define pipe pipe_safer #if GNULIB_PIPE2_SAFER # undef pipe2 # define pipe2 pipe2_safer #endif ����������������������������a2ps-4.15.5/lib/unistd-safer.h����������������������������������������������������������������������0000644�0000000�0000000�00000002035�14374751113�012673� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invoke unistd-like functions, but avoid some glitches. Copyright (C) 2001, 2003, 2005, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert and Eric Blake. */ int dup_safer (int); int fd_safer (int); int pipe_safer (int[2]); #if GNULIB_FD_SAFER_FLAG int dup_safer_flag (int, int); int fd_safer_flag (int, int); #endif #if GNULIB_PIPE2_SAFER int pipe2_safer (int[2], int); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/unistd.c����������������������������������������������������������������������������0000644�0000000�0000000�00000001541�14374751113�011571� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Inline functions for <unistd.h>. Copyright (C) 2012-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" typedef int dummy; ���������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/unistd.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000240672�14374751113�012215� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Substitute for and wrapper around <unistd.h>. Copyright (C) 2003-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if @HAVE_UNISTD_H@ && defined _GL_INCLUDING_UNISTD_H /* Special invocation convention: - On Mac OS X 10.3.9 we have a sequence of nested includes <unistd.h> -> <signal.h> -> <pthread.h> -> <unistd.h> In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_UNISTD_H@ #else /* Normal invocation convention. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # define _GL_INCLUDING_UNISTD_H # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ # undef _GL_INCLUDING_UNISTD_H #endif /* Get all possible declarations of gethostname(). */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include <winsock2.h> # undef _GL_INCLUDING_WINSOCK2_H #endif #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ /* But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include <stddef.h> #endif /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */ /* MSVC declares 'unlink' in <stdio.h>, not in <unistd.h>. We must include it before we #define unlink rpl_unlink. */ /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__)) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include <stdio.h> #endif /* Cygwin 1.7.1 and Android 4.3 declare unlinkat in <fcntl.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \ && (defined __CYGWIN__ || defined __ANDROID__) \ && ! defined __GLIBC__ # include <fcntl.h> #endif /* mingw fails to declare _exit in <unistd.h>. */ /* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>. */ /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system <stdlib.h> is included here. */ /* But avoid namespace pollution on glibc systems. */ #if !defined __GLIBC__ && !defined __osf__ # define __need_system_stdlib_h # include <stdlib.h> # undef __need_system_stdlib_h #endif /* Native Windows platforms declare _chdir, _getcwd, _rmdir in <io.h> and/or <direct.h>, not in <unistd.h>. They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(), _lseek(), _read(), _unlink(), _write() in <io.h>. */ #if defined _WIN32 && !defined __CYGWIN__ # include <io.h> # include <direct.h> #endif /* Native Windows platforms declare _execl*, _execv* in <process.h>. */ #if defined _WIN32 && !defined __CYGWIN__ # include <process.h> #endif /* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>. NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ && !defined __GLIBC__ # include <netdb.h> #endif /* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in <sys/random.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_GETENTROPY@ || defined GNULIB_POSIXCHECK) \ && ((defined __APPLE__ && defined __MACH__) || defined __sun \ || defined __ANDROID__) \ && @UNISTD_H_HAVE_SYS_RANDOM_H@ \ && !defined __GLIBC__ # include <sys/random.h> #endif /* Android 4.3 declares fchownat in <sys/stat.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ && !defined __GLIBC__ # include <sys/stat.h> #endif /* MSVC defines off_t in <sys/types.h>. May also define off_t to a 64-bit type on native Windows. */ /* Get off_t, ssize_t, mode_t. */ #include <sys/types.h> /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Get getopt(), optarg, optind, opterr, optopt. */ #if @GNULIB_GETOPT_POSIX@ && @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT # include <getopt-cdefs.h> # include <getopt-pfx-core.h> #endif #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_UNISTD_INLINE # define _GL_UNISTD_INLINE _GL_INLINE #endif /* Hide some function declarations from <winsock2.h>. */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including <sys/socket.h>"); _GL_WARN_ON_USE (connect, "connect() used without including <sys/socket.h>"); _GL_WARN_ON_USE (accept, "accept() used without including <sys/socket.h>"); _GL_WARN_ON_USE (bind, "bind() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getpeername, "getpeername() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getsockname, "getsockname() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including <sys/socket.h>"); _GL_WARN_ON_USE (listen, "listen() used without including <sys/socket.h>"); _GL_WARN_ON_USE (recv, "recv() used without including <sys/socket.h>"); _GL_WARN_ON_USE (send, "send() used without including <sys/socket.h>"); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including <sys/socket.h>"); _GL_WARN_ON_USE (sendto, "sendto() used without including <sys/socket.h>"); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including <sys/socket.h>"); _GL_WARN_ON_USE (shutdown, "shutdown() used without including <sys/socket.h>"); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including <sys/select.h>"); # endif # endif #endif /* OS/2 EMX lacks these macros. */ #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif /* Ensure *_OK macros exist. */ #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif /* Declare overridden functions. */ #if @GNULIB_ACCESS@ # if @REPLACE_ACCESS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access rpl_access # endif _GL_FUNCDECL_RPL (access, int, (const char *file, int mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (access, int, (const char *file, int mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access _access # endif _GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); # else _GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); # endif _GL_CXXALIASWARN (access); #elif defined GNULIB_POSIXCHECK # undef access # if HAVE_RAW_DECL_ACCESS /* The access() function is a security risk. */ _GL_WARN_ON_USE (access, "access does not always support X_OK - " "use gnulib module access for portability; " "also, this function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif @GNULIB_MDA_ACCESS@ /* On native Windows, map 'access' to '_access', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::access always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access _access # endif _GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); # else _GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); # endif _GL_CXXALIASWARN (access); #endif #if @GNULIB_CHDIR@ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chdir # define chdir _chdir # endif _GL_CXXALIAS_MDA (chdir, int, (const char *file)); # else _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir # if HAVE_RAW_DECL_CHDIR _GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - " "use gnulib module chdir for portability"); # endif #elif @GNULIB_MDA_CHDIR@ /* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::chdir always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chdir # define chdir _chdir # endif _GL_CXXALIAS_MDA (chdir, int, (const char *file)); # else _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIASWARN (chdir); #endif #if @GNULIB_CHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html. */ # if @REPLACE_CHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chown # define chown rpl_chown # endif _GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)); # else # if !@HAVE_CHOWN@ _GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)); # endif _GL_CXXALIASWARN (chown); #elif defined GNULIB_POSIXCHECK # undef chown # if HAVE_RAW_DECL_CHOWN _GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and " "doesn't treat a uid or gid of -1 on some systems - " "use gnulib module chown for portability"); # endif #endif #if @GNULIB_CLOSE@ # if @REPLACE_CLOSE@ /* Automatically included by modules that need a replacement for close. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close rpl_close # endif _GL_FUNCDECL_RPL (close, int, (int fd)); _GL_CXXALIAS_RPL (close, int, (int fd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close _close # endif _GL_CXXALIAS_MDA (close, int, (int fd)); # else _GL_CXXALIAS_SYS (close, int, (int fd)); # endif _GL_CXXALIASWARN (close); #elif @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ # undef close # define close close_used_without_requesting_gnulib_module_close #elif defined GNULIB_POSIXCHECK # undef close /* Assume close is always declared. */ _GL_WARN_ON_USE (close, "close does not portably work on sockets - " "use gnulib module close for portability"); #elif @GNULIB_MDA_CLOSE@ /* On native Windows, map 'close' to '_close', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::close always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close _close # endif _GL_CXXALIAS_MDA (close, int, (int fd)); # else _GL_CXXALIAS_SYS (close, int, (int fd)); # endif _GL_CXXALIASWARN (close); #endif #if @GNULIB_COPY_FILE_RANGE@ # if @REPLACE_COPY_FILE_RANGE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef copy_file_range # define copy_file_range rpl_copy_file_range # endif _GL_FUNCDECL_RPL (copy_file_range, ssize_t, (int ifd, off_t *ipos, int ofd, off_t *opos, size_t len, unsigned flags)); _GL_CXXALIAS_RPL (copy_file_range, ssize_t, (int ifd, off_t *ipos, int ofd, off_t *opos, size_t len, unsigned flags)); # else # if !@HAVE_COPY_FILE_RANGE@ _GL_FUNCDECL_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos, int ofd, off_t *opos, size_t len, unsigned flags)); # endif _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos, int ofd, off_t *opos, size_t len, unsigned flags)); # endif _GL_CXXALIASWARN (copy_file_range); #elif defined GNULIB_POSIXCHECK # undef copy_file_range # if HAVE_RAW_DECL_COPY_FILE_RANGE _GL_WARN_ON_USE (copy_file_range, "copy_file_range is unportable - " "use gnulib module copy_file_range for portability"); # endif #endif #if @GNULIB_DUP@ # if @REPLACE_DUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup rpl_dup # endif _GL_FUNCDECL_RPL (dup, int, (int oldfd)); _GL_CXXALIAS_RPL (dup, int, (int oldfd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup # define dup _dup # endif _GL_CXXALIAS_MDA (dup, int, (int oldfd)); # else _GL_CXXALIAS_SYS (dup, int, (int oldfd)); # endif _GL_CXXALIASWARN (dup); #elif defined GNULIB_POSIXCHECK # undef dup # if HAVE_RAW_DECL_DUP _GL_WARN_ON_USE (dup, "dup is unportable - " "use gnulib module dup for portability"); # endif #elif @GNULIB_MDA_DUP@ /* On native Windows, map 'dup' to '_dup', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::dup always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup # define dup _dup # endif _GL_CXXALIAS_MDA (dup, int, (int oldfd)); # else _GL_CXXALIAS_SYS (dup, int, (int oldfd)); # endif _GL_CXXALIASWARN (dup); #endif #if @GNULIB_DUP2@ /* Copy the file descriptor OLDFD into file descriptor NEWFD. Do nothing if NEWFD = OLDFD, otherwise close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>. */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup2 # define dup2 _dup2 # endif _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); # else _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #elif defined GNULIB_POSIXCHECK # undef dup2 # if HAVE_RAW_DECL_DUP2 _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif #elif @GNULIB_MDA_DUP2@ /* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::dup2 always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup2 # define dup2 _dup2 # endif _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); # else _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #endif #if @GNULIB_DUP3@ /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the specified flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at <https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>. */ # if @REPLACE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup3 # define dup3 rpl_dup3 # endif _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); # else # if !@HAVE_DUP3@ _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (dup3); # endif #elif defined GNULIB_POSIXCHECK # undef dup3 # if HAVE_RAW_DECL_DUP3 _GL_WARN_ON_USE (dup3, "dup3 is unportable - " "use gnulib module dup3 for portability"); # endif #endif #if @GNULIB_ENVIRON@ # if defined __CYGWIN__ && !defined __i386__ /* The 'environ' variable is defined in a DLL. Therefore its declaration needs the '__declspec(dllimport)' attribute, but the system's <unistd.h> lacks it. This leads to a link error on 64-bit Cygwin when the option -Wl,--disable-auto-import is in use. */ _GL_EXTERN_C __declspec(dllimport) char **environ; # endif # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ # include <TargetConditionals.h> # if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR # define _GL_USE_CRT_EXTERNS # endif # endif # ifdef _GL_USE_CRT_EXTERNS # include <crt_externs.h> # define environ (*_NSGetEnviron ()) # else # ifdef __cplusplus extern "C" { # endif extern char **environ; # ifdef __cplusplus } # endif # endif # endif #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " "use gnulib module environ for portability") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) # endif #endif #if @GNULIB_EUIDACCESS@ /* Like access(), except that it uses the effective user id and group id of the current process. */ # if !@HAVE_EUIDACCESS@ _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); _GL_CXXALIASWARN (euidaccess); # if defined GNULIB_POSIXCHECK /* Like access(), this function is a security risk. */ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif defined GNULIB_POSIXCHECK # undef euidaccess # if HAVE_RAW_DECL_EUIDACCESS _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " "use gnulib module euidaccess for portability"); # endif #endif #if @GNULIB_EXECL@ # if @REPLACE_EXECL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execl # define execl rpl_execl # endif _GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execl); #elif defined GNULIB_POSIXCHECK # undef execl # if HAVE_RAW_DECL_EXECL _GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - " "use gnulib module execl for portability"); # endif #elif @GNULIB_MDA_EXECL@ /* On native Windows, map 'execl' to '_execl', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execl always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execl # define execl _execl # endif _GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execl); #endif #if @GNULIB_EXECLE@ # if @REPLACE_EXECLE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execle # define execle rpl_execle # endif _GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execle); #elif defined GNULIB_POSIXCHECK # undef execle # if HAVE_RAW_DECL_EXECLE _GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - " "use gnulib module execle for portability"); # endif #elif @GNULIB_MDA_EXECLE@ /* On native Windows, map 'execle' to '_execle', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execle always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execle # define execle _execle # endif _GL_CXXALIAS_MDA (execle, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execle); #endif #if @GNULIB_EXECLP@ # if @REPLACE_EXECLP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execlp # define execlp rpl_execlp # endif _GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execlp); #elif defined GNULIB_POSIXCHECK # undef execlp # if HAVE_RAW_DECL_EXECLP _GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - " "use gnulib module execlp for portability"); # endif #elif @GNULIB_MDA_EXECLP@ /* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execlp always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execlp # define execlp _execlp # endif _GL_CXXALIAS_MDA (execlp, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execlp); #endif #if @GNULIB_EXECV@ # if @REPLACE_EXECV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execv # define execv rpl_execv # endif _GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execv); #elif defined GNULIB_POSIXCHECK # undef execv # if HAVE_RAW_DECL_EXECV _GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - " "use gnulib module execv for portability"); # endif #elif @GNULIB_MDA_EXECV@ /* On native Windows, map 'execv' to '_execv', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execv always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execv # define execv _execv # endif _GL_CXXALIAS_MDA_CAST (execv, intptr_t, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execv); #endif #if @GNULIB_EXECVE@ # if @REPLACE_EXECVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execve # define execve rpl_execve # endif _GL_FUNCDECL_RPL (execve, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execve, int, (const char *program, char * const *argv, char * const *env)); # else _GL_CXXALIAS_SYS (execve, int, (const char *program, char * const *argv, char * const *env)); # endif _GL_CXXALIASWARN (execve); #elif defined GNULIB_POSIXCHECK # undef execve # if HAVE_RAW_DECL_EXECVE _GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - " "use gnulib module execve for portability"); # endif #elif @GNULIB_MDA_EXECVE@ /* On native Windows, map 'execve' to '_execve', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execve always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execve # define execve _execve # endif _GL_CXXALIAS_MDA_CAST (execve, intptr_t, (const char *program, char * const *argv, char * const *env)); # else _GL_CXXALIAS_SYS (execve, int, (const char *program, char * const *argv, char * const *env)); # endif _GL_CXXALIASWARN (execve); #endif #if @GNULIB_EXECVP@ # if @REPLACE_EXECVP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvp # define execvp rpl_execvp # endif _GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execvp); #elif defined GNULIB_POSIXCHECK # undef execvp # if HAVE_RAW_DECL_EXECVP _GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - " "use gnulib module execvp for portability"); # endif #elif @GNULIB_MDA_EXECVP@ /* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execvp always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvp # define execvp _execvp # endif _GL_CXXALIAS_MDA_CAST (execvp, intptr_t, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execvp); #endif #if @GNULIB_EXECVPE@ # if @REPLACE_EXECVPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvpe # define execvpe rpl_execvpe # endif _GL_FUNCDECL_RPL (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execvpe, int, (const char *program, char * const *argv, char * const *env)); # else # if !@HAVE_DECL_EXECVPE@ _GL_FUNCDECL_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (execvpe); # endif #elif defined GNULIB_POSIXCHECK # undef execvpe # if HAVE_RAW_DECL_EXECVPE _GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - " "use gnulib module execvpe for portability"); # endif #elif @GNULIB_MDA_EXECVPE@ /* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvpe # define execvpe _execvpe # endif _GL_CXXALIAS_MDA_CAST (execvpe, intptr_t, (const char *program, char * const *argv, char * const *env)); # elif @HAVE_EXECVPE@ # if !@HAVE_DECL_EXECVPE@ _GL_FUNCDECL_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env)); # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_EXECVPE@ _GL_CXXALIASWARN (execvpe); # endif #endif #if @GNULIB_FACCESSAT@ # if @REPLACE_FACCESSAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef faccessat # define faccessat rpl_faccessat # endif _GL_FUNCDECL_RPL (faccessat, int, (int fd, char const *name, int mode, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (faccessat, int, (int fd, char const *name, int mode, int flag)); # else # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (faccessat); # endif #elif defined GNULIB_POSIXCHECK # undef faccessat # if HAVE_RAW_DECL_FACCESSAT _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " "use gnulib module faccessat for portability"); # endif #endif #if @GNULIB_FCHDIR@ /* Change the process' current working directory to the directory on which the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>. */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); /* Gnulib internal hooks needed to maintain the fchdir metadata. */ _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_fd (int fd); _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); _GL_EXTERN_C const char *_gl_directory_name (int fd); # else # if !@HAVE_DECL_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); # endif # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); _GL_CXXALIASWARN (fchdir); #elif defined GNULIB_POSIXCHECK # undef fchdir # if HAVE_RAW_DECL_FCHDIR _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " "use gnulib module fchdir for portability"); # endif #endif #if @GNULIB_FCHOWNAT@ # if @REPLACE_FCHOWNAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchownat # define fchownat rpl_fchownat # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # endif _GL_CXXALIASWARN (fchownat); #elif defined GNULIB_POSIXCHECK # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " "use gnulib module fchownat for portability"); # endif #endif #if @GNULIB_FDATASYNC@ /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>. */ # if @REPLACE_FDATASYNC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdatasync # define fdatasync rpl_fdatasync # endif _GL_FUNCDECL_RPL (fdatasync, int, (int fd)); _GL_CXXALIAS_RPL (fdatasync, int, (int fd)); # else # if !@HAVE_FDATASYNC@|| !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fdatasync, int, (int fd)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fdatasync); # endif #elif defined GNULIB_POSIXCHECK # undef fdatasync # if HAVE_RAW_DECL_FDATASYNC _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " "use gnulib module fdatasync for portability"); # endif #endif #if @GNULIB_FSYNC@ /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>. */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fsync, int, (int fd)); _GL_CXXALIASWARN (fsync); #elif defined GNULIB_POSIXCHECK # undef fsync # if HAVE_RAW_DECL_FSYNC _GL_WARN_ON_USE (fsync, "fsync is unportable - " "use gnulib module fsync for portability"); # endif #endif #if @GNULIB_FTRUNCATE@ /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>. */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate # define ftruncate rpl_ftruncate # endif _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (ftruncate); # endif #elif defined GNULIB_POSIXCHECK # undef ftruncate # if HAVE_RAW_DECL_FTRUNCATE _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " "use gnulib module ftruncate for portability"); # endif #endif #if @GNULIB_GETCWD@ /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>. Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # if @REPLACE_GETCWD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getcwd # define getcwd _getcwd # endif _GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #elif defined GNULIB_POSIXCHECK # undef getcwd # if HAVE_RAW_DECL_GETCWD _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif #elif @GNULIB_MDA_GETCWD@ /* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::getcwd always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getcwd # define getcwd _getcwd # endif /* Need to cast, because on mingw, the second parameter is either 'int size' or 'size_t size'. */ _GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size)); # else _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #endif #if @GNULIB_GETDOMAINNAME@ /* Return the NIS domain name of the machine. WARNING! The NIS domain name is unrelated to the fully qualified host name of the machine. It is also unrelated to email addresses. WARNING! The NIS domain name is usually the empty string or "(none)" when not using NIS. Put up to LEN bytes of the NIS domain name into NAME. Null terminate it if the name is shorter than LEN. If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @REPLACE_GETDOMAINNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdomainname # define getdomainname rpl_getdomainname # endif _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getdomainname); # endif #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " "use gnulib module getdomainname for portability"); # endif #endif #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ # if @REPLACE_GETDTABLESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdtablesize # define getdtablesize rpl_getdtablesize # endif _GL_FUNCDECL_RPL (getdtablesize, int, (void)); _GL_CXXALIAS_RPL (getdtablesize, int, (void)); # else # if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif /* Need to cast, because on AIX, the parameter list is (...). */ _GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void)); # endif _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize # if HAVE_RAW_DECL_GETDTABLESIZE _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " "use gnulib module getdtablesize for portability"); # endif #endif #if @GNULIB_GETENTROPY@ /* Fill a buffer with random bytes. */ # if @REPLACE_GETENTROPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getentropy # define getentropy rpl_getentropy # endif _GL_FUNCDECL_RPL (getentropy, int, (void *buffer, size_t length)); _GL_CXXALIAS_RPL (getentropy, int, (void *buffer, size_t length)); # else # if !@HAVE_GETENTROPY@ _GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length)); # endif _GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getentropy); # endif #elif defined GNULIB_POSIXCHECK # undef getentropy # if HAVE_RAW_DECL_GETENTROPY _GL_WARN_ON_USE (getentropy, "getentropy is unportable - " "use gnulib module getentropy for portability"); # endif #endif #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. If N is 0, return the group count; otherwise, N describes how many entries are available in GROUPS. Return -1 and set errno if N is not 0 and not large enough. Fails with ENOSYS on some systems. */ # if @REPLACE_GETGROUPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getgroups # define getgroups rpl_getgroups # endif _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK # undef getgroups # if HAVE_RAW_DECL_GETGROUPS _GL_WARN_ON_USE (getgroups, "getgroups is unportable - " "use gnulib module getgroups for portability"); # endif #endif #if @GNULIB_GETHOSTNAME@ /* Return the standard host name of the machine. WARNING! The host name may or may not be fully qualified. Put up to LEN bytes of the host name into NAME. Null terminate it if the name is shorter than LEN. If the host name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @UNISTD_H_HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname rpl_gethostname # endif _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); # else # if !@HAVE_GETHOSTNAME@ _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second parameter is int len. */ _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (gethostname); #elif @UNISTD_H_HAVE_WINSOCK2_H@ # undef gethostname # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname #elif defined GNULIB_POSIXCHECK # undef gethostname # if HAVE_RAW_DECL_GETHOSTNAME _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " "use gnulib module gethostname for portability"); # endif #endif #if @GNULIB_GETLOGIN@ /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getlogin.html>. Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if !@HAVE_DECL_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); _GL_CXXALIASWARN (getlogin); #elif defined GNULIB_POSIXCHECK # undef getlogin # if HAVE_RAW_DECL_GETLOGIN _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " "use gnulib module getlogin for portability"); # endif #endif #if @GNULIB_GETLOGIN_R@ /* Copies the user's login name to NAME. The array pointed to by NAME has room for SIZE bytes. Returns 0 if successful. Upon error, an error number is returned, or -1 in the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getlogin.html>. Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if @REPLACE_GETLOGIN_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getlogin_r rpl_getlogin_r # endif _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); # else # if !@HAVE_DECL_GETLOGIN_R@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 systems, the second argument is int size. */ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getlogin_r); # endif #elif defined GNULIB_POSIXCHECK # undef getlogin_r # if HAVE_RAW_DECL_GETLOGIN_R _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " "use gnulib module getlogin_r for portability"); # endif #endif #if @GNULIB_GETPAGESIZE@ # if @REPLACE_GETPAGESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize rpl_getpagesize # endif _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else /* On HP-UX, getpagesize exists, but it is not declared in <unistd.h> even if the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used. */ # if defined __hpux _GL_FUNCDECL_SYS (getpagesize, int, (void)); # endif # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ # if !defined _gl_getpagesize && defined _SC_PAGESIZE # if ! (defined __VMS && __VMS_VER < 70000000) # define _gl_getpagesize() sysconf (_SC_PAGESIZE) # endif # endif /* This is for older VMS. */ # if !defined _gl_getpagesize && defined __VMS # ifdef __ALPHA # define _gl_getpagesize() 8192 # else # define _gl_getpagesize() 512 # endif # endif /* This is for BeOS. */ # if !defined _gl_getpagesize && @HAVE_OS_H@ # include <OS.h> # if defined B_PAGE_SIZE # define _gl_getpagesize() B_PAGE_SIZE # endif # endif /* This is for AmigaOS4.0. */ # if !defined _gl_getpagesize && defined __amigaos4__ # define _gl_getpagesize() 2048 # endif /* This is for older Unix systems. */ # if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ # include <sys/param.h> # ifdef EXEC_PAGESIZE # define _gl_getpagesize() EXEC_PAGESIZE # else # ifdef NBPG # ifndef CLSIZE # define CLSIZE 1 # endif # define _gl_getpagesize() (NBPG * CLSIZE) # else # ifdef NBPC # define _gl_getpagesize() NBPC # endif # endif # endif # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else # if !GNULIB_defined_getpagesize_function _GL_UNISTD_INLINE int getpagesize () { return _gl_getpagesize (); } # define GNULIB_defined_getpagesize_function 1 # endif # endif # endif # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); # endif # if @HAVE_DECL_GETPAGESIZE@ _GL_CXXALIASWARN (getpagesize); # endif #elif defined GNULIB_POSIXCHECK # undef getpagesize # if HAVE_RAW_DECL_GETPAGESIZE _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " "use gnulib module getpagesize for portability"); # endif #endif #if @GNULIB_GETPASS@ /* Function getpass() from module 'getpass': Read a password from /dev/tty or stdin. Function getpass() from module 'getpass-gnu': Read a password of arbitrary length from /dev/tty or stdin. */ # if (@GNULIB_GETPASS@ && @REPLACE_GETPASS@) \ || (@GNULIB_GETPASS_GNU@ && @REPLACE_GETPASS_FOR_GETPASS_GNU@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpass # define getpass rpl_getpass # endif _GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); # else # if !@HAVE_GETPASS@ _GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); # endif _GL_CXXALIASWARN (getpass); #elif defined GNULIB_POSIXCHECK # undef getpass # if HAVE_RAW_DECL_GETPASS _GL_WARN_ON_USE (getpass, "getpass is unportable - " "use gnulib module getpass or getpass-gnu for portability"); # endif #endif #if @GNULIB_MDA_GETPID@ /* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::getpid always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpid # define getpid _getpid # endif _GL_CXXALIAS_MDA (getpid, int, (void)); # else _GL_CXXALIAS_SYS (getpid, pid_t, (void)); # endif _GL_CXXALIASWARN (getpid); #endif #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (getusershell, char *, (void)); # endif _GL_CXXALIAS_SYS (getusershell, char *, (void)); _GL_CXXALIASWARN (getusershell); #elif defined GNULIB_POSIXCHECK # undef getusershell # if HAVE_RAW_DECL_GETUSERSHELL _GL_WARN_ON_USE (getusershell, "getusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Rewind to pointer that is advanced at each getusershell() call. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (setusershell, void, (void)); # endif _GL_CXXALIAS_SYS (setusershell, void, (void)); _GL_CXXALIASWARN (setusershell); #elif defined GNULIB_POSIXCHECK # undef setusershell # if HAVE_RAW_DECL_SETUSERSHELL _GL_WARN_ON_USE (setusershell, "setusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Free the pointer that is advanced at each getusershell() call and associated resources. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (endusershell, void, (void)); # endif _GL_CXXALIAS_SYS (endusershell, void, (void)); _GL_CXXALIASWARN (endusershell); #elif defined GNULIB_POSIXCHECK # undef endusershell # if HAVE_RAW_DECL_ENDUSERSHELL _GL_WARN_ON_USE (endusershell, "endusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GROUP_MEMBER@ /* Determine whether group id is in calling user's group list. */ # if !@HAVE_GROUP_MEMBER@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); # endif _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); _GL_CXXALIASWARN (group_member); #elif defined GNULIB_POSIXCHECK # undef group_member # if HAVE_RAW_DECL_GROUP_MEMBER _GL_WARN_ON_USE (group_member, "group_member is unportable - " "use gnulib module group-member for portability"); # endif #endif #if @GNULIB_ISATTY@ # if @REPLACE_ISATTY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty rpl_isatty # endif # define GNULIB_defined_isatty 1 _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty _isatty # endif _GL_CXXALIAS_MDA (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #elif defined GNULIB_POSIXCHECK # undef isatty # if HAVE_RAW_DECL_ISATTY _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif #elif @GNULIB_MDA_ISATTY@ /* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::isatty always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty _isatty # endif _GL_CXXALIAS_MDA (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #endif #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>. */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif _GL_CXXALIASWARN (lchown); #elif defined GNULIB_POSIXCHECK # undef lchown # if HAVE_RAW_DECL_LCHOWN _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " "use gnulib module lchown for portability"); # endif #endif #if @GNULIB_LINK@ /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>. */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif _GL_CXXALIASWARN (link); #elif defined GNULIB_POSIXCHECK # undef link # if HAVE_RAW_DECL_LINK _GL_WARN_ON_USE (link, "link is unportable - " "use gnulib module link for portability"); # endif #endif #if @GNULIB_LINKAT@ /* Create a new hard link for an existing file, relative to two directories. FLAG controls whether symlinks are followed. Return 0 if successful, otherwise -1 and errno set. */ # if @REPLACE_LINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef linkat # define linkat rpl_linkat # endif _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # else # if !@HAVE_LINKAT@ _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (linkat); # endif #elif defined GNULIB_POSIXCHECK # undef linkat # if HAVE_RAW_DECL_LINKAT _GL_WARN_ON_USE (linkat, "linkat is unportable - " "use gnulib module linkat for portability"); # endif #endif #if @GNULIB_LSEEK@ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>. */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lseek # define lseek _lseek # endif _GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #elif defined GNULIB_POSIXCHECK # undef lseek # if HAVE_RAW_DECL_LSEEK _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif #elif @GNULIB_MDA_LSEEK@ /* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::lseek always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lseek # define lseek _lseek # endif _GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #endif #if @GNULIB_PIPE@ /* Create a pipe, defaulting to O_BINARY mode. Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); #elif defined GNULIB_POSIXCHECK # undef pipe # if HAVE_RAW_DECL_PIPE _GL_WARN_ON_USE (pipe, "pipe is unportable - " "use gnulib module pipe-posix for portability"); # endif #endif #if @GNULIB_PIPE2@ /* Create a pipe, applying the given flags when opening the read-end of the pipe and the write-end of the pipe. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at <https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>. */ # if @REPLACE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pipe2 # define pipe2 rpl_pipe2 # endif _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (pipe2); # endif #elif defined GNULIB_POSIXCHECK # undef pipe2 # if HAVE_RAW_DECL_PIPE2 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " "use gnulib module pipe2 for portability"); # endif #endif #if @GNULIB_PREAD@ /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>. */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread # define pread rpl_pread # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (pread); # endif #elif defined GNULIB_POSIXCHECK # undef pread # if HAVE_RAW_DECL_PREAD _GL_WARN_ON_USE (pread, "pread is unportable - " "use gnulib module pread for portability"); # endif #endif #if @GNULIB_PWRITE@ /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>. */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite # define pwrite rpl_pwrite # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (pwrite); # endif #elif defined GNULIB_POSIXCHECK # undef pwrite # if HAVE_RAW_DECL_PWRITE _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " "use gnulib module pwrite for portability"); # endif #endif #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>. */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read rpl_read # endif _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read _read # endif _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count)); # else _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #elif @GNULIB_MDA_READ@ /* On native Windows, map 'read' to '_read', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::read always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read _read # endif # ifdef __MINGW32__ _GL_CXXALIAS_MDA (read, int, (int fd, void *buf, unsigned int count)); # else _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, unsigned int count)); # endif # else _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>. */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK # undef readlink # if HAVE_RAW_DECL_READLINK _GL_WARN_ON_USE (readlink, "readlink is unportable - " "use gnulib module readlink for portability"); # endif #endif #if @GNULIB_READLINKAT@ # if @REPLACE_READLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlinkat rpl_readlinkat # endif _GL_FUNCDECL_RPL (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len)); # else # if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (readlinkat); # endif #elif defined GNULIB_POSIXCHECK # undef readlinkat # if HAVE_RAW_DECL_READLINKAT _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " "use gnulib module readlinkat for portability"); # endif #endif #if @GNULIB_RMDIR@ /* Remove the directory DIR. */ # if @REPLACE_RMDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define rmdir rpl_rmdir # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rmdir # define rmdir _rmdir # endif _GL_CXXALIAS_MDA (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #elif defined GNULIB_POSIXCHECK # undef rmdir # if HAVE_RAW_DECL_RMDIR _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif #elif @GNULIB_MDA_RMDIR@ /* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::rmdir always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rmdir # define rmdir _rmdir # endif _GL_CXXALIAS_MDA (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #endif #if @GNULIB_SETHOSTNAME@ /* Set the host name of the machine. The host name may or may not be fully qualified. Put LEN bytes of NAME into the host name. Return 0 if successful, otherwise, set errno and return -1. Platforms with no ability to set the hostname return -1 and set errno = ENOSYS. */ # if @REPLACE_SETHOSTNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sethostname # define sethostname rpl_sethostname # endif _GL_FUNCDECL_RPL (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (sethostname, int, (const char *name, size_t len)); # else # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (sethostname); # endif #elif defined GNULIB_POSIXCHECK # undef sethostname # if HAVE_RAW_DECL_SETHOSTNAME _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " "use gnulib module sethostname for portability"); # endif #endif #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>. */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep # define sleep rpl_sleep # endif _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); # else # if !@HAVE_SLEEP@ _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIASWARN (sleep); #elif defined GNULIB_POSIXCHECK # undef sleep # if HAVE_RAW_DECL_SLEEP _GL_WARN_ON_USE (sleep, "sleep is unportable - " "use gnulib module sleep for portability"); # endif #endif #if @GNULIB_MDA_SWAB@ /* On native Windows, map 'swab' to '_swab', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::swab always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef swab # define swab _swab # endif /* Need to cast, because in old mingw the arguments are (const char *from, char *to, size_t n). */ _GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n)); # else # if defined __hpux /* HP-UX */ _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n)); # elif defined __sun && (defined __SunOS_5_10 || defined __XOPEN_OR_POSIX) && !defined _XPG4 /* Solaris */ _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n)); # else _GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n)); # endif # endif _GL_CXXALIASWARN (swab); #endif #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlink # define symlink rpl_symlink # endif _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK # undef symlink # if HAVE_RAW_DECL_SYMLINK _GL_WARN_ON_USE (symlink, "symlink is not portable - " "use gnulib module symlink for portability"); # endif #endif #if @GNULIB_SYMLINKAT@ # if @REPLACE_SYMLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlinkat # define symlinkat rpl_symlinkat # endif _GL_FUNCDECL_RPL (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (symlinkat, int, (char const *contents, int fd, char const *file)); # else # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (symlinkat); # endif #elif defined GNULIB_POSIXCHECK # undef symlinkat # if HAVE_RAW_DECL_SYMLINKAT _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " "use gnulib module symlinkat for portability"); # endif #endif #if @GNULIB_TRUNCATE@ /* Change the size of the file designated by FILENAME to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/truncate.html>. */ # if @REPLACE_TRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef truncate # define truncate rpl_truncate # endif _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); # else # if !@HAVE_DECL_TRUNCATE@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (truncate); # endif #elif defined GNULIB_POSIXCHECK # undef truncate # if HAVE_RAW_DECL_TRUNCATE _GL_WARN_ON_USE (truncate, "truncate is unportable - " "use gnulib module truncate for portability"); # endif #endif #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ # if @REPLACE_TTYNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ttyname_r # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (ttyname_r); # endif #elif defined GNULIB_POSIXCHECK # undef ttyname_r # if HAVE_RAW_DECL_TTYNAME_R _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " "use gnulib module ttyname_r for portability"); # endif #endif #if @GNULIB_UNLINK@ # if @REPLACE_UNLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink rpl_unlink # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink _unlink # endif _GL_CXXALIAS_MDA (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #elif defined GNULIB_POSIXCHECK # undef unlink # if HAVE_RAW_DECL_UNLINK _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif #elif @GNULIB_MDA_UNLINK@ /* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::unlink always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink _unlink # endif _GL_CXXALIAS_MDA (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #endif #if @GNULIB_UNLINKAT@ # if @REPLACE_UNLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlinkat # define unlinkat rpl_unlinkat # endif _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); # else # if !@HAVE_UNLINKAT@ _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); # endif _GL_CXXALIASWARN (unlinkat); #elif defined GNULIB_POSIXCHECK # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " "use gnulib module unlinkat for portability"); # endif #endif #if @GNULIB_USLEEP@ /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification <https://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html>. */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep # define usleep rpl_usleep # endif _GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # else # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif /* Need to cast, because on Haiku, the first parameter is unsigned int n. */ _GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK # undef usleep # if HAVE_RAW_DECL_USLEEP _GL_WARN_ON_USE (usleep, "usleep is unportable - " "use gnulib module usleep for portability"); # endif #endif #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>. */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write # endif _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write _write # endif _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count)); # else _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #elif @GNULIB_MDA_WRITE@ /* On native Windows, map 'write' to '_write', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::write always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write _write # endif # ifdef __MINGW32__ _GL_CXXALIAS_MDA (write, int, (int fd, const void *buf, unsigned int count)); # else _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, unsigned int count)); # endif # else _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ #endif /* _GL_INCLUDING_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ ����������������������������������������������������������������������a2ps-4.15.5/lib/verify.h����������������������������������������������������������������������������0000644�0000000�0000000�00000035457�14374751113�011611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Compile-time assert-like macros. Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ #ifndef _GL_VERIFY_H #define _GL_VERIFY_H /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) works as per C11. This is supported by GCC 4.6.0+ and by clang 4+. Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as per C23. This is supported by GCC 9.1+. Support compilers claiming conformance to the relevant standard, and also support GCC when not pedantic. If we were willing to slow 'configure' down we could also use it with other compilers, but since this affects only the quality of diagnostics, why bother? */ #ifndef __cplusplus # if (201112 <= __STDC_VERSION__ \ || (!defined __STRICT_ANSI__ \ && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 5 <= __clang_major__))) # define _GL_HAVE__STATIC_ASSERT 1 # endif # if (202311 <= __STDC_VERSION__ \ || (!defined __STRICT_ANSI__ && 9 <= __GNUC__)) # define _GL_HAVE__STATIC_ASSERT1 1 # endif #endif /* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ #ifndef _GL_HAVE__STATIC_ASSERT # include <stddef.h> # undef _Static_assert #endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. If _Static_assert works, verify (R) uses it directly. Similarly, _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct that is an operand of sizeof. The code below uses several ideas for C++ compilers, and for C compilers that do not support _Static_assert: * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an expression of integral type, whose value is later verified to be constant and nonnegative. * Next this expression W is wrapped in a type struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: W; }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. One might think that an array size check would have the same effect, that is, that the type struct { unsigned int dummy[W]; } would work as well. However, inside a function, some compilers (such as C++ compilers and GNU C) allow local parameters and variables inside array size expressions. With these compilers, an array size check would not properly diagnose this misuse of the verify macro: void function (int n) { verify (n < 0); } * For the verify macro, the struct _gl_verify_type will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, such as in struct dummy {...}; typedef struct {...} dummy; extern struct {...} *dummy; extern void dummy (struct {...} *); extern struct {...} *dummy (void); two uses of the verify macro would yield colliding declarations if the entity names are not disambiguated. A workaround is to attach the current line number to the entity name: #define _GL_CONCAT0(x, y) x##y #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) extern struct {...} * _GL_CONCAT (dummy, __LINE__); But this has the problem that two invocations of verify from within the same macro would collide, since the __LINE__ value would be the same for both invocations. (The GCC __COUNTER__ macro solves this problem, but is not portable.) A solution is to use the sizeof operator. It yields a number, getting rid of the identity of the type. Declarations like extern int dummy [sizeof (struct {...})]; extern void dummy (int [sizeof (struct {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; can be repeated. * Should the implementation use a named struct or an unnamed struct? Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; extern int dummy [sizeof (struct _gl_verify_type {...})]; extern void dummy (int [sizeof (struct {...})]); extern void dummy (int [sizeof (struct _gl_verify_type {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns about the first, third, and fourth cases. So the only remaining possibility is the fifth case: extern int (*dummy (void)) [sizeof (struct {...})]; * GCC warns about duplicate declarations of the dummy function if -Wredundant-decls is used. GCC 4.3 and later have a builtin __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. * This implementation exploits the fact that older versions of GCC, which do not support _Static_assert, also do not warn about the last declaration mentioned above. * GCC warns if -Wnested-externs is enabled and 'verify' is used within a function body; but inside a function, you can always arrange to use verify_expr instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ /* Concatenate two preprocessor tokens. */ #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) #define _GL_CONCAT0(x, y) x##y /* _GL_COUNTER is an integer, preferably one that changes each time we use it. Use __COUNTER__ if it works, falling back on __LINE__ otherwise. __LINE__ isn't perfect, but it's better than a constant. */ #if defined __COUNTER__ && __COUNTER__ != __COUNTER__ # define _GL_COUNTER __COUNTER__ #else # define _GL_COUNTER __LINE__ #endif /* Generate a symbol with the given prefix, making it unique if possible. */ #define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) /* Verify requirement R at compile-time, as an integer constant expression that returns 1. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. */ #define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) #ifdef __cplusplus # if !GNULIB_defined_struct__gl_verify_type template <int w> struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: w; }; # define GNULIB_defined_struct__gl_verify_type 1 # endif # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ _gl_verify_type<(R) ? 1 : -1> #elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { \ _Static_assert (R, DIAGNOSTIC); \ int _gl_dummy; \ } #else # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } #endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. If R is false, fail at compile-time. This macro requires three or more arguments but uses at most the first two, so that the _Static_assert macro optionally defined below supports both the C11 two-argument syntax and the C23 one-argument syntax. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ #if 202311 <= __STDC_VERSION__ || 200410 <= __cpp_static_assert # define _GL_VERIFY(R, DIAGNOSTIC, ...) static_assert (R, DIAGNOSTIC) #elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) #else # define _GL_VERIFY(R, DIAGNOSTIC, ...) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] # if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) # pragma GCC diagnostic ignored "-Wnested-externs" # endif #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H /* Define _Static_assert if needed. */ /* With clang ≥ 3.8.0 in C++ mode, _Static_assert already works and accepts 1 or 2 arguments. We better don't override it, because clang's standard C++ library uses static_assert inside classes in several places, and our replacement via _GL_VERIFY does not work in these contexts. */ # if (defined __cplusplus && defined __clang__ \ && (4 <= __clang_major__ + (8 <= __clang_minor__))) # if 5 <= __clang_major__ /* Avoid "warning: 'static_assert' with no message is a C++17 extension". */ # pragma clang diagnostic ignored "-Wc++17-extensions" # else /* Avoid "warning: static_assert with no message is a C++1z extension". */ # pragma clang diagnostic ignored "-Wc++1z-extensions" # endif # elif !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert # if !defined _MSC_VER || defined __clang__ # define _Static_assert(...) \ _GL_VERIFY (__VA_ARGS__, "static assertion failed", -) # else /* Work around MSVC preprocessor incompatibility with ISO C; see <https://stackoverflow.com/questions/5134523/>. */ # define _Static_assert(R, ...) \ _GL_VERIFY ((R), "static assertion failed", -) # endif # endif /* Define static_assert if needed. */ # if (!defined static_assert \ && __STDC_VERSION__ < 202311 \ && (!defined __cplusplus \ || (__cpp_static_assert < 201411 \ && __GNUG__ < 6 && __clang_major__ < 6))) # if defined __cplusplus && _MSC_VER >= 1900 && !defined __clang__ /* MSVC 14 in C++ mode supports the two-arguments static_assert but not the one-argument static_assert, and it does not support _Static_assert. We have to play preprocessor tricks to distinguish the two cases. Since the MSVC preprocessor is not ISO C compliant (see above),. the solution is specific to MSVC. */ # define _GL_EXPAND(x) x # define _GL_SA1(a1) static_assert ((a1), "static assertion failed") # define _GL_SA2 static_assert # define _GL_SA3 static_assert # define _GL_SA_PICK(x1,x2,x3,x4,...) x4 # define static_assert(...) _GL_EXPAND(_GL_SA_PICK(__VA_ARGS__,_GL_SA3,_GL_SA2,_GL_SA1)) (__VA_ARGS__) /* Avoid "fatal error C1189: #error: The C++ Standard Library forbids macroizing keywords." */ # define _ALLOW_KEYWORD_MACROS 1 # else # define static_assert _Static_assert /* C11 requires this #define. */ # endif # endif #endif /* @assert.h omit start@ */ #if defined __clang_major__ && __clang_major__ < 5 # define _GL_HAS_BUILTIN_TRAP 0 #elif 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)) # define _GL_HAS_BUILTIN_TRAP 1 #elif defined __has_builtin # define _GL_HAS_BUILTIN_TRAP __has_builtin (__builtin_trap) #else # define _GL_HAS_BUILTIN_TRAP 0 #endif #if defined __clang_major__ && __clang_major__ < 5 # define _GL_HAS_BUILTIN_UNREACHABLE 0 #elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__) # define _GL_HAS_BUILTIN_UNREACHABLE 1 #elif defined __has_builtin # define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) #else # define _GL_HAS_BUILTIN_UNREACHABLE 0 #endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all contexts in C. verify_expr (R, E) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ /* Verify requirement R at compile-time. Return the value of the expression E. */ #define verify_expr(R, E) \ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a trailing ';'. verify (R) acts like static_assert (R) except that it is portable to C11/C++14 and earlier, it can issue better diagnostics, and its name is shorter and may be more convenient. */ #ifdef __PGI /* PGI barfs if R is long. */ # define verify(R) _GL_VERIFY (R, "verify (...)", -) #else # define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) #endif /* Assume that R always holds. Behavior is undefined if R is false, fails to evaluate, or has side effects. 'assume (R)' is a directive from the programmer telling the compiler that R is true so the compiler needn't generate code to test R. This is why 'assume' is in verify.h: it's related to static checking (in this case, static checking done by the programmer), not dynamic checking. 'assume (R)' can affect compilation of all the code, not just code that happens to be executed after the assume (R) is "executed". For example, if the code mistakenly does 'assert (R); assume (R);' the compiler is entitled to optimize away the 'assert (R)'. Although assuming R can help a compiler generate better code or diagnostics, performance can suffer if R uses hard-to-optimize features such as function calls not inlined by the compiler. Avoid Clang's __builtin_assume, as it breaks GNU Emacs master as of 2020-08-23T21:09:49Z!eggert@cs.ucla.edu; see <https://bugs.gnu.org/43152#71>. It's not known whether this breakage is a Clang bug or an Emacs bug; play it safe for now. */ #if _GL_HAS_BUILTIN_UNREACHABLE # define assume(R) ((R) ? (void) 0 : __builtin_unreachable ()) #elif 1200 <= _MSC_VER # define assume(R) __assume (R) #elif 202311 <= __STDC_VERSION__ # include <stddef.h> # define assume(R) ((R) ? (void) 0 : unreachable ()) #elif (defined GCC_LINT || defined lint) && _GL_HAS_BUILTIN_TRAP /* Doing it this way helps various packages when configured with --enable-gcc-warnings, which compiles with -Dlint. It's nicer if 'assume' silences warnings with GCC 3.4 through GCC 4.4.7 (2012). */ # define assume(R) ((R) ? (void) 0 : __builtin_trap ()) #else /* Some older tools grok NOTREACHED, e.g., Oracle Studio 12.6 (2017). */ # define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) #endif /* @assert.h omit end@ */ #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/version-etc-fsf.c�������������������������������������������������������������������0000644�0000000�0000000�00000002222�14374751113�013272� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Variable with FSF copyright information, for version-etc. Copyright (C) 1999-2006, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> /* Specification. */ #include "version-etc.h" /* Default copyright goes to the FSF. */ const char version_etc_copyright[] = /* Do *not* mark this string for translation. %s is a copyright symbol suitable for this locale, and %d is the copyright year. */ "Copyright %s %d Free Software Foundation, Inc."; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/version-etc.c�����������������������������������������������������������������������0000644�0000000�0000000�00000022305�14374751113�012522� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Print --version and bug-reporting information in a consistent format. Copyright (C) 1999-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> /* Specification. */ #include "version-etc.h" #include <stdarg.h> #include <stdio.h> #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif #include "gettext.h" #define _(msgid) gettext (msgid) /* If you use AM_INIT_AUTOMAKE's no-define option, PACKAGE is not defined. Use PACKAGE_TARNAME instead. */ #if ! defined PACKAGE && defined PACKAGE_TARNAME # define PACKAGE PACKAGE_TARNAME #endif enum { COPYRIGHT_YEAR = 2023 }; /* The three functions below display the --version information the standard way. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The functions differ in the way they are passed author names. */ /* Display the --version information the standard way. Author names are given in the array AUTHORS. N_AUTHORS is the number of elements in the array. */ void version_etc_arn (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors, size_t n_authors) { if (command_name) fprintf (stream, "%s (%s) %s\n", command_name, package, version); else fprintf (stream, "%s %s\n", package, version); #ifdef PACKAGE_PACKAGER # ifdef PACKAGE_PACKAGER_VERSION fprintf (stream, _("Packaged by %s (%s)\n"), PACKAGE_PACKAGER, PACKAGE_PACKAGER_VERSION); # else fprintf (stream, _("Packaged by %s\n"), PACKAGE_PACKAGER); # endif #endif /* TRANSLATORS: Translate "(C)" to the copyright symbol (C-in-a-circle), if this symbol is available in the user's locale. Otherwise, do not translate "(C)"; leave it as-is. */ fprintf (stream, version_etc_copyright, _("(C)"), COPYRIGHT_YEAR); fputs ("\n", stream); /* TRANSLATORS: The %s placeholder is the web address of the GPL license. */ fprintf (stream, _("\ License GPLv3+: GNU GPL version 3 or later <%s>.\n\ This is free software: you are free to change and redistribute it.\n\ There is NO WARRANTY, to the extent permitted by law.\n\ "), "https://gnu.org/licenses/gpl.html"); fputs ("\n", stream); switch (n_authors) { case 0: /* No authors are given. The caller should output authorship info after calling this function. */ break; case 1: /* TRANSLATORS: %s denotes an author name. */ fprintf (stream, _("Written by %s.\n"), authors[0]); break; case 2: /* TRANSLATORS: Each %s denotes an author name. */ fprintf (stream, _("Written by %s and %s.\n"), authors[0], authors[1]); break; case 3: /* TRANSLATORS: Each %s denotes an author name. */ fprintf (stream, _("Written by %s, %s, and %s.\n"), authors[0], authors[1], authors[2]); break; case 4: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\nand %s.\n"), authors[0], authors[1], authors[2], authors[3]); break; case 5: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4]); break; case 6: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5]); break; case 7: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, %s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6]); break; case 8: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\nand %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7]); break; case 9: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7], authors[8]); break; default: /* 10 or more authors. Use an abbreviation, since the human reader will probably not want to read the entire list anyway. */ /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, %s, and others.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7], authors[8]); break; } } /* Display the --version information the standard way. See the initial comment to this module, for more information. Author names are given in the NULL-terminated array AUTHORS. */ void version_etc_ar (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors) { size_t n_authors; for (n_authors = 0; authors[n_authors]; n_authors++) ; version_etc_arn (stream, command_name, package, version, authors, n_authors); } /* Display the --version information the standard way. See the initial comment to this module, for more information. Author names are given in the NULL-terminated va_list AUTHORS. */ void version_etc_va (FILE *stream, const char *command_name, const char *package, const char *version, va_list authors) { size_t n_authors; const char *authtab[10]; for (n_authors = 0; n_authors < 10 && (authtab[n_authors] = va_arg (authors, const char *)) != NULL; n_authors++) ; version_etc_arn (stream, command_name, package, version, authtab, n_authors); } /* Display the --version information the standard way. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The authors names are passed as separate arguments, with an additional NULL argument at the end. */ void version_etc (FILE *stream, const char *command_name, const char *package, const char *version, /* const char *author1, ...*/ ...) { va_list authors; va_start (authors, version); version_etc_va (stream, command_name, package, version, authors); va_end (authors); } void emit_bug_reporting_address (void) { fputs ("\n", stdout); /* TRANSLATORS: The placeholder indicates the bug-reporting address for this package. Please add _another line_ saying "Report translation bugs to <...>\n" with the address for translation bugs (typically your translation team's web or email address). */ printf (_("Report bugs to: %s\n"), PACKAGE_BUGREPORT); #ifdef PACKAGE_PACKAGER_BUG_REPORTS printf (_("Report %s bugs to: %s\n"), PACKAGE_PACKAGER, PACKAGE_PACKAGER_BUG_REPORTS); #endif #ifdef PACKAGE_URL printf (_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL); #else printf (_("%s home page: <%s>\n"), PACKAGE_NAME, "https://www.gnu.org/software/" PACKAGE "/"); #endif printf (_("General help using GNU software: <%s>\n"), "https://www.gnu.org/gethelp/"); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/version-etc.h�����������������������������������������������������������������������0000644�0000000�0000000�00000005340�14374751113�012527� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Print --version and bug-reporting information in a consistent format. Copyright (C) 1999, 2003, 2005, 2009-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #ifndef VERSION_ETC_H # define VERSION_ETC_H 1 # include <stdarg.h> # include <stdio.h> # ifdef __cplusplus extern "C" { # endif extern const char version_etc_copyright[]; /* The three functions below display the --version information in the standard way: command and package names, package version, followed by a short GPLv3+ notice and a list of up to 10 author names. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The functions differ in the way they are passed author names: */ /* N_AUTHORS names are supplied in array AUTHORS. */ extern void version_etc_arn (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors, size_t n_authors); /* Names are passed in the NULL-terminated array AUTHORS. */ extern void version_etc_ar (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors); /* Names are passed in the NULL-terminated va_list. */ extern void version_etc_va (FILE *stream, const char *command_name, const char *package, const char *version, va_list authors); /* Names are passed as separate arguments, with an additional NULL argument at the end. */ extern void version_etc (FILE *stream, const char *command_name, const char *package, const char *version, /* const char *author1, ..., NULL */ ...) _GL_ATTRIBUTE_SENTINEL ((0)); /* Display the usual "Report bugs to" stanza. */ extern void emit_bug_reporting_address (void); # ifdef __cplusplus } # endif #endif /* VERSION_ETC_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/w32sock.h���������������������������������������������������������������������������0000644�0000000�0000000�00000006452�14374751113�011571� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* w32sock.h --- internal auxiliary functions for Windows socket functions Copyright (C) 2008-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paolo Bonzini */ #include <errno.h> /* Get O_RDWR and O_BINARY. */ #include <fcntl.h> /* Get _open_osfhandle(). */ #include <io.h> /* Get _get_osfhandle(). */ #if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" #else # include <io.h> #endif #define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd))) #define SOCKET_TO_FD(fh) (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY)) static inline void set_winsock_errno (void) { int err = WSAGetLastError (); /* Map some WSAE* errors to the runtime library's error codes. */ switch (err) { case WSA_INVALID_HANDLE: errno = EBADF; break; case WSA_NOT_ENOUGH_MEMORY: errno = ENOMEM; break; case WSA_INVALID_PARAMETER: errno = EINVAL; break; case WSAENAMETOOLONG: errno = ENAMETOOLONG; break; case WSAENOTEMPTY: errno = ENOTEMPTY; break; case WSAEWOULDBLOCK: errno = EWOULDBLOCK; break; case WSAEINPROGRESS: errno = EINPROGRESS; break; case WSAEALREADY: errno = EALREADY; break; case WSAENOTSOCK: errno = ENOTSOCK; break; case WSAEDESTADDRREQ: errno = EDESTADDRREQ; break; case WSAEMSGSIZE: errno = EMSGSIZE; break; case WSAEPROTOTYPE: errno = EPROTOTYPE; break; case WSAENOPROTOOPT: errno = ENOPROTOOPT; break; case WSAEPROTONOSUPPORT: errno = EPROTONOSUPPORT; break; case WSAEOPNOTSUPP: errno = EOPNOTSUPP; break; case WSAEAFNOSUPPORT: errno = EAFNOSUPPORT; break; case WSAEADDRINUSE: errno = EADDRINUSE; break; case WSAEADDRNOTAVAIL: errno = EADDRNOTAVAIL; break; case WSAENETDOWN: errno = ENETDOWN; break; case WSAENETUNREACH: errno = ENETUNREACH; break; case WSAENETRESET: errno = ENETRESET; break; case WSAECONNABORTED: errno = ECONNABORTED; break; case WSAECONNRESET: errno = ECONNRESET; break; case WSAENOBUFS: errno = ENOBUFS; break; case WSAEISCONN: errno = EISCONN; break; case WSAENOTCONN: errno = ENOTCONN; break; case WSAETIMEDOUT: errno = ETIMEDOUT; break; case WSAECONNREFUSED: errno = ECONNREFUSED; break; case WSAELOOP: errno = ELOOP; break; case WSAEHOSTUNREACH: errno = EHOSTUNREACH; break; default: errno = (err > 10000 && err < 10025) ? err - 10000 : err; break; } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/warn-on-use.h�����������������������������������������������������������������������0000644�0000000�0000000�00000015532�14374751113�012450� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A C macro for emitting warnings if a function is used. Copyright (C) 2010-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing the text of "literal string" anywhere that function is called, if supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the attribute used in _GL_WARN_ON_USE. If the compiler does not support this feature, it expands to empty. These macros are useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used instead. _GL_WARN_ON_USE is for functions with 'extern' linkage. _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' linkage. However, one of the reasons that a function is a portability trap is if it has the wrong signature. Declaring FUNCTION with a different signature in C is a compilation error, so this macro must use the same type as any existing declaration so that programs that avoid the problematic FUNCTION do not fail to compile merely because they included a header that poisoned the function. But this implies that _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already have a declaration. Use of this macro implies that there must not be any other macro hiding the declaration of FUNCTION; but undefining FUNCTION first is part of the poisoning process anyway (although for symbols that are provided only via a macro, the result is a compilation error rather than a warning containing "literal string"). Also note that in C++, it is only safe to use if FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]], [getline]) in configure.ac, which potentially defines HAVE_RAW_DECL_GETLINE - adding this code to a header that wraps the system <stdio.h>: #undef getline #if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" "not universally present; use the gnulib module getline"); #endif It is not possible to directly poison global variables. But it is possible to write a wrapper accessor function, and poison that (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON static char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) #endif or better (avoiding contradictory use of 'static' and 'extern'): #if HAVE_RAW_DECL_ENVIRON static char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) #endif */ #ifndef _GL_WARN_ON_USE # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) # define _GL_WARN_ON_USE_ATTRIBUTE(message) \ __attribute__ ((__warning__ (message))) # elif __clang_major__ >= 4 /* Another compiler attribute is available in clang. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C __typeof__ (function) function \ __attribute__ ((__diagnose_if__ (1, message, "warning"))) # define _GL_WARN_ON_USE_ATTRIBUTE(message) \ __attribute__ ((__diagnose_if__ (1, message, "warning"))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C __typeof__ (function) function # define _GL_WARN_ON_USE_ATTRIBUTE(message) # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # define _GL_WARN_ON_USE_ATTRIBUTE(message) # endif #endif /* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the function is declared with the given prototype, consisting of return type, parameters, and attributes. This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does not work in this case. */ #ifndef _GL_WARN_ON_USE_CXX # if !defined __cplusplus # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ _GL_WARN_ON_USE (function, msg) # else # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_gcc function parameters_and_attributes \ __attribute__ ((__warning__ (msg))) # elif __clang_major__ >= 4 /* Another compiler attribute is available in clang. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_clang function parameters_and_attributes \ __attribute__ ((__diagnose_if__ (1, msg, "warning"))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_gcc function parameters_and_attributes # else /* Unsupported. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif # endif #endif /* _GL_WARN_EXTERN_C declaration; performs the declaration with C linkage. */ #ifndef _GL_WARN_EXTERN_C # if defined __cplusplus # define _GL_WARN_EXTERN_C extern "C" # else # define _GL_WARN_EXTERN_C extern # endif #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/wchar.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000131657�14374751113�012015� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A substitute for ISO C99 <wchar.h>, for platforms that have issues. Copyright (C) 2007-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake. */ /* * ISO C 99 <wchar.h> for platforms that have issues. * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/wchar.h.html> * * For now, this just ensures proper prerequisite inclusion order and * the declaration of wcwidth(). */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if (((defined __need_mbstate_t || defined __need_wint_t) \ && !defined __MINGW32__) \ || (defined __hpux \ && ((defined _INTTYPES_INCLUDED \ && !defined _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H) \ || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ || (defined __MINGW32__ && defined __STRING_H_SOURCED__) \ || defined _GL_ALREADY_INCLUDING_WCHAR_H) /* Special invocation convention: - Inside glibc and uClibc header files, but not MinGW. - On HP-UX 11.00 we have a sequence of nested includes <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>, once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h> and once directly. In both situations 'wint_t' is not yet defined, therefore we cannot provide the function overrides; instead include only the system's <wchar.h>. - With MinGW 3.22, when <string.h> includes <wchar.h>, only some part of <wchar.h> is actually processed, and that doesn't include 'mbstate_t'. - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and the latter includes <wchar.h>. But here, we have no way to detect whether <wctype.h> is completely included or is still being included. */ #@INCLUDE_NEXT@ @NEXT_WCHAR_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCHAR_H #define _GL_ALREADY_INCLUDING_WCHAR_H #if @HAVE_FEATURES_H@ # include <features.h> /* for __GLIBC__ */ #endif /* In some builds of uClibc, <wchar.h> is nonexistent and wchar_t is defined by <stddef.h>. But avoid namespace pollution on glibc systems. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <stddef.h> #endif /* Include the original <wchar.h> if it exists. Some builds of uClibc lack it. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCHAR_H@ # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ #endif #undef _GL_ALREADY_INCLUDING_WCHAR_H #ifndef _@GUARD_PREFIX@_WCHAR_H #define _@GUARD_PREFIX@_WCHAR_H /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers that can be freed by passing them as the Ith argument to the function F. */ #ifndef _GL_ATTRIBUTE_DEALLOC # if __GNUC__ >= 11 # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) # else # define _GL_ATTRIBUTE_DEALLOC(f, i) # endif #endif /* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that can be freed via 'free'; it can be used only after declaring 'free'. */ /* Applies to: functions. Cannot be used on inline functions. */ #ifndef _GL_ATTRIBUTE_DEALLOC_FREE # if defined __cplusplus && defined __GNUC__ && !defined __clang__ /* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */ # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) # else # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC (free, 1) # endif #endif /* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly allocated memory. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_MALLOC # if __GNUC__ >= 3 || defined __clang__ # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) # else # define _GL_ATTRIBUTE_MALLOC # endif #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #ifndef _GL_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE /* empty */ # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Define wint_t and WEOF. (Also done in wctype.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or <stddef.h>. This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if @GNULIBHEADERS_OVERRIDE_WINT_T@ # if !GNULIB_defined_wint_t # if @HAVE_CRTDEFS_H@ # include <crtdefs.h> # else # include <stddef.h> # endif typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif /* Override mbstate_t if it is too small. On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for implementing mbrtowc for encodings like UTF-8. On AIX and MSVC, mbrtowc needs to be overridden, but mbstate_t exists and is large enough and overriding it would cause problems in C++ mode. */ #if !(((defined _WIN32 && !defined __CYGWIN__) || @HAVE_MBSINIT@) && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ # if !GNULIB_defined_mbstate_t # if !(defined _AIX || defined _MSC_VER) typedef int rpl_mbstate_t; # undef mbstate_t # define mbstate_t rpl_mbstate_t # endif # define GNULIB_defined_mbstate_t 1 # endif #endif /* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though <stdlib.h> may not have been included yet. */ #if @GNULIB_FREE_POSIX@ # if (@REPLACE_FREE@ && !defined free \ && !(defined __cplusplus && defined GNULIB_NAMESPACE)) /* We can't do '#define free rpl_free' here. */ # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) _GL_EXTERN_C void rpl_free (void *) throw (); # else _GL_EXTERN_C void rpl_free (void *); # endif # undef _GL_ATTRIBUTE_DEALLOC_FREE # define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) # else # if defined _MSC_VER && !defined free _GL_EXTERN_C # if defined _DLL __declspec (dllimport) # endif void __cdecl free (void *); # else # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) _GL_EXTERN_C void free (void *) throw (); # else _GL_EXTERN_C void free (void *); # endif # endif # endif #else # if defined _MSC_VER && !defined free _GL_EXTERN_C # if defined _DLL __declspec (dllimport) # endif void __cdecl free (void *); # else # if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) _GL_EXTERN_C void free (void *) throw (); # else _GL_EXTERN_C void free (void *); # endif # endif #endif /* Convert a single-byte character to a wide character. */ #if @GNULIB_BTOWC@ # if @REPLACE_BTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef btowc # define btowc rpl_btowc # endif _GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (btowc, wint_t, (int c)); # else # if !@HAVE_BTOWC@ _GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); # endif /* Need to cast, because on mingw, the return type is 'unsigned short'. */ _GL_CXXALIAS_SYS_CAST (btowc, wint_t, (int c)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (btowc); # endif #elif defined GNULIB_POSIXCHECK # undef btowc # if HAVE_RAW_DECL_BTOWC _GL_WARN_ON_USE (btowc, "btowc is unportable - " "use gnulib module btowc for portability"); # endif #endif /* Convert a wide character to a single-byte character. */ #if @GNULIB_WCTOB@ # if @REPLACE_WCTOB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctob # define wctob rpl_wctob # endif _GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); # else # if !defined wctob && !@HAVE_DECL_WCTOB@ /* wctob is provided by gnulib, or wctob exists but is not declared. */ _GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctob); # endif #elif defined GNULIB_POSIXCHECK # undef wctob # if HAVE_RAW_DECL_WCTOB _GL_WARN_ON_USE (wctob, "wctob is unportable - " "use gnulib module wctob for portability"); # endif #endif /* Test whether *PS is in the initial state. */ #if @GNULIB_MBSINIT@ # if @REPLACE_MBSINIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsinit # define mbsinit rpl_mbsinit # endif _GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); _GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); # else # if !@HAVE_MBSINIT@ _GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbsinit); # endif #elif defined GNULIB_POSIXCHECK # undef mbsinit # if HAVE_RAW_DECL_MBSINIT _GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " "use gnulib module mbsinit for portability"); # endif #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBRTOWC@ # if @REPLACE_MBRTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrtowc # define mbrtowc rpl_mbrtowc # endif _GL_FUNCDECL_RPL (mbrtowc, size_t, (wchar_t *restrict pwc, const char *restrict s, size_t n, mbstate_t *restrict ps)); _GL_CXXALIAS_RPL (mbrtowc, size_t, (wchar_t *restrict pwc, const char *restrict s, size_t n, mbstate_t *restrict ps)); # else # if !@HAVE_MBRTOWC@ _GL_FUNCDECL_SYS (mbrtowc, size_t, (wchar_t *restrict pwc, const char *restrict s, size_t n, mbstate_t *restrict ps)); # endif _GL_CXXALIAS_SYS (mbrtowc, size_t, (wchar_t *restrict pwc, const char *restrict s, size_t n, mbstate_t *restrict ps)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbrtowc); # endif #elif defined GNULIB_POSIXCHECK # undef mbrtowc # if HAVE_RAW_DECL_MBRTOWC _GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " "use gnulib module mbrtowc for portability"); # endif #endif /* Recognize a multibyte character. */ #if @GNULIB_MBRLEN@ # if @REPLACE_MBRLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrlen # define mbrlen rpl_mbrlen # endif _GL_FUNCDECL_RPL (mbrlen, size_t, (const char *restrict s, size_t n, mbstate_t *restrict ps)); _GL_CXXALIAS_RPL (mbrlen, size_t, (const char *restrict s, size_t n, mbstate_t *restrict ps)); # else # if !@HAVE_MBRLEN@ _GL_FUNCDECL_SYS (mbrlen, size_t, (const char *restrict s, size_t n, mbstate_t *restrict ps)); # endif _GL_CXXALIAS_SYS (mbrlen, size_t, (const char *restrict s, size_t n, mbstate_t *restrict ps)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbrlen); # endif #elif defined GNULIB_POSIXCHECK # undef mbrlen # if HAVE_RAW_DECL_MBRLEN _GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " "use gnulib module mbrlen for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSRTOWCS@ # if @REPLACE_MBSRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsrtowcs # define mbsrtowcs rpl_mbsrtowcs # endif _GL_FUNCDECL_RPL (mbsrtowcs, size_t, (wchar_t *restrict dest, const char **restrict srcp, size_t len, mbstate_t *restrict ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsrtowcs, size_t, (wchar_t *restrict dest, const char **restrict srcp, size_t len, mbstate_t *restrict ps)); # else # if !@HAVE_MBSRTOWCS@ _GL_FUNCDECL_SYS (mbsrtowcs, size_t, (wchar_t *restrict dest, const char **restrict srcp, size_t len, mbstate_t *restrict ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsrtowcs, size_t, (wchar_t *restrict dest, const char **restrict srcp, size_t len, mbstate_t *restrict ps)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbsrtowcs); # endif #elif defined GNULIB_POSIXCHECK # undef mbsrtowcs # if HAVE_RAW_DECL_MBSRTOWCS _GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " "use gnulib module mbsrtowcs for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSNRTOWCS@ # if @REPLACE_MBSNRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsnrtowcs # define mbsnrtowcs rpl_mbsnrtowcs # endif _GL_FUNCDECL_RPL (mbsnrtowcs, size_t, (wchar_t *restrict dest, const char **restrict srcp, size_t srclen, size_t len, mbstate_t *restrict ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsnrtowcs, size_t, (wchar_t *restrict dest, const char **restrict srcp, size_t srclen, size_t len, mbstate_t *restrict ps)); # else # if !@HAVE_MBSNRTOWCS@ _GL_FUNCDECL_SYS (mbsnrtowcs, size_t, (wchar_t *restrict dest, const char **restrict srcp, size_t srclen, size_t len, mbstate_t *restrict ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsnrtowcs, size_t, (wchar_t *restrict dest, const char **restrict srcp, size_t srclen, size_t len, mbstate_t *restrict ps)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbsnrtowcs); # endif #elif defined GNULIB_POSIXCHECK # undef mbsnrtowcs # if HAVE_RAW_DECL_MBSNRTOWCS _GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " "use gnulib module mbsnrtowcs for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCRTOMB@ # if @REPLACE_WCRTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcrtomb # define wcrtomb rpl_wcrtomb # endif _GL_FUNCDECL_RPL (wcrtomb, size_t, (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); _GL_CXXALIAS_RPL (wcrtomb, size_t, (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); # else # if !@HAVE_WCRTOMB@ _GL_FUNCDECL_SYS (wcrtomb, size_t, (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); # endif _GL_CXXALIAS_SYS (wcrtomb, size_t, (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcrtomb); # endif #elif defined GNULIB_POSIXCHECK # undef wcrtomb # if HAVE_RAW_DECL_WCRTOMB _GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " "use gnulib module wcrtomb for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSRTOMBS@ # if @REPLACE_WCSRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsrtombs # define wcsrtombs rpl_wcsrtombs # endif _GL_FUNCDECL_RPL (wcsrtombs, size_t, (char *restrict dest, const wchar_t **restrict srcp, size_t len, mbstate_t *restrict ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsrtombs, size_t, (char *restrict dest, const wchar_t **restrict srcp, size_t len, mbstate_t *restrict ps)); # else # if !@HAVE_WCSRTOMBS@ _GL_FUNCDECL_SYS (wcsrtombs, size_t, (char *restrict dest, const wchar_t **restrict srcp, size_t len, mbstate_t *restrict ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsrtombs, size_t, (char *restrict dest, const wchar_t **restrict srcp, size_t len, mbstate_t *restrict ps)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsrtombs); # endif #elif defined GNULIB_POSIXCHECK # undef wcsrtombs # if HAVE_RAW_DECL_WCSRTOMBS _GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " "use gnulib module wcsrtombs for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSNRTOMBS@ # if @REPLACE_WCSNRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsnrtombs # define wcsnrtombs rpl_wcsnrtombs # endif _GL_FUNCDECL_RPL (wcsnrtombs, size_t, (char *restrict dest, const wchar_t **restrict srcp, size_t srclen, size_t len, mbstate_t *restrict ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsnrtombs, size_t, (char *restrict dest, const wchar_t **restrict srcp, size_t srclen, size_t len, mbstate_t *restrict ps)); # else # if !@HAVE_WCSNRTOMBS@ || (defined __cplusplus && defined __sun) _GL_FUNCDECL_SYS (wcsnrtombs, size_t, (char *restrict dest, const wchar_t **restrict srcp, size_t srclen, size_t len, mbstate_t *restrict ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsnrtombs, size_t, (char *restrict dest, const wchar_t **restrict srcp, size_t srclen, size_t len, mbstate_t *restrict ps)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsnrtombs); # endif #elif defined GNULIB_POSIXCHECK # undef wcsnrtombs # if HAVE_RAW_DECL_WCSNRTOMBS _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " "use gnulib module wcsnrtombs for portability"); # endif #endif /* Return the number of screen columns needed for WC. */ #if @GNULIB_WCWIDTH@ # if @REPLACE_WCWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcwidth # define wcwidth rpl_wcwidth # endif _GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); # else # if !@HAVE_DECL_WCWIDTH@ /* wcwidth exists but is not declared. */ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcwidth); # endif #elif defined GNULIB_POSIXCHECK # undef wcwidth # if HAVE_RAW_DECL_WCWIDTH _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " "use gnulib module wcwidth for portability"); # endif #endif /* Search N wide characters of S for C. */ #if @GNULIB_WMEMCHR@ # if !@HAVE_WMEMCHR@ _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (wmemchr, wchar_t *, (const wchar_t *, wchar_t, size_t), const wchar_t *, (const wchar_t *, wchar_t, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (wmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef wmemchr # if HAVE_RAW_DECL_WMEMCHR _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " "use gnulib module wmemchr for portability"); # endif #endif /* Compare N wide characters of S1 and S2. */ #if @GNULIB_WMEMCMP@ # if !@HAVE_WMEMCMP@ _GL_FUNCDECL_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wmemcmp); # endif #elif defined GNULIB_POSIXCHECK # undef wmemcmp # if HAVE_RAW_DECL_WMEMCMP _GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " "use gnulib module wmemcmp for portability"); # endif #endif /* Copy N wide characters of SRC to DEST. */ #if @GNULIB_WMEMCPY@ # if !@HAVE_WMEMCPY@ _GL_FUNCDECL_SYS (wmemcpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemcpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wmemcpy); # endif #elif defined GNULIB_POSIXCHECK # undef wmemcpy # if HAVE_RAW_DECL_WMEMCPY _GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " "use gnulib module wmemcpy for portability"); # endif #endif /* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ #if @GNULIB_WMEMMOVE@ # if !@HAVE_WMEMMOVE@ _GL_FUNCDECL_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wmemmove); # endif #elif defined GNULIB_POSIXCHECK # undef wmemmove # if HAVE_RAW_DECL_WMEMMOVE _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " "use gnulib module wmemmove for portability"); # endif #endif /* Copy N wide characters of SRC to DEST. Return pointer to wide characters after the last written wide character. */ #if @GNULIB_WMEMPCPY@ # if @REPLACE_WMEMPCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wmempcpy # define wmempcpy rpl_wmempcpy # endif _GL_FUNCDECL_RPL (wmempcpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); _GL_CXXALIAS_RPL (wmempcpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # else # if !@HAVE_WMEMPCPY@ _GL_FUNCDECL_SYS (wmempcpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # endif _GL_CXXALIAS_SYS (wmempcpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wmempcpy); # endif #elif defined GNULIB_POSIXCHECK # undef wmempcpy # if HAVE_RAW_DECL_WMEMPCPY _GL_WARN_ON_USE (wmempcpy, "wmempcpy is unportable - " "use gnulib module wmempcpy for portability"); # endif #endif /* Set N wide characters of S to C. */ #if @GNULIB_WMEMSET@ # if !@HAVE_WMEMSET@ _GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); # endif _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wmemset); # endif #elif defined GNULIB_POSIXCHECK # undef wmemset # if HAVE_RAW_DECL_WMEMSET _GL_WARN_ON_USE (wmemset, "wmemset is unportable - " "use gnulib module wmemset for portability"); # endif #endif /* Return the number of wide characters in S. */ #if @GNULIB_WCSLEN@ # if !@HAVE_WCSLEN@ _GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcslen); # endif #elif defined GNULIB_POSIXCHECK # undef wcslen # if HAVE_RAW_DECL_WCSLEN _GL_WARN_ON_USE (wcslen, "wcslen is unportable - " "use gnulib module wcslen for portability"); # endif #endif /* Return the number of wide characters in S, but at most MAXLEN. */ #if @GNULIB_WCSNLEN@ /* On Solaris 11.3, the header files declare the function in the std:: namespace, not in the global namespace. So, force a declaration in the global namespace. */ # if !@HAVE_WCSNLEN@ || (defined __sun && defined __cplusplus) _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); _GL_CXXALIASWARN (wcsnlen); #elif defined GNULIB_POSIXCHECK # undef wcsnlen # if HAVE_RAW_DECL_WCSNLEN _GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " "use gnulib module wcsnlen for portability"); # endif #endif /* Copy SRC to DEST. */ #if @GNULIB_WCSCPY@ # if !@HAVE_WCSCPY@ _GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src)); # endif _GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcscpy); # endif #elif defined GNULIB_POSIXCHECK # undef wcscpy # if HAVE_RAW_DECL_WCSCPY _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " "use gnulib module wcscpy for portability"); # endif #endif /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ #if @GNULIB_WCPCPY@ /* On Solaris 11.3, the header files declare the function in the std:: namespace, not in the global namespace. So, force a declaration in the global namespace. */ # if !@HAVE_WCPCPY@ || (defined __sun && defined __cplusplus) _GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src)); # endif _GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src)); _GL_CXXALIASWARN (wcpcpy); #elif defined GNULIB_POSIXCHECK # undef wcpcpy # if HAVE_RAW_DECL_WCPCPY _GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " "use gnulib module wcpcpy for portability"); # endif #endif /* Copy no more than N wide characters of SRC to DEST. */ #if @GNULIB_WCSNCPY@ # if !@HAVE_WCSNCPY@ _GL_FUNCDECL_SYS (wcsncpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsncpy); # endif #elif defined GNULIB_POSIXCHECK # undef wcsncpy # if HAVE_RAW_DECL_WCSNCPY _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " "use gnulib module wcsncpy for portability"); # endif #endif /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ #if @GNULIB_WCPNCPY@ /* On Solaris 11.3, the header files declare the function in the std:: namespace, not in the global namespace. So, force a declaration in the global namespace. */ # if !@HAVE_WCPNCPY@ || (defined __sun && defined __cplusplus) _GL_FUNCDECL_SYS (wcpncpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # endif _GL_CXXALIAS_SYS (wcpncpy, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); _GL_CXXALIASWARN (wcpncpy); #elif defined GNULIB_POSIXCHECK # undef wcpncpy # if HAVE_RAW_DECL_WCPNCPY _GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " "use gnulib module wcpncpy for portability"); # endif #endif /* Append SRC onto DEST. */ #if @GNULIB_WCSCAT@ # if !@HAVE_WCSCAT@ _GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src)); # endif _GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcscat); # endif #elif defined GNULIB_POSIXCHECK # undef wcscat # if HAVE_RAW_DECL_WCSCAT _GL_WARN_ON_USE (wcscat, "wcscat is unportable - " "use gnulib module wcscat for portability"); # endif #endif /* Append no more than N wide characters of SRC onto DEST. */ #if @GNULIB_WCSNCAT@ # if !@HAVE_WCSNCAT@ _GL_FUNCDECL_SYS (wcsncat, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncat, wchar_t *, (wchar_t *restrict dest, const wchar_t *restrict src, size_t n)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsncat); # endif #elif defined GNULIB_POSIXCHECK # undef wcsncat # if HAVE_RAW_DECL_WCSNCAT _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " "use gnulib module wcsncat for portability"); # endif #endif /* Compare S1 and S2. */ #if @GNULIB_WCSCMP@ # if !@HAVE_WCSCMP@ _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcscmp); # endif #elif defined GNULIB_POSIXCHECK # undef wcscmp # if HAVE_RAW_DECL_WCSCMP _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " "use gnulib module wcscmp for portability"); # endif #endif /* Compare no more than N wide characters of S1 and S2. */ #if @GNULIB_WCSNCMP@ # if !@HAVE_WCSNCMP@ _GL_FUNCDECL_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsncmp); # endif #elif defined GNULIB_POSIXCHECK # undef wcsncmp # if HAVE_RAW_DECL_WCSNCMP _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " "use gnulib module wcsncmp for portability"); # endif #endif /* Compare S1 and S2, ignoring case. */ #if @GNULIB_WCSCASECMP@ /* On Solaris 11.3, the header files declare the function in the std:: namespace, not in the global namespace. So, force a declaration in the global namespace. */ # if !@HAVE_WCSCASECMP@ || (defined __sun && defined __cplusplus) _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscasecmp); #elif defined GNULIB_POSIXCHECK # undef wcscasecmp # if HAVE_RAW_DECL_WCSCASECMP _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " "use gnulib module wcscasecmp for portability"); # endif #endif /* Compare no more than N chars of S1 and S2, ignoring case. */ #if @GNULIB_WCSNCASECMP@ /* On Solaris 11.3, the header files declare the function in the std:: namespace, not in the global namespace. So, force a declaration in the global namespace. */ # if !@HAVE_WCSNCASECMP@ || (defined __sun && defined __cplusplus) _GL_FUNCDECL_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncasecmp); #elif defined GNULIB_POSIXCHECK # undef wcsncasecmp # if HAVE_RAW_DECL_WCSNCASECMP _GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " "use gnulib module wcsncasecmp for portability"); # endif #endif /* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE category of the current locale. */ #if @GNULIB_WCSCOLL@ # if !@HAVE_WCSCOLL@ _GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); # endif _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcscoll); # endif #elif defined GNULIB_POSIXCHECK # undef wcscoll # if HAVE_RAW_DECL_WCSCOLL _GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " "use gnulib module wcscoll for portability"); # endif #endif /* Transform S2 into array pointed to by S1 such that if wcscmp is applied to two transformed strings the result is the as applying 'wcscoll' to the original strings. */ #if @GNULIB_WCSXFRM@ # if !@HAVE_WCSXFRM@ _GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); # endif _GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsxfrm); # endif #elif defined GNULIB_POSIXCHECK # undef wcsxfrm # if HAVE_RAW_DECL_WCSXFRM _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " "use gnulib module wcsxfrm for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_WCSDUP@ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsdup # define wcsdup _wcsdup # endif _GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); # else /* On Solaris 11.3, the header files declare the function in the std:: namespace, not in the global namespace. So, force a declaration in the global namespace. */ # if !@HAVE_WCSDUP@ || (defined __sun && defined __cplusplus) || __GNUC__ >= 11 _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); # endif _GL_CXXALIASWARN (wcsdup); #else # if __GNUC__ >= 11 && !defined wcsdup /* For -Wmismatched-dealloc: Associate wcsdup with free or rpl_free. */ _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # endif # if defined GNULIB_POSIXCHECK # undef wcsdup # if HAVE_RAW_DECL_WCSDUP _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " "use gnulib module wcsdup for portability"); # endif # elif @GNULIB_MDA_WCSDUP@ /* On native Windows, map 'wcsdup' to '_wcsdup', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::wcsdup always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsdup # define wcsdup _wcsdup # endif _GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); # else _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); # if @HAVE_DECL_WCSDUP@ _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_WCSDUP@ _GL_CXXALIASWARN (wcsdup); # endif # endif #endif /* Find the first occurrence of WC in WCS. */ #if @GNULIB_WCSCHR@ # if !@HAVE_WCSCHR@ _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcschr (const wchar_t *, wchar_t); wchar_t * std::wcschr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcschr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (wcschr); # endif #elif defined GNULIB_POSIXCHECK # undef wcschr # if HAVE_RAW_DECL_WCSCHR _GL_WARN_ON_USE (wcschr, "wcschr is unportable - " "use gnulib module wcschr for portability"); # endif #endif /* Find the last occurrence of WC in WCS. */ #if @GNULIB_WCSRCHR@ # if !@HAVE_WCSRCHR@ _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); wchar_t * std::wcsrchr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcsrchr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsrchr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsrchr # if HAVE_RAW_DECL_WCSRCHR _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " "use gnulib module wcsrchr for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters not in REJECT. */ #if @GNULIB_WCSCSPN@ # if !@HAVE_WCSCSPN@ _GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcscspn); # endif #elif defined GNULIB_POSIXCHECK # undef wcscspn # if HAVE_RAW_DECL_WCSCSPN _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " "use gnulib module wcscspn for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters in ACCEPT. */ #if @GNULIB_WCSSPN@ # if !@HAVE_WCSSPN@ _GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsspn); # endif #elif defined GNULIB_POSIXCHECK # undef wcsspn # if HAVE_RAW_DECL_WCSSPN _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " "use gnulib module wcsspn for portability"); # endif #endif /* Find the first occurrence in WCS of any character in ACCEPT. */ #if @GNULIB_WCSPBRK@ # if !@HAVE_WCSPBRK@ _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcspbrk, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, (wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (wcspbrk); # endif #elif defined GNULIB_POSIXCHECK # undef wcspbrk # if HAVE_RAW_DECL_WCSPBRK _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " "use gnulib module wcspbrk for portability"); # endif #endif /* Find the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_WCSSTR@ # if !@HAVE_WCSSTR@ _GL_FUNCDECL_SYS (wcsstr, wchar_t *, (const wchar_t *restrict haystack, const wchar_t *restrict needle) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); wchar_t * std::wcsstr (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcsstr, wchar_t *, (const wchar_t *restrict, const wchar_t *restrict), const wchar_t *, (const wchar_t *restrict, const wchar_t *restrict)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsstr, wchar_t *, (wchar_t *restrict haystack, const wchar_t *restrict needle)); _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, (const wchar_t *restrict haystack, const wchar_t *restrict needle)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsstr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsstr # if HAVE_RAW_DECL_WCSSTR _GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " "use gnulib module wcsstr for portability"); # endif #endif /* Divide WCS into tokens separated by characters in DELIM. */ #if @GNULIB_WCSTOK@ # if @REPLACE_WCSTOK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcstok # define wcstok rpl_wcstok # endif _GL_FUNCDECL_RPL (wcstok, wchar_t *, (wchar_t *restrict wcs, const wchar_t *restrict delim, wchar_t **restrict ptr)); _GL_CXXALIAS_RPL (wcstok, wchar_t *, (wchar_t *restrict wcs, const wchar_t *restrict delim, wchar_t **restrict ptr)); # else # if !@HAVE_WCSTOK@ _GL_FUNCDECL_SYS (wcstok, wchar_t *, (wchar_t *restrict wcs, const wchar_t *restrict delim, wchar_t **restrict ptr)); # endif _GL_CXXALIAS_SYS (wcstok, wchar_t *, (wchar_t *restrict wcs, const wchar_t *restrict delim, wchar_t **restrict ptr)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcstok); # endif #elif defined GNULIB_POSIXCHECK # undef wcstok # if HAVE_RAW_DECL_WCSTOK _GL_WARN_ON_USE (wcstok, "wcstok is unportable - " "use gnulib module wcstok for portability"); # endif #endif /* Determine number of column positions required for first N wide characters (or fewer if S ends before this) in S. */ #if @GNULIB_WCSWIDTH@ # if @REPLACE_WCSWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcswidth # define wcswidth rpl_wcswidth # endif _GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); # else # if !@HAVE_WCSWIDTH@ _GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcswidth); # endif #elif defined GNULIB_POSIXCHECK # undef wcswidth # if HAVE_RAW_DECL_WCSWIDTH _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " "use gnulib module wcswidth for portability"); # endif #endif /* Convert *TP to a date and time wide string. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/wcsftime.html>. */ #if @GNULIB_WCSFTIME@ # if @REPLACE_WCSFTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsftime # define wcsftime rpl_wcsftime # endif _GL_FUNCDECL_RPL (wcsftime, size_t, (wchar_t *restrict __buf, size_t __bufsize, const wchar_t *restrict __fmt, const struct tm *restrict __tp) _GL_ARG_NONNULL ((1, 3, 4))); _GL_CXXALIAS_RPL (wcsftime, size_t, (wchar_t *restrict __buf, size_t __bufsize, const wchar_t *restrict __fmt, const struct tm *restrict __tp)); # else # if !@HAVE_WCSFTIME@ _GL_FUNCDECL_SYS (wcsftime, size_t, (wchar_t *restrict __buf, size_t __bufsize, const wchar_t *restrict __fmt, const struct tm *restrict __tp) _GL_ARG_NONNULL ((1, 3, 4))); # endif _GL_CXXALIAS_SYS (wcsftime, size_t, (wchar_t *restrict __buf, size_t __bufsize, const wchar_t *restrict __fmt, const struct tm *restrict __tp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsftime); # endif #elif defined GNULIB_POSIXCHECK # undef wcsftime # if HAVE_RAW_DECL_WCSFTIME _GL_WARN_ON_USE (wcsftime, "wcsftime is unportable - " "use gnulib module wcsftime for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif ���������������������������������������������������������������������������������a2ps-4.15.5/lib/wctype-h.c��������������������������������������������������������������������������0000644�0000000�0000000�00000001626�14374751113�012027� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Inline functions for <wctype.h>. Copyright (C) 2012-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Normally this would be wctype.c, but that name's already taken. */ #include <config.h> #define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE #include "wctype.h" ����������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/wctype.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000043274�14374751113�012221� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A substitute for ISO C99 <wctype.h>, for platforms that lack it. Copyright (C) 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible and Paul Eggert. */ /* * ISO C 99 <wctype.h> for platforms that lack it. * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/wctype.h.html> * * iswctype, towctrans, towlower, towupper, wctrans, wctype, * wctrans_t, and wctype_t are not yet implemented. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if (defined __MINGW32__ && defined __CTYPE_H_SOURCED__) /* Special invocation convention: - With MinGW 3.22, when <ctype.h> includes <wctype.h>, only some part of <wctype.h> is being processed, which doesn't include the idempotency guard. */ #@INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCTYPE_H #if @HAVE_WINT_T@ /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */ # include <wchar.h> #endif /* Native Windows (mingw, MSVC) have declarations of towupper, towlower, and isw* functions in <ctype.h>, <wchar.h> as well as in <wctype.h>. Include <ctype.h>, <wchar.h> in advance to avoid rpl_ prefix being added to the declarations. */ #if defined _WIN32 && ! defined __CYGWIN__ # include <ctype.h> # include <wchar.h> #endif /* Include the original <wctype.h> if it exists. BeOS 5 has the functions but no <wctype.h>. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCTYPE_H@ # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #endif #ifndef _@GUARD_PREFIX@_WCTYPE_H #define _@GUARD_PREFIX@_WCTYPE_H #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_WCTYPE_INLINE # define _GL_WCTYPE_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which #defines a number of identifiers in the application namespace. Revert these #defines. */ #ifdef __sun # undef multibyte # undef eucw1 # undef eucw2 # undef eucw3 # undef scrw1 # undef scrw2 # undef scrw3 #endif /* Define wint_t and WEOF. (Also done in wchar.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or <stddef.h>. This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if @GNULIBHEADERS_OVERRIDE_WINT_T@ # if !GNULIB_defined_wint_t # if @HAVE_CRTDEFS_H@ # include <crtdefs.h> # else # include <stddef.h> # endif typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif #if !GNULIB_defined_wctype_functions /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions. Linux libc5 has <wctype.h> and the functions but they are broken. mingw and MSVC have <wctype.h> and the functions but they take a wchar_t as argument, not an rpl_wint_t. Assume all 11 functions (all isw* except iswblank) are implemented the same way, or not at all. */ # if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ # if @GNULIBHEADERS_OVERRIDE_WINT_T@ /* implies @REPLACE_ISWCNTRL@ */ _GL_WCTYPE_INLINE int rpl_iswalnum (wint_t wc) { return ((wchar_t) wc == wc ? iswalnum ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswalpha (wint_t wc) { return ((wchar_t) wc == wc ? iswalpha ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswblank (wint_t wc) { return ((wchar_t) wc == wc ? iswblank ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswcntrl (wint_t wc) { return ((wchar_t) wc == wc ? iswcntrl ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswdigit (wint_t wc) { return ((wchar_t) wc == wc ? wc >= '0' && wc <= '9' : 0); } _GL_WCTYPE_INLINE int rpl_iswgraph (wint_t wc) { return ((wchar_t) wc == wc ? iswgraph ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswlower (wint_t wc) { return ((wchar_t) wc == wc ? iswlower ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswprint (wint_t wc) { return ((wchar_t) wc == wc ? iswprint ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswpunct (wint_t wc) { return ((wchar_t) wc == wc ? iswpunct ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswspace (wint_t wc) { return ((wchar_t) wc == wc ? iswspace ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswupper (wint_t wc) { return ((wchar_t) wc == wc ? iswupper ((wchar_t) wc) : 0); } _GL_WCTYPE_INLINE int rpl_iswxdigit (wint_t wc) { return ((wchar_t) wc == wc ? (wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F') : 0); } _GL_WCTYPE_INLINE wint_t rpl_towlower (wint_t wc) { return ((wchar_t) wc == wc ? (wchar_t) towlower ((wchar_t) wc) : wc); } _GL_WCTYPE_INLINE wint_t rpl_towupper (wint_t wc) { return ((wchar_t) wc == wc ? (wchar_t) towupper ((wchar_t) wc) : wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef iswalnum # undef iswalpha # undef iswblank # undef iswcntrl # undef iswdigit # undef iswgraph # undef iswlower # undef iswprint # undef iswpunct # undef iswspace # undef iswupper # undef iswxdigit # undef towlower # undef towupper # define iswalnum rpl_iswalnum # define iswalpha rpl_iswalpha # define iswblank rpl_iswblank # define iswcntrl rpl_iswcntrl # define iswdigit rpl_iswdigit # define iswgraph rpl_iswgraph # define iswlower rpl_iswlower # define iswprint rpl_iswprint # define iswpunct rpl_iswpunct # define iswspace rpl_iswspace # define iswupper rpl_iswupper # define iswxdigit rpl_iswxdigit # define towlower rpl_towlower # define towupper rpl_towupper # endif # else /* IRIX 5.3 has macros but no functions, its isw* macros refer to an undefined variable _ctmp_ and to <ctype.h> macros like _P, and they refer to system functions like _iswctype that are not in the standard C library. Rather than try to get ancient buggy implementations like this to work, just disable them. */ # undef iswalnum # undef iswalpha # undef iswblank # undef iswcntrl # undef iswdigit # undef iswgraph # undef iswlower # undef iswprint # undef iswpunct # undef iswspace # undef iswupper # undef iswxdigit # undef towlower # undef towupper /* Linux libc5 has <wctype.h> and the functions but they are broken. */ # if @REPLACE_ISWCNTRL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswalnum rpl_iswalnum # define iswalpha rpl_iswalpha # define iswblank rpl_iswblank # define iswcntrl rpl_iswcntrl # define iswdigit rpl_iswdigit # define iswgraph rpl_iswgraph # define iswlower rpl_iswlower # define iswprint rpl_iswprint # define iswpunct rpl_iswpunct # define iswspace rpl_iswspace # define iswupper rpl_iswupper # define iswxdigit rpl_iswxdigit # endif # endif # if @REPLACE_TOWLOWER@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # define towupper rpl_towupper # endif # endif _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswalnum # else iswalnum # endif (wint_t wc) { return ((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswalpha # else iswalpha # endif (wint_t wc) { return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswblank # else iswblank # endif (wint_t wc) { return wc == ' ' || wc == '\t'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswcntrl # else iswcntrl # endif (wint_t wc) { return (wc & ~0x1f) == 0 || wc == 0x7f; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWDIGIT@ rpl_iswdigit # else iswdigit # endif (wint_t wc) { return wc >= '0' && wc <= '9'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswgraph # else iswgraph # endif (wint_t wc) { return wc >= '!' && wc <= '~'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswlower # else iswlower # endif (wint_t wc) { return wc >= 'a' && wc <= 'z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswprint # else iswprint # endif (wint_t wc) { return wc >= ' ' && wc <= '~'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswpunct # else iswpunct # endif (wint_t wc) { return (wc >= '!' && wc <= '~' && !((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'))); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswspace # else iswspace # endif (wint_t wc) { return (wc == ' ' || wc == '\t' || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r'); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswupper # else iswupper # endif (wint_t wc) { return wc >= 'A' && wc <= 'Z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWXDIGIT@ rpl_iswxdigit # else iswxdigit # endif (wint_t wc) { return ((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F')); } _GL_WCTYPE_INLINE wint_t # if @REPLACE_TOWLOWER@ rpl_towlower # else towlower # endif (wint_t wc) { return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc); } _GL_WCTYPE_INLINE wint_t # if @REPLACE_TOWLOWER@ rpl_towupper # else towupper # endif (wint_t wc) { return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); } # endif # else /* Only some of the functions are missing or broken. */ # if @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@) /* Only the iswblank function is missing. */ # if @REPLACE_ISWBLANK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswblank rpl_iswblank # endif _GL_FUNCDECL_RPL (iswblank, int, (wint_t wc)); # else _GL_FUNCDECL_SYS (iswblank, int, (wint_t wc)); # endif # endif # if @GNULIB_ISWDIGIT@ # if @REPLACE_ISWDIGIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef iswdigit # define iswdigit rpl_iswdigit # endif _GL_FUNCDECL_RPL (iswdigit, int, (wint_t wc)); # endif # endif # if @GNULIB_ISWXDIGIT@ # if @REPLACE_ISWXDIGIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef iswxdigit # define iswxdigit rpl_iswxdigit # endif _GL_FUNCDECL_RPL (iswxdigit, int, (wint_t wc)); # endif # endif # endif # if defined __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@ /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t. The functions towlower and towupper are implemented in the MSVCRT library to take a wchar_t argument and return a wchar_t result. mingw declares these functions to take a wint_t argument and return a wint_t result. This means that: 1. When the user passes an argument outside the range 0x0000..0xFFFF, the function will look only at the lower 16 bits. This is allowed according to POSIX. 2. The return value is returned in the lower 16 bits of the result register. The upper 16 bits are random: whatever happened to be in that part of the result register. We need to fix this by adding a zero-extend from wchar_t to wint_t after the call. */ _GL_WCTYPE_INLINE wint_t rpl_towlower (wint_t wc) { return (wint_t) (wchar_t) towlower (wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # endif _GL_WCTYPE_INLINE wint_t rpl_towupper (wint_t wc) { return (wint_t) (wchar_t) towupper (wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towupper rpl_towupper # endif # endif /* __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@ */ # define GNULIB_defined_wctype_functions 1 #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc)); #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc)); #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc)); #endif #if @GNULIB_ISWDIGIT@ # if @REPLACE_ISWDIGIT@ _GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); # else _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc)); # endif #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc)); #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswlower, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswlower, int, (wint_t wc)); #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswprint, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswprint, int, (wint_t wc)); #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc)); #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswspace, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswspace, int, (wint_t wc)); #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswupper, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswupper, int, (wint_t wc)); #endif #if @GNULIB_ISWXDIGIT@ # if @REPLACE_ISWXDIGIT@ _GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc)); # else _GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc)); # endif #endif #if __GLIBC__ >= 2 _GL_CXXALIASWARN (iswalnum); _GL_CXXALIASWARN (iswalpha); _GL_CXXALIASWARN (iswcntrl); _GL_CXXALIASWARN (iswdigit); _GL_CXXALIASWARN (iswgraph); _GL_CXXALIASWARN (iswlower); _GL_CXXALIASWARN (iswprint); _GL_CXXALIASWARN (iswpunct); _GL_CXXALIASWARN (iswspace); _GL_CXXALIASWARN (iswupper); _GL_CXXALIASWARN (iswxdigit); #endif #if @GNULIB_ISWBLANK@ # if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@ _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); # else _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (iswblank); # endif #endif #if !@HAVE_WCTYPE_T@ # if !GNULIB_defined_wctype_t typedef void * wctype_t; # define GNULIB_defined_wctype_t 1 # endif #endif /* Get a descriptor for a wide character property. */ #if @GNULIB_WCTYPE@ # if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctype); # endif #elif defined GNULIB_POSIXCHECK # undef wctype # if HAVE_RAW_DECL_WCTYPE _GL_WARN_ON_USE (wctype, "wctype is unportable - " "use gnulib module wctype for portability"); # endif #endif /* Test whether a wide character has a given property. The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctype() function. */ #if @GNULIB_ISWCTYPE@ # if @GNULIBHEADERS_OVERRIDE_WINT_T@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef iswctype # define iswctype rpl_iswctype # endif _GL_FUNCDECL_RPL (iswctype, int, (wint_t wc, wctype_t desc)); _GL_CXXALIAS_RPL (iswctype, int, (wint_t wc, wctype_t desc)); # else # if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc)); # endif _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (iswctype); # endif #elif defined GNULIB_POSIXCHECK # undef iswctype # if HAVE_RAW_DECL_ISWCTYPE _GL_WARN_ON_USE (iswctype, "iswctype is unportable - " "use gnulib module iswctype for portability"); # endif #endif #if @REPLACE_TOWLOWER@ || defined __MINGW32__ _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc)); #else _GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc)); #endif #if __GLIBC__ >= 2 _GL_CXXALIASWARN (towlower); _GL_CXXALIASWARN (towupper); #endif #if !@HAVE_WCTRANS_T@ # if !GNULIB_defined_wctrans_t typedef void * wctrans_t; # define GNULIB_defined_wctrans_t 1 # endif #endif /* Get a descriptor for a wide character case conversion. */ #if @GNULIB_WCTRANS@ # if !@HAVE_WCTRANS_T@ _GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctrans); # endif #elif defined GNULIB_POSIXCHECK # undef wctrans # if HAVE_RAW_DECL_WCTRANS _GL_WARN_ON_USE (wctrans, "wctrans is unportable - " "use gnulib module wctrans for portability"); # endif #endif /* Perform a given case conversion on a wide character. The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctrans() function. */ #if @GNULIB_TOWCTRANS@ # if !@HAVE_WCTRANS_T@ _GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); # endif _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); # if __GLIBC__ >= 2 _GL_CXXALIASWARN (towctrans); # endif #elif defined GNULIB_POSIXCHECK # undef towctrans # if HAVE_RAW_DECL_TOWCTRANS _GL_WARN_ON_USE (towctrans, "towctrans is unportable - " "use gnulib module towctrans for portability"); # endif #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_WCTYPE_H */ #endif /* _@GUARD_PREFIX@_WCTYPE_H */ #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/windows-initguard.h�����������������������������������������������������������������0000644�0000000�0000000�00000002316�14374751113�013747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Init guards, somewhat like spinlocks (native Windows implementation). Copyright (C) 2005-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2005. Based on GCC's gthr-win32.h. */ #ifndef _WINDOWS_INITGUARD_H #define _WINDOWS_INITGUARD_H #define WIN32_LEAN_AND_MEAN /* avoid including junk */ #include <windows.h> typedef struct { volatile int done; volatile LONG started; } glwthread_initguard_t; #define GLWTHREAD_INITGUARD_INIT { 0, -1 } #endif /* _WINDOWS_INITGUARD_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xalloc-die.c������������������������������������������������������������������������0000644�0000000�0000000�00000002435�14374751113�012307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Report a memory allocation failure and exit. Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #include "xalloc.h" #include <stdlib.h> #include "error.h" #include "exitfail.h" #include "gettext.h" #define _(msgid) gettext (msgid) void xalloc_die (void) { error (exit_failure, 0, "%s", _("memory exhausted")); /* _Noreturn cannot be given to error, since it may return if its first argument is 0. To help compilers understand the xalloc_die does not return, call abort. Also, the abort is a safety feature if exit_failure is 0 (which shouldn't happen). */ abort (); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xalloc-oversized.h������������������������������������������������������������������0000644�0000000�0000000�00000005120�14374751113�013557� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xalloc-oversized.h -- memory allocation size checking Copyright (C) 1990-2000, 2003-2004, 2006-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef XALLOC_OVERSIZED_H_ #define XALLOC_OVERSIZED_H_ #include <stddef.h> #include <stdint.h> /* True if N * S does not fit into both ptrdiff_t and size_t. N and S should be nonnegative and free of side effects. This expands to a constant expression if N and S are both constants. By gnulib convention, SIZE_MAX represents overflow in size_t calculations, so the conservative size_t-based dividend to use here is SIZE_MAX - 1. */ #define __xalloc_oversized(n, s) \ ((s) != 0 \ && ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) \ < (n))) /* Return 1 if and only if an array of N objects, each of size S, cannot exist reliably because its total size in bytes would exceed MIN (PTRDIFF_MAX, SIZE_MAX - 1). N and S should be nonnegative and free of side effects. Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can misbehave if N and S are both narrower than ptrdiff_t and size_t, and can be rewritten as (xalloc_oversized (N, S) ? NULL : malloc (N * (size_t) S)). This is a macro, not a function, so that it works even if an argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX). */ #if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX # define xalloc_oversized(n, s) \ __builtin_mul_overflow_p (n, s, (ptrdiff_t) 1) #elif (5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ \ && PTRDIFF_MAX < SIZE_MAX) # define xalloc_oversized(n, s) \ (__builtin_constant_p (n) && __builtin_constant_p (s) \ ? __xalloc_oversized (n, s) \ : ({ ptrdiff_t __xalloc_count; \ __builtin_mul_overflow (n, s, &__xalloc_count); })) /* Other compilers use integer division; this may be slower but is more portable. */ #else # define xalloc_oversized(n, s) __xalloc_oversized (n, s) #endif #endif /* !XALLOC_OVERSIZED_H_ */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xalloc.h����������������������������������������������������������������������������0000644�0000000�0000000�00000015242�14374751113�011555� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xalloc.h -- malloc with out-of-memory checking Copyright (C) 1990-2000, 2003-2004, 2006-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef XALLOC_H_ #define XALLOC_H_ #include <stddef.h> #include <stdlib.h> #if GNULIB_XALLOC # include "idx.h" #endif #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef XALLOC_INLINE # define XALLOC_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif #if GNULIB_XALLOC_DIE /* This function is always triggered when memory is exhausted. It must be defined by the application, either explicitly or by using gnulib's xalloc-die module. This is the function to call when one wants the program to die because of a memory allocation failure. */ /*extern*/ _Noreturn void xalloc_die (void); #endif /* GNULIB_XALLOC_DIE */ #if GNULIB_XALLOC void *xmalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *ximalloc (idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *xinmalloc (idx_t n, idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *xzalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *xizalloc (idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *xcalloc (size_t n, size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *xicalloc (idx_t n, idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *xrealloc (void *p, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)); void *xirealloc (void *p, idx_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *xreallocarray (void *p, size_t n, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); void *xireallocarray (void *p, idx_t n, idx_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *x2realloc (void *p, size_t *ps) /* superseded by xpalloc */ _GL_ATTRIBUTE_RETURNS_NONNULL; void *x2nrealloc (void *p, size_t *pn, size_t s) /* superseded by xpalloc */ _GL_ATTRIBUTE_RETURNS_NONNULL; void *xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s) _GL_ATTRIBUTE_RETURNS_NONNULL; void *xmemdup (void const *p, size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; void *ximemdup (void const *p, idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; char *ximemdup0 (void const *p, idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; char *xstrdup (char const *str) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; /* In the following macros, T must be an elementary or structure/union or typedef'ed type, or a pointer to such a type. To apply one of the following macros to a function pointer or array type, you need to typedef it first and use the typedef name. */ /* Allocate an object of type T dynamically, with error checking. */ /* extern t *XMALLOC (typename t); */ # define XMALLOC(t) ((t *) xmalloc (sizeof (t))) /* Allocate memory for N elements of type T, with error checking. */ /* extern t *XNMALLOC (size_t n, typename t); */ # define XNMALLOC(n, t) \ ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t)))) /* Allocate an object of type T dynamically, with error checking, and zero it. */ /* extern t *XZALLOC (typename t); */ # define XZALLOC(t) ((t *) xzalloc (sizeof (t))) /* Allocate memory for N elements of type T, with error checking, and zero it. */ /* extern t *XCALLOC (size_t n, typename t); */ # define XCALLOC(n, t) \ ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t)))) /* Allocate an array of N objects, each with S bytes of memory, dynamically, with error checking. S must be nonzero. */ void *xnmalloc (size_t n, size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; /* FIXME: Deprecate this in favor of xreallocarray? */ /* Change the size of an allocated block of memory P to an array of N objects each of S bytes, with error checking. S must be nonzero. */ XALLOC_INLINE void *xnrealloc (void *p, size_t n, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); XALLOC_INLINE void * xnrealloc (void *p, size_t n, size_t s) { return xreallocarray (p, n, s); } /* Return a pointer to a new buffer of N bytes. This is like xmalloc, except it returns char *. */ char *xcharalloc (size_t n) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; #endif /* GNULIB_XALLOC */ #ifdef __cplusplus } #endif #if GNULIB_XALLOC && defined __cplusplus /* C++ does not allow conversions from void * to other pointer types without a cast. Use templates to work around the problem when possible. */ template <typename T> inline T * xrealloc (T *p, size_t s) { return (T *) xrealloc ((void *) p, s); } template <typename T> inline T * xreallocarray (T *p, size_t n, size_t s) { return (T *) xreallocarray ((void *) p, n, s); } /* FIXME: Deprecate this in favor of xreallocarray? */ template <typename T> inline T * xnrealloc (T *p, size_t n, size_t s) { return xreallocarray (p, n, s); } template <typename T> inline T * x2realloc (T *p, size_t *pn) { return (T *) x2realloc ((void *) p, pn); } template <typename T> inline T * x2nrealloc (T *p, size_t *pn, size_t s) { return (T *) x2nrealloc ((void *) p, pn, s); } template <typename T> inline T * xmemdup (T const *p, size_t s) { return (T *) xmemdup ((void const *) p, s); } #endif /* GNULIB_XALLOC && C++ */ _GL_INLINE_HEADER_END #endif /* !XALLOC_H_ */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xgetaname-impl.h��������������������������������������������������������������������0000644�0000000�0000000�00000004171�14374751113�013202� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xgetaname-impl.c -- common implementation of xgethostname and xgetdomainname Copyright (C) 1992, 1996, 2000-2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering and Paul Eggert */ #include <stdlib.h> #include <errno.h> #include <string.h> #include <unistd.h> #include "xalloc.h" /* Return the current host or domain name in malloc'd storage. If malloc fails, exit. Upon any other failure, return NULL and set errno. */ char * XGETANAME (void) { char buf[100]; idx_t size = sizeof buf; char *name = buf; char *alloc = NULL; while (1) { /* Use SIZE_1 here rather than SIZE to work around the bug in SunOS 5.5's gethostname whereby it NUL-terminates HOSTNAME even when the name is as long as the supplied buffer. */ idx_t size_1 = size - 1; name[size_1] = '\0'; errno = 0; if (GETANAME (name, size_1) == 0) { /* Check whether the name was possibly truncated; POSIX does not specify whether a truncated name is null-terminated. */ idx_t actual_size = strlen (name) + 1; if (actual_size < size_1) return alloc ? alloc : ximemdup (name, actual_size); errno = 0; } free (alloc); if (errno != 0 && errno != ENAMETOOLONG && errno != EINVAL /* macOS/Darwin does this when SIZE_1 is too small. */ && errno != ENOMEM) return NULL; name = alloc = xpalloc (NULL, &size, 1, -1, 1); } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xgethostname.c����������������������������������������������������������������������0000644�0000000�0000000�00000001771�14374751113�012776� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xgethostname.c -- return current hostname with unlimited length Copyright (C) 1992, 1996, 2000-2001, 2003-2006, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Jim Meyering and Paul Eggert */ #include <config.h> /* Specification. */ #include "xgethostname.h" #define GETANAME gethostname #define XGETANAME xgethostname #include "xgetaname-impl.h" �������a2ps-4.15.5/lib/xgethostname.h����������������������������������������������������������������������0000644�0000000�0000000�00000001522�14374751113�012775� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Return current hostname with unlimited length. Copyright (C) 2003-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <stdlib.h> char *xgethostname (void) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xmalloc.c���������������������������������������������������������������������������0000644�0000000�0000000�00000020272�14374751113�011724� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xmalloc.c -- malloc with out of memory checking Copyright (C) 1990-2000, 2002-2006, 2008-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #define XALLOC_INLINE _GL_EXTERN_INLINE #include "xalloc.h" #include "ialloc.h" #include "minmax.h" #include <stdckdint.h> #include <stdlib.h> #include <stdint.h> #include <string.h> static void * _GL_ATTRIBUTE_PURE nonnull (void *p) { if (!p) xalloc_die (); return p; } /* Allocate S bytes of memory dynamically, with error checking. */ void * xmalloc (size_t s) { return nonnull (malloc (s)); } void * ximalloc (idx_t s) { return nonnull (imalloc (s)); } char * xcharalloc (size_t n) { return XNMALLOC (n, char); } /* Change the size of an allocated block of memory P to S bytes, with error checking. */ void * xrealloc (void *p, size_t s) { void *r = realloc (p, s); if (!r && (!p || s)) xalloc_die (); return r; } void * xirealloc (void *p, idx_t s) { return nonnull (irealloc (p, s)); } /* Change the size of an allocated block of memory P to an array of N objects each of S bytes, with error checking. */ void * xreallocarray (void *p, size_t n, size_t s) { void *r = reallocarray (p, n, s); if (!r && (!p || (n && s))) xalloc_die (); return r; } void * xireallocarray (void *p, idx_t n, idx_t s) { return nonnull (ireallocarray (p, n, s)); } /* Allocate an array of N objects, each with S bytes of memory, dynamically, with error checking. S must be nonzero. */ void * xnmalloc (size_t n, size_t s) { return xreallocarray (NULL, n, s); } void * xinmalloc (idx_t n, idx_t s) { return xireallocarray (NULL, n, s); } /* If P is null, allocate a block of at least *PS bytes; otherwise, reallocate P so that it contains more than *PS bytes. *PS must be nonzero unless P is null. Set *PS to the new block's size, and return the pointer to the new block. *PS is never set to zero, and the returned pointer is never null. */ void * x2realloc (void *p, size_t *ps) { return x2nrealloc (p, ps, 1); } /* If P is null, allocate a block of at least *PN such objects; otherwise, reallocate P so that it contains more than *PN objects each of S bytes. S must be nonzero. Set *PN to the new number of objects, and return the pointer to the new block. *PN is never set to zero, and the returned pointer is never null. Repeated reallocations are guaranteed to make progress, either by allocating an initial block with a nonzero size, or by allocating a larger block. In the following implementation, nonzero sizes are increased by a factor of approximately 1.5 so that repeated reallocations have O(N) overall cost rather than O(N**2) cost, but the specification for this function does not guarantee that rate. Here is an example of use: int *p = NULL; size_t used = 0; size_t allocated = 0; void append_int (int value) { if (used == allocated) p = x2nrealloc (p, &allocated, sizeof *p); p[used++] = value; } This causes x2nrealloc to allocate a block of some nonzero size the first time it is called. To have finer-grained control over the initial size, set *PN to a nonzero value before calling this function with P == NULL. For example: int *p = NULL; size_t used = 0; size_t allocated = 0; size_t allocated1 = 1000; void append_int (int value) { if (used == allocated) { p = x2nrealloc (p, &allocated1, sizeof *p); allocated = allocated1; } p[used++] = value; } */ void * x2nrealloc (void *p, size_t *pn, size_t s) { size_t n = *pn; if (! p) { if (! n) { /* The approximate size to use for initial small allocation requests, when the invoking code specifies an old size of zero. This is the largest "small" request for the GNU C library malloc. */ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; n = DEFAULT_MXFAST / s; n += !n; } } else { /* Set N = floor (1.5 * N) + 1 to make progress even if N == 0. */ if (ckd_add (&n, n, (n >> 1) + 1)) xalloc_die (); } p = xreallocarray (p, n, s); *pn = n; return p; } /* Grow PA, which points to an array of *PN items, and return the location of the reallocated array, updating *PN to reflect its new size. The new array will contain at least N_INCR_MIN more items, but will not contain more than N_MAX items total. S is the size of each item, in bytes. S and N_INCR_MIN must be positive. *PN must be nonnegative. If N_MAX is -1, it is treated as if it were infinity. If PA is null, then allocate a new array instead of reallocating the old one. Thus, to grow an array A without saving its old contents, do { free (A); A = xpalloc (NULL, &AITEMS, ...); }. */ void * xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s) { idx_t n0 = *pn; /* The approximate size to use for initial small allocation requests. This is the largest "small" request for the GNU C library malloc. */ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; /* If the array is tiny, grow it to about (but no greater than) DEFAULT_MXFAST bytes. Otherwise, grow it by about 50%. Adjust the growth according to three constraints: N_INCR_MIN, N_MAX, and what the C language can represent safely. */ idx_t n; if (ckd_add (&n, n0, n0 >> 1)) n = IDX_MAX; if (0 <= n_max && n_max < n) n = n_max; /* NBYTES is of a type suitable for holding the count of bytes in an object. This is typically idx_t, but it should be size_t on (theoretical?) platforms where SIZE_MAX < IDX_MAX so xpalloc does not pass values greater than SIZE_MAX to xrealloc. */ #if IDX_MAX <= SIZE_MAX idx_t nbytes; #else size_t nbytes; #endif idx_t adjusted_nbytes = (ckd_mul (&nbytes, n, s) ? MIN (IDX_MAX, SIZE_MAX) : nbytes < DEFAULT_MXFAST ? DEFAULT_MXFAST : 0); if (adjusted_nbytes) { n = adjusted_nbytes / s; nbytes = adjusted_nbytes - adjusted_nbytes % s; } if (! pa) *pn = 0; if (n - n0 < n_incr_min && (ckd_add (&n, n0, n_incr_min) || (0 <= n_max && n_max < n) || ckd_mul (&nbytes, n, s))) xalloc_die (); pa = xrealloc (pa, nbytes); *pn = n; return pa; } /* Allocate S bytes of zeroed memory dynamically, with error checking. There's no need for xnzalloc (N, S), since it would be equivalent to xcalloc (N, S). */ void * xzalloc (size_t s) { return xcalloc (s, 1); } void * xizalloc (idx_t s) { return xicalloc (s, 1); } /* Allocate zeroed memory for N elements of S bytes, with error checking. S must be nonzero. */ void * xcalloc (size_t n, size_t s) { return nonnull (calloc (n, s)); } void * xicalloc (idx_t n, idx_t s) { return nonnull (icalloc (n, s)); } /* Clone an object P of size S, with error checking. There's no need for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any need for an arithmetic overflow check. */ void * xmemdup (void const *p, size_t s) { return memcpy (xmalloc (s), p, s); } void * ximemdup (void const *p, idx_t s) { return memcpy (ximalloc (s), p, s); } /* Clone an object P of size S, with error checking. Append a terminating NUL byte. */ char * ximemdup0 (void const *p, idx_t s) { char *result = ximalloc (s + 1); result[s] = 0; return memcpy (result, p, s); } /* Clone STRING. */ char * xstrdup (char const *string) { return xmemdup (string, strlen (string) + 1); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xstrndup.c��������������������������������������������������������������������������0000644�0000000�0000000�00000002246�14374751113�012155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Duplicate a bounded initial segment of a string, with out-of-memory checking. Copyright (C) 2003, 2006-2007, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "xstrndup.h" #include <string.h> #include "xalloc.h" /* Return a newly allocated copy of at most N bytes of STRING. In other words, return a copy of the initial segment of length N of STRING. */ char * xstrndup (const char *string, size_t n) { char *s = strndup (string, n); if (! s) xalloc_die (); return s; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xstrndup.h��������������������������������������������������������������������������0000644�0000000�0000000�00000002117�14374751113�012157� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Duplicate a bounded initial segment of a string, with out-of-memory checking. Copyright (C) 2003, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <stdlib.h> /* Return a newly allocated copy of at most N bytes of STRING. In other words, return a copy of the initial segment of length N of STRING. */ extern char *xstrndup (const char *string, size_t n) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_RETURNS_NONNULL; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xstrtol.c���������������������������������������������������������������������������0000644�0000000�0000000�00000014371�14374751113�012007� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A more useful interface to strtol. Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #ifndef __strtol # define __strtol strtol # define __strtol_t long int # define __xstrtol xstrtol # define STRTOL_T_MINIMUM LONG_MIN # define STRTOL_T_MAXIMUM LONG_MAX #endif #include <config.h> #include "xstrtol.h" /* Some pre-ANSI implementations (e.g. SunOS 4) need stderr defined if assertion checking is enabled. */ #include <stdio.h> #include <ctype.h> #include <errno.h> #include <limits.h> #include <stdlib.h> #include <string.h> #if XSTRTOL_INCLUDE_INTTYPES_H # include <inttypes.h> #endif #include "assure.h" #include "intprops.h" static strtol_error bkm_scale (__strtol_t *x, int scale_factor) { __strtol_t scaled; if (INT_MULTIPLY_WRAPV (*x, scale_factor, &scaled)) { *x = *x < 0 ? TYPE_MINIMUM (__strtol_t) : TYPE_MAXIMUM (__strtol_t); return LONGINT_OVERFLOW; } *x = scaled; return LONGINT_OK; } static strtol_error bkm_scale_by_power (__strtol_t *x, int base, int power) { strtol_error err = LONGINT_OK; while (power--) err |= bkm_scale (x, base); return err; } /* FIXME: comment. */ strtol_error __xstrtol (const char *s, char **ptr, int strtol_base, __strtol_t *val, const char *valid_suffixes) { char *t_ptr; char **p; __strtol_t tmp; strtol_error err = LONGINT_OK; assure (0 <= strtol_base && strtol_base <= 36); p = (ptr ? ptr : &t_ptr); errno = 0; if (! TYPE_SIGNED (__strtol_t)) { const char *q = s; unsigned char ch = *q; while (isspace (ch)) ch = *++q; if (ch == '-') return LONGINT_INVALID; } tmp = __strtol (s, p, strtol_base); if (*p == s) { /* If there is no number but there is a valid suffix, assume the number is 1. The string is invalid otherwise. */ if (valid_suffixes && **p && strchr (valid_suffixes, **p)) tmp = 1; else return LONGINT_INVALID; } else if (errno != 0) { if (errno != ERANGE) return LONGINT_INVALID; err = LONGINT_OVERFLOW; } /* Let valid_suffixes == NULL mean "allow any suffix". */ /* FIXME: update all callers except the ones that allow suffixes after the number, changing last parameter NULL to "". */ if (!valid_suffixes) { *val = tmp; return err; } if (**p != '\0') { int base = 1024; int suffixes = 1; strtol_error overflow; if (!strchr (valid_suffixes, **p)) { *val = tmp; return err | LONGINT_INVALID_SUFFIX_CHAR; } switch (**p) { case 'E': case 'G': case 'g': case 'k': case 'K': case 'M': case 'm': case 'P': case 'Q': case 'R': case 'T': case 't': case 'Y': case 'Z': /* The "valid suffix" '0' is a special flag meaning that an optional second suffix is allowed, which can change the base. A suffix "B" (e.g. "100MB") stands for a power of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for a power of 1024. If no suffix (e.g. "100M"), assume power-of-1024. */ if (strchr (valid_suffixes, '0')) switch (p[0][1]) { case 'i': if (p[0][2] == 'B') suffixes += 2; break; case 'B': case 'D': /* 'D' is obsolescent */ base = 1000; suffixes++; break; } } switch (**p) { case 'b': overflow = bkm_scale (&tmp, 512); break; case 'B': /* This obsolescent first suffix is distinct from the 'B' second suffix above. E.g., 'tar -L 1000B' means change the tape after writing 1000 KiB of data. */ overflow = bkm_scale (&tmp, 1024); break; case 'c': overflow = LONGINT_OK; break; case 'E': /* exa or exbi */ overflow = bkm_scale_by_power (&tmp, base, 6); break; case 'G': /* giga or gibi */ case 'g': /* 'g' is undocumented; for compatibility only */ overflow = bkm_scale_by_power (&tmp, base, 3); break; case 'k': /* kilo */ case 'K': /* kibi */ overflow = bkm_scale_by_power (&tmp, base, 1); break; case 'M': /* mega or mebi */ case 'm': /* 'm' is undocumented; for compatibility only */ overflow = bkm_scale_by_power (&tmp, base, 2); break; case 'P': /* peta or pebi */ overflow = bkm_scale_by_power (&tmp, base, 5); break; case 'Q': /* quetta or 2**100 */ overflow = bkm_scale_by_power (&tmp, base, 10); break; case 'R': /* ronna or 2**90 */ overflow = bkm_scale_by_power (&tmp, base, 9); break; case 'T': /* tera or tebi */ case 't': /* 't' is undocumented; for compatibility only */ overflow = bkm_scale_by_power (&tmp, base, 4); break; case 'w': overflow = bkm_scale (&tmp, 2); break; case 'Y': /* yotta or 2**80 */ overflow = bkm_scale_by_power (&tmp, base, 8); break; case 'Z': /* zetta or 2**70 */ overflow = bkm_scale_by_power (&tmp, base, 7); break; default: *val = tmp; return err | LONGINT_INVALID_SUFFIX_CHAR; } err |= overflow; *p += suffixes; if (**p) err |= LONGINT_INVALID_SUFFIX_CHAR; } *val = tmp; return err; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xstrtol.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003303�14374751113�012005� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A more useful interface to strtol. Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef XSTRTOL_H_ # define XSTRTOL_H_ 1 /* Get intmax_t, uintmax_t. */ # include <stdint.h> # ifndef _STRTOL_ERROR enum strtol_error { LONGINT_OK = 0, /* These two values can be ORed together, to indicate that both errors occurred. */ LONGINT_OVERFLOW = 1, LONGINT_INVALID_SUFFIX_CHAR = 2, LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW = (LONGINT_INVALID_SUFFIX_CHAR | LONGINT_OVERFLOW), LONGINT_INVALID = 4 }; typedef enum strtol_error strtol_error; # endif # define _DECLARE_XSTRTOL(name, type) \ strtol_error name (const char *, char **, int, type *, const char *); _DECLARE_XSTRTOL (xstrtol, long int) _DECLARE_XSTRTOL (xstrtoul, unsigned long int) _DECLARE_XSTRTOL (xstrtoll, long long int) _DECLARE_XSTRTOL (xstrtoull, unsigned long long int) _DECLARE_XSTRTOL (xstrtoimax, intmax_t) _DECLARE_XSTRTOL (xstrtoumax, uintmax_t) #endif /* not XSTRTOL_H_ */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/lib/xstrtoul.c��������������������������������������������������������������������������0000644�0000000�0000000�00000001645�14374751113�012174� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convert string to 'unsigned long', with error checking. Copyright (C) 1994-2023 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define __strtol strtoul #define __strtol_t unsigned long int #define __xstrtol xstrtoul #define STRTOL_T_MINIMUM 0 #define STRTOL_T_MAXIMUM ULONG_MAX #include "xstrtol.c" �������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/��������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132365�010765� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/Makefile.am���������������������������������������������������������������������0000644�0000000�0000000�00000010256�14415562667�012756� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # AM_CPPFLAGS = -I$(top_builddir) -I$(srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib \ -DLOCALEDIR=\"$(localedir)\" -DSYSCONFFILE=\"$(sysconfdir)/a2ps.cfg\" -DHAVE_CONFIG_H AM_CFLAGS = $(WARN_CFLAGS) $(BDW_GC_FLAGS) # # Definition of the local target # noinst_LTLIBRARIES = liba2ps.la noinst_LIBRARIES = libnowarnings.a # --debug, --defines, --verbose AM_YFLAGS = -dtv # Use a struct, handle duplicates, produce ANSI-C GPERFFLAGS = -t -D -L ANSI-C BUILT_SOURCES = lexppd.h parseppd.c liba2ps.h confg.c liba2psheaders = encoding.h media.h jobs.h output.h \ routines.h psgen.h prolog.h faces.h useropt.h \ gen.h printers.h psstat.h caret.h metaseq.h options.h \ dsc.h fonts.h ppd.h prange.h stream.h document.h \ fjobs.h common.h madir.h filalign.h lexppd.h \ system.h a2ps.h liba2ps.h yy2ppd.h gc-stubs.h liba2pssources = encoding.c media.c jobs.c output.c \ routines.c psgen.c prolog.c faces.c useropt.c \ gen.c printers.c psstat.c caret.c metaseq.c options.c \ dsc.c ppd.c prange.c stream.c document.c \ fjobs.c common.c madir.c filalign.c gc-stubs.c mylibitheaders = msg.h msg.c message.h xstrrpl.h getshline.h pathwalk.h \ darray.h dstring.h printlen.h pair_ht.h filtdir.h str_ht.h \ title.h xbackupfile.h getnum.h tterm.h lister.h userdata.h xobstack.h mylibitsources = message.c xstrrpl.c gc_calloc.c getshline.c pathwalk.c \ darray.c dstring.c printlen.c pair_ht.c filtdir.c str_ht.c \ title.c xbackupfile.c getnum.c tterm.c lister.c userdata.c libitheaders = argv.h hashtab.h libitsources = argv.c hashtab.c noinst_HEADERS = $(liba2psheaders) $(libitheaders) $(mylibitheaders) libnowarnings_a_CFLAGS = $(BDW_GC_FLAGS) libnowarnings_a_SOURCES = fonts.l lexppd.l parseppd.y regex.c regex.h confg.c confg.h liba2ps_la_LDFLAGS = $(BDW_GC_LIBS) liba2ps_la_SOURCES = $(liba2pssources) $(libitsources) $(mylibitsources) liba2ps_la_LIBADD = ../lib/libgnu.la $(LIBINTL) $(LIBSOCKET) $(GETHOSTNAME_LIB) # # Handling the Gperf code # GPERF = gperf confg.c: confg.gperf $(GPERF) $(GPERFFLAGS) $< >$@ # # Building the header for using liba2ps # noinst_HEADERS += liba2ps.h liba2ps_h_sources = liba2ps.h.in liba2ps.h.extract liba2ps_h_extract_sources = faces.h gen.h jobs.h confg.h liba2ps.h.extract: $(liba2ps_h_extract_sources) Makefile.am @echo "Extracting liba2ps.h info" @rm -rf liba2ps.h.extract 2> /dev/null @for f in $(liba2ps_h_extract_sources); \ do \ $(AWK) '/liba2ps.h:begin/, /liba2ps.h:end/' $(srcdir)/$$f \ | sed -e "s|/\* liba2ps.h:begin.*$$|/* From $$f */|g" \ | sed -e "s|/\* liba2ps.h:end.*$$| |g" \ >> liba2ps.h.extract; \ done liba2ps.h: $(liba2ps_h_sources) @echo "Building liba2ps.h"; \ files=`grep liba2ps.h:include: $(srcdir)/liba2ps.h.in \ | sed -e 's/^.*liba2ps.h:include:\([^ ]*\).*$$/\1/'`; \ cp $(srcdir)/liba2ps.h.in liba2ps.h.tmp1; \ for f in $$files; \ do \ echo "Inlining file $$f"; \ ff=`echo $$f | sed -e 's#/#\\\\/#g'`; \ cat liba2ps.h.tmp1 \ | sed -e "/liba2ps.h:include:$$ff/r $(srcdir)/$$f" \ | sed -e "s|^.*liba2ps.h:include:$$f.*$$|\/* File $$ff *\/|g"\ > liba2ps.h.tmp2; \ mv liba2ps.h.tmp2 liba2ps.h.tmp1; \ done; \ mv liba2ps.h.tmp1 liba2ps.h loc-local: cd $(srcdir) && $(CLOC) $(CLOC_OPTS) $(liba2pssources) $(liba2psheaders) $(libitsources) $(libitheaders) $(mylibitsources) $(mylibitheaders) $(libnowarnings_a_SOURCES) $(liba2ps_h_sources) EXTRA_DIST = liba2ps.h $(liba2ps_h_sources) liba2ps.h $(BUILT_SOURCES) parseppd.h confg.gperf ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/Makefile.in���������������������������������������������������������������������0000644�0000000�0000000�00000252755�14445132055�012766� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = liba2ps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libnowarnings_a_AR = $(AR) $(ARFLAGS) libnowarnings_a_LIBADD = am_libnowarnings_a_OBJECTS = libnowarnings_a-fonts.$(OBJEXT) \ libnowarnings_a-lexppd.$(OBJEXT) \ libnowarnings_a-parseppd.$(OBJEXT) \ libnowarnings_a-regex.$(OBJEXT) \ libnowarnings_a-confg.$(OBJEXT) libnowarnings_a_OBJECTS = $(am_libnowarnings_a_OBJECTS) am__DEPENDENCIES_1 = liba2ps_la_DEPENDENCIES = ../lib/libgnu.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__objects_1 = encoding.lo media.lo jobs.lo output.lo routines.lo \ psgen.lo prolog.lo faces.lo useropt.lo gen.lo printers.lo \ psstat.lo caret.lo metaseq.lo options.lo dsc.lo ppd.lo \ prange.lo stream.lo document.lo fjobs.lo common.lo madir.lo \ filalign.lo gc-stubs.lo am__objects_2 = argv.lo hashtab.lo am__objects_3 = message.lo xstrrpl.lo gc_calloc.lo getshline.lo \ pathwalk.lo darray.lo dstring.lo printlen.lo pair_ht.lo \ filtdir.lo str_ht.lo title.lo xbackupfile.lo getnum.lo \ tterm.lo lister.lo userdata.lo am_liba2ps_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ $(am__objects_3) liba2ps_la_OBJECTS = $(am_liba2ps_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = liba2ps_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(liba2ps_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/argv.Plo ./$(DEPDIR)/caret.Plo \ ./$(DEPDIR)/common.Plo ./$(DEPDIR)/darray.Plo \ ./$(DEPDIR)/document.Plo ./$(DEPDIR)/dsc.Plo \ ./$(DEPDIR)/dstring.Plo ./$(DEPDIR)/encoding.Plo \ ./$(DEPDIR)/faces.Plo ./$(DEPDIR)/filalign.Plo \ ./$(DEPDIR)/filtdir.Plo ./$(DEPDIR)/fjobs.Plo \ ./$(DEPDIR)/gc-stubs.Plo ./$(DEPDIR)/gc_calloc.Plo \ ./$(DEPDIR)/gen.Plo ./$(DEPDIR)/getnum.Plo \ ./$(DEPDIR)/getshline.Plo ./$(DEPDIR)/hashtab.Plo \ ./$(DEPDIR)/jobs.Plo ./$(DEPDIR)/libnowarnings_a-confg.Po \ ./$(DEPDIR)/libnowarnings_a-fonts.Po \ ./$(DEPDIR)/libnowarnings_a-lexppd.Po \ ./$(DEPDIR)/libnowarnings_a-parseppd.Po \ ./$(DEPDIR)/libnowarnings_a-regex.Po ./$(DEPDIR)/lister.Plo \ ./$(DEPDIR)/madir.Plo ./$(DEPDIR)/media.Plo \ ./$(DEPDIR)/message.Plo ./$(DEPDIR)/metaseq.Plo \ ./$(DEPDIR)/options.Plo ./$(DEPDIR)/output.Plo \ ./$(DEPDIR)/pair_ht.Plo ./$(DEPDIR)/pathwalk.Plo \ ./$(DEPDIR)/ppd.Plo ./$(DEPDIR)/prange.Plo \ ./$(DEPDIR)/printers.Plo ./$(DEPDIR)/printlen.Plo \ ./$(DEPDIR)/prolog.Plo ./$(DEPDIR)/psgen.Plo \ ./$(DEPDIR)/psstat.Plo ./$(DEPDIR)/routines.Plo \ ./$(DEPDIR)/str_ht.Plo ./$(DEPDIR)/stream.Plo \ ./$(DEPDIR)/title.Plo ./$(DEPDIR)/tterm.Plo \ ./$(DEPDIR)/userdata.Plo ./$(DEPDIR)/useropt.Plo \ ./$(DEPDIR)/xbackupfile.Plo ./$(DEPDIR)/xstrrpl.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) AM_V_LEX = $(am__v_LEX_@AM_V@) am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) am__v_LEX_0 = @echo " LEX " $@; am__v_LEX_1 = YLWRAP = $(top_srcdir)/build-aux/ylwrap am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ -e s/c++$$/h++/ -e s/c$$/h/ YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) AM_V_YACC = $(am__v_YACC_@AM_V@) am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) am__v_YACC_0 = @echo " YACC " $@; am__v_YACC_1 = SOURCES = $(libnowarnings_a_SOURCES) $(liba2ps_la_SOURCES) DIST_SOURCES = $(libnowarnings_a_SOURCES) $(liba2ps_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp $(top_srcdir)/build-aux/ylwrap \ README fonts.c lexppd.c parseppd.c DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_builddir) -I$(srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib \ -DLOCALEDIR=\"$(localedir)\" -DSYSCONFFILE=\"$(sysconfdir)/a2ps.cfg\" -DHAVE_CONFIG_H AM_CFLAGS = $(WARN_CFLAGS) $(BDW_GC_FLAGS) # # Definition of the local target # noinst_LTLIBRARIES = liba2ps.la noinst_LIBRARIES = libnowarnings.a # --debug, --defines, --verbose AM_YFLAGS = -dtv # Use a struct, handle duplicates, produce ANSI-C GPERFFLAGS = -t -D -L ANSI-C BUILT_SOURCES = lexppd.h parseppd.c liba2ps.h confg.c liba2psheaders = encoding.h media.h jobs.h output.h \ routines.h psgen.h prolog.h faces.h useropt.h \ gen.h printers.h psstat.h caret.h metaseq.h options.h \ dsc.h fonts.h ppd.h prange.h stream.h document.h \ fjobs.h common.h madir.h filalign.h lexppd.h \ system.h a2ps.h liba2ps.h yy2ppd.h gc-stubs.h liba2pssources = encoding.c media.c jobs.c output.c \ routines.c psgen.c prolog.c faces.c useropt.c \ gen.c printers.c psstat.c caret.c metaseq.c options.c \ dsc.c ppd.c prange.c stream.c document.c \ fjobs.c common.c madir.c filalign.c gc-stubs.c mylibitheaders = msg.h msg.c message.h xstrrpl.h getshline.h pathwalk.h \ darray.h dstring.h printlen.h pair_ht.h filtdir.h str_ht.h \ title.h xbackupfile.h getnum.h tterm.h lister.h userdata.h xobstack.h mylibitsources = message.c xstrrpl.c gc_calloc.c getshline.c pathwalk.c \ darray.c dstring.c printlen.c pair_ht.c filtdir.c str_ht.c \ title.c xbackupfile.c getnum.c tterm.c lister.c userdata.c libitheaders = argv.h hashtab.h libitsources = argv.c hashtab.c # # Building the header for using liba2ps # noinst_HEADERS = $(liba2psheaders) $(libitheaders) $(mylibitheaders) \ liba2ps.h libnowarnings_a_CFLAGS = $(BDW_GC_FLAGS) libnowarnings_a_SOURCES = fonts.l lexppd.l parseppd.y regex.c regex.h confg.c confg.h liba2ps_la_LDFLAGS = $(BDW_GC_LIBS) liba2ps_la_SOURCES = $(liba2pssources) $(libitsources) $(mylibitsources) liba2ps_la_LIBADD = ../lib/libgnu.la $(LIBINTL) $(LIBSOCKET) $(GETHOSTNAME_LIB) # # Handling the Gperf code # GPERF = gperf liba2ps_h_sources = liba2ps.h.in liba2ps.h.extract liba2ps_h_extract_sources = faces.h gen.h jobs.h confg.h EXTRA_DIST = liba2ps.h $(liba2ps_h_sources) liba2ps.h $(BUILT_SOURCES) parseppd.h confg.gperf all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .l .lo .o .obj .y $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign liba2ps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign liba2ps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libnowarnings.a: $(libnowarnings_a_OBJECTS) $(libnowarnings_a_DEPENDENCIES) $(EXTRA_libnowarnings_a_DEPENDENCIES) $(AM_V_at)-rm -f libnowarnings.a $(AM_V_AR)$(libnowarnings_a_AR) libnowarnings.a $(libnowarnings_a_OBJECTS) $(libnowarnings_a_LIBADD) $(AM_V_at)$(RANLIB) libnowarnings.a liba2ps.la: $(liba2ps_la_OBJECTS) $(liba2ps_la_DEPENDENCIES) $(EXTRA_liba2ps_la_DEPENDENCIES) $(AM_V_CCLD)$(liba2ps_la_LINK) $(liba2ps_la_OBJECTS) $(liba2ps_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argv.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/caret.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/darray.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/document.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dstring.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encoding.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faces.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filalign.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filtdir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fjobs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gc-stubs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gc_calloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getnum.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getshline.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashtab.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jobs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnowarnings_a-confg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnowarnings_a-fonts.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnowarnings_a-lexppd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnowarnings_a-parseppd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnowarnings_a-regex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lister.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/madir.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/media.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/message.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metaseq.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/output.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pair_ht.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pathwalk.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppd.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prange.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printers.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printlen.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prolog.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psgen.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psstat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/routines.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str_ht.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stream.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/title.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tterm.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/userdata.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/useropt.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xbackupfile.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrrpl.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libnowarnings_a-fonts.o: fonts.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-fonts.o -MD -MP -MF $(DEPDIR)/libnowarnings_a-fonts.Tpo -c -o libnowarnings_a-fonts.o `test -f 'fonts.c' || echo '$(srcdir)/'`fonts.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-fonts.Tpo $(DEPDIR)/libnowarnings_a-fonts.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fonts.c' object='libnowarnings_a-fonts.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-fonts.o `test -f 'fonts.c' || echo '$(srcdir)/'`fonts.c libnowarnings_a-fonts.obj: fonts.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-fonts.obj -MD -MP -MF $(DEPDIR)/libnowarnings_a-fonts.Tpo -c -o libnowarnings_a-fonts.obj `if test -f 'fonts.c'; then $(CYGPATH_W) 'fonts.c'; else $(CYGPATH_W) '$(srcdir)/fonts.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-fonts.Tpo $(DEPDIR)/libnowarnings_a-fonts.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fonts.c' object='libnowarnings_a-fonts.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-fonts.obj `if test -f 'fonts.c'; then $(CYGPATH_W) 'fonts.c'; else $(CYGPATH_W) '$(srcdir)/fonts.c'; fi` libnowarnings_a-lexppd.o: lexppd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-lexppd.o -MD -MP -MF $(DEPDIR)/libnowarnings_a-lexppd.Tpo -c -o libnowarnings_a-lexppd.o `test -f 'lexppd.c' || echo '$(srcdir)/'`lexppd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-lexppd.Tpo $(DEPDIR)/libnowarnings_a-lexppd.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lexppd.c' object='libnowarnings_a-lexppd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-lexppd.o `test -f 'lexppd.c' || echo '$(srcdir)/'`lexppd.c libnowarnings_a-lexppd.obj: lexppd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-lexppd.obj -MD -MP -MF $(DEPDIR)/libnowarnings_a-lexppd.Tpo -c -o libnowarnings_a-lexppd.obj `if test -f 'lexppd.c'; then $(CYGPATH_W) 'lexppd.c'; else $(CYGPATH_W) '$(srcdir)/lexppd.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-lexppd.Tpo $(DEPDIR)/libnowarnings_a-lexppd.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lexppd.c' object='libnowarnings_a-lexppd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-lexppd.obj `if test -f 'lexppd.c'; then $(CYGPATH_W) 'lexppd.c'; else $(CYGPATH_W) '$(srcdir)/lexppd.c'; fi` libnowarnings_a-parseppd.o: parseppd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-parseppd.o -MD -MP -MF $(DEPDIR)/libnowarnings_a-parseppd.Tpo -c -o libnowarnings_a-parseppd.o `test -f 'parseppd.c' || echo '$(srcdir)/'`parseppd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-parseppd.Tpo $(DEPDIR)/libnowarnings_a-parseppd.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parseppd.c' object='libnowarnings_a-parseppd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-parseppd.o `test -f 'parseppd.c' || echo '$(srcdir)/'`parseppd.c libnowarnings_a-parseppd.obj: parseppd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-parseppd.obj -MD -MP -MF $(DEPDIR)/libnowarnings_a-parseppd.Tpo -c -o libnowarnings_a-parseppd.obj `if test -f 'parseppd.c'; then $(CYGPATH_W) 'parseppd.c'; else $(CYGPATH_W) '$(srcdir)/parseppd.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-parseppd.Tpo $(DEPDIR)/libnowarnings_a-parseppd.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parseppd.c' object='libnowarnings_a-parseppd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-parseppd.obj `if test -f 'parseppd.c'; then $(CYGPATH_W) 'parseppd.c'; else $(CYGPATH_W) '$(srcdir)/parseppd.c'; fi` libnowarnings_a-regex.o: regex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-regex.o -MD -MP -MF $(DEPDIR)/libnowarnings_a-regex.Tpo -c -o libnowarnings_a-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-regex.Tpo $(DEPDIR)/libnowarnings_a-regex.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex.c' object='libnowarnings_a-regex.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c libnowarnings_a-regex.obj: regex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-regex.obj -MD -MP -MF $(DEPDIR)/libnowarnings_a-regex.Tpo -c -o libnowarnings_a-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-regex.Tpo $(DEPDIR)/libnowarnings_a-regex.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex.c' object='libnowarnings_a-regex.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi` libnowarnings_a-confg.o: confg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-confg.o -MD -MP -MF $(DEPDIR)/libnowarnings_a-confg.Tpo -c -o libnowarnings_a-confg.o `test -f 'confg.c' || echo '$(srcdir)/'`confg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-confg.Tpo $(DEPDIR)/libnowarnings_a-confg.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='confg.c' object='libnowarnings_a-confg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-confg.o `test -f 'confg.c' || echo '$(srcdir)/'`confg.c libnowarnings_a-confg.obj: confg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -MT libnowarnings_a-confg.obj -MD -MP -MF $(DEPDIR)/libnowarnings_a-confg.Tpo -c -o libnowarnings_a-confg.obj `if test -f 'confg.c'; then $(CYGPATH_W) 'confg.c'; else $(CYGPATH_W) '$(srcdir)/confg.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnowarnings_a-confg.Tpo $(DEPDIR)/libnowarnings_a-confg.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='confg.c' object='libnowarnings_a-confg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnowarnings_a_CFLAGS) $(CFLAGS) -c -o libnowarnings_a-confg.obj `if test -f 'confg.c'; then $(CYGPATH_W) 'confg.c'; else $(CYGPATH_W) '$(srcdir)/confg.c'; fi` .l.c: $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) .y.c: $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs loc-local: ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f fonts.c -rm -f lexppd.c -rm -f parseppd.c -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/argv.Plo -rm -f ./$(DEPDIR)/caret.Plo -rm -f ./$(DEPDIR)/common.Plo -rm -f ./$(DEPDIR)/darray.Plo -rm -f ./$(DEPDIR)/document.Plo -rm -f ./$(DEPDIR)/dsc.Plo -rm -f ./$(DEPDIR)/dstring.Plo -rm -f ./$(DEPDIR)/encoding.Plo -rm -f ./$(DEPDIR)/faces.Plo -rm -f ./$(DEPDIR)/filalign.Plo -rm -f ./$(DEPDIR)/filtdir.Plo -rm -f ./$(DEPDIR)/fjobs.Plo -rm -f ./$(DEPDIR)/gc-stubs.Plo -rm -f ./$(DEPDIR)/gc_calloc.Plo -rm -f ./$(DEPDIR)/gen.Plo -rm -f ./$(DEPDIR)/getnum.Plo -rm -f ./$(DEPDIR)/getshline.Plo -rm -f ./$(DEPDIR)/hashtab.Plo -rm -f ./$(DEPDIR)/jobs.Plo -rm -f ./$(DEPDIR)/libnowarnings_a-confg.Po -rm -f ./$(DEPDIR)/libnowarnings_a-fonts.Po -rm -f ./$(DEPDIR)/libnowarnings_a-lexppd.Po -rm -f ./$(DEPDIR)/libnowarnings_a-parseppd.Po -rm -f ./$(DEPDIR)/libnowarnings_a-regex.Po -rm -f ./$(DEPDIR)/lister.Plo -rm -f ./$(DEPDIR)/madir.Plo -rm -f ./$(DEPDIR)/media.Plo -rm -f ./$(DEPDIR)/message.Plo -rm -f ./$(DEPDIR)/metaseq.Plo -rm -f ./$(DEPDIR)/options.Plo -rm -f ./$(DEPDIR)/output.Plo -rm -f ./$(DEPDIR)/pair_ht.Plo -rm -f ./$(DEPDIR)/pathwalk.Plo -rm -f ./$(DEPDIR)/ppd.Plo -rm -f ./$(DEPDIR)/prange.Plo -rm -f ./$(DEPDIR)/printers.Plo -rm -f ./$(DEPDIR)/printlen.Plo -rm -f ./$(DEPDIR)/prolog.Plo -rm -f ./$(DEPDIR)/psgen.Plo -rm -f ./$(DEPDIR)/psstat.Plo -rm -f ./$(DEPDIR)/routines.Plo -rm -f ./$(DEPDIR)/str_ht.Plo -rm -f ./$(DEPDIR)/stream.Plo -rm -f ./$(DEPDIR)/title.Plo -rm -f ./$(DEPDIR)/tterm.Plo -rm -f ./$(DEPDIR)/userdata.Plo -rm -f ./$(DEPDIR)/useropt.Plo -rm -f ./$(DEPDIR)/xbackupfile.Plo -rm -f ./$(DEPDIR)/xstrrpl.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/argv.Plo -rm -f ./$(DEPDIR)/caret.Plo -rm -f ./$(DEPDIR)/common.Plo -rm -f ./$(DEPDIR)/darray.Plo -rm -f ./$(DEPDIR)/document.Plo -rm -f ./$(DEPDIR)/dsc.Plo -rm -f ./$(DEPDIR)/dstring.Plo -rm -f ./$(DEPDIR)/encoding.Plo -rm -f ./$(DEPDIR)/faces.Plo -rm -f ./$(DEPDIR)/filalign.Plo -rm -f ./$(DEPDIR)/filtdir.Plo -rm -f ./$(DEPDIR)/fjobs.Plo -rm -f ./$(DEPDIR)/gc-stubs.Plo -rm -f ./$(DEPDIR)/gc_calloc.Plo -rm -f ./$(DEPDIR)/gen.Plo -rm -f ./$(DEPDIR)/getnum.Plo -rm -f ./$(DEPDIR)/getshline.Plo -rm -f ./$(DEPDIR)/hashtab.Plo -rm -f ./$(DEPDIR)/jobs.Plo -rm -f ./$(DEPDIR)/libnowarnings_a-confg.Po -rm -f ./$(DEPDIR)/libnowarnings_a-fonts.Po -rm -f ./$(DEPDIR)/libnowarnings_a-lexppd.Po -rm -f ./$(DEPDIR)/libnowarnings_a-parseppd.Po -rm -f ./$(DEPDIR)/libnowarnings_a-regex.Po -rm -f ./$(DEPDIR)/lister.Plo -rm -f ./$(DEPDIR)/madir.Plo -rm -f ./$(DEPDIR)/media.Plo -rm -f ./$(DEPDIR)/message.Plo -rm -f ./$(DEPDIR)/metaseq.Plo -rm -f ./$(DEPDIR)/options.Plo -rm -f ./$(DEPDIR)/output.Plo -rm -f ./$(DEPDIR)/pair_ht.Plo -rm -f ./$(DEPDIR)/pathwalk.Plo -rm -f ./$(DEPDIR)/ppd.Plo -rm -f ./$(DEPDIR)/prange.Plo -rm -f ./$(DEPDIR)/printers.Plo -rm -f ./$(DEPDIR)/printlen.Plo -rm -f ./$(DEPDIR)/prolog.Plo -rm -f ./$(DEPDIR)/psgen.Plo -rm -f ./$(DEPDIR)/psstat.Plo -rm -f ./$(DEPDIR)/routines.Plo -rm -f ./$(DEPDIR)/str_ht.Plo -rm -f ./$(DEPDIR)/stream.Plo -rm -f ./$(DEPDIR)/title.Plo -rm -f ./$(DEPDIR)/tterm.Plo -rm -f ./$(DEPDIR)/userdata.Plo -rm -f ./$(DEPDIR)/useropt.Plo -rm -f ./$(DEPDIR)/xbackupfile.Plo -rm -f ./$(DEPDIR)/xstrrpl.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check install install-am install-exec install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs loc-am \ loc-local maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile confg.c: confg.gperf $(GPERF) $(GPERFFLAGS) $< >$@ liba2ps.h.extract: $(liba2ps_h_extract_sources) Makefile.am @echo "Extracting liba2ps.h info" @rm -rf liba2ps.h.extract 2> /dev/null @for f in $(liba2ps_h_extract_sources); \ do \ $(AWK) '/liba2ps.h:begin/, /liba2ps.h:end/' $(srcdir)/$$f \ | sed -e "s|/\* liba2ps.h:begin.*$$|/* From $$f */|g" \ | sed -e "s|/\* liba2ps.h:end.*$$| |g" \ >> liba2ps.h.extract; \ done liba2ps.h: $(liba2ps_h_sources) @echo "Building liba2ps.h"; \ files=`grep liba2ps.h:include: $(srcdir)/liba2ps.h.in \ | sed -e 's/^.*liba2ps.h:include:\([^ ]*\).*$$/\1/'`; \ cp $(srcdir)/liba2ps.h.in liba2ps.h.tmp1; \ for f in $$files; \ do \ echo "Inlining file $$f"; \ ff=`echo $$f | sed -e 's#/#\\\\/#g'`; \ cat liba2ps.h.tmp1 \ | sed -e "/liba2ps.h:include:$$ff/r $(srcdir)/$$f" \ | sed -e "s|^.*liba2ps.h:include:$$f.*$$|\/* File $$ff *\/|g"\ > liba2ps.h.tmp2; \ mv liba2ps.h.tmp2 liba2ps.h.tmp1; \ done; \ mv liba2ps.h.tmp1 liba2ps.h loc-local: cd $(srcdir) && $(CLOC) $(CLOC_OPTS) $(liba2pssources) $(liba2psheaders) $(libitsources) $(libitheaders) $(mylibitsources) $(mylibitheaders) $(libnowarnings_a_SOURCES) $(liba2ps_h_sources) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������a2ps-4.15.5/liba2ps/README��������������������������������������������������������������������������0000644�0000000�0000000�00000001353�14251171560�011562� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Content of the lib/ dir of a2ps. A lot of reusable components has been used to build a2ps. In here, we tried to give you a road map, to understand what does what, who needs who, and who wrote what. The work is in parallel with the developpement of a2ps, so it might not be realy up-to-date. Inaccuracies, problems etc. should be reported to demaille@inf.esnt.fr -- Akim & Miguel darray.[ch] (xmalloc.[ch] error.[ch]) Handling of dynamic arrays. dstring.[ch] (xmalloc.[ch], error.[ch], printlen.[ch]) Handling of dynamic strings (automated growth, usual functions on string etc.). pathwalk.[ch] (xmalloc.[ch]) Given a path, walk in it, find files, etc. printlen.[ch] Return the length that sprintf would use to print the arguments. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/a2ps.h��������������������������������������������������������������������������0000644�0000000�0000000�00000001601�14251132535�011713� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* a2ps.h - shared header with the whole package Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _A2PS_H_ # define _A2PS_H_ # include "system.h" # include <gc/gc.h> #endif �������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/argv.c��������������������������������������������������������������������������0000644�0000000�0000000�00000012662�14251201734�012007� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* argv.c - create and destroy argument vectors (argv's) Copyright 1992-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Fred Fish @ Cygnus Support */ /* Create and destroy argument vectors. An argument vector is simply an array of string pointers, terminated by a NULL pointer. */ #include <config.h> #include <alloca.h> #include <stdlib.h> #include <string.h> #include <ctype.h> /* Jim Meyering writes: "... Some ctype macros are valid only for character codes that isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when using /bin/cc or gcc but without giving an ansi option). So, all ctype uses should be through macros like ISPRINT... If STDC_HEADERS is defined, then autoconf has verified that the ctype macros don't need to be guarded with references to isascii. ... Defining isascii to 1 should let any compiler worth its salt eliminate the && through constant folding." */ #define ISASCII(c) isascii((int) c) #define ISSPACE(c) (ISASCII (c) && isspace ((int) c)) #include "argv.h" #define INITIAL_MAXARGC 8 /* Number of args + NULL in initial argv */ #ifndef EOS #define EOS '\0' #endif /* dupargv -- duplicate an argument vector */ char ** dupargv (char **argv) { int argc; char **copy; if (argv == NULL) return NULL; /* the vector */ for (argc = 0; argv[argc] != NULL; argc++); copy = (char **) malloc (((size_t) argc + 1) * sizeof (char *)); if (copy == NULL) return NULL; /* the strings */ for (argc = 0; argv[argc] != NULL; argc++) { size_t len = strlen (argv[argc]); copy[argc] = malloc (sizeof (char *) * (len + 1)); if (copy[argc] == NULL) return NULL; strcpy (copy[argc], argv[argc]); } copy[argc] = NULL; return copy; } /* buildargv -- build an argument vector from a string */ char **buildargv_argc (const char *input, int *argc) { char *arg; char *copybuf; int squote = 0; int dquote = 0; int bsquote = 0; int maxargc = 0; char **argv = NULL; char **nargv; if (input != NULL) { copybuf = alloca (strlen (input) + 1); /* Is a do{}while to always execute the loop once. Always return an argv, even for null strings. See NOTES above, test case below. */ do { /* Pick off argv[*argc] */ while (ISSPACE (*input)) input++; if ((maxargc == 0) || (*argc >= (maxargc - 1))) { /* argv needs initialization, or expansion */ if (argv == NULL) { maxargc = *argc > INITIAL_MAXARGC ? *argc : INITIAL_MAXARGC; nargv = (char **) malloc ((size_t) maxargc * sizeof (char *)); } else { maxargc *= 2; nargv = (char **) realloc (argv, (size_t) maxargc * sizeof (char *)); } if (nargv == NULL) { argv = NULL; break; } argv = nargv; argv[*argc] = NULL; } /* Begin scanning arg */ arg = copybuf; while (*input != EOS) { if (ISSPACE (*input) && !squote && !dquote && !bsquote) break; else { if (bsquote) { bsquote = 0; *arg++ = *input; } else if (*input == '\\') { bsquote = 1; } else if (squote) { if (*input == '\'') squote = 0; else *arg++ = *input; } else if (dquote) { if (*input == '"') dquote = 0; else *arg++ = *input; } else { if (*input == '\'') { squote = 1; } else if (*input == '"') { dquote = 1; } else { *arg++ = *input; } } input++; } } *arg = EOS; argv[*argc] = strdup (copybuf); if (argv[*argc] == NULL) { argv = NULL; break; } (*argc)++; argv[*argc] = NULL; while (ISSPACE (*input)) input++; } while (*input != EOS); } return (argv); } char ** buildargv (const char * string) { int argc = 0; return buildargv_argc (string, &argc); } #ifdef MAIN /* Simple little test driver. */ static char *tests[] = { "a simple command line", "arg 'foo' is single quoted", "arg \"bar\" is double quoted", "arg \"foo bar\" has embedded whitespace", "arg 'Jack said \\'hi\\'' has single quotes", "arg 'Jack said \\\"hi\\\"' has double quotes", "a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9", /* This should be expanded into only one argument. */ "trailing-whitespace ", "", NULL }; main () { char **argv; char **test; char **targs; for (test = tests; *test != NULL; test++) { printf ("buildargv(\"%s\")\n", *test); if ((argv = buildargv (*test)) == NULL) printf ("failed!\n\n"); else { for (targs = argv; *targs != NULL; targs++) printf ("\t\"%s\"\n", *targs); printf ("\n"); } freeargv (argv); } } #endif /* MAIN */ ������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/argv.h��������������������������������������������������������������������������0000644�0000000�0000000�00000006765�14235572622�012034� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* argv.h - create and destroy argument vectors (argv's) Copyright 1992-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Fred Fish @ Cygnus Support */ /* Create and destroy argument vectors. An argument vector is simply an array of string pointers, terminated by a NULL pointer. */ #ifndef _ARGC_H_ #define _ARGC_H_ /* NAME dupargv -- duplicate an argument vector SYNOPSIS char **dupargv (vector) char **vector; DESCRIPTION Duplicate an argument vector. Simply scans through the vector, duplicating each argument argument until the terminating NULL is found. RETURNS Returns a pointer to the argument vector if successful. Returns NULL if there is insufficient memory to complete building the argument vector. */ char ** dupargv (char **argv); /* NAME freeargv -- free an argument vector SYNOPSIS void freeargv (vector) char **vector; DESCRIPTION Free an argument vector that was built using buildargv. Simply scans through the vector, freeing the memory for each argument until the terminating NULL is found, and then frees the vector itself. RETURNS No value. */ void freeargv (char **vector); void freeargv_from (char **vector, int from); /* NAME buildargv -- build an argument vector from a string SYNOPSIS char **buildargv (sp) char *sp; DESCRIPTION Given a pointer to a string, parse the string extracting fields separated by whitespace and optionally enclosed within either single or double quotes (which are stripped off), and build a vector of pointers to copies of the string for each field. The input string remains unchanged. All of the memory for the pointer array and copies of the string is obtained from malloc. All of the memory can be returned to the system with the single function call freeargv, which takes the returned result of buildargv, as it's argument. The memory for the argv array is dynamically expanded as necessary. RETURNS Returns a pointer to the argument vector if successful. Returns NULL if the input string pointer is NULL or if there is insufficient memory to complete building the argument vector. NOTES In order to provide a working buffer for extracting arguments into, with appropriate stripping of quotes and translation of backslash sequences, we allocate a working buffer at least as long as the input string. This ensures that we always have enough space in which to work, since the extracted arg is never larger than the input string. If the input is a null string (as opposed to a NULL pointer), then buildarg returns an argv that has one arg, a null string. Argv is always kept terminated with a NULL arg pointer, so it can be passed to freeargv at any time, or returned, as appropriate. */ char **buildargv_argc (const char *input, int * argc); char **buildargv (const char *input); #endif /* !defined (_ARGC_H_) */ �����������a2ps-4.15.5/liba2ps/caret.c�������������������������������������������������������������������������0000644�0000000�0000000�00000005331�14251202043�012133� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* caret.c - how non printable chars are represented Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "routines.h" /* * Return a string describing the current unprintable format */ const char * unprintable_format_to_string (enum unprintable_format format) { switch (format) { case space: return _("space (i.e., ` ')"); case octal: return _("octal (i.e., `\\001' etc.)"); case hexa: return _("hexadecimal (i.e., `\\x0a' etc.)"); case caret: return _("caret (i.e., `^C', `M-^C' etc.)"); case Emacs: return _("emacs (i.e., `C-c', `M-C-c' etc.)"); case question_mark: return _("question-mark (i.e., `?')"); } error (1, 0, "switch of unprintable_format_to_string"); return NULL; /* For lint */ } /* * Escape a char, considering it is unprintable * (Note: it is an error if the char is printable; * result is unpredictable) * Return the num of chars used */ int escape_unprintable (a2ps_job * job, int c, char * res) { int len = 0; switch (job->unprintable_format) { case octal: sprintf ((char *) res, "\\\\%03o", (unsigned) c); return 4; case hexa: sprintf ((char *) res, "\\\\x%02x", (unsigned) c); return 4; case question_mark: STRCCAT (res, '?'); return 1; case space: STRCCAT (res, ' '); return 1; case caret: if (0177 < c) { strcat (res, "M-"); len += 2; c &= 0177; } if (c < ' ') { STRCCAT(res, '^'); STRCCAT(res, c); len += 2; } else if (c == 0177) { strcat(res, "^?"); len += 2; } else { STRCCAT(res, c); len++; } return len; case Emacs: if (0177 < c) { strcat(res, "M-"); len += 2; c &= 0177; } if (c < ' ') { strcat (res, "C-"); STRCCAT(res, c); len += 3; } else if (c == 0177) { strcat(res, "C-?"); len += 3; } else { STRCCAT(res, c); len++; } return len; } return 0; /* For -Wall */ } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/caret.h�������������������������������������������������������������������������0000644�0000000�0000000�00000002345�14251132535�012152� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* caret.h - how non printable chars are represented Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _CARET_H_ #define _CARET_H_ struct a2ps_job; /* How are written non printable chars */ enum unprintable_format { caret, space, question_mark, octal, hexa, Emacs }; const char * unprintable_format_to_string (enum unprintable_format format); /* Escape C, put result in RES, and return strlen RES */ int escape_unprintable (struct a2ps_job * job, int c, char * res); #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/common.c������������������������������������������������������������������������0000644�0000000�0000000�00000003227�14236507210�012336� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* common.c - liba2ps shared memory (data used by several modules) Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "common.h" #include "pathwalk.h" /* * Default a shared mem values */ void a2ps_common_reset (struct a2ps_common_s * common) { common->path = NULL; } /* * Create a shared mem with default values */ struct a2ps_common_s * a2ps_common_new (void) { struct a2ps_common_s * res = XMALLOC (struct a2ps_common_s); a2ps_common_reset (res); return res; } /* * Finalize the common mem to the regular values * HOME is the user's home dir. */ void a2ps_common_finalize (struct a2ps_common_s * common, const char * home) { char buf [512]; /* Add the user's home .a2ps dir to the lib path unless explicitly * discarded with NO_HOME_CONF */ if (! getenv ("NO_HOME_CONF")) { sprintf (buf, "%s%c.a2ps", home, DIRECTORY_SEPARATOR); common->path = pw_prepend_string_to_path (common->path, buf); } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/common.h������������������������������������������������������������������������0000644�0000000�0000000�00000002731�14236507210�012342� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* common.h - liba2ps shared memory (data used by several modules) Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _COMMON_H_ #define _COMMON_H_ #include "a2ps.h" /* * Shared memory for liba2ps: data that several modules * (encodings, printers etc.) will need. * This will actually disapear... */ struct a2ps_common_s { char ** path; /* Path to the files used by a2ps */ }; /* Default a shared mem values */ void a2ps_common_reset (struct a2ps_common_s * common); /* Create a shared mem with default values */ struct a2ps_common_s * a2ps_common_new (void); /* Finalize the common mem to the regular values HOME is the user's * home dir. */ void a2ps_common_finalize (struct a2ps_common_s * common, const char * home); #endif /* !defined (_COMMON_H_) */ ���������������������������������������a2ps-4.15.5/liba2ps/confg.c�������������������������������������������������������������������������0000644�0000000�0000000�00000034204�14415562575�012157� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -t -D -L ANSI-C confg.gperf */ /* Computed positions: -k'5' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>." #endif #line 1 "confg.gperf" /* -*- C -*- */ /* * confg.c * * Read and understanding everything about the options * & (dynamic) configuration of a2ps. * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /************************************************************************/ /* */ /* I n c l u d e f i l e s */ /* */ /************************************************************************/ #include "a2ps.h" #include "routines.h" #include "message.h" #include "media.h" #include "jobs.h" #include "getshline.h" #include "pathwalk.h" #include "confg.h" #include "useropt.h" #include "filenamecat.h" #include "printers.h" #include "options.h" #include "metaseq.h" #include "quotearg.h" #include "dirname.h" extern char *program_name; /* * Hooks used */ config_hook delegation_hook = NULL; config_hook toc_entry_hook = NULL; enum keyword_e { AppendLibraryPath, DefaultPPD, DefaultPrinter, Delegation, FileCommand, Include, LibraryPath, Medium, Obsolete, Options, OutputFirstLine, PageLabelFormat, PrependLibraryPath, Printer, UnknownPrinter, UserOption, Variable }; #line 81 "confg.gperf" struct keyword_s { const char *name; enum keyword_e code; /* Number of arguments. */ int argc; /* If true, the last argument composed of the rest of the line, otherwise separated by spaces. */ bool line_token; }; #define TOTAL_KEYWORDS 21 #define MIN_WORD_LENGTH 6 #define MAX_WORD_LENGTH 19 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 33 /* maximum key range = 28, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int hash (register const char *str, register size_t len) { static unsigned char asso_values[] = { 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 10, 34, 34, 34, 34, 34, 34, 34, 34, 15, 34, 34, 15, 34, 34, 34, 34, 5, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 34, 34, 34, 10, 34, 10, 34, 34, 34, 34, 34, 34, 15, 5, 34, 34, 34, 34, 20, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34 }; return len + asso_values[(unsigned char)str[4]]; } struct keyword_s * in_word_set (register const char *str, register size_t len) { static struct keyword_s wordlist[] = { #line 100 "confg.gperf" {"Media:", Medium, 2, true}, #line 101 "confg.gperf" {"Medium:", Medium, 2, true}, #line 97 "confg.gperf" {"Include:", Include, 1, false}, #line 112 "confg.gperf" {"Variable:", Variable, 2, true}, #line 93 "confg.gperf" {"DefaultPPD:", DefaultPPD, 1, false}, #line 98 "confg.gperf" {"LibraryPath:", LibraryPath, 1, false}, #line 102 "confg.gperf" {"Options:", Options, 1, true}, #line 94 "confg.gperf" {"DefaultPrinter:", DefaultPrinter, 1, true}, #line 103 "confg.gperf" {"OutputFirstLine:", OutputFirstLine, 1, true}, #line 105 "confg.gperf" {"PassThrough:", Obsolete, 1, true}, #line 106 "confg.gperf" {"Pattern:", Obsolete, 1, true}, #line 110 "confg.gperf" {"UnknownPrinter:", UnknownPrinter, 1, true}, #line 95 "confg.gperf" {"Delegation:", Delegation, 1, true}, #line 96 "confg.gperf" {"FileCommand:", FileCommand, 1, true}, #line 99 "confg.gperf" {"MacroMetaSequence:", Variable, 2, true}, #line 109 "confg.gperf" {"TemporaryDirectory:", Obsolete, 1, true}, #line 111 "confg.gperf" {"UserOption:", UserOption, 2, true}, #line 108 "confg.gperf" {"Printer:", Printer, 2, true}, #line 107 "confg.gperf" {"PrependLibraryPath:", PrependLibraryPath, 1, true}, #line 104 "confg.gperf" {"PageLabelFormat:", PageLabelFormat, 1, true}, #line 92 "confg.gperf" {"AppendLibraryPath:", AppendLibraryPath, 1, true} }; static signed char lookup[] = { -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, -1, 4, 5, 6, -1, 7, 8, 9, 10, -1, 11, 12, 13, 14, 15, -1, 16, -1, 17, 18, -1, 19, -1, 20 }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register unsigned int key = hash (str, len); if (key <= MAX_HASH_VALUE) { register int index = lookup[key]; if (index >= 0) { register const char *s = wordlist[index].name; if (*str == *s && !strcmp (str + 1, s + 1)) return &wordlist[index]; } } } return 0; } #line 113 "confg.gperf" /* * Read the configuration file */ int a2_read_config (a2ps_job * job, const char *path, const char *file) { /* The maximum number of args for an entry. */ #define MAX_ARGC 10 FILE *fp; char * fname; char *buf = NULL; size_t bufsiz = 0; int firstline = 0, lastline = 0; if (path) fname = file_name_concat (path, file, NULL); else fname = strdup (file); fp = fopen (fname, "r"); if (fp == NULL) return 0; message (msg_opt | msg_file, (stderr, "Reading configuration file `%s'\n", fname)); while (getshline_numbered (&firstline, &lastline, &buf, &bufsiz, fp) != -1) { struct keyword_s *keyword; /* An array of the arguments. The first argument ARGV[0] is the name of the entry, e.g. 'Options:'. */ int argc; char *argv [MAX_ARGC]; argv[0] = strtok (buf, " \t\n"); /* Blank line, but not empty */ if (!argv[0]) continue; keyword = in_word_set (argv[0], strlen (argv[0])); if (!keyword) error_at_line (1, 0, fname, firstline, _("invalid option `%s'"), quotearg (argv[0])); /* Fetch the arguments */ for (argc = 1 ; argc <= keyword->argc ; argc++) { if (keyword->line_token && argc == keyword->argc) argv [argc] = strtok (NULL, "\n"); else argv [argc] = strtok (NULL, " \t\n"); if (argv [argc] == NULL) error_at_line (1, 0, fname, firstline, _("missing argument for `%s'"), quotearg (argv[0])); } /* Check that there is no extra argument. */ if (strtok (NULL, "\n")) error_at_line (1, 0, fname, firstline, "extra argument for `%s'", quotearg (argv[0])); /* Process the entry. */ switch (keyword->code) { case Include: /* At this point, read another config file. */ { char * dir; if (*argv[1] == DIRECTORY_SEPARATOR) /* Path is absolute */ dir = NULL; else /* Relative. Give its root. */ dir = dir_name (fname); if (!a2_read_config (job, dir, argv[1])) { char *included_file; if (dir) included_file = file_name_concat (dir, argv[1], NULL); else included_file = strdup (argv[1]); error_at_line (0, errno, fname, firstline, _("cannot open file `%s'"), quotearg (included_file)); } } break; case Options: { /* Set PROGRAM_NAME so that the error messages report the file name and line. */ char *old_program_name = program_name; program_name = ALLOCA (char, strlen (program_name) + strlen (fname) + strlen ("%:%:999990")); sprintf (program_name, "%s:%s:%d", old_program_name, fname, firstline); a2ps_handle_string_options (job, argv[1]); program_name = old_program_name; } break; case DefaultPPD: /* Default PPD file */ a2ps_printers_default_ppdkey_set (job->printers, argv[1]); break; /* Handling of the printers */ case Printer: if (!a2ps_printers_add (job->printers, argv[1], argv[2])) error_at_line (1, 0, fname, firstline, _("invalid definition for printer `%s': %s"), argv[1], quotearg (argv[2])); break; case UnknownPrinter: if (!a2ps_printers_add (job->printers, _("Unknown Printer"), argv[1])) error_at_line (1, 0, fname, firstline, _("invalid definition for printer `%s': %s"), _("Unknown Printer"), quotearg (argv[1])); break; case DefaultPrinter: if (!a2ps_printers_add (job->printers, _("Default Printer"), argv[1])) error_at_line (1, 0, fname, firstline, _("invalid definition for printer `%s': %s"), _("Default Printer"), quotearg (argv[1])); break; case Delegation: /* This is only for a2ps the program. Read this only if there's a reader */ if (delegation_hook) (*delegation_hook) (fname, firstline, argv[1]); break; case UserOption: user_option_add (job, argv[1], argv[2]); break; case OutputFirstLine: xstrcpy (job->status->magic_number, argv[1]); break; case PageLabelFormat: xstrcpy (job->status->page_label_format, argv[1]); break; case Medium: { unsigned w, h, llx, lly, urx, ury; switch (sscanf (argv[2], "%u %u %u %u %u %u", &w, &h, &llx, &lly, &urx, &ury)) { case 6: /* BBox is also given */ add_medium (job, argv[1], w, h, llx, lly, urx, ury); break; case 2: add_medium_with_default_margin (job, argv[1], w, h); break; default: error_at_line (1, 0, fname, firstline, "invalid number of arguments for `%s'", quotearg (argv[0])); } } break; case Variable: if (!macro_meta_sequence_add (job, argv[1], argv[2])) error_at_line (1, 0, fname, firstline, _("invalid variable identifier `%s'"), quotearg (argv[1])); break; /* Handling of the library path */ case LibraryPath: job->common.path = pw_string_to_path (argv[1]); break; case AppendLibraryPath: job->common.path = pw_append_string_to_path (job->common.path, argv[1]); break; case PrependLibraryPath: job->common.path = pw_prepend_string_to_path (job->common.path, argv[1]); break; case FileCommand: /* How to call file */ xstrcpy (job->file_command, argv[1]); break; case Obsolete: /* TRANS: The following message says that in a2ps.cfg there is an entry (such as `Pattern:', or `PassThrough:') which is no longer used. */ error_at_line (0, 0, fname, firstline, _("obsolete `%s' entry. Ignored"), argv[0]); break; } } fclose (fp); return 1; } /* Global config. * This is really not an easy thing because, people may want * to check the package before the installation. The worst * case is when an older a2ps is yet installed. So we _must_ * have a special way to deal with the tests. This is why * I introduced an env-var: A2PS_CONFIG, which * points to a2ps.cfg. * Note that it also improves the robustness of `make distcheck'. */ void a2_read_sys_config (a2ps_job * job) { const char *config_file; config_file = getenv ("A2PS_CONFIG"); if (!config_file) config_file = SYSCONFFILE; /* I see no reason to end a2ps here if the file is not found: other files follow. Just say it. */ if (a2_read_config (job, NULL, config_file)) return; error (0, errno, _("cannot open file `%s'"), quotearg (config_file)); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/confg.gperf���������������������������������������������������������������������0000644�0000000�0000000�00000022256�14364475125�013041� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%{ /* -*- C -*- */ /* * confg.c * * Read and understanding everything about the options * & (dynamic) configuration of a2ps. * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /************************************************************************/ /* */ /* I n c l u d e f i l e s */ /* */ /************************************************************************/ #include "a2ps.h" #include "routines.h" #include "message.h" #include "media.h" #include "jobs.h" #include "getshline.h" #include "pathwalk.h" #include "confg.h" #include "useropt.h" #include "filenamecat.h" #include "printers.h" #include "options.h" #include "metaseq.h" #include "quotearg.h" #include "dirname.h" extern char *program_name; /* * Hooks used */ config_hook delegation_hook = NULL; config_hook toc_entry_hook = NULL; enum keyword_e { AppendLibraryPath, DefaultPPD, DefaultPrinter, Delegation, FileCommand, Include, LibraryPath, Medium, Obsolete, Options, OutputFirstLine, PageLabelFormat, PrependLibraryPath, Printer, UnknownPrinter, UserOption, Variable }; %} struct keyword_s { const char *name; enum keyword_e code; /* Number of arguments. */ int argc; /* If true, the last argument composed of the rest of the line, otherwise separated by spaces. */ bool line_token; }; %% AppendLibraryPath:, AppendLibraryPath, 1, true DefaultPPD:, DefaultPPD, 1, false DefaultPrinter:, DefaultPrinter, 1, true Delegation:, Delegation, 1, true FileCommand:, FileCommand, 1, true Include:, Include, 1, false LibraryPath:, LibraryPath, 1, false MacroMetaSequence:, Variable, 2, true Media:, Medium, 2, true Medium:, Medium, 2, true Options:, Options, 1, true OutputFirstLine:, OutputFirstLine, 1, true PageLabelFormat:, PageLabelFormat, 1, true PassThrough:, Obsolete, 1, true Pattern:, Obsolete, 1, true PrependLibraryPath:, PrependLibraryPath, 1, true Printer:, Printer, 2, true TemporaryDirectory:, Obsolete, 1, true UnknownPrinter:, UnknownPrinter, 1, true UserOption:, UserOption, 2, true Variable:, Variable, 2, true %% /* * Read the configuration file */ int a2_read_config (a2ps_job * job, const char *path, const char *file) { /* The maximum number of args for an entry. */ #define MAX_ARGC 10 FILE *fp; char * fname; char *buf = NULL; size_t bufsiz = 0; int firstline = 0, lastline = 0; if (path) fname = file_name_concat (path, file, NULL); else fname = strdup (file); fp = fopen (fname, "r"); if (fp == NULL) return 0; message (msg_opt | msg_file, (stderr, "Reading configuration file `%s'\n", fname)); while (getshline_numbered (&firstline, &lastline, &buf, &bufsiz, fp) != -1) { struct keyword_s *keyword; /* An array of the arguments. The first argument ARGV[0] is the name of the entry, e.g. 'Options:'. */ int argc; char *argv [MAX_ARGC]; argv[0] = strtok (buf, " \t\n"); /* Blank line, but not empty */ if (!argv[0]) continue; keyword = in_word_set (argv[0], strlen (argv[0])); if (!keyword) error_at_line (1, 0, fname, firstline, _("invalid option `%s'"), quotearg (argv[0])); /* Fetch the arguments */ for (argc = 1 ; argc <= keyword->argc ; argc++) { if (keyword->line_token && argc == keyword->argc) argv [argc] = strtok (NULL, "\n"); else argv [argc] = strtok (NULL, " \t\n"); if (argv [argc] == NULL) error_at_line (1, 0, fname, firstline, _("missing argument for `%s'"), quotearg (argv[0])); } /* Check that there is no extra argument. */ if (strtok (NULL, "\n")) error_at_line (1, 0, fname, firstline, "extra argument for `%s'", quotearg (argv[0])); /* Process the entry. */ switch (keyword->code) { case Include: /* At this point, read another config file. */ { char * dir; if (*argv[1] == DIRECTORY_SEPARATOR) /* Path is absolute */ dir = NULL; else /* Relative. Give its root. */ dir = dir_name (fname); if (!a2_read_config (job, dir, argv[1])) { char *included_file; if (dir) included_file = file_name_concat (dir, argv[1], NULL); else included_file = strdup (argv[1]); error_at_line (0, errno, fname, firstline, _("cannot open file `%s'"), quotearg (included_file)); } } break; case Options: { /* Set PROGRAM_NAME so that the error messages report the file name and line. */ char *old_program_name = program_name; program_name = ALLOCA (char, strlen (program_name) + strlen (fname) + strlen ("%:%:999990")); sprintf (program_name, "%s:%s:%d", old_program_name, fname, firstline); a2ps_handle_string_options (job, argv[1]); program_name = old_program_name; } break; case DefaultPPD: /* Default PPD file */ a2ps_printers_default_ppdkey_set (job->printers, argv[1]); break; /* Handling of the printers */ case Printer: if (!a2ps_printers_add (job->printers, argv[1], argv[2])) error_at_line (1, 0, fname, firstline, _("invalid definition for printer `%s': %s"), argv[1], quotearg (argv[2])); break; case UnknownPrinter: if (!a2ps_printers_add (job->printers, _("Unknown Printer"), argv[1])) error_at_line (1, 0, fname, firstline, _("invalid definition for printer `%s': %s"), _("Unknown Printer"), quotearg (argv[1])); break; case DefaultPrinter: if (!a2ps_printers_add (job->printers, _("Default Printer"), argv[1])) error_at_line (1, 0, fname, firstline, _("invalid definition for printer `%s': %s"), _("Default Printer"), quotearg (argv[1])); break; case Delegation: /* This is only for a2ps the program. Read this only if there's a reader */ if (delegation_hook) (*delegation_hook) (fname, firstline, argv[1]); break; case UserOption: user_option_add (job, argv[1], argv[2]); break; case OutputFirstLine: xstrcpy (job->status->magic_number, argv[1]); break; case PageLabelFormat: xstrcpy (job->status->page_label_format, argv[1]); break; case Medium: { unsigned w, h, llx, lly, urx, ury; switch (sscanf (argv[2], "%u %u %u %u %u %u", &w, &h, &llx, &lly, &urx, &ury)) { case 6: /* BBox is also given */ add_medium (job, argv[1], w, h, llx, lly, urx, ury); break; case 2: add_medium_with_default_margin (job, argv[1], w, h); break; default: error_at_line (1, 0, fname, firstline, "invalid number of arguments for `%s'", quotearg (argv[0])); } } break; case Variable: if (!macro_meta_sequence_add (job, argv[1], argv[2])) error_at_line (1, 0, fname, firstline, _("invalid variable identifier `%s'"), quotearg (argv[1])); break; /* Handling of the library path */ case LibraryPath: job->common.path = pw_string_to_path (argv[1]); break; case AppendLibraryPath: job->common.path = pw_append_string_to_path (job->common.path, argv[1]); break; case PrependLibraryPath: job->common.path = pw_prepend_string_to_path (job->common.path, argv[1]); break; case FileCommand: /* How to call file */ xstrcpy (job->file_command, argv[1]); break; case Obsolete: /* TRANS: The following message says that in a2ps.cfg there is an entry (such as `Pattern:', or `PassThrough:') which is no longer used. */ error_at_line (0, 0, fname, firstline, _("obsolete `%s' entry. Ignored"), argv[0]); break; } } fclose (fp); return 1; } /* Global config. * This is really not an easy thing because, people may want * to check the package before the installation. The worst * case is when an older a2ps is yet installed. So we _must_ * have a special way to deal with the tests. This is why * I introduced an env-var: A2PS_CONFIG, which * points to a2ps.cfg. * Note that it also improves the robustness of `make distcheck'. */ void a2_read_sys_config (a2ps_job * job) { const char *config_file; config_file = getenv ("A2PS_CONFIG"); if (!config_file) config_file = SYSCONFFILE; /* I see no reason to end a2ps here if the file is not found: other files follow. Just say it. */ if (a2_read_config (job, NULL, config_file)) return; error (0, errno, _("cannot open file `%s'"), quotearg (config_file)); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/confg.h�������������������������������������������������������������������������0000644�0000000�0000000�00000002746�14251132535�012155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* confg.h - read and understanding everything about the options and (dynamic) configuration of a2ps Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _CONFG_H_ #define _CONFG_H_ struct a2ps_job; /* * Type of the functions that can be used as hooks when reading * the config files */ typedef void (* config_hook) (const char * filename, unsigned line, char * config_line); extern config_hook delegation_hook; extern config_hook toc_entry_hook; /* liba2ps.h:begin */ /* * Read the configuration file */ int a2_read_config (struct a2ps_job * job, const char *path, const char *file); /* * Read the system's configuration file * (i.e., a2_read_config (job, etc, a2ps.cfg)) */ void a2_read_sys_config (struct a2ps_job * job); /* liba2ps.h:end */ #endif ��������������������������a2ps-4.15.5/liba2ps/darray.c������������������������������������������������������������������������0000644�0000000�0000000�00000032007�14251174016�012327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* darray.c - dynamic arrays handling Copyright 1996-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Author: Akim Demaille <demaille@inf.enst.fr> */ #include <config.h> #include <system.h> #include "darray.h" #include "routines.h" int da_exit_error = 1; /* exit value when encounters * * an error */ #define QSORT_INSERT_SORT_LIMIT 37 /* Bellow, insert sort is used */ #define QSORT_STACK 100 #define DA_SWAP(a,i,j) \ do { \ tmp = a->content [i]; \ a->content [i] = a->content [j]; \ a->content [j] = tmp ; \ } while (0) /* * Create a dynamic array */ struct darray * da_new (const char * name, size_t size, enum da_growth growth, size_t increment, da_print_func_t self_print, da_cmp_func_t cmp) { struct darray * res; /* No longer relevant: size_t cannot be null */ if (size == 0) error (da_exit_error, 0, "invalid size for dynamic array `%s': %zu", name, size); if (increment == 0 && growth != da_steady) error (da_exit_error, 0, "invalid increment for dynamic array `%s': %zu", name, increment); res = XMALLOC (struct darray); res->name = name; res->original_size = size; res->size = size; res->content = XCALLOC (res->size, void *); res->growth = growth; res->increment = increment; res->len = 0; /* Routines */ res->self_print = self_print; res->cmp = cmp; return res; } /* * Report the status of the array */ void da_print_stats (struct darray * arr, FILE * stream) { const char * cp = NULL; fprintf (stream, _("Dynamic array `%s':\n"), arr->name); fprintf (stream, _("\tload: %zu/%zu (%2.1f%%)\n"), arr->len, arr->size, 100.0 * (double) arr->len / (double) arr->size); switch (arr->growth) { case da_steady: /* growth is steady, i.e., it cannot grow, it is constant */ cp = "[const]"; break; case da_linear: /* growth is linear. eg. 2, 4, 6, 8 */ cp = "+="; break; case da_geometrical: /* growth is exponential. eg. 2, 4, 8, 16 */ cp = "*="; break; default: abort (); } fprintf (stream, _("\toriginal size: %zu, growth: %s %zu\n"), arr->original_size, cp, arr->increment); } /* * Resize, unless too small to fit */ void da_resize (struct darray * arr, size_t size) { if (arr->len + 1 < size) { arr->size = size; arr->content = xnrealloc (arr->content, arr->size, sizeof(void *)); } } /* * Make a dyn. array bigger */ void da_grow (struct darray * arr) { switch (arr->growth) { case da_steady: return; case da_linear: arr->size += arr->increment; break; case da_geometrical: arr->size *= arr->increment; break; default: abort (); } arr->content = xnrealloc (arr->content, arr->size, sizeof(void *)); } /* * Make a clone */ struct darray * da_clone (struct darray * array) { struct darray * res; res = xmemdup (array, sizeof *(array)); res->content = xmemdup (array->content, (array->len) * sizeof *(array->content)); return res; } /* * Is it sorted? */ int da_is_sorted (struct darray * arr) { size_t i; for (i = 1 ; i < arr->len ; i++) if (arr->cmp (arr->content [i], arr->content [i - 1]) < 0) return 0; return 1; } /* * Are two darray equal (pointer-wise)? */ int da_equal (struct darray * ar1, struct darray * ar2) { size_t i; if (ar1->len != ar2->len) return 0; for (i = 0 ; i< ar1->len ; i++) if (ar1->content [i] != ar2->content [i]) return 0; return 1; } /* * Do two arrays have same semantics (wrt cmp) content? * (ar1->cmp is used for the comparison) */ int da_cmp_equal (struct darray * ar1, struct darray * ar2) { size_t i; if (ar1->len != ar2->len) return 0; for (i = 0 ; i< ar1->len ; i++) if (ar1->cmp (ar1->content [i], ar2->content [i])) return 0; return 1; } /* * Where is STUFF in ARR (equal in the sense of self_cmp) * -1 if is not in. */ int da_where (struct darray * arr, const void * stuff) { size_t i; for (i = 0 ; i < arr->len ; i++) if (!arr->cmp (arr->content[i], stuff)) return (int) i; return -1; } /* * Does this stuff is selfcmp equal to an item of the darray? */ int da_includes (struct darray * arr, const void * stuff) { return (da_where (arr, stuff) != -1); } /* * Append an element */ void da_append (struct darray * arr, void * elem) { if (da_is_full (arr)) da_grow (arr); arr->content [arr->len++] = elem; } /* * Insert an element at a given place. */ void da_insert_at (struct darray * arr, void * elem, size_t where) { size_t i; if (where > arr->len) error (da_exit_error, 0, "can't insert at %zu in darray %s [0,%zu]\n", where, arr->name, arr->len - 1); if (da_is_full (arr)) da_grow (arr); for (i = arr->len ; where < i ; i--) arr->content [i] = arr->content [i - 1]; arr->content [ where ] = elem; arr->len ++; } /* * Remove an element at a given place. */ void da_remove_at (struct darray * arr, size_t where) { size_t i; if (where >= arr->len) error (da_exit_error, 0, "can't remove at %zu in darray %s [0,%zu]\n", where, arr->name, arr->len - 1); for (i = where + 1 ; i < arr->len ; i++) arr->content [i - 1] = arr->content [i]; arr->len --; } /* * Concat the second in the first */ void da_concat (struct darray * arr, struct darray * arr2) { size_t i; size_t len = arr->len + arr2->len; if (len > arr->size) { arr->size = len + 1; arr->content = xnrealloc (arr->content, arr->size, sizeof(void *)); } for (i = 0 ; i < arr2->len ; i++) arr->content [arr->len++] = arr2->content[i]; } /* * Prefix the content of ARR by that of ARR2 */ void da_prefix (struct darray * arr, struct darray * arr2) { size_t i; size_t len = arr->len + arr2->len; if (len > arr->size) { arr->size = len + 1; arr->content = xnrealloc (arr->content, arr->size, sizeof(void *)); } /* Move the content of ARR */ for (i = arr->len ; i-- > 0 ;) arr->content [ i + arr2->len ] = arr->content [ i ]; /* Copy the content of ARR2 */ for (i = 0 ; i < arr2->len ; i++) arr->content [ i ] = arr2->content[ i ]; arr->len += arr2->len; } /* * Implementation of QSORT as given by Sedgewick */ void da_qsort (struct darray * arr) { size_t ir, j, k, l, i; size_t jstack, *istack; void * a, * tmp; /* Do not sort an empty array */ if (arr->len <= 1) return; istack = XNMALLOC (QSORT_STACK, size_t); ir = arr->len - 1; l = 0; jstack = 0; for (;;) { if (ir - l < QSORT_INSERT_SORT_LIMIT) { /* Insertion sort is then prefered */ for (j = l + 1 ; j <= ir ; j++) { a = arr->content [j]; for (i = j ; i-- > l ;) { if (arr->cmp (arr->content [i], a) <= 0) break; arr->content [i + 1] = arr->content [i]; } arr->content [i + 1] = a; } if (jstack == 0) break; ir = istack [jstack--]; l = istack [jstack--]; } else { k = (l + ir) / 2; DA_SWAP (arr, k, l + 1); if (arr->cmp (arr->content [l], arr->content [ir]) > 0) DA_SWAP (arr, l, ir); if (arr->cmp (arr->content [l + 1], arr->content [ir]) > 0) DA_SWAP (arr, l + 1, ir); if (arr->cmp (arr->content [l], arr->content [l + 1]) > 0) DA_SWAP (arr, l, l + 1); i = l + 1; j = ir; a = arr->content [l + 1]; for (;;) { do i++; while (arr->cmp (arr->content [i], a) < 0); do j--; while (arr->cmp (arr->content [j], a) > 0); if (j < i) break; /* Partion is completed */ DA_SWAP (arr, i, j); } arr->content [l + 1] = arr->content [j]; arr->content [j] = a; jstack += 2; /* Push pointers to larger subarry on stack. * Process smaller subarrays now */ if (jstack > QSORT_STACK) error (da_exit_error, 0, "da_qsort: QSORT_STACK too small (%d)", QSORT_STACK); if (ir - i + 1 >= j - l) { istack [jstack] = ir; istack [jstack - 1] = i; ir = j - 1; } else { istack [jstack] = j - 1; istack [jstack - 1] = l; l = i; } } } } /* * Implementation of QSORT as given by Sedgewick */ void da_qsort_with_arg (struct darray * arr, da_cmp_arg_func_t cmp, const void * arg) { size_t ir, j, k, l, i; size_t jstack, *istack; void * a, * tmp; /* Do not sort an empty array */ if (arr->len <= 1) return; istack = XNMALLOC (QSORT_STACK, size_t); ir = arr->len - 1; l = 0; jstack = 0; for (;;) { if (ir - l < QSORT_INSERT_SORT_LIMIT) { /* Insertion sort is then prefered */ for (j = l + 1 ; j <= ir ; j++) { a = arr->content [j]; for (i = j ; i-- > l ;) { if (cmp (arr->content [i], a, arg) <= 0) break; arr->content [i + 1] = arr->content [i]; } arr->content [i + 1] = a; } if (jstack == 0) break; ir = istack [jstack--]; l = istack [jstack--]; } else { k = (l + ir) / 2; DA_SWAP (arr, k, l + 1); if (cmp (arr->content [l], arr->content [ir], arg) > 0) DA_SWAP (arr, l, ir); if (cmp (arr->content [l + 1], arr->content [ir], arg) > 0) DA_SWAP (arr, l + 1, ir); if (cmp (arr->content [l], arr->content [l + 1], arg) > 0) DA_SWAP (arr, l, l + 1); i = l + 1; j = ir; a = arr->content [l + 1]; for (;;) { do i++; while (cmp (arr->content [i], a, arg) < 0); do j--; while (cmp (arr->content [j], a, arg) > 0); if (j < i) break; /* Partion is completed */ DA_SWAP (arr, i, j); } arr->content [l + 1] = arr->content [j]; arr->content [j] = a; jstack += 2; /* Push pointers to larger subarry on stack. * Process smaller subarrays now */ if (jstack > QSORT_STACK) error (da_exit_error, 0, "da_qsort: QSORT_STACK too small (%d)", QSORT_STACK); if (ir - i + 1 >= j - l) { istack [jstack] = ir; istack [jstack - 1] = i; ir = j - 1; } else { istack [jstack] = j - 1; istack [jstack - 1] = l; l = i; } } } } /* * Leave the first of each doubles */ void da_unique (struct darray * arr) { size_t c; c = 1; while (c < arr->len) { if (arr->cmp (arr->content [c - 1], arr->content[c]) == 0) da_remove_at (arr, c); else c++; } } /* * Merge A2 into A1. Both *are sorted*. * In the result there are never two equal entries * (in the sense of self_cmp). * * In case of conflict (equal entries from the point of view * of a1->cmp), * - if POLICY == da_1_wins, keep that of A1 * - if POLICY == da_2_wins, keep that of A2 * * If there are doubles in a1 and/or in a2, they still will be doubles * in the returned result. */ void da_merge (struct darray * a1, struct darray * a2, enum da_include_policy policy) { size_t c1, c2; /* Counters on a1, and a2 */ c1 = c2 = 0; while ((c1 != a1->len) || (c2 != a2->len)) { /* Leave what is in a1 as long as it is strictly smaller than the * next item of a2 */ while ((c1 < a1->len) && ((c2 == a2->len) || (a1->cmp (a1->content [c1], a2->content [c2]) < 0))) c1 ++; /* Skip whatever appears in a1, but is in a2 too */ while ((c1 < a1->len) && (c2 < a2->len) && (a1->cmp (a1->content [c1], a2->content [c2]) == 0)) if (policy == da_1_wins) c2++; else c1++; /* Take what is a2 as long as it is smaller or equal to * what appeared last in a1 */ while ((c2 < a2->len) && ((c1 == a1->len) || (a1->cmp (a1->content [c1], a2->content [c2]) >= 0))) da_insert_at (a1, a2->content [c2++], c1); } } /* * Dump on stderr the content */ void da_self_print (struct darray * arr, FILE * stream) { size_t i; fprintf (stream, _("Dynamic array `%s':\n"), arr->name); if (!arr->self_print) abort (); for (i = 0 ; i < arr->len ; i++) { fprintf (stream, "[%2zu] = ", i); arr->self_print (arr->content [i], stream); fprintf (stream, "\n"); } } /* * For each item of ARR, call FN (ITEM) */ void da_map (struct darray * arr, da_map_func_t fn) { size_t i; for (i = 0 ; i < arr->len ; i++) (*fn) (arr->content [i]); } /* * Idem, but with an argument */ void da_maparg (struct darray * arr, da_maparg_func_t func, void * arg) { size_t i; for (i = 0 ; i < arr->len ; i++) (*func) (arr->content [i], arg); } /* * Some helping routines for special darray cases */ /* * darray of strings */ int da_str_cmp (const char * s1, const char * s2) { return strcmp (s1, s2); } void da_str_print (const char * s1, FILE * stream) { fputs ((const char *) s1, stream); } void da_str_printnl (const char * s1, FILE * stream) { fputs ((const char *) s1, stream); putc ('\n', stream); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/darray.h������������������������������������������������������������������������0000644�0000000�0000000�00000007524�14236507210�012341� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* darray.h - dynamic arrays handling Copyright 1996-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Author: Akim Demaille <demaille@inf.enst.fr> */ #ifndef DARRAY_H_ # define DARRAY_H_ enum da_growth { da_steady, /* i.e. you're responsible */ da_linear, /* i.e. 1 2 3 4... */ da_geometrical /* i.e. 1 2 4 8... */ }; typedef void (*da_map_func_t) (void *); typedef void (*da_maparg_func_t) (void *, void *); typedef void (*da_print_func_t) (const void *, FILE * stream); typedef int (*da_cmp_func_t) (const void * k1, const void * k2); typedef int (*da_cmp_arg_func_t) (const void * k1, const void * k2, const void * arg); struct darray { const char * name; size_t size; size_t original_size; /* The size with which it has been created */ enum da_growth growth; size_t increment; size_t len; /* assert (len + 1 <= size) */ void * * content; da_print_func_t self_print; da_cmp_func_t cmp; }; extern int da_exit_error; /* exit value when encounters * * an error (default is 1) */ /* * Maintaining */ struct darray * da_new (const char * name, size_t size, enum da_growth growth, size_t increment, da_print_func_t self_print, da_cmp_func_t cmp); void da_print_stats (struct darray * arr, FILE * stream); void da_resize (struct darray * arr, size_t size); void da_grow (struct darray * arr); /* * Copying */ struct darray * da_clone (struct darray * arr); /* * Testing */ int da_is_full (struct darray * arr); int da_is_sorted (struct darray * arr); #define da_is_full(da) ((da)->len + 1 >= (da)->size) #define da_is_empty(da) ((da)->len == 0) /* Do they have same size, and same pointers in content? */ int da_equal (struct darray * ar1, struct darray * ar2); /* Do they have same size, and equal contents arcording to ar1->cmp? */ int da_cmp_equal (struct darray * ar1, struct darray * ar2); int da_where (struct darray * arr, const void * stuff); int da_includes (struct darray * arr, const void * stuff); /* * Adding/removing */ void da_append (struct darray * arr, void * elem); void da_insert_at (struct darray * arr, void * elem, size_t where); void da_remove_at (struct darray * arr, size_t where); void da_concat (struct darray * arr, struct darray * arr2); void da_prefix (struct darray * arr, struct darray * arr2); /* * Mapped treatement on elements */ void da_qsort (struct darray * arr); void da_qsort_with_arg (struct darray * arr, da_cmp_arg_func_t cmp, const void * arg); void da_self_print (struct darray * arr, FILE * stream); void da_unique (struct darray * arr); /* In case of equality, keep the first, or the second? */ enum da_include_policy { da_1_wins, da_2_wins }; /* Merge A2 in A1, according to the POLICY, and free not retained * items by FREE_FUNC if not NULL */ void da_merge (struct darray * a1, struct darray * a2, enum da_include_policy policy); void da_map (struct darray * arr, da_map_func_t func); void da_maparg (struct darray * arr, da_maparg_func_t func, void * arg); /* * ready to use auxiliary functions */ int da_str_cmp (const char * s1, const char * s2); void da_str_print (const char * s1, FILE * stream); void da_str_printnl (const char * s1, FILE * stream); #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/document.c����������������������������������������������������������������������0000644�0000000�0000000�00000013214�14367514174�012675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* document.c - handle report of various documenting formats Copyright 1988-2022 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "routines.h" #include "document.h" #include "xstrrpl.h" /* The rules for authors to Texinfo */ #define AUTHORS_TO_TEXINFO \ "@", "@@", \ NULL /* The rules to convert documentation to another format */ /* 1. Plain ASCII */ #define DOC_TO_PLAIN \ "url(", "", \ ")url(", " (", \ ")url", ")", \ "samp(", "`", \ ")samp", "'", \ "emph(", "*", \ ")emph", "*", \ "code(", "", \ ")code", "", \ "@example\n", "", \ "@end example\n", "", \ "@end example", "", /* Just in case */ \ "@itemize\n", "", \ "@end itemize", "", \ "@item\n", " - ", \ "@@", "@", \ NULL /* 2. Towards HTML */ #define DOC_TO_HTML \ "url(", "<a href=\"", \ ")url(", "\">", \ ")url", "</a>", \ "emph(", "<emph>", \ ")emph", "</emph>'", \ "samp(", "`<code>", \ ")samp", "</code>'", \ "code(", "<code>", \ ")code", "</code>", \ "@example", "<pre>", \ "@end example", "</pre>", \ "@itemize", "<ul>", \ "@end itemize", "</ul>", \ "@item\n", "<li>", \ "@@", "@", \ NULL /* 3. Towards Texinfo */ #define DOC_TO_TEXINFO \ "emph(", "@emph{", \ ")emph", "}", \ "samp(", "@samp{", \ ")samp", "}", \ "code(", "@code{", \ ")code", "}", \ "url(", "@href{", \ ")url(", ",", \ ")url", "}", \ "@itemize", "@itemize @minus", \ NULL /************************************************************************/ /* The authors list handling */ /************************************************************************/ /* * Split the authors and print them on STREAM using AUTHOR_FMT * (which %1s is clean name, and %2s is the email), separated * with BETWEEN). They must be separated with ',', and * use this convention "First Last <email>". */ static void authors_print (const char * authors, FILE * stream, const char *before, const char *author_fmt, const char *between, const char *after) { char *cp, *author, *email; const char *authors_end; bool first = true; if (!authors) return; /* Work on a copy */ astrcpy (cp, authors); authors_end = cp + strlen (authors); cp = strtok (cp, ","); while (cp) { author = cp; email = author + strcspn (author, "<"); *(email - 1) = '\0'; email++; if (email > authors_end) return; *(email + strcspn (email, ">")) = '\0'; *(email - 1) = '\0'; if (first) { fputs (before, stream); first = false; } else fputs (between, stream); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" fprintf (stream, author_fmt, author, email); #pragma GCC diagnostic pop cp = strtok (NULL, ","); } if (!first) fputs (after, stream); } /* * Plain : nothing to change */ void authors_print_plain (const char * authors, FILE * stream, const char *before) { authors_print (authors, stream, before, "%s <%s>", ", ", ".\n"); } /* * HTML : nothing to change */ void authors_print_html (const char * authors, FILE * stream, const char *before) { authors_print (authors, stream, before, "<a href=\"mailto:%2$s\">%1$s</a>", ", ", ".\n"); } /* * Plain : nothing to change */ void authors_print_texinfo (const char * authors, FILE * stream, const char *before) { /* We must quote the @ of the emails */ char *cp = xvstrrpl ((const char *) authors, AUTHORS_TO_TEXINFO); /* Don't print the email, that makes too wide output. */ authors_print (cp, stream, before, "%s", ", ", ".\n"); } /************************************************************************/ /* The documentation handling */ /************************************************************************/ /* 1. Plain ASCII */ void documentation_print_plain (const char * documentation, const char *format, FILE * stream) { if (!documentation) return; char *cp = xvstrrpl (documentation, DOC_TO_PLAIN); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" fprintf (stream, format, cp); #pragma GCC diagnostic pop } /* 2. Towards HTML */ void documentation_print_html (const char * documentation, const char *format, FILE * stream) { if (!documentation) return; char *cp = xvstrrpl (documentation, DOC_TO_HTML); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" fprintf (stream, format, cp); #pragma GCC diagnostic pop } /* 3. Towards Texinfo */ void documentation_print_texinfo (const char * documentation, const char *format, FILE * stream) { if (!documentation) return; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" char *cp = xvstrrpl (documentation, DOC_TO_TEXINFO); fprintf (stream, format, cp); #pragma GCC diagnostic pop } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/document.h����������������������������������������������������������������������0000644�0000000�0000000�00000003167�14367514174�012710� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* document.h - handle report of various documenting formats Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _DOCUMENT_H_ #define _DOCUMENT_H_ void authors_print_plain (const char * authors, FILE * stream, const char * before); void authors_print_html (const char * authors, FILE * stream, const char * before); void authors_print_texinfo (const char * authors, FILE * stream, const char * before); typedef void (*documentation_fn_t) (const char * documentation, const char * format, FILE * stream); void documentation_print_plain (const char * documentation, const char * format, FILE * stream); void documentation_print_html (const char * documentation, const char * format, FILE * stream); _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 0) void documentation_print_texinfo (const char * documentation, const char * format, FILE * stream); #endif /* !defined(_DOCUMENT_H_) */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/dsc.c���������������������������������������������������������������������������0000644�0000000�0000000�00000022336�14251176177�011634� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dsc.c - recording information about the PostScript resources Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "dsc.h" #include "jobs.h" #include "routines.h" #include "str_ht.h" /************************************************************************ * Multivalued hash tables * ************************************************************************/ typedef struct multivalued_entry { char * key; /* E.g., "font", "color" */ struct string_htable * entries; /* E.g., "Courier", "Helvetica-Bold" */ } multivalued_entry; static unsigned long mv_key_hash_1 (struct multivalued_entry *key) { return_STRING_HASH_1 (key->key); } static unsigned long mv_key_hash_2 (struct multivalued_entry *key) { return_STRING_HASH_2 (key->key); } static int mv_key_hash_cmp (struct multivalued_entry *x, struct multivalued_entry *y) { return_STRING_COMPARE (x->key, y->key); } /* * Create and return a new multivaluated_entry, with key TYPE. */ static struct multivalued_entry * multivalued_entry_new (const char * type) { struct multivalued_entry * res = XMALLOC (struct multivalued_entry); res->key = xstrdup (type); res->entries = string_htable_new (); return res; } /* * Return the multivalued_entry related to TYPE in TABLE * if there is, NULL otherwise. */ static struct multivalued_entry * multivalued_entry_get (struct hash_table_s * table, const char * type) { static struct multivalued_entry token, * res; token.key = (char *) type; res = (struct multivalued_entry *) hash_find_item (table, &token); return res; } /* * Add a new multivalued_entry with TYPE, if necessary */ static void multivalued_entry_add (struct hash_table_s * table, struct multivalued_entry * item) { hash_insert (table, item); } /* * In the macro table TABLE, get the sub_table having TYPE (create * if necessary), and in this sub table, store a malloc'd copy of VALUE */ static void multivalued_entry_add_couple (hash_table * table, const char * type, const char * value) { struct multivalued_entry * sub_table; sub_table = multivalued_entry_get (table, type); if (sub_table == NULL) { sub_table = multivalued_entry_new (type); multivalued_entry_add (table, sub_table); } string_htable_add (sub_table->entries, value); } /* * Return the sub hash_table corresponding to TYPE in TABLE * NULL if none */ static struct string_htable * multivalued_entry_get_sub_table (struct hash_table_s * table, const char * type) { struct multivalued_entry * item; item = multivalued_entry_get (table, type); if (!item) return NULL; return item->entries; } /* * Return the entries of type TYPE and value VALUE in TABLE * if there is. NULL otherwise */ static const char * multivalued_entry_get_sub_item (struct hash_table_s * table, const char * type, const char * value) { struct string_htable * sub_table; sub_table = multivalued_entry_get_sub_table (table, type); if (!sub_table) return NULL; return string_htable_get (sub_table, value); } struct hash_table_s * multivalued_table_new (void) { static struct hash_table_s * res; res = XMALLOC (hash_table); hash_init (res, 8, (hash_func_t) mv_key_hash_1, (hash_func_t) mv_key_hash_2, (hash_cmp_func_t) mv_key_hash_cmp); return res; } /************************************************************************ * Multivalued hash tables * ************************************************************************/ /* * Is this resource already recorded? */ int exist_resource (a2ps_job * job, const char * key, const char * value) { return (multivalued_entry_get_sub_item (job->status->needed_resources, key, value) != NULL); } /* * Used to record the requirements needed */ void add_supplied_resource (a2ps_job * job, const char * key, const char * value) { multivalued_entry_add_couple (job->status->supplied_resources, key, value); } static void multivalued_entry_dump (FILE * stream, int first, const char * fmt_first, const char * fmt_others, struct multivalued_entry * entry) { char ** values; int i; /* Get all the values in a malloc'd storage. * We sort them because: * 1. it looks better, * 2. fewer sources of differences in regression tests */ values = (char **) string_htable_dump_sorted (entry->entries); for (i = 0 ; values[i] ; i++) { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" fprintf (stream, first ? fmt_first : fmt_others, entry->key, values[i]); #pragma GCC diagnostic pop first = false; } } /* * Specify the needed resources to the PS prologue */ void dump_supplied_resources (FILE * stream, a2ps_job * job) { int i; multivalued_entry ** list; list = ((multivalued_entry **) hash_dump (job->status->supplied_resources, NULL, NULL)); for (i = 0 ; list [i] ; i ++) /* i is used as a clue that it is the first */ multivalued_entry_dump (stream, i == 0, "%%%%DocumentSuppliedResources: %s %s\n", "%%%%+ %s %s\n", list [i]); } /* * Used to record the requirements needed */ void add_needed_resource (a2ps_job * job, const char * key, const char * value) { multivalued_entry_add_couple (job->status->needed_resources, key, value); } /* * Returned the needed resource if it is known, * NULL otherwise */ static const char * needed_resource_get (a2ps_job * job, const char * key, const char * value) { return multivalued_entry_get_sub_item (job->status->needed_resources, key, value); } /* * Dump the needed resources _BUT_ the colors */ void dump_needed_resources (FILE * stream, a2ps_job * job) { int i; int first = 1; multivalued_entry ** list; list = ((multivalued_entry **) hash_dump (job->status->needed_resources, NULL, NULL)); for (i = 0 ; list [i] ; i ++) { /* Don't print the colors, because they have another section */ if (STREQ (list [i]-> key, "color") /* nor files, since they are yet included */ || STREQ (list [i]-> key, "file")) continue; multivalued_entry_dump (stream, first, "%%%%DocumentNeededResources: %s %s\n", "%%%%+ %s %s\n", list [i]); first = false; } } /* * Colors used by the document */ void add_process_color (a2ps_job * job, const char * value) { multivalued_entry_add_couple (job->status->needed_resources, "color", value); } /* * Dump the needed colors */ void dump_process_color (FILE * stream, a2ps_job * job) { struct string_htable * color_table; color_table = multivalued_entry_get_sub_table (job->status->needed_resources, "color"); if (color_table) { int i; char ** colors = (char **) string_htable_dump_sorted (color_table); if (*colors != NULL) { fputs ("%%DocumentProcessColors: ", stream); for (i = 0 ; colors [i] ; i++) fprintf (stream, "%s ", colors [i]); putc ('\n', stream); } } } /************************************************************************/ /* Handling the fonts */ /************************************************************************/ /* * We will need this fonts. * Depending whether it is part of the 13 standard fonts, consider * it to be a Needed or an IncludedResource. */ void add_required_font (a2ps_job * job, const char * name) { if (a2ps_printers_font_known_p (job->printers, name)) { /* This is a regular ps fonts. * `Needed' it, and `Include" it. * We do it only if not yet done to avoid multiple %%Include */ if (!needed_resource_get (job, "font", name)) { add_needed_resource (job, "font", name); output (job->divertion, "%%%%IncludeResource: font %s\n", name); } } else { /* This is not a known font. * `Supplie' it, and include it */ add_supplied_resource (job, "font", name); } } /* * Return a malloc'd char ** in which are stored * the required_fonts (if there are, NULL otherwise) */ char ** required_fonts_get (a2ps_job * job) { struct string_htable * font_table; font_table = multivalued_entry_get_sub_table (job->status->supplied_resources, "font"); if (font_table) return (char **) string_htable_dump_sorted (font_table); return NULL; } /* * Dump the setup code read in the various prologue (.pro and .ps) * files. The hard part is that we don't want to dump too * many definitions of fonts, to avoid running out of memory on * too old PS level 1 printers. * Nevertheless, I still wait for somebody to tell me if this is * really needed (useful is sure, needed is not) */ void dump_setup (FILE * stream, a2ps_job * job) { output_dump (job->status->setup, stream); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/dsc.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003615�14236507210�011625� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dsc.h - recording information about the PostScript resources Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _DSC_H_ #define _DSC_H_ struct a2ps_job; /* * Handling the multivalued_entry hash tables */ struct hash_table_s * multivalued_table_new (void); /* * needed ps resources (such as fonts) */ void add_needed_resource (struct a2ps_job * job, const char * key, const char * value); int exist_resource (struct a2ps_job * job, const char * key, const char * value); void add_process_color (struct a2ps_job * job, const char * value); void dump_process_color (FILE * stream, struct a2ps_job * job); void add_needed_resource (struct a2ps_job * job, const char * key, const char * value); void dump_needed_resources (FILE * stream, struct a2ps_job * job); void add_supplied_resource (struct a2ps_job * job, const char * key, const char * value); void dump_supplied_resources (FILE * stream, struct a2ps_job * job); /* * Declaration of the fonts, etc. */ void add_required_font (struct a2ps_job * job, const char * name); char ** required_fonts_get (struct a2ps_job * job); void dump_setup (FILE * stream, struct a2ps_job * job); #endif �������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/dstring.c�����������������������������������������������������������������������0000644�0000000�0000000�00000017370�14367514174�012540� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dstring.c - dynamic string handling include file, requires strings.h Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Author: Akim Demaille <demaille@inf.enst.fr> */ #include <config.h> #include <stddef.h> #include "system.h" #include "dstring.h" #include "printlen.h" #include "routines.h" #define DS_MARGIN 1024 int ds_exit_error = EXIT_FAILURE; /* exit value when encounters * * an error */ /* Initialiaze dynamic string STRING with space for SIZE characters. */ struct dstring * ds_new (size_t size, enum ds_growth growth, size_t increment) { struct dstring * res; if (size == 0) error (ds_exit_error, 0, "invalid size for dynamic string: %zu", size); if (increment == 0 && growth != ds_steady) error (ds_exit_error, 0, "invalid increment for dynamic string: %zu", increment); res = XMALLOC (struct dstring); res->len = 0; res->size = size; res->original_size = size; res->growth = growth; res->increment = increment; res->content = XNMALLOC (size, char); res->content[0] = '\0'; return res; } /* * Report the load of the string */ void ds_print_stats (struct dstring * str, FILE * stream) { const char * cp = NULL; fprintf (stream, _("Dynamic string:\n")); fprintf (stream, _("\tload: %zu/%zu (%2.1f%%)\n"), str->len, str->size, 100.0 * (double) str->len / (double) str->size); switch (str->growth) { case ds_steady: cp = "[const]"; break; case ds_linear: cp = "+="; break; case ds_geometrical: cp = "*="; break; default: error (ds_exit_error, 0, "invalid growth type for dstring"); } fprintf (stream, _("\toriginal size: %zu, growth: %s %zu\n"), str->original_size, cp, str->increment); } /* * Expand dynamic string STRING, if necessary, to hold SIZE characters. */ void ds_resize (struct dstring *string, size_t size) { if (string->len + 1 < size) { string->size = size; string->content = xnrealloc (string->content, size, sizeof(char)); } } /* * Automatic growth */ void ds_grow (struct dstring *string) { switch (string->growth) { case ds_steady: return; case ds_linear: string->size += string->increment; break; case ds_geometrical: string->size *= string->increment; break; } string->content = xnrealloc (string->content, string->size, sizeof(char)); } /****************************************************************/ /* Testing */ /****************************************************************/ /* * Guess what :) */ int ds_is_full (struct dstring *str) { return (str->len + 1 >= str->size); } /****************************************************************/ /* Usual string manipulations */ /****************************************************************/ /* * Concatenate strings to a dstring */ void ds_strcat (struct dstring *s, char *t) { size_t len = s->len; s->len += strlen (t); if (ds_is_full (s)) ds_grow (s); strcpy (s->content + len, t); } void ds_strncat (struct dstring *s, char *t, size_t n) { size_t len = s->len; s->len += n; if (ds_is_full (s)) ds_grow (s); strncpy (s->content + len, t, n); s->content[s->len] = '\0'; } /* * Concatenate chars to a dstring */ void ds_strccat (struct dstring *s, char c) { if (s->len + 2 >= s->size) ds_grow (s); s->content [s->len++] = c; s->content [s->len] = '\0'; } /****************************************************************/ /* Safe sprintf variations */ /****************************************************************/ /* * sprintf into the dstring, resizing as necessary */ void ds_vsprintf (struct dstring * ds, const char *format, va_list args) { size_t len = (size_t) vprintflen (format, args); ds_resize (ds, len); vsprintf (ds->content, format, args); ds->len = strlen (ds->content); } /* * Like sprintf, but not very carrefull * (sprinting far too big string may SEGV) */ void ds_sprintf (struct dstring * ds, const char *format, ...) { va_list args; va_start (args, format); ds_vsprintf (ds, format, args); va_end (args); } /* * Like cat_vsprintf, but not very carrefull * (sprinting far too big string may SEGV) */ void ds_cat_vsprintf (struct dstring * ds, const char *format, va_list args) { size_t len = ds->len + (size_t) vprintflen (format, args); ds_resize (ds, len); vsprintf (ds->content + ds->len, format, args); ds->len += strlen (ds->content + ds->len); } /* * Like cat_sprintf, but not very carrefull * (sprinting far too big string may SEGV) */ void ds_cat_sprintf (struct dstring * ds, const char *format, ...) { va_list args; va_start (args, format); ds_cat_vsprintf (ds, format, args); va_end (args); } /****************************************************************/ /* Unsafe sprintf variations */ /****************************************************************/ /* * Like ds_vsprintf, but not very carrefull * (sprinting far too big string may SEGV) */ void ds_unsafe_vsprintf (struct dstring * ds, const char *format, va_list args) { vsprintf (ds->content, format, args); ds->len = strlen (ds->content); } /* * Like sprintf, but not very carrefull * (sprinting far too big string may SEGV) */ void ds_unsafe_sprintf (struct dstring * ds, const char *format, ...) { va_list args; va_start (args, format); ds_unsafe_vsprintf (ds, format, args); va_end (args); } /* * Like ds_cat_vsprintf, but not very carrefull * (sprinting far too big string may SEGV) */ void ds_unsafe_cat_vsprintf (struct dstring * ds, const char *format, va_list args) { if (ds->size < ds->len + DS_MARGIN) ds_grow (ds); vsprintf (ds->content + ds->len, format, args); ds->len += strlen (ds->content + ds->len); } /* * Like cat_sprintf, but not very carrefull * (sprinting far too big string may SEGV) */ void ds_unsafe_cat_sprintf (struct dstring * ds, const char *format, ...) { va_list args; va_start (args, format); ds_unsafe_cat_vsprintf (ds, format, args); va_end (args); } /****************************************************************/ /* Dealing with files */ /****************************************************************/ /* Dynamic string S gets a string terminated by the EOS character (which is removed) from file F. S will increase in size during the function if the string from F is longer than the current size of S. Return NULL if end of file is detected. Otherwise, Return a pointer to the null-terminated string in S. */ char * ds_getdelim (struct dstring *s, char eos, FILE *f) { size_t insize; /* Amount needed for line. */ size_t strsize; /* Amount allocated for S. */ int next_ch; /* Initialize. */ insize = 0; strsize = s->len; /* Read the input string. */ next_ch = getc (f); while (next_ch != eos && next_ch != EOF) { if (insize >= strsize - 1) { ds_grow (s); strsize = s->len; } s->content[insize++] = (char) next_ch; next_ch = getc (f); } s->content[insize++] = '\0'; if (insize == 1 && next_ch == EOF) return NULL; else return s->content; } char * ds_getline (struct dstring *s, FILE *f) { return ds_getdelim (s, '\n', f); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/dstring.h�����������������������������������������������������������������������0000644�0000000�0000000�00000010554�14251132535�012527� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* dstring.h - dynamic string handling include file, requires strings.h Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef DSTRING_H_ # define DSTRING_H_ extern int ds_exit_error; /* exit value when encounters an error * * default is EXIT_FAILURE */ /* How the automatic resizing should work */ enum ds_growth { ds_steady, /* Take care of it by yourself */ ds_linear, /* size += increment */ ds_geometrical /* size *= increment */ }; /* A dynamic string consists of record that records the size of an allocated string and the pointer to that string. The actual string is a normal zero byte terminated string that can be used with the usual string functions. The major difference is that the dynamic_string routines know how to get more space if it is needed by allocating new space and copying the current string. */ struct dstring { size_t len; /* Really used */ enum ds_growth growth;/* See above */ size_t increment; /* See above */ size_t size; /* Actual amount of storage allocated. */ size_t original_size; /* size given at creation */ char *content; /* String. */ } ; /* Macros that look similar to the original string functions. WARNING: These macros work only on pointers to dynamic string records. If used with a real record, an "&" must be used to get the pointer. */ #define ds_strcmp(s1, s2) strcmp ((s1)->string, (s2)->string) #define ds_strncmp(s1, s2, n) strncmp ((s1)->string, (s2)->string, n) #define ds_index(s, c) index ((s)->string, c) #define ds_rindex(s, c) rindex ((s)->string, c) /* * Maintaining */ struct dstring * ds_new (size_t size, enum ds_growth growth, size_t increment); void ds_erase (struct dstring *string); void ds_print_stats (struct dstring * str, FILE * stream); void ds_resize (struct dstring *string, size_t size); void ds_grow (struct dstring *string); /* * Testing */ int ds_is_full (struct dstring *string); /* * Usual string manipulations */ void ds_strcat (struct dstring *s, char *t); void ds_strncat (struct dstring *s, char *t, size_t n); void ds_strccat (struct dstring *s, char c); /* * Sprintf variations */ /* Sprintf in the dstring, resizing if necessary */ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 0) void ds_vsprintf (struct dstring *s, const char *format, va_list args); /* sprintf at the end of the dstring, resize if necessary */ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 0) void ds_cat_vsprintf (struct dstring *s, const char *format, va_list args); /* Same as the two previous, but much less care is taken to * make sure the dstring is big enough */ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 0) void ds_unsafe_vsprintf (struct dstring *s, const char *format, va_list args); _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 0) void ds_unsafe_cat_vsprintf (struct dstring *s, const char *format, va_list args); /* Same as the previous, but with variable num of args */ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 3) void ds_sprintf (struct dstring *s, const char *format, ...); /* Like sprintf, but not too much carre is taken for length */ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 3) void ds_unsafe_sprintf (struct dstring *s, const char *format, ...); _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 3) void ds_cat_sprintf (struct dstring *s, const char *format, ...); /* Like sprintf, but not too much care is taken for length */ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 3) void ds_unsafe_cat_sprintf (struct dstring *s, const char *format, ...); /* * Dealing with files */ char *ds_getline (struct dstring *s, FILE * stream); char *ds_getdelim (struct dstring *s, char eos, FILE * stream); #endif /* _DSTRING_H_ */ ����������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/encoding.c����������������������������������������������������������������������0000644�0000000�0000000�00000112000�14273167073�012634� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* encoding.c - definition of the char encodings used Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <string.h> #include "encoding.h" #include "routines.h" #include "jobs.h" #include "message.h" #include "pathwalk.h" #include "pair_ht.h" #include "fonts.h" #include "xobstack.h" #include "dsc.h" #include "getshline.h" #include "document.h" #include "quotearg.h" /* Suffix of the Encoding Description Files */ #define EDF_SUFFIX ".edf" /* FIXME: THe comment is no longer exact Dealing with the encodings is a long and painful work. There are many things to be done, in as short time as possible. The big problem is to associate an array of the width of the characters for a given font in a given encoding (two keys). a2ps first loads the prologue definitions. In that file, there are lines such as: %Face: Plain Courier /p { false UL false BX fc setfont Show } bind def By this line, it is requested to encode the font Courier, which will be used through the name fc. One of the problems is that for instance Courier does not suppport Latin2 encoding and other. Then we define some substitution, related to each encoding. As an example, in latin2.edf, there is the subsitution Courier-> Courier-Ogonkify. So we must be carreful to separate various instanciation of the fonts (fc) from one encoding to another. This is done through ps dictionaries. fc is define in latin1dict, latin2dict, with different encodings. It works very well with the ps interpreters: there are no problems to encounter later, when using these dictionaries. Still, building them is painful if one wants to stay open. One may ask: << Why not %Face: Plain Courier /p { false UL false BX FontPlain setfont %% Here is the difference Show >> The answer is that in that case if two faces use the same base font, them we use twice the memory we need. One may reply: << Why not %Face: Plain Courier /p { false UL false BX FontCourier setfont %% Here is the difference Show >> The problem is then when somebody wants to use a separate Courier instance, with another size, in a header. Then there should be two different FontCourier. Too bad. It gets even worse when one knows that all this cannot be resolved with the subsitution, since these are known _after_ the prologue is loaded. And I don't want any more cross-references between prologues and encodings. So the decision, not great, but the easier, will be the second one, the one which uses too much memory: %Face: Plain Courier /p { false UL false BX FontPlain setfont %% Here is the difference Show >> because it is the most open solution. Especially if the prologue makes use of some other faces (in the headers for instance). */ /************************************************************************/ /* encoding.map handling */ /************************************************************************/ /* These entries allow to define several aliases for a single encoding. This is extremely useful for instance when a2ps-the-prog parse a mail and finds tags that define the charset to use. It could read 8859-1, or ISO-8859-1 or iso-8859-1 though the user would like latin1. The scheme, of course, should be much more general than just skipping ISO|iso-8859, since it is even _wrong_ for, say, latin5 (8859-9) From an implementation point of view, it is nothing but a double strings hash table (cf. pair_ht.[ch]). */ struct pair_htable * encodings_map_new (void) { return pair_table_new (); } /* * What is the KEY corresponding to ALIAS? */ static char * encodings_map_resolve_alias (struct pair_htable * encodings_map, const char * alias) { return pair_get (encodings_map, alias); } /* * Read a sheets map file */ static int load_encodings_map (struct a2ps_job * job, const char *file) { return pair_table_load (job->encodings_map, file); } /* * Read the encodings.map file */ int load_main_encodings_map (struct a2ps_job * job) { char * file; /* System's */ file = xpw_find_file (job->common.path, "encoding.map", NULL); load_encodings_map (job, file); if (msg_test (msg_enc)) { fprintf (stderr, "Read encoding.map:\n"); pair_table_list_long (job->encodings_map, stderr); } return 1; } /************************************************************************/ /* wx handling */ /************************************************************************/ static inline unsigned int * wx_new (void) { int i; unsigned int *res = XNMALLOC (256, unsigned int); for (i = 0 ; i < 256 ; i++) res [i] = 0; return res; } static void wx_self_print (unsigned int * wx, FILE * stream) { int j; if (wx) for (j = 0 ; j < 256 ; j += 8) fprintf (stream, "%3d: %04u %04u %04u %04u %04u %04u %04u %04u\n", j, wx [j + 0], wx [j + 1], wx [j + 2], wx [j + 3], wx [j + 4], wx [j + 5], wx [j + 6], wx [j + 7]); else fputs ("<No WX defined>\n", stream); } /************************************************************************/ /* fonts entries handling */ /************************************************************************/ /* Font entries are hashed, but they will be used only at initialization: the first thing to do will be to associate the font's to the face which uses this font. But it is not yet known. First we read the information on the encoding required (which allows us to discover that for instance Courier is _not_ to use with Latin2 (use Courier-Ogonki), and later, reading the PS prologue, we will learn what face uses what font. At this moment we will associate the font's wx to the face. */ /* * For a font (actually encoding for a given char set) * it wx. */ struct font_entry { char * key; /* eg. Courier-Ogonki */ int used; /* If used, need to be dump in the PS */ int reencode; /* E.g. Symbol is not to reencode */ unsigned int * wx; /* Not an array, because some fonts may * share their wx (Courier familly for instance */ }; static unsigned long font_entry_hash_1 (struct font_entry * entry) { return_STRING_HASH_1 (entry->key); } static unsigned long font_entry_hash_2 (struct font_entry * entry) { return_STRING_HASH_2 (entry->key); } static int font_entry_hash_cmp (struct font_entry * x, struct font_entry * y) { return_STRING_COMPARE (x->key, y->key); } static int font_entry_hash_qcmp (struct font_entry ** x, struct font_entry ** y) { return_STRING_COMPARE ((*x)->key, (*y)->key); } /* * We make a copy of the name, but not of the array */ static inline struct font_entry * font_entry_new (const char * name, unsigned int * wx) { struct font_entry * res = XMALLOC (struct font_entry); res->key = xstrdup (name); res->used = false; res->wx = wx; return res; } static void font_entry_self_print (struct font_entry * entry, FILE * stream) { fprintf (stream, "***** %s ***** (%s, %s) ", entry->key, entry->used ? "used" : "not used", entry->reencode ? "to share between encodings" : "reencode"); wx_self_print (entry->wx, stream); } /************************************************************************/ /* fonts entries hash table handling */ /************************************************************************/ static struct hash_table_s * font_table_new (void) { struct hash_table_s * res; res = XMALLOC (hash_table); hash_init (res, 32, (hash_func_t) font_entry_hash_1, (hash_func_t) font_entry_hash_2, (hash_cmp_func_t) font_entry_hash_cmp); return res; } static void font_table_self_print (struct hash_table_s * table, FILE * stream) { int i; struct font_entry ** entries; entries = (struct font_entry **) hash_dump (table, NULL, (hash_cmp_func_t) font_entry_hash_qcmp); for (i = 0 ; entries[i] ; i++) font_entry_self_print (entries [i], stream); putc ('\n', stream); } /* * We make a copy of the name, but not of the array */ static inline void font_entry_add (struct hash_table_s * table, const char * name, unsigned int * wx) { hash_insert (table, font_entry_new (name, wx)); } static inline struct font_entry * font_entry_get (struct hash_table_s * table, const char * name) { struct font_entry token, * item; token.key = (char *) name; item = (struct font_entry *) hash_find_item (table, &token); return item; } /************************************************************************/ /* encodings entries handling */ /************************************************************************/ /* * Association of suffixes rules, and corresponding style sheet * (The hashing is upon `alias') */ struct slantfont_info { char * name; char * src; float ratio; }; struct encoding { char * key; /* e.g. latin1 */ char * name; /* e.g. ISO Latin 1 */ int composite_flag; /* flag for composite font */ char * documentation; /* Useful pieces of text */ char * default_font; /* When a font can't be used define the font to use */ struct pair_htable * substitutes; /* e.g. in latin2, don't use * Courier, but Courier-Ogonki */ struct pair_htable * composite; struct slantfont_info slantfont[NB_FACES]; char * vector[256]; /* Define the char set */ struct darray * font_names_used; /* E.g. Courier has been used, but * Actually Courier_Ogonki is the real * font used (cf infra) */ struct hash_table_s * fonts; /* Contains cells that are * 1. name of font, 2. int wx[256] */ unsigned int * faces_wx[NB_FACES]; unsigned int composite_wx[NB_FACES]; /* fixed length font width */ float composite_ratio[NB_FACES]; /* size ratio of additonal and original font */ }; /* * Create an encoding, reading its associated file.wx */ static struct encoding * encoding_new (const char * key) { int i; struct encoding * res = XMALLOC (struct encoding); res->key = xstrdup (key); res->name = NULL; res->default_font = NULL; res->documentation = NULL; res->composite_flag = false; /* Vector will be set by setup */ res->substitutes = pair_table_new (); res->composite = pair_table_new (); res->slantfont[0].name = NULL; res->font_names_used = da_new ("List of font names", 10, da_linear, 10, (da_print_func_t) da_str_print, (da_cmp_func_t) da_str_cmp); res->fonts = font_table_new (); for (i = 0 ; i < NB_FACES ; i++) res->faces_wx [i] = NULL; for (i = 0 ; base_faces [i] != -1 ; i++) res->faces_wx [base_faces [i]] = wx_new (); return res; } /* * Add a subsitution in the current encoding */ static void encoding_add_font_substitute (struct encoding * encoding, const char * orig, const char * subs) { pair_add (encoding->substitutes, orig, subs); } /* * Add a composite font in the current encoding */ static void encoding_add_composite_font (struct encoding * encoding, const char * orig, const char * subs, int wx, float ratio) { encoding->composite_flag = true; pair_add2 (encoding->composite, orig, subs, wx, ratio); } /* * Add a composite font in the current encoding */ static void encoding_add_slant_font (struct encoding * encoding, const char * new, const char * src, float ratio) { static int num = 0; encoding->slantfont[num].name = strdup(new); encoding->slantfont[num].src = strdup(src); encoding->slantfont[num].ratio = ratio; encoding->slantfont[num+1].name = NULL; num++; } /* * When FONT_NAME is used with ENCODING, return the * real font name to use (e.g., in latin2, Courier-Ogonki * should be returned when asked for Courier). * * Actually, now FONT_NAME can be a `,' separated list * of fonts desired, in decreasing order of preference */ const char * encoding_resolve_font_substitute (struct a2ps_job * job, struct encoding * encoding, const char * font_list) { const char * res = NULL; char * font_list_copy; char * font_name; char * last_font_name; astrcpy (font_list_copy, font_list); font_name = strtok (font_list_copy, ",<>;"); do { last_font_name = font_name; /* Find if there is a substitute for that font */ res = pair_get (encoding->substitutes, font_name); if (res) res = xstrdup (res); else /* No. Check if this font is supported */ if (font_exists (job, font_name)) /* Avoid returning sth alloca'd */ res = xstrdup (font_name); } while (!res && (font_name = strtok (NULL, ",<>;"))); /* We've found nothing interesting. Last chance is the default * font */ if (!res) { if (encoding->default_font) res = encoding->default_font; else error (1, 0, "cannot find font %s, nor any substitute", last_font_name); } message (msg_enc, (stderr, "In encoding %s, composite font for %s is resolved as %s\n", encoding->key, font_name, res)); return res; } /* * Get composite font size and ratio */ static unsigned composite_font_info_get_wx(struct encoding * encoding, const char * font_list) { int wx = -1; char * font_list_copy; char * font_name; astrcpy (font_list_copy, font_list); font_name = strtok (font_list_copy, ",<>;"); wx = pair_get_wx (encoding->composite, font_name); if (wx < 0) wx = pair_get_wx (encoding->composite, "default_composite__"); return (unsigned) wx; } static float composite_font_info_get_ratio(struct encoding * encoding, const char * font_list) { float ratio= -1; char * font_list_copy; char * font_name; astrcpy (font_list_copy, font_list); font_name = strtok (font_list_copy, ",<>;"); ratio = pair_get_ratio (encoding->composite, font_name); if (ratio<0) ratio = pair_get_ratio (encoding->composite, "default_composite__"); return ratio; } const char * encoding_resolve_composite_font (struct encoding * encoding, const char * font_list) { const char * res = NULL; char * font_list_copy; char * font_name; astrcpy (font_list_copy, font_list); font_name = strtok (font_list_copy, ",<>;"); /* Find if there is a substitute for that font */ res = pair_get (encoding->composite, font_name); /* We've found nothing interesting. Last chance is the default * font */ if (!res) { res = pair_get (encoding->composite, "default_composite__"); if (!res) error (1, 0, "cannot find font %s, nor any composite font", font_name); } message (msg_enc, (stderr, "In encoding %s, font %s is resolved as %s\n", encoding->key, font_name, res)); return res; } /* * Read of *.edf file, given its path */ #define GET_TOKEN(from) (strtok ((from), " \t\n")) #define CHECK_TOKEN() \ if (token2 == NULL) \ error_at_line (1, 0, fname, firstline, \ _("missing argument for `%s'"), quotearg (token)); static void load_encoding_description_file (a2ps_job * job, struct encoding * encoding) { FILE * stream; char * buf = NULL; char * fname; size_t bufsiz = 0; char * token, * token2; unsigned firstline = 0, lastline = 0; static int first_time = 1; static struct obstack documentation_stack; if (first_time) { /* Initialize the obstack we use to record the docuementation * lines */ first_time = 0; obstack_init (&documentation_stack); } message (msg_enc, (stderr, "Loading encoding file `%s.edf'\n", encoding->key)); fname = xpw_find_file (job->common.path, encoding->key, ".edf"); stream = xrfopen (fname); while (getshline_numbered (&firstline, &lastline, &buf, &bufsiz, stream) != -1) { token = GET_TOKEN (buf); if (!token) /* Blank line */ continue; if (STREQ (token, "Vector:")) { int c = 0; char buf2 [256]; while (c < 256) { if (!fgets (buf2, sizeof (buf2), stream)) error_at_line (1, 0, fname, firstline, _("missing argument for `%s'"), "`Vector:'"); lastline++; token = GET_TOKEN (buf2); encoding->vector [c++] = xstrdup (token); while ((token2 = GET_TOKEN (NULL))) encoding->vector [c++] = xstrdup (token2); } } else if (STREQ (token, "Name:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); encoding->name = xstrdup (token2); } else if (STREQ (token, "Default:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); encoding->default_font = xstrdup (token2); } else if (STREQ (token, "Documentation")) { char * documentation; char buf2 [BUFSIZ]; size_t read_length; /* We don't use getshline, because we do want the * ``empty'' lines to be kept: they separate the * paragraphs */ while (fgets (buf2, sizeof(buf2), stream) && !strprefix ("EndDocumentation", buf2)) { read_length = strlen (buf2); if (read_length < sizeof (buf2)) lastline++; /* Grow the obstack with the doc content */ obstack_grow (&documentation_stack, buf2, read_length); } #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" if (!strprefix ("EndDocumentation", buf2)) error (1, 0, fname, firstline, _("missing argument for `%s'"), "`Documentation'"); #pragma GCC diagnostic pop /* Finish the obstack, and store in the encoding entry */ obstack_1grow (&documentation_stack, '\0'); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wsign-conversion" documentation = (char *) obstack_finish (&documentation_stack); #pragma GCC diagnostic pop obstack_free (&documentation_stack, documentation); encoding->documentation = xstrdup (documentation); } else if (STREQ (token, "Substitute:")) { char * orig, * subs; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); orig = token2; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); subs = token2; encoding_add_font_substitute (encoding, orig, subs); } else if (STREQ (token, "DefaultComposite:")) { char * subs; int wx; float ratio; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); subs = token2; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); wx = (int)(float)(atof(token2))*1000; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); ratio = (float) atof(token2); encoding_add_composite_font(encoding, "default_composite__", subs, wx, ratio); } else if (STREQ (token, "Composite:")) { char * orig, * subs; int wx; float ratio; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); orig = token2; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); subs = token2; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); wx = (int)(float)(atof(token2))*1000; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); ratio = (float) atof(token2); encoding_add_composite_font(encoding, orig, subs, wx, ratio); } else if (STREQ (token, "SlantFont:")) { char * new, * src; float ratio; unsigned int num; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); new = token2; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); src = token2; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); ratio = (float) atof(token2); for (num = 0 ; encoding->slantfont[num].name ; num ++ ); if (num > sizeof encoding->slantfont - 1){ error_at_line (1, 0, fname, firstline, _("too many slant fonts: `%s'"), new); } encoding_add_slant_font(encoding, new, src, ratio); } else error_at_line (1, 0, fname, firstline, _("invalid option `%s'"), quotearg (token)); } fclose (stream); } /* * Used by --list-encodings */ static void encoding_print_signature (struct encoding * item, FILE * stream) { size_t i, title_len; title_len = (strlen (" ()") + strlen (item->name) + strlen (item->key)); fprintf (stream, "%s (%s)\n", item->name, item->key); for (i = 0 ; i < title_len ; i++) putc ('-', stream); putc ('\n', stream); documentation_print_plain (item->documentation, "%s", stream); } /* * Output the correct setup of ENCODING */ static void encoding_output_ps_vector (struct a2ps_job * job, struct encoding * encoding) { int c; output (job->ps_encodings, "%%%%BeginResource: encoding %sEncoding\n", encoding->name); output (job->ps_encodings, "/%sEncoding [", encoding->name); for (c = 0 ; c < 256 ; c++) { if (!(c % 8)) output_char (job->ps_encodings, '\n'); output (job->ps_encodings, "/%s ", encoding->vector [c]); } output (job->ps_encodings, "\n] def\n"); output (job->ps_encodings, "%%%%EndResource\n"); } /* * Used for very verbose reports */ void encoding_self_print (struct encoding * item, FILE * stream) { int c; encoding_print_signature (item, stream); if (! IS_EMPTY (item->default_font)) fprintf (stream, "Default font is `%s'\n", item->default_font); fprintf (stream, "Substitution of fonts:\n"); pair_table_list_long (item->substitutes, stream); fprintf (stream, "Name of fonts used (before substitution):\n"); da_self_print (item->font_names_used, stream); fprintf (stream, "Encoding array:"); for (c = 0 ; c < 256 ; c++) { if (!(c % 8)) putc ('\n', stream); fprintf (stream, "%-10s ", item->vector [c]); } putc ('\n', stream); fprintf (stream, "Fonts:\n"); font_table_self_print (item->fonts, stream); if (msg_test (msg_enc)) { enum face_e face; int i; fprintf (stream, "Faces:\n"); for (i = 0 ; base_faces [i] != -1 ; i++) { face = base_faces [i]; fprintf (stream, "Face %s (%d)\n", face_to_string (face), face); wx_self_print (item->faces_wx [face], stream); } } } /* * Return the name of ENC */ const char * encoding_get_name (struct encoding * enc) { return enc->name; } /* * Return the key of ENC */ const char * encoding_get_key (struct encoding * enc) { return enc->key; } int encoding_char_exists (struct encoding * enc, enum face_e face, char c) { return enc->faces_wx[face][(unsigned char)c] != 0; } /* * Return the flag of composite flag */ int encoding_get_composite_flag (struct encoding * enc) { return enc->composite_flag; } /* * Prepare the environment (a dictionary) for the support * of ENCODING, dump it into STREAM. * * This routine is called at the end of the whole job, while * undiverting, so that everything we need to know is known. */ static void dump_encoding_setup (FILE * stream, struct a2ps_job * job, struct encoding * encoding) { size_t i, nb; size_t ns; const char * real_font_name; /* After subsitution */ char ** font_names = (char **) encoding->font_names_used->content; /* How many fonts are there? */ da_qsort (encoding->font_names_used); da_unique (encoding->font_names_used); /* We do not want to reencode the fonts that should not be * reencoded */ for (i = 0 ; i < encoding->font_names_used->len ; i++) { real_font_name = encoding_resolve_font_substitute (job, encoding, font_names [i]); if (!font_is_to_reencode (job, real_font_name)) da_remove_at (encoding->font_names_used, i); } /* The number of fonts that, finally, have to be encoded * in the current ENCODING */ nb = encoding->font_names_used->len; /* The number of slant fonts */ for (i= 0, ns=0 ; encoding->slantfont[i].name ; i++ ) ns++; /* Create the dictionary and fill it */ fprintf (stream, "%% Dictionary for %s support\n", encoding->name); fprintf (stream, "/%sdict %zu dict begin\n", encoding->key, (encoding->composite_flag == true)? nb+nb+ns:nb+ns); for (i = 0 ; i < nb ; i++) fprintf (stream, " /f%s %sEncoding /%s reencode_font\n", font_names [i], encoding->name, encoding_resolve_font_substitute (job, encoding, font_names [i])); /* Slant font setting */ for (i = 0 ; encoding->slantfont[i].name ; i++ ) fprintf (stream, " /%s /%s %f slantfont definefont pop\n", encoding->slantfont[i].name, encoding->slantfont[i].src, (double) encoding->slantfont[i].ratio); /* * Composite font setting. * If kanji font size is larger than alphabet character, * set base font size to kanji charactor size. */ if (encoding->composite_flag == true) { for (i = 0 ; i < nb ; i++) fprintf (stream, " /f%s /f%s /%s %f %f false compositefont " "%f scalefont def\n", font_names [i], font_names [i], encoding_resolve_composite_font (encoding, font_names [i]), (double) encoding->composite_ratio[i], (encoding->composite_ratio[i] > 1.0f) ? 0 : (double) ((1.0f - encoding->composite_ratio[i]) / 2.0f), (encoding->composite_ratio[i] > 1.0f) ? (double) (1.0f / encoding->composite_ratio[i]) : 1.0); } fputs ("currentdict end def\n", stream); } /************************************************************************/ /* encodings hash table handling */ /************************************************************************/ /* * 1. hash table service routines on cells */ static unsigned long encoding_hash_1 (struct encoding * entry) { return_STRING_HASH_1 (entry->key); } static unsigned long encoding_hash_2 (struct encoding * entry) { return_STRING_HASH_2 (entry->key); } static int encoding_hash_cmp (struct encoding * x, struct encoding * y) { return_STRING_COMPARE (x->key, y->key); } static int encoding_hash_qcmp (struct encoding ** x, struct encoding ** y) { return_STRING_COMPARE ((*x)->key, (*y)->key); } /* * 2. Hash table routines */ struct hash_table_s * encodings_table_new (void) { struct hash_table_s * res; res = XMALLOC (hash_table); hash_init (res, 32, (hash_func_t) encoding_hash_1, (hash_func_t) encoding_hash_2, (hash_cmp_func_t) encoding_hash_cmp); return res; } /* * Create an encoding, reading its associated file.edf */ static void encoding_setup (struct a2ps_job * job, struct encoding * encoding) { char * cp; load_encoding_description_file (job, encoding); switch (job->output_format) { case ps: case eps: /* Producing PostScript */ /* FIXME: Remove this * Include its encoding definition */ /* This, too, should be handled by the pseudo PDD files */ cp = ALLOCA (char, strlen (encoding->name) + strlen ("Encoding") + 1); sprintf (cp, "%sEncoding", encoding->name); add_supplied_resource (job, "encoding", cp); encoding_output_ps_vector (job, encoding); break; } } /* * Add an encoding in the hash table, * Reading its associated file.edf */ static void encoding_add (struct a2ps_job * job, const char * key) { struct encoding * encoding; encoding = encoding_new (key); encoding_setup (job, encoding); /* If yet the association between faces and fonts is known, * get the WX per face */ if (face_eo_font_is_set (job)) encoding_build_faces_wx (job, encoding); if (msg_test (msg_enc)) encoding_self_print (encoding, stderr); hash_insert (job->encodings, encoding); } void encoding_add_font_name_used (struct encoding * encoding, const char * name) { da_append (encoding->font_names_used, xstrdup (name)); } /* * Make an encoding do the association between the fonts * and the faces, so that the faces can be immediately used when * looking for the wx. * * The resolution of substitution for the fonts must be done here too, * because it depends on the encoding. */ void encoding_build_faces_wx (a2ps_job * job, struct encoding * encoding) { int i; enum face_e face; const char * true_font_name; for (i = 0 ; base_faces [i] != -1 ; i++) { face = base_faces [i]; encoding_add_font_name_used (encoding, job->face_eo_font [face]); /* E.g. in Latin 2, don't use Courier but Courier-Ogonki */ true_font_name = encoding_resolve_font_substitute (job, encoding, job->face_eo_font [face]); /* Get the wx related to the FACE */ font_info_get_wx_for_vector (job, true_font_name, encoding->vector, encoding->faces_wx [face]); if (encoding->composite_flag) { encoding->composite_ratio[i] = composite_font_info_get_ratio(encoding, job->face_eo_font [face]); encoding->composite_wx[i] = composite_font_info_get_wx(encoding, job->face_eo_font [face]); /* If kanji font size is larger than alphabet character, fit kanji charactor size to base font size */ if (encoding->composite_ratio[i] < 1.0f) encoding->composite_wx[i] *= (unsigned) encoding->composite_ratio[i]; } } } /* * Retrieve an encoding */ static struct encoding * encoding_get (struct a2ps_job * job, const char * key) { struct encoding token, *res; token.key = (char *) key; res = (struct encoding *) hash_find_item (job->encodings, &token); if (!res) { /* The encoding has never been read yet */ encoding_add (job, key); res = (struct encoding *) hash_find_item (job->encodings, &token); } return res; } /* * Return the encoding and NULL if none */ struct encoding * get_encoding_by_alias (struct a2ps_job * job, char * alias) { const char * key; key = encodings_map_resolve_alias (job->encodings_map, strlower (alias)); if (key) return encoding_get (job, key); else /* This is not a valid alias */ return NULL; } /* * Prepare all the encodings used. This is easy: there * are all the members of JOB->encodings */ void dump_encodings_setup (FILE * stream, struct a2ps_job * job) { int i; struct encoding ** encodings; /* Get the list of the encodings */ encodings = (struct encoding **) hash_dump (job->encodings, NULL, (hash_cmp_func_t) encoding_hash_qcmp); for (i = 0 ; encodings [i] ; i++) dump_encoding_setup (stream, job, encodings [i]); } /************************************************************************/ /* Computing the width of a char/string */ /************************************************************************/ /* * Returns the WX of a char (including M- and ^) */ unsigned int char_WX (a2ps_job * job, unsigned char c) { #define _WX_(char) (job->encoding->faces_wx[job->status->face][(int) char]) unsigned int wx = _WX_(c); /* Only printable characters have a positive wx */ if (wx) return wx; switch (job->unprintable_format) { case hexa: { char buf [3]; sprintf (buf, "%02x", c); return _WX_ ('\\') + _WX_('x') + _WX_ (buf[0]) + _WX_ (buf[1]); } case octal: { char buf [4]; sprintf (buf, "%03o", c); return (_WX_ ('\\') + _WX_ (buf [0]) + _WX_ (buf [1]) + _WX_ (buf [2])); } case space: return _WX_(' '); case question_mark: return _WX_('?'); case caret: if (0177 < c) { wx += _WX_('M') + _WX_('-'); c &= 0177; } if (c == 0177) wx += _WX_('^') + _WX_('?'); else if (c < ' ') wx += _WX_ ('^') + _WX_ (c + '@'); else wx += _WX_ (c); return wx; case Emacs: if (0177 < c) { wx += _WX_('M') + _WX_('-'); c &= 0177; } if (c == 0177) wx += _WX_('C') + _WX_('-') + _WX_('?'); else if (c < ' ') wx += _WX_('C') + _WX_('-') + _WX_ (c + '@'); else wx += _WX_ (c); return wx; default: abort (); } return 0; /* For -Wall */ } unsigned char_composite_WX (a2ps_job * job) { return (unsigned) ((float) job->encoding->composite_wx[job->status->face] / job->encoding->composite_ratio[job->status->face]); } /* * Returns the WX of a string (including M- and ^) */ unsigned int string_WX (a2ps_job * job, char * string) { unsigned int result=0; for (/* skip */; *string ; string ++) result += char_WX(job, (unsigned char) *string); return result; } /* * Use this encoding now */ void set_encoding (struct a2ps_job * job, struct encoding * enc) { job->encoding = enc; } /* Compare names with strverscmp, so that latin 15 is after latin 2. */ static int da_encoding_name_cmp (char * key1, char * key2, struct a2ps_job * job) { return strverscmp ((char *) encoding_get (job, key1)->name, (char *) encoding_get (job, key2)->name); } /* * Report the known encodings for --list-features */ void list_encodings_short (a2ps_job * job, FILE * stream) { fputs (_("Known Encodings"), stream); putc ('\n', stream); pw_lister_on_suffix (stream, job->common.path, EDF_SUFFIX); } /* * Report the known encodings for --list-encodings */ void list_encodings_long (a2ps_job * job, FILE * stream) { struct darray * entries; struct encoding * encoding; size_t i; entries = pw_glob_on_suffix (job->common.path, EDF_SUFFIX); /* We want them to be in order of the names, not keys */ da_qsort_with_arg (entries, (da_cmp_arg_func_t) da_encoding_name_cmp, job); fputs (_("Known Encodings"), stream); putc ('\n', stream); for (i = 0 ; i < entries->len ; i++) { /* Don't forget to cut the suffix */ encoding = encoding_get (job, entries->content[i]); encoding_print_signature (encoding, stream); putc ('\n', stream); } } /************************************************************************/ /* Report in Texinfo format */ /************************************************************************/ /* * Print a short signature (i.e., name, comments) * In texinfo format */ static void encoding_texinfo_print_signature (struct encoding * encoding, FILE * stream) { fprintf (stream, "@deftp {Encoding} {%s} (@file{%s.edf})\n", encoding->name, encoding->key); documentation_print_texinfo (encoding->documentation, "%s", stream); fputs ("@end deftp\n\n", stream); } /* * Report the known encodings for --list-encodings */ void list_texinfo_encodings_long (a2ps_job * job, FILE * stream) { struct darray * entries; struct encoding * encoding; unsigned int i; entries = pw_glob_on_suffix (job->common.path, EDF_SUFFIX); /* We want them to be in order of the names, not keys */ da_qsort_with_arg (entries, (da_cmp_arg_func_t) da_encoding_name_cmp, job); fputs ("The known encodings are:\n", stream); for (i = 0 ; i < entries->len ; i++) { /* Don't forget to cut the suffix */ encoding = encoding_get (job, entries->content[i]); encoding_texinfo_print_signature (encoding, stream); } } a2ps-4.15.5/liba2ps/encoding.h����������������������������������������������������������������������0000644�0000000�0000000�00000006677�14251202140�012644� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* encoding.h - definition of the char encodings used Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /************************************************************************/ /* encoding selection */ /************************************************************************/ #ifndef _ENCODING_H_ #define _ENCODING_H_ #include "a2ps.h" #include "faces.h" #include "hashtab.h" struct a2ps_job; /* Declared in jobs.h which includes this file */ #define COURIER_WX 600 /* Any char in courier has WX = 600 */ /* * Computation of the width of the chars in the current encoding */ unsigned int char_WX (struct a2ps_job * job, unsigned char c); unsigned int string_WX (struct a2ps_job * job, char * string); unsigned int char_composite_WX (struct a2ps_job * job); /************************************************************************/ /* Handling of the struct encoding */ /************************************************************************/ struct encoding; const char * encoding_get_name (struct encoding * enc); const char * encoding_get_key (struct encoding * enc); void encoding_self_print (struct encoding * item, FILE * stream); int encoding_char_exists (struct encoding * enc, enum face_e face, char c); int encoding_get_composite_flag (struct encoding * enc); struct encoding * get_encoding_by_alias (struct a2ps_job * job, char *string); void set_encoding (struct a2ps_job * job, struct encoding * enc); /* When FONT_NAME is used with ENCODING, return the real font name to * use (e.g., in latin2, Courier-Ogonki should be returned when asked * for Courier). */ const char * encoding_resolve_font_substitute (struct a2ps_job * job, struct encoding * encoding, const char * font_name); const char * encoding_resolve_composite_font (struct encoding * encoding, const char * font_name); /* * Have a struct encoding determine the faces_wx */ void encoding_build_faces_wx (struct a2ps_job * job, struct encoding * encoding); void encoding_add_font_name_used (struct encoding * enc, const char * name); /* Dump on STREAM the encodings setup */ void dump_encodings_setup (FILE * stream, struct a2ps_job * job); /* * Related to a2ps_job */ void list_encodings_short (struct a2ps_job * job, FILE * stream); void list_encodings_long (struct a2ps_job * job, FILE * stream); void list_texinfo_encodings_long (struct a2ps_job * job, FILE * stream); /************************************************************************/ /* Road map to the files defining the encodings */ /************************************************************************/ struct pair_htable * encodings_map_new (void); struct hash_table_s * encodings_table_new (void); int load_main_encodings_map (struct a2ps_job * job); #endif �����������������������������������������������������������������a2ps-4.15.5/liba2ps/faces.c�������������������������������������������������������������������������0000644�0000000�0000000�00000007541�14374754243�012147� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* faces.c - definition of the faces used by a2ps Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "faces.h" #include "routines.h" #include "jobs.h" extern const char * program_name; /* List of the faces that must be checked */ enum face_e base_faces [] = { Plain, Keyword, Keyword_strong, Label, Label_strong, String, Symbol, Error, Comment, Comment_strong, No_face }; struct face_and_name { const char * name; enum face_e face; }; static const struct face_and_name face_and_name [] = { { "NoFace", No_face }, { "Plain", Plain }, { "Keyword", Keyword }, { "Keyword_strong", Keyword_strong }, { "Label", Label }, { "Label_strong", Label_strong }, { "String", String }, { "Symbol", Symbol }, { "Error", Error }, { "Comment", Comment }, { "Comment_strong", Comment_strong }, { NULL, No_face } }; enum face_e string_to_face (const char * string) { int i; for (i = 0 ; face_and_name[i].name ; i++) if (STREQ (string, face_and_name[i].name)) return face_and_name[i].face; return No_face; } static inline const char * _face_to_string (enum face_e face) { int i; for (i = 0 ; face_and_name[i].name ; i++) if (face == face_and_name[i].face) return face_and_name[i].name; return "UnknownFace"; } const char * face_to_string (enum face_e face) { return _face_to_string (face); } /* * Report the face */ void face_self_print (enum face_e face, FILE * stream) { fputs (_face_to_string (face), stream); } /* convertion from a font to the postscript function */ _GL_ATTRIBUTE_PURE const char * face_eo_ps (enum face_e face) { switch (face) { case Plain: return "p"; case Symbol: return "sy"; case Keyword: return "k"; case Keyword_strong: return "K"; case Comment: return "c"; case Comment_strong: return "C"; case Label: return "l"; case Label_strong: return "L"; case String: return "str"; case Error: return "e"; default: error (1, 0, "face_eo_ps: %d", face); } return 0; /* For -Wall */ } /* Check that the face_eo_font knowldge is complete */ void check_face_eo_font (struct a2ps_job * job) { int i; int err = false; for (i = 0 ; base_faces [i] != No_face ; i++) if (!job->face_eo_font [base_faces [i]]) { err = true; fprintf (stderr, "%s: face `", program_name); face_self_print (base_faces [i], stderr); fprintf (stderr, "' (%d) has no specified font\n", base_faces [i]); } if (err) error (1, 0, _("incomplete knowledge of faces")); } /* * Return true if the faces are known, false otherwise */ int face_eo_font_is_set (struct a2ps_job * job) { enum face_e f; int res = true; for (f = First_face ; f <= Last_face ; f++) if (!job->face_eo_font [f]) res = false; return res; } /* Initialize the face_font_to_font array to non acceptable values */ void init_face_eo_font (struct a2ps_job * job) { enum face_e f; for (f = First_face ; f <= Last_face ; f++) job->face_eo_font [f] = NULL; } void face_set_font (struct a2ps_job * job, enum face_e face, const char * font_name) { job->face_eo_font [face] = xstrdup (font_name); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/faces.h�������������������������������������������������������������������������0000644�0000000�0000000�00000005603�14251202151�012125� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* faces.h - definition of the faces used by a2ps Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _FACES_H_ #define _FACES_H_ struct a2ps_job; /* * Rationale for the values of the faces. * - We want to keep the interval as small as possible * - We want to be able to strip as fast as possible: masking. * * Therefore we want to have a single bit to test the comments. * We also want, for the same reason, Invisible to be 0. * * I came down to 6 bits. If somebody has something better, * I'll take it! * 5 4 3 2 1 0 * +- Weak/Strong * +++++--- Keyword/Label/String/Symbol/Error * +--------- Comment * +----------- Comment strong. * * What gives: * 000000 Invisible 0 * 000001 Plain 1 * 000010 Keyword 2 * 000011 Keyword_strong 3 * 000100 Label 4 * 000101 Label_strong 5 * 000110 String 6 * 001000 Symbol 8 * 001010 Error (the face "Error") 10 * 010000 Comment 16 * 100000 Comment_strong. 32 * * Note that we can't use the bit Weak/Strong for the Comment Weak/Strong * (i.e., 01000/01001) because masking upon Comment_strong would * be positive with any Strong face, which is definitely not what we * want. */ /* liba2ps.h:begin */ /* * Available faces. No_face should never be given to liba2ps. */ enum face_e { No_face = -1, First_face = 0, Plain = 0, Keyword = 1, Keyword_strong = 2, Label = 3, Label_strong = 4, String = 5, Symbol = 6, Error = 7, Comment = 8, Comment_strong = 9, Last_face = 9 }; /* liba2ps.h:end */ /* * What must be the dimension of the array indexed * by the faces? I.e. last plus one. */ #define NB_FACES 10 /* Up to Comment_strong */ /* List of the faces really used */ extern enum face_e base_faces []; enum face_e string_to_face (const char * string); const char * face_eo_ps (enum face_e face); const char * face_to_string (enum face_e face); void face_self_print (enum face_e face, FILE * stream); void init_face_eo_font (struct a2ps_job * job); void check_face_eo_font (struct a2ps_job * job); int face_eo_font_is_set (struct a2ps_job * job); void face_set_font (struct a2ps_job * job, enum face_e face, const char * font_name); #endif �����������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/filalign.c����������������������������������������������������������������������0000644�0000000�0000000�00000003715�14251171057�012640� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* filalign.c - file alignment managing Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "filalign.h" #include "argmatch.h" #include "getnum.h" /* * Return a file_align mode */ static const char *const file_align_args[] = { "sheet", "page", "no", "rank", "virtual", "fill", "yes", 0 }; static file_align_t const file_align_types[] = { file_align_sheet, file_align_page, file_align_page, file_align_rank, file_align_virtual, file_align_virtual, file_align_virtual }; /* Return the file_align mode corresponding to ARG. FIXME: The error message is not clear enough. */ file_align_t file_align_argmatch (const char * option, const char * arg) { ptrdiff_t i; ARGMATCH_VERIFY (file_align_args, file_align_types); i = ARGMATCH (arg, file_align_args, file_align_types); if (i >= 0) return file_align_types[i]; return get_integer_in_range (option, arg, 1, 0, range_min); } /* Return a human readable string describing the FILE_ALIGN mode. */ const char * file_align_to_string (file_align_t file_align) { static char buf[25]; if (file_align < 0) return ARGMATCH_TO_ARGUMENT ((char *)&file_align, file_align_args, file_align_types); sprintf (buf, "%d", file_align); return buf; } ���������������������������������������������������a2ps-4.15.5/liba2ps/filalign.h����������������������������������������������������������������������0000644�0000000�0000000�00000003203�14235572622�012642� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* filalign.h - file alignment managing Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef FILALIGN_H_ # define FILALIGN_H_ 1 /* How different files share the medium. */ typedef int file_align_t; /* Always on different sheets. */ #define file_align_sheet -1 /* Always on different pages. */ #define file_align_page -2 /* Always on different rank (i.e., columns or rows depending upon the madir). */ #define file_align_rank -3 /* Put as many files as you can per page. */ #define file_align_virtual -4 /* Positive values are allowed and then means that each first *page* of a file must start on a page which is (a multiple of that number) plus one. For instance, for `2', the files must start on odd pages. This is to be compatible with enscript. */ file_align_t file_align_argmatch (const char * option, const char * arg); const char * file_align_to_string (file_align_t file_align); #endif /* !defined (MADIR_H_) */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/filtdir.c�����������������������������������������������������������������������0000644�0000000�0000000�00000004231�14251164352�012502� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* filtdir.c - filter file names in directories Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Akim Demaille <demaille@inf.enst.fr> * Based on savedir.c, written by David MacKenzie <djm@gnu.ai.mit.edu>. */ #include <config.h> #include <stdio.h> #include <sys/types.h> #include <fnmatch.h> #include <unistd.h> #include <errno.h> #include <stdbool.h> #include <dirent.h> #include "error.h" #include "darray.h" #include "filtdir.h" #include "routines.h" /* Is NAME . or ..? */ #define IS_NOTDOTDOT(Name) \ (Name[0] != '.' \ || (Name[1] != '\0' \ && (Name[1] != '.' || Name[2] != '\0'))) /*----------------------------------------------------------------. | Perform a call to FUN (FILE, DIR, ARG) on each FILE in DIR that | | statisfies a call to FILTER (FILE, DIR, FILTARG). | `----------------------------------------------------------------*/ void filterdir (const char *dir, filterdir_filter_t filter, void *filtarg, filterdir_fun_t fun, void *arg) { DIR *dirp; struct dirent *dp; dirp = opendir (dir); if (dirp == NULL) return; /* error (1, errno, _("cannot open directory `%s'"), dir);*/ while ((dp = readdir (dirp)) != NULL) /* Skip "." and ".." (some NFS file systems' directories lack them). */ if (IS_NOTDOTDOT (dp->d_name) && (!filter || (*filter) (dir, dp->d_name, filtarg))) fun (dir, dp->d_name, arg); if (closedir (dirp)) error (1, errno, _("cannot close directory `%s'"), dir); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/filtdir.h�����������������������������������������������������������������������0000644�0000000�0000000�00000002443�14235572622�012517� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* filtdir.h - filter file names in directories Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Akim Demaille <demaille@inf.enst.fr> * Based on savedir.c, written by David MacKenzie <djm@gnu.ai.mit.edu>. */ /* Functions mapped on file names. */ typedef void (*filterdir_fun_t) (const char *dir, const char *file, void *filtarg); /* Functions used to filter the file names to keep. */ typedef bool (*filterdir_filter_t) (const char *dir, const char *file, void *filtarg); void filterdir (const char *dir, filterdir_filter_t filter, void *filtarg, filterdir_fun_t fun, void *arg); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/fjobs.c�������������������������������������������������������������������������0000644�0000000�0000000�00000007342�14251132535�012154� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* fjobs.c - recording information about the file jobs Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "fjobs.h" #include "routines.h" typedef struct file_job fjob_t; /* * Creating/Removing a file_job named NAME, which is the NUM job, * which tmp file is in TMPDIR, and mod time is default to RUN_TM * */ fjob_t * _a2ps_file_job_new (const char *name, size_t num, struct tm *run_tm) { fjob_t * res = XMALLOC (fjob_t); /* liba2ps.h must not try to read a file. This is the job of its clients. Hence, make sure, at least, to have reasonable values. */ res->name = name; res->delegation_tmpname = NULL; res->stdin_tmpname = NULL; /* The type of the file is unknown */ res->type = NULL; res->is_toc = false; /* Set date to now */ res->mod_tm = *run_tm; /* If for some reason (is a dir, is not readable...), will * be later set to false */ res->printable = true; /* By default it is not supposed to be stdin */ res->is_stdin = false; /* Initialize the file dependant counters */ /* Add one to job->sheets and pages, because this initialization * is done before the job went to the next page */ res->first_sheet = 0; res->sheets = 0; res->last_sheet = 0; res->first_page = 0; res->pages = 0; res->last_page = 0; res->top_line = 1; res->top_page = 0; res->lines = 1; res->num = num; return res; } void file_job_self_print (fjob_t *file, FILE *stream) { fprintf (stream, "File `%s': Pages %zu-%zu (%zu), Sheets %zu-%zu (%zu)\n", file->name, file->first_page, file->last_page, file->pages, file->first_sheet, file->last_sheet, file->sheets); fprintf (stream, "\tdel-tmp: `%s', stdin-tmp: `%s', is_toc: %d", UNNULL (file->delegation_tmpname), UNNULL (file->stdin_tmpname), file->is_toc); } /* * Synchronise the current file informations onto JOB */ void file_job_synchronize_sheets (struct a2ps_job * job) { fjob_t * file = CURRENT_FILE (job); /* Set the number of sheets printed */ if (!file->first_sheet) file->first_sheet = job->sheets; /* Is this actually a sheet number we never saw? */ file->last_sheet = job->sheets; file->sheets = file->last_sheet - file->first_sheet + 1; } /* * Synchronise the current file informations onto JOB */ void file_job_synchronize_pages (struct a2ps_job * job) { fjob_t * file = CURRENT_FILE (job); /* Set the number of pages/lines printed */ if (!file->first_page) file->first_page = job->pages; if (!file->top_page) file->top_page = 1; file->last_page = job->pages; file->top_line = CURRENT_FILE (job)->lines; file->pages = file->last_page - file->first_page + 1; } /* * Release the temp file associated to that file_job */ void file_job_unlink_tmpfile (fjob_t * file) { if (file->delegation_tmpname) unlink (file->delegation_tmpname); if (file->stdin_tmpname) unlink (file->stdin_tmpname); } /* * Compare two files by name */ int file_name_cmp (fjob_t *f1, fjob_t *f2) { return strcmp (f1->name, f2->name); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/fjobs.h�������������������������������������������������������������������������0000644�0000000�0000000�00000005061�14251132535�012155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* fjobs.h - recording information about the file jobs Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef FJOBS_H_ # define FJOBS_H_ struct a2ps_job; /* * Relative to the current file */ struct file_job { const char * name; /* Guess what it is :) */ /* A tmp file associated with this file. It is used only privately by a2ps-prog. If the file is delegated, the output of the delegation is stored there. */ char *delegation_tmpname; /* The name under which this file is saved if it has to be delegated and is actually stdin. */ char *stdin_tmpname; const char * type; /* i.e. ssh key, or UNPRINTABLE */ bool is_toc; /* Is this a toc, or a real file (used * when --pages=toc) */ struct tm mod_tm; /* Modif. info for the file */ bool printable; /* Can this file be printed? */ bool is_stdin; /* Is this file named or given by stdin?*/ size_t first_sheet; /* num of the first sheet for this file */ size_t last_sheet; size_t first_page; /* Id. but pages */ size_t last_page; size_t pages; /* These are defined because it eases */ size_t sheets; /* delayed integers (cf. output_marker) */ size_t num; /* No of the file in the args */ size_t top_line; /* The top most line of the current page */ size_t top_page; /* The first page appearing in curr sheet */ size_t lines; /* Current line number */ }; /* in the output session JOB, create a new input session NAME */ struct file_job * _a2ps_file_job_new (const char * name, size_t num, struct tm * run_tm); int file_name_cmp (struct file_job * f1, struct file_job * f2); void file_job_synchronize_sheets (struct a2ps_job * job); void file_job_synchronize_pages (struct a2ps_job * job); void file_job_self_print (struct file_job * file, FILE * stream); void file_job_unlink_tmpfile (struct file_job * file); #endif /* !defined (_FJOBS_H) */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/fonts.c�������������������������������������������������������������������������0000644�0000000�0000000�00000211552�14415562575�012217� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#line 2 "fonts.c" /* -*- c -*- */ /* * Lexer for afm files. * * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <config.h> #include "a2ps.h" #include "routines.h" #include "message.h" #include "hashtab.h" #include "jobs.h" #include "pathwalk.h" #include "fonts.h" #include "psstat.h" #include "pair_ht.h" #include "dsc.h" #include "quotearg.h" /* What this file is in charge of? Its main responsabilities are: - to be able to provide, given a font name and an encoding vector, to return an unsigned int array [256] of the width of each char. - to be able to dump the requirements (the needed IncludeResource: font) so that we have a correct PS-3 file. - to download a font file To acheive this goal, the main task is reading the AFM file of a font, to store what it has learnt into a hash table storing any pertinent info read in previous AFM files. (We may need this info several times, and we do not want to waste time). This file is decomposed into several parts: 0. Handle the fonts.map files 1. The lexer of afm files. The format is simple enough so that we do not need a parser. 2. The cells (of type struct font_info) handling. 3. The hash table maintenance. This hash table is, as usually, stored in the a2ps_job so that it does not pollute the space, and make liba2ps still "clean". 4. Download a font file */ #line 79 "fonts.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer afm_create_buffer #define yy_delete_buffer afm_delete_buffer #define yy_scan_buffer afm_scan_buffer #define yy_scan_string afm_scan_string #define yy_scan_bytes afm_scan_bytes #define yy_init_buffer afm_init_buffer #define yy_flush_buffer afm_flush_buffer #define yy_load_buffer_state afm_load_buffer_state #define yy_switch_to_buffer afm_switch_to_buffer #define yypush_buffer_state afmpush_buffer_state #define yypop_buffer_state afmpop_buffer_state #define yyensure_buffer_stack afmensure_buffer_stack #define yy_flex_debug afm_flex_debug #define yyin afmin #define yyleng afmleng #define yylex afmlex #define yylineno afmlineno #define yyout afmout #define yyrestart afmrestart #define yytext afmtext #define yywrap afmwrap #define yyalloc afmalloc #define yyrealloc afmrealloc #define yyfree afmfree #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define afm_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer afm_create_buffer #endif #ifdef yy_delete_buffer #define afm_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer afm_delete_buffer #endif #ifdef yy_scan_buffer #define afm_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer afm_scan_buffer #endif #ifdef yy_scan_string #define afm_scan_string_ALREADY_DEFINED #else #define yy_scan_string afm_scan_string #endif #ifdef yy_scan_bytes #define afm_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes afm_scan_bytes #endif #ifdef yy_init_buffer #define afm_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer afm_init_buffer #endif #ifdef yy_flush_buffer #define afm_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer afm_flush_buffer #endif #ifdef yy_load_buffer_state #define afm_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state afm_load_buffer_state #endif #ifdef yy_switch_to_buffer #define afm_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer afm_switch_to_buffer #endif #ifdef yypush_buffer_state #define afmpush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state afmpush_buffer_state #endif #ifdef yypop_buffer_state #define afmpop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state afmpop_buffer_state #endif #ifdef yyensure_buffer_stack #define afmensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack afmensure_buffer_stack #endif #ifdef yylex #define afmlex_ALREADY_DEFINED #else #define yylex afmlex #endif #ifdef yyrestart #define afmrestart_ALREADY_DEFINED #else #define yyrestart afmrestart #endif #ifdef yylex_init #define afmlex_init_ALREADY_DEFINED #else #define yylex_init afmlex_init #endif #ifdef yylex_init_extra #define afmlex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra afmlex_init_extra #endif #ifdef yylex_destroy #define afmlex_destroy_ALREADY_DEFINED #else #define yylex_destroy afmlex_destroy #endif #ifdef yyget_debug #define afmget_debug_ALREADY_DEFINED #else #define yyget_debug afmget_debug #endif #ifdef yyset_debug #define afmset_debug_ALREADY_DEFINED #else #define yyset_debug afmset_debug #endif #ifdef yyget_extra #define afmget_extra_ALREADY_DEFINED #else #define yyget_extra afmget_extra #endif #ifdef yyset_extra #define afmset_extra_ALREADY_DEFINED #else #define yyset_extra afmset_extra #endif #ifdef yyget_in #define afmget_in_ALREADY_DEFINED #else #define yyget_in afmget_in #endif #ifdef yyset_in #define afmset_in_ALREADY_DEFINED #else #define yyset_in afmset_in #endif #ifdef yyget_out #define afmget_out_ALREADY_DEFINED #else #define yyget_out afmget_out #endif #ifdef yyset_out #define afmset_out_ALREADY_DEFINED #else #define yyset_out afmset_out #endif #ifdef yyget_leng #define afmget_leng_ALREADY_DEFINED #else #define yyget_leng afmget_leng #endif #ifdef yyget_text #define afmget_text_ALREADY_DEFINED #else #define yyget_text afmget_text #endif #ifdef yyget_lineno #define afmget_lineno_ALREADY_DEFINED #else #define yyget_lineno afmget_lineno #endif #ifdef yyset_lineno #define afmset_lineno_ALREADY_DEFINED #else #define yyset_lineno afmset_lineno #endif #ifdef yywrap #define afmwrap_ALREADY_DEFINED #else #define yywrap afmwrap #endif #ifdef yyalloc #define afmalloc_ALREADY_DEFINED #else #define yyalloc afmalloc #endif #ifdef yyrealloc #define afmrealloc_ALREADY_DEFINED #else #define yyrealloc afmrealloc #endif #ifdef yyfree #define afmfree_ALREADY_DEFINED #else #define yyfree afmfree #endif #ifdef yytext #define afmtext_ALREADY_DEFINED #else #define yytext afmtext #endif #ifdef yyleng #define afmleng_ALREADY_DEFINED #else #define yyleng afmleng #endif #ifdef yyin #define afmin_ALREADY_DEFINED #else #define yyin afmin #endif #ifdef yyout #define afmout_ALREADY_DEFINED #else #define yyout afmout #endif #ifdef yy_flex_debug #define afm_flex_debug_ALREADY_DEFINED #else #define yy_flex_debug afm_flex_debug #endif #ifdef yylineno #define afmlineno_ALREADY_DEFINED #else #define yylineno afmlineno #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires * access to the local variable yy_act. Since yyless() is a macro, it would break * existing scanners that call yyless() from OUTSIDE yylex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-yylineno scanner, because yy_act is * normally declared as a register variable-- so it is not worth it. */ #define YY_LESS_LINENO(n) \ do { \ int yyl;\ for ( yyl = n; yyl < yyleng; ++yyl )\ if ( yytext[yyl] == '\n' )\ --yylineno;\ }while(0) #define YY_LINENO_REWIND_TO(dst) \ do {\ const char *p;\ for ( p = yy_cp-1; p >= (dst); --p)\ if ( *p == '\n' )\ --yylineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart ( FILE *input_file ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); void yy_delete_buffer ( YY_BUFFER_STATE b ); void yy_flush_buffer ( YY_BUFFER_STATE b ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); void yypop_buffer_state ( void ); static void yyensure_buffer_stack ( void ); static void yy_load_buffer_state ( void ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); void *yyalloc ( yy_size_t ); void *yyrealloc ( void *, yy_size_t ); void yyfree ( void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif #define yytext_ptr yytext static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 10 #define YY_END_OF_BUFFER 11 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[57] = { 0, 0, 0, 0, 0, 11, 10, 2, 10, 8, 9, 8, 8, 8, 8, 0, 2, 0, 0, 0, 7, 0, 0, 0, 4, 0, 7, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 5, 1, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 7, 1, 8, 1, 1, 1, 1, 1, 1, 1, 9, 10, 1, 1, 1, 1, 11, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 14, 1, 15, 16, 17, 1, 1, 18, 19, 1, 1, 1, 1, 20, 1, 1, 1, 21, 22, 23, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const YY_CHAR yy_meta[24] = { 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const flex_int16_t yy_base[62] = { 0, 0, 1, 10, 20, 83, 79, 84, 2, 84, 84, 77, 60, 75, 65, 74, 84, 5, 1, 60, 0, 71, 12, 68, 67, 65, 0, 65, 6, 64, 42, 53, 7, 44, 13, 36, 21, 47, 18, 35, 31, 28, 33, 28, 23, 29, 34, 32, 35, 23, 38, 84, 39, 41, 40, 84, 84, 61, 63, 65, 0, 67 } ; static const flex_int16_t yy_def[62] = { 0, 57, 57, 58, 58, 56, 59, 56, 59, 56, 56, 56, 56, 56, 56, 59, 56, 59, 56, 56, 60, 56, 59, 56, 56, 56, 60, 56, 59, 56, 56, 56, 59, 56, 59, 56, 59, 56, 59, 56, 59, 56, 59, 56, 59, 56, 59, 56, 59, 56, 59, 56, 59, 61, 61, 56, 0, 56, 56, 56, 56, 56 } ; static const flex_int16_t yy_nxt[108] = { 0, 26, 56, 7, 7, 16, 23, 24, 16, 16, 16, 8, 8, 10, 34, 16, 16, 11, 12, 22, 13, 16, 14, 10, 16, 17, 16, 11, 12, 32, 13, 36, 14, 28, 16, 38, 16, 16, 16, 40, 42, 16, 16, 55, 55, 51, 46, 49, 47, 45, 44, 43, 41, 52, 50, 48, 39, 37, 35, 31, 33, 53, 6, 6, 9, 9, 15, 15, 54, 54, 29, 31, 30, 24, 29, 27, 25, 16, 21, 20, 19, 18, 16, 56, 5, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56 } ; static const flex_int16_t yy_chk[108] = { 0, 60, 0, 1, 2, 8, 18, 18, 17, 28, 32, 1, 2, 3, 32, 22, 34, 3, 3, 17, 3, 38, 3, 4, 36, 8, 44, 4, 4, 28, 4, 34, 4, 22, 40, 36, 42, 46, 48, 38, 40, 50, 52, 54, 53, 49, 44, 47, 45, 43, 42, 41, 39, 50, 48, 46, 37, 35, 33, 31, 30, 52, 57, 57, 58, 58, 59, 59, 61, 61, 29, 27, 25, 24, 23, 21, 19, 15, 14, 13, 12, 11, 6, 5, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56 } ; /* Table of booleans, true if rule could match eol. */ static const flex_int32_t yy_rule_can_match_eol[11] = { 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, }; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "fonts.l" #line 80 "fonts.l" /* fonts.map handling */ /************************************************************************/ struct pair_htable * fonts_map_new (void) { return pair_table_new (); } static inline void fonts_map_add (struct pair_htable * fonts_map, const char * alias, const char * key) { pair_add (fonts_map, alias, key); } /* * What is the short name used for the font file corresponding * to FONTNAME */ static const char * fonts_map_resolve_alias (struct pair_htable * fonts_map, const char * fontname) { char * res; res = pair_get (fonts_map, fontname); if (res) return res; else /* The fonts has not been declared. Try its full name */ return fontname; } /* * Read a sheets map file */ static int load_fonts_map (struct a2ps_job * job, const char * file) { return pair_table_load (job->fonts_map, file); } /* * Read the fonts.map file */ int load_main_fonts_map (struct a2ps_job * job) { char * file; /* System's */ file = xpw_find_file (job->common.path, "fonts.map", NULL); load_fonts_map (job, file); return 1; } /************************************************************************/ /* Defining the structures, and lexer of afm files */ /************************************************************************/ /* Definition of the structure that retains the wx information */ struct wx_entry { char * glyph; int index; unsigned int wx; }; struct font_info { char * key; struct hash_table_s * wx; }; /* The following variables are global because I see no other means to share information with the lexer. */ /* Last WX and index read */ static unsigned int last_wx_read; static int last_index_read; /* the current font info being filled */ static struct font_info * font_info_being_parsed = NULL; static void wx_entry_add (struct hash_table_s * table, const char * glyph, int the_index, unsigned int wx); int yylex (void); #line 934 "fonts.c" #line 936 "fonts.c" #define INITIAL 0 #define STATE_CHAR_METRICS 1 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( void ); int yyget_debug ( void ); void yyset_debug ( int debug_flag ); YY_EXTRA_TYPE yyget_extra ( void ); void yyset_extra ( YY_EXTRA_TYPE user_defined ); FILE *yyget_in ( void ); void yyset_in ( FILE * _in_str ); FILE *yyget_out ( void ); void yyset_out ( FILE * _out_str ); int yyget_leng ( void ); char *yyget_text ( void ); int yyget_lineno ( void ); void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( void ); #else extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT static void yyunput ( int c, char *buf_ptr ); #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( void ); #else static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } { #line 182 "fonts.l" #line 1157 "fonts.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 57 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 84 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { int yyl; for ( yyl = 0; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) yylineno++; ; } do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: /* rule 1 can match eol */ YY_RULE_SETUP #line 184 "fonts.l" { BEGIN STATE_CHAR_METRICS; } YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP #line 186 "fonts.l" { /* Ignore */; } YY_BREAK /* string of characters */ case 3: YY_RULE_SETUP #line 190 "fonts.l" { /* return the string */ /* There is nothing more we want to know, but return to * the INITIAL state for the next call... */ BEGIN INITIAL; /* Cut parsing right now (speed up) */ yyterminate (); } YY_BREAK case 4: YY_RULE_SETUP #line 198 "fonts.l" { char *cursor = yytext + 3; last_index_read = yytext[2] - '0'; while (*cursor) last_index_read = 10 * last_index_read + *cursor++ - '0'; } YY_BREAK case 5: YY_RULE_SETUP #line 206 "fonts.l" { char *cursor = yytext + 4; last_index_read = yytext[3] - '0'; while (*cursor) last_index_read = 10 * last_index_read + *cursor++ - '0'; last_index_read = - last_index_read; } YY_BREAK case 6: YY_RULE_SETUP #line 215 "fonts.l" { char *cursor = yytext + 4; last_wx_read = yytext[3] - '0'; while (*cursor) last_wx_read = 10 * last_wx_read + *cursor++ - '0'; } YY_BREAK case 7: YY_RULE_SETUP #line 223 "fonts.l" { char *cursor = yytext + 2; wx_entry_add (font_info_being_parsed->wx, cursor, last_index_read, last_wx_read); } YY_BREAK case 8: YY_RULE_SETUP #line 229 "fonts.l" { /* Ignore */; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP #line 230 "fonts.l" { /* Ignore */; } YY_BREAK case 10: YY_RULE_SETUP #line 233 "fonts.l" ECHO; YY_BREAK #line 1308 "fonts.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(STATE_CHAR_METRICS): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { yy_state_type yy_current_state; char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 57 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; char *yy_cp = (yy_c_buf_p); YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 57 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 56); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT static void yyunput (int c, char * yy_bp ) { char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; if ( c == '\n' ){ --yylineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) yylineno++; ; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf ); yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr ) { return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg ) { fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param _line_number line number * */ void yyset_lineno (int _line_number ) { yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str ) { yyin = _in_str ; } void yyset_out (FILE * _out_str ) { yyout = _out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int _bdebug ) { yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ /* We do not touch yylineno unless the option is enabled. */ yylineno = 1; (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 233 "fonts.l" int yywrap (void) { return 1; } /************************************************************************ * hash tables associating a glyph name to the corresponding wx * ************************************************************************/ /* * Basic routines */ static unsigned long wx_entry_hash_1 (struct wx_entry *wx_entry) { return_STRING_HASH_1 (wx_entry->glyph); } static unsigned long wx_entry_hash_2 (struct wx_entry *wx_entry) { return_STRING_HASH_2 (wx_entry->glyph); } static int wx_entry_hash_cmp (struct wx_entry *x, struct wx_entry *y) { return_STRING_COMPARE (x->glyph, y->glyph); } /* * For sorting them in the order of their index * (or `code', i.e. 32 for space) */ static int wx_entry_hash_index_qcmp (struct wx_entry **x, struct wx_entry **y) { return ((*y)->index - (*x)->index); } /* * Create the structure that stores the list of wx_entrys */ static struct hash_table_s * wx_entry_table_new (void) { struct hash_table_s * res; res = XMALLOC (struct hash_table_s); hash_init (res, 8, (hash_func_t) wx_entry_hash_1, (hash_func_t) wx_entry_hash_2, (hash_cmp_func_t) wx_entry_hash_cmp); return res; } /* * Add a wx_entry, with your own allocation for them. * It GLYPH is yet used, override its wx with WX */ static void wx_entry_add (struct hash_table_s * table, const char * glyph, int the_index, unsigned int wx) { struct wx_entry * item, token; token.glyph = (char *) glyph; item = (struct wx_entry *) hash_find_item (table, &token); if (item) { /* This is abnormal. There is a problem in the afm file * (several definition of the same glyph). * Since there is a bug in Ogonkify's AFM files, just shut up. */ return; } else { item = XMALLOC (struct wx_entry); item->glyph = xstrdup(glyph); item->wx = wx; item->index = the_index; hash_insert (table, item); } } /* * Get the wx associated to GLYPH in TABLE * Return NULL upon error (this means that it is not * valid to enter NULL as a wx) */ static inline unsigned int wx_entry_get_wx (struct hash_table_s * table, const char * glyph) { struct wx_entry * item, token; token.glyph = (char *) glyph; item = (struct wx_entry *) hash_find_item (table, &token); if (item) return item->wx; return 0; } /* * Getting the glyphs in the order of the index */ static inline struct wx_entry ** wx_entry_get_in_index_order (struct hash_table_s * table) { return (struct wx_entry **) hash_dump (table, NULL, (hash_cmp_func_t) wx_entry_hash_index_qcmp); } /************************************************************************ * A font (not encoded) * ************************************************************************/ /* * Basic routines */ static unsigned long font_info_hash_1 (struct font_info *font_info) { return_STRING_HASH_1 (font_info->key); } static unsigned long font_info_hash_2 (struct font_info *font_info) { return_STRING_HASH_2 (font_info->key); } static int font_info_hash_cmp (struct font_info *x, struct font_info *y) { return_STRING_COMPARE (x->key, y->key); } /* * Create the structure that stores the list of font_infos */ struct hash_table_s * font_info_table_new (void) { struct hash_table_s * res = XMALLOC (struct hash_table_s); hash_init (res, 8, (hash_func_t) font_info_hash_1, (hash_func_t) font_info_hash_2, (hash_cmp_func_t) font_info_hash_cmp); return res; } /* * Create and return a new font_info cell, with key = KEY */ static inline struct font_info * font_info_new (const char * key) { struct font_info * res = XMALLOC (struct font_info); res->key = xstrdup (key); res->wx = wx_entry_table_new (); return res; } /* * It need JOB for the lib path, to look for the afm file. */ static void font_info_finalize (struct a2ps_job * job, struct font_info * font) { char * file; const char * filename; FILE * stream; yylineno = 0; /* Find its AFM file: first resolve its font file name */ filename = fonts_map_resolve_alias (job->fonts_map, font->key); file = xpw_find_file (job->common.path, filename, ".afm"); /* Go for it */ message (msg_font | msg_file | msg_parse, (stderr, "Parsing file `%s'\n", file)); stream = xrfopen (file); /* Prepare the global var that encloses the hash table. * WARNING: this is not reentrant... */ font_info_being_parsed = font; yyrestart (stream); yylex (); fclose (stream); } /* * Create a font_info for font KEY and store it in the hash table * And register in the DSC requirements */ void font_info_add (struct a2ps_job * job, const char * key) { struct font_info * font; /* Create, fill and store the font_info structure */ font = font_info_new (key); font_info_finalize (job, font); hash_insert (job->font_infos, font); /* Register the font for the DSC */ add_required_font (job, key); } /* * Retreive. */ static inline struct font_info * font_info_get (struct a2ps_job * job, const char * key) { struct font_info token, * res; token.key = (char *) key; res = (struct font_info *) hash_find_item (job->font_infos, &token); if (!res) {/* Require loading of the font's info */ font_info_add (job, key); res = (struct font_info *) hash_find_item (job->font_infos, &token); } return res; } /* * For instance Symbol is not to reencode => don't put it * in the encoding specific dictionary */ int font_is_to_reencode (_GL_UNUSED struct a2ps_job * job, const char * key) { return !STREQ (key, "Symbol"); } /* * Return a WX array that reflects the font KEY according to * the encoding VECTOR */ void font_info_get_wx_for_vector (struct a2ps_job * job, const char * key, char * vector [256], unsigned int * wx) { struct font_info * font_info = font_info_get (job, key); struct wx_entry ** sorted_by_index; int c, the_index; if (font_is_to_reencode (job, key)) { /* This is a regular font, such as Courier, which needs to * be recoded according to the current char set */ for (c = 0 ; c < 256 ; c++) wx [c] = wx_entry_get_wx (font_info->wx, vector [c]); } else { /* This is a font such as Symbol, which has its own char set */ for (c = 0 ; c < 256 ; c++) wx [c] = 0; sorted_by_index = wx_entry_get_in_index_order (font_info->wx); for (c = 0 ; sorted_by_index [c] ; c++) { the_index = sorted_by_index [c]->index; if (0 <= the_index && the_index < 256) wx [the_index] = sorted_by_index [c]->wx; } } } /* * A font exists iff a KEY.afm file exists */ int font_exists (struct a2ps_job * job, const char * key) { const char * filename; filename = fonts_map_resolve_alias (job->fonts_map, key); return pw_file_exists_p (job->common.path, filename, ".afm"); } /* * Dump the setup of all the fonts not to be reencoded */ void font_info_table_dump_special_font_setup (FILE * stream, struct a2ps_job * job) { struct font_info ** fonts; int i; fonts = (struct font_info **) hash_dump (job->font_infos, NULL, NULL); for (i = 0 ; fonts [i] ; i++) if (!font_is_to_reencode (job, fonts [i]->key)) fprintf (stream, "/f%s /%s findfont def\n", fonts [i]->key, fonts [i]->key); } /************************************************************************ * Downloading of PostScript font * ************************************************************************/ /* This is according to << Supporting Downloadable PostScript Language Fonts >> by Adobe */ /* * Read and dump a segment * Returns: * - 0 something was read * - 1 nothing had to be read * - 2 an error occured */ static inline int binary_font_dump_segment (FILE * in, FILE * out) { enum segment_type { ascii = 1, binary = 2, end_of_file = 3 }; enum segment_type segment_type; int magic; size_t length, read_length, length_to_read; char buf [BUFSIZ]; magic = getc (in); if (magic != 128) /* This is most weird! */ return 1; /* The type of the segment */ segment_type = (enum segment_type) getc (in); /* Four bytes for the size of the segment */ length = getc (in); length += getc (in) * 256; length += getc (in) * 256 * 256; length += getc (in) * 256 * 256 * 256; switch (segment_type) { case ascii: while (length) { size_t i; /* Don't read more than the length of this segment */ length_to_read = length < sizeof (buf) ? length : sizeof (buf); read_length = fread (buf, sizeof (char), length_to_read, in); if (!read_length) /* Error */ return 2; length -= read_length; for (i= 0 ; i < read_length ; i++) switch (buf [i]) { case '\r': /* eerk: Mac eol. */ putc ('\n', out); break; default: putc (buf [i], out); } } break; case binary: while (length) { size_t i; /* Don't read more than the length of this segment */ length_to_read = length < sizeof (buf) ? length : sizeof (buf); read_length = fread (buf, sizeof (char), length_to_read, in); if (!read_length) /* Error */ return 2; length -= read_length; for (i = 0 ; i < read_length ; i++) { fprintf (out, "%02X", buf [i]); /* Don't make too long lines */ if (!((i + 1) % 32)) putc ('\n', out); } } break; case end_of_file: /* Nothing more to do */ return 1; default: abort (); } /* Finish with an eol (because it does not look good without */ putc ('\n', out); return 0; } /* * Dump onto OUT a binary segment from IN * Returns true if success, false if error occured */ static inline int binary_font_dump (FILE * in, FILE * out) { int status; while (!(status = binary_font_dump_segment (in, out))) /* Again */; if (status == 2) return false; else return true; } /* * Put onto OUT the description of the font file IN * Returns true if success, false if error occured */ static int internal_font_file_dump (FILE * in, FILE * out) { int c; c = getc (in); ungetc (c, in); if (c == 128) { /* This a font file a` la IBM-PC */ return binary_font_dump (in, out); } else { streams_copy (in, out); return true; } } /* * Dump the font definition files for the fonts */ void dump_fonts (FILE * stream, struct a2ps_job * job) { FILE * fp; char * filename; const char * fontname; char ** fonts; int i; /* Get all the fonts used that need to be downloaded * (Care: there can be 0) */ fonts = required_fonts_get (job); if (!fonts) return; for (i = 0 ; fonts [i] ; i++) { /* This font is not known: include its definition file */ fontname = fonts_map_resolve_alias (job->fonts_map, fonts [i]); /* First, find where is the correct file. * pfb first, then pfa, finaly gsf. */ filename = pw_find_file (job->common.path, fontname, ".pfb"); if (!filename) filename = pw_find_file (job->common.path, fontname, ".pfa"); if (!filename) filename = pw_find_file (job->common.path, fontname, ".gsf"); if (!filename) { /* Repeat the same message to avoid too much work to translators */ char * file; astrcat2 (file, fontname, ".pfb"); error (0, 0, _("cannot find file `%s'"), quotearg (file)); strcat2 (file, fontname, ".pfa"); error (0, 0, _("cannot find file `%s'"), quotearg (file)); strcat2 (file, fontname, ".gsf"); error (1, 0, _("cannot find file `%s'"), quotearg (file)); } /* Open it */ fp = xrfopen (filename); /* Dump it */ message (msg_font | msg_file, (stderr, "Dumping file `%s'\n", filename)); fprintf (stream, "%%%%BeginResource: font %s\n", fonts [i]); if (!internal_font_file_dump (fp, stream)) error (1, 0, "bad PostScript font file `%s'\n", filename); fprintf (stream, "%%%%EndResource\n"); /* release */ fclose (fp); } } ������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/fonts.h�������������������������������������������������������������������������0000644�0000000�0000000�00000003124�14236507210�012200� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* fonts.h - reading an AFM file Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _LEXAFM_H_ #define _LEXAFM_H_ struct a2ps_job; /* * Handling of fonts.map files */ struct pair_htable * fonts_map_new (void); int load_main_fonts_map (struct a2ps_job * job); struct hash_table_s * font_info_table_new (void); void font_info_add (struct a2ps_job * job, const char * key); int font_exists (struct a2ps_job * job, const char * key); int font_is_to_reencode (struct a2ps_job * job, const char * key); void font_info_get_wx_for_vector (struct a2ps_job * job, const char * key, char * vector [256], unsigned int * wx); /* Dump the setup of the special fonts (e.g. Symbol) */ void font_info_table_dump_special_font_setup (FILE * stream, struct a2ps_job * job); /* Dump the definition of the fonts */ void dump_fonts (FILE * stream, struct a2ps_job * job); #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/fonts.l�������������������������������������������������������������������������0000644�0000000�0000000�00000042175�14367514174�012231� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%top{ /* -*- c -*- */ /* * Lexer for afm files. * * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <config.h> #include "a2ps.h" #include "routines.h" #include "message.h" #include "hashtab.h" #include "jobs.h" #include "pathwalk.h" #include "fonts.h" #include "psstat.h" #include "pair_ht.h" #include "dsc.h" #include "quotearg.h" /* What this file is in charge of? Its main responsabilities are: - to be able to provide, given a font name and an encoding vector, to return an unsigned int array [256] of the width of each char. - to be able to dump the requirements (the needed IncludeResource: font) so that we have a correct PS-3 file. - to download a font file To acheive this goal, the main task is reading the AFM file of a font, to store what it has learnt into a hash table storing any pertinent info read in previous AFM files. (We may need this info several times, and we do not want to waste time). This file is decomposed into several parts: 0. Handle the fonts.map files 1. The lexer of afm files. The format is simple enough so that we do not need a parser. 2. The cells (of type struct font_info) handling. 3. The hash table maintenance. This hash table is, as usually, stored in the a2ps_job so that it does not pollute the space, and make liba2ps still "clean". 4. Download a font file */ } %{/************************************************************************/ /* fonts.map handling */ /************************************************************************/ struct pair_htable * fonts_map_new (void) { return pair_table_new (); } static inline void fonts_map_add (struct pair_htable * fonts_map, const char * alias, const char * key) { pair_add (fonts_map, alias, key); } /* * What is the short name used for the font file corresponding * to FONTNAME */ static const char * fonts_map_resolve_alias (struct pair_htable * fonts_map, const char * fontname) { char * res; res = pair_get (fonts_map, fontname); if (res) return res; else /* The fonts has not been declared. Try its full name */ return fontname; } /* * Read a sheets map file */ static int load_fonts_map (struct a2ps_job * job, const char * file) { return pair_table_load (job->fonts_map, file); } /* * Read the fonts.map file */ int load_main_fonts_map (struct a2ps_job * job) { char * file; /* System's */ file = xpw_find_file (job->common.path, "fonts.map", NULL); load_fonts_map (job, file); return 1; } /************************************************************************/ /* Defining the structures, and lexer of afm files */ /************************************************************************/ /* Definition of the structure that retains the wx information */ struct wx_entry { char * glyph; int index; unsigned int wx; }; struct font_info { char * key; struct hash_table_s * wx; }; /* The following variables are global because I see no other means to share information with the lexer. */ /* Last WX and index read */ static unsigned int last_wx_read; static int last_index_read; /* the current font info being filled */ static struct font_info * font_info_being_parsed = NULL; static void wx_entry_add (struct hash_table_s * table, const char * glyph, int the_index, unsigned int wx); int yylex (void); %} %option yylineno %option prefix="afm" %option outfile="lex.yy.c" %x STATE_CHAR_METRICS integer [0-9]+ symbol [^/#, \t\r\f\n\"()+;]* %% StartCharMetrics.*\n { BEGIN STATE_CHAR_METRICS; } .*\n { /* Ignore */; } <STATE_CHAR_METRICS>{ /* string of characters */ EndCharMetrics { /* return the string */ /* There is nothing more we want to know, but return to * the INITIAL state for the next call... */ BEGIN INITIAL; /* Cut parsing right now (speed up) */ yyterminate (); } C\ {integer} { char *cursor = yytext + 3; last_index_read = yytext[2] - '0'; while (*cursor) last_index_read = 10 * last_index_read + *cursor++ - '0'; } C\ -{integer} { char *cursor = yytext + 4; last_index_read = yytext[3] - '0'; while (*cursor) last_index_read = 10 * last_index_read + *cursor++ - '0'; last_index_read = - last_index_read; } WX\ {integer} { char *cursor = yytext + 4; last_wx_read = yytext[3] - '0'; while (*cursor) last_wx_read = 10 * last_wx_read + *cursor++ - '0'; } N\ {symbol} { char *cursor = yytext + 2; wx_entry_add (font_info_being_parsed->wx, cursor, last_index_read, last_wx_read); } . { /* Ignore */; } \n { /* Ignore */; } } %% int yywrap (void) { return 1; } /************************************************************************ * hash tables associating a glyph name to the corresponding wx * ************************************************************************/ /* * Basic routines */ static unsigned long wx_entry_hash_1 (struct wx_entry *wx_entry) { return_STRING_HASH_1 (wx_entry->glyph); } static unsigned long wx_entry_hash_2 (struct wx_entry *wx_entry) { return_STRING_HASH_2 (wx_entry->glyph); } static int wx_entry_hash_cmp (struct wx_entry *x, struct wx_entry *y) { return_STRING_COMPARE (x->glyph, y->glyph); } /* * For sorting them in the order of their index * (or `code', i.e. 32 for space) */ static int wx_entry_hash_index_qcmp (struct wx_entry **x, struct wx_entry **y) { return ((*y)->index - (*x)->index); } /* * Create the structure that stores the list of wx_entrys */ static struct hash_table_s * wx_entry_table_new (void) { struct hash_table_s * res; res = XMALLOC (struct hash_table_s); hash_init (res, 8, (hash_func_t) wx_entry_hash_1, (hash_func_t) wx_entry_hash_2, (hash_cmp_func_t) wx_entry_hash_cmp); return res; } /* * Add a wx_entry, with your own allocation for them. * It GLYPH is yet used, override its wx with WX */ static void wx_entry_add (struct hash_table_s * table, const char * glyph, int the_index, unsigned int wx) { struct wx_entry * item, token; token.glyph = (char *) glyph; item = (struct wx_entry *) hash_find_item (table, &token); if (item) { /* This is abnormal. There is a problem in the afm file * (several definition of the same glyph). * Since there is a bug in Ogonkify's AFM files, just shut up. */ return; } else { item = XMALLOC (struct wx_entry); item->glyph = xstrdup(glyph); item->wx = wx; item->index = the_index; hash_insert (table, item); } } /* * Get the wx associated to GLYPH in TABLE * Return NULL upon error (this means that it is not * valid to enter NULL as a wx) */ static inline unsigned int wx_entry_get_wx (struct hash_table_s * table, const char * glyph) { struct wx_entry * item, token; token.glyph = (char *) glyph; item = (struct wx_entry *) hash_find_item (table, &token); if (item) return item->wx; return 0; } /* * Getting the glyphs in the order of the index */ static inline struct wx_entry ** wx_entry_get_in_index_order (struct hash_table_s * table) { return (struct wx_entry **) hash_dump (table, NULL, (hash_cmp_func_t) wx_entry_hash_index_qcmp); } /************************************************************************ * A font (not encoded) * ************************************************************************/ /* * Basic routines */ static unsigned long font_info_hash_1 (struct font_info *font_info) { return_STRING_HASH_1 (font_info->key); } static unsigned long font_info_hash_2 (struct font_info *font_info) { return_STRING_HASH_2 (font_info->key); } static int font_info_hash_cmp (struct font_info *x, struct font_info *y) { return_STRING_COMPARE (x->key, y->key); } /* * Create the structure that stores the list of font_infos */ struct hash_table_s * font_info_table_new (void) { struct hash_table_s * res = XMALLOC (struct hash_table_s); hash_init (res, 8, (hash_func_t) font_info_hash_1, (hash_func_t) font_info_hash_2, (hash_cmp_func_t) font_info_hash_cmp); return res; } /* * Create and return a new font_info cell, with key = KEY */ static inline struct font_info * font_info_new (const char * key) { struct font_info * res = XMALLOC (struct font_info); res->key = xstrdup (key); res->wx = wx_entry_table_new (); return res; } /* * It need JOB for the lib path, to look for the afm file. */ static void font_info_finalize (struct a2ps_job * job, struct font_info * font) { char * file; const char * filename; FILE * stream; yylineno = 0; /* Find its AFM file: first resolve its font file name */ filename = fonts_map_resolve_alias (job->fonts_map, font->key); file = xpw_find_file (job->common.path, filename, ".afm"); /* Go for it */ message (msg_font | msg_file | msg_parse, (stderr, "Parsing file `%s'\n", file)); stream = xrfopen (file); /* Prepare the global var that encloses the hash table. * WARNING: this is not reentrant... */ font_info_being_parsed = font; yyrestart (stream); yylex (); fclose (stream); } /* * Create a font_info for font KEY and store it in the hash table * And register in the DSC requirements */ void font_info_add (struct a2ps_job * job, const char * key) { struct font_info * font; /* Create, fill and store the font_info structure */ font = font_info_new (key); font_info_finalize (job, font); hash_insert (job->font_infos, font); /* Register the font for the DSC */ add_required_font (job, key); } /* * Retreive. */ static inline struct font_info * font_info_get (struct a2ps_job * job, const char * key) { struct font_info token, * res; token.key = (char *) key; res = (struct font_info *) hash_find_item (job->font_infos, &token); if (!res) {/* Require loading of the font's info */ font_info_add (job, key); res = (struct font_info *) hash_find_item (job->font_infos, &token); } return res; } /* * For instance Symbol is not to reencode => don't put it * in the encoding specific dictionary */ int font_is_to_reencode (_GL_UNUSED struct a2ps_job * job, const char * key) { return !STREQ (key, "Symbol"); } /* * Return a WX array that reflects the font KEY according to * the encoding VECTOR */ void font_info_get_wx_for_vector (struct a2ps_job * job, const char * key, char * vector [256], unsigned int * wx) { struct font_info * font_info = font_info_get (job, key); struct wx_entry ** sorted_by_index; int c, the_index; if (font_is_to_reencode (job, key)) { /* This is a regular font, such as Courier, which needs to * be recoded according to the current char set */ for (c = 0 ; c < 256 ; c++) wx [c] = wx_entry_get_wx (font_info->wx, vector [c]); } else { /* This is a font such as Symbol, which has its own char set */ for (c = 0 ; c < 256 ; c++) wx [c] = 0; sorted_by_index = wx_entry_get_in_index_order (font_info->wx); for (c = 0 ; sorted_by_index [c] ; c++) { the_index = sorted_by_index [c]->index; if (0 <= the_index && the_index < 256) wx [the_index] = sorted_by_index [c]->wx; } } } /* * A font exists iff a KEY.afm file exists */ int font_exists (struct a2ps_job * job, const char * key) { const char * filename; filename = fonts_map_resolve_alias (job->fonts_map, key); return pw_file_exists_p (job->common.path, filename, ".afm"); } /* * Dump the setup of all the fonts not to be reencoded */ void font_info_table_dump_special_font_setup (FILE * stream, struct a2ps_job * job) { struct font_info ** fonts; int i; fonts = (struct font_info **) hash_dump (job->font_infos, NULL, NULL); for (i = 0 ; fonts [i] ; i++) if (!font_is_to_reencode (job, fonts [i]->key)) fprintf (stream, "/f%s /%s findfont def\n", fonts [i]->key, fonts [i]->key); } /************************************************************************ * Downloading of PostScript font * ************************************************************************/ /* This is according to << Supporting Downloadable PostScript Language Fonts >> by Adobe */ /* * Read and dump a segment * Returns: * - 0 something was read * - 1 nothing had to be read * - 2 an error occured */ static inline int binary_font_dump_segment (FILE * in, FILE * out) { enum segment_type { ascii = 1, binary = 2, end_of_file = 3 }; enum segment_type segment_type; int magic; size_t length, read_length, length_to_read; char buf [BUFSIZ]; magic = getc (in); if (magic != 128) /* This is most weird! */ return 1; /* The type of the segment */ segment_type = (enum segment_type) getc (in); /* Four bytes for the size of the segment */ length = getc (in); length += getc (in) * 256; length += getc (in) * 256 * 256; length += getc (in) * 256 * 256 * 256; switch (segment_type) { case ascii: while (length) { size_t i; /* Don't read more than the length of this segment */ length_to_read = length < sizeof (buf) ? length : sizeof (buf); read_length = fread (buf, sizeof (char), length_to_read, in); if (!read_length) /* Error */ return 2; length -= read_length; for (i= 0 ; i < read_length ; i++) switch (buf [i]) { case '\r': /* eerk: Mac eol. */ putc ('\n', out); break; default: putc (buf [i], out); } } break; case binary: while (length) { size_t i; /* Don't read more than the length of this segment */ length_to_read = length < sizeof (buf) ? length : sizeof (buf); read_length = fread (buf, sizeof (char), length_to_read, in); if (!read_length) /* Error */ return 2; length -= read_length; for (i = 0 ; i < read_length ; i++) { fprintf (out, "%02X", buf [i]); /* Don't make too long lines */ if (!((i + 1) % 32)) putc ('\n', out); } } break; case end_of_file: /* Nothing more to do */ return 1; default: abort (); } /* Finish with an eol (because it does not look good without */ putc ('\n', out); return 0; } /* * Dump onto OUT a binary segment from IN * Returns true if success, false if error occured */ static inline int binary_font_dump (FILE * in, FILE * out) { int status; while (!(status = binary_font_dump_segment (in, out))) /* Again */; if (status == 2) return false; else return true; } /* * Put onto OUT the description of the font file IN * Returns true if success, false if error occured */ static int internal_font_file_dump (FILE * in, FILE * out) { int c; c = getc (in); ungetc (c, in); if (c == 128) { /* This a font file a` la IBM-PC */ return binary_font_dump (in, out); } else { streams_copy (in, out); return true; } } /* * Dump the font definition files for the fonts */ void dump_fonts (FILE * stream, struct a2ps_job * job) { FILE * fp; char * filename; const char * fontname; char ** fonts; int i; /* Get all the fonts used that need to be downloaded * (Care: there can be 0) */ fonts = required_fonts_get (job); if (!fonts) return; for (i = 0 ; fonts [i] ; i++) { /* This font is not known: include its definition file */ fontname = fonts_map_resolve_alias (job->fonts_map, fonts [i]); /* First, find where is the correct file. * pfb first, then pfa, finaly gsf. */ filename = pw_find_file (job->common.path, fontname, ".pfb"); if (!filename) filename = pw_find_file (job->common.path, fontname, ".pfa"); if (!filename) filename = pw_find_file (job->common.path, fontname, ".gsf"); if (!filename) { /* Repeat the same message to avoid too much work to translators */ char * file; astrcat2 (file, fontname, ".pfb"); error (0, 0, _("cannot find file `%s'"), quotearg (file)); strcat2 (file, fontname, ".pfa"); error (0, 0, _("cannot find file `%s'"), quotearg (file)); strcat2 (file, fontname, ".gsf"); error (1, 0, _("cannot find file `%s'"), quotearg (file)); } /* Open it */ fp = xrfopen (filename); /* Dump it */ message (msg_font | msg_file, (stderr, "Dumping file `%s'\n", filename)); fprintf (stream, "%%%%BeginResource: font %s\n", fonts [i]); if (!internal_font_file_dump (fp, stream)) error (1, 0, "bad PostScript font file `%s'\n", filename); fprintf (stream, "%%%%EndResource\n"); /* release */ fclose (fp); } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/gc-stubs.c����������������������������������������������������������������������0000644�0000000�0000000�00000002307�14251132535�012574� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gnulib's reallocarray, but using GC_realloc(). Simply #defining reallocarray in config.h does not work. Copyright 2022 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <errno.h> #include "intprops.h" void * a2ps_reallocarray(void *ptr, size_t nmemb, size_t size) { size_t nbytes; if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes)) { errno = ENOMEM; return NULL; } /* Rely on the semantics of GNU realloc. */ return GC_realloc (ptr, nbytes); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/gc-stubs.h����������������������������������������������������������������������0000644�0000000�0000000�00000001646�14251132535�012606� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gnulib's reallocarray, but using GC_realloc(). Simply #defining reallocarray in config.h does not work. Copyright 2022 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ void * a2ps_reallocarray(void *ptr, size_t nmemb, size_t size); ������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/gc_calloc.c���������������������������������������������������������������������0000644�0000000�0000000�00000001734�14251177324�012763� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* calloc for libgc. Copyright 2022 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <stdlib.h> #include <string.h> void * GC_calloc(size_t nmemb, size_t size) { void *res = malloc (nmemb * size); if (res) memset (res, 0, nmemb * size); return res; } ������������������������������������a2ps-4.15.5/liba2ps/gen.c���������������������������������������������������������������������������0000644�0000000�0000000�00000007062�14251132535�011621� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gen.c - output formats handling Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" /* most global variables */ #include "psgen.h" #include "prolog.h" #include "encoding.h" #include "routines.h" /* general interest routines */ #include "output.h" /* Diverted outputs */ #include "media.h" #include "faces.h" #include "jobs.h" #include "fjobs.h" /* * Print just a char (may be nul) */ void a2ps_print_char (a2ps_job * job, char c, enum face_e new_face) { switch (job->output_format) { case ps: ps_print_char (job, c, new_face); break; default: abort (); } } /* * Print a string (\0 terminated) */ void a2ps_print_string (a2ps_job * job, const char * string, enum face_e new_face) { switch (job->output_format) { case ps: while (*string) ps_print_char (job, *(string++), new_face); break; default: abort (); } } /* * Print a buffer (char array of length N */ void a2ps_print_buffer (a2ps_job * job, const char * buffer, size_t start, size_t end, enum face_e new_face) { size_t i; switch (job->output_format) { case ps: for (i = start ; i < end ; i++) ps_print_char (job, buffer [i], new_face); break; default: abort (); } } /* * Finish printing a file */ void a2ps_open_output_session (a2ps_job * job) { switch (job->output_format) { case ps: ps_begin (job); break; default: abort (); } } /* * Build the file struct for a new file */ void a2ps_open_input_session (struct a2ps_job * job, const char * name) { struct file_job * file_job; file_job = _a2ps_file_job_new (IS_EMPTY (name) ? job->stdin_filename : name, ++(job->total_files), &job->run_tm); /* Reset the tags */ * job->tag1 = '\0'; * job->tag2 = '\0'; * job->tag3 = '\0'; * job->tag4 = '\0'; switch (job->output_format) { case ps: ps_begin_file (job); break; default: abort (); } /* Link it */ da_append (job->jobs, file_job); } /* * Finish printing a file */ void a2ps_close_input_session (a2ps_job * job) { /* Make sure that the output is really processed. It * could have been closed by a page range selection, but * the trailer must be dumped */ /* output_to_void (job->divertion, false);*/ switch (job->output_format) { case ps: ps_end_file (job); break; default: abort (); } } /* * Finish a printing session */ void a2ps_close_output_session (a2ps_job * job) { switch (job->output_format) { case ps: ps_end (job); break; default: abort (); } } _GL_ATTRIBUTE_PURE const char * output_format_to_key (enum output_format format) { switch (format) { case ps: case eps: return "ps"; default: abort (); } return NULL; /* For -Wall */ } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/gen.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003370�14251132535�011624� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gen.h - output formats handling Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GEN_H_ #define _GEN_H_ struct a2ps_job; enum output_format { eps, ps }; const char * output_format_to_key (enum output_format format); /* liba2ps.h:begin */ /* Print a single char C in FACE */ void a2ps_print_char (struct a2ps_job * job, char c, enum face_e face); /* Print a C string (nul terminated) in FACE */ void a2ps_print_string (struct a2ps_job * job, const char * string, enum face_e face); /* Print the N chars contained in BUFFER, in FACE */ void a2ps_print_buffer (struct a2ps_job * job, const char * buffer, size_t start, size_t end, enum face_e face); /* Open/close the outer structure */ void a2ps_open_output_session (struct a2ps_job * job); void a2ps_close_output_session (struct a2ps_job * job); /* Open/Close the section structure */ void a2ps_open_input_session (struct a2ps_job * job, const char * name); void a2ps_close_input_session (struct a2ps_job * job); /* liba2ps.h:end */ #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/getnum.c������������������������������������������������������������������������0000644�0000000�0000000�00000013215�14251171063�012343� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getnum.c - get number in a given interval, get length with units Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <stdio.h> #include <stdlib.h> /* abort() is wanted */ #include "argmatch.h" #include "getnum.h" #include "quotearg.h" #include "routines.h" #include "error.h" /************************************************************************ * Get a length/integer in an interval * ************************************************************************/ int get_integer_in_range (const char * option, const char * arg, int min, int max, enum range_type_e range_type) { char buf [256]; int res; if ((sscanf (arg, "%d%255s", &res, buf) != 1)) error (EXIT_FAILURE, 0, _("invalid argument `%s' for `%s'"), quotearg (arg), option); buf [0] = '\0'; /* means no error */ switch (range_type) { case range_min: if (res < min) sprintf (buf, "%d <= n", min); break; case range_min_strict: if (res <= min) sprintf (buf, "%d < n", min); break; case range_max: if (res > max) sprintf (buf, "n <= %d", max); break; case range_max_strict: if (res >= max) sprintf (buf, "n <= %d", max); break; case range_min_max: if ((res < min) || (res > max)) sprintf (buf, "%d <= n <= %d", min, max); break; case range_min_strict_max: if ((res <= min) || (res > max)) sprintf (buf, "%d < n <= %d", min, max); break; case range_min_max_strict: if ((res < min) || (res >= max)) sprintf (buf, "%d <= n < %d", min, max); break; case range_min_strict_max_strict: if ((res < min) || (res >= max)) sprintf (buf, "%d < n < %d", min, max); break; case range_no_limit: break; default: abort (); break; } if (buf [0]) { error (0, 0, _("invalid argument `%s' for `%s'"), quotearg (arg), option); fprintf (stderr, _("Valid arguments are integers n such that: %s\n"), buf); exit (EXIT_FAILURE); } return res; } /* * Return a float in a given range, with a specified unit */ static float get_float_in_range (const char * option, const char * arg, const char * const * args_list, float * types_list, float min, float max, const char * unit, enum range_type_e range_type) { float res; char buf[512]; switch (sscanf (arg, "%f%255s", &res, buf)) { case 2: /* Multiply by the given unit */ res *= XARGMATCH (option, buf, args_list, types_list); break; case 1: break; default: error (EXIT_FAILURE, 0, _("invalid argument `%s' for `%s'"), quotearg (arg), option); break; } /* Divide by the desired unit */ res /= types_list [__xargmatch_internal ("internal conversion", unit, args_list, (const char *) types_list, sizeof (*types_list), (argmatch_exit_fn) abort, true)]; buf [0] = '\0'; /* means no error */ /* Check that it is in the expected range */ switch (range_type) { case range_min: if (res < min) sprintf (buf, "%.1f%16s <= f", (double) min, unit); break; case range_min_strict: if (res <= min) sprintf (buf, "%.1f%s < f", (double) min, unit); break; case range_max: if (res > max) sprintf (buf, "f <= %.1f%s", (double) max, unit); break; case range_max_strict: if (res >= max) sprintf (buf, "f <= %.1f%s", (double) max, unit); break; case range_min_max: if ((res < min) || (res > max)) sprintf (buf, "%.1f%s <= f <= %.1f%s", (double) min, unit, (double) max, unit); break; case range_min_strict_max: if ((res <= min) || (res > max)) sprintf (buf, "%.1f%s < f <= %.1f%s", (double) min, unit, (double) max, unit); break; case range_min_max_strict: if ((res < min) || (res >= max)) sprintf (buf, "%.1f%s <= f < %.1f%s", (double) min, unit, (double) max, unit); break; case range_min_strict_max_strict: if ((res <= min) || (res >= max)) sprintf (buf, "%.1f%s < f < %.1f%s", (double) min, unit, (double) max, unit); break; case range_no_limit: break; default: abort (); break; } if (buf [0]) { error (0, 0, _("invalid argument `%s' for `%s'"), quotearg (arg), option); fprintf (stderr, _("Valid arguments are floats f such that: %s\n"), buf); exit (EXIT_FAILURE); } return res; } /* * Return the ratio to inch */ static const char *const length_args[] = { "points", "pts", "inchs", "cm", "centimeters", 0 }; static float length_types[] = { 1.0, 1.0, 72.0, (72 / 2.54f), (72 / 2.54f) }; /* * Return a length in the desired unit */ float get_length (const char * option, const char * arg, float min, float max, const char * unit, enum range_type_e range_type) { return get_float_in_range (option, arg, length_args, length_types, min, max, unit, range_type); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/getnum.h������������������������������������������������������������������������0000644�0000000�0000000�00000002511�14235572622�012355� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getnum.h - get number in a given interval, get length with units Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef GETNUM_H_ #define GETNUM_H_ enum range_type_e { range_no_limit, range_min, range_min_strict, range_max, range_max_strict, range_min_max, range_min_strict_max, range_min_max_strict, range_min_strict_max_strict }; int get_integer_in_range (const char * option, const char * arg, int min, int max, enum range_type_e range_type); float get_length (const char * option, const char * arg, float min, float max, const char * unit, enum range_type_e range_type); #endif /* !GETNUM_H_ */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/getshline.c���������������������������������������������������������������������0000644�0000000�0000000�00000012400�14251177456�013035� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getshline.c - read a meaningfull line from a file Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Jan Brittenson, bson@gnu.ai.mit.edu. */ /* Written by Akim Demaille, demaille@inf.enst.fr * from getline.c by Jan Brittenson, bson@gnu.ai.mit.edu. */ #include <config.h> #include <stdio.h> #include <sys/types.h> #include <assert.h> #include "xalloc.h" #include "getshline.h" /* Always add at least this many bytes when extending the buffer. */ #define MIN_CHUNK 64 /* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR + OFFSET (and null-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *N characters of space. It is realloc'd as necessary. Return the number of characters read (not including the null terminator), or -1 on error or EOF. */ static ptrdiff_t getshstr (unsigned * firstline, unsigned * lastline, char ** lineptr, size_t * n, FILE * stream, char terminator, int terminator_quote, int commentor, size_t offset) { size_t nchars_avail; /* Allocated but unused chars in *LINEPTR. */ char *read_pos; /* Where we're reading into *LINEPTR. */ if (!lineptr || !n || !stream) return -1; if (!*lineptr) { *n = MIN_CHUNK; *lineptr = XNMALLOC (*n, char); if (!*lineptr) return -1; } /* We are reading a new line */ *firstline = ++(*lastline); nchars_avail = *n - offset; read_pos = *lineptr + offset; for (;;) { int c = getc (stream); /* We always want at least one char left in the buffer, since we always (unless we get an error while reading the first char) NUL-terminate the line buffer. */ assert(*n + *lineptr == read_pos + nchars_avail); if (nchars_avail < 2) { if (*n > MIN_CHUNK) *n *= 2; else *n += MIN_CHUNK; nchars_avail = (size_t) (*n + *lineptr - read_pos); *lineptr = xnrealloc (*lineptr, *n, sizeof(char)); if (!*lineptr) return -1; read_pos = *n - nchars_avail + *lineptr; assert(*n + *lineptr == read_pos + nchars_avail); } if (c == EOF || ferror (stream)) { /* Return partial line, if any. */ if (read_pos == *lineptr) return -1; else break; } *read_pos++ = (char) c; nchars_avail--; if (c == terminator) { /* The comment lines cannot be continued by an * escaped eol, so test this before quotation of eol */ if (**lineptr == terminator || **lineptr == commentor) { /* We just read a blank line. Then we are reading * a new first line */ *firstline = *lastline + 1; return (getshstr (firstline, lastline, lineptr, n, stream, terminator, terminator_quote, commentor, offset)); } if ((read_pos - 2 <= *lineptr) || (*(read_pos - 2) != terminator_quote)) /* Return the line. */ break; /* The line is continued because the eol was quoted, * hence lastline has to be incremented */ read_pos -= 2; nchars_avail += 2; (*lastline)++; } } /* Done - NUL terminate and return the number of chars read. */ *read_pos = '\0'; return read_pos - (*lineptr + offset); } ptrdiff_t getshline_numbered (unsigned * firstline, unsigned * lastline, char ** lineptr, size_t * n, FILE * stream) { return getshstr (firstline, lastline, lineptr, n, stream, '\n', '\\', '#', 0); } ptrdiff_t getshline (char ** lineptr, size_t * n, FILE * stream) { unsigned firstline, lastline; return getshstr (&firstline, &lastline, lineptr, n, stream, '\n', '\\', '#', 0); } ptrdiff_t getshdelim_numbered (unsigned * firstline, unsigned * lastline, char ** lineptr, size_t * n, int delimiter, int delimiter_quote, int commentor, FILE * stream) { return getshstr (firstline, lastline, lineptr, n, stream, (char) delimiter, delimiter_quote, commentor, 0); } ptrdiff_t getshdelim (char ** lineptr, size_t * n, int delimiter, int delimiter_quote, int commentor, FILE * stream) { unsigned firstline, lastline; return getshstr (&firstline, &lastline, lineptr, n, stream, (char) delimiter, delimiter_quote, commentor, 0); } #ifdef TEST const char * program_name = "getsh"; int main(int argc, char *argv[]) { int firstline = 0, lastline = 0; char * line_content = NULL; int line_size = 0; FILE * file; int res; if (argc < 2) exit (EXIT_FAILURE); file = fopen (argv[1], "r"); if (!file) exit (EXIT_FAILURE); while ((res = getshline_numbered (&firstline, &lastline, &line_content, &line_size, file)) != -1) printf ("%3d-%3d:%s", firstline, lastline, line_content); return 0; } #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/getshline.h���������������������������������������������������������������������0000644�0000000�0000000�00000004170�14251132535�013034� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getshline.h - read a meaningful line from a file Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GETSHLINE_H_ # define _GETSHLINE_H_ 1 /* These routines are devoted to reading meaningful lines. By * meaningful is meant, not empty, and not behind a COMMENTOR symbol. * These lines are ended by a DELIMITER, but may be continued if * DELIMITER is preceded by a DELIMITER_QUOTE. */ ptrdiff_t getshline (char **_lineptr, size_t *_n, FILE *_stream); ptrdiff_t getshdelim (char **_lineptr, size_t *_n, int _delimiter, int _delimiter_quote, int _commentor, FILE *_stream); /* These routines are the pending of the above routines, keeping * track of the meaning full line interval read. When calling them * *LASTLINE should be the number of the last line read (hence 0 * for the first line), upon return, *FIRSTLINE is the line number * where begun the line returned, and *LASTLINE, the line number * where it ended */ /* A basic example is available at the bottom of getshline.c */ ptrdiff_t getshline_numbered (unsigned *_firstline, unsigned *_lastline, char **_lineptr, size_t *_n, FILE *_stream); ptrdiff_t getshdelim_numbered (unsigned *_firstline, unsigned *_lastline, char **_lineptr, size_t *_n, int _delimiter, int _delimiter_quote, int _commentor, FILE *_stream); #endif /* not defined(_GETSHLINE_H_) */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/hashtab.c�����������������������������������������������������������������������0000644�0000000�0000000�00000017304�14251173035�012462� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* hashtab.c - hash table maintenance Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Greg McGary */ #include <config.h> #include <stdio.h> #include <stdlib.h> #include "hashtab.h" #include "xalloc.h" static void hash_rehash (struct hash_table_s* ht); static unsigned long round_up_2 (unsigned long rough); /* Implement double hashing with open addressing. The table size is always a power of two. The secondary (`increment') hash function is forced to return an odd-value, in order to be relatively prime to the table size. This guarantees that the increment can potentially hit every slot in the table during collision resolution. */ void *hash_deleted_item = &hash_deleted_item; /* Force the table size to be a power of two, possibly rounding up the given size. */ void hash_init (struct hash_table_s* ht, unsigned long size, hash_func_t hash_1, hash_func_t hash_2, hash_cmp_func_t hash_cmp) { ht->ht_size = round_up_2 (size); if (ht->ht_size > (128 * 1024)) /* prevent size from getting out of hand */ ht->ht_size /= 2; ht->ht_vec = (void**) XCALLOC (ht->ht_size, struct token *); ht->ht_capacity = ht->ht_size * 15 / 16; /* 93.75% loading factor */ ht->ht_fill = 0; ht->ht_collisions = 0; ht->ht_lookups = 0; ht->ht_rehashes = 0; ht->ht_hash_1 = hash_1; ht->ht_hash_2 = hash_2; ht->ht_compare = hash_cmp; } /* Load an array of items into `ht'. */ void hash_load (struct hash_table_s* ht, void *item_table, unsigned long cardinality, unsigned long size) { char *items = (char *) item_table; while (cardinality--) { hash_insert (ht, items); items += size; } } /* Returns the address of the table slot matching `key'. If `key' is not found, return the address of an empty slot suitable for inserting `key'. The caller is responsible for incrementing ht_fill on insertion. */ void ** hash_find_slot (struct hash_table_s* ht, void const *key) { void **slot; void **deleted_slot = 0; unsigned long hash_2 = 0; unsigned long hash_1 = (*ht->ht_hash_1) (key); ht->ht_lookups++; for (;;) { hash_1 %= ht->ht_size; slot = &ht->ht_vec[hash_1]; if (*slot == 0) return deleted_slot ? deleted_slot : slot; if (*slot == hash_deleted_item) { if (deleted_slot == 0) deleted_slot = slot; } else { if (key == *slot) return slot; if ((*ht->ht_compare) (key, *slot) == 0) return slot; ht->ht_collisions++; } if (!hash_2) hash_2 = (*ht->ht_hash_2) (key) | 1; hash_1 += hash_2; } } void * hash_find_item (struct hash_table_s* ht, void const *key) { void **slot = hash_find_slot (ht, key); return ((HASH_VACANT (*slot)) ? 0 : *slot); } void * hash_insert (struct hash_table_s* ht, void *item) { void **slot = hash_find_slot (ht, item); return hash_insert_at (ht, item, slot); } void * hash_insert_at (struct hash_table_s* ht, void *item, void const *slot) { void *old_item = *(void **) slot; if (HASH_VACANT (old_item)) { ht->ht_fill++; old_item = item; } *(void const **) slot = item; if (ht->ht_fill >= ht->ht_capacity) hash_rehash (ht); return old_item; } void * hash_delete (struct hash_table_s* ht, void const *item) { void **slot = hash_find_slot (ht, item); return hash_delete_at (ht, slot); } void * hash_delete_at (struct hash_table_s* ht, void const *slot) { void *item = *(void **) slot; if (!HASH_VACANT (item)) { *(void const **) slot = hash_deleted_item; ht->ht_fill--; return item; } else return 0; } void hash_delete_items (struct hash_table_s* ht) { void **vec = ht->ht_vec; void **end = &vec[ht->ht_size]; for (; vec < end; vec++) *vec = 0; ht->ht_fill = 0; ht->ht_collisions = 0; ht->ht_lookups = 0; ht->ht_rehashes = 0; } void hash_map (struct hash_table_s *ht, hash_map_func_t map) { void **slot; void **end = &ht->ht_vec[ht->ht_size]; for (slot = ht->ht_vec; slot < end; slot++) { if (!HASH_VACANT (*slot)) (*map) (*slot); } } /* Double the size of the hash table in the event of overflow... */ static void hash_rehash (struct hash_table_s* ht) { unsigned long old_ht_size = ht->ht_size; void **old_vec = ht->ht_vec; void **ovp; void **slot; ht->ht_size *= 2; ht->ht_rehashes++; ht->ht_capacity = ht->ht_size - (ht->ht_size >> 4); ht->ht_vec = (void **) XCALLOC (ht->ht_size, struct token *); for (ovp = old_vec; ovp < &old_vec[old_ht_size]; ovp++) { if (*ovp == 0) continue; slot = hash_find_slot (ht, *ovp); *slot = *ovp; } } void hash_print_stats (struct hash_table_s *ht, FILE *out_FILE) { fprintf (out_FILE, "Load=%lu/%lu=%.0f%%, ", ht->ht_fill, ht->ht_size, 100.0 * (double) ht->ht_fill / (double) ht->ht_size); fprintf (out_FILE, "Rehash=%u, ", ht->ht_rehashes); fprintf (out_FILE, "Collisions=%lu/%lu=%.0f%%\n", ht->ht_collisions, ht->ht_lookups, (ht->ht_lookups ? (100.0 * (double) ht->ht_collisions / (double) ht->ht_lookups) : 0)); } /* Dump all items into a NULL-terminated vector. Use the user-supplied vector, or malloc one. */ void** hash_dump (struct hash_table_s *ht, void **vector_0, qsort_cmp_t compare) { void **vector; void **slot; void **end = &ht->ht_vec[ht->ht_size]; if (vector_0 == 0) vector_0 = XNMALLOC (ht->ht_fill + 1, void *); vector = vector_0; for (slot = ht->ht_vec; slot < end; slot++) if (!HASH_VACANT (*slot)) *vector++ = *slot; *vector = 0; if (compare) qsort (vector_0, ht->ht_fill, sizeof (void *), compare); return vector_0; } /* Dump all items on which SELECT returns non 0, into a NULL-terminated vector. Use the user-supplied vector, or malloc one. */ void** hash_dump_select (struct hash_table_s *ht, void **vector_0, hash_select_func_t select_fn, qsort_cmp_t compare) { void **slot; void **end = &ht->ht_vec[ht->ht_size]; int vector_0_malloced = 0; size_t fill = 0; /* Number of items in the result */ if (!select_fn) return hash_dump (ht, vector_0, compare); if (vector_0 == 0) { vector_0 = XNMALLOC (ht->ht_fill + 1, void *); vector_0_malloced = 1; } for (slot = ht->ht_vec; slot < end; slot++) if (!HASH_VACANT (*slot) && (*select_fn) (*slot)) vector_0 [fill++] = *slot; vector_0 [fill] = 0; if (vector_0_malloced) vector_0 = xnrealloc (vector_0, fill + 1, sizeof(void *)); if (compare && fill > 1) qsort (vector_0, fill, sizeof (void *), compare); return vector_0; } /* Call OUT_FN on all items (with extra ARG), sorted by COMPARE. */ void hash_maparg (struct hash_table_s *ht, hash_maparg_func_t map, void const * arg, qsort_cmp_t compare) { void **vector, **vector_0; vector_0 = hash_dump (ht, NULL, compare); for (vector = vector_0 ; *vector ; vector++) (*map) (*vector, arg); } /* Round a given number up to the nearest power of 2. */ _GL_ATTRIBUTE_CONST static unsigned long round_up_2 (unsigned long rough) { unsigned long round; round = 1; while (rough) { round <<= 1; rough >>= 1; } return round; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/hashtab.h�����������������������������������������������������������������������0000644�0000000�0000000�00000015625�14251132535�012473� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* hashtab.h - hash table maintenance Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* * This version has been modified by Akim Demaille <demaille@inf.enst.fr> * so that * - hash_out made to print a hash_table. */ #ifndef HASHTAB_H_ # define HASHTAB_H_ typedef unsigned long (*hash_func_t) (void const *key); typedef int (*hash_cmp_func_t) (void const *x, void const *y); typedef int (*hash_select_func_t) (void const *item); typedef void (*hash_map_func_t) (void const *item); typedef void (*hash_maparg_func_t) (void const *item, void const * arg); struct hash_table_s { void **ht_vec; unsigned long ht_size; /* total number of slots (power of 2) */ unsigned long ht_capacity; /* usable slots, limited by loading-factor */ unsigned long ht_fill; /* items in table */ unsigned long ht_collisions; /* # of failed calls to comparison function */ unsigned long ht_lookups; /* # of queries */ unsigned int ht_rehashes; /* # of times we've expanded table */ hash_func_t ht_hash_1; /* primary hash function */ hash_func_t ht_hash_2; /* secondary hash function */ hash_cmp_func_t ht_compare; /* comparison function */ }; typedef int (*qsort_cmp_t) (void const *, void const *); void hash_init (struct hash_table_s *ht, unsigned long size, hash_func_t hash_1, hash_func_t hash_2, hash_cmp_func_t hash_cmp); void hash_load (struct hash_table_s *ht, void *item_table, unsigned long cardinality, unsigned long size); void **hash_find_slot (struct hash_table_s *ht, void const *key); void *hash_find_item (struct hash_table_s *ht, void const *key); void *hash_insert (struct hash_table_s *ht, void *item); void *hash_insert_at (struct hash_table_s *ht, void *item, void const *slot); void *hash_delete (struct hash_table_s *ht, void const *item); void *hash_delete_at (struct hash_table_s *ht, void const *slot); void hash_delete_items (struct hash_table_s *ht); void hash_map (struct hash_table_s *ht, hash_map_func_t map); void hash_maparg (struct hash_table_s *ht, hash_maparg_func_t map, void const *arg, qsort_cmp_t compare); void hash_print_stats (struct hash_table_s *ht, FILE *out_FILE); void **hash_dump (struct hash_table_s *ht, void **vector_0, qsort_cmp_t compare); void **hash_dump_select (struct hash_table_s *ht, void **vector_0, hash_select_func_t select_fn, qsort_cmp_t compare); extern void *hash_deleted_item; # define HASH_VACANT(item) ((item) == 0 || (void *) (item) == hash_deleted_item) /* hash and comparison macros for string keys. */ # define STRING_HASH_1(_key_, _result_) do { \ unsigned char const *kk = (unsigned char const *) (_key_) - 1; \ while (*++kk) \ (_result_) += (typeof (_result_))(*kk << (kk[1] & 0xf)); \ } while (0) # define return_STRING_HASH_1(_key_) do { \ unsigned long result = 0; \ STRING_HASH_1 ((_key_), result); \ return result; \ } while (0) # define STRING_HASH_2(_key_, _result_) do { \ unsigned char const *kk = (unsigned char const *) (_key_) - 1; \ while (*++kk) \ (_result_) += (typeof (_result_))(*kk << (kk[1] & 0x7)); \ } while (0) # define return_STRING_HASH_2(_key_) do { \ unsigned long result = 0; \ STRING_HASH_2 ((_key_), result); \ return result; \ } while (0) # define STRING_COMPARE(_x_, _y_, _result_) do { \ char const *xx = (char const *) (_x_) - 1; \ char const *yy = (char const *) (_y_) - 1; \ do { \ if (*++xx == '\0') { \ yy++; \ break; \ } \ } while (*xx == *++yy); \ (_result_) = *xx - *yy; \ } while (0) # define return_STRING_COMPARE(_x_, _y_) do { \ int result; \ STRING_COMPARE (_x_, _y_, result); \ return result; \ } while (0) /* hash and comparison macros for string keys, case insensitive. */ # define STRING_CASE_HASH_1(_key_, _result_) do { \ unsigned char const *kk = (unsigned char const *) (_key_) - 1; \ while (*++kk) \ (_result_) += (unsigned long)(tolower (*kk) << (tolower (kk[1]) & 0xf)); \ } while (0) # define return_STRING_CASE_HASH_1(_key_) do { \ unsigned long result = 0; \ STRING_CASE_HASH_1 ((_key_), result); \ return result; \ } while (0) # define STRING_CASE_HASH_2(_key_, _result_) do { \ unsigned char const *kk = (unsigned char const *) (_key_) - 1; \ while (*++kk) \ (_result_) += (tolower(*kk) << (tolower(kk[1]) & 0x7)); \ } while (0) # define return_STRING_CASE_HASH_2(_key_) do { \ unsigned long result = 0; \ STRING_HASH_2 ((_key_), result); \ return result; \ } while (0) # define STRING_CASE_COMPARE(_x_, _y_, _result_) do { \ char const *xx = (char const *) (_x_) - 1; \ char const *yy = (char const *) (_y_) - 1; \ do { \ if (*++xx == '\0') { \ yy++; \ break; \ } \ yy++; \ } while (tolower (*xx) == tolower (*yy)); \ (_result_) = tolower(*xx) - tolower(*yy); \ } while (0) # define return_STRING_CASE_COMPARE(_x_, _y_) do { \ int result; \ STRING_CASE_COMPARE (_x_, _y_, result); \ return result; \ } while (0) /* hash and comparison macros for integer keys. */ # define INTEGER_HASH_1(_key_, _result_) do { \ (_result_) += ((unsigned long)(_key_)); \ } while (0) # define return_INTEGER_HASH_1(_key_) do { \ unsigned long result = 0; \ INTEGER_HASH_1 ((_key_), result); \ return result; \ } while (0) # define INTEGER_HASH_2(_key_, _result_) do { \ (_result_) += ~((unsigned long)(_key_)); \ } while (0) # define return_INTEGER_HASH_2(_key_) do { \ unsigned long result = 0; \ INTEGER_HASH_2 ((_key_), result); \ return result; \ } while (0) # define INTEGER_COMPARE(_x_, _y_, _result_) do { \ (_result_) = _x_ - _y_; \ } while (0) # define return_INTEGER_COMPARE(_x_, _y_) do { \ int result; \ INTEGER_COMPARE (_x_, _y_, result); \ return result; \ } while (0) /* hash and comparison macros for address keys. */ # define ADDRESS_HASH_1(_key_, _result_) INTEGER_HASH_1 (((unsigned long)(_key_)) >> 3, (_result_)) # define ADDRESS_HASH_2(_key_, _result_) INTEGER_HASH_2 (((unsigned long)(_key_)) >> 3, (_result_)) # define ADDRESS_COMPARE(_x_, _y_, _result_) INTEGER_COMPARE ((_x_), (_y_), (_result_)) # define return_ADDRESS_HASH_1(_key_) return_INTEGER_HASH_1 (((unsigned long)(_key_)) >> 3) # define return_ADDRESS_HASH_2(_key_) return_INTEGER_HASH_2 (((unsigned long)(_key_)) >> 3) # define return_ADDRESS_COMPARE(_x_, _y_) return_INTEGER_COMPARE ((_x_), (_y_)) #endif /* not _HASHTAB_H_ */ �����������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/jobs.c��������������������������������������������������������������������������0000644�0000000�0000000�00000022562�14364476172�012024� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* jobs.c - recording information about the print jobs Copyright 1995-2023 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <assert.h> #include <locale.h> #include <math.h> #include <paper.h> #include "a2ps.h" #include "jobs.h" #include "routines.h" #include "xstrrpl.h" #include "hashtab.h" #include "useropt.h" #include "caret.h" #include "metaseq.h" #include "message.h" #include "fonts.h" #include "faces.h" #include "prange.h" #include "stream.h" #include "fjobs.h" #include "lister.h" #include "quotearg.h" #include "userdata.h" #include "xgethostname.h" /************************************************************************ * Information about the user * ************************************************************************/ static inline void a2ps_job_register_user (a2ps_job *job) { { struct userdata u; userdata_get (&u); if (u.login) macro_meta_sequence_add (job, VAR_USER_LOGIN, u.login); if (u.name) macro_meta_sequence_add (job, VAR_USER_NAME, u.name); if (u.comments) macro_meta_sequence_add (job, VAR_USER_COMMENTS, u.comments); if (u.home) macro_meta_sequence_add (job, VAR_USER_HOME, u.home); } { char *host = xgethostname (); macro_meta_sequence_add (job, VAR_USER_HOST, host); } } /* * Set the array to NULL values */ static void tmpfiles_reset (struct a2ps_job * job) { size_t i; for (i = 0 ; i < cardinalityof (job->tmp_filenames) ; i ++) job->tmp_filenames [i] = NULL; } /* * Unlink all the (may be existing) temp files */ void a2ps_job_unlink_tmpfiles (struct a2ps_job * job) { size_t i; /* That of the structure */ for (i = 0 ; i < cardinalityof (job->tmp_filenames) ; i ++) if (job->tmp_filenames[i]) unlink (job->tmp_filenames[i]); /* That of the files */ da_map (job->jobs, (da_map_func_t) file_job_unlink_tmpfile); } /* * Create a new a2ps_job (corresponding to a single file produced) * and return it initialized (but default values: config files are * not read) */ a2ps_job * a2ps_job_new (void) { time_t tim; struct tm *tm; a2ps_job * res; char * cp; res = XMALLOC (a2ps_job); /* Specify the quotation style. */ set_quoting_style (NULL, escape_quoting_style); /* Set the NLS on */ setlocale (LC_TIME, ""); setlocale (LC_MESSAGES, ""); setlocale (LC_CTYPE, ""); bindtextdomain (PACKAGE, LOCALEDIR); bindtextdomain (PACKAGE "-gnulib", LOCALEDIR); textdomain (PACKAGE); /* Initialize tinyterm and lister. */ lister_initialize (NULL, stdout); lister_before_set (NULL, 2); /* Set verbosity level right now to help debugging through the envvar A2PS_VERBOSITY. */ msg_verbosity = 2; if ((cp = getenv ("A2PS_VERBOSITY")) && *cp) msg_verbosity = msg_verbosity_argmatch ("$A2PS_VERBOSITY", cp); /* The arguments */ res->argv = NULL; res->argc = 0; a2ps_common_reset (&res->common); res->file_command = NULL; /* Command to use to call file(1) */ /* * Data that library needs (mostly read from config files) */ res->media = new_medium_table (); /* Media list. */ assert (paperinit () == 0); /* Initialize libpaper. */ /* Add papers that libpaper knows about. */ for (const struct paper * paper = paperfirst(); paper != NULL; paper = papernext (paper)) { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wfloat-conversion" int w = rint (paperpswidth (paper)); int h = rint (paperpsheight (paper)); #pragma GCC diagnostic pop add_medium_with_default_margin (res, papername (paper), (unsigned) w, (unsigned) h); } /* Short cuts defined by the user */ res->user_options = user_options_table_new (); /* Honor what the user said in its environment */ if ((cp = getenv ("SIMPLE_BACKUP_SUFFIX"))) simple_backup_suffix = cp; res->backup_type = get_version ("$VERSION_CONTROL", getenv ("VERSION_CONTROL")); /* Get current time information */ tim = time (NULL); tm = localtime (&tim); memcpy (&(res->run_tm), tm, sizeof (*tm)); res->sheets = 0; res->pages = 0; res->lines_folded = 0; res->total_files = 0; res->orientation = portrait; res->duplex = simplex; res->columns = 1; res->rows = 1; res->madir = madir_rows; /* by default, write horizontally */ res->virtual = 0; res->copies = 1; res->margin = 0; /* Map to know where is the information related to the encodings */ res->encodings_map = encodings_map_new (); /* Chunk in which PS def of the fonts is stored */ res->ps_encodings = output_new ("PS encodings"); res->page_prefeed = false; /* No page prefeed */ /* Make sure not to be happy to use a not initialized array */ init_face_eo_font (res); /* virtual file name given to stdin */ res->stdin_filename = xstrdup ("stdin"); /* * Related to the output */ res->output_format = ps; /* By default, make PostScript */ /* Reset the printers modules */ res->printers = a2ps_printers_new (&res->common); res->output_stream = NULL; res->folding = true; /* Line folding option */ res->numbering = 0; /* Line numbering option */ res->unprintable_format = caret;/* Replace non printable char by ^M etc. */ res->interpret = true; /* Interpret TAB, FF and BS chars option */ res->print_binaries = false; /* Force printing for binary files */ /* Use default behavior from previous versions here. */ res->file_align = file_align_page; res->border = true; /* print the surrounding border ? */ res->debug = false; /* No debugging */ res->prolog = xstrdup ("bw"); /* default ps header file */ res->medium_request = LIBPAPER_MEDIUM;/* default paper is libpaper default */ res->medium = NULL; res->tabsize = 8; /* length of tabulations */ res->lines_requested = 0; /* lines per page */ res->columns_requested = 0; /* columns per page */ res->fontsize = 0.0; /* Size of a char for body font */ res->encoding = NULL; /* What is the current char set ? */ res->requested_encoding_name = NULL; /* Encoding requested by -X */ res->requested_encoding = NULL;/* Encoding requested by -X */ res->saved_encoding = NULL;/* Encoding requested by -X */ res->encodings = encodings_table_new (); /* Map to know the name of the files describing fonts */ res->fonts_map = fonts_map_new (); res->font_infos = font_info_table_new (); /* Title of the job */ res->title = xstrdup ("a2ps output"); /* Default title */ /* Headers and footers */ res->header = NULL; res->center_title = NULL; res->left_title = NULL; res->right_title = NULL; res->left_footer = NULL; res->footer = NULL; res->right_footer = NULL; res->water = NULL; * res->tag1 = '\0'; * res->tag2 = '\0'; * res->tag3 = '\0'; * res->tag4 = '\0'; /* Definition of the macro meta sequences */ res->macro_meta_sequences = macro_meta_sequence_table_new (); a2ps_job_register_user (res); /* Private info for PS generation */ res->status = new_ps_status(); /* Where the diverted output is stored */ res->divertion = output_new ("Main trunk"); /* Null tmp names. */ tmpfiles_reset (res); /* List of the pages to print */ res->page_range = page_range_new (); /* List of the jobs */ res->jobs = da_new ("List of the jobs", 10, da_linear, 10, (da_print_func_t) file_job_self_print, NULL); return res; } /* * Finish the initialization * Typically must be called after that the a2ps.cfg was read * so that the lib_path is known, so that the files to be * read at initialization time get read now */ void a2ps_job_finalize (struct a2ps_job * job) { /* Finalize the shared mem */ a2ps_common_finalize (&job->common, macro_meta_sequence_get (job, VAR_USER_HOME)); /* Finalize the printers module */ a2ps_printers_finalize (job->printers); /* Map to know where is the information related to the encodings */ load_main_encodings_map (job); /* Now that the encoding.map is read, make sure to update the encoding. It must be correct */ job->requested_encoding = get_encoding_by_alias (job, job->requested_encoding_name); if (!job->requested_encoding) error (EXIT_FAILURE, 0, _("unknown encoding `%s'"), quotearg (UNNULL (job->requested_encoding_name))); /* Get the right medium */ job->medium = a2ps_get_medium (job, job->medium_request); /* Map to know the name of the files describing fonts */ load_main_fonts_map (job); } /* * Print diagnostics and delete temp files */ void a2ps_job_free (struct a2ps_job * job) { if (msg_test (msg_file)) da_self_print (job->jobs, stderr); if (msg_test (msg_file)) output_self_print (job->divertion, stderr); /* Unlink and free the temporary files */ a2ps_job_unlink_tmpfiles (job); /* Shut down libpaper */ paperdone (); } ����������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/jobs.h��������������������������������������������������������������������������0000644�0000000�0000000�00000014017�14364456622�012023� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* jobs.h - recording information about the print jobs Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _JOBS_H_ #define _JOBS_H_ #include <time.h> #include "encoding.h" #include "output.h" #include "confg.h" #include "media.h" #include "darray.h" #include "gen.h" #include "psstat.h" #include "caret.h" #include "common.h" #include "printers.h" #include "backupfile.h" #include "madir.h" #include "filalign.h" struct stream; /* All the information on the current print job */ typedef struct a2ps_job { char ** argv; /* The command line */ int argc; struct a2ps_common_s common; /* Common data to several modules */ char * file_command; /* Command to use to call file(1) */ /* Global information that the library needs */ hash_table * media; /* Definition of the media */ struct pair_htable * user_options; /* Short cuts defined by the user */ /* Relative to the whole process */ struct tm run_tm; /* Time when this program is run */ enum backup_type backup_type; /* When to backup output files */ size_t sheets; /* BEWARE: current PAGE number */ size_t pages; /* BEWARE: current VIRTUAL number */ size_t lines_folded; /* Number of lines that were folded */ size_t total_files; /* id but files */ ORIENTATION orientation; /* landscape mode ? */ enum duplex_e duplex; /* Recto verso printing ? */ size_t columns; /* number of columns/page */ size_t rows; /* number of rows/page */ madir_t madir; /* first rows, or columns? * (not major, because of a SunOS macro)*/ unsigned virtual; /* number of the virtual page on that sheet */ unsigned copies; /* number of copies */ unsigned margin; /* margin to leave for binding */ struct pair_htable * encodings_map;/* Content of the encoding.map file*/ struct output * ps_encodings; /* PS definition of the encodings used */ int page_prefeed; /* Page prefeed mecanism */ /* How to get the physical font (eg Courier), from the logical * (eg, Keyword) */ char * face_eo_font [NB_FACES]; char * stdin_filename; /* Filename given to stdin */ /* * Output related */ struct a2ps_printers_s * printers;/* The printers module */ enum output_format output_format; /* ps, eps etc. */ struct stream * output_stream;/* Where the result will be dumped */ bool folding; /* Line folding option */ unsigned numbering; /* Line numbering option */ /* Replace non printable char */ enum unprintable_format unprintable_format; int interpret; /* Interpret TAB, FF and BS chars option */ int print_binaries; /* Force printing for binary files */ file_align_t file_align; /* Policy of sharing medium b/t files. */ int border; /* print the surrounding border ? */ bool debug; /* Are we in debug mode? */ char * prolog; /* postscript header file */ struct medium * medium; /* Medium to use */ const char *medium_request; /* The name of the medium choosen */ unsigned tabsize; /* length of tabulations */ unsigned lines_requested; /* Number of line per page */ unsigned columns_requested; /* Number of columns per page */ float fontsize; /* Size of a char for body font */ struct encoding * encoding;/* What is the current char set ? */ char * requested_encoding_name;/* Because encoding.map has not been * read when reading the conf files, * we cannot store the result of -X<enc> * as an encoding */ struct encoding * requested_encoding;/* The main encoding (given by option) */ struct encoding * saved_encoding; /* Given by the options */ struct hash_table_s * encodings;/* The hash table of encodings yet read */ struct pair_htable * fonts_map;/* Aliases (to cope with MS_DOS) */ struct hash_table_s * font_infos; /* The HT of the afm for each file */ /* Headers and footers */ char * title; /* Job's title (eg. in %%Title: ) */ char * header; /* Allow different header text */ char * center_title; /* Allow different header text */ char * left_title; /* Allow different header text */ char * right_title; /* Allow different header text */ char * left_footer; /* Allow different header text */ char * footer; /* Allow different header text */ char * right_footer; /* Allow different footer text */ char * water; /* Water marks text */ /* Used to grab headers etc. from the file */ char tag1[256], tag2[256], tag3[256], tag4[256]; /* Definition of the macro meta sequences */ struct pair_htable * macro_meta_sequences; /* Private information on the PS generation engine */ struct ps_status * status; /* Where the output is diverted */ struct output * divertion; /* 10 temporary files */ char * tmp_filenames [10]; /* Interval of pages to print */ struct page_range * page_range; /* List of the jobs */ struct darray * jobs; } a2ps_job; /* liba2ps.h:begin */ /* Return a newly allocated output session storage */ struct a2ps_job * a2ps_job_new (void); /* Finalize it */ void a2ps_job_finalize (struct a2ps_job * job); /* Free the memory used by JOB */ void a2ps_job_free (struct a2ps_job * job); /* liba2ps.h:end */ #define CURRENT_FILE(j) \ ((struct file_job *) (j->jobs->content[j->jobs->len - 1])) #define FIRST_FILE(j) \ ((struct file_job *) (j->jobs->content[0])) /* Unlink everything that could have been used */ void a2ps_job_unlink_tmpfiles (struct a2ps_job * job); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/lexppd.c������������������������������������������������������������������������0000644�0000000�0000000�00000177470�14415562575�012374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#line 2 "lexppd.c" /* -*- c -*- */ /* * Lexer for PPD files. * * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <config.h> #include "a2ps.h" #include "lexppd.h" #include "ppd.h" #include "parseppd.h" #include "routines.h" #include "xobstack.h" #include "message.h" #include "pathwalk.h" #line 41 "lexppd.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer ppd_create_buffer #define yy_delete_buffer ppd_delete_buffer #define yy_scan_buffer ppd_scan_buffer #define yy_scan_string ppd_scan_string #define yy_scan_bytes ppd_scan_bytes #define yy_init_buffer ppd_init_buffer #define yy_flush_buffer ppd_flush_buffer #define yy_load_buffer_state ppd_load_buffer_state #define yy_switch_to_buffer ppd_switch_to_buffer #define yypush_buffer_state ppdpush_buffer_state #define yypop_buffer_state ppdpop_buffer_state #define yyensure_buffer_stack ppdensure_buffer_stack #define yy_flex_debug ppd_flex_debug #define yyin ppdin #define yyleng ppdleng #define yylex ppdlex #define yylineno ppdlineno #define yyout ppdout #define yyrestart ppdrestart #define yytext ppdtext #define yywrap ppdwrap #define yyalloc ppdalloc #define yyrealloc ppdrealloc #define yyfree ppdfree #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define ppd_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer ppd_create_buffer #endif #ifdef yy_delete_buffer #define ppd_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer ppd_delete_buffer #endif #ifdef yy_scan_buffer #define ppd_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer ppd_scan_buffer #endif #ifdef yy_scan_string #define ppd_scan_string_ALREADY_DEFINED #else #define yy_scan_string ppd_scan_string #endif #ifdef yy_scan_bytes #define ppd_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes ppd_scan_bytes #endif #ifdef yy_init_buffer #define ppd_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer ppd_init_buffer #endif #ifdef yy_flush_buffer #define ppd_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer ppd_flush_buffer #endif #ifdef yy_load_buffer_state #define ppd_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state ppd_load_buffer_state #endif #ifdef yy_switch_to_buffer #define ppd_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer ppd_switch_to_buffer #endif #ifdef yypush_buffer_state #define ppdpush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state ppdpush_buffer_state #endif #ifdef yypop_buffer_state #define ppdpop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state ppdpop_buffer_state #endif #ifdef yyensure_buffer_stack #define ppdensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack ppdensure_buffer_stack #endif #ifdef yylex #define ppdlex_ALREADY_DEFINED #else #define yylex ppdlex #endif #ifdef yyrestart #define ppdrestart_ALREADY_DEFINED #else #define yyrestart ppdrestart #endif #ifdef yylex_init #define ppdlex_init_ALREADY_DEFINED #else #define yylex_init ppdlex_init #endif #ifdef yylex_init_extra #define ppdlex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra ppdlex_init_extra #endif #ifdef yylex_destroy #define ppdlex_destroy_ALREADY_DEFINED #else #define yylex_destroy ppdlex_destroy #endif #ifdef yyget_debug #define ppdget_debug_ALREADY_DEFINED #else #define yyget_debug ppdget_debug #endif #ifdef yyset_debug #define ppdset_debug_ALREADY_DEFINED #else #define yyset_debug ppdset_debug #endif #ifdef yyget_extra #define ppdget_extra_ALREADY_DEFINED #else #define yyget_extra ppdget_extra #endif #ifdef yyset_extra #define ppdset_extra_ALREADY_DEFINED #else #define yyset_extra ppdset_extra #endif #ifdef yyget_in #define ppdget_in_ALREADY_DEFINED #else #define yyget_in ppdget_in #endif #ifdef yyset_in #define ppdset_in_ALREADY_DEFINED #else #define yyset_in ppdset_in #endif #ifdef yyget_out #define ppdget_out_ALREADY_DEFINED #else #define yyget_out ppdget_out #endif #ifdef yyset_out #define ppdset_out_ALREADY_DEFINED #else #define yyset_out ppdset_out #endif #ifdef yyget_leng #define ppdget_leng_ALREADY_DEFINED #else #define yyget_leng ppdget_leng #endif #ifdef yyget_text #define ppdget_text_ALREADY_DEFINED #else #define yyget_text ppdget_text #endif #ifdef yyget_lineno #define ppdget_lineno_ALREADY_DEFINED #else #define yyget_lineno ppdget_lineno #endif #ifdef yyset_lineno #define ppdset_lineno_ALREADY_DEFINED #else #define yyset_lineno ppdset_lineno #endif #ifdef yywrap #define ppdwrap_ALREADY_DEFINED #else #define yywrap ppdwrap #endif #ifdef yyalloc #define ppdalloc_ALREADY_DEFINED #else #define yyalloc ppdalloc #endif #ifdef yyrealloc #define ppdrealloc_ALREADY_DEFINED #else #define yyrealloc ppdrealloc #endif #ifdef yyfree #define ppdfree_ALREADY_DEFINED #else #define yyfree ppdfree #endif #ifdef yytext #define ppdtext_ALREADY_DEFINED #else #define yytext ppdtext #endif #ifdef yyleng #define ppdleng_ALREADY_DEFINED #else #define yyleng ppdleng #endif #ifdef yyin #define ppdin_ALREADY_DEFINED #else #define yyin ppdin #endif #ifdef yyout #define ppdout_ALREADY_DEFINED #else #define yyout ppdout #endif #ifdef yy_flex_debug #define ppd_flex_debug_ALREADY_DEFINED #else #define yy_flex_debug ppd_flex_debug #endif #ifdef yylineno #define ppdlineno_ALREADY_DEFINED #else #define yylineno ppdlineno #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires * access to the local variable yy_act. Since yyless() is a macro, it would break * existing scanners that call yyless() from OUTSIDE yylex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-yylineno scanner, because yy_act is * normally declared as a register variable-- so it is not worth it. */ #define YY_LESS_LINENO(n) \ do { \ int yyl;\ for ( yyl = n; yyl < yyleng; ++yyl )\ if ( yytext[yyl] == '\n' )\ --yylineno;\ }while(0) #define YY_LINENO_REWIND_TO(dst) \ do {\ const char *p;\ for ( p = yy_cp-1; p >= (dst); --p)\ if ( *p == '\n' )\ --yylineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart ( FILE *input_file ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); void yy_delete_buffer ( YY_BUFFER_STATE b ); void yy_flush_buffer ( YY_BUFFER_STATE b ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); void yypop_buffer_state ( void ); static void yyensure_buffer_stack ( void ); static void yy_load_buffer_state ( void ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); void *yyalloc ( yy_size_t ); void *yyrealloc ( void *, yy_size_t ); void yyfree ( void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif #define yytext_ptr yytext static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 43 #define YY_END_OF_BUFFER 44 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[115] = { 0, 2, 2, 0, 0, 0, 0, 41, 41, 44, 10, 2, 12, 11, 3, 11, 10, 4, 26, 13, 26, 40, 27, 43, 43, 41, 43, 10, 2, 12, 10, 10, 10, 10, 10, 10, 26, 25, 25, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 40, 39, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 0, 10, 0, 1, 0, 10, 10, 10, 10, 10, 14, 15, 28, 29, 42, 1, 10, 10, 10, 10, 10, 14, 15, 28, 29, 10, 7, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 5, 10, 9, 10, 8, 10, 6, 0 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 6, 7, 1, 8, 1, 1, 7, 7, 9, 7, 7, 1, 1, 10, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 13, 1, 1, 1, 1, 1, 1, 12, 12, 12, 14, 12, 15, 1, 1, 16, 1, 1, 1, 17, 18, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19, 1, 1, 1, 1, 20, 21, 22, 23, 24, 25, 1, 1, 26, 1, 27, 28, 29, 30, 31, 1, 1, 32, 1, 33, 34, 35, 1, 36, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const YY_CHAR yy_meta[37] = { 0, 1, 2, 3, 4, 4, 5, 4, 1, 1, 4, 6, 6, 7, 6, 6, 1, 1, 1, 8, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const flex_int16_t yy_base[129] = { 0, 0, 12, 5, 14, 23, 24, 6, 26, 125, 0, 27, 263, 121, 263, 263, 36, 263, 0, 263, 52, 0, 263, 78, 263, 120, 0, 0, 36, 263, 113, 97, 81, 79, 76, 80, 0, 0, 263, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 263, 93, 263, 263, 263, 263, 263, 263, 263, 263, 263, 0, 98, 91, 140, 36, 263, 42, 71, 65, 72, 70, 70, 80, 143, 79, 0, 80, 263, 63, 48, 52, 55, 51, 0, 0, 263, 263, 40, 0, 37, 42, 51, 40, 44, 48, 45, 31, 38, 41, 31, 44, 44, 27, 25, 17, 263, 22, 0, 5, 0, 1, 0, 263, 168, 176, 184, 192, 200, 208, 216, 224, 230, 238, 246, 24, 254, 17 } ; static const flex_int16_t yy_def[129] = { 0, 115, 115, 116, 116, 117, 117, 118, 118, 114, 119, 114, 114, 114, 114, 114, 119, 114, 120, 114, 121, 122, 114, 123, 114, 114, 124, 119, 114, 114, 125, 119, 119, 119, 119, 119, 120, 120, 114, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 122, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 126, 114, 124, 125, 127, 114, 127, 119, 119, 119, 119, 119, 120, 120, 114, 128, 124, 114, 119, 119, 119, 119, 119, 120, 120, 114, 114, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 114, 119, 119, 119, 119, 119, 119, 0, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114 } ; static const flex_int16_t yy_nxt[300] = { 0, 114, 11, 12, 11, 13, 14, 15, 25, 16, 17, 19, 26, 15, 11, 12, 11, 13, 14, 15, 19, 16, 17, 88, 20, 15, 22, 22, 25, 28, 77, 28, 26, 20, 113, 112, 22, 22, 28, 67, 28, 68, 23, 23, 30, 79, 111, 68, 110, 109, 31, 32, 33, 34, 35, 36, 108, 107, 38, 106, 105, 104, 103, 39, 102, 101, 100, 99, 98, 97, 96, 95, 40, 41, 94, 42, 43, 44, 93, 92, 91, 90, 45, 89, 46, 47, 78, 48, 49, 52, 87, 85, 84, 83, 82, 81, 80, 78, 53, 54, 63, 55, 56, 57, 76, 74, 73, 72, 58, 71, 59, 60, 70, 61, 62, 66, 67, 66, 68, 66, 66, 69, 63, 66, 29, 114, 66, 75, 75, 114, 75, 75, 114, 114, 114, 114, 75, 75, 75, 75, 75, 75, 66, 67, 66, 68, 66, 66, 114, 114, 66, 114, 114, 66, 86, 86, 114, 86, 86, 114, 114, 114, 114, 86, 86, 86, 86, 86, 86, 10, 10, 10, 10, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 21, 21, 21, 21, 21, 21, 21, 21, 24, 24, 24, 24, 24, 24, 24, 24, 27, 114, 114, 114, 114, 27, 114, 27, 36, 36, 36, 36, 114, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 50, 50, 114, 50, 50, 50, 51, 51, 114, 51, 51, 51, 51, 51, 64, 114, 114, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 66, 66, 66, 9, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114 } ; static const flex_int16_t yy_chk[300] = { 0, 0, 1, 1, 1, 1, 1, 1, 7, 1, 1, 3, 7, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 128, 3, 2, 5, 6, 8, 11, 126, 11, 8, 4, 112, 110, 5, 6, 28, 66, 28, 66, 5, 6, 16, 68, 108, 68, 106, 105, 16, 16, 16, 16, 16, 20, 104, 103, 20, 102, 101, 100, 99, 20, 98, 97, 96, 95, 94, 93, 92, 91, 20, 20, 89, 20, 20, 20, 84, 83, 82, 81, 20, 80, 20, 20, 78, 20, 20, 23, 76, 74, 73, 72, 71, 70, 69, 64, 23, 23, 63, 23, 23, 23, 52, 39, 35, 34, 23, 33, 23, 23, 32, 23, 23, 30, 30, 30, 30, 30, 30, 31, 25, 30, 13, 9, 30, 49, 49, 0, 49, 49, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, 65, 65, 65, 65, 65, 65, 0, 0, 65, 0, 0, 65, 75, 75, 0, 75, 75, 0, 0, 0, 0, 75, 75, 75, 75, 75, 75, 115, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118, 118, 119, 0, 0, 0, 0, 119, 0, 119, 120, 120, 120, 120, 0, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 0, 122, 122, 122, 123, 123, 0, 123, 123, 123, 123, 123, 124, 0, 0, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 127, 127, 127, 127, 127, 127, 127, 127, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114 } ; /* Table of booleans, true if rule could match eol. */ static const flex_int32_t yy_rule_can_match_eol[44] = { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "lexppd.l" #line 42 "lexppd.l" /* File currently parsed, and the path where to find PPD files. */ char * ppdfilename; char * const *ppdpath; int yylex (void); void yyerror (const char *); /* Initilizes the obstacks */ void ppdlex_initialize (void); /* Obstack for strings reading */ static struct obstack string_stack; /* Stack to handle included PPD files. */ #define MAX_INCLUDE_DEPTH 10 static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; static char *filename_stack[MAX_INCLUDE_DEPTH]; static int include_stack_ptr = 0; #line 891 "lexppd.c" #line 893 "lexppd.c" #define INITIAL 0 #define STATE_STRING 1 #define STATE_USTRING 2 #define STATE_INCLUDE 3 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( void ); int yyget_debug ( void ); void yyset_debug ( int debug_flag ); YY_EXTRA_TYPE yyget_extra ( void ); void yyset_extra ( YY_EXTRA_TYPE user_defined ); FILE *yyget_in ( void ); void yyset_in ( FILE * _in_str ); FILE *yyget_out ( void ); void yyset_out ( FILE * _out_str ); int yyget_leng ( void ); char *yyget_text ( void ); int yyget_lineno ( void ); void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( void ); #else extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT static void yyunput ( int c, char *buf_ptr ); #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( void ); #else static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } { #line 77 "lexppd.l" #line 1116 "lexppd.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 115 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 263 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { int yyl; for ( yyl = 0; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) yylineno++; ; } do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: /* rule 1 can match eol */ YY_RULE_SETUP #line 79 "lexppd.l" { ; } YY_BREAK case 2: YY_RULE_SETUP #line 80 "lexppd.l" { ; } YY_BREAK case 3: YY_RULE_SETUP #line 82 "lexppd.l" { BEGIN STATE_STRING; } YY_BREAK case 4: YY_RULE_SETUP #line 83 "lexppd.l" { BEGIN STATE_USTRING; } YY_BREAK case 5: YY_RULE_SETUP #line 84 "lexppd.l" { BEGIN STATE_INCLUDE; } YY_BREAK case 6: YY_RULE_SETUP #line 86 "lexppd.l" { return tDefaultFont; } YY_BREAK case 7: YY_RULE_SETUP #line 87 "lexppd.l" { return tFont; } YY_BREAK case 8: YY_RULE_SETUP #line 88 "lexppd.l" { return tModelName; } YY_BREAK case 9: YY_RULE_SETUP #line 89 "lexppd.l" { return tNickName; } YY_BREAK case 10: YY_RULE_SETUP #line 91 "lexppd.l" { yylval.string = xstrdup (yytext); return SYMBOL; } YY_BREAK case 11: YY_RULE_SETUP #line 95 "lexppd.l" { return yytext[0]; } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP #line 97 "lexppd.l" { return EOL; } YY_BREAK /* string of characters */ case 13: YY_RULE_SETUP #line 100 "lexppd.l" { /* return the string */ char * string; obstack_1grow (&string_stack, '\0'); string = obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.string = xstrdup (string); return STRING; } YY_BREAK case 14: YY_RULE_SETUP #line 114 "lexppd.l" { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 15: YY_RULE_SETUP #line 123 "lexppd.l" { int value = 0; char *cursor = yytext + 2; while (*cursor) if (*cursor >= 'a' && *cursor <= 'f') value = 16 * value + *cursor++ - 'a' + 10; else if (*cursor >= 'A' && *cursor <= 'F') value = 16 * value + *cursor++ - 'A' + 10; else value = 16 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 16: YY_RULE_SETUP #line 137 "lexppd.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 17: YY_RULE_SETUP #line 138 "lexppd.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 18: YY_RULE_SETUP #line 139 "lexppd.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 19: YY_RULE_SETUP #line 140 "lexppd.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 20: YY_RULE_SETUP #line 141 "lexppd.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 21: YY_RULE_SETUP #line 142 "lexppd.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 22: YY_RULE_SETUP #line 143 "lexppd.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 23: YY_RULE_SETUP #line 144 "lexppd.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 24: YY_RULE_SETUP #line 145 "lexppd.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 25: YY_RULE_SETUP #line 146 "lexppd.l" { obstack_1grow (&string_stack, yytext[1]); } YY_BREAK case 26: /* rule 26 can match eol */ YY_RULE_SETUP #line 148 "lexppd.l" { /* \n are legal in string */ obstack_grow (&string_stack, yytext, yyleng); } YY_BREAK /* string of characters */ case 27: /* rule 27 can match eol */ YY_RULE_SETUP #line 154 "lexppd.l" { /* return the string */ char * string; obstack_1grow (&string_stack, '\0'); string = obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.string = xstrdup (string); return USTRING; } YY_BREAK case 28: YY_RULE_SETUP #line 168 "lexppd.l" { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 29: YY_RULE_SETUP #line 177 "lexppd.l" { int value = 0; char *cursor = yytext + 2; while (*cursor) if (*cursor >= 'a' && *cursor <= 'f') value = 16 * value + *cursor++ - 'a' + 10; else if (*cursor >= 'A' && *cursor <= 'F') value = 16 * value + *cursor++ - 'A' + 10; else value = 16 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 30: YY_RULE_SETUP #line 191 "lexppd.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 31: YY_RULE_SETUP #line 192 "lexppd.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 32: YY_RULE_SETUP #line 193 "lexppd.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 33: YY_RULE_SETUP #line 194 "lexppd.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 34: YY_RULE_SETUP #line 195 "lexppd.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 35: YY_RULE_SETUP #line 196 "lexppd.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 36: YY_RULE_SETUP #line 197 "lexppd.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 37: YY_RULE_SETUP #line 198 "lexppd.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 38: YY_RULE_SETUP #line 199 "lexppd.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 39: YY_RULE_SETUP #line 200 "lexppd.l" { obstack_1grow (&string_stack, yytext[1]); } YY_BREAK case 40: YY_RULE_SETUP #line 202 "lexppd.l" { /* \n are legal in string */ obstack_grow (&string_stack, yytext, yyleng); } YY_BREAK /* Including another PPD file. */ case 41: YY_RULE_SETUP #line 209 "lexppd.l" { ; } /* eat the whitespace */ YY_BREAK case 42: YY_RULE_SETUP #line 210 "lexppd.l" { /* got the include file name */ if (include_stack_ptr >= MAX_INCLUDE_DEPTH) error (1, 0, _("too many includes")); include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; filename_stack[include_stack_ptr++] = ppdfilename; /* Skip the first quote, kill the last one. */ yytext ++; yytext [yyleng - 2] = 0; message (msg_file, (stderr, "%s:%d: includes %s\n", ppdfilename, ppdlineno, yytext)); /* Don't put the suffix, Adobe says it's part of the name. */ ppdfilename = xpw_find_included_file (ppdpath, ppdfilename, yytext, NULL); yyin = xrfopen (ppdfilename); yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE)); BEGIN(INITIAL); } YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(STATE_STRING): case YY_STATE_EOF(STATE_USTRING): case YY_STATE_EOF(STATE_INCLUDE): #line 234 "lexppd.l" { message (msg_file, (stderr, "End of PPD file `%s'.\n", ppdfilename)); if (--include_stack_ptr < 0) { yyterminate(); } else { fclose (yyin); yy_delete_buffer (YY_CURRENT_BUFFER); ppdfilename = filename_stack[include_stack_ptr]; yy_switch_to_buffer (include_stack[include_stack_ptr]); message (msg_file, (stderr, "Back to file `%s'.\n", ppdfilename)); } } YY_BREAK case 43: YY_RULE_SETUP #line 250 "lexppd.l" ECHO; YY_BREAK #line 1518 "lexppd.c" case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { yy_state_type yy_current_state; char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 115 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; char *yy_cp = (yy_c_buf_p); YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 115 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 114); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT static void yyunput (int c, char * yy_bp ) { char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; if ( c == '\n' ){ --yylineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) yylineno++; ; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf ); yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr ) { return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg ) { fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param _line_number line number * */ void yyset_lineno (int _line_number ) { yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str ) { yyin = _in_str ; } void yyset_out (FILE * _out_str ) { yyout = _out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int _bdebug ) { yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ /* We do not touch yylineno unless the option is enabled. */ yylineno = 1; (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 250 "lexppd.l" int yywrap (void) { return 1; } /* * Initialize the obstacks */ void ppdlex_initialize (void) { static int first_time = 1; if (first_time) { first_time = 0; obstack_init (&string_stack); } /* Reset the include stack. */ include_stack_ptr = 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/lexppd.h������������������������������������������������������������������������0000644�0000000�0000000�00000002033�14235572622�012351� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lexppd.h - A Simple Lexer for PPD files Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LEXPPD_H_ # define LEXPPD_H_ #include "yy2ppd.h" /* Comes from the lexer */ extern int ppdlineno; /* File currently parsed. */ extern char * ppdfilename; /* The path where to look for files. */ extern char * const * ppdpath; #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/lexppd.l������������������������������������������������������������������������0000644�0000000�0000000�00000015226�14251132535�012356� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%top{ /* -*- c -*- */ /* * Lexer for PPD files. * * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <config.h> #include "a2ps.h" #include "lexppd.h" #include "ppd.h" #include "parseppd.h" #include "routines.h" #include "xobstack.h" #include "message.h" #include "pathwalk.h" } %{ /* File currently parsed, and the path where to find PPD files. */ char * ppdfilename; char * const *ppdpath; int yylex (void); void yyerror (const char *); /* Initilizes the obstacks */ void ppdlex_initialize (void); /* Obstack for strings reading */ static struct obstack string_stack; /* Stack to handle included PPD files. */ #define MAX_INCLUDE_DEPTH 10 static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; static char *filename_stack[MAX_INCLUDE_DEPTH]; static int include_stack_ptr = 0; %} %option yylineno %option prefix="ppd" %option outfile="lex.yy.c" %x STATE_STRING %x STATE_USTRING %x STATE_INCLUDE eol \n|\r\n comment \*%.*{eol} blank [ \t\f]* symbol [^/#, \t\r\f\n\":()+]* %% {comment} { ; } {blank} { ; } \" { BEGIN STATE_STRING; } \/ { BEGIN STATE_USTRING; } "*Include:" { BEGIN STATE_INCLUDE; } "*DefaultFont" { return tDefaultFont; } "*Font" { return tFont; } "*ModelName" { return tModelName; } "*NickName" { return tNickName; } {symbol} { yylval.string = xstrdup (yytext); return SYMBOL; } . { return yytext[0]; } {eol} { return EOL; } <STATE_STRING>{ /* string of characters */ \" { /* return the string */ char * string; obstack_1grow (&string_stack, '\0'); string = obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.string = xstrdup (string); return STRING; } \\[0-7]{1,3} { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } \\x[0-9a-fA-F]{1,2} { int value = 0; char *cursor = yytext + 2; while (*cursor) if (*cursor >= 'a' && *cursor <= 'f') value = 16 * value + *cursor++ - 'a' + 10; else if (*cursor >= 'A' && *cursor <= 'F') value = 16 * value + *cursor++ - 'A' + 10; else value = 16 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } \\a { obstack_1grow (&string_stack, '\007'); } \\b { obstack_1grow (&string_stack, '\b'); } \\d { obstack_1grow (&string_stack, 127); } \\e { obstack_1grow (&string_stack, 27); } \\f { obstack_1grow (&string_stack, '\f'); } \\n { obstack_1grow (&string_stack, '\n'); } \\r { obstack_1grow (&string_stack, '\r'); } \\t { obstack_1grow (&string_stack, '\t'); } \\v { obstack_1grow (&string_stack, '\v'); } \\. { obstack_1grow (&string_stack, yytext[1]); } [^\"]+ { /* \n are legal in string */ obstack_grow (&string_stack, yytext, yyleng); } } <STATE_USTRING>{ /* string of characters */ [:\n] { /* return the string */ char * string; obstack_1grow (&string_stack, '\0'); string = obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.string = xstrdup (string); return USTRING; } \\[0-7]{1,3} { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } \\x[0-9a-fA-F]{1,2} { int value = 0; char *cursor = yytext + 2; while (*cursor) if (*cursor >= 'a' && *cursor <= 'f') value = 16 * value + *cursor++ - 'a' + 10; else if (*cursor >= 'A' && *cursor <= 'F') value = 16 * value + *cursor++ - 'A' + 10; else value = 16 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } \\a { obstack_1grow (&string_stack, '\007'); } \\b { obstack_1grow (&string_stack, '\b'); } \\d { obstack_1grow (&string_stack, 127); } \\e { obstack_1grow (&string_stack, 27); } \\f { obstack_1grow (&string_stack, '\f'); } \\n { obstack_1grow (&string_stack, '\n'); } \\r { obstack_1grow (&string_stack, '\r'); } \\t { obstack_1grow (&string_stack, '\t'); } \\v { obstack_1grow (&string_stack, '\v'); } \\. { obstack_1grow (&string_stack, yytext[1]); } [^\n\\:]+ { /* \n are legal in string */ obstack_grow (&string_stack, yytext, yyleng); } } <STATE_INCLUDE>{ /* Including another PPD file. */ [ \t]* { ; } /* eat the whitespace */ \"[^ \t\n]+\" { /* got the include file name */ if (include_stack_ptr >= MAX_INCLUDE_DEPTH) error (1, 0, _("too many includes")); include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; filename_stack[include_stack_ptr++] = ppdfilename; /* Skip the first quote, kill the last one. */ yytext ++; yytext [yyleng - 2] = 0; message (msg_file, (stderr, "%s:%d: includes %s\n", ppdfilename, ppdlineno, yytext)); /* Don't put the suffix, Adobe says it's part of the name. */ ppdfilename = xpw_find_included_file (ppdpath, ppdfilename, yytext, NULL); yyin = xrfopen (ppdfilename); yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE)); BEGIN(INITIAL); } } <<EOF>> { message (msg_file, (stderr, "End of PPD file `%s'.\n", ppdfilename)); if (--include_stack_ptr < 0) { yyterminate(); } else { fclose (yyin); yy_delete_buffer (YY_CURRENT_BUFFER); ppdfilename = filename_stack[include_stack_ptr]; yy_switch_to_buffer (include_stack[include_stack_ptr]); message (msg_file, (stderr, "Back to file `%s'.\n", ppdfilename)); } } %% int yywrap (void) { return 1; } /* * Initialize the obstacks */ void ppdlex_initialize (void) { static int first_time = 1; if (first_time) { first_time = 0; obstack_init (&string_stack); } /* Reset the include stack. */ include_stack_ptr = 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/liba2ps.h�����������������������������������������������������������������������0000644�0000000�0000000�00000006054�14415562717�012424� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* -*- C -*- * liba2ps.h * * shared header with the whole package * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: liba2ps.h.in,v 1.1.1.1.2.1 2007/12/29 01:58:19 mhatta Exp $ */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef LIBA2PS_H_ #define LIBA2PS_H_ #undef __BEGIN_DECLS #undef __END_DECLS #ifdef __cplusplus # define __BEGIN_DECLS extern "C" { # define __END_DECLS } #else # define __BEGIN_DECLS /* empty */ # define __END_DECLS /* empty */ #endif __BEGIN_DECLS /* * A structure which records any global information liba2ps needs */ struct a2ps_job; /* File liba2ps.h.extract */ /* From faces.h */ /* * Available faces. No_face should never be given to liba2ps. */ enum face_e { No_face = -1, First_face = 0, Plain = 0, Keyword = 1, Keyword_strong = 2, Label = 3, Label_strong = 4, String = 5, Symbol = 6, Error = 7, Comment = 8, Comment_strong = 9, Last_face = 9 }; /* From gen.h */ /* Print a single char C in FACE */ void a2ps_print_char (struct a2ps_job * job, char c, enum face_e face); /* Print a C string (nul terminated) in FACE */ void a2ps_print_string (struct a2ps_job * job, const char * string, enum face_e face); /* Print the N chars contained in BUFFER, in FACE */ void a2ps_print_buffer (struct a2ps_job * job, const char * buffer, size_t start, size_t end, enum face_e face); /* Open/close the outer structure */ void a2ps_open_output_session (struct a2ps_job * job); void a2ps_close_output_session (struct a2ps_job * job); /* Open/Close the section structure */ void a2ps_open_input_session (struct a2ps_job * job, const char * name); void a2ps_close_input_session (struct a2ps_job * job); /* From jobs.h */ /* Return a newly allocated output session storage */ struct a2ps_job * a2ps_job_new (void); /* Finalize it */ void a2ps_job_finalize (struct a2ps_job * job); /* Free the memory used by JOB */ void a2ps_job_free (struct a2ps_job * job); /* From confg.h */ /* * Read the configuration file */ int a2_read_config (struct a2ps_job * job, const char *path, const char *file); /* * Read the system's configuration file * (i.e., a2_read_config (job, etc, a2ps.cfg)) */ void a2_read_sys_config (struct a2ps_job * job); __END_DECLS #endif /* !defined(LIBA2PS_H_) */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/liba2ps.h.extract���������������������������������������������������������������0000644�0000000�0000000�00000003207�14415562717�014072� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* From faces.h */ /* * Available faces. No_face should never be given to liba2ps. */ enum face_e { No_face = -1, First_face = 0, Plain = 0, Keyword = 1, Keyword_strong = 2, Label = 3, Label_strong = 4, String = 5, Symbol = 6, Error = 7, Comment = 8, Comment_strong = 9, Last_face = 9 }; /* From gen.h */ /* Print a single char C in FACE */ void a2ps_print_char (struct a2ps_job * job, char c, enum face_e face); /* Print a C string (nul terminated) in FACE */ void a2ps_print_string (struct a2ps_job * job, const char * string, enum face_e face); /* Print the N chars contained in BUFFER, in FACE */ void a2ps_print_buffer (struct a2ps_job * job, const char * buffer, size_t start, size_t end, enum face_e face); /* Open/close the outer structure */ void a2ps_open_output_session (struct a2ps_job * job); void a2ps_close_output_session (struct a2ps_job * job); /* Open/Close the section structure */ void a2ps_open_input_session (struct a2ps_job * job, const char * name); void a2ps_close_input_session (struct a2ps_job * job); /* From jobs.h */ /* Return a newly allocated output session storage */ struct a2ps_job * a2ps_job_new (void); /* Finalize it */ void a2ps_job_finalize (struct a2ps_job * job); /* Free the memory used by JOB */ void a2ps_job_free (struct a2ps_job * job); /* From confg.h */ /* * Read the configuration file */ int a2_read_config (struct a2ps_job * job, const char *path, const char *file); /* * Read the system's configuration file * (i.e., a2_read_config (job, etc, a2ps.cfg)) */ void a2_read_sys_config (struct a2ps_job * job); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/liba2ps.h.in��������������������������������������������������������������������0000644�0000000�0000000�00000002662�14251171030�013010� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* -*- C -*- * liba2ps.h * * shared header with the whole package * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: liba2ps.h.in,v 1.1.1.1.2.1 2007/12/29 01:58:19 mhatta Exp $ */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef LIBA2PS_H_ #define LIBA2PS_H_ #undef __BEGIN_DECLS #undef __END_DECLS #ifdef __cplusplus # define __BEGIN_DECLS extern "C" { # define __END_DECLS } #else # define __BEGIN_DECLS /* empty */ # define __END_DECLS /* empty */ #endif __BEGIN_DECLS /* * A structure which records any global information liba2ps needs */ struct a2ps_job; /* liba2ps.h:include:liba2ps.h.extract */ __END_DECLS #endif /* !defined(LIBA2PS_H_) */ ������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/lister.c������������������������������������������������������������������������0000644�0000000�0000000�00000040305�14367514174�012362� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lister.c - listing data in various formats Copyright 1998-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* This file still needs quite a lot of work. In particular, its interaction with tterm, and the fact that the user might want to use another stream than the one given at initialization. */ #include <config.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <inttypes.h> #include "xalloc.h" #include "tterm.h" #include "lister.h" /* Information about filling a column. */ struct world { size_t *widths; /* Array of the widths of the columns */ size_t width; /* Sum of the widths of the columns */ size_t valid_len; /* This world respects the width of the line */ }; /* All the needed information for multicolumn listings */ struct multicol { /* Number of spaces between columns. */ size_t between; /* Justification of the items. */ size_t justify; /* Array with information about column filledness. Indexed by the number of columns minus one (used for hypothetical reasonning. Only one is actually selected to print.) */ struct world *worlds; }; /* List with separators. See lister_print_separated for more information. */ struct separated { /* String between items. */ const char *separator; /* Spaces after the separator. */ size_t between; /* String after the last item. */ const char *final; }; struct lister { /* The tinyterm under which displays are done. */ struct tterm *tterm; /* Default output stream. */ FILE *stream; /* Default width function to be applied on items. */ lister_width_t width_fn; /* Default print function to be applied on items. */ lister_print_t print_fn; /* Number of spaces to leave at the beginning of the line. */ size_t before; /* Number of spaces to leave before the end of the line. */ size_t after; /* All the needed information for multicolumn listings. */ struct multicol multicol; /* All the needed information for separated listings. */ struct separated separated; }; /* Default setting */ static struct lister lister_default = { /* tterm. Lister's default tterm, is the default tterm */ NULL, /* stream. We cannot initialize statically to stdout, EGCS won't let us do. */ NULL, /* width_fn, print_fn */ (lister_width_t) strlen, (lister_print_t) fputs, /* Before, after */ 0, 0, /* multicol structure. */ { /* between, justify, worlds */ 2, lister_left, NULL }, /* separated structure. */ { /* separator, between, final. */ ",", 2, "." } }; /* Maximum number of columns ever possible for this display. */ static size_t max_idx; /* The minimum width of a colum is 1 character for the name. */ #define MIN_COLUMN_WIDTH 1 /* Initialize the LISTER for the STREAM. */ void lister_initialize (struct lister *lister, FILE *stream) { struct lister * l = lister ? lister : &lister_default; tterm_initialize (NULL, stream); l->stream = stream; } /* Assuming cursor is at position FROM, indent up to position TO. Use a TAB character instead of two or more spaces whenever possible. */ #define INDENT(_from_,_to_) \ do { \ size_t from = _from_; \ size_t to = _to_; \ while (from < to) \ { \ if (tabsize > 0 \ && to / tabsize > (from + 1) / tabsize) \ { \ putc ('\t', stream); \ from += tabsize - from % tabsize; \ } \ else \ { \ putc (' ', stream); \ from++; \ } \ } \ } while (0) /* FIXME: comment */ static void init_worlds (struct lister * l) { size_t i; size_t line_width = tterm_width (l->tterm); /* Prepare the structure to the maximum number of columns, hence do not depend on BEFORE, BETWEEN and AFTER which can change while running, but only on LINE_WIDTH which is a constant. */ if (l->multicol.worlds == NULL) { l->multicol.worlds = XNMALLOC (line_width, struct world); for (i = 0; i < line_width; ++i) l->multicol.worlds[i].widths = XNMALLOC (i + 1, size_t); } max_idx = ((line_width - l->before - l->after - l->multicol.between) / (MIN_COLUMN_WIDTH + l->multicol.between)); if (max_idx == 0) max_idx = 1; for (i = 0; i < max_idx; ++i) { size_t j; l->multicol.worlds[i].valid_len = 1; l->multicol.worlds[i].width = (i + 1) * MIN_COLUMN_WIDTH; for (j = 0; j <= i; ++j) l->multicol.worlds[i].widths[j] = MIN_COLUMN_WIDTH; } } /* Set the tiny term of LISTER to TTERM. Returns the previous value. */ struct tterm * lister_tterm_set (struct lister * lister, struct tterm *tterm) { struct lister * l = lister ? lister : &lister_default; struct tterm *old = l->tterm; l->tterm = tterm; return old; } /* Set the width of the white prefix in LISTER to SIZE. Returns the previous value. */ size_t lister_before_set (struct lister * lister, size_t size) { struct lister * l = lister ? lister : &lister_default; size_t old = l->before; l->before = size; return old; } /* Set the width of the white suffix in LISTER to SIZE. Returns the previous value. */ size_t lister_after_set (struct lister * lister, size_t size) { struct lister * l = lister ? lister : &lister_default; size_t old = l->after; l->after = size; return old; } static size_t lister_vertical_format (struct lister * l, void **items, size_t item_number, lister_width_t item_width_fn, struct world ** line_fmt) { size_t max_cols; /* Maximum number of columns usable */ size_t cols; size_t itemno; size_t item_width; struct multicol * m = &l->multicol; size_t available_width = tterm_width (l->tterm) - l->after - l->before; struct world * worlds = m->worlds; /* Normally the maximum number of columns is determined by the screen width. But if few files are available this might limit it as well. */ max_cols = max_idx > item_number ? item_number : max_idx; /* Compute the maximum number of possible columns. */ for (itemno = 0; itemno < item_number; ++itemno) { size_t i; item_width = item_width_fn (items[itemno]); for (i = 0; i < max_cols; ++i) { if (worlds[i].valid_len) { size_t effective_width = available_width - i * m->between; size_t idx = itemno / ((item_number + i) / (i + 1)); size_t real_width = item_width; if (real_width > worlds[i].widths[idx]) { worlds[i].width += (real_width - worlds[i].widths[idx]); worlds[i].widths[idx] = real_width; worlds[i].valid_len = worlds[i].width <= effective_width; } } } } /* Find maximum allowed columns. */ for (cols = max_cols; cols > 1; --cols) { if (worlds[cols - 1].valid_len) break; } *line_fmt = &worlds[cols - 1]; return cols; } void lister_fprint_vertical (struct lister * lister, _GL_UNUSED FILE *unused, void **items, size_t item_number, lister_width_t item_width_fn, lister_print_t item_print_fn) { struct world *line_fmt; size_t itemno; /* Index size_to files. */ size_t row; /* Current row. */ size_t col_width; /* Width of longest file name + frills. */ size_t item_width; /* Width of each file name + frills. */ size_t pos; /* Current character column. */ size_t cols; /* Number of files across. */ size_t rows; /* Maximum number of files down. */ struct lister * l = lister ? lister : &lister_default; struct multicol * m = &l->multicol; size_t tabsize = tterm_tabsize (l->tterm); FILE *stream = l->stream; init_worlds (l); /* If not known, compute the actually number of elements. FIXME: there are probably more intelligent scheme to get item_number on the fly, but currently it is need in lister_vertical_format real soon, so just compute it right now. */ if (item_number == (size_t) -1) { for (item_number = 0 ; items[item_number] ; item_number++) /* nothing */ ; } cols = lister_vertical_format (l, items, item_number, item_width_fn, &line_fmt); /* Calculate the number of rows that will be in each column except possibly for a short column on the right. */ rows = item_number / cols + (item_number % cols != 0); for (row = 0; row < rows; row++) { size_t col = 0; size_t nextpos, nextcolpos; itemno = row; /* Print the next row. */ pos = 0; nextcolpos = nextpos = l->before; while (1) { col_width = line_fmt->widths[col++]; item_width = (*item_width_fn) (items[itemno]); nextpos += (col_width - item_width) * m->justify /2 ; nextcolpos += col_width + m->between; INDENT (pos, nextpos); (*item_print_fn) (items[itemno], stream); itemno += rows; if (itemno >= item_number) break; pos = nextpos + item_width; nextpos = nextcolpos; } putc ('\n', stream); } } /* Same as LISTER_FPRINT_VERTICAL, but using LISTER's default value for width_fn and print_fn. */ void lister_print_vertical (struct lister *lister, void **items, size_t item_number) { struct lister *l = lister ? lister : &lister_default; lister_fprint_vertical (lister, NULL, items, item_number, l->width_fn, l->print_fn); } /* Listing in horizontal format. Columns are built to minimize the number of needed rows. For instance: +---------------------------+ | a bbbbb c dddddddd | | ee ff g h | | i j k lllllllllll | +---------------------------+ */ static size_t lister_horizontal_format (struct lister * l, void **items, size_t item_number, lister_width_t item_width_fn, struct world **line_fmt) { size_t max_cols; /* Maximum number of columns usable */ size_t cols; size_t itemno; size_t item_width; struct multicol * m = &l->multicol; size_t available_width = tterm_width (l->tterm) - l->after - l->before; struct world * worlds = m->worlds; /* Normally the maximum number of columns is determined by the screen width. But if few files are available this might limit it as well. */ max_cols = max_idx > item_number ? item_number : max_idx; /* Compute the maximum file name width. */ for (itemno = 0; itemno < item_number; ++itemno) { size_t i; item_width = (*item_width_fn) (items[itemno]); for (i = 0; i < max_cols; ++i) { if (worlds[i].valid_len) { size_t effective_width = available_width - i * m->between; size_t idx = itemno % (i + 1); size_t real_width = item_width; if (real_width > worlds[i].widths[idx]) { worlds[i].width += (real_width - worlds[i].widths[idx]); worlds[i].widths[idx] = real_width; worlds[i].valid_len = worlds[i].width <= effective_width; } } } } /* Find maximum allowed columns. */ for (cols = max_cols; cols > 1; --cols) { if (worlds[cols - 1].valid_len) break; } *line_fmt = &worlds[cols - 1]; return cols; } /* FIXME: document */ void lister_fprint_horizontal (struct lister * lister, _GL_UNUSED FILE *unused, void **items, size_t item_number, lister_width_t item_width_fn, lister_print_t item_print_fn) { struct world *line_fmt; size_t itemno; size_t col_width; size_t item_width; size_t cols; size_t pos; size_t nextpos, nextcolpos; struct lister * l = lister ? lister : &lister_default; struct multicol * m = &l->multicol; size_t tabsize = tterm_tabsize (l->tterm); FILE *stream = l->stream; init_worlds (l); /* If not known, compute the actually number of elements. FIXME: there are probably more intelligent scheme to get item_number on the fly, but currently it is need in lister_vertical_format real soon, so just compute it right now. */ if (item_number == (size_t) -1) { for (item_number = 0 ; items[item_number] ; item_number++) /* nothing */ ; } cols = lister_horizontal_format (l, items, item_number, item_width_fn, &line_fmt); /* Print first entry. */ pos = 0; nextcolpos = nextpos = l->before; /* Now the rest. */ for (itemno = 0; itemno < item_number; ++itemno) { size_t col = itemno % cols; item_width = strlen (items[itemno]); col_width = line_fmt->widths[col]; if (col == 0 && itemno != 0) { putc ('\n', stream); pos = 0; nextcolpos = nextpos = l->before; } nextpos += (col_width - item_width) * m->justify / 2; INDENT (pos, nextpos); (*item_print_fn) (items [itemno], stream); pos = nextpos + item_width; nextcolpos += col_width + m->between; nextpos = nextcolpos; } putc ('\n', stream); } /* Same as LISTER_FPRINT_HORIZONTAL, but using LISTER's default value for width_fn and print_fn. */ void lister_print_horizontal (struct lister *lister, void **items, size_t item_number) { struct lister *l = lister ? lister : &lister_default; lister_fprint_horizontal (lister, NULL, items, item_number, l->width_fn, l->print_fn); } /* Listing thing separated by spaces and strings. For instance: +------------------------------+ | one, two, three, four, five,| | six, seven, eight, nine, | | ten, eleven. | +------------------------------+ Note that in the first line, `,' is written though there is not enough room for the ` ' behind. Note also that `ten' is not written on the second line, because there is no room enough for the `,'. This corresponds to the settings: before = 2, after = 0, between_width = 1, between_string = `,' after_string = `.'. */ void lister_fprint_separated (struct lister * lister, _GL_UNUSED FILE *unused, void **items, size_t item_number, lister_width_t item_width_fn, lister_print_t item_print_fn) { size_t itemno; size_t pos; struct lister * l = lister ? lister : &lister_default; struct separated * s = &l->separated; size_t final_width = strlen (s->final); size_t separator_width = strlen (s->separator); size_t tabsize = tterm_tabsize (l->tterm); FILE *stream = l->stream; /* The BEFORE prefix must not be `smartly' hidden in line_width, since INDENT needs the absolute position on the screen in order to synchronize correctly the tabulations. */ size_t line_width = tterm_width (l->tterm) - l->after; size_t old_pos; pos = l->before; INDENT (0, pos); for (itemno = 0; (item_number != (size_t) -1 ? (itemno < item_number) : items[itemno] != NULL); itemno++) { old_pos = pos; pos += (*item_width_fn) (items[itemno]); pos += (itemno + 1 < item_number) ? separator_width : final_width; if (itemno) { if (pos + s->between > line_width) { putc ('\n', stream); INDENT (0, l->before); pos = pos - old_pos + l->before; } else { INDENT (old_pos, old_pos + s->between); pos += s->between; } } (*item_print_fn) (items[itemno], stream); fputs ((itemno + 1 < item_number) ? s->separator : s->final, stream); } putc ('\n', stream); } /* Same as LISTER_FPRINT_SEPARATED, but using LISTER's default value for width_fn and print_fn. */ void lister_print_separated (struct lister *lister, void **items, size_t item_number) { struct lister *l = lister ? lister : &lister_default; lister_fprint_separated (lister, NULL, items, item_number, l->width_fn, l->print_fn); } #ifdef TEST const char * program_name = "lister"; int main (int argc, char **argv) { static const char * liste[] = { "1", "22", "333", "4444", "55555", "666666", "7777777", "88888888", "999999999" }; lister_init (stdout); lister_fprint_separated (NULL, liste, sizeof (liste) / sizeof (*liste), strlen, fputs); return 0; } #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/lister.h������������������������������������������������������������������������0000644�0000000�0000000�00000005105�14251132535�012353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lister.h - listing data in various formats Copyright 1998-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LISTER_H_ #define LISTER_H_ enum lister_justification { lister_left = 0, lister_center = 1, lister_right = 2 }; struct lister; typedef size_t (*lister_width_t) (void const *item); typedef int (*lister_print_t) (void const *item, FILE *stream); /* Initialize the values taking the environment into account (for line width, and tabsize). */ void lister_initialize (struct lister *lister, FILE *stream); /* Set the tiny term of LISTER to TTERM. Returns the previous value. */ struct tterm *lister_tterm_set (struct lister *lister, struct tterm *tterm); /* Set the width of the white prefix in LISTER to SIZE. Returns the previous value. */ size_t lister_before_set (struct lister * lister, size_t size); /* Set the width of the white suffix in LISTER to SIZE. Returns the previous value. */ size_t lister_after_set (struct lister * lister, size_t size); void lister_fprint_horizontal (struct lister * lister, FILE * stream, void **items, size_t item_number, lister_width_t item_width_fn, lister_print_t item_print_fn); void lister_fprint_vertical (struct lister * lister, FILE * stream, void **items, size_t item_number, lister_width_t item_width_fn, lister_print_t item_print_fn); void lister_fprint_separated (struct lister * lister, FILE * stream, void **items, size_t item_number, lister_width_t item_width_fn, lister_print_t item_print_fn); /* Same as the previous functions, but using the default stream, width_fn and print_fn. */ void lister_print_vertical (struct lister * lister, void **items, size_t item_number); void lister_print_horizontal (struct lister * lister, void **items, size_t item_number); void lister_print_separated (struct lister * lister, void **items, size_t item_number); #endif /* ! LISTER_H_ */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/madir.c�������������������������������������������������������������������������0000644�0000000�0000000�00000002573�14235572622�012155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* madir.c - madir direction Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "madir.h" #include "argmatch.h" #include "routines.h" /* * Return a madir mode */ static const char *const madir_args[] = { "rows", "columns", 0 }; static madir_t madir_types[] = { madir_rows, madir_columns }; madir_t madir_argmatch (const char * option, const char * arg) { return XARGMATCH (option, arg, madir_args, madir_types); } const char * madir_to_string (madir_t madir) { switch (madir) { case madir_rows: return _("rows first"); case madir_columns: return _("columns first"); default: abort (); } } �������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/madir.h�������������������������������������������������������������������������0000644�0000000�0000000�00000002117�14235572622�012154� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* madir.h - madir direction Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MADIR_H_ # define MADIR_H_ 1 /* Should the virtual page go first to the left, or the bottom? */ typedef enum madir_e { madir_rows, madir_columns } madir_t; madir_t madir_argmatch (const char * option, const char * arg); const char * madir_to_string (madir_t madir); #endif /* !defined (MADIR_H_) */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/media.c�������������������������������������������������������������������������0000644�0000000�0000000�00000012453�14415557673�012147� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* media.c - used paper formats Copyright 1988-2023 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <paper.h> #include "a2ps.h" #include "media.h" #include "jobs.h" #include "routines.h" #include "lister.h" #include "quotearg.h" /************************************************************************/ /* medium selection */ /************************************************************************/ /************************************************************************ * Hash tables routines for the media * ************************************************************************/ /* * Used with the page device(-D), and status dict (-S) definitions */ static unsigned long medium_hash_1 (void const *key) { return_STRING_CASE_HASH_1 (((const struct medium *)key)->name); } static unsigned long medium_hash_2 (void const *key) { return_STRING_CASE_HASH_2 (((const struct medium *)key)->name); } static int medium_hash_cmp (void const *x, void const *y) { return_STRING_CASE_COMPARE (((const struct medium *)x)->name, ((const struct medium *)y)->name); } static int medium_hash_qcmp (void const *x, void const *y) { return_STRING_CASE_COMPARE ((*(struct medium * const *)x)->name, (*(struct medium * const *)y)->name); } /* Return the size of the name of the MEDIUM */ static size_t medium_name_len (struct medium * medium) { return strlen (medium->name); } /* Fputs the name of the MEDIUM on STREAM */ static int medium_name_fputs (struct medium * medium, FILE * stream) { return fputs (medium->name, stream); } /* * Add a medium */ void add_medium (struct a2ps_job * job, const char * name, unsigned w, unsigned h, unsigned llx, unsigned lly, unsigned urx, unsigned ury) { struct medium * a_medium = XMALLOC (struct medium); a_medium->name = xstrdup (name); a_medium->w = w; a_medium->h = h; a_medium->llx = llx; a_medium->lly = lly; a_medium->urx = urx; a_medium->ury = ury; hash_insert (job->media, a_medium); } /* * Add a medium with a margin of 24 points all round. */ void add_medium_with_default_margin (struct a2ps_job * job, const char * name, unsigned w, unsigned h) { unsigned margin = 24; unsigned llx, lly, urx = w, ury = h; llx = lly = margin; if (w > margin) urx = w - margin; if (h > margin) ury = h - margin; add_medium (job, name, w, h, llx, lly, urx, ury); } /* * Create the structure */ struct hash_table_s * new_medium_table (void) { struct hash_table_s * res; res = XMALLOC (struct hash_table_s); hash_init (res, 16, medium_hash_1, medium_hash_2, medium_hash_cmp); return res; } /* * Retrieve a medium */ struct medium * a2ps_get_medium (a2ps_job * job, const char * name) { struct medium *item; struct medium token; token.name = NULL; if (strcaseequ (name, LIBPAPER_MEDIUM)) token.name = (char *) systempapername (); if (!token.name) token.name = (char *) name; item = (struct medium *) hash_find_item (job->media, &token); if (item == NULL) error (1, 0, _("unknown medium `%s'"), quotearg (token.name)); return item; } /* Report the name of the media NAME, while decoding, if needed, the use of libpaper. */ const char * a2ps_get_medium_name (a2ps_job * job, const char * name) { struct medium * medium; /* We use the real name of the medium: that stored in the table, so that we get the correct case (Letter, instead of LeTTer). */ medium = a2ps_get_medium (job, name); return medium->name; } /* * List the media defined, with their dimensions. */ void list_media_long (a2ps_job * job, FILE * stream) { int i; struct medium ** media; media = (struct medium **) hash_dump (job->media, NULL, medium_hash_qcmp); fputs (_("Known Media"), stream); putc ('\n', stream); fprintf (stream, " %-10s\t%11s (%4s, %4s, %4s, %4s)\n", _("Name"), _("dimensions"), "llx", "lly", "urx", "ury"); for (i = 0 ; media[i] ; i++) fprintf (stream, " %-10s\t%4u x %4u (%4u, %4u, %4u, %4u)\n", media[i]->name, media[i]->w, media[i]->h, media[i]->llx, media[i]->lly, media[i]->urx, media[i]->ury); putc ('\n', stream); } /* * Give just the names of the known media */ void list_media_short (a2ps_job * job, FILE * stream) { struct medium ** media; media = (struct medium **) hash_dump (job->media, NULL, medium_hash_qcmp); fputs (_("Known Media"), stream); putc ('\n', stream); lister_fprint_vertical (NULL, stream, (void **) media, (size_t) -1, (lister_width_t) medium_name_len, (lister_print_t) medium_name_fputs); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/media.h�������������������������������������������������������������������������0000644�0000000�0000000�00000004021�14364475125�012136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* media.h - used paper formats Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _MEDIAS_H_ #define _MEDIAS_H_ #include "hashtab.h" struct a2ps_job; /* The name of the pseudo-medium that gives access to the choices set by libpaper. */ #define LIBPAPER_MEDIUM "libpaper" /* Definition of the media available */ struct medium { char * name; unsigned w; unsigned h; unsigned llx; unsigned lly; unsigned urx; unsigned ury; }; /* Possible orientations */ typedef enum { portrait, landscape } ORIENTATION; struct hash_table_s * new_medium_table (void); void free_medium_table (struct hash_table_s * table); struct medium * a2ps_get_medium (struct a2ps_job * job, const char *string); const char * a2ps_get_medium_name (struct a2ps_job * job, const char *string); bool a2ps_medium_libpaper_p (struct a2ps_job * job, const char * name); void add_medium (struct a2ps_job * job, const char * name, unsigned w, unsigned h, unsigned llx, unsigned lly, unsigned urx, unsigned ury); void add_medium_with_default_margin (struct a2ps_job * job, const char * name, unsigned w, unsigned h); void list_media_long (struct a2ps_job * job, FILE * stream); void list_media_short (struct a2ps_job * job, FILE * stream); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/message.c�����������������������������������������������������������������������0000644�0000000�0000000�00000005114�14251171071�012466� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* message.c - declaration for verbosity sensitive feedback function Copyright 1998-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <memory.h> #include <string.h> /* Jim Meyering writes: "... Some ctype macros are valid only for character codes that isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when using /bin/cc or gcc but without giving an ansi option). So, all ctype uses should be through macros like ISPRINT... If STDC_HEADERS is defined, then autoconf has verified that the ctype macros don't need to be guarded with references to isascii. ... Defining isascii to 1 should let any compiler worth its salt eliminate the && through constant folding." */ #define ISASCII(c) isascii((int) c) #define ISDIGIT(c) (ISASCII (c) && isdigit ((int) c)) /* We want strtok. */ #include "message.h" #include "argmatch.h" #include "getnum.h" /* The bigger, the more verbose. Should be set by application */ unsigned int msg_verbosity = 0; /* Decoce the ARG as a value for verbosity level, return the value. Use OPTION as the context name when raise an error. */ #define verbosity_sep ",:;+" /* Include the definition of the arguments/values to set the verbosity level. */ #include "msg.c" unsigned int msg_verbosity_argmatch (const char *option, char *arg) { unsigned res = 0; if (ISDIGIT (*arg)) { /* The verbosity is set through an integer value */ res = (unsigned) get_integer_in_range (option, arg, 0, 0, range_min); } else { /* Keywords are used to define verbosity level */ char *token = strtok (arg, verbosity_sep); do { res |= (unsigned) XARGMATCH (option, token, _msg_verbosity_args, _msg_verbosity_types); } while ((token = strtok (NULL, verbosity_sep))); } return res; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/message.h�����������������������������������������������������������������������0000644�0000000�0000000�00000003175�14251132535�012502� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* message.h - declaration for verbosity sensitive feedback function Copyright 1998-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MESSAGE_H_ # define MESSAGE_H_ /* The bigger, the more verbose. Should be set by application (default is 0, set to -1 for to messages) */ extern unsigned int msg_verbosity; /* Decode ARG which is the verbosity level wanted: either an integer specifying directly the bits, or using a comma separated list of token which are ARGMATCHed. */ unsigned msg_verbosity_argmatch (const char *option, char *arg); /* Return non null value if message at LVL should be displayed. */ # define msg_test(lvl) ((lvl) & msg_verbosity) /* fprintf (TEXT) at verbosity LEVEL. */ # define message(level,text) \ do { \ if (msg_test (level)) \ fprintf text; \ } while (0) /* Include the definition of the verbosity levels. This is application dependant. */ # include "msg.h" #endif /* not MESSAGE_H_ */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/metaseq.c�����������������������������������������������������������������������0000644�0000000�0000000�00000103357�14251203574�012515� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* metaseq.c - handling of the metasequences Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "routines.h" #include "jobs.h" #include "fjobs.h" #include "message.h" #include "metaseq.h" #include "xobstack.h" #include "pair_ht.h" #include "prange.h" #include "title.h" #define KEY_FORBIDDEN_CHARS ":(){}" /************************************************************************/ /* Handling the macro meta sequences */ /************************************************************************/ /* * Creation */ struct pair_htable * macro_meta_sequence_table_new (void) { return pair_table_new (); } /* * Check if is a valid name, and add. * (Note, strdup is done so that no memory is shared with key and value) * */ bool macro_meta_sequence_add (struct a2ps_job * job, const char * key, const char * value) { if (strpbrk (key, KEY_FORBIDDEN_CHARS)) return false; /* We want to remove any white space before the command */ pair_add (job->macro_meta_sequences, key, value + strspn (value, "\t ")); return true; } void macro_meta_sequence_delete (struct a2ps_job * job, const char * key) { pair_delete (job->macro_meta_sequences, key); } char * macro_meta_sequence_get (struct a2ps_job * job, const char * key) { return pair_get (job->macro_meta_sequences, key); } void macro_meta_sequences_list_short (struct a2ps_job * job, FILE * stream) { /* TRANS: Variables (formely called `macro meta sequences', eeeaerk) are things such as #(psnup) which is substituted to a bigger strings, e.g. -#v #?q|-q|| #?j|-d|| #?r||-c| -w#w -h#h */ fprintf (stream, _("Known Variables")); putc ('\n', stream); pair_table_list_short (job->macro_meta_sequences, stream); } void macro_meta_sequences_list_long (struct a2ps_job * job, FILE * stream) { title (stream, '=', true, _("Known Variables")); putc ('\n', stream); pair_table_list_long (job->macro_meta_sequences, stream); } /************************************************************************/ /* Expansion of a user string */ /************************************************************************/ /* * Help macros for expand_user_string () */ #define APPEND_CH(ch) \ do { \ int a; \ if (width && justification < 0) \ obstack_1grow (user_string_stack, ch); \ for (a = 0; a < (int) width - 1; a++) \ obstack_1grow (user_string_stack, padding); \ if (!width || justification > 0) \ obstack_1grow (user_string_stack, ch); \ } while (0) #define APPEND_STR(str) \ do { \ size_t len = strlen (str); \ size_t nspace; \ \ nspace = (len > width) ? 0 : (width - len); \ \ if (width && justification > 0) \ for (; nspace; nspace--) \ obstack_1grow (user_string_stack, padding); \ \ obstack_grow (user_string_stack, str, len); \ \ if (width && justification < 0) \ for (; nspace; nspace--) \ obstack_1grow (user_string_stack, padding); \ } while (0) /* * We can't use strtok, that would skip the empty fields */ #define SPLIT(to,sep,esc,cat) \ do { \ to = next ; \ next = strchr (next, sep); \ if (!next) \ error (1, 0, _("%s: missing `%c' for %s%c escape"), \ context_name, sep, esc, cat); \ *next++ = '\0'; \ } while (0) /* * An enumeration can be limited by the width. * If width = 0, no limit. * If width > 0, upper limit. * If width < 0, limit to n - width objects */ #define limit_by_width(_num_) \ (((width > 0) \ && (justification > 0) \ && (width < _num_)) \ ? width \ : ((width > 0) \ && (justification < 0) \ && (width <= _num_) \ ? (_num_ - width) \ : _num_)) #define fjob(_array_,_num_) \ ((struct file_job *) _array_->content [_num_]) /* * Using the data in JOB, and in the current FILE data descriptor, * expand the possilbity escaped STR in the current USER_STRING_STACK. * Use CONTEXT_NAME as a mean to report more understandable error/logs. */ static void grow_user_string_obstack (struct obstack * user_string_stack, struct a2ps_job * job, struct file_job * file, const char * context_name, const char * str) { const char * cp, * cp2; size_t i = 0, j; char padding = ' '; /* Char used to complete %20 (usually ` ' or `.' */ char buf[512], buf2[512], buf3[256]; size_t width = 0; int justification = 1; /* Format string. */ for (i = 0; str[i] != '\0'; i++) { int type; type = str[i]; if (type == '%' || type == '$' || type == '#' || type == '\\') { i++; width = 0; justification = 1; padding = ' '; /* Get optional width and justification. */ if (str[i] == '-') { i++; justification = -1; if (!isdigit ((int) str[i])) padding = str[i++]; } if (str[i] == '+') { i++; justification = 1; if (!isdigit ((int) str[i])) padding = str[i++]; } while (isdigit ((int) str[i])) width = width * 10 + (size_t) (str[i++] - '0'); /* Handle escapes. */ switch (type) { /* * # * # * # * # * # * # * # * * Only escapes */ case '\\': switch (str[i]) { case 'f': /* `\f' character \f */ APPEND_CH ('\f'); break; case 'n': /* `\n' character \n */ APPEND_CH ('\n'); break; default: APPEND_CH (str [i]); break; } break; /* * ### # * # # # * ### # * # * # ### * # # # * # ### * * Related to the whole context */ case '%': /* General state related %-escapes. */ switch (str[i]) { case '%': /* `%%' character `%' */ APPEND_CH ('%'); break; case '#': /* `%#': total number of files */ APPEND_CH (JOB_NB_FILES); break; case 'a': /* `%a' NLS'ed `printed by USERNAME */ sprintf (buf2, _("Printed by %s"), macro_meta_sequence_get (job, VAR_USER_NAME)); APPEND_STR (buf2); break; case 'A': /* `%A' NLS'ed `printed by USERNAME from MACHINE */ cp = macro_meta_sequence_get (job, VAR_USER_NAME); cp2 = macro_meta_sequence_get (job, VAR_USER_HOST); if (cp2) sprintf (buf3, _("Printed by %s from %s"), cp, cp2); else sprintf (buf3, _("Printed by %s"), cp); APPEND_STR (buf3); break; case 'c': /* `%c' trailing component of pwd. */ cp = getcwd (NULL, 0); if (!cp) error (1, errno, _("cannot get current working directory")); cp2 = strrchr (cp, DIRECTORY_SEPARATOR); if (cp2) cp2++; else cp2 = cp; APPEND_STR (cp2); break; case 'C': /* `%C' runtime in `hh:mm:ss' format */ sprintf (buf, "%d:%02d:%02d", job->run_tm.tm_hour, job->run_tm.tm_min, job->run_tm.tm_sec); APPEND_STR (buf); break; case 'd': /* `%d' current working directory */ cp = getcwd (NULL, 0); if (!cp) error (1, errno, _("cannot get current working directory")); APPEND_STR (cp); break; case 'D': if (str[i + 1] == '{') { /* `%D{}' format run date with strftime() */ for (j = 0, i += 2; j < sizeof (buf2) && str[i] && str[i] != '}'; i++, j++) buf2[j] = str[i]; if (str[i] != '}') error (1, 0, _("%s: too long argument for %s escape"), context_name, "%D{}"); buf2[j] = '\0'; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" strftime (buf, sizeof (buf), buf2, &job->run_tm); #pragma GCC diagnostic pop } else { /* `%D' run date in `yy-mm-dd' format */ sprintf (buf, "%02d-%02d-%02d", job->run_tm.tm_year % 100, job->run_tm.tm_mon + 1, job->run_tm.tm_mday); } APPEND_STR (buf); break; case 'e': /* `%e' run date in localized short format */ strftime (buf, sizeof (buf), /* Translators: please make a short date format * according to the std form in your language, using * the standard strftime(3) */ (_("%b %d, %Y")), &job->run_tm); APPEND_STR (buf); break; case 'E': /* `%E' run date in localized long format */ /* Translators: please make a long date format * according to the std form in your language, using * the standard strftime (3) */ strftime (buf, sizeof (buf), (_("%A %B %d, %Y")), &job->run_tm); APPEND_STR (buf); break; case 'F': /* `%F' run date in `dd.mm.yyyy' format */ sprintf (buf, "%d.%d.%d", job->run_tm.tm_mday, job->run_tm.tm_mon + 1, job->run_tm.tm_year+1900); APPEND_STR (buf); break; case 'm': /* `%m' the hostname up to the first `.' */ cp = macro_meta_sequence_get (job, VAR_USER_HOST); { char *cp3 = ALLOCA (char, strlen (cp) + 1); strcpy (cp3, cp); *strchrnul (cp3, '.') = '\0'; APPEND_STR (cp3); } break; case 'M': /* `%M' the full hostname */ APPEND_STR (macro_meta_sequence_get (job, VAR_USER_HOST)); break; case 'n': /* `%n' user's login */ APPEND_STR (macro_meta_sequence_get (job, VAR_USER_LOGIN)); break; case 'N': /* `%N' user's name */ APPEND_STR (macro_meta_sequence_get (job, VAR_USER_NAME)); break; case 'p': /* `%p' related to the pages of the job */ switch (str [++i]) { case '.': /* `%p.' current page number */ sprintf (buf, "%zu", job->pages); APPEND_STR (buf); break; case '#': /* `%p#' total number of pages */ APPEND_CH (JOB_NB_PAGES); break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "%p", str [i], str [i]); break; } break; case 'q': /* `%q' localized `Page %zu' */ sprintf (buf, _("Page %zu"), job->pages); APPEND_STR (buf); break; case 'Q': /* `%Q' localized `Page %d/%c' */ sprintf (buf, _("Page %zu/%c"), job->pages, JOB_NB_PAGES); APPEND_STR (buf); break; case 's': /* `%s' related to the sheets of the job */ switch (str [++i]) { case '.': /* `%s.' current sheet number */ sprintf (buf, "%zu", job->sheets); APPEND_STR (buf); break; case '#': /* `%s#' total number of sheets */ APPEND_CH (JOB_NB_SHEETS); break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "%s", str [i], str [i]); break; } break; case 't': /* `%t' runtime in 12-hour am/pm format */ sprintf (buf, "%d:%02d%s", job->run_tm.tm_hour > 12 ? job->run_tm.tm_hour - 12 : job->run_tm.tm_hour, job->run_tm.tm_min, job->run_tm.tm_hour > 12 ? "pm" : "am"); APPEND_STR (buf); break; case 'T': /* `%T' runtime in 24-hour format */ sprintf (buf, "%d:%02d", job->run_tm.tm_hour, job->run_tm.tm_min); APPEND_STR (buf); break; case '*': /* `%*' runtime in 24-hour format with secs */ sprintf (buf, "%d:%02d:%02d", job->run_tm.tm_hour, job->run_tm.tm_min, job->run_tm.tm_sec); APPEND_STR (buf); break; case 'V': /* `%V': name & version of this program */ sprintf (buf, "%s %s", PACKAGE, VERSION); APPEND_STR (buf); break; case 'W': /* `%W' run date in `mm/dd/yy' format */ sprintf (buf, "%02d/%02d/%02d", job->run_tm.tm_mon + 1, job->run_tm.tm_mday, job->run_tm.tm_year % 100); APPEND_STR (buf); break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "%", str[i], str[i]); break; } break; /* * ##### * # # # * # # * ##### * # # * # # # * ##### * * Related to the curent file */ case '$': /* Input file related $-escapes. */ switch (str[i]) { case '$': /* `$$' character `$' */ APPEND_CH ('$'); break; case '*': /* `$*' modif time in 24-hour format with secs */ sprintf (buf, "%d:%02d:%02d", file->mod_tm.tm_hour, file->mod_tm.tm_min, file->mod_tm.tm_sec); APPEND_STR (buf); break; case '(': /* $(ENVVAR) FIXME: Some day, remove in favor of ${} */ for (j = 0, i++; str[i] && str[i] != ')' && j < sizeof (buf) - 1; i++) buf[j++] = str[i]; if (str[i] == '\0') error (1, 0, _("%s: missing `%c' for %s%c escape"), context_name, ')', "$(", ')'); if (str[i] != ')') error (1, 0, _("%s: too long argument for %s escape"), context_name, "$()"); buf[j] = '\0'; cp = getenv (buf); if (cp) APPEND_STR (cp); break; case '{': /* ${ENVVAR} or ${ENVVAR:-word} or ${ENVVAR:+word} */ cp2 = NULL; for (j = 0 , i++ ; str[i] != '}' && j < sizeof (buf) - 1 ; i++) switch (str [i]) { case '\0': error (1, 0, _("%s: missing `%c' for %s%c escape"), context_name, '}', "${", '}'); break; case ':': /* End of the name of the envvar, * start getting the word */ buf[j++] = '\0'; cp2 = buf + j; break; default: buf[j++] = str[i]; break; } if (str[i] != '}') error (1, 0, _("%s: too long argument for %s escape"), context_name, "${}"); buf[j] = '\0'; /* Get the value of the env var */ cp = getenv (buf); if (IS_EMPTY (cp2)) { /* No word specified */ if (cp) APPEND_STR (cp); } else { /* A word is specified. See how it should be used */ switch (*cp2) { case '-': /* if envvar defined then value else word */ if (!IS_EMPTY (cp)) APPEND_STR (cp); else APPEND_STR (cp2 + 1); break; case '+': /* if defined, then word */ if (!IS_EMPTY (cp)) APPEND_STR (cp2 + 1); break; default: error (1, 0, _("%s: invalid separator `%s%c' for `%s' escape"), context_name, ":", *cp2, "${}"); } } break; case '[': /* `$[]' command line options */ if (!isdigit ((int) str[i])) error (1, 0, _("%s: invalid argument for %s%c escape"), context_name, "$[", ']'); { size_t value = 0; while (isdigit ((int) str[i])) value = value * 10 + (size_t) (str[i++] - '0'); if (str[i] == '\0') error (1, 0, _("%s: missing `%c' for %s%c escape"), context_name, ']', "$[", ']'); if (str[i] != ']') error (1, 0, _("%s: invalid argument for %s%c escape"), context_name, "$[", ']'); if (value < (size_t) job->argc) APPEND_STR (job->argv [value]); } break; case '#': /* `$#': input file number */ sprintf (buf, "%zu", file->num); APPEND_STR (buf); break; case 'C': /* `$C' modtime in `hh:mm:ss' format */ sprintf (buf, "%d:%02d:%02d", file->mod_tm.tm_hour, file->mod_tm.tm_min, file->mod_tm.tm_sec); APPEND_STR (buf); break; case 'd': /* `$d' directory part of the current file */ cp = strrchr (file->name, DIRECTORY_SEPARATOR); if (cp) { strncpy (buf, file->name, (size_t) (cp - file->name)); buf [cp - file->name] = '\0'; APPEND_STR (buf); } else { APPEND_CH ('.'); } break; case 'D': if (str[i + 1] == '{') { /* `$D{}' format modification date with strftime() */ for (j = 0, i += 2; j < sizeof (buf2) && str[i] && str[i] != '}'; i++, j++) buf2[j] = str[i]; if (str[i] != '}') error (1, 0, _("%s: too long argument for %s escape"), context_name, "$D{}"); buf2[j] = '\0'; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" strftime (buf, sizeof (buf), buf2, &(file->mod_tm)); #pragma GCC diagnostic pop } else { /* `$D' mod date in `yy-mm-dd' format */ sprintf (buf, "%02d-%02d-%02d", file->mod_tm.tm_year % 100, file->mod_tm.tm_mon + 1, file->mod_tm.tm_mday); } APPEND_STR (buf); break; case 'e': /* `$e' mod date in localized short format */ /* Translators: please make a short date format * according to the std form in your language, using * GNU strftime(3) */ strftime (buf, sizeof (buf), (_("%b %d, %Y")), &(file->mod_tm)); APPEND_STR (buf); break; case 'E': /* `$E' mod date in localized long format */ strftime (buf, sizeof (buf), /* Translators: please make a long date format * according to the std form in your language, using * GNU strftime(3) */ (_("%A %B %d, %Y")), &(file->mod_tm)); APPEND_STR (buf); break; case 'f': /* `$f' full file name */ APPEND_STR (file->name); break; case 'F': /* `$F' run date in `dd.mm.yyyy' format */ sprintf (buf, "%d.%d.%d", file->mod_tm.tm_mday, file->mod_tm.tm_mon + 1, file->mod_tm.tm_year+1900); APPEND_STR (buf); break; case 'l': /* `$l' related to the lines of the file */ switch (str [++i]) { case '^': /* $l^ top most line in the current page */ sprintf (buf, "%zu", file->top_line); APPEND_STR (buf); break; case '.': /* `$l.' current line */ sprintf (buf, "%zu", file->lines - 1); APPEND_STR (buf); break; case '#': /* `$l#' number of lines in this file */ if (file != CURRENT_FILE (job)) { /* This file is finised, we do know its real number of lines */ sprintf (buf, "%zu", file->lines); APPEND_STR (buf); } else { /* It is not know: delay it to the end of the job */ APPEND_CH (FILE_NB_LINES); } break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "$l", str [i], str [i]); break; } break; case 'N': /* `$N' input file name without suffix nor directory. */ /* First, skip dirname */ cp = strrchr (file->name, DIRECTORY_SEPARATOR); if (cp == NULL) cp = file->name; else cp ++; /* Then, until the last dot */ cp2 = strrchr (cp, '.'); if (cp2) { strncpy (buf, cp, (size_t) (cp2 - cp)); buf [cp2 - cp] = '\0'; APPEND_STR (buf); } else APPEND_STR (cp); break; case 'n': /* `$n' input file name without directory */ cp = strrchr (file->name, DIRECTORY_SEPARATOR); if (cp == NULL) cp = file->name; else cp ++; APPEND_STR (cp); break; case 'p': /* `$p' related to the pages of the file */ switch (str [++i]) { case '^': /* `$p^' first page number of this file * appearing in the current sheet */ sprintf (buf, "%zu", file->top_page); APPEND_STR (buf); break; case '-': /* `$p-' interval of the pages of the current file * appearing in the current sheet */ if (file->top_page == file->pages) sprintf (buf, "%zu", file->top_page); else sprintf (buf, "%zu-%zu", file->top_page, file->pages); APPEND_STR (buf); break; case '<': /* `$p<' first page number for this file */ sprintf (buf, "%zu", file->first_page); APPEND_STR (buf); break; case '.': /* `$p.' current page number */ sprintf (buf, "%zu", file->pages); APPEND_STR (buf); break; case '>': /* `$p>' last page number for this file */ if (file != CURRENT_FILE (job)) { /* This file is finised, we do know its last page */ sprintf (buf, "%zu", file->last_page); APPEND_STR (buf); } else { /* It is not know: delay it to the end of the job */ APPEND_CH (FILE_LAST_PAGE); } break; case '#': /* `$p#' total number of pages */ if (file != CURRENT_FILE (job)) { /* This file is finised, we do know its real number of pages */ sprintf (buf, "%zu", file->pages); APPEND_STR (buf); } else { /* It is not know: delay it to the end of the job */ APPEND_CH (FILE_NB_PAGES); } break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "$p", str [i], str [i]); break; } break; case 'q': /* `$q' localized `Page $p' */ sprintf (buf, _("Page %zu"), file->pages); APPEND_STR (buf); break; case 'Q': /* `$Q' localized `Page $p/$P' */ if (file != CURRENT_FILE (job)) /* This file is finised, we do know its real number of pages */ sprintf (buf, _("Page %zu/%zu"), file->pages, file->pages); else /* It is not know: delay it to the end of the job */ sprintf (buf, _("Page %zu/%c"), file->pages, FILE_NB_PAGES); APPEND_STR (buf); break; case 's': /* `$s' related to the sheets of the file */ switch (str [++i]) { case '<': /* `$s<' first sheet for this file */ sprintf (buf, "%zu", file->first_sheet); APPEND_STR (buf); break; case '.': /* `$s.' current sheet number */ sprintf (buf, "%zu", file->sheets); APPEND_STR (buf); break; case '>': /* `$s>' last sheet for this file */ if (file != CURRENT_FILE (job)) { /* This file is finised, we do know its last sheet */ sprintf (buf, "%zu", file->last_sheet); APPEND_STR (buf); } else { /* It is not know: delay it to the end of the job */ APPEND_CH (FILE_LAST_SHEET); } break; case '#': /* `$s#' total number of sheets */ if (file != CURRENT_FILE (job)) { /* This file is finised, we know its number of sheets */ sprintf (buf, "%zu", file->sheets); APPEND_STR (buf); } else { /* It is not know: delay it to the end of the job */ APPEND_CH (FILE_NB_SHEETS); } break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "$s", str [i], str [i]); break; } break; case 't': switch (str[i + 1]) { case '1': /* `$t1' first marker grabbed from file */ i++; APPEND_STR (job->tag1); break; case '2': /* `$t2' second marker grabbed from file */ i++; APPEND_STR (job->tag2); break; case '3': /* `$t3' third marker grabbed from file */ i++; APPEND_STR (job->tag3); break; case '4': /* `$t4' fourth marker grabbed from file */ i++; APPEND_STR (job->tag4); break; default: /* `$t' runtime in 12-hour am/pm format */ sprintf (buf, "%d:%02d%s", (file->mod_tm.tm_hour > 12 ?file->mod_tm.tm_hour-12 :file->mod_tm.tm_hour), file->mod_tm.tm_min, file->mod_tm.tm_hour > 12 ? "pm" : "am"); APPEND_STR (buf); } break; case 'T': /* `$T' runtime in 24-hour format */ sprintf (buf, "%d:%02d", file->mod_tm.tm_hour, file->mod_tm.tm_min); APPEND_STR (buf); break; case 'W': /* `$W' run date in `mm/dd/yy' format */ sprintf (buf, "%02d/%02d/%02d", file->mod_tm.tm_mon + 1, file->mod_tm.tm_mday, file->mod_tm.tm_year % 100); APPEND_STR (buf); break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "$", str[i], str[i]); break; } break; /* * # # * # # * ####### * # # * ####### * # # * # # */ case '#': switch (str[i]) { case '#': /* `##' character `#' */ APPEND_CH ('#'); break; case '(': /* #(macro meta sequence) */ /* FIXME: Some day should disapear in favor of #{} */ for (j = 0, i++; str[i] && str[i] != ')' && j < sizeof (buf) - 1; i++) buf[j++] = str[i]; if (str[i] == '\0') error (1, 0, _("%s: missing `%c' for %s%c escape"), context_name, ')', "#(", ')'); if (str[i] != ')') error (1, 0, _("%s: too long argument for %s escape"), context_name, "#()"); buf[j] = '\0'; cp = macro_meta_sequence_get (job, buf); if (cp) grow_user_string_obstack (user_string_stack, job, file, context_name, cp); break; case '{': /* #{macro} or #{macro:-word} or ${macro:+word} */ cp2 = NULL; for (j = 0 , i++ ; str[i] != '}' && j < sizeof (buf) - 1 ; i++) switch (str [i]) { case '\0': error (1, 0, _("%s: missing `%c' for %s%c escape"), context_name, '}', "#{", '}'); break; case ':': /* End of the name of the macro, * start getting the word */ buf[j++] = '\0'; cp2 = buf + j; break; default: buf[j++] = str[i]; break; } if (str[i] != '}') error (1, 0, _("%s: too long argument for %s escape"), context_name, "#{}"); buf[j] = '\0'; /* Get the value of the macro */ cp = macro_meta_sequence_get (job, buf); if (IS_EMPTY (cp2)) { /* No word specified */ if (cp) grow_user_string_obstack (user_string_stack, job, file, context_name, cp); } else { /* A word is specified. See how it should be used */ switch (*cp2) { case '-': /* if macro defined value else word */ if (!IS_EMPTY (cp)) grow_user_string_obstack (user_string_stack, job, file, context_name, cp); else APPEND_STR (cp2 + 1); break; case '+': /* if macro defined, word */ if (!IS_EMPTY (cp)) APPEND_STR (cp2 + 1); break; default: error (1, 0, _("%s: invalid separator `%s%c' for `%s' escape"), context_name, ":", *cp2, "#{}"); } } break; case '.': /* `#.' the usual extension for * current output language */ APPEND_STR ("ps"); break; case '?': /* `#?' if-then meta sequence */ { int test = 0; char cond, sep; char * if_true, * if_false; char * next; cond = str[++i]; sep = str[++i]; next = xstrdup(str + ++i); SPLIT (if_true, sep, "#?", cond); SPLIT (if_false, sep, "#?", cond); i += (size_t) (next - if_true - 1); switch (cond) { case '1': /* `#?1' Is the tag1 not empty? */ test = !IS_EMPTY(job->tag1); break; case '2': /* `#?2' Is the tag2 not empty? */ test = !IS_EMPTY(job->tag2); break; case '3': /* `#?3' Is the tag3 not empty? */ test = !IS_EMPTY(job->tag3); break; case '4': /* `#?4' Is the tag4 not empty? */ test = !IS_EMPTY(job->tag4); break; case 'd': /* `#?d' Double sided printing */ test = job->duplex == duplex || job->duplex == tumble; break; case 'j': /* `#?j' Bordering is asked (-j) */ test = job->border; break; case 'l': /* `#?l' in landscape */ test = job->orientation == landscape; break; case 'o': /* `#?o' Only one virtual page per page (-1) */ test = ((job->rows * job->columns) == 1); break; case 'p': /* `#?p' A page range is specified */ /* FIXME: May depend of other things (odd etc) */ test = page_range_applies_above (job->page_range, job->pages); break; case 'q': /* `#?q' in quiet mode */ test = msg_verbosity == 0; break; case 'r': /* `#?r' madir = row */ test = job->madir == madir_rows; break; case 'V': /* `#?V' verbose mode */ test = msg_test (msg_tool); break; case 'v': /* `#?v' on a verso side */ test = job->sheets & 0x1; break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "#?", cond, cond); break; } /* * One might think there are problem in recursing * grow_user_string_obstack, because of the static obstack. It * is true in general, but not for this precise case, where * the obstack will keep on growing in the same direction. */ if (test) grow_user_string_obstack (user_string_stack, job, file, context_name, if_true); else grow_user_string_obstack (user_string_stack, job, file, context_name, if_false); } break; case '!': /* `#!' a enumeration of a category */ { char category, sep; char * in, * between; char * next; category = str[++i]; sep = str[++i]; next = xstrdup(str + ++i); SPLIT (in, sep, "#!", category); SPLIT (between, sep, "#!", category); i += (size_t) (next - in - 1); switch (category) { case '$': /* `#!$': enumeration of the arguments */ { size_t fnum, fmax; fmax = limit_by_width ((size_t) job->argc); for (fnum = 0 ; fnum < fmax ; fnum++) { APPEND_STR (job->argv [fnum]); if (fnum < fmax - 1) grow_user_string_obstack (user_string_stack, job, fjob(job->jobs, fnum), context_name, between); } } break; case 'f': /* `#!f': enumeration of the input files */ { size_t fnum, fmax; fmax = limit_by_width (job->jobs->len); for (fnum = 0 ; fnum < fmax ; fnum++) { grow_user_string_obstack (user_string_stack, job, fjob(job->jobs, fnum), context_name, in); if (fnum < fmax - 1) grow_user_string_obstack (user_string_stack, job, fjob(job->jobs, fnum), context_name, between); } } break; case 'F': /* `#!F': enumeration of the input files * in alpha order */ { size_t fnum, fmax; struct darray * ordered; /* Make a ordered clone of the jobs array */ ordered = da_clone (job->jobs); ordered->cmp = (da_cmp_func_t) file_name_cmp; da_qsort (ordered); fmax = limit_by_width (job->jobs->len); for (fnum = 0 ; fnum < fmax ; fnum++) { grow_user_string_obstack (user_string_stack, job, fjob (ordered, fnum), context_name, in); if (fnum < fmax - 1) grow_user_string_obstack (user_string_stack, job, fjob (ordered, fnum), context_name, between); } } break; case 's': /* `#!s': enumeration of the input files * appearing in the current sheets */ { size_t fnum, fmax; struct darray * selected; /* Make a ordered clone of the jobs array */ selected = da_clone (job->jobs); /* Make the selection: * Only the files before this sheet are known, * so just test on the last page number */ fnum = 0 ; while (fnum < selected->len) { if (fjob (selected, fnum)->last_sheet < job->sheets) da_remove_at (selected, fnum); else fnum++; } fmax = limit_by_width (selected->len); for (fnum = 0 ; fnum < fmax ; fnum++) { grow_user_string_obstack (user_string_stack, job, fjob (selected, fnum), context_name, in); if (fnum < fmax - 1) grow_user_string_obstack (user_string_stack, job, fjob (selected, fnum), context_name, between); } } break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "#!", category, category); break; } } break; case 'f': /* `#f0' to `#f9': temporary file names */ { int k = str [++i] - '0'; if (k < 0 || 9 < k) error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "#f", str [i], str [i]); tempname_ensure (job->tmp_filenames [k]); APPEND_STR (job->tmp_filenames [k]); } break; case 'h': /* `#h' medium height in PS points */ sprintf (buf, "%u", job->medium->h); APPEND_STR (buf); break; case 'o': /* `#o' name of destination, before evaluation */ APPEND_STR (a2ps_printers_flag_output_name_get (job->printers)); break; case 'O': /* `#O' name of destination, after evaluation */ if (a2ps_printers_flag_output_is_printer_get (job->printers)) grow_user_string_obstack (user_string_stack, job, file, _("output command"), a2ps_printers_flag_output_name_get(job->printers)); else APPEND_STR (a2ps_printers_flag_output_name_get (job->printers)); break; case 'p': /* `#p' page range of what remains to be printed. * E.g. with a2ps -a2,4-, then #p on page 3 gives 2- */ page_range_to_buffer (job->page_range, buf, job->pages); APPEND_STR (buf); break; case 'v': /* `#v' number of virtual pages */ sprintf (buf, "%zu", job->rows * job->columns); APPEND_STR (buf); break; case 'w': /* `#w' medium width in PS points */ sprintf (buf, "%u", job->medium->w); APPEND_STR (buf); break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "#", str[i], str[i]); break; } break; } /* Reset width so the else-arm goes ok at the next round. */ width = 0; justification = 1; } else APPEND_CH (str[i]); } } /* The exported function. GIGO principle: if STR is NULL, output too. */ char * expand_user_string (struct a2ps_job * job, struct file_job * file, const char * context_name, const char * str) { static int first_time = 1; static struct obstack user_string_stack; char * res; if (first_time) { first_time = 0; obstack_init (&user_string_stack); } if (!str) return NULL; message (msg_meta, (stderr, "Expanding of %s user string (`%s')\n", context_name, str)); grow_user_string_obstack (&user_string_stack, job, file, context_name, str); obstack_1grow (&user_string_stack, '\0'); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wsign-conversion" res = obstack_finish (&user_string_stack); #pragma GCC diagnostic pop obstack_free (&user_string_stack, res); message (msg_meta, (stderr, "Expansion of %s (`%s') is `%s'\n", context_name, str, res)); return res; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/metaseq.h�����������������������������������������������������������������������0000644�0000000�0000000�00000004505�14251132535�012513� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* metaseq.h - handling of the metasequences Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _METASEQ_H_ #define _METASEQ_H_ struct a2ps_job; struct file_job; struct pair_htable; /* Macro meta sequences hash table */ struct pair_htable * macro_meta_sequence_table_new (void); /* Return true if valid definition, false otherwise */ bool macro_meta_sequence_add (struct a2ps_job * job, const char * key, const char * value); void macro_meta_sequence_delete (struct a2ps_job * job, const char * key); char * macro_meta_sequence_get (struct a2ps_job * job, const char * key); void macro_meta_sequences_list_short (struct a2ps_job * job, FILE * stream); void macro_meta_sequences_list_long (struct a2ps_job * job, FILE * stream); /* * Expand escape sequences in a string * Note: no malloc is done on the result! * The result must either be used before the following * call to expand_user_string, or strdup'ed */ char * expand_user_string (struct a2ps_job * job, struct file_job * file, const char * context_name, const char * str); /* Definition of the integer divertions */ #define JOB_NB_PAGES 1 #define JOB_NB_SHEETS 2 #define JOB_NB_FILES 3 #define FILE_NB_PAGES 4 #define FILE_NB_SHEETS 5 #define FILE_NB_LINES 6 #define FILE_LAST_PAGE 7 #define FILE_LAST_SHEET 8 #define VAR_USER_COMMENTS "user.comments" #define VAR_USER_HOME "user.home" #define VAR_USER_HOST "user.host" #define VAR_USER_LOGIN "user.login" #define VAR_USER_NAME "user.name" #define VAR_OPT_VIRTUAL_FORCE "opt.virtual.force" #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/msg.c���������������������������������������������������������������������������0000644�0000000�0000000�00000002614�14235572622�011643� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* msg.c - declaration for verbosity sensitive feedback function Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* This file should not be compiled, but included by message.c. */ /* Definition of the arguments/values for argmatching the verbosity level. */ #include <config.h> const char *const _msg_verbosity_args[] = { "sheets", "pathwalk", "pw", "encodings", "configuration", "options", "files", "tools", "fonts", "ppd", "variables", "meta-sequences", "parsers", "all", 0 }; const int _msg_verbosity_types[] = { msg_sheet, msg_pw, msg_pw, msg_enc, msg_opt, msg_opt, msg_file, msg_tool, msg_font, msg_ppd, msg_meta, msg_meta, msg_parse, msg_all }; ��������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/msg.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003351�14235572622�011647� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* msg.h - declaration for verbosity sensitive feedback function Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _MSG_H_ #define _MSG_H_ /* Definition of the verbosity levels. */ #define msg_null (0) /* Normal flow of messages * This one is painful, because we want it to be easy to understand as * -v0, -v1 and -v2 */ #define msg_report (1 << 0) #define msg_report2 (1 << 1) #define msg_report1 (msg_report2 | msg_report) /* Style sheets processing */ #define msg_sheet (1 << 2) /* Path walk function */ #define msg_pw (1 << 3) /* Encoding functions */ #define msg_enc (1 << 4) /* Options / Configuration */ #define msg_opt (1 << 5) /* Files related stuff */ #define msg_file (1 << 6) /* Tools (small routines) related stuff */ #define msg_tool (1 << 7) /* Font related stuff */ #define msg_font (1 << 8) /* PPD related */ #define msg_ppd (1 << 9) /* Meta sequences */ #define msg_meta (1 << 10) /* Any kind of parsers */ #define msg_parse (1 << 11) /* Report everything */ #define msg_all 0xFFFF #endif /* not MSG_H_ */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/options.c�����������������������������������������������������������������������0000644�0000000�0000000�00000050220�14415576613�012550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* options.c - read and understanding everything about the options Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /************************************************************************/ /* */ /* I n c l u d e f i l e s */ /* */ /************************************************************************/ #include <config.h> #include "a2ps.h" #include "routines.h" #include "options.h" #include "argmatch.h" #include "getopt.h" #include "caret.h" #include "message.h" #include "jobs.h" #include "useropt.h" #include "prange.h" #include "metaseq.h" #include "madir.h" #include "getnum.h" #include "argv.h" #include "quotearg.h" #include "filalign.h" #include "version-etc.h" #define MAN_LINES 66 /* no lines for a man */ extern char *program_name; /* * Hooks used */ option_hook handle_option_hook = NULL; static struct option const long_options[] = { /* Tasks */ {"help", no_argument, 0, 'h'}, {"guess", no_argument, 0, 138}, {"list", required_argument, 0, 145}, {"version", no_argument, 0, 'V'}, /* these ones are a courtesy for those who are used to enscript */ {"list-options", no_argument, 0, 139}, {"list-media", no_argument, 0, 161}, {"list-style-sheets", no_argument, 0, 162}, {"help-languages", no_argument, 0, 162}, {"help-pretty-print", no_argument, 0, 162}, /* Global */ {"macro-meta-sequence",required_argument, 0, 'D'}, {"variable", required_argument, 0, 'D'}, {"define", required_argument, 0, 'D'}, {"user-option", required_argument, 0, '='}, /* Pretty Print */ {"pretty-print", optional_argument, 0, 'E'}, /* PostScript */ {"ppd", optional_argument, 0, 163}, {"prologue", required_argument, 0, 134}, {"include", required_argument, 0, 134}, {"sides", required_argument, 0, 's'}, {"statusdict", required_argument, 0, 164}, {"setpagedevice", required_argument, 0, 'S'}, /* Not sorted yet */ {"columns", required_argument, 0, 132}, {"rows", required_argument, 0, 133}, {"compact", required_argument, 0, 'A'}, /* -A */ {"file-align", required_argument, 0, 'A'}, /* -A */ {"header", optional_argument, 0, 'b'}, {"no-header", no_argument, 0, 'B'}, {"truncate-lines", required_argument, 0, 151}, /* -c */ {"line-numbers", required_argument, 0, 152}, /* -C */ {"font-size", required_argument, 0, 'f'}, /* Obsolete, replaced by the following */ {"graphic-symbols", required_argument, 0, 154}, /* -g */ {"highlight-level", required_argument, 0, 173}, {"interpret", required_argument, 0, 155}, /* -i */ {"end-of-line", required_argument, 0, 169}, {"borders", required_argument, 0, 156}, /* -j */ {"page-prefeed", no_argument, 0, 'k'}, {"no-page-prefeed", no_argument, 0, 'K'}, {"lines-per-page", required_argument, 0, 'L'}, {"chars-per-line", required_argument, 0, 'l'}, {"catman", no_argument, 0, 'm'}, {"medium", required_argument, 0, 'M'}, /* Convenience for enscript users */ {"media", required_argument, 0, 'M'}, {"copies", required_argument, 0, 'n'}, {"output", required_argument, 0, 'o'}, {"printer", optional_argument, 0, 'P'}, {"quiet", no_argument, 0, 'q'}, {"silent", no_argument, 0, 'q'}, {"landscape", no_argument, 0, 'r'}, {"portrait", no_argument, 0, 'R'}, {"title", optional_argument, 0, 't'}, {"tabsize", required_argument, 0, 'T'}, {"underlay", required_argument, 0, 'u'}, {"verbose", optional_argument, 0, 'v'}, {"encoding", required_argument, 0, 'X'}, {"non-printable-format",required_argument, 0, 135}, {"print-anyway", required_argument, 0, 136}, {"center-title", optional_argument, 0, 149}, {"left-title", optional_argument, 0, 140}, {"right-title", optional_argument, 0, 141}, {"left-footer", optional_argument, 0, 142}, {"footer", optional_argument, 0, 143}, {"right-footer", optional_argument, 0, 144}, {"stdin", required_argument, 0, 166}, {"margin", optional_argument, 0, 147}, {"strip-level", required_argument, 0, 148}, {"major", required_argument, 0, 157}, {"version-control", required_argument, 0, 158}, {"suffix", required_argument, 0, 159}, {"debug", no_argument, 0, 146}, {"delegate", required_argument, 0, 160}, /* Courtesy for enscript */ {"pass-through", required_argument, 0, 160}, {"toc", optional_argument, 0, 167}, {"pages", optional_argument, 0, 'a'}, {"which", no_argument, 0, 137}, {"glob", no_argument, 0, 150}, /* Free: 165, 168, 170, 171, 172 Next to use is: 174 */ {NULL, 0, 0, 0} }; #define OPT_STRING \ "123456789=:A:a:b::BcCdD:E::f:gGhijkKl:L:mM:n:o:P:qrRs:S:t::T:u::v::VX:Z" /************************************************************************/ /* arguments */ /************************************************************************/ /************************************************************************/ /* Helping routines for the options' arguments */ /************************************************************************/ /* * What about the bools */ static const char *const bool_args[] = { "yes", "on", "1", "no", "off", "0", 0 }; static const bool bool_types[] = { true, true, true, false, false, false }; /* * Return the bool value */ bool a2ps_get_bool (const char *option, const char *arg) { //ARGMATCH_VERIFY (bool_args, bool_types); return XARGMATCH (option, arg, bool_args, bool_types); } /* --non-printable-format */ static const char *const non_printable_args[] = { "octal", "hexa", "emacs", "questionmark", "space", "white", "blank", "caret", 0 }; static const enum unprintable_format non_printable_types[] = { octal, hexa, Emacs, question_mark, space, space, space, caret }; /* --sides: Duplex, Simplex, Tumble. I don't want `DuplexTumble' and `DuplexNoTumble' because it makes too many characters of ambiguity. This way, the user can say `-sd' to mean `-sduplex'. */ static const char *const duplex_args[] = { "simplex", "1", "none", "duplex", "2", "tumble", 0 }; static const enum duplex_e duplex_types[] = { simplex, simplex, simplex, duplex, duplex, tumble }; /************************************************************************/ /* Handle the options */ /************************************************************************/ /* There is a difficult task which is expand the user options. Because one cannot make recursive calls to getopt, because it is better not to try to patch getopt, we do it in two steps. First call getopt to expand the options in pairs (option, argument). Second process these pairs of (option, argument). Since during the second step we are out of getopt, it is then safe to call getopt again, so there are no special problem in the handling of user options, even if user options use user options. This simple algorithm was suggested by Tristan Gingold. */ /* A link list of (option, argument) */ struct opt_optarg { int option; char *optarg; struct opt_optarg *next; }; int a2ps_handle_options (a2ps_job * job, int argc, char *argv[]) { struct opt_optarg *opt_optarg_head = NULL; struct opt_optarg *opt_optarg = NULL; int res; /* Reset optind so that getopt is reinitialized. */ optind = 0; while (1) { /* getopt_long stores the index of the option here. */ int option_index = 0; int option; struct opt_optarg *new; option = getopt_long (argc, argv, OPT_STRING, long_options, &option_index); if (option == '?') { /* Error message is done by getopt */ fprintf (stderr, _("Try `%s --help' for more information.\n"), program_name); exit (EXIT_FAILURE); } /* Store the pair. */ new = ALLOCA (struct opt_optarg, 1); new->option = option; new->optarg = optarg; new->next = NULL; if (!opt_optarg) { opt_optarg_head = new; opt_optarg = opt_optarg_head; } else { opt_optarg->next = new; opt_optarg = opt_optarg->next; } /* Exit at first non option. */ if (option == EOF) break; } /* When processing the options, getopt can be called (e.g., user options), so the global var optind (which specifies the rank of the first non option in argv) *will* be changed. We want to return its original value, not the one which can be defined here after. */ res = optind; /* Now process the options. */ for (opt_optarg = opt_optarg_head ; opt_optarg->option != EOF ; opt_optarg = opt_optarg->next) { optarg = opt_optarg->optarg; /* * First the option is passed to the application, in case * the application wants to redefine some options */ if (handle_option_hook && handle_option_hook (opt_optarg->option, optarg)) /* The option has been handled, continue processing */ continue; /* The option has not been recognized by the application, * let the lib handle it */ switch (opt_optarg->option) { #define define_nup(_col_,_row_,_orient_) \ job->columns = _col_; \ job->rows = _row_; \ job->orientation = _orient_; \ job->columns_requested = 80; \ job->lines_requested = 0; \ job->madir = madir_rows; case '1': /* 1 logical page per sheet */ define_nup (1, 1, portrait); break; case '2': /* twin pages */ define_nup (2, 1, landscape); break; case '3': /* 3 virtual pages */ define_nup (3, 1, landscape); break; case '4': /* 4 virtual pages */ define_nup (2, 2, portrait); break; case '5': /* 5 virtual pages */ define_nup (5, 1, landscape); break; case '6': /* 6 virtual pages */ define_nup (3, 2, landscape); break; case '7': /* 7 virtual pages */ define_nup (7, 1, landscape); break; case '8': /* 8 virtual pages */ define_nup (4, 2, landscape); break; case '9': /* 9 virtual pages */ define_nup (3, 3, portrait); break; case '=': /* A user option */ a2ps_handle_string_options (job, user_option_get (job, optarg)); break; case 'a': /* --pages= pages to print */ a2ps_page_range_set_string (job, optarg); break; case 'A': /* --file-align=MODE. */ job->file_align = file_align_argmatch ("--file-align", optarg); break; case 'b': /* sheet header value */ xstrcpy (job->header, optarg); break; case 'B': /* No headers at all */ job->header = NULL; job->left_footer = NULL; job->footer = NULL; job->right_footer = NULL; job->left_title = NULL; job->center_title = NULL; job->right_title = NULL; job->water = NULL; break; case 'c': /* cut lines too large */ job->folding = false; break; case 151: /* cut lines too large */ job->folding = (a2ps_get_bool ("--truncate-lines", optarg) ? false : true); break; case 'C': /* line numbering */ job->numbering = 5; /* Default is 5 by 5 */ break; case 152: /* --line-number[=INTERVAL] */ /* Alex would like a default of 1. */ job->numbering = (optarg ? (unsigned) get_integer_in_range ("--line-numbers", optarg, 0, 0, range_min) : 1); break; case 'd': /* fork a process to print */ a2ps_printers_flag_output_set (job->printers, NULL, true); break; case 'S': /* -S, --setpagedevice */ { char *value; value = optarg + strcspn (optarg, " \t:="); /* If `-SFeature:' or `-SFeature' then remove Feature, otherwise (-SFeature:value) pass to libppd */ if (*value) { *value = '\0'; value ++; } if (*value) setpagedevice (job, optarg, value); else delpagedevice (job, optarg); } break; case 'f': { char * cp; /* This is for compatibility with the previous scheme */ cp = strchr (optarg, '@'); if (cp) cp ++; else cp = optarg; /* A font size is given */ job->fontsize = get_length ("--font-size", cp, 0.0, 0.0, "pt", range_min_strict); job->columns_requested = 0; job->lines_requested = 0; } break; case 'i': /* interpret control chars */ job->interpret = true; break; case 155: /* interpret control chars */ job->interpret = a2ps_get_bool ("--interpret", optarg); break; case 'j': /* surrounding border */ job->border = true; break; case 156: /* surrounding border */ job->border = a2ps_get_bool ("--border", optarg); break; case 'k': /* page prefeed */ job->page_prefeed = true; break; case 'K': /* no page prefeed */ job->page_prefeed = false; break; case 'l': /* set columns per line, useful for most cases */ job->columns_requested = (unsigned) get_integer_in_range ("--chars-per-line", optarg, 1, 0, range_min); job->lines_requested = 0; break; case 'L': /* set lines per page. Useful with preformatted files. Scaling is * automatically done when necessary. */ job->lines_requested = (unsigned) get_integer_in_range ("--lines-per-page", optarg, 1, 0, range_min); /* Unset value given to columns-per-page, so that this one * is not hidden */ job->columns_requested = 0; break; case 'm': /* Process file as a man */ job->lines_requested = MAN_LINES; job->columns_requested = 0; break; case 'M': /* select a medium */ xstrcpy (job->medium_request, optarg); break; case 'n': /* n copies */ job->copies = (unsigned) get_integer_in_range ("--copies", optarg, 1, 0, range_min); break; case 'o': /* output goes into a file */ a2ps_printers_flag_output_set (job->printers, optarg, false); break; case 'P': /* fork a process to print */ a2ps_printers_flag_output_set (job->printers, optarg, true); break; case 'q': /* don't say anything but errors */ /* Respect the envvar A2PS_VERBOSITY. */ if (!getenv ("A2PS_VERBOSITY")) msg_verbosity = msg_null; break; case 'r': job->orientation = landscape; /* landscape format */ break; case 'R': job->orientation = portrait; /* portrait format */ break; case 's': /* I'd like to have this test be run at compile time, but how? */ //ARGMATCH_VERIFY (duplex_args, duplex_types); job->duplex = XARGMATCH ("--sides", optarg, duplex_args, duplex_types); switch (job->duplex) { case simplex: delpagedevice (job, "Duplex"); break; case duplex: setpagedevice (job, "Duplex", "true"); setpagedevice (job, "Tumble", "false"); break; case tumble: setpagedevice (job, "Duplex", "true"); setpagedevice (job, "Tumble", "true"); break; } break; case 164: /* statusdict definitions */ { char *value; value = strchr (optarg, ':'); if (IS_EMPTY (value)) { delstatusdict (job, optarg); } else { *value = '\0'; value ++; if (*value == ':') setstatusdict (job, optarg, value + 1, true); else setstatusdict (job, optarg, value, false); } } break; case 't': /* Job title */ xstrcpy (job->title, optarg); break; case 'T': job->tabsize = (unsigned) get_integer_in_range ("--tabsize", optarg, 1, 0, range_min); break; case 'u': /* water mark (under lay) */ xstrcpy (job->water, optarg); break; case 'v': /* verbosity */ /* If the user specified the verbosity level by envvar, don't override it. */ if (!getenv ("A2PS_VERBOSITY")) { if (!IS_EMPTY(optarg)) { msg_verbosity = msg_verbosity_argmatch ("--verbose", optarg); } else msg_verbosity = msg_report1; } break; case 'X': /* change the encoding scheme */ /* Since there can be -X in the config files, and because * the encoding.map has not been read yet (because to read * encoding.map, one has to know the lib path, and to know * the lib path, one has to read the config files...), we * can't store the requested encoding as an encoding. * * Nevertheless, if encoding.map has been read. which means * that this is actually a real command line option, * do store the correct encoding */ job->requested_encoding_name = xstrdup (optarg); break; case 132: /* Number of columns */ job->columns = (size_t) get_integer_in_range ("--columns", optarg, 1, 0, range_min); break; case 133: /* Number of rows */ job->rows = (size_t) get_integer_in_range ("--rows", optarg, 1, 0, range_min); break; case 134: /* --include ps prologue */ xstrcpy (job->prolog, optarg); break; case 135: /* --non-printable-format */ //ARGMATCH_VERIFY (non_printable_args, non_printable_types); job->unprintable_format = XARGMATCH ("--non-printable", optarg, non_printable_args, non_printable_types); break; case 136: /* --print-anyway=bool */ job->print_binaries = a2ps_get_bool ("--print-anyway", optarg); break; case 'D': /* --define=key:value */ { char *value; value = optarg + strcspn (optarg, " \t:="); /* A value is given if there is a separator. The value can then be empty (`--var=foo=' i.e. foo = "") which is not the same thing as --var=foo (i.e., undefine the var foo) */ if (*value) *value++ = '\0'; else value = NULL; if (value) { if (!macro_meta_sequence_add (job, optarg, value)) error (1, 0, _("invalid variable identifier `%s'"), quotearg (optarg)); } else { macro_meta_sequence_delete (job, optarg); } } break; case 140: xstrcpy (job->left_title, optarg); break; case 141: xstrcpy (job->right_title, optarg); break; case 149: xstrcpy (job->center_title, optarg); break; case 142: xstrcpy (job->left_footer, optarg); break; case 143: xstrcpy (job->footer, optarg); break; case 144: xstrcpy (job->right_footer, optarg); break; case 146: /* --debug */ job->debug = true; break; case 147: /* --margin */ if (optarg) job->margin = (unsigned) get_integer_in_range ("--margin", optarg, 0, 0, range_min); else job->margin = 12; break; case 157: /* --major= */ job->madir = madir_argmatch ("--major", optarg); break; case 158: /* --version-control */ job->backup_type = get_version ("--version-control", optarg); break; case 159: /* --suffix */ simple_backup_suffix = xstrdup (optarg); break; case 163: /* --ppd[=FILE] */ a2ps_printers_request_ppdkey_set (job->printers, optarg); break; case 166: /* Set the name of file give by stdin */ xstrcpy (job->stdin_filename, optarg); break; case '?': /* Unknown option */ /* Should never happen, since getopt was called in the previous loop. */ abort (); break; } } return res; } /* Process STRING as if it were given on the command line, i.e. make it an argument vector, while respecting shell-escape and shell-grouping mechanics (" and '), and then run a2ps_handle_options onto the argument vector. Return optind, i.e., the index of the first non-option argument. But I doubt arguments are allowed in user options. */ int a2ps_handle_string_options (a2ps_job * job, const char * string) { int argc; char **argv; int res; if (string == NULL) return 0; message (msg_opt, (stderr, "handle_string_options(%s)", string)); /* Build the arguments vector, and add program name */ argc = 1; argv = buildargv_argc (string, &argc); argv[0] = program_name; if (msg_test (msg_opt)) { int i; for (i = 0; i < argc; i++) fprintf (stderr, " %3d = `%s'\n", i, argv[i]); } /* Process options. */ res = a2ps_handle_options (job, argc, argv); return res; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/options.h�����������������������������������������������������������������������0000644�0000000�0000000�00000002565�14235572622�012562� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* options.h - read and understanding everything about the options Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef OPTIONS_H_ # define OPTIONS_H_ struct a2ps_job; /* * Type of the functions for options hooks */ typedef int (* option_hook) (int opt, char * arg); extern option_hook handle_option_hook; /* Handle arguments */ bool a2ps_get_bool (const char * option, const char * arg); /* Handle options. Returns the indice of the first element of ARGV which is not an option. */ int a2ps_handle_options (struct a2ps_job * job, int argc, char *argv[]); int a2ps_handle_string_options (struct a2ps_job * job, const char *string); #endif /* !OPTIONS_H_ */ �������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/output.c������������������������������������������������������������������������0000644�0000000�0000000�00000031550�14367514174�012422� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* output.c - routines for ram-diverted output Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "routines.h" #include "output.h" #include "pathwalk.h" #include "darray.h" #include "dstring.h" #include "printers.h" #include "message.h" #include "dsc.h" #include "stream.h" #include "metaseq.h" #include "quotearg.h" #define MIN_CONTENT 1024 * 50 /* 50 Kb buffer */ #define MIN_DERIVATIONS 10 enum derivation_type { nothing, delayed_size_t, delayed_string, delayed_routine, delayed_chunk }; struct derivation { enum derivation_type type; void * arg; delayed_routine_t delayed_routine; void * delayed_routine_arg; size_t * delayed_size_t; char ** delayed_string; struct output * delayed_chunk; }; struct output { const char * name; struct dstring * chunk; struct darray * derivations; int to_void; /* if true, what is sent here is forgotten */ }; static struct derivation * new_derivation (enum derivation_type type) { struct derivation * res = XMALLOC (struct derivation); res->type = type; return res; } static void derivation_self_print (struct derivation * derivation, FILE * stream) { fprintf (stream, "At %p: ", derivation); switch (derivation->type) { case nothing: fprintf (stream, "nothing "); break; case delayed_size_t: fprintf (stream, "delayed_size_t (%zu)", *derivation->delayed_size_t); break; case delayed_string: fprintf (stream, "delayed_string "); if (*derivation->delayed_string) fprintf (stderr, "(%s)", *derivation->delayed_string); else fprintf (stderr, "##BROKEN##"); break; case delayed_routine: fprintf (stream, "delayed_routine "); break; case delayed_chunk: fprintf (stream, "delayed_chunk "); break; } } /************************************************************************/ /* Output maintenance */ /************************************************************************/ /* * Create a new derivation */ struct output * output_new (const char * name) { struct output * res = NULL; res = XMALLOC (struct output); res->name = name; res->chunk = ds_new (MIN_CONTENT, ds_geometrical, 2); res->derivations = da_new ("derivations", MIN_DERIVATIONS, da_geometrical, 2, (da_print_func_t) derivation_self_print, NULL); res->to_void = false; return res; } void output_report (struct output * out, FILE * stream) { fprintf (stream, "Output `%s' stats:\n", out->name); ds_print_stats (out->chunk, stream); da_print_stats (out->derivations, stream); } /* * Should the derivation forget what it receives? */ void output_to_void (struct output * out, int forget) { out->to_void = forget; } /* * Is it send to /dev/null? */ int output_is_to_void (struct output * out) { return out->to_void; } /************************************************************************/ /* Putting stuff in the output */ /************************************************************************/ /* * Equivalent of printf into an output */ void output (struct output * out, const char *format, ...) { va_list args; va_start (args, format); if (out->to_void) return; ds_unsafe_cat_vsprintf (out->chunk, format, args); va_end (args); } /* * Add C to the end of output */ void output_char (struct output * out, char c) { if (out->to_void) return; ds_strccat (out->chunk, c); } /* * the routines is called with job as arg, at dump time */ void output_delayed_routine (struct output * out, delayed_routine_t fn, void * fn_arg) { struct derivation *tmp; if (out->to_void) return; tmp = new_derivation (delayed_routine); tmp->delayed_routine = fn; tmp->delayed_routine_arg = fn_arg; output_char (out, '\0'); da_append (out->derivations, tmp); } void output_delayed_chunk (struct output * out, struct output * out2) { struct derivation *tmp; if (out->to_void) return; tmp = new_derivation (delayed_chunk); tmp->delayed_chunk = out2; output_char (out, '\0'); da_append (out->derivations, tmp); } /* * The value pointed will be read only when undiverting */ void output_delayed_size_t (struct output * out, size_t * ptr) { struct derivation *tmp; if (out->to_void) return; tmp = new_derivation (delayed_size_t); tmp->delayed_size_t = ptr; output_char (out, '\0'); da_append (out->derivations, tmp); } /* * The value pointed will be read only when undiverting */ void output_delayed_string (struct output * out, char ** ptr) { struct derivation *tmp; if (out->to_void) return; tmp = new_derivation (delayed_string); tmp->delayed_string = ptr; output_char (out, '\0'); da_append (out->derivations, tmp); } /* FIXME: Must be robust to missing arguments */ #define GET_TOKEN(from) (strtok ((from), " \t\n")) #define GET_LINE_TOKEN(from) (strtok ((from), "\n")) #define CHECK_TOKEN() \ if (token2 == NULL) \ error_at_line (1, 0, filename, line, \ _("missing argument for `%s'"), quotearg (token)); /* * Dump a library file content */ void output_file (struct output * out, a2ps_job * job, const char *name, const char *suffix) { char buf[512]; FILE * stream; char * filename; char * token = NULL, * token2 = NULL; unsigned line = 0; int dont_output = false; struct output * dest = out; if (out->to_void) return; message (msg_file, (stderr, "Outputing file %s%s\n", name, UNNULL (suffix))); filename = xpw_find_file (job->common.path, name, suffix); stream = xrfopen (filename); /* Find the end of the header. */ #define HDR_TAG "% -- code follows this line --" while ((fgets (buf, sizeof (buf), stream))) { line++; if (strprefix (HDR_TAG, buf)) break; } /* Dump rest of file. */ while ((fgets (buf, sizeof (buf), stream))) { line++; #define END_FONTUSED_TAG "%%EndFontUsed" if (strprefix (END_FONTUSED_TAG, buf)) { dont_output = false; continue; } else if (dont_output) continue; #define FONTUSED_TAG "%%IfFontUsed:" /* After this tag, forget unless the font is used. * This is for small memory printers */ else if (strprefix (FONTUSED_TAG, buf)) continue; #define INCL_RES_TAG "%%IncludeResource:" if (strprefix (INCL_RES_TAG, buf)) { char * value, * res, * buf2; buf2 = xstrdup (buf); token = GET_TOKEN (buf); token2 = GET_TOKEN (NULL); CHECK_TOKEN (); res = token2; if (STREQ (res, "file")) { /* We want to include a file only once */ token2 = GET_TOKEN (NULL); CHECK_TOKEN (); value = token2; if (!exist_resource (job, res, value)) { add_needed_resource (job, res, value); message (msg_file, (stderr, "Including file '%s' upon request given in '%s':%u\n", value, filename, line)); output_file (dest, job, value, NULL); } } else { /* Leave the line as it is */ output (dest, "%s", buf2); while ((value = GET_TOKEN (NULL))) add_needed_resource (job, res, value); } continue; } #define COLOR_TAG "%%DocumentProcessColors:" else if (strprefix (COLOR_TAG, buf)) { token = GET_TOKEN (buf); token2= GET_TOKEN (NULL); CHECK_TOKEN (); add_process_color (job, token2); while ((token2 = GET_TOKEN (NULL))) add_process_color (job, token2); continue; } #define SUPP_RES_TAG "%%BeginResource:" else if (strprefix (SUPP_RES_TAG, buf)) { char * res; output (dest, "%s", buf); token = GET_TOKEN (buf); token2 = GET_TOKEN (NULL); CHECK_TOKEN (); res = token2; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); add_supplied_resource (job, res, token2); continue; } #define END_SETUP_TAG "%%EndSetup" else if (strprefix (END_SETUP_TAG, buf)) { if (dest == out) error (1, 0, "`setup' incoherence in output_file"); dest = out; continue; } #define SETUP_TAG "%%BeginSetup" else if (strprefix (SETUP_TAG, buf)) { dest = job->status->setup; continue; } #define FACE_TAG "%Face:" else if (strprefix (FACE_TAG, buf)) { /* FIXME: We must make a symbol table between fonts and faces. */ char * fontname; enum face_e face; token = GET_TOKEN (buf); /* Face name -> face */ token2 = GET_TOKEN (NULL); CHECK_TOKEN (); face = string_to_face (token2); if (face == No_face) /* TRANS: a face is a virtual `font', for instance Keyword, or Comment_strong, or String are faces. */ error_at_line (1, 0, filename, line, _("invalid face `%s'"), quotearg (token2)); /* What is the corresponding physical font? */ token2 = GET_TOKEN (NULL); CHECK_TOKEN (); fontname = token2; /* Bind font to face */ face_set_font (job, face, fontname); /* Font size */ token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); output (dest, " f%s %s scalefont setfont\n", fontname, token2); continue; } #define FONT_TAG "%Font:" else if (strprefix (FONT_TAG, buf)) { char * basefontname; const char * true_font_name; token = GET_TOKEN (buf); /* What is the asked font name (before subsitution)? * Register the corresponding font */ token2 = GET_TOKEN (NULL); CHECK_TOKEN (); basefontname = token2; /* Font size */ token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); encoding_add_font_name_used (job->requested_encoding, basefontname); /* Register the font that will be used. * We don't want to read its AFM file: no use of the * WX. Just put it in the DSC storage, that will decide * whether including the font's file, or not */ true_font_name = encoding_resolve_font_substitute (job, job->requested_encoding, basefontname); add_required_font (job, true_font_name); output (dest, " f%s %s scalefont setfont\n", basefontname, token2); continue; } #define EXPAND_TAG "%Expand:" else if (strprefix (EXPAND_TAG, buf)) { char * expansion; token = GET_LINE_TOKEN (buf + strlen (EXPAND_TAG)); expansion = expand_user_string (job, FIRST_FILE (job), "Expand: requirement", token); output (dest, "%s", expansion); continue; } output (dest, "%s", buf); } if (dest != out) /* E.g. `%%BeginSetup' with no matching `%%EndSetup' */ error_at_line (1, 0, filename, line, _("`%s' with no matching `%s'"), SETUP_TAG, END_SETUP_TAG); fclose (stream); } /* * The derivation of a special kind will be emptied in STREAM */ inline static void underivation (FILE * stream, const struct derivation * derivation) { switch (derivation->type) { case delayed_routine: derivation->delayed_routine (stream, derivation->delayed_routine_arg); break; case delayed_size_t: fprintf (stream, "%zu", *derivation->delayed_size_t); break; case delayed_string: fprintf (stream, "%s", *derivation->delayed_string); break; case delayed_chunk: output_dump (derivation->delayed_chunk, stream); break; case nothing: break; default: abort (); } } /* * For debugging */ void output_self_print (struct output * out, FILE * stream) { fprintf (stream, "The derivations:\n"); da_self_print (out->derivations, stream); } /* * Empty OUT into STREAM */ void output_dump (struct output * out, FILE * stream) { size_t i; char * piece = out->chunk->content; struct derivation ** derivations = (struct derivation **) out->derivations->content; if (msg_test (msg_tool)) output_report (out, stderr); fputs ((char *) piece, stream); piece += strlen (piece); for (i = 0 ; i < out->derivations->len ; i++) { underivation (stream, derivations [i]); piece ++; fputs ((char *) piece, stream); piece += strlen (piece); } } /* * End of the dervertion: send its content on the selected * destination */ void undivert (a2ps_job * job) { /* Open the destination */ a2ps_open_output_stream (job); /* Dump the PostScript and close */ output_dump (job->divertion, job->output_stream->fp); /* We have to close stdout to avoid hanging up of pipes */ /* Note: some day, I should learn about the signals, and be able * either to catch or to ignore the SIG_PIPE that happens * in the fclose when the piped command exit != 0 */ a2ps_close_output_stream (job); } ��������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/output.h������������������������������������������������������������������������0000644�0000000�0000000�00000003674�14367514174�012435� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* output.h - routines for ram-diverted output Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _OUTPUT_H_ #define _OUTPUT_H_ struct output; typedef void (*delayed_routine_t) (FILE * stream, void * arg); /* * Maintenance */ struct output * output_new (const char * name); void output_report (struct output * out, FILE * stream); _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 3) void output (struct output * out, const char *format, ...); void output_char (struct output * out, char c); void output_delayed_size_t (struct output * out, size_t * ptr); void output_delayed_string (struct output * out, char ** ptr); void output_delayed_chunk (struct output * out, struct output * sub_out); struct a2ps_job; void output_file (struct output * out, struct a2ps_job * job, const char *name, const char *suffix); void output_delayed_routine (struct output * out, delayed_routine_t fn, void * fn_arg); void output_to_void (struct output * out, int forget); int output_is_to_void (struct output * out); /* * Debug info */ void output_self_print (struct output * out, FILE * stream); /* * Dumping the content somewhere */ void undivert (struct a2ps_job * job); void output_dump (struct output * out, FILE * stream); #endif ��������������������������������������������������������������������a2ps-4.15.5/liba2ps/pair_ht.c�����������������������������������������������������������������������0000644�0000000�0000000�00000016513�14251176177�012511� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* pair_ht.c - two (char *) hash table Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" /* Hack! */ #define hash_table_s pair_htable #include "hashtab.h" #include "message.h" #include "pair_ht.h" #include "getshline.h" #include "lister.h" #include "quotearg.h" #include "routines.h" /************************************************************************ * hash tables with two char * fields * ************************************************************************/ /* Definition of the hash structure */ struct pair { char * key; char * value; float ratio; int wx; }; /* * Basic routines */ static unsigned long pair_hash_1 (struct pair *pair) { return_STRING_HASH_1 (pair->key); } static unsigned long pair_hash_2 (struct pair *pair) { return_STRING_HASH_2 (pair->key); } static int pair_hash_cmp (struct pair *x, struct pair *y) { return_STRING_COMPARE (x->key, y->key); } /* * For sorting them in alpha order */ static int pair_hash_qcmp (struct pair **x, struct pair **y) { return_STRING_COMPARE ((*x)->key, (*y)->key); } /* Return the length of the key of PAIR */ static size_t pair_key_len (struct pair * pair) { return strlen (pair->key); } /* Fputs the key of PAIR to STREAM */ static int pair_key_fputs (struct pair * pair, FILE * stream) { return fputs (pair->key, stream); } /* * Create the structure that stores the list of pairs */ struct hash_table_s * pair_table_new (void) { struct hash_table_s * res; res = XMALLOC (struct hash_table_s); hash_init (res, 8, (hash_func_t) pair_hash_1, (hash_func_t) pair_hash_2, (hash_cmp_func_t) pair_hash_cmp); return res; } /* * Add a pair, with your own allocation for them. * It KEY is yet used, override its value with VALUE */ void pair_add (struct hash_table_s * table, const char * key, const char * value) { struct pair * item, token; token.key = (char *) key; item = (struct pair *) hash_find_item (table, &token); if (!item) { item = XMALLOC (struct pair); item->key = xstrdup(key); } if (value) item->value = xstrdup (value); else item->value = NULL; hash_insert (table, item); } /* * Add a pair, with your own allocation for them. * It KEY is yet used, override its value with VALUE */ void pair_add2 (struct hash_table_s * table, const char * key, const char * value, int wx, float ratio) { struct pair * item, token; token.key = (char *) key; item = (struct pair *) hash_find_item (table, &token); if (!item) { item = XMALLOC (struct pair); item->key = xstrdup(key); item->wx = wx; item->ratio = ratio; } if (value) item->value = xstrdup (value); else item->value = NULL; hash_insert (table, item); } /* * Remove a pair. * It KEY is yet used, override its value with VALUE */ void pair_delete (struct hash_table_s * table, const char * key) { struct pair * item, token; token.key = (char *) key; item = (struct pair *) hash_find_item (table, &token); if (item) hash_delete (table, item); } /* * Get the value associated to KEY in TABLE * Return NULL upon error (this means that it is not * valid to enter NULL as a value) */ char * pair_get (struct hash_table_s * table, const char * key) { struct pair * item, token; token.key = (char *) key; item = (struct pair *) hash_find_item (table, &token); if (item) return item->value; else return NULL; } int pair_get_wx (struct hash_table_s * table, const char * key) { struct pair * item, token; token.key = (char *) key; item = (struct pair *) hash_find_item (table, &token); if (item) return item->wx; else return -1; } float pair_get_ratio (struct hash_table_s * table, const char * key) { struct pair * item, token; token.key = (char *) key; item = (struct pair *) hash_find_item (table, &token); if (item) return item->ratio; else return -1; } /* * Return the content of the hash table, ordered */ void pair_table_map (struct hash_table_s * table, pair_ht_map_fn_t map_fn, pair_ht_select_fn_t select_fn, void const * arg) { int i, num = 0; struct pair ** entries; entries = (struct pair **) hash_dump (table, NULL, (hash_cmp_func_t) pair_hash_qcmp); for (i = 0 ; entries[i] ; i++) { if (!select_fn || select_fn (entries[i]-> key, entries[i]->value)) { map_fn (num, entries[i]-> key, entries[i]->value, arg); num++; } } } /* * For typically for --list-features */ void pair_table_list_short (struct hash_table_s * table, FILE * stream) { struct pair ** entries; entries = (struct pair **) hash_dump (table, NULL, (hash_cmp_func_t) pair_hash_qcmp); lister_fprint_vertical (NULL, stream, (void **) entries, (size_t) -1, (lister_width_t) pair_key_len, (lister_print_t) pair_key_fputs); } /* * For typically for --list-<something> */ void pair_table_list_long (struct hash_table_s * table, FILE * stream) { int i; struct pair ** entries; entries = (struct pair **) hash_dump (table, NULL, (hash_cmp_func_t) pair_hash_qcmp); for (i = 0 ; entries[i] ; i++) fprintf (stream, "%-16s = %s\n", entries[i]->key, entries[i]->value ? entries[i]->value : "<NULL>"); putc ('\n', stream); } /* * Mostly for debbuging */ void pair_table_self_print (struct hash_table_s * table, FILE * stream) { int i; struct pair ** entries; entries = (struct pair **) hash_dump (table, NULL, (hash_cmp_func_t) pair_hash_qcmp); for (i = 0 ; entries[i] ; i++) fprintf (stream, "%s:%s\n", entries[i]->key, entries[i]->value ? entries[i]->value : "<NULL>"); putc ('\n', stream); } #define GET_TOKEN(from) (strtok ((from), " \t\n")) #define CHECK_TOKEN() \ if (token2 == NULL) \ error_at_line (1, 0, file, firstline, \ _("missing argument for `%s'"), quotearg (token)); /* * Read from a FILE */ int pair_table_load (struct hash_table_s * table, const char *file) { FILE * fp; char *buf = NULL; size_t bufsiz = 0; char * token, * token2; unsigned firstline = 0, lastline = 0; message (msg_file, (stderr, "Loading map file `%s'\n", quotearg (file))); fp = xrfopen (file); while (getshline_numbered (&firstline, &lastline, &buf, &bufsiz, fp) != -1) { token = GET_TOKEN (buf); if (!token) /* Blank but not empty */ continue; if (STREQ (token, "***")) { /* Load another map file */ token2 = GET_TOKEN (NULL); /* A map file path */ CHECK_TOKEN (); pair_table_load (table, token2); } else { token2 = GET_TOKEN (NULL); /* key */ CHECK_TOKEN (); pair_add (table, token, token2); } } fclose (fp); return 1; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/pair_ht.h�����������������������������������������������������������������������0000644�0000000�0000000�00000004724�14236507210�012504� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* pair_ht.h - two (char *) hash table Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PAIR_HT_H_ #define _PAIR_HT_H_ struct pair_htable; /* * The type of the functions given as argument to pair_table_map */ typedef void (* pair_ht_map_fn_t) (int i, const char * key, const char * value, void const * arg); typedef int (* pair_ht_select_fn_t) (const char * key, const char * value); /* * String_Entrys */ struct pair_htable * pair_table_new (void); /* * KEY and VALUE will be strdup'd */ void pair_add (struct pair_htable * table, const char * key, const char * value); /* * The key and value of the matching item will be free'd * (No problem if KEY matches nothing) */ void pair_delete (struct pair_htable * table, const char * key); /* * Returns NULL when KEY is not used, otherwise its associated VALUE * in TABLE */ char * pair_get (struct pair_htable * table, const char * key); int pair_get_wx (struct pair_htable * table, const char * key); float pair_get_ratio (struct pair_htable * table, const char * key); void pair_table_list_short (struct pair_htable * table, FILE * stream); void pair_table_list_long (struct pair_htable * table, FILE * stream); void pair_table_self_print (struct pair_htable * table, FILE * stream); void pair_add2 (struct pair_htable * table, const char * key, const char * value, int wx, float ratio); /* * Map a function to the content of the table */ void pair_table_map (struct pair_htable * table, pair_ht_map_fn_t map_fn, pair_ht_select_fn_t select_fn, void const * arg); /* * Load entries from a map file */ int pair_table_load (struct pair_htable * table, const char * file); #endif ��������������������������������������������a2ps-4.15.5/liba2ps/parseppd.c����������������������������������������������������������������������0000644�0000000�0000000�00000132644�14415562575�012710� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output, and Bison version. */ #define YYBISON 30802 /* Bison version string. */ #define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* First part of user prologue. */ #line 1 "parseppd.y" /* -*- c -*- */ /* * Grammar for parsing the style sheets * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * $Id: parseppd.y,v 1.1.1.1.2.1 2007/12/29 01:58:21 mhatta Exp $ */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "ppd.h" #include "message.h" #include "routines.h" #include "lexppd.h" #define YYDEBUG 1 #define YYERROR_VERBOSE 1 #define YYPRINT(file, type, value) yyprint (file, type, value) /* Comes from the caller */ extern FILE * ppdin; extern struct a2ps_job * job; /* Local prototypes */ void yyerror (const char *msg); static void yyprint (); /* Initilizes the obstacks */ void ppdlex_initialize (void); int yylex (void); static struct ppd * ppd_parse_result; #line 134 "parseppd.c" # ifndef YY_CAST # ifdef __cplusplus # define YY_CAST(Type, Val) static_cast<Type> (Val) # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) # else # define YY_CAST(Type, Val) ((Type) (Val)) # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) # endif # endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # else # define YY_NULLPTR ((void*)0) # endif # endif /* Use api.header.include to #include this header instead of duplicating it here. */ #ifndef YY_YY_PARSEPPD_H_INCLUDED # define YY_YY_PARSEPPD_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif #if YYDEBUG extern int yydebug; #endif /* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { YYEMPTY = -2, YYEOF = 0, /* "end of file" */ YYerror = 256, /* error */ YYUNDEF = 257, /* "invalid token" */ EOL = 258, /* EOL */ tDefaultFont = 259, /* tDefaultFont */ tFont = 260, /* tFont */ tModelName = 261, /* tModelName */ tNickName = 262, /* tNickName */ STRING = 263, /* STRING */ SYMBOL = 264, /* SYMBOL */ USTRING = 265 /* USTRING */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ #define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 #define EOL 258 #define tDefaultFont 259 #define tFont 260 #define tModelName 261 #define tNickName 262 #define STRING 263 #define SYMBOL 264 #define USTRING 265 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 64 "parseppd.y" char * string; unsigned char * ustring; struct ppd * ppd; #line 213 "parseppd.c" }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; int yyparse (void); #endif /* !YY_YY_PARSEPPD_H_INCLUDED */ /* Symbol kind. */ enum yysymbol_kind_t { YYSYMBOL_YYEMPTY = -2, YYSYMBOL_YYEOF = 0, /* "end of file" */ YYSYMBOL_YYerror = 1, /* error */ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ YYSYMBOL_EOL = 3, /* EOL */ YYSYMBOL_tDefaultFont = 4, /* tDefaultFont */ YYSYMBOL_tFont = 5, /* tFont */ YYSYMBOL_tModelName = 6, /* tModelName */ YYSYMBOL_tNickName = 7, /* tNickName */ YYSYMBOL_STRING = 8, /* STRING */ YYSYMBOL_SYMBOL = 9, /* SYMBOL */ YYSYMBOL_USTRING = 10, /* USTRING */ YYSYMBOL_11_ = 11, /* ':' */ YYSYMBOL_YYACCEPT = 12, /* $accept */ YYSYMBOL_file = 13, /* file */ YYSYMBOL_ppd = 14, /* ppd */ YYSYMBOL_font_clause = 15 /* font_clause */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; #ifdef short # undef short #endif /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure <limits.h> and (if available) <stdint.h> are included so that the code can choose integer types of a good width. */ #ifndef __PTRDIFF_MAX__ # include <limits.h> /* INFRINGES ON USER NAME SPACE */ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include <stdint.h> /* INFRINGES ON USER NAME SPACE */ # define YY_STDINT_H # endif #endif /* Narrow types that promote to a signed type and that can represent a signed or unsigned integer of at least N bits. In tables they can save space and decrease cache pressure. Promoting to a signed type helps avoid bugs in integer arithmetic. */ #ifdef __INT_LEAST8_MAX__ typedef __INT_LEAST8_TYPE__ yytype_int8; #elif defined YY_STDINT_H typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef __INT_LEAST16_MAX__ typedef __INT_LEAST16_TYPE__ yytype_int16; #elif defined YY_STDINT_H typedef int_least16_t yytype_int16; #else typedef short yytype_int16; #endif /* Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants. This workaround can likely be removed in 2023, as HPE has promised support for HP-UX 11.23 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */ #ifdef __hpux # undef UINT_LEAST8_MAX # undef UINT_LEAST16_MAX # define UINT_LEAST8_MAX 255 # define UINT_LEAST16_MAX 65535 #endif #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ && UINT_LEAST8_MAX <= INT_MAX) typedef uint_least8_t yytype_uint8; #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX typedef unsigned char yytype_uint8; #else typedef short yytype_uint8; #endif #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ typedef __UINT_LEAST16_TYPE__ yytype_uint16; #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ && UINT_LEAST16_MAX <= INT_MAX) typedef uint_least16_t yytype_uint16; #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX typedef unsigned short yytype_uint16; #else typedef int yytype_uint16; #endif #ifndef YYPTRDIFF_T # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ # define YYPTRDIFF_T __PTRDIFF_TYPE__ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ # elif defined PTRDIFF_MAX # ifndef ptrdiff_t # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # endif # define YYPTRDIFF_T ptrdiff_t # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX # else # define YYPTRDIFF_T long # define YYPTRDIFF_MAXIMUM LONG_MAX # endif #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM \ YY_CAST (YYPTRDIFF_T, \ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ ? YYPTRDIFF_MAXIMUM \ : YY_CAST (YYSIZE_T, -1))) #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) /* Stored state numbers (used for stacks). */ typedef yytype_int8 yy_state_t; /* State numbers in computations. */ typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define YY_ATTRIBUTE_PURE # endif #endif #ifndef YY_ATTRIBUTE_UNUSED # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YY_USE(E) ((void) (E)) #else # define YY_USE(E) /* empty */ #endif /* Suppress an incorrect diagnostic about yylval being uninitialized. */ #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ # if __GNUC__ * 100 + __GNUC_MINOR__ < 407 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") # else # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ # define YY_IGNORE_USELESS_CAST_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") # define YY_IGNORE_USELESS_CAST_END \ _Pragma ("GCC diagnostic pop") #endif #ifndef YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_END #endif #define YY_ASSERT(E) ((void) (0 && (E))) #if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 26 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 12 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 4 /* YYNRULES -- Number of rules. */ #define YYNRULES 13 /* YYNSTATES -- Number of states. */ #define YYNSTATES 29 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 265 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK \ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { 0, 85, 85, 94, 97, 102, 108, 114, 118, 122, 126, 130, 140, 142 }; #endif /** Accessing symbol of state STATE. */ #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) #if YYDEBUG || 0 /* The user-facing name of the symbol whose (internal) number is YYSYMBOL. No bounds checking. */ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"end of file\"", "error", "\"invalid token\"", "EOL", "tDefaultFont", "tFont", "tModelName", "tNickName", "STRING", "SYMBOL", "USTRING", "':'", "$accept", "file", "ppd", "font_clause", YY_NULLPTR }; static const char * yysymbol_name (yysymbol_kind_t yysymbol) { return yytname[yysymbol]; } #endif #define YYPACT_NINF (-4) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) #define YYTABLE_NINF (-1) #define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int8 yypact[] = { -4, 9, -3, -4, -4, -1, 2, 1, 3, -4, -4, -4, -4, 10, 6, 5, 11, 12, -4, -4, 8, 15, 18, 14, -4, -4, 16, 17, -4 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_int8 yydefact[] = { 3, 0, 2, 1, 11, 0, 0, 0, 0, 8, 7, 9, 10, 0, 0, 0, 0, 0, 4, 13, 0, 0, 0, 0, 5, 6, 0, 0, 12 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -4, -4, -4, -4 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { 0, 1, 2, 13 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int8 yytable[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 3, 14, 15, 16, 18, 17, 19, 20, 23, 24, 21, 22, 25, 26, 0, 0, 27, 28 }; static const yytype_int8 yycheck[] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 11, 9, 11, 3, 11, 9, 11, 9, 3, 8, 8, 3, 8, -1, -1, 9, 9 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_int8 yystos[] = { 0, 13, 14, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 11, 9, 11, 11, 3, 9, 11, 8, 8, 9, 3, 3, 8, 9, 9 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int8 yyr1[] = { 0, 12, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ static const yytype_int8 yyr2[] = { 0, 2, 1, 0, 3, 5, 5, 2, 2, 2, 2, 2, 7, 3 }; enum { YYENOMEM = -2 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYNOMEM goto yyexhaustedlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Backward compatibility with an undocumented macro. Use YYerror or YYUNDEF. */ #define YYERRCODE YYUNDEF /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Kind, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; YY_USE (yyoutput); if (!yyvaluep) return; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyo, "%s %s (", yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); yy_symbol_value_print (yyo, yykind, yyvaluep); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), &yyvsp[(yyi + 1) - (yynrhs)]); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, Rule); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) ((void) 0) # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ int yyparse (void) { yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus = 0; /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ YYPTRDIFF_T yystacksize = YYINITDEPTH; /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; yy_state_t *yyss = yyssa; yy_state_t *yyssp = yyss; /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; /*------------------------------------------------------------. | yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; /*--------------------------------------------------------------------. | yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE YYNOMEM; #else { /* Get the current used size of the three stacks, in elements. */ YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * YYSIZEOF (*yyssp), &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yy_state_t *yyss1 = yyss; union yyalloc *yyptr = YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) YYNOMEM; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YY_IGNORE_USELESS_CAST_BEGIN YYDPRINTF ((stderr, "Stack size increased to %ld\n", YY_CAST (long, yystacksize))); YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { yychar = YYEOF; yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else if (yychar == YYerror) { /* The scanner already issued an error message, process directly to error recovery. But do not keep the error token as lookahead, it is too special and may lead us to an endless loop in error recovery. */ yychar = YYUNDEF; yytoken = YYSYMBOL_YYerror; goto yyerrlab1; } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Discard the shifted token. */ yychar = YYEMPTY; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: /* file: ppd */ #line 86 "parseppd.y" { ppd_parse_result = (yyvsp[0].ppd); /* Nothing Right Now */; } #line 1211 "parseppd.c" break; case 3: /* ppd: %empty */ #line 94 "parseppd.y" { (yyval.ppd) = ppd_new (); } #line 1219 "parseppd.c" break; case 4: /* ppd: ppd font_clause EOL */ #line 98 "parseppd.y" { ppd_font_add ((yyvsp[-2].ppd), (yyvsp[-1].string)); (yyval.ppd) = (yyvsp[-2].ppd); } #line 1228 "parseppd.c" break; case 5: /* ppd: ppd tModelName ':' STRING EOL */ #line 103 "parseppd.y" { if (!(yyvsp[-4].ppd)->modelname) (yyvsp[-4].ppd)->modelname = (yyvsp[-1].string); (yyval.ppd) = (yyvsp[-4].ppd); } #line 1238 "parseppd.c" break; case 6: /* ppd: ppd tNickName ':' STRING EOL */ #line 109 "parseppd.y" { if (!(yyvsp[-4].ppd)->nickname) (yyvsp[-4].ppd)->nickname = (yyvsp[-1].string); (yyval.ppd) = (yyvsp[-4].ppd); } #line 1248 "parseppd.c" break; case 7: /* ppd: ppd SYMBOL */ #line 115 "parseppd.y" { (yyval.ppd) = (yyvsp[-1].ppd); } #line 1256 "parseppd.c" break; case 8: /* ppd: ppd STRING */ #line 119 "parseppd.y" { (yyval.ppd) = (yyvsp[-1].ppd); } #line 1264 "parseppd.c" break; case 9: /* ppd: ppd USTRING */ #line 123 "parseppd.y" { (yyval.ppd) = (yyvsp[-1].ppd); } #line 1272 "parseppd.c" break; case 10: /* ppd: ppd ':' */ #line 127 "parseppd.y" { (yyval.ppd) = (yyvsp[-1].ppd); } #line 1280 "parseppd.c" break; case 11: /* ppd: ppd EOL */ #line 131 "parseppd.y" { (yyval.ppd) = (yyvsp[-1].ppd); } #line 1288 "parseppd.c" break; case 12: /* font_clause: tFont SYMBOL ':' SYMBOL STRING SYMBOL SYMBOL */ #line 141 "parseppd.y" { (yyval.string)= (yyvsp[-5].string); } #line 1294 "parseppd.c" break; case 13: /* font_clause: tDefaultFont ':' SYMBOL */ #line 143 "parseppd.y" { (yyval.string)= (yyvsp[0].string); } #line 1300 "parseppd.c" break; #line 1304 "parseppd.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; *++yyvsp = yyval; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ { const int yylhs = yyr1[yyn] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyssp; yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp ? yytable[yyi] : yydefgoto[yylhs]); } goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; yyerror (YY_("syntax error")); } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; ++yynerrs; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYSYMBOL_YYerror; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturnlab; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturnlab; /*-----------------------------------------------------------. | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | `-----------------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; goto yyreturnlab; /*----------------------------------------------------------. | yyreturnlab -- parsing is finished, clean up and return. | `----------------------------------------------------------*/ yyreturnlab: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; } #line 145 "parseppd.y" void yyerror (const char *msg) { error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg); } /* * For debugging */ static void yyprint (FILE *file, int type, YYSTYPE value) { switch (type) { case STRING: fprintf (file, " \"%s\"", value.string); break; case SYMBOL: fprintf (file, " %s", value.string); break; case USTRING: fprintf (file, " u\"%s\"", value.ustring); break; } } struct ppd * a2ps_ppd_parse (const char * filename, char * const * path) { /* The filename won't be changed. */ ppdfilename = (char *) filename; ppdlineno = 1; ppdin = xrfopen (ppdfilename); ppdpath = path; message (msg_file | msg_ppd | msg_parse, (stderr, "Parsing file `%s'\n", ppdfilename)); ppdlex_initialize (); if (msg_test (msg_parse)) yydebug = true; else yydebug = false; yyparse (); /* FIXME: test return value? */ fclose (ppdin); return ppd_parse_result; } ��������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/parseppd.h����������������������������������������������������������������������0000644�0000000�0000000�00000006312�14415562575�012705� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison interface for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ #ifndef YY_YY_PARSEPPD_H_INCLUDED # define YY_YY_PARSEPPD_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif #if YYDEBUG extern int yydebug; #endif /* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { YYEMPTY = -2, YYEOF = 0, /* "end of file" */ YYerror = 256, /* error */ YYUNDEF = 257, /* "invalid token" */ EOL = 258, /* EOL */ tDefaultFont = 259, /* tDefaultFont */ tFont = 260, /* tFont */ tModelName = 261, /* tModelName */ tNickName = 262, /* tNickName */ STRING = 263, /* STRING */ SYMBOL = 264, /* SYMBOL */ USTRING = 265 /* USTRING */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ #define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 #define EOL 258 #define tDefaultFont 259 #define tFont 260 #define tModelName 261 #define tNickName 262 #define STRING 263 #define SYMBOL 264 #define USTRING 265 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 64 "parseppd.y" char * string; unsigned char * ustring; struct ppd * ppd; #line 93 "parseppd.h" }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; int yyparse (void); #endif /* !YY_YY_PARSEPPD_H_INCLUDED */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/parseppd.y����������������������������������������������������������������������0000644�0000000�0000000�00000007376�14367514174�012737� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%{ /* -*- c -*- */ /* * Grammar for parsing the style sheets * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * $Id: parseppd.y,v 1.1.1.1.2.1 2007/12/29 01:58:21 mhatta Exp $ */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "ppd.h" #include "message.h" #include "routines.h" #include "lexppd.h" #define YYDEBUG 1 #define YYERROR_VERBOSE 1 #define YYPRINT(file, type, value) yyprint (file, type, value) /* Comes from the caller */ extern FILE * ppdin; extern struct a2ps_job * job; /* Local prototypes */ void yyerror (const char *msg); static void yyprint (); /* Initilizes the obstacks */ void ppdlex_initialize (void); int yylex (void); static struct ppd * ppd_parse_result; %} %union { char * string; unsigned char * ustring; struct ppd * ppd; } %token EOL %token tDefaultFont tFont tModelName tNickName %token <string> STRING SYMBOL %token <ustring> USTRING %type <ppd> ppd %type <string> font_clause %% /************************************************************************/ /* Top most */ /************************************************************************/ file : ppd { ppd_parse_result = $1; /* Nothing Right Now */; } ; ppd : /* Empty */ { $$ = ppd_new (); } | ppd font_clause EOL { ppd_font_add ($1, $2); $$ = $1; } | ppd tModelName ':' STRING EOL { if (!$1->modelname) $1->modelname = $4; $$ = $1; } | ppd tNickName ':' STRING EOL { if (!$1->nickname) $1->nickname = $4; $$ = $1; } | ppd SYMBOL { $$ = $1; } | ppd STRING { $$ = $1; } | ppd USTRING { $$ = $1; } | ppd ':' { $$ = $1; } | ppd EOL { $$ = $1; } ; /************************************************************************/ /* *Font entry */ /************************************************************************/ font_clause : tFont SYMBOL ':' SYMBOL STRING SYMBOL SYMBOL { $$= $2; } | tDefaultFont ':' SYMBOL { $$= $3; } ; %% void yyerror (const char *msg) { error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg); } /* * For debugging */ static void yyprint (FILE *file, int type, YYSTYPE value) { switch (type) { case STRING: fprintf (file, " \"%s\"", value.string); break; case SYMBOL: fprintf (file, " %s", value.string); break; case USTRING: fprintf (file, " u\"%s\"", value.ustring); break; } } struct ppd * a2ps_ppd_parse (const char * filename, char * const * path) { /* The filename won't be changed. */ ppdfilename = (char *) filename; ppdlineno = 1; ppdin = xrfopen (ppdfilename); ppdpath = path; message (msg_file | msg_ppd | msg_parse, (stderr, "Parsing file `%s'\n", ppdfilename)); ppdlex_initialize (); if (msg_test (msg_parse)) yydebug = true; else yydebug = false; yyparse (); /* FIXME: test return value? */ fclose (ppdin); return ppd_parse_result; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/pathwalk.c����������������������������������������������������������������������0000644�0000000�0000000�00000031150�14367514174�012671� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* pathwalk.c - functions for looking for files, reading files and more Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* I know this file would need a full rewrite, nevertheless, since some day we should use kpathsea, it would be a waste of time. There are other files to rewrite :). */ #include <config.h> #include <stdio.h> #include <string.h> int strverscmp (const char *s1, const char *s2); #include "a2ps.h" #include "pathwalk.h" #include "darray.h" #include "message.h" #include "routines.h" #include "filtdir.h" #include "lister.h" #include "quotearg.h" #include "dirname.h" /*---------------------------------. | Alloca D to contain "DIR/FILE". | `---------------------------------*/ #define apathconcat(D,Dir,File) \ do { \ char * tmp1 = (char *) (Dir); \ const char * tmp2 = (const char *) (File); \ D = ALLOCA (char, (strlen (tmp1) \ + strlen (tmp2) + 2)); \ tmp1 = stpcpy (D, tmp1); \ (*tmp1++) = DIRECTORY_SEPARATOR; \ stpcpy (tmp1, tmp2); \ } while (0) /************************************************************************/ /* Handling the path: an array, NULL terminated of char * */ /************************************************************************/ static char ** pw_internal_string_to_path (const char * path, char sep, size_t * length) { char **res = NULL; size_t allocated = 5; /* num of entries yet allocated in res */ size_t entries = 0; const char *cp, *cp2; size_t len; res = XCALLOC (allocated, char *); for (cp = path; cp; cp = strchr (cp, sep)) { if (cp != path) cp++; cp2 = strchr (cp, sep); if (cp2) len = (size_t) (cp2 - cp); else len = strlen (cp); if (len == 0) { /* Skip empty entries */ cp++; continue; } else { /* Make sure _not_ to include that last DIRECTORY_SEPARATOR */ if (cp [len] == DIRECTORY_SEPARATOR) len --; } res [ entries ] = XNMALLOC (len + 1, char); strncpy (res [entries], cp, len); res [entries] [len] = '\0'; entries++; if (entries >= allocated) { allocated *= 2; res = xnrealloc (res, allocated, sizeof(char *)); } } *length = entries; /* Make it null-terminated, and exactly that size */ res [*length] = NULL; res = xnrealloc (res, *length + 1, sizeof(char *)); return res; } /* * Length of a path */ static inline size_t pw_path_length (char ** path) { size_t res; if (!path) return 0; for (res = 0 ; path [res] ; res ++) /* Nada */; return res; } /*-----------------------------------------------------------------. | Build a path as array from a PATH as string, given the separator | | PATH is read only. | `-----------------------------------------------------------------*/ char ** pw_string_to_path (const char * path) { size_t dummy; return pw_internal_string_to_path (path, PATH_SEPARATOR, &dummy); } /* * Concat PATH2 to PATH1, and return the result. */ static inline char ** pw_path_concat (char ** path1, size_t len1, char ** path2, size_t len2) { size_t i; if (path2) { path1 = xnrealloc (path1, len1 + len2 + 1, sizeof(char *)); for (i = 0 ; i <= len2 ; i++) path1 [len1 + i] = path2 [i]; } return path1; } /*-------------------------------------. | Append a string-path DIR2 to PATH1. | `-------------------------------------*/ char ** pw_append_string_to_path (char ** path1, const char * dir2) { size_t len1, len2; char ** path2; len1 = pw_path_length (path1); path2 = pw_internal_string_to_path (dir2, PATH_SEPARATOR, &len2); return pw_path_concat (path1, len1, path2, len2); } /*--------------------------------------. | Prepend a string-path DIR2 to PATH1. | `--------------------------------------*/ char ** pw_prepend_string_to_path (char ** path1, const char * dir2) { size_t len1, len2; char ** path2; len1 = pw_path_length (path1); path2 = pw_internal_string_to_path (dir2, PATH_SEPARATOR, &len2); return pw_path_concat (path2, len2, path1, len1); } void pw_fprintf_path (FILE * stream, const char * format, char * const * path) { if (path) while (*path) { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" fprintf (stream, format, *path); #pragma GCC diagnostic pop path++; } } /*-------------------------------------------------------------------. | Return the index+1 in PATH of the directory that contains the file | | concat(NAME, SUFFIX). | `-------------------------------------------------------------------*/ static int pw_find_file_index (char * const * path, const char *name, const char *suffix) { int i; struct stat stat_st; char * filename, * fullpath; if (suffix) astrcat2 (filename, name, suffix); else filename = (char *) name; message (msg_pw, (stderr, "pw: looking for `%s'\n", filename)); if (path) for (i = 0 ; path [i] ; i ++) { apathconcat (fullpath, path [i], filename); if (stat (fullpath, &stat_st) == 0) { /* File exists */ message (msg_pw, (stderr, "pw: success in %s\n", path[i])); return i + 1; } } if (msg_test (msg_pw)) { fprintf (stderr, "pw: did not find `%s' in path\n", filename); pw_fprintf_path (stderr, "pw: %s\n", path); } return 0; } /*--------------------------------. | Return non 0 if the file exists | `--------------------------------*/ int pw_file_exists_p (char * const * path, const char *name, const char * suffix) { return pw_find_file_index (path, name, suffix); } /*------------------------------------------------------------------. | Return the malloc'd full path of existing file named concat(NAME, | | SUFFIX). | `------------------------------------------------------------------*/ static char * _pw_find_file (char * const * path, const char * name, const char * suffix) { char * res; int i; i = pw_find_file_index (path, name, suffix); if (i) { /* Return a malloc'ed full file name */ if (suffix) { res = XNMALLOC (strlen (path[i-1]) + 2 + strlen (name) + strlen (suffix), char); sprintf (res, "%s%c%s%s", path [i-1], DIRECTORY_SEPARATOR, name, suffix); } else { res = XNMALLOC (strlen (path[i-1]) + 2 + strlen (name), char); sprintf (res, "%s%c%s", path [i-1], DIRECTORY_SEPARATOR, name); } return res; } else return NULL; } /* * Inline wrapper */ char * pw_find_file (char * const * path, const char * name, const char * suffix) { return _pw_find_file (path, name, suffix); } /* Return the malloc'd full path of existing file named concat(NAME, SUFFIX), exits on failure. */ char * xpw_find_file (char * const * path, const char * name, const char * suffix) { char * res = _pw_find_file (path, name, suffix); if (!res) { char *file; file = ALLOCA (char, strlen (name) + (suffix ? strlen (suffix) : 0) + 1); sprintf (file, "%s%s", name, UNNULL (suffix)); error (1, errno, _("cannot find file `%s'"), quotearg (file)); } return res; } /* Idem, but look first around the given INCLUDING_FILE. */ char * xpw_find_included_file (char * const *path, const char *including_file, const char *name, const char *suffix) { const char *dir; /* Of the including file. */ char *res; struct stat statbuf; if (*name == DIRECTORY_SEPARATOR) /* Path is absolute */ dir = ""; else /* Relative. Give its root. */ dir = dir_name (including_file); res = ALLOCA (char, (strlen (dir) + strlen (name) + (suffix ? strlen (suffix) : 0) + 2)); sprintf (res, "%s%c%s%s", dir, DIRECTORY_SEPARATOR, name, suffix ? suffix : ""); if (stat (res, &statbuf) == 0) return xstrdup (res); /* Find in the library. */ return xpw_find_file (path, name, suffix); } /* * Dump a library file content */ int pw_paste_file (char * const * path, const char * name, const char * suffix) { char buf[512]; char * fullpath; FILE * fp; unsigned line = 0; message (msg_pw, (stderr, "pw: pasting `%s%s'\n", name, suffix ? suffix : "")); fullpath = _pw_find_file (path, name, suffix); if (!fullpath) return 0; fp = fopen (fullpath, "r"); if (fp == NULL) return 0; /* Find the end of the header. */ #define HDR_TAG "% -- code follows this line --" while ((fgets (buf, sizeof (buf), fp))) { line++; if (STRNEQ (buf, HDR_TAG, strlen (HDR_TAG))) break; } /* Dump rest of file. */ #define INCL_TAG "% -- include file:" while ((fgets (buf, sizeof (buf), fp))) { line++; if (STRNEQ (buf, INCL_TAG, strlen (INCL_TAG))) { char * file = buf + strlen (INCL_TAG); file = strtok (file, " \n\t"); message (msg_pw, (stderr, "pw: including file '%s' upon request given in '%s':%u\n", file, fullpath, line)); if (!pw_paste_file (path, file, NULL)) error_at_line (1, errno, fullpath, line, _("cannot find file `%s'"), quotearg (file)); continue; } fputs (buf, stdout); } fclose (fp); return 1; } /* Helping functions for pw_glob. */ static bool pw_filter_fnmatch (_GL_UNUSED const char * dir, const char *file, const char *pattern) { return !fnmatch (pattern, file, 0); } static void pw_filter_da_append (_GL_UNUSED const char * dir, const char *file, struct darray *da) { da_append (da, xstrdup (file)); } static void pw_filter_print (const char * dir, const char *file, FILE *stream) { fprintf (stream, "%s%c%s\n", dir, DIRECTORY_SEPARATOR, file); } static void pw_filterdir (char * const * path, filterdir_filter_t filter, void *filtarg, filterdir_fun_t fun, void *arg) { for (/* Nothing */ ; *path ; path++) filterdir (*path, filter, filtarg, fun, arg); } /*------------------------------------------------------------------. | Call glob on PATTERN in each dir of PATH. Return a malloc'd char | | ** (char * malloc'ed too). | `------------------------------------------------------------------*/ struct darray * pw_glob (char * const * path, const char * pattern) { struct darray * res; if (msg_test (msg_pw)) { fprintf (stderr, "pw: globbing `%s'\n", pattern); pw_fprintf_path (stderr, "\t-> %s\n", path); } res = da_new ("Dir entries", 20, da_geometrical, 2, (da_print_func_t) da_str_print, (da_cmp_func_t) strverscmp); pw_filterdir (path, (filterdir_filter_t) pw_filter_fnmatch, (void *) pattern, (filterdir_fun_t) pw_filter_da_append, res); da_qsort (res); da_unique (res); return res; } void pw_glob_print (char * const * path, const char * pattern, FILE *stream) { pw_filterdir (path, (filterdir_filter_t) pw_filter_fnmatch, (void *) pattern, (filterdir_fun_t) pw_filter_print, stream); } /* * Cut the suffix of a string (i.e. cut at last `.') */ static void da_str_cut_suffix (char * string) { *strrchr (string, '.') = '\0'; } /*----------------------------------------------------------------. | Return malloc'd array of malloc'ed char * of the prefix part of | | the file having SUFFIX as suffix in PATH. | `----------------------------------------------------------------*/ struct darray * pw_glob_on_suffix (char * const * path, const char * suffix) { struct darray * res; char * pattern; /* Build the pattern and glob */ astrcat2 (pattern, "*", suffix); res = pw_glob (path, pattern); /* Cut the suffixes */ da_map (res, (da_map_func_t) da_str_cut_suffix); return res; } /* Use lister to report on STREAM the list of files in PATH that end by SUFFIX. */ void pw_lister_on_suffix (FILE * stream, char * const * path, const char * suffix) { struct darray * entries; entries = pw_glob_on_suffix (path, suffix); lister_fprint_vertical (NULL, stream, (void *) entries->content, entries->len, (lister_width_t) strlen, (lister_print_t) fputs); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/pathwalk.h����������������������������������������������������������������������0000644�0000000�0000000�00000005172�14367514174�012703� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* pathwalk.h - functions for looking for files, reading files and more Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PATHWALK_H_ #define _PATHWALK_H_ /* * Build a path (as array null terminated) out of path as string * and the separator. */ char ** pw_string_to_path (const char * string); char ** pw_append_string_to_path (char ** path1, const char * dir2); char ** pw_prepend_string_to_path (char ** path1, const char * dir2); void pw_free_path (char ** path); _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(2, 0) void pw_fprintf_path (FILE * stream, const char * format, char * const * path); /* * Dump NAME.SUFFIX in the PATH on STDOUT */ int pw_paste_file (char * const * path, const char *name, const char *suffix); /* * Is the file CONTEXT somewhere in PATH */ int pw_file_exists_p (char * const * path, const char *name, const char *suffix); /* * Return malloc'ed path to NAME.SUFFIX if in PATH, NULL otherwise */ char * pw_find_file (char * const * path, const char *name, const char *suffix); /* Idem, but exits upon failure */ char * xpw_find_file (char * const * path, const char *name, const char *suffix); /* Idem, but look first if the file is not in the same dir as INCLUDING_FILE. */ char * xpw_find_included_file (char * const *path, const char *including_file, const char *name, const char *suffix); /* * Call glob on PATTERN in each dir of PATH. * Return a malloc'd char ** (char * malloc'ed too) */ struct darray * pw_glob (char * const * path, const char * pattern); void pw_glob_print (char * const * path, const char * pattern, FILE *stream); struct darray * pw_glob_on_suffix (char * const * path, const char * suffix); /* Use lister to report on STREAM the list of files in PATH that end by SUFFIX. */ void pw_lister_on_suffix (FILE * stream, char * const * path, const char * suffix); #endif /* not defined _PATHWALK_H_ */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/ppd.c���������������������������������������������������������������������������0000644�0000000�0000000�00000007477�14251132535�011645� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ppd.c - PostScript Printer Description files Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "ppd.h" #include "jobs.h" #include "routines.h" #include "pathwalk.h" #include "printers.h" #include "darray.h" #include "str_ht.h" #include "title.h" #include "lister.h" #define PPD_SUFFIX ".ppd" /************************************************************************/ /* Handling the fonts */ /************************************************************************/ void ppd_font_add (struct ppd * ppd, const char * fontname) { string_htable_add (ppd->fonts, fontname); } int ppd_font_known_p (struct ppd * ppd, const char * fontname) { return (string_htable_get (ppd->fonts, fontname) != NULL); } /************************************************************************/ /* Handling the PPD structure */ /************************************************************************/ struct ppd * ppd_new (void) { struct ppd * res = XMALLOC (struct ppd); res->fonts = string_htable_new (); res->key = NULL; res->modelname = NULL; res->nickname = NULL; return res; } /* * Produce a nice report of PPD */ static void ppd_self_print (struct ppd * ppd, FILE * stream) { /* It must include the white spaces put before */ char * cp; char ** fonts; if (ppd->nickname) cp = ppd->nickname; else if (ppd->modelname) cp = ppd->modelname; else cp = ppd->key; title (stream, '-', true, "%s (%s)", cp, ppd->key); /* Report the known fonts */ fonts = string_htable_dump_sorted (ppd->fonts); fputs (_("Known Fonts"), stream); if (!*fonts) /* TRANS: This `none' is an answer to `List of known fonts: None' */ fputs (_("\n None.\n"), stream); else { putc ('\n', stream); lister_fprint_separated (NULL, stream, (void **) fonts, (size_t) -1, (lister_width_t) strlen, (lister_print_t) fputs); } free (fonts); } /* * Look for the ppd file corresponding to KEY, in the PATH and return * its content */ struct ppd * _a2ps_ppd_get (char * const * path, const char * key) { struct ppd * res; char * ppd_filepath; ppd_filepath = xpw_find_file (path, key, ".ppd"); res = a2ps_ppd_parse (ppd_filepath, path); res->key = xstrdup (key); free (ppd_filepath); return res; } /****************************************************************/ /* Reporting the known PPD */ /****************************************************************/ /* * List the PPD names */ void _a2ps_ppd_list_short (char * const * path, FILE * stream) { fputs (_("Known PostScript Printer Descriptions"), stream); putc ('\n', stream); pw_lister_on_suffix (stream, path, PPD_SUFFIX); } /* * List the PPD with their content */ void _a2ps_ppd_list_long (char * const * path, FILE * stream) { struct darray * entries; size_t i; entries = pw_glob_on_suffix (path, PPD_SUFFIX); title (stream, '=', true, _("Known PostScript Printer Descriptions")); putc ('\n', stream); for (i = 0 ; i < entries->len ; i++) { ppd_self_print (_a2ps_ppd_get (path, entries->content[i]), stream); putc ('\n', stream); } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/ppd.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003174�14236507210�011637� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ppd.h - PostScript Printer Description files Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef PPD_H_ # define PPD_H_ struct a2ps_job; struct string_htable; int font_is_ps_known (struct a2ps_job * job, const char * name); struct ppd { char * key; /* Name of the file */ char * modelname; char * nickname; struct string_htable * fonts; /* List of the know fonts */ }; /* * The font part */ void ppd_font_add (struct ppd * pdd, const char * fontname); int ppd_font_known_p (struct ppd * pdd, const char * fontname); /* * The whole struct */ struct ppd * ppd_new (void); struct ppd * _a2ps_ppd_get (char * const * path, const char * key); /* * Report them */ void _a2ps_ppd_list_short (char * const * path, FILE * stream); void _a2ps_ppd_list_long (char * const * path, FILE * stream); /* From parsepdd.y */ struct ppd * a2ps_ppd_parse (const char * filename, char * const *path); #endif /* !defined(PPD_H_) */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/prange.c������������������������������������������������������������������������0000644�0000000�0000000�00000021105�14251132535�012316� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* prange.c - page ranges Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "fjobs.h" #include "prange.h" #include "routines.h" #include "quotearg.h" /************************************************************************/ /* Selecting the pages to print */ /* 1. The intervals */ /************************************************************************/ /* * The cells used for the interval */ struct interval { int min; int max; }; static struct interval * interval_new (int min, int max) { struct interval * res = XMALLOC (struct interval); res->min = min; res->max = max; return res; } static void interval_self_print (struct interval * interval, FILE * stream) { if (interval->min && interval->max) fprintf (stream, "%d-%d", interval->min, interval->max); else if (interval->min) fprintf (stream, "%d-", interval->min); else fprintf (stream, "-%d", interval->max); } static int interval_is_in (struct interval * interval, int num) { if (interval->min && interval->max) return (interval->min <= num && num <= interval->max); else if (interval->min) return (interval->min <= num); else return (num <= interval->max); } /* * Drop in BUF the written form of INTERVAL, taking the OFFSET * into account. * E.g. 3-5 with offset 4 is 1-2. */ static char * interval_to_buffer (struct interval * interval, char * buf, size_t offset) { size_t min = 0; /* This interval is passed */ if (interval->max && (size_t) interval->max < offset) return buf; /* The first pages are printed yet */ if (interval->min && ((size_t) interval->min <= offset)) min = 1; else min = (size_t) interval->min - offset; if (min == (size_t) interval->max) sprintf ((char *) buf, "%zu", min); else if (min && interval->max) sprintf ((char *) buf, "%zu-%zu", min, (size_t) interval->max - offset); else if (min) sprintf ((char *) buf, "%zu-", min); else /* It is better to specify the `1'. For instance dvips * breaks on -pp-10 */ sprintf ((char *) buf, "1-%zu", (size_t) interval->max - offset); return buf + strlen (buf); } /* * Does the interval says something about pages not to be printed * above OFFSET? * * 2-4 says something to 5: it should not be printed, a priori * 2- says nothing about restriction: 5 can be freely printed */ static inline int interval_applies_above (struct interval * interval, int offset) { if (interval->min <= offset && interval->max == 0) /* offset \in [min,-]: all should be printed */ return false; /* if (interval->min <= offset && offset <= interval->max) return false; */ return true; } /************************************************************************/ /* Selecting the pages to print */ /* 2. The page range */ /************************************************************************/ struct page_range { struct darray * intervals; /* list of the intervals to print */ bool toc; /* if true, only the toc is printed */ }; /* * A darray specialized for page range */ struct page_range * page_range_new (void) { struct page_range * res = XMALLOC (struct page_range); res->intervals = da_new ("Page Range Interval", 5, da_linear, 10, (da_print_func_t) interval_self_print, NULL); res->toc = false; return res; } /* * Reset to a default value */ static void page_range_reset (struct page_range * page_range) { page_range->toc = false; } /* * A darray specialized for page range */ static inline void page_range_self_print (struct page_range * page_range, FILE * stream) { da_self_print (page_range->intervals, stream); } /* job->print_page is an array of int, to 0 if the page * should not be printed, 1 otherwise, * job->size_print_page stores the size of the array * Return 1 on success, 0 on error */ inline static int add_pages_interval (struct a2ps_job * job, int min, int max) { /* If max is null, it means `from MIN up to the end'. * If min > size, then set max to min, * otherwise, max := size */ if (max && (max < min)) return false; da_append (job->page_range->intervals, interval_new (min, max)); return true; } /* * Drop in BUF the written form of PAGE_RANGE, taking the OFFSET * into account. * E.g. 3-5 with offset 4 is 1-2. */ void page_range_to_buffer (struct page_range * page_range, char * buf, size_t offset) { size_t i; int put_a_comma = false; struct interval ** intervals = (struct interval **) page_range->intervals->content; for (i = 0 ; i < page_range->intervals->len ; i++) if (interval_applies_above (intervals [i], (int) offset)) { if (put_a_comma) *buf++ = ','; buf = interval_to_buffer (intervals [i], buf, offset); put_a_comma = true; } } /* * Does the page range has something to say above the offset? * For instance, 2,5,10-20 says something for OFFSET above 21 * (that it must not be printed) and for any OFFSET less than 20. */ int page_range_applies_above (struct page_range * page_range, size_t offset) { size_t i; struct interval ** intervals = (struct interval **) page_range->intervals->content; if (page_range->intervals->len == 0) return false; for (i = 0 ; i < page_range->intervals->len ; i++) if ((size_t) intervals [i]->min < offset && intervals [i]->max == 0) /* offset \in [min,-]: all should be printed */ return false; return true; } /************************************************************************/ /* Selecting the pages to print */ /* 3. The interface with a2ps_job */ /************************************************************************/ /* * Called by the handling of options, */ void a2ps_page_range_set_string (struct a2ps_job * job, const char * string) { /* The format is -2, 4, 10-15, 20- * Print 1, 2, 4, 10 to 15, 20 to the end. */ char * cp, * string_copy; int min, max; page_range_reset (job->page_range); if (!string) return; /* Avoid doing too many things at the same time with alloca */ astrcpy (string_copy, string); cp = strtok (string_copy, ", \t"); while (cp) { min = max = 0; if (isdigit ((int) *cp)) { min = atoi (cp); while (isdigit ((int) *cp)) cp++; } switch (*cp++) { case '\0': add_pages_interval (job, min, min); break; case ':': case '-': max = atoi (cp); while (isdigit ((int) *cp)) cp++; /* Make sure that the separator is respected */ if (*cp != '\0') goto failed; if (!add_pages_interval (job, min, max)) error (1, 0, _("invalid interval `%s'"), quotearg (string)); break; case 't': if (strprefix ("toc", cp - 1)) { /* the toc has to be printed */ job->page_range->toc = true; cp += 2; /* Make sure that the separator is respected */ if (*cp != '\0') goto failed; } else goto failed; break; failed: default: error (1, 0, _("invalid interval `%s'"), quotearg (string)); break; } cp = strtok (NULL, ", \t"); } } void report_pages_to_print (struct a2ps_job * job, FILE * stream) { page_range_self_print (job->page_range, stream); } /* * Return true if the page PAGE_NUM is to be printed */ int print_page (struct a2ps_job * job, size_t page_num) { size_t i; struct interval ** intervals = (struct interval **) job->page_range->intervals->content; /* If only the toc is to be printed, then take advantage * of having JOB to see if the current file is the toc. * It is not very clean, but it's really simple */ if (job->page_range->toc && CURRENT_FILE (job)->is_toc) return true; /* If no page range where ever specified (not even toc), then * any page is to be printed */ if (job->page_range->intervals->len == 0 && !job->page_range->toc) return true; for (i = 0 ; i < job->page_range->intervals->len ; i++) if (interval_is_in (intervals [i], (int) page_num)) return true; return false; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/prange.h������������������������������������������������������������������������0000644�0000000�0000000�00000002635�14251132535�012332� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* prange.h - page ranges Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PRANGE_H_ #define _PRANGE_H_ struct job; /* * List of pages to print */ struct page_range; struct page_range * page_range_new (void); void a2ps_page_range_set_string (struct a2ps_job * job, const char * string); void report_pages_to_print (struct a2ps_job * job, FILE * stream); int print_page (struct a2ps_job * job, size_t page_num); void page_range_to_buffer (struct page_range * page_range, char * buf, size_t offset); int page_range_applies_above (struct page_range * page_range, size_t offset); #endif ���������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/printers.c����������������������������������������������������������������������0000644�0000000�0000000�00000040122�14251176177�012722� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* printers.c - information about the printers (named outputs) Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <string.h> #define printer_table hash_table_s #include "a2ps.h" #include "jobs.h" #include "printers.h" #include "routines.h" #include "xstrrpl.h" #include "hashtab.h" #include "printers.h" #include "message.h" #include "metaseq.h" #include "stream.h" #include "ppd.h" #include "pathwalk.h" #include "xbackupfile.h" #include "lister.h" #include "title.h" #define DEFAULT_PRINTER _("Default Printer") #define UNKNOWN_PRINTER _("Unknown Printer") /* Road map of this file 1. struct printer and functions. 2. struct printer_table and functions. 2. struct a2ps_printers_s and functions. 4. interface for struct a2ps_job */ /************************************************************************ * hash tables for the printers * ************************************************************************/ /* * Description of a printer */ struct printer { char * key; char * ppdkey; /* Key to the ppd file which describe it */ char * command; /* Command to run to run the printer */ }; /* * Basic routines */ static unsigned long printer_hash_1 (struct printer *printer) { return_STRING_HASH_1 (printer->key); } static unsigned long printer_hash_2 (struct printer *printer) { return_STRING_HASH_2 (printer->key); } static int printer_hash_cmp (struct printer *x, struct printer *y) { return_STRING_COMPARE (x->key, y->key); } static int printer_hash_qcmp (struct printer **x, struct printer **y) { return strverscmp ((*x)->key, (*y)->key); } /* Return the length of the key of the PRINTER. */ static size_t printer_key_len (struct printer *printer) { return strlen (printer->key); } /* Fputs on STREAM the key of the PRINTER. */ static int printer_key_fputs (struct printer * printer, FILE * stream) { return fputs (printer->key, stream); } /* Give void values. */ static void printer_create (struct printer *p, const char *key) { p->key = xstrdup (key); p->ppdkey = NULL; p->command = NULL; } /* Set the value. */ static void printer_set (struct printer *p, const char * ppdkey, const char * command) { xstrcpy (p->ppdkey, ppdkey); xstrcpy (p->command, command); } /* Allocate, and set. */ static struct printer * printer_new (const char *key) { struct printer * res = XMALLOC (struct printer); printer_create (res, key); return res; } /* * Format the presentation of a printer and its command for * --list-printers. */ static void printer_self_print (struct printer * printer, FILE * stream) { fputs ("- ", stream); fputs (printer->key, stream); if (printer->ppdkey) fprintf (stream, " (PPD: %s)", printer->ppdkey); putc ('\n', stream); if (printer->command) fprintf (stream, " %s\n", printer->command); } /************************************************************************/ /* 2. Printer_table functions */ /************************************************************************/ /* * Create the structure that stores the list of printers */ static inline struct printer_table * printer_table_new (void) { struct hash_table_s * res = XMALLOC (struct hash_table_s); hash_init (res, 8, (hash_func_t) printer_hash_1, (hash_func_t) printer_hash_2, (hash_cmp_func_t) printer_hash_cmp); return (struct printer_table *) res; } /* Return the printer corresponding to KEY in TABLE if exist, otherwise NULL. */ static inline struct printer * printer_table_find (struct printer_table *table, const char *key) { struct printer token; token.key = (char *) key; return (struct printer *) hash_find_item (table, &token); } /* * Add a pair, with your own allocation for them. * It KEY is yet used, override its value with VALUE */ static inline void printer_table_add (struct printer_table * table, const char * key, const char * ppdkey, const char * command) { struct printer *printer; printer = printer_table_find (table, key); if (!printer) printer = printer_new (key); printer_set (printer, ppdkey, command); hash_insert (table, printer); } /* * Report content (short form) */ static void printer_table_short_self_print (struct printer_table * table, FILE * stream) { struct printer ** entries; size_t size; entries = (struct printer **) hash_dump (table, NULL, (hash_cmp_func_t) printer_hash_qcmp); for (size = 0 ; entries [size] ; size++) /* nothing */ ; lister_fprint_vertical (NULL, stream, (void *) entries, size, (lister_width_t) printer_key_len, (lister_print_t) printer_key_fputs); } /* * Report content (long form) */ static void printer_table_self_print (struct printer_table * table, FILE * stream) { hash_maparg (table, (hash_maparg_func_t) printer_self_print, stream, (qsort_cmp_t) printer_hash_qcmp); } /************************************************************************/ /* Handling the printers module */ /************************************************************************/ struct a2ps_printers_s { /* Shared mem. */ struct a2ps_common_s * common; /* User defined printers, default printer, unknown printer. */ struct printer_table *printers; struct printer default_printer; /* Can't use `default'! */ struct printer unknown_printer; /* PPD handling */ char *default_ppdkey; /* Key of the ppd to use as default */ char *request_ppdkey; /* User has specified */ struct ppd *ppd; /* Name of the ppd file asked */ /* Selected destination. */ /* FLAGS values correspond to the choice of the user. */ bool flag_output_is_printer; /* ? -P : -o. */ char *flag_output_name; /* Arg to -P or -o. */ /* These values correspond to what has really happened. */ bool output_is_file; /* -o, or -P on a saving printer. */ /* If OUTPUT_IS_FILE, the file name, else the printer name. */ char *output_name; }; /* Allocate and reset the printers module. */ struct a2ps_printers_s * a2ps_printers_new (struct a2ps_common_s * common) { struct a2ps_printers_s * res = XMALLOC (struct a2ps_printers_s); /* Shared mem */ res->common = common; /* Available printers (outputs). */ res->printers = printer_table_new (); printer_create (&res->default_printer, DEFAULT_PRINTER); printer_create (&res->unknown_printer, UNKNOWN_PRINTER); /* PPD */ res->request_ppdkey = NULL; res->default_ppdkey = xstrdup ("level1"); /* By default, level1 PS */ res->ppd = NULL; /* Printer's ppd are not read yet */ /* Output */ /* Default is to send to default printer */ res->flag_output_is_printer = true; res->flag_output_name = NULL; res->output_is_file = true; res->output_name = NULL; return res; } /* Find the PPD key associated with the printer KEY. If undefined, resolve to the unknown and default printers. */ static const char * a2ps_printers_ppdkey_get (struct a2ps_printers_s *printers, const char * key) { struct printer *printer; /* If key is empty, it's the default printer (user used `-d'). */ if (!key) return printers->default_printer.ppdkey; /* The printer has name: user used `-P'. */ printer = printer_table_find (printers->printers, key); if (printer && printer->ppdkey) /* The printer is declared and has a PPD. */ return printer->ppdkey; /* Printer is either unknown or has no PPD: use that of the unknown printer. */ return printers->unknown_printer.ppdkey; } /* Find the command associated with the printer KEY. If undefined, resolve to the unknown and default printers. */ static const char* a2ps_printers_command_get (struct a2ps_printers_s *printers, const char *key) { struct printer *printer; /* If key is empty, it's the default printer (user used `-d'). */ if (!key) { if (!printers->default_printer.command) /* TRANS: The first `%s' is typically the name of the printer (default or unknown), while the last two strings expand into the options that caused the message (i.e., "-d" "" in the case of the default printer). */ error (1, 0, _("no command for the `%s' (%s%s)"), DEFAULT_PRINTER, "-d", ""); return printers->default_printer.command; } /* The printer has name: user used `-P'. */ printer = printer_table_find (printers->printers, key); if (printer && printer->command) /* The printer is declared and has a command. */ return printer->command; /* Printer is either unknown or has no command (used when Printer: introduces only the PPD). */ if (!printers->unknown_printer.command) { error (1, 0, _("no command for the `%s' (%s%s)"), UNKNOWN_PRINTER, "-P ", key); } return printers->unknown_printer.command; } /* Make a standard message upon the destination. Mallocs the result. If FILE_P, NAME is a file name, else a printer name. */ static char * destination_to_string (const char *name, bool file_p) { char *res; if (IS_EMPTY (name)) { res = (file_p ? xstrdup (_("sent to the standard output")) : xstrdup (_("sent to the default printer"))); } else { char *format = (file_p ? _("saved into the file `%s'") : _("sent to the printer `%s'")); res = XNMALLOC (strlen (format) + strlen (name), char); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" sprintf (res, format, name); #pragma GCC diagnostic pop } return res; } /* Returns a string that describes the destination of the output, *before* evaluating the output. Result is malloced. */ char * a2ps_flag_destination_to_string (a2ps_job * job) { /* Make a nice message to tell where the output is sent */ return destination_to_string (job->printers->flag_output_name, job->printers->flag_output_is_printer ? false : true); } /* Report where the output was really sent, i.e., evaluate the command and in the case of a file, report the file name. */ char * a2ps_destination_to_string (a2ps_job * job) { /* The main difference is when sending to a file, in which * case we want to have its real name */ return destination_to_string (job->printers->output_name, job->printers->output_is_file); } /* * Finalize the printers module. * This is called once the configuration/options have been totally * parsed/treated */ void a2ps_printers_finalize (struct a2ps_printers_s * printers) { const char * ppdkey; /* 1. Get the right ppd key */ if ((ppdkey = printers->request_ppdkey)) /* Nothing */; else if (printers->flag_output_is_printer) ppdkey = a2ps_printers_ppdkey_get (printers, printers->flag_output_name); if (!ppdkey) ppdkey = printers->default_ppdkey; /* 2. Get the struct ppd */ printers->ppd = _a2ps_ppd_get (printers->common->path, ppdkey); /* FIXME: Check for errors */ } /* * Record a printer defined by the config line "Printer:" */ bool a2ps_printers_add (struct a2ps_printers_s * printers, const char * key, char * definition) { char * ppdkey = NULL; char * token = NULL; char * command = NULL; /* Skip the blanks */ token = definition + strspn (definition, " \t"); /* PPD given ? */ if ((*token != '>') && (*token != '|')) { /* If the first token does not start by `|' or `>', then ppdkey is defined */ ppdkey = strtok (token, " \t"); token = strtok (NULL, "\n"); } else { /* Skip the blanks. */ token += strspn (token, " \t"); } /* What remains is the command itself (can be NULL). */ command = token; /* Special printers. */ if (STREQ (key, DEFAULT_PRINTER)) printer_set (&printers->default_printer, ppdkey, command); else if (STREQ (key, UNKNOWN_PRINTER)) printer_set (&printers->unknown_printer, ppdkey, command); else printer_table_add (printers->printers, key, ppdkey, command); /* Success. */ return true; } /* * Accessing the PPD fields */ const char * a2ps_printers_default_ppdkey_get (struct a2ps_printers_s * printers) { return printers->default_ppdkey; } void a2ps_printers_default_ppdkey_set (struct a2ps_printers_s * printers, const char * ppdkey) { xstrcpy (printers->default_ppdkey, ppdkey); } const char * a2ps_printers_request_ppdkey_get (struct a2ps_printers_s * printers) { return printers->request_ppdkey; } void a2ps_printers_request_ppdkey_set (struct a2ps_printers_s * printers, const char * ppdkey) { xstrcpy (printers->request_ppdkey, ppdkey); } /* * Accessing the output fields */ void a2ps_printers_flag_output_set (struct a2ps_printers_s * printers, const char * flag_output_name, bool is_printer) { printers->flag_output_is_printer = is_printer; if (!is_printer && flag_output_name && STREQ (flag_output_name, "-")) /* Request for stdin */ printers->flag_output_name = NULL; else xstrcpy (printers->flag_output_name, flag_output_name); } const char * a2ps_printers_flag_output_name_get (struct a2ps_printers_s * printers) { return (const char *) printers->flag_output_name; } bool a2ps_printers_flag_output_is_printer_get (struct a2ps_printers_s * printers) { return printers->flag_output_is_printer; } /* * Questioning the printers module */ int a2ps_printers_font_known_p (struct a2ps_printers_s * printers, const char * name) { return ppd_font_known_p (printers->ppd, name); } /* * Interface to job */ void a2ps_printers_list_short (struct a2ps_job * job, FILE * stream) { fputs (_("Known Outputs (Printers, etc.)"), stream); putc ('\n', stream); printer_table_short_self_print (job->printers->printers, stream); } void a2ps_printers_list_long (struct a2ps_job * job, FILE * stream) { title (stream, '=', true, _("Known Outputs (Printers, etc.)")); putc ('\n', stream); printer_self_print (&job->printers->default_printer, stream); printer_self_print (&job->printers->unknown_printer, stream); printer_table_self_print (job->printers->printers, stream); } void a2ps_ppd_list_short (struct a2ps_job * job, FILE * stream) { _a2ps_ppd_list_short (job->common.path, stream); } void a2ps_ppd_list_long (struct a2ps_job * job, FILE * stream) { _a2ps_ppd_list_long (job->common.path, stream); } /* * Open a stream on the specified output in JOB */ void a2ps_open_output_stream (struct a2ps_job * job) { struct a2ps_printers_s *printers = job->printers; /* Open the destination. */ if (!printers->flag_output_is_printer) { /* -o (can be stdout) */ job->output_stream = stream_wopen_backup (printers->flag_output_name, true, job->backup_type); /* FLAG_OUTPUT_NAME can be NULL. */ xstrcpy (printers->output_name, printers->flag_output_name); printers->output_is_file = true; } else { /* -P (or -d if NAME is NULL. */ const char *name; const char *command, *printer_cmd; /* Open an output stream onto PRINTER */ printer_cmd = a2ps_printers_command_get (printers, printers->flag_output_name); /* Expand the metaseq before */ command = (char *) expand_user_string (job, FIRST_FILE (job), "output command", printer_cmd); job->output_stream = stream_perl_open_backup (command, job->backup_type, &name); if (*command == '>') { printers->output_is_file = true; printers->output_name = xstrdup (name); } else { /* flag_output_name can be NULL. */ xstrcpy (printers->output_name, printers->flag_output_name); printers->output_is_file = false; } } } /* * Close the output stream with fclose or pclose */ void a2ps_close_output_stream (struct a2ps_job * job) { stream_close (job->output_stream); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/printers.h����������������������������������������������������������������������0000644�0000000�0000000�00000005752�14251132535�012727� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* printers.h - information about the printers (named outputs) Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef PRINTERS_H_ #define PRINTERS_H_ #include "a2ps.h" #include "common.h" /* The purpose of this file is to keep the information we have on the printers. The central hash table gets its info from the reading of the configuration files (config.h mainly). And its main results is to open the output stream, either on a file or a pipe. */ /* * The whole printers world * (There defs, the PPD handling etc) */ struct a2ps_job; struct a2ps_printers_s; /* Listing printers and PPD. */ void a2ps_printers_list_short (struct a2ps_job * job, FILE * stream); void a2ps_printers_list_long (struct a2ps_job * job, FILE * stream); void a2ps_ppd_list_short (struct a2ps_job * job, FILE * stream); void a2ps_ppd_list_long (struct a2ps_job * job, FILE * stream); /* * Output streams */ void a2ps_open_output_stream (struct a2ps_job * job); void a2ps_close_output_stream (struct a2ps_job * job); char *a2ps_flag_destination_to_string (struct a2ps_job * job); char *a2ps_destination_to_string (struct a2ps_job * job); /* Create the mem of the printers module */ struct a2ps_printers_s *a2ps_printers_new (struct a2ps_common_s * common); /* Finalize the printers module */ void a2ps_printers_finalize (struct a2ps_printers_s * printers); /* Accessing some of the fields */ const char * a2ps_printers_default_ppdkey_get (struct a2ps_printers_s * printers); void a2ps_printers_default_ppdkey_set (struct a2ps_printers_s * printers, const char * key); const char * a2ps_printers_request_ppdkey_get (struct a2ps_printers_s * printers); void a2ps_printers_request_ppdkey_set (struct a2ps_printers_s * printers, const char * key); bool a2ps_printers_add (struct a2ps_printers_s * printers, const char * key, char * definition); int a2ps_printers_font_known_p (struct a2ps_printers_s * printers, const char * name); /* * Outputs */ void a2ps_printers_flag_output_set (struct a2ps_printers_s * printers, const char * output_name, bool is_printer); const char * a2ps_printers_flag_output_name_get (struct a2ps_printers_s * printers); bool a2ps_printers_flag_output_is_printer_get (struct a2ps_printers_s * printers); #endif /* !defined (PRINTERS_H_) */ ����������������������a2ps-4.15.5/liba2ps/printlen.c����������������������������������������������������������������������0000644�0000000�0000000�00000004374�14367514174�012721� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* printlen.c - return number of chars used by a printf like call Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Note: not all the cases are implemented, so improve it before use it! */ #include <config.h> #include "system.h" #include "printlen.h" static int int_printflen (const char *format, va_list ap) { const char *cp; size_t total_width = 0; for (cp = format ; *cp ; cp++) { if (*cp != '%') total_width++; else { /* A `% ' is occuring */ cp++; while (strchr ("-+ #0", *cp)) ++cp; if (*cp == '*') ++cp; if (*cp == '.') { ++cp; if (*cp == '*') ++cp; } while (strchr ("hlL", *cp)) ++cp; /* Currently not enough cases are covered */ switch (*cp) { case 'd': case 'i': case 'o': case 'u': case 'x': case 'X': case 'c': (void) va_arg (ap, int); break; case 'f': case 'e': case 'E': case 'g': case 'G': (void) va_arg (ap, double); break; case 's': total_width += strlen (va_arg (ap, char *)); break; case 'p': case 'n': (void) va_arg (ap, char *); break; } } } return (int) total_width; } int vprintflen (const char *format, va_list args) { va_list ap; int ret; va_copy (ap, args); ret = int_printflen (format, ap); va_end(ap); return ret; } int printflen (const char *format, ...) { va_list args; int res; va_start (args, format); res = vprintflen (format, args); va_end (args); return res; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/printlen.h����������������������������������������������������������������������0000644�0000000�0000000�00000002230�14367514174�012713� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* printlen.h - return number of chars used by a printf like call Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PRINTLEN_H_ #define _PRINTLEN_H_ /* * Return length of the string sprintf would produce. Always > 0 */ /* * Variable arguments */ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(1, 2) int printflen (const char *format, ...); /* * List of arguments. */ int vprintflen (const char *format, va_list args); #endif /* ! defined(_PRINTLEN_H_) */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/prolog.c������������������������������������������������������������������������0000644�0000000�0000000�00000044047�14367514174�012371� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* prolog.c - routines for postscript prologue handling Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" /* most global variables */ #include "prolog.h" #include "routines.h" /* general interest routines */ #include "output.h" /* Diverted outputs */ #include "media.h" #include "message.h" #include "dsc.h" #include "jobs.h" #include "fonts.h" #include "metaseq.h" #include "psgen.h" #include "pathwalk.h" #include "getshline.h" #include "document.h" /* FIXME: Should not be here */ #define PS_PROLOGUE_SUFFIX ".pro" /* If none null, called at the end of the ps comments, when debugging */ a2ps_job_stream_hook ps_comment_hook = NULL; /* Important. I must say I'm a bit lost in the complexity that results of mixing several encodings, and the possibility to avoid printing some pages (--pages). This causes many problems in trying to get a good and up-to-date value of job->encoding. I have to go and see the code some other day. Now it seems to work, but it is a bit miraculous, and it uses... 4 _four_ variables to remember the encoding used. I think three is OK. Four is not. If somebody feels like cleaning this up, he is really welcome. */ #define PRINT_HEADER \ (!IS_EMPTY(job->header)) #define PRINT_FOOTER \ (!IS_EMPTY(job->footer) \ || !IS_EMPTY(job->left_footer) \ || !IS_EMPTY(job->right_footer)) #define PRINT_TITLE \ (!IS_EMPTY(job->center_title) \ || !IS_EMPTY(job->left_title) \ || !IS_EMPTY(job->right_title)) /* Width in characters for line prefix */ #define prefix_size (job->numbering ? 5 : 0) #define jdiv job->divertion /****************************************************************/ /* Reporting the known prologues */ /****************************************************************/ /* * List the prologues */ void prologues_list_short (a2ps_job * job, FILE * stream) { fputs (_("Known Prologues"), stream); putc ('\n', stream); pw_lister_on_suffix (stream, job->common.path, PS_PROLOGUE_SUFFIX); } /* * Print a prologue signature */ static void prologue_print_signature (struct a2ps_job * job, const char * prologue_name, FILE * stream, const char * name_format, documentation_fn_t documentation_fn) { FILE * fp; char * filename; char * buf = NULL; int done = false; unsigned firstline = 0, lastline = 0; size_t bufsiz = 0; char buf2[BUFSIZ]; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" fprintf (stream, name_format, prologue_name); #pragma GCC diagnostic pop filename = xpw_find_file (job->common.path, prologue_name, PS_PROLOGUE_SUFFIX); fp = xrfopen (filename); /* Dump rest of file. */ while ((getshline_numbered (&firstline, &lastline, &buf, &bufsiz, fp) != -1) && !done) { #define DOC_TAG "Documentation" #define END_DOC_TAG "EndDocumentation" if (strprefix (DOC_TAG, buf)) { /* We don't use getshline, because we do want the * ``empty'' lines to be kept: they separate the * paragraphs */ while (fgets (buf2, sizeof(buf2), fp) && !strprefix (END_DOC_TAG, buf2)) { if (strlen (buf2) < sizeof (buf2)) lastline++; (*documentation_fn) (buf2, "%s", stream); } #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" if (!strprefix (END_DOC_TAG, buf2)) error (1, 0, filename, firstline, _("missing argument for `%s'"), "`Documentation'"); #pragma GCC diagnostic pop done = true; } } putc ('\n', stream); fclose (fp); } /* * List the prologues together with there description */ static void prologues_list_long_internal (a2ps_job * job, FILE * stream, const char * name_format, documentation_fn_t documentation_fn) { struct darray * entries; size_t i; entries = pw_glob_on_suffix (job->common.path, PS_PROLOGUE_SUFFIX); for (i = 0 ; i < entries->len ; i++) prologue_print_signature (job, entries->content[i], stream, name_format, documentation_fn); } void prologues_list_long (a2ps_job * job, FILE * stream) { fputs (_("Known Prologues"), stream); putc ('\n', stream); prologues_list_long_internal (job, stream, "Prologue \"%s\":\n", documentation_print_plain); } void prologues_list_texinfo (a2ps_job * job, FILE * stream) { fputs ("@table @samp\n", stream); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wsuggest-attribute=format" prologues_list_long_internal (job, stream, "@item %s\n", documentation_print_texinfo); #pragma GCC diagnostic pop fputs ("@end table\n", stream); } /* * We want to optimize the number of fonts defined in the * postscript: we may run into limitcheck on poor printers * The optimization is not very strong: we consider that * if say fce is used in a face, then it will be produced * in _every_ encoding. A more parsimonous scheme may be * used, but I'm afraid to slow down the whole stuff because * of the test required. */ static void dump_encodings (FILE * stream, a2ps_job * job) { /* If the encoding is the main encoding (that of the * headers etc.), dump what is required for the headers */ output_dump (job->ps_encodings, stream); } /****************************************************************/ /* Printing a document */ /****************************************************************/ static void dump_prolog_comments (FILE * stream, struct a2ps_job * job) { char * cp; /* * Fixme: Put all this in output_first_line? */ fputs ((char *) job->status->magic_number, stream); putc ('\n', stream); cp = expand_user_string (job, FIRST_FILE (job), "Document title", job->title); fprintf (stream, "%%%%Title: %s\n", cp); cp = expand_user_string (job, FIRST_FILE (job), "User Name", "%N"); fprintf (stream, "%%%%For: %s\n", cp); fprintf (stream, "%%%%Creator: %s version %s\n", PACKAGE, VERSION); fprintf (stream, "%%%%CreationDate: %s", asctime(&job->run_tm)); fprintf (stream, "%%%%BoundingBox: %u %u %u %u\n", job->medium->llx, job->medium->lly, job->medium->urx, job->medium->ury); fprintf (stream, "%%%%DocumentData: Clean7Bit\n"); fprintf (stream, "%%%%Orientation: %s\n", (job->orientation == landscape) ? "Landscape" : "Portrait"); fprintf (stream, "%%%%Pages: %zu\n", job->sheets); if (job->status->page_are_ordered) fprintf (stream, "%%%%PageOrder: Ascend\n"); else fprintf (stream, "%%%%PageOrder: Special\n"); fprintf (stream, "%%%%DocumentMedia: %s %u %u 0 () ()\n", job->medium->name, job->medium->w, job->medium->h); dump_needed_resources (stream, job); dump_process_color (stream, job); dump_requirements (stream, job); dump_supplied_resources (stream, job); fputs ("%%EndComments\n", stream); /* This is mostly useful wrt users who are not able to say exactely what they did. */ if (ps_comment_hook) ps_comment_hook (job, stream); } /* * Print the PostScript prolog. */ static void output_prolog (a2ps_job * job) { /* Comments */ output_delayed_routine (jdiv, (delayed_routine_t) dump_prolog_comments, (void *) job); /* If we are in debug mode, download a PS error handler */ if (job->debug) output_file (jdiv, job, "ehandler", ".ps"); /* a2ps dict, (needed for good eps files) */ output (jdiv, "/a2psdict 200 dict def\n"); output (jdiv, "a2psdict begin\n"); /* Prolog */ output (jdiv, "%%%%BeginProlog\n"); output_file (jdiv, job, job->prolog, ".pro"); output (jdiv, "%%%%EndProlog\n"); } /* * Print the PostScript document setup part. */ static void output_document_setup (a2ps_job * job) { size_t i, j; /* Set up */ output (jdiv, "%%%%BeginSetup\n"); /* At this point, everything should be known about the faces */ check_face_eo_font (job); /* At this point, yet we know the value of the * the fonts used for each face. job->requested_encoding is * the only encoding which does know its faces_wx yet */ encoding_build_faces_wx (job, job->requested_encoding); /* Encodings used */ output_delayed_routine (jdiv, (delayed_routine_t) dump_encodings, (void *) job); /* Fonts used */ output_delayed_routine (jdiv, (delayed_routine_t) dump_fonts, (void *) job); /* Complete the prolog with static variables */ output (jdiv, "%% Initialize page description variables.\n"); switch (job->orientation) { case portrait: /* FIXME: prendre en compte les marges */ output (jdiv, "/sh %u def\n", job->medium->h); output (jdiv, "/sw %u def\n", job->medium->w); output (jdiv, "/llx %u def\n", job->medium->llx); output (jdiv, "/urx %u def\n", job->medium->urx - job->margin); output (jdiv, "/ury %u def\n", job->medium->ury); output (jdiv, "/lly %u def\n", job->medium->lly); break; case landscape: output (jdiv, "/sh %u def\n", job->medium->w); output (jdiv, "/sw %u def\n", job->medium->h); output (jdiv, "/llx %u def\n", job->medium->lly); output (jdiv, "/urx %u def\n", job->medium->ury); output (jdiv, "/ury %u def\n", job->medium->w - job->medium->llx); output (jdiv, "/lly %u def\n", job->medium->w - job->medium->urx + job->margin); break; } /* Misceleanous PostScript variables */ output (jdiv, "/#copies %u def\n", job->copies); /* Page prefeed */ if (job->page_prefeed) output (jdiv, "true page_prefeed\n"); /* statusdict definitions */ output_statusdict (job); /* Page device definitions */ output_pagedevice (job); /* Header size */ output (jdiv, "/th %f def\n", (double) job->status->title_bar_height); /* General format */ /* Font sizes */ output (jdiv, "/fnfs %d def\n", job->status->title_font_size); output (jdiv, "/bfs %f def\n", (double) job->fontsize); output (jdiv, "/cw %f def\n", (double) job->fontsize * 0.6); /* char width */ output (jdiv, "\n"); /* Are diverted: * 1. setup of the fonts * 2. %%(Begin|End)Setup parts read in the various ps files. */ output_delayed_routine (jdiv, (delayed_routine_t) dump_encodings_setup, (void *) job); output_delayed_routine (jdiv, (delayed_routine_t) dump_setup, (void *) job); /* Sorry for the length of the name... */ output_delayed_routine (jdiv, (delayed_routine_t) font_info_table_dump_special_font_setup, (void *) job); output (jdiv, "/hm fnfs 0.25 mul def\n"); /* Page attributes */ output (jdiv, "/pw\n"); output (jdiv, " cw %f mul\n", (double) job->status->columnsperline + 2 * SIDE_MARGIN_RATIO); output (jdiv, "def\n"); output (jdiv, "/ph\n"); output (jdiv, " %f th add\n", (job->status->linesperpage + BOTTOM_MARGIN_RATIO) * (double) job->fontsize); output (jdiv, "def\n"); if (job->columns > 1) output (jdiv, "/pmw urx llx sub pw %zu mul sub %zu div def\n", job->columns, job->columns - 1); else output (jdiv, "/pmw 0 def\n"); if (job->rows > 1) output (jdiv, "/pmh ury lly sub ph %zu mul sub %u sub %zu div def\n", job->rows, (unsigned) (PRINT_HEADER + PRINT_FOOTER) * HEADERS_H, job->rows - 1); else output (jdiv, "/pmh 0 def\n"); output (jdiv, "/v 0 def\n"); switch (job->madir) { case madir_rows: output (jdiv, "/x [\n"); for (j = 1 ; j <= job->rows ; j++) { output (jdiv, " 0\n"); for (i = 2 ; i <= job->columns ; i++) output (jdiv, " dup pmw add pw add\n"); } output (jdiv, "] def\n"); output (jdiv, "/y [\n"); for (j = job->rows ; 1 <= j ; j--) { output (jdiv, " pmh ph add %zu mul ph add\n", j - 1); for (i = 2 ; i <= job->columns ; i++) output (jdiv, " dup\n"); } output (jdiv, "] def\n"); break; case madir_columns: output (jdiv, "/x [\n"); for (i = 1 ; i <= job->columns ; i++) { output (jdiv, " pmw pw add %zu mul\n", i - 1); for (j = 2 ; j <= job->rows ; j++) { output (jdiv, " dup\n"); } } output (jdiv, "] def\n"); output (jdiv, "/y [\n"); for (i = 1 ; i <= job->columns ; i++) for (j = job->rows ; j >= 1 ; j--) { output (jdiv, " pmh ph add %zu mul ph add\n", j - 1); } output (jdiv, "] def\n"); break; default: error (1, 0, "output_document_setup: bad switch"); break; } output (jdiv, "/scx sw 2 div def\n"); output (jdiv, "/scy sh 2 div def\n"); output (jdiv, "/snx urx def\n"); output (jdiv, "/sny lly 2 add def\n"); output (jdiv, "/dx llx def\n"); output (jdiv, "/dy sny def\n"); output (jdiv, "/fnx scx def\n"); output (jdiv, "/fny dy def\n"); output (jdiv, "/lx snx def\n"); output (jdiv, "/ly ury fnfs 0.8 mul sub def\n"); output (jdiv, "/sx %d def\n", prefix_size); output (jdiv, "/tab %u def\n", job->tabsize); output (jdiv, "/x0 0 def\n"); output (jdiv, "/y0 0 def\n"); /* Close prolog */ output (jdiv, "%%%%EndSetup\n\n"); } static void end_document (a2ps_job * job) { page_flush (job); output (jdiv, "\n%%%%Trailer\n"); if (job->page_prefeed) output (jdiv, "false page_prefeed\n"); /* Close a2ps dict. */ output (jdiv, "end\n"); output (jdiv, "%%%%EOF\n"); } /************************************************************************ * Routines called by the main loop * ************************************************************************/ /* * Called by the main loop to initialize postscript printing */ void ps_begin (a2ps_job * job) { float area_w = 0.0, area_h = 0.0; /* Dimension of drawable area */ float printing_h, printing_w; /* Body size of virtual pages */ struct medium * medium = job->medium; /* Postcript prolog printing */ /* This will allow us to read information from the prologs, * such as the size they'd like to have to print the headers, * before we actually calculate the parameters */ output_prolog (job); job->virtual = 0; switch (job->orientation) { case portrait: area_h = (float) (medium->ury - medium->lly /* Room for header and footer */ - (unsigned) (PRINT_HEADER + PRINT_FOOTER) * HEADERS_H); area_w = (float) (medium->urx - medium->llx - job->margin); break; case landscape: area_w = (float) (medium->ury - medium->lly); area_h = (float) (medium->urx - medium->llx /* Room for header and footer */ - (unsigned) (PRINT_HEADER + PRINT_FOOTER) * HEADERS_H - job->margin); break; } /* Initialize variables related to the header */ if (!PRINT_TITLE) { job->status->title_font_size = 11; job->status->title_bar_height = 0.0; } else if (job->columns * job->rows > 1) { job->status->title_font_size = 11; job->status->title_bar_height = LANDSCAPE_HEADER; } else { job->status->title_font_size = 15; job->status->title_bar_height = PORTRAIT_HEADER; } /* Area inside the frame of a virtual page */ printing_h = ((area_h /* room for title */ - (float) job->rows * job->status->title_bar_height /* Space between the virtual pages */ - (float) ((job->rows > 1) ? PAGE_MARGIN : 0)) / (float) job->rows); printing_w = ((area_w /* Space between the virtual pages */ - (float) ((job->columns > 1) ? PAGE_MARGIN : 0)) / (float) job->columns); /* * Determine the font size according to (decreasing priority): * 1. --font=@<size> * 2. --columns-per-page, * 3. --lines-per-page, * 4. default values */ /* width = 0.6 font size */ if (job->columns_requested != 0) { job->fontsize = (float) (((double) printing_w / (job->columns_requested + prefix_size + 2 * SIDE_MARGIN_RATIO)) / 0.6); } else if (job->lines_requested != 0) { job->fontsize = (float) ((double) printing_h / (job->lines_requested + BOTTOM_MARGIN_RATIO)); } else if (job->fontsize == 0.0f) job->fontsize = (float) ((job->orientation == landscape) ? 6.8 : (job->columns * job->rows > 1) ? 6.4 : 9.0); /* fontsize is OK. Calculate the other variables */ job->status->linesperpage = (unsigned) ((double) (printing_h / job->fontsize) - BOTTOM_MARGIN_RATIO); job->status->columnsperline = (unsigned) ((double) (printing_w / (job->fontsize * 0.6f)) - 2 * SIDE_MARGIN_RATIO); if (job->columns_requested > 0) job->status->columnsperline = job->columns_requested + prefix_size; else if (job->lines_requested > 0) job->status->linesperpage = job->lines_requested; if (job->status->linesperpage <= 0 || job->status->columnsperline <= 0) error (1, 0, _("font %f too big"), (double) job->fontsize); job->status->wxperline = (job->status->columnsperline - prefix_size) * COURIER_WX; output_document_setup (job); /* Set the encoding. Usualy it is done in begin_sheet, but * begin_sheet may not be called if, for instance, the first page is * skip (by --pages). We must guarantee at least the first encoding * * FIXME: This does not work. For instance if encoding=ascii, * and the first thing that the doc does is the switch to * latin1. Then, there is an encoding closed that was not opened in the ps. */ /* set_encoding (job, job->requested_encoding);*/ job->saved_encoding = job->requested_encoding; } /* * Finish the poscript printing */ void ps_end (a2ps_job * job) { /* Make sure that the output is really processed. It * could have been closed by a page range selection, but * the trailer must be dumped */ output_to_void (job->divertion, false); /* Close the postscript file */ end_document (job); /* Undivert */ undivert (job); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/prolog.h������������������������������������������������������������������������0000644�0000000�0000000�00000003345�14251132535�012357� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* prolog.h - routines for postscript prologue handling Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PROLOG_H_ #define _PROLOG_H_ #define PORTRAIT_HEADER 20 #define LANDSCAPE_HEADER 15 #define PAGE_MARGIN 12U /* space between virtual pages */ #define HEADERS_H 12U /* Space for header/footer */ /* Space between lowest line in the text, and bottom of the frame */ #define SIDE_MARGIN_RATIO 0.7 #define BOTTOM_MARGIN_RATIO 0.7 struct a2ps_job; typedef void (*a2ps_job_stream_hook) (struct a2ps_job * job, FILE * stream); /* A hook called when --debug, at the end of the ps comments */ extern a2ps_job_stream_hook ps_comment_hook; void ps_begin (struct a2ps_job * job); void ps_end (struct a2ps_job * job); void ps_end_file (struct a2ps_job * job); /* * List of the prologue */ void prologues_list_short (struct a2ps_job * job, FILE * stream); void prologues_list_long (struct a2ps_job * job, FILE * stream); void prologues_list_texinfo (struct a2ps_job * job, FILE * stream); #endif /* !defined(_PROLOGUE_H) */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/psgen.c�������������������������������������������������������������������������0000644�0000000�0000000�00000063016�14405640437�012173� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* psgen.c - routines for the postscript generation Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" /* most global variables */ #include "prolog.h" #include "psgen.h" #include "routines.h" /* general interest routines */ #include "output.h" /* Diverted outputs */ #include "media.h" #include "faces.h" #include "metaseq.h" #include "message.h" #include "fonts.h" #include "dsc.h" #include "jobs.h" #include "fjobs.h" #include "prange.h" #define PRINT_HEADER \ (!IS_EMPTY(job->header)) #define PRINT_FOOTER \ (!IS_EMPTY(job->footer) \ || !IS_EMPTY(job->left_footer) \ || !IS_EMPTY(job->right_footer)) #define PRINT_TITLE \ (!IS_EMPTY(job->center_title) \ || !IS_EMPTY(job->left_title) \ || !IS_EMPTY(job->right_title)) #define jdiv job->divertion /* return the max of two >-comparable stuff */ #define A2_MAX(X,Y) (((X) > (Y)) ? (X) : (Y)) /****************************************************************/ /* Formating help routines */ /****************************************************************/ /* * Print a char in a form accepted by postscript printers. * Returns number of columns used (on the output) to print the char. */ static unsigned ps_escape_char (a2ps_job * job, unsigned char c, char * res) { unsigned len = 0; /* The number of columns used must be calculated here because of the * \ before non-ascii chars, and (, ), and \ itself */ /* Printable and 7bit clean characters */ if (' ' <= c && c < 0177) { if (c == '(' || c == ')' || c == '\\') STRCCAT(res, '\\'); STRCCAT(res, c); return 1; } /* Printable, but not 7-bit clean characters */ if (encoding_char_exists (job->encoding, job->status->face, (char) c) && ((0177 < c) || (c < 040))) { char oct[5]; int chars = sprintf (oct, "\\%o", c); for (int i = 0; i < chars; i++) STRCCAT(res, oct[i]); return 1; } /* We are dealing with a non-printing character */ job->status->nonprinting_chars++; /* We do this in here for speed. We could have first escaped, then consider the new string as the string to ps-escape. */ switch (job->unprintable_format) { case octal: sprintf (res, "\\\\%03o", c); return 4; case hexa: sprintf (res, "\\\\x%02x", c); return 4; case question_mark: STRCCAT (res, '?'); return 1; case space: STRCCAT (res, ' '); return 1; case caret: if (0177 < c) { strcat(res, "M-"); len += 2; c &= 0177; } if (c < ' ') { STRCCAT(res, '^'); len += 2; c = (unsigned char) ((char)c + '@'); if (c == '(' || c == ')' || c == '\\') STRCCAT(res, '\\'); STRCCAT(res, c); } else if (c == 0177) { strcat(res, "^?"); len += 2; } else { if (c == '(' || c == ')' || c == '\\') STRCCAT(res, '\\'); STRCCAT(res, c); len++; } return len; case Emacs: if (0177 < c) { strcat(res, "M-"); len += 2; c &= 0177; } if (c < ' ') { strcat (res, "C-"); len += 3; c = (unsigned char) ((char)c + '@'); if (c == '(' || c == ')' || c == '\\') STRCCAT(res, '\\'); STRCCAT(res, c); } else if (c == 0177) { strcat(res, "C-?"); len += 3; } else { if (c == '(' || c == ')' || c == '\\') STRCCAT(res, '\\'); STRCCAT(res, c); len++; } return len; } return 0; } /* * Output the formated marker. */ static void output_marker (a2ps_job * job, const char * kind, char * marker) { char *cp, buf[256]; int i; cp = expand_user_string (job, CURRENT_FILE (job), kind, marker); for (i = 0 ; cp[i] ; i++) { switch (cp[i]) { case FILE_LAST_PAGE: output_delayed_size_t (jdiv, &(CURRENT_FILE (job)->last_page)); break; case FILE_LAST_SHEET: output_delayed_size_t (jdiv, &(CURRENT_FILE (job)->last_sheet)); break; case FILE_NB_PAGES: output_delayed_size_t (jdiv, &(CURRENT_FILE (job)->pages)); break; case FILE_NB_SHEETS: output_delayed_size_t (jdiv, &(CURRENT_FILE (job)->sheets)); break; case FILE_NB_LINES: output_delayed_size_t (jdiv, &(CURRENT_FILE (job)->lines)); break; case JOB_NB_PAGES: output_delayed_size_t (jdiv, &job->pages); break; case JOB_NB_SHEETS: output_delayed_size_t (jdiv, &job->sheets); break; case JOB_NB_FILES: output_delayed_size_t (jdiv, &job->total_files); break; default: *buf = '\0'; ps_escape_char (job, (unsigned char) cp[i], buf); output (jdiv, "%s", buf); break; } } } /****************************************************************/ /* Dealing with the encodings */ /****************************************************************/ /* * Change the current encoding */ void ps_set_encoding (a2ps_job * job, struct encoding * enc) { set_encoding (job, enc); job->status->opened_encoding = enc; output (jdiv, "%sdict begin\n", encoding_get_key (enc)); } void ps_end_encoding (a2ps_job * job) { if (job->status->opened_encoding) output (jdiv, "end %% of %sdict\n", encoding_get_key (job->status->opened_encoding)); set_encoding (job, NULL); job->status->opened_encoding = NULL; } /* * Switch of encoding while we are _not_ in the body. E.g., we * are dealing with the headers. * * We want to save the previous encoding, because, say we * were printing -X latin1, we have switched to latin2 dynamically. * Right now, we need to change page, * so we are using back latin1, but we must remember of latin2 * for the following page. */ static void ps_internal_switch_encoding (a2ps_job * job, struct encoding * enc) { if (job->encoding != enc) { /* If there are no dictionary opened yet, it is because we are * changing of dict outside the text body (e.g. even before * the first output char). In this case, do not open a * ps dict: it is not time yet. */ if (job->status->opened_encoding) { ps_end_encoding (job); ps_set_encoding (job, enc); } else { ps_end_encoding (job); set_encoding (job, enc); } /* Make sure to re-declare the font */ job->status->face_declared = false; } } /* * Switch the encoding during the print process (ie. from * within the body of the text) * We have to take care of closing the line currently being printed * and restore the state, i.e. opening a string to print. */ void ps_switch_encoding (a2ps_job * job, struct encoding * enc) { if (job->encoding != enc) { if (!job->status->start_line) { if (!job->status->face_declared) output (jdiv, ") %s\n", face_eo_ps (job->status->face)); else output (jdiv, ") S\n"); } ps_internal_switch_encoding (job, enc); job->saved_encoding = enc; if (!job->status->start_line) output_char (jdiv, '('); } } static void ps_push_encoding (a2ps_job * job, struct encoding * enc) { job->saved_encoding = job->encoding; ps_internal_switch_encoding (job, enc); } static void ps_pop_encoding (a2ps_job * job) { ps_internal_switch_encoding (job, job->saved_encoding); } /****************************************************************/ /* Printing a physical page */ /****************************************************************/ /* * Print the prolog necessary for printing each physical page. * Adobe convention for page independence is enforced through this routine. * Note that is may called for a second time on a single sheet if two * different files are printed on the same sheet. */ static void page_begin (a2ps_job * job) { job->virtual = 1; if (print_page (job, job->pages)) job->sheets++; /* The number of pages has not been updated yet: add 1 */ CURRENT_FILE (job)->top_page = CURRENT_FILE (job)->pages + 1; /* * Getting ready to delay the page label * This means to build a new string handler, store it, and fill it later * We do this because one would like to have all the information on * what is on the current page before making the page label. */ if (!output_is_to_void (jdiv)) { output (jdiv, "%%%%Page: ("); job->status->page_label = XMALLOC (char *); output_delayed_string (jdiv, job->status->page_label); output (jdiv, ") %zu\n", job->sheets); } /* Reinitialize state variables for each new sheet */ output (jdiv, "%%%%BeginPageSetup\n"); output (jdiv, "/pagesave save def\n"); /* Shift front side sheets */ if (job->margin && (job->duplex == simplex || (job->sheets % 2))) output (jdiv, "%u 0 translate\n", job->margin); if (job->orientation == landscape) output (jdiv, "sh 0 translate 90 rotate\n"); output (jdiv, "%%%%EndPageSetup\n"); if (job->debug) output (jdiv, "\ %% Display the bounding box\n\ gsave\n\ llx lly moveto\n\ 2 setlinewidth\n\ 0.9 setgray\n\ urx lly lineto\n\ urx ury lineto\n\ llx ury lineto\n\ closepath stroke\n\ grestore\n\n"); /* Set the encoding */ ps_set_encoding (job, job->requested_encoding); /* water marks (only once per sheet) */ if (!IS_EMPTY(job->water)) { output_char (jdiv, '('); output_marker (job, "water mark", job->water); output (jdiv, ") %4.2f water\n", (atan2 ((double) job->medium->w - job->margin, (double) job->medium->h) / 3.14159265 * 180)); } /* Move to the lower left point of the drawable area */ output (jdiv, "gsave\n"); output (jdiv, "llx lly %u add translate\n", PRINT_FOOTER * HEADERS_H); /* Set the encoding */ ps_internal_switch_encoding (job, job->saved_encoding); } /* The job on the page is over: puts the headers and footers, * then print the physical page. */ static void page_end (a2ps_job * job) { /* The page label has been divertered (through a handler). * Fill that handler with the correct page label value */ *(job->status->page_label) = xstrdup (expand_user_string (job, CURRENT_FILE (job), "Page label", job->status->page_label_format)); output (jdiv, "grestore\n"); /* All the headers should be written using the requested encoding */ ps_push_encoding (job, job->requested_encoding); /* Print the right header */ if (PRINT_HEADER) { output_char (jdiv, '('); output_marker (job, "right header", job->header); output (jdiv, ") rhead\n"); } /* Print the center footer. * Use dynamic markers in priority */ if (PRINT_FOOTER) { if (!IS_EMPTY(job->footer)) { output_char (jdiv, '('); output_marker (job, "center footer", job->footer); output (jdiv, ") "); } else output (jdiv, "() "); /* Print the right footer */ if (!IS_EMPTY(job->right_footer)) { output_char (jdiv, '('); output_marker (job, "right footer", job->right_footer); output (jdiv, ") "); } else output (jdiv, "() "); /* Print the left footer */ if (!IS_EMPTY(job->left_footer)) { output_char (jdiv, '('); output_marker (job, "left footer", job->left_footer); output (jdiv, ") "); } else output (jdiv, "() "); output (jdiv, "footer\n"); } /* Close the current encoding */ ps_end_encoding (job); output (jdiv, "pagesave restore\n"); output (jdiv, "showpage\n"); job->virtual = 0; } /****************************************************************/ /* Printing a virtual page */ /****************************************************************/ /* * Prints page header and page border and * initializes printing of the file lines. */ static void virtual_begin (a2ps_job * job) { job->pages++; if (print_page (job, job->pages)) { output_to_void (jdiv, false); job->virtual++; } else { output_to_void (jdiv, true); } /* We test to one, since it has just been incremented above */ if (job->virtual == 1) page_begin (job); if (!job->encoding) ps_set_encoding (job, job->saved_encoding); file_job_synchronize_pages (job); file_job_synchronize_sheets (job); output (jdiv, "/v %u store\n", job->virtual - 1); output (jdiv, "/x0 x v get %f add sx cw mul add store\n", SIDE_MARGIN_RATIO * (double) job->fontsize * 0.6); output (jdiv, "/y0 y v get bfs %s sub store\n", PRINT_TITLE ? "th add" : ""); output (jdiv, "x0 y0 moveto\n"); } /* * Adds a sheet number to the page (footnote) and prints the formatted * page (physical impression). Activated at the end of each source page. */ static void virtual_end (a2ps_job * job) { /* * Print the titles with the option-given encoding */ /* Draw the header and its content */ if (PRINT_TITLE) { ps_push_encoding (job, job->requested_encoding); if (!IS_EMPTY(job->center_title)) { output_char (jdiv, '('); output_marker (job, "center title", job->center_title); output (jdiv, ") "); } else output (jdiv, "() "); if (!IS_EMPTY(job->right_title)) { output_char (jdiv, '('); output_marker (job, "right title", job->right_title); output (jdiv, ") "); } else output (jdiv, "() "); if (!IS_EMPTY(job->left_title)) { output_char (jdiv, '('); output_marker (job, "left title", job->left_title); output (jdiv, ") "); } else output (jdiv, "() "); output (jdiv, "title\n"); ps_pop_encoding (job); } if (job->border) output (jdiv, "border\n"); if (job->virtual == (job->columns * job->rows)) page_end (job); job->status->line = 0; } /* Issue an empty virtual (used for file alignment). */ static void virtual_empty_output (a2ps_job *job) { /* Let's use a hidden option which lets choose between an empty virtual (with headers etc.), or nothing printed at all. */ if (macro_meta_sequence_get (job, VAR_OPT_VIRTUAL_FORCE)) { virtual_begin (job); virtual_end (job); } else { /* Just increase the virtual number, that's enough. */ job->pages++; job->virtual++; if (job->virtual == (job->columns * job->rows)) page_end (job); } } /* * Flush the (physical) page, ready for new page * Used * -- at the end of the whole job * -- at the end of a page * -- when a fresh page is required (eg, when after an a2ps * generated ps page arrives a delegated ps file) */ void page_flush (a2ps_job * job) { /* Everything that follows _must_ be dumped */ output_to_void (job->divertion, false); /* If the sheet has not been printed, flush it */ if (job->virtual != 0) page_end (job); } /* Output an empty page (used for instance to align files. No page should be waiting (issue flushes before). */ static void page_empty_output (a2ps_job *job) { job->sheets++; file_job_synchronize_sheets (job); output (jdiv, "%%%%Page: (*) %zu\n", job->sheets); output (jdiv, "%% Empty Page\n"); output (jdiv, "showpage\n"); } static void sheet_flush (a2ps_job *job) { page_flush (job); /* Need an empty back side? */ if ((job->duplex == duplex || job->duplex == tumble) && (job->sheets % 2) != 0) page_empty_output (job); } /* * Make sure this a new sheet. * No DSC is done on the new page. This is used when delegated * ps file is inlined. */ void require_fresh_page (a2ps_job * job) { /* If this is not a blank sheet, end it */ if (job->virtual != 0) /* The clean up _must_ be done */ page_flush (job); } /****************************************************************/ /* Service routines */ /****************************************************************/ /* * Test if we have a binary file. * * Printing binary files is not very useful. We stop printing * if we detect one of these files. Our heuristic to detect them: * if 40% characters are non-printing characters, * the file is a binary file. (40% is taken from the case of a2ps istself). */ static void check_binary_file (a2ps_job * job) { if (job->status->chars > 120) { if (!job->print_binaries && (job->status->nonprinting_chars * 100 / job->status->chars) >= 40) error (1, 0, _("`%s' is a binary file, printing aborted"), CURRENT_FILE (job)->name); } } static inline void end_of_line (struct a2ps_job * job) { if (!job->status->face_declared) { output (jdiv, ") %s n\n", face_eo_ps (job->status->face)); job->status->face_declared = true; } else output (jdiv, ") N\n"); job->status->line++; job->status->column = 0; job->status->wx = 0; } #define page_full \ (job->status->line >= job->status->linesperpage) #define line_full (job->status->wx > job->status->wxperline) /* * Fold a line too long. */ static inline void fold_line (struct a2ps_job * job, enum face_e new_face) { job->lines_folded++; end_of_line (job); if (page_full) { virtual_end (job); virtual_begin (job); job->status->face_declared = false ; } if (job->numbering) { output (jdiv, "0 T ("); } else { /* This is a new line, hence we can consider that there is no need to close the current font: just consider it is the new font, but not declared. */ output_char (jdiv, '('); job->status->face_declared &= (job->status->face == new_face); job->status->face = new_face; } } /* * Print a char */ void ps_print_char (a2ps_job * job, char c, enum face_e new_face) { /* * Preprocessing (before printing): * - TABs expansion (see interpret option) * - FF and BS interpretation * - replace non printable characters by a space or a char sequence * like: * ^X for ascii codes < 0x20 (X = [@, A, B, ...]) * ^? for del char * M-c for ascii codes > 0x3f * - prefix parents and backslash ['(', ')', '\'] by backslash * (escape character in postcript) */ if (job->status->is_in_cut && (c != '\f' ) && (c != '\n')) return; job->status->is_in_cut = false; /* Start a new line ? */ if (job->status->start_line) { if (job->status->start_page) { /* only if there is something to print! */ virtual_begin (job); job->status->start_page = false ; /* This is the first line of a new page, hence we need (page * independance) to repeat the current font */ job->status->face = new_face; job->status->face_declared = false; if (job->numbering) { if (CURRENT_FILE (job)->lines % job->numbering == 0) output (jdiv, "(%zu) # (", CURRENT_FILE (job)->lines); else output (jdiv, "0 T ("); } else output_char (jdiv, '('); } else { /* This is a new line, but not the first in the page */ if (job->numbering) { if (CURRENT_FILE (job)->lines % job->numbering == 0) output (jdiv, "(%zu) # (", CURRENT_FILE (job)->lines); else output (jdiv, "0 T ("); } else { /* This is a new line, hence we can consider that there is no need to close the current font: just consider it is the new font, but not declared. */ output_char (jdiv, '('); /* Why the hell did I do this? */ /* FIXME: This is suppresed because of the changes of encoding */ job->status->face_declared = (job->status->face_declared && (job->status->face == new_face)); job->status->face = new_face; } } job->status->start_line = false; } /* * Interpret each character * * One of the tricky stuff is that we want to avoid uncessary * Changes of font. For instance, I see no point in * Updating the font right before a \n. */ switch (c) { case '\f': /* Form feed */ if (!job->interpret) goto print; /* Close current line */ if (!job->status->start_line) { end_of_line (job); job->status->start_line = true; } /* start a new page ? */ if (job->status->start_page) { virtual_begin (job); } /* Close current page and begin another */ virtual_end (job); job->status->start_page = true; break; case '\n': /* Now the primary eol is \n. It is up to a2ps-prog to change the * \r or \n\r to \n * The program */ (CURRENT_FILE (job))->lines++; job->status->start_line = true; end_of_line (job); if (page_full) { virtual_end (job); job->status->start_page = true ; } break; case '\t': if (!job->interpret) goto print; /* Is this a new font? */ if (job->status->face != new_face) { if (!job->status->face_declared) output (jdiv, ") %s\n(", face_eo_ps (job->status->face)); else output (jdiv, ") S\n("); job->status->face = new_face; job->status->face_declared = false; } /* Tabs are interpreted but we want to go to the same * column as if the font were Courier */ job->status->column = (A2_MAX(job->status->wx / COURIER_WX, job->status->column) / job->tabsize + 1) * job->tabsize; job->status->wx = job->status->column * COURIER_WX; if (line_full) { if (job->folding) { fold_line (job, new_face); } else { job->status->is_in_cut = true; return; } } /* Make sure that the font is given */ if (!job->status->face_declared) { output (jdiv, ") %s", face_eo_ps(job->status->face)); job->status->face_declared = true; } else output (jdiv, ") S"); output (jdiv, " %zu T (", job->status->column); break; print: default: { static unsigned char mb_flag = 0; char buf[256]; unsigned nchars; *buf = '\0'; /* Is this a new font? */ if (job->status->face != new_face) { if (!job->status->face_declared) output (jdiv, ") %s\n(", face_eo_ps (job->status->face)); else output (jdiv, ") S\n("); job->status->face = new_face; job->status->face_declared = false; } if ((unsigned char) c > 127 && encoding_get_composite_flag (job->encoding) && job->status->face != Symbol) { if (mb_flag) { nchars = ps_escape_char (job, mb_flag, buf) + ps_escape_char (job, (unsigned char) c, buf); job->status->wx += char_composite_WX(job); job->status->column += nchars; if (line_full) { if (job->folding) { fold_line (job, new_face); job->status->column = nchars*2; job->status->wx = char_composite_WX(job); } else { job->status->is_in_cut = true; return; } } mb_flag = 0; } else { mb_flag = (unsigned char) c; return; } } else { nchars = ps_escape_char (job, (unsigned char) c, buf); job->status->wx += char_WX (job, (unsigned char) c); job->status->column += nchars; if (line_full) { if (job->folding) { fold_line (job, new_face); job->status->column = nchars; job->status->wx = char_WX (job, (unsigned char)c); } else { job->status->is_in_cut = true; return; } } } output (jdiv, "%s", buf); job->status->chars += nchars; } break; } } /* * Print the content of a C string \0 terminated */ void ps_print_string (a2ps_job * job, char * string, enum face_e face) { while (*string) ps_print_char (job, *string++, face); } /* * Print the N first chars in BUFFER */ void ps_print_buffer (a2ps_job * job, const char * buffer, size_t start, size_t end, enum face_e face) { size_t i; for (i = start ; i < end ; i++) ps_print_char (job, buffer [i], face); } /* Handling the input sessions in an output session, i.e., typically the files. */ /* A new file will be printed. */ void ps_begin_file (a2ps_job *job) { /* Reinitialize the ps status */ initialize_ps_status (job->status); /* Alignment is not needed for the first file. */ if (job->jobs->len == 0) return; switch (job->file_align) { case file_align_virtual: /* Nothing to do. */ break; case file_align_rank: /* Issue virtual until we are in a new rank. */ { size_t alignment = job->madir == madir_rows ? job->columns : job->rows; while (job->pages % alignment != 0) virtual_empty_output (job); } break; case file_align_page: /* End the page if needed. */ page_flush (job); break; case file_align_sheet: /* End the sheet if needed. */ sheet_flush (job); break; default: /* job->file_align is a number. We must issue as many pages as needed to have a page number which is a multiple of FILE_ALIGN plus one. */ page_flush (job); while ((job->sheets) % (size_t) job->file_align != 0) page_empty_output (job); break; } } void ps_end_file (a2ps_job *job) { /* If a line was not finished, close it. * Typically, no \n at end of file */ if (!job->status->start_line) { if (!job->status->face_declared) output (jdiv, ") %s\n", face_eo_ps (job->status->face)); else output (jdiv, ") S\n"); } if (!job->status->start_page) virtual_end (job); /* Set the number of pages/sheets printed */ file_job_synchronize_pages (job); file_job_synchronize_sheets (job); /* If we don't want to print binaries, complain and quit */ check_binary_file (job); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/psgen.h�������������������������������������������������������������������������0000644�0000000�0000000�00000003152�14251132535�012165� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* psgen.h - routines for the postscript generation Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PSGEN_H_ #define _PSGEN_H_ struct a2ps_job; struct encoding; #include "faces.h" void ps_print_char (struct a2ps_job * job, char c, enum face_e face); void ps_print_string (struct a2ps_job * job, char * string, enum face_e face); void ps_print_buffer (struct a2ps_job * job, const char * buffer, size_t start, size_t end, enum face_e face); void ps_begin_file (struct a2ps_job * job); void ps_end_file (struct a2ps_job * job); void page_flush (struct a2ps_job * job); void require_fresh_page (struct a2ps_job * job); /* * Multi-lingual routines */ void ps_set_encoding (struct a2ps_job * job, struct encoding * encoding); void ps_end_encoding (struct a2ps_job * job); void ps_switch_encoding (struct a2ps_job * job, struct encoding * encoding); #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/psstat.c������������������������������������������������������������������������0000644�0000000�0000000�00000023730�14251132535�012366� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* psstat.c - recording information about the PostScript process Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "psstat.h" #include "jobs.h" #include "routines.h" #include "dsc.h" /************************************************************************ * Monovalued hash tables * ************************************************************************/ /* Definition of the hash'd structure used for page device definitions */ typedef struct dict_entry { char * key; char * value; int def; } dict_entry; /* * Used with the page device(-D), and status dict (-S) definitions */ static unsigned long key_hash_1 (void const *key) { return_STRING_HASH_1 (((const dict_entry *)key)->key); } static unsigned long key_hash_2 (void const *key) { return_STRING_HASH_2 (((const dict_entry *)key)->key); } static int key_hash_cmp (void const *x, void const *y) { return_STRING_COMPARE (((const dict_entry *)x)->key, ((const dict_entry *)y)->key); } static struct hash_table_s * new_dict_entry_table (void) { static struct hash_table_s * res; res = XMALLOC (hash_table); hash_init (res, 8, key_hash_1, key_hash_2, key_hash_cmp); return res; } static void dict_entry_add (struct hash_table_s * table, const char * key, const char * value, int def) { dict_entry * item = XMALLOC (dict_entry); item->key = xstrdup (key); item->value = xstrdup (value); item->def = def; hash_insert (table, item); } static dict_entry * dict_entry_get (struct hash_table_s * table, const char * key) { struct dict_entry token; token.key = (char *) key; return (struct dict_entry *) hash_find_item (table, &token); } static void dict_entry_remove (struct hash_table_s * table, const char * key) { struct dict_entry * item; item = dict_entry_get (table, key); if (item) hash_delete (table, item); } /************************************************************************/ /* Dealing with the structure (creation etc.) that will be kept */ /* in JOB */ /************************************************************************/ /* * Private information for the PS generation engine */ struct ps_status * new_ps_status (void) { struct ps_status * res = XMALLOC (struct ps_status); /* The very first line of a PS file */ res->magic_number = xstrdup ("%!PS-Adobe-3.0"); /* By default, the list of page number intervals */ res->page_label_format = xstrdup ("#!s|$p-|, |"); /* At the beginning, no encoding dict is opened */ res->opened_encoding = NULL; /* After delegating the order is no longer respected */ res->page_are_ordered = true; /* for fonts etc. */ res->needed_resources = multivalued_table_new (); /* Things to put in the preamble */ res->supplied_resources = multivalued_table_new (); /* for setpagedevice */ res->pagedevice = new_dict_entry_table (); /* PS statusdict definitions */ res->statusdict = new_dict_entry_table (); /* The setups read in the files */ res->setup = output_new ("setup"); return res; } /* * Called for each new input session. */ void initialize_ps_status (struct ps_status * status) { /* This one will be malloc'd for each (physical) page. * Hence, do not risk to touch it, unless you want to SEGV */ /* status->page_label = NULL;*/ /* Reinitialize the ps status */ status->start_page = true; status->start_line = true; status->line_continued = false; status->is_in_cut = false; status->face = Plain; status->face_declared = false; /* One could think in using * an extra value in ->face * (eg No_face), but it gets * painful with switches of * encodings... */ status->nonprinting_chars = 0; status->chars = 0; status->line = 0; status->column = 0; status->wx = 0; } /************************************************************************/ /* Dealing with the various components of this structure */ /************************************************************************/ /* * Used with the page device definitions (-D) */ static void dict_entry_print (void const * item, FILE * stream) { const dict_entry * tok = (const dict_entry *) item; if (tok->def) fprintf (stream, "%s::%s ", tok->key, tok->value); else fprintf (stream, "%s:%s ", tok->key, tok->value); } /* * Listing the content of a dict entry hash table */ static void dict_entry_table_dump (struct hash_table_s * table, FILE * stream) { int i; struct dict_entry ** items; items = (struct dict_entry **) hash_dump (table, NULL, NULL); for (i = 0 ; items [i] ; i++) dict_entry_print (items [i], stream); putc ('\n', stream); } /* Page device definitions */ void output_pagedevice (a2ps_job * job) { dict_entry ** entries = NULL; dict_entry ** entry; entries = (dict_entry **) hash_dump (job->status->pagedevice, NULL, NULL); if (!*entries) return; /* Protect calls to setpagedevice through a stopped environment. * (Cf. PDF spec, by Adobe) */ output (job->divertion, "\ %%%% Pagedevice definitions:\n\ countdictstack\n\ %% Push our own mark, since there can be several PS marks pushed depending\n\ %% where the failure really occured.\n\ /a2ps_mark\n\ {\n"); /* Each Pagedevice */ for (entry = entries ; *entry ; entry++) output (job->divertion, "\ %%%%BeginFeature: *%s %c%s\n\ (<<) cvx exec /%s (%s) cvx exec (>>) cvx exec setpagedevice\n\ %%%%EndFeature\n", (*entry)->key, toupper ((*entry)->value[0]), (*entry)->value + 1, (*entry)->key, (*entry)->value); /* Close the stopped env, and clear the stack */ output (job->divertion, "\ } stopped\n\ %% My cleartomark\n\ { /a2ps_mark eq { exit } if } loop\n\ countdictstack exch sub dup 0 gt\n\ {\n\ { end } repeat\n\ }{\n\ pop\n\ } ifelse\n"); } /* FIXME: Find some better scheme. But I don't want to do that before 4.11. This is the same routine as above, but which fputs instead of output. This routine will only be called when only a single delegated job is output, therefore a2ps's prologue will not be output, therefore there is a very high chance (contrary to the previous item) that the psutils have neutralized the setpagedevice operator. Here we really want to use it, hence the `systemdict /setpagedevice get exec' sequence instead of just `setpagdevice'. */ void pagedevice_dump (FILE *stream, a2ps_job * job) { dict_entry ** entries = NULL; dict_entry ** entry; entries = (dict_entry **) hash_dump (job->status->pagedevice, NULL, NULL); if (!*entries) return; /* Protect calls to setpagedevice through a stopped environment. * (Cf. PDF spec, by Adobe) */ fputs ("\ %% Pagedevice definitions:\n\ countdictstack\n\ % Push our own mark, since there can be several PS marks pushed depending\n\ % where the failure really occured.\n\ /a2ps_mark\n\ {\n", stream); /* Each Pagedevice */ for (entry = entries ; *entry ; entry++) fprintf (stream, "\ %%%%BeginFeature: *%s %c%s\n\ (<<) cvx exec /%s (%s) cvx exec (>>) cvx exec\n\ systemdict /setpagedevice get exec\n\ %%%%EndFeature\n", (*entry)->key, toupper ((*entry)->value[0]), (*entry)->value + 1, (*entry)->key, (*entry)->value); /* Close the stopped env, and clear the stack */ fputs ("\ } stopped\n\ % My cleartomark\n\ { /a2ps_mark eq { exit } if } loop\n\ countdictstack exch sub dup 0 gt\n\ {\n\ { end } repeat\n\ }{\n\ pop\n\ } ifelse\n", stream); } void dump_requirements (FILE * stream, struct a2ps_job * job) { dict_entry ** entries = NULL; dict_entry ** entry; entries = (dict_entry **) hash_dump (job->status->pagedevice, NULL, NULL); /* Dump only if there is something to say */ if (*entries) { fputs ("%%Requirements: ", stream); for (entry = entries ; *entry ; entry++) fprintf (stream, "%s ", (*entry)->key); putc ('\n', stream); } /* We don't want this one which breaks some collating systems output (job->divertion, "numcopies(%d)", job->copies); */ } void setpagedevice (a2ps_job * job, const char * key, const char * value) { dict_entry_add (job->status->pagedevice, key, value, false); } void delpagedevice (a2ps_job * job, const char * key) { dict_entry_remove (job->status->pagedevice, key); } /* * For --list-options */ void list_pagedevice (a2ps_job * job, FILE * stream) { dict_entry_table_dump (job->status->pagedevice, stream); } /* * Used with the status dict definitions (-S) */ void setstatusdict (a2ps_job * job, const char * key, const char * value, int def) { dict_entry_add (job->status->statusdict, key, value, def); } void delstatusdict (a2ps_job * job, const char * key) { dict_entry_remove (job->status->statusdict, key); } void output_statusdict (a2ps_job * job) { dict_entry ** entries = NULL; dict_entry ** entry; entries = (dict_entry **) hash_dump (job->status->statusdict, NULL, NULL); if (*entries) { output (job->divertion, "%% Statustdict definitions:\n"); output (job->divertion, "statusdict begin\n"); for ( entry = entries ; *entry ; entry++) if ((*entry)->def) output (job->divertion, " /%s %s def\n", (*entry)->key, (*entry)->value); else output (job->divertion, " %s %s\n", (*entry)->value, (*entry)->key); output (job->divertion, "end\n"); } } /* * For --list-options */ void list_statusdict (a2ps_job * job, FILE * stream) { dict_entry_table_dump (job->status->statusdict, stream); } ����������������������������������������a2ps-4.15.5/liba2ps/psstat.h������������������������������������������������������������������������0000644�0000000�0000000�00000007322�14251132535�012372� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* psstat.h - recording information about the PostScript process Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PSSTAT_H_ #define _PSSTAT_H_ #include "encoding.h" #include "output.h" #include "confg.h" #include "media.h" #include "darray.h" #include "gen.h" #include "hashtab.h" typedef struct hash_table_s hash_table; /* Types of duplexing. */ enum duplex_e { simplex, duplex, tumble }; /* * Information that should be kept private to the postscript * generating engine of a2ps */ struct ps_status { /* Set once at the beginning */ unsigned int columnsperline; /* Characters per output line */ unsigned long wxperline; /* Points per output line */ unsigned linesperpage; /* Lines per page */ float title_bar_height; /* Height of the bar for v. pages title */ int title_font_size; /* Font size for the main title */ char * magic_number; /* The very first line of a PS file */ char * page_label_format; /* User string for %%Page: (here) */ struct encoding * opened_encoding;/* Current encoding dict opened */ /* Get enriched over the process */ int page_are_ordered; /* It might not be the case because of * the delegations */ hash_table * needed_resources;/* such as fonts etc. */ hash_table * supplied_resources;/* such as fonts etc. */ hash_table * colors; /* such as fonts etc. */ hash_table * pagedevice; /* for PS setpagedevice */ hash_table * statusdict; /* For PS statusdict definitions */ struct output * setup; /* Files read may have sth to put in the * set up part of the ps file */ /* Changes all the time and need to be reset between files */ char ** page_label; /* %%Page (this part) 1 */ int start_page; int start_line; int line_continued; int is_in_cut; /* Do we have to skip the incoming text */ enum face_e face; /* Current face */ int face_declared; /* Does the ps knows the current font? */ unsigned nonprinting_chars; unsigned chars; /* Number of nonprinting and total chars */ unsigned line; /* Line number (in current page) */ size_t column; /* Column number in chars */ unsigned long wx; /* Column number in pts (in current line) */ }; /* * Dealing with the structure */ struct ps_status * new_ps_status (void); void initialize_ps_status (struct ps_status * status); /* * Dealing with its content */ /* * setpagedevice */ void output_pagedevice (struct a2ps_job * job); void pagedevice_dump (FILE *stream, struct a2ps_job * job); void dump_requirements (FILE * stream, struct a2ps_job * job); void setpagedevice (struct a2ps_job * job, const char * key, const char * value); void delpagedevice (struct a2ps_job * job, const char * key); void list_pagedevice (struct a2ps_job * job, FILE * stream); /* * statusdict */ void output_statusdict (struct a2ps_job * job); void setstatusdict (struct a2ps_job * job, const char * key, const char * value, int def); void delstatusdict (struct a2ps_job * job, const char * key); void list_statusdict (struct a2ps_job * job, FILE * stream); #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/regex.c�������������������������������������������������������������������������0000644�0000000�0000000�00000514004�14374450457�012175� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Extended regular expression matching and search library, version 0.12. (Implements POSIX draft P1003.2/D11.2, except for some of the internationalization features.) Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #undef _GNU_SOURCE #define _GNU_SOURCE #include <config.h> #include <stddef.h> #define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC) /* For platform which support the ISO C amendement 1 functionality we support user defined character classes. */ #if defined _LIBC || WIDE_CHAR_SUPPORT /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */ # include <wchar.h> # include <wctype.h> #endif #ifdef _LIBC /* We have to keep the namespace clean. */ # define regfree(preg) __regfree (preg) # define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) # define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) # define regerror(errcode, preg, errbuf, errbuf_size) \ __regerror(errcode, preg, errbuf, errbuf_size) # define re_set_registers(bu, re, nu, st, en) \ __re_set_registers (bu, re, nu, st, en) # define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) # define re_match(bufp, string, size, pos, regs) \ __re_match (bufp, string, size, pos, regs) # define re_search(bufp, string, size, startpos, range, regs) \ __re_search (bufp, string, size, startpos, range, regs) # define re_compile_pattern(pattern, length, bufp) \ __re_compile_pattern (pattern, length, bufp) # define re_set_syntax(syntax) __re_set_syntax (syntax) # define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) # define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) #define btowc __btowc #endif /* This is for other GNU distributions with internationalized messages. */ #if HAVE_LIBINTL_H || defined _LIBC # include <libintl.h> #else # define gettext(msgid) (msgid) #endif #ifndef gettext_noop /* This define is so xgettext can find the internationalizable strings. */ # define gettext_noop(String) String #endif /* If we are not linking with Emacs proper, we can't use the relocating allocator even if config.h says that we can. */ # undef REL_ALLOC #include <stdlib.h> /* When used in Emacs's lib-src, we need to get bzero and bcopy somehow. If nothing else has been done, use the method below. */ # ifdef INHIBIT_STRING_HEADER # if !(defined HAVE_BZERO && defined HAVE_BCOPY) # if !defined bzero && !defined bcopy # undef INHIBIT_STRING_HEADER # endif # endif # endif /* This is the normal way of making sure we have a bcopy and a bzero. This is used in most programs--a few other programs avoid this by defining INHIBIT_STRING_HEADER. */ # ifndef INHIBIT_STRING_HEADER # include <string.h> # ifndef bzero # ifndef _LIBC # define bzero(s, n) (memset (s, '\0', n), (s)) # else # define bzero(s, n) __bzero (s, n) # endif # endif # endif /* Define the syntax stuff for \<, \>, etc. */ /* This must be nonzero for the wordchar and notwordchar pattern commands in re_match_2. */ # ifndef Sword # define Sword 1 # endif # ifdef SWITCH_ENUM_BUG # define SWITCH_ENUM_CAST(x) ((int)(x)) # else # define SWITCH_ENUM_CAST(x) (x) # endif /* How many characters in the character set. */ # define CHAR_SET_SIZE 256 # ifdef SYNTAX_TABLE extern char *re_syntax_table; # else /* not SYNTAX_TABLE */ static char re_syntax_table[CHAR_SET_SIZE]; static void init_syntax_once () { register int c; static int done = 0; if (done) return; bzero (re_syntax_table, sizeof re_syntax_table); for (c = 'a'; c <= 'z'; c++) re_syntax_table[c] = Sword; for (c = 'A'; c <= 'Z'; c++) re_syntax_table[c] = Sword; for (c = '0'; c <= '9'; c++) re_syntax_table[c] = Sword; re_syntax_table['_'] = Sword; done = 1; } # endif /* not SYNTAX_TABLE */ # define SYNTAX(c) re_syntax_table[c] /* Get the interface, including the syntax bits. */ #include <regex.h> /* isalpha etc. are used for the character classes. */ #include <ctype.h> #ifdef isblank # define ISBLANK(c) (isblank (c)) #else # define ISBLANK(c) ((c) == ' ' || (c) == '\t') #endif #ifdef isgraph # define ISGRAPH(c) (isgraph (c)) #else # define ISGRAPH(c) (isprint (c) && !isspace (c)) #endif #undef ISPRINT #define ISPRINT(c) isprint (c) #define ISDIGIT(c) isdigit (c) #define ISALNUM(c) isalnum (c) #define ISALPHA(c) isalpha (c) #define ISCNTRL(c) iscntrl (c) #define ISLOWER(c) islower (c) #define ISPUNCT(c) ispunct (c) #define ISSPACE(c) isspace (c) #define ISUPPER(c) isupper (c) #define ISXDIGIT(c)isxdigit (c) #define TOLOWER(c) tolower(c) #ifndef NULL # define NULL (void *)0 #endif /* We remove any previous definition of `SIGN_EXTEND_CHAR', since ours (we hope) works properly with all combinations of machines, compilers, `char' and `unsigned char' argument types. (Per Bothner suggested the basic approach.) */ #undef SIGN_EXTEND_CHAR #define SIGN_EXTEND_CHAR(c) ((signed char) (c)) #define REGEX_ALLOCATE malloc #define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize) #define REGEX_FREE free /* Define how to allocate the failure stack. */ #define REGEX_ALLOCATE_STACK malloc #define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize) #define REGEX_FREE_STACK free /* True if `size1' is non-NULL and PTR is pointing anywhere inside `string1' or just past its end. This works if PTR is NULL, which is a good thing. */ #define FIRST_STRING_P(ptr) \ (size1 && string1 <= (ptr) && (ptr) <= string1 + size1) /* (Re)Allocate N items of type T using malloc, or fail. */ #define TALLOC(n, t) ((t *) malloc ((n) * sizeof (t))) #define RETALLOC(addr, n, t) ((addr) = (t *) realloc (addr, (n) * sizeof (t))) #define RETALLOC_IF(addr, n, t) \ if (addr) RETALLOC((addr), (n), t); else (addr) = TALLOC ((n), t) #define REGEX_TALLOC(n, t) ((t *) REGEX_ALLOCATE ((n) * sizeof (t))) #define BYTEWIDTH 8 /* In bits. */ #define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) #undef MAX #undef MIN #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MIN(a, b) ((a) < (b) ? (a) : (b)) typedef char boolean; #define false 0 #define true 1 static int re_match_2_internal (struct re_pattern_buffer *bufp, const char *string1, int size1, const char *string2, int size2, int pos, struct re_registers *regs, int stop); /* These are the command codes that appear in compiled regular expressions. Some opcodes are followed by argument bytes. A command code can specify any interpretation whatsoever for its arguments. Zero bytes may appear in the compiled regular expression. */ typedef enum { no_op = 0, /* Succeed right away--no more backtracking. */ succeed, /* Followed by one byte giving n, then by n literal bytes. */ exactn, /* Matches any (more or less) character. */ anychar, /* Matches any one char belonging to specified set. First following byte is number of bitmap bytes. Then come bytes for a bitmap saying which chars are in. Bits in each byte are ordered low-bit-first. A character is in the set if its bit is 1. A character too large to have a bit in the map is automatically not in the set. */ charset, /* Same parameters as charset, but match any character that is not one of those specified. */ charset_not, /* Start remembering the text that is matched, for storing in a register. Followed by one byte with the register number, in the range 0 to one less than the pattern buffer's re_nsub field. Then followed by one byte with the number of groups inner to this one. (This last has to be part of the start_memory only because we need it in the on_failure_jump of re_match_2.) */ start_memory, /* Stop remembering the text that is matched and store it in a memory register. Followed by one byte with the register number, in the range 0 to one less than `re_nsub' in the pattern buffer, and one byte with the number of inner groups, just like `start_memory'. (We need the number of inner groups here because we don't have any easy way of finding the corresponding start_memory when we're at a stop_memory.) */ stop_memory, /* Match a duplicate of something remembered. Followed by one byte containing the register number. */ duplicate, /* Fail unless at beginning of line. */ begline, /* Fail unless at end of line. */ endline, /* Succeeds if at beginning of buffer (if emacs) or at beginning of string to be matched (if not). */ begbuf, /* Analogously, for end of buffer/string. */ endbuf, /* Followed by two byte relative address to which to jump. */ jump, /* Same as jump, but marks the end of an alternative. */ jump_past_alt, /* Followed by two-byte relative address of place to resume at in case of failure. */ on_failure_jump, /* Like on_failure_jump, but pushes a placeholder instead of the current string position when executed. */ on_failure_keep_string_jump, /* Throw away latest failure point and then jump to following two-byte relative address. */ pop_failure_jump, /* Change to pop_failure_jump if know won't have to backtrack to match; otherwise change to jump. This is used to jump back to the beginning of a repeat. If what follows this jump clearly won't match what the repeat does, such that we can be sure that there is no use backtracking out of repetitions already matched, then we change it to a pop_failure_jump. Followed by two-byte address. */ maybe_pop_jump, /* Jump to following two-byte address, and push a dummy failure point. This failure point will be thrown away if an attempt is made to use it for a failure. A `+' construct makes this before the first repeat. Also used as an intermediary kind of jump when compiling an alternative. */ dummy_failure_jump, /* Push a dummy failure point and continue. Used at the end of alternatives. */ push_dummy_failure, /* Followed by two-byte relative address and two-byte number n. After matching N times, jump to the address upon failure. */ succeed_n, /* Followed by two-byte relative address, and two-byte number n. Jump to the address N times, then fail. */ jump_n, /* Set the following two-byte relative address to the subsequent two-byte number. The address *includes* the two bytes of number. */ set_number_at, wordchar, /* Matches any word-constituent character. */ notwordchar, /* Matches any char that is not a word-constituent. */ wordbeg, /* Succeeds if at word beginning. */ wordend, /* Succeeds if at word end. */ wordbound, /* Succeeds if at a word boundary. */ notwordbound /* Succeeds if not at a word boundary. */ } re_opcode_t; /* Common operations on the compiled pattern. */ /* Store NUMBER in two contiguous bytes starting at DESTINATION. */ #define STORE_NUMBER(destination, number) \ do { \ (destination)[0] = (number) & 0377; \ (destination)[1] = (number) >> 8; \ } while (0) /* Same as STORE_NUMBER, except increment DESTINATION to the byte after where the number is stored. Therefore, DESTINATION must be an lvalue. */ #define STORE_NUMBER_AND_INCR(destination, number) \ do { \ STORE_NUMBER (destination, number); \ (destination) += 2; \ } while (0) /* Put into DESTINATION a number stored in two contiguous bytes starting at SOURCE. */ #define EXTRACT_NUMBER(destination, source) \ do { \ (destination) = *(source) & 0377; \ (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8; \ } while (0) #ifdef DEBUG static void extract_number _RE_ARGS ((int *dest, unsigned char *source)); static void extract_number (dest, source) int *dest; unsigned char *source; { int temp = SIGN_EXTEND_CHAR (*(source + 1)); *dest = *source & 0377; *dest += temp << 8; } # ifndef EXTRACT_MACROS /* To debug the macros. */ # undef EXTRACT_NUMBER # define EXTRACT_NUMBER(dest, src) extract_number (&dest, src) # endif /* not EXTRACT_MACROS */ #endif /* DEBUG */ /* Same as EXTRACT_NUMBER, except increment SOURCE to after the number. SOURCE must be an lvalue. */ #define EXTRACT_NUMBER_AND_INCR(destination, source) \ do { \ EXTRACT_NUMBER (destination, source); \ (source) += 2; \ } while (0) #ifdef DEBUG static void extract_number_and_incr _RE_ARGS ((int *destination, unsigned char **source)); static void extract_number_and_incr (destination, source) int *destination; unsigned char **source; { extract_number (destination, *source); *source += 2; } # ifndef EXTRACT_MACROS # undef EXTRACT_NUMBER_AND_INCR # define EXTRACT_NUMBER_AND_INCR(dest, src) \ extract_number_and_incr (&dest, &src) # endif /* not EXTRACT_MACROS */ #endif /* DEBUG */ /* If DEBUG is defined, Regex prints many voluminous messages about what it is doing (if the variable `debug' is nonzero). If linked with the main program in `iregex.c', you can enter patterns and strings interactively. And if linked with the main program in `main.c' and the other test files, you can run the already-written tests. */ #ifdef DEBUG /* We use standard I/O for debugging. */ # include <stdio.h> /* It is useful to test things that ``must'' be true when debugging. */ # include <assert.h> static int debug = 0; # define DEBUG_STATEMENT(e) e # define DEBUG_PRINT1(x) if (debug) printf (x) # define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2) # define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3) # define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4) # define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) \ if (debug) print_partial_compiled_pattern (s, e) # define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) \ if (debug) print_double_string (w, s1, sz1, s2, sz2) /* Print the fastmap in human-readable form. */ void print_fastmap (fastmap) char *fastmap; { unsigned was_a_range = 0; unsigned i = 0; while (i < (1 << BYTEWIDTH)) { if (fastmap[i++]) { was_a_range = 0; putchar (i - 1); while (i < (1 << BYTEWIDTH) && fastmap[i]) { was_a_range = 1; i++; } if (was_a_range) { printf ("-"); putchar (i - 1); } } } putchar ('\n'); } /* Print a compiled pattern string in human-readable form, starting at the START pointer into it and ending just before the pointer END. */ void print_partial_compiled_pattern (start, end) unsigned char *start; unsigned char *end; { int mcnt, mcnt2; unsigned char *p1; unsigned char *p = start; unsigned char *pend = end; if (start == NULL) { printf ("(null)\n"); return; } /* Loop over pattern commands. */ while (p < pend) { printf ("%d:\t", p - start); switch ((re_opcode_t) *p++) { case no_op: printf ("/no_op"); break; case exactn: mcnt = *p++; printf ("/exactn/%d", mcnt); do { putchar ('/'); putchar (*p++); } while (--mcnt); break; case start_memory: mcnt = *p++; printf ("/start_memory/%d/%d", mcnt, *p++); break; case stop_memory: mcnt = *p++; printf ("/stop_memory/%d/%d", mcnt, *p++); break; case duplicate: printf ("/duplicate/%d", *p++); break; case anychar: printf ("/anychar"); break; case charset: case charset_not: { register int c, last = -100; register int in_range = 0; printf ("/charset [%s", (re_opcode_t) *(p - 1) == charset_not ? "^" : ""); assert (p + *p < pend); for (c = 0; c < 256; c++) if (c / 8 < *p && (p[1 + (c/8)] & (1 << (c % 8)))) { /* Are we starting a range? */ if (last + 1 == c && ! in_range) { putchar ('-'); in_range = 1; } /* Have we broken a range? */ else if (last + 1 != c && in_range) { putchar (last); in_range = 0; } if (! in_range) putchar (c); last = c; } if (in_range) putchar (last); putchar (']'); p += 1 + *p; } break; case begline: printf ("/begline"); break; case endline: printf ("/endline"); break; case on_failure_jump: extract_number_and_incr (&mcnt, &p); printf ("/on_failure_jump to %d", p + mcnt - start); break; case on_failure_keep_string_jump: extract_number_and_incr (&mcnt, &p); printf ("/on_failure_keep_string_jump to %d", p + mcnt - start); break; case dummy_failure_jump: extract_number_and_incr (&mcnt, &p); printf ("/dummy_failure_jump to %d", p + mcnt - start); break; case push_dummy_failure: printf ("/push_dummy_failure"); break; case maybe_pop_jump: extract_number_and_incr (&mcnt, &p); printf ("/maybe_pop_jump to %d", p + mcnt - start); break; case pop_failure_jump: extract_number_and_incr (&mcnt, &p); printf ("/pop_failure_jump to %d", p + mcnt - start); break; case jump_past_alt: extract_number_and_incr (&mcnt, &p); printf ("/jump_past_alt to %d", p + mcnt - start); break; case jump: extract_number_and_incr (&mcnt, &p); printf ("/jump to %d", p + mcnt - start); break; case succeed_n: extract_number_and_incr (&mcnt, &p); p1 = p + mcnt; extract_number_and_incr (&mcnt2, &p); printf ("/succeed_n to %d, %d times", p1 - start, mcnt2); break; case jump_n: extract_number_and_incr (&mcnt, &p); p1 = p + mcnt; extract_number_and_incr (&mcnt2, &p); printf ("/jump_n to %d, %d times", p1 - start, mcnt2); break; case set_number_at: extract_number_and_incr (&mcnt, &p); p1 = p + mcnt; extract_number_and_incr (&mcnt2, &p); printf ("/set_number_at location %d to %d", p1 - start, mcnt2); break; case wordbound: printf ("/wordbound"); break; case notwordbound: printf ("/notwordbound"); break; case wordbeg: printf ("/wordbeg"); break; case wordend: printf ("/wordend"); case wordchar: printf ("/wordchar"); break; case notwordchar: printf ("/notwordchar"); break; case begbuf: printf ("/begbuf"); break; case endbuf: printf ("/endbuf"); break; default: printf ("?%d", *(p-1)); } putchar ('\n'); } printf ("%d:\tend of pattern.\n", p - start); } void print_compiled_pattern (bufp) struct re_pattern_buffer *bufp; { unsigned char *buffer = bufp->buffer; print_partial_compiled_pattern (buffer, buffer + bufp->used); printf ("%ld bytes used/%ld bytes allocated.\n", bufp->used, bufp->allocated); if (bufp->fastmap_accurate && bufp->fastmap) { printf ("fastmap: "); print_fastmap (bufp->fastmap); } printf ("re_nsub: %d\t", bufp->re_nsub); printf ("regs_alloc: %d\t", bufp->regs_allocated); printf ("can_be_null: %d\t", bufp->can_be_null); printf ("newline_anchor: %d\n", bufp->newline_anchor); printf ("no_sub: %d\t", bufp->no_sub); printf ("not_bol: %d\t", bufp->not_bol); printf ("not_eol: %d\t", bufp->not_eol); printf ("syntax: %lx\n", bufp->syntax); /* Perhaps we should print the translate table? */ } void print_double_string (where, string1, size1, string2, size2) const char *where; const char *string1; const char *string2; int size1; int size2; { int this_char; if (where == NULL) printf ("(null)"); else { if (FIRST_STRING_P (where)) { for (this_char = where - string1; this_char < size1; this_char++) putchar (string1[this_char]); where = string2; } for (this_char = where - string2; this_char < size2; this_char++) putchar (string2[this_char]); } } void printchar (c) int c; { putc (c, stderr); } #else /* not DEBUG */ # undef assert # define assert(e) # define DEBUG_STATEMENT(e) # define DEBUG_PRINT1(x) # define DEBUG_PRINT2(x1, x2) # define DEBUG_PRINT3(x1, x2, x3) # define DEBUG_PRINT4(x1, x2, x3, x4) # define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) # define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) #endif /* not DEBUG */ /* Set by `re_set_syntax' to the current regexp syntax to recognize. Can also be assigned to arbitrarily: each pattern buffer stores its own syntax, so it can be changed between regex compilations. */ /* This has no initializer because initialized variables in Emacs become read-only after dumping. */ reg_syntax_t re_syntax_options; /* Specify the precise syntax of regexps for compilation. This provides for compatibility for various utilities which historically have different, incompatible syntaxes. The argument SYNTAX is a bit mask comprised of the various bits defined in regex.h. We return the old syntax. */ reg_syntax_t re_set_syntax (syntax) reg_syntax_t syntax; { reg_syntax_t ret = re_syntax_options; re_syntax_options = syntax; #ifdef DEBUG if (syntax & RE_DEBUG) debug = 1; else if (debug) /* was on but now is not */ debug = 0; #endif /* DEBUG */ return ret; } #ifdef _LIBC weak_alias (__re_set_syntax, re_set_syntax) #endif /* This table gives an error message for each of the error codes listed in regex.h. Obviously the order here has to be same as there. POSIX doesn't require that we do anything for REG_NOERROR, but why not be nice? */ static const char *re_error_msgid[] = { gettext_noop ("Success"), /* REG_NOERROR */ gettext_noop ("No match"), /* REG_NOMATCH */ gettext_noop ("Invalid regular expression"), /* REG_BADPAT */ gettext_noop ("Invalid collation character"), /* REG_ECOLLATE */ gettext_noop ("Invalid character class name"), /* REG_ECTYPE */ gettext_noop ("Trailing backslash"), /* REG_EESCAPE */ gettext_noop ("Invalid back reference"), /* REG_ESUBREG */ gettext_noop ("Unmatched [ or [^"), /* REG_EBRACK */ gettext_noop ("Unmatched ( or \\("), /* REG_EPAREN */ gettext_noop ("Unmatched \\{"), /* REG_EBRACE */ gettext_noop ("Invalid content of \\{\\}"), /* REG_BADBR */ gettext_noop ("Invalid range end"), /* REG_ERANGE */ gettext_noop ("Memory exhausted"), /* REG_ESPACE */ gettext_noop ("Invalid preceding regular expression"), /* REG_BADRPT */ gettext_noop ("Premature end of regular expression"), /* REG_EEND */ gettext_noop ("Regular expression too big"), /* REG_ESIZE */ gettext_noop ("Unmatched ) or \\)"), /* REG_ERPAREN */ }; /* Avoiding alloca during matching, to placate r_alloc. */ /* Define MATCH_MAY_ALLOCATE unless we need to make sure that the searching and matching functions should not call alloca. On some systems, alloca is implemented in terms of malloc, and if we're using the relocating allocator routines, then malloc could cause a relocation, which might (if the strings being searched are in the ralloc heap) shift the data out from underneath the regexp routines. Here's another reason to avoid allocation: Emacs processes input from X in a signal handler; processing X input may call malloc; if input arrives while a matching routine is calling malloc, then we're scrod. But Emacs can't just block input while calling matching routines; then we don't notice interrupts when they come in. So, Emacs blocks input around all regexp calls except the matching calls, which it leaves unprotected, in the faith that they will not malloc. */ /* Normally, this is fine. */ #define MATCH_MAY_ALLOCATE /* When using GNU C, we are not REALLY using the C alloca, no matter what config.h may say. So don't take precautions for it. */ #ifdef __GNUC__ # undef C_ALLOCA #endif /* Failure stack declarations and macros; both re_compile_fastmap and re_match_2 use a failure stack. These have to be macros because of REGEX_ALLOCATE_STACK. */ /* Number of failure points for which to initially allocate space when matching. If this number is exceeded, we allocate more space, so it is not a hard limit. */ #ifndef INIT_FAILURE_ALLOC # define INIT_FAILURE_ALLOC 5 #endif /* Roughly the maximum number of failure points on the stack. Would be exactly that if always used MAX_FAILURE_ITEMS items each time we failed. This is a variable only so users of regex can assign to it; we never change it ourselves. */ #ifdef INT_IS_16BIT # if defined MATCH_MAY_ALLOCATE /* 4400 was enough to cause a crash on Alpha OSF/1, whose default stack limit is 2mb. */ long int re_max_failures = 4000; # else long int re_max_failures = 2000; # endif union fail_stack_elt { unsigned char *pointer; long int integer; }; typedef union fail_stack_elt fail_stack_elt_t; typedef struct { fail_stack_elt_t *stack; unsigned long int size; unsigned long int avail; /* Offset of next open position. */ } fail_stack_type; #else /* not INT_IS_16BIT */ # if defined MATCH_MAY_ALLOCATE /* 4400 was enough to cause a crash on Alpha OSF/1, whose default stack limit is 2mb. */ int re_max_failures = 20000; # else int re_max_failures = 2000; # endif union fail_stack_elt { unsigned char *pointer; int integer; }; typedef union fail_stack_elt fail_stack_elt_t; typedef struct { fail_stack_elt_t *stack; unsigned size; unsigned avail; /* Offset of next open position. */ } fail_stack_type; #endif /* INT_IS_16BIT */ #define FAIL_STACK_EMPTY() (fail_stack.avail == 0) #define FAIL_STACK_PTR_EMPTY() (fail_stack_ptr->avail == 0) #define FAIL_STACK_FULL() (fail_stack.avail == fail_stack.size) /* Define macros to initialize and free the failure stack. Do `return -2' if the alloc fails. */ #ifdef MATCH_MAY_ALLOCATE # define INIT_FAIL_STACK() \ do { \ fail_stack.stack = (fail_stack_elt_t *) \ REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t)); \ \ if (fail_stack.stack == NULL) \ return -2; \ \ fail_stack.size = INIT_FAILURE_ALLOC; \ fail_stack.avail = 0; \ } while (0) # define RESET_FAIL_STACK() REGEX_FREE_STACK (fail_stack.stack) #else # define INIT_FAIL_STACK() \ do { \ fail_stack.avail = 0; \ } while (0) # define RESET_FAIL_STACK() #endif /* Double the size of FAIL_STACK, up to approximately `re_max_failures' items. Return 1 if succeeds, and 0 if either ran out of memory allocating space for it or it was already too large. REGEX_REALLOCATE_STACK requires `destination' be declared. */ #define DOUBLE_FAIL_STACK(fail_stack) \ ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS) \ ? 0 \ : ((fail_stack).stack = (fail_stack_elt_t *) \ REGEX_REALLOCATE_STACK ((fail_stack).stack, \ (fail_stack).size * sizeof (fail_stack_elt_t), \ ((fail_stack).size << 1) * sizeof (fail_stack_elt_t)), \ \ (fail_stack).stack == NULL \ ? 0 \ : ((fail_stack).size <<= 1, \ 1))) /* Push pointer POINTER on FAIL_STACK. Return 1 if was able to do so and 0 if ran out of memory allocating space to do so. */ #define PUSH_PATTERN_OP(POINTER, FAIL_STACK) \ ((FAIL_STACK_FULL () \ && !DOUBLE_FAIL_STACK (FAIL_STACK)) \ ? 0 \ : ((FAIL_STACK).stack[(FAIL_STACK).avail++].pointer = POINTER, \ 1)) /* Push a pointer value onto the failure stack. Assumes the variable `fail_stack'. Probably should only be called from within `PUSH_FAILURE_POINT'. */ #define PUSH_FAILURE_POINTER(item) \ fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (item) /* This pushes an integer-valued item onto the failure stack. Assumes the variable `fail_stack'. Probably should only be called from within `PUSH_FAILURE_POINT'. */ #define PUSH_FAILURE_INT(item) \ fail_stack.stack[fail_stack.avail++].integer = (item) /* Push a fail_stack_elt_t value onto the failure stack. Assumes the variable `fail_stack'. Probably should only be called from within `PUSH_FAILURE_POINT'. */ #define PUSH_FAILURE_ELT(item) \ fail_stack.stack[fail_stack.avail++] = (item) /* These three POP... operations complement the three PUSH... operations. All assume that `fail_stack' is nonempty. */ #define POP_FAILURE_POINTER() fail_stack.stack[--fail_stack.avail].pointer #define POP_FAILURE_INT() fail_stack.stack[--fail_stack.avail].integer #define POP_FAILURE_ELT() fail_stack.stack[--fail_stack.avail] /* Used to omit pushing failure point id's when we're not debugging. */ #ifdef DEBUG # define DEBUG_PUSH PUSH_FAILURE_INT # define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_INT () #else # define DEBUG_PUSH(item) # define DEBUG_POP(item_addr) #endif /* Push the information about the state we will need if we ever fail back to it. Requires variables fail_stack, regstart, regend, reg_info, and num_regs_pushed be declared. DOUBLE_FAIL_STACK requires `destination' be declared. Does `return FAILURE_CODE' if runs out of memory. */ #define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code) \ do { \ char *destination; \ /* Must be int, so when we don't save any registers, the arithmetic \ of 0 + -1 isn't done as unsigned. */ \ /* Can't be int, since there is not a shred of a guarantee that int \ is wide enough to hold a value of something to which pointer can \ be assigned */ \ active_reg_t this_reg; \ \ DEBUG_STATEMENT (failure_id++); \ DEBUG_STATEMENT (nfailure_points_pushed++); \ DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id); \ DEBUG_PRINT2 (" Before push, next avail: %d\n", (fail_stack).avail);\ DEBUG_PRINT2 (" size: %d\n", (fail_stack).size);\ \ DEBUG_PRINT2 (" slots needed: %ld\n", NUM_FAILURE_ITEMS); \ DEBUG_PRINT2 (" available: %d\n", REMAINING_AVAIL_SLOTS); \ \ /* Ensure we have enough space allocated for what we will push. */ \ while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS) \ { \ if (!DOUBLE_FAIL_STACK (fail_stack)) \ return failure_code; \ \ DEBUG_PRINT2 ("\n Doubled stack; size now: %d\n", \ (fail_stack).size); \ DEBUG_PRINT2 (" slots available: %d\n", REMAINING_AVAIL_SLOTS);\ } \ \ /* Push the info, starting with the registers. */ \ DEBUG_PRINT1 ("\n"); \ \ if (1) \ for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \ this_reg++) \ { \ DEBUG_PRINT2 (" Pushing reg: %lu\n", this_reg); \ DEBUG_STATEMENT (num_regs_pushed++); \ \ DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \ PUSH_FAILURE_POINTER (regstart[this_reg]); \ \ DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \ PUSH_FAILURE_POINTER (regend[this_reg]); \ \ DEBUG_PRINT2 (" info: %p\n ", \ reg_info[this_reg].word.pointer); \ DEBUG_PRINT2 (" match_null=%d", \ REG_MATCH_NULL_STRING_P (reg_info[this_reg])); \ DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg])); \ DEBUG_PRINT2 (" matched_something=%d", \ MATCHED_SOMETHING (reg_info[this_reg])); \ DEBUG_PRINT2 (" ever_matched=%d", \ EVER_MATCHED_SOMETHING (reg_info[this_reg])); \ DEBUG_PRINT1 ("\n"); \ PUSH_FAILURE_ELT (reg_info[this_reg].word); \ } \ \ DEBUG_PRINT2 (" Pushing low active reg: %ld\n", lowest_active_reg);\ PUSH_FAILURE_INT (lowest_active_reg); \ \ DEBUG_PRINT2 (" Pushing high active reg: %ld\n", highest_active_reg);\ PUSH_FAILURE_INT (highest_active_reg); \ \ DEBUG_PRINT2 (" Pushing pattern %p:\n", pattern_place); \ DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend); \ PUSH_FAILURE_POINTER (pattern_place); \ \ DEBUG_PRINT2 (" Pushing string %p: `", string_place); \ DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2, \ size2); \ DEBUG_PRINT1 ("'\n"); \ PUSH_FAILURE_POINTER (string_place); \ \ DEBUG_PRINT2 (" Pushing failure id: %u\n", failure_id); \ DEBUG_PUSH (failure_id); \ } while (0) /* This is the number of items that are pushed and popped on the stack for each register. */ #define NUM_REG_ITEMS 3 /* Individual items aside from the registers. */ #ifdef DEBUG # define NUM_NONREG_ITEMS 5 /* Includes failure point id. */ #else # define NUM_NONREG_ITEMS 4 #endif /* We push at most this many items on the stack. */ /* We used to use (num_regs - 1), which is the number of registers this regexp will save; but that was changed to 5 to avoid stack overflow for a regexp with lots of parens. */ #define MAX_FAILURE_ITEMS (5 * NUM_REG_ITEMS + NUM_NONREG_ITEMS) /* We actually push this many items. */ #define NUM_FAILURE_ITEMS \ (((0 \ ? 0 : highest_active_reg - lowest_active_reg + 1) \ * NUM_REG_ITEMS) \ + NUM_NONREG_ITEMS) /* How many items can still be added to the stack without overflowing it. */ #define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail) /* Pops what PUSH_FAIL_STACK pushes. We restore into the parameters, all of which should be lvalues: STR -- the saved data position. PAT -- the saved pattern position. LOW_REG, HIGH_REG -- the highest and lowest active registers. REGSTART, REGEND -- arrays of string positions. REG_INFO -- array of information about each subexpression. Also assumes the variables `fail_stack' and (if debugging), `bufp', `pend', `string1', `size1', `string2', and `size2'. */ #define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\ { \ DEBUG_STATEMENT (unsigned failure_id;) \ active_reg_t this_reg; \ const unsigned char *string_temp; \ \ assert (!FAIL_STACK_EMPTY ()); \ \ /* Remove failure points and point to how many regs pushed. */ \ DEBUG_PRINT1 ("POP_FAILURE_POINT:\n"); \ DEBUG_PRINT2 (" Before pop, next avail: %d\n", fail_stack.avail); \ DEBUG_PRINT2 (" size: %d\n", fail_stack.size); \ \ assert (fail_stack.avail >= NUM_NONREG_ITEMS); \ \ DEBUG_POP (&failure_id); \ DEBUG_PRINT2 (" Popping failure id: %u\n", failure_id); \ \ /* If the saved string location is NULL, it came from an \ on_failure_keep_string_jump opcode, and we want to throw away the \ saved NULL, thus retaining our current position in the string. */ \ string_temp = POP_FAILURE_POINTER (); \ if (string_temp != NULL) \ str = (const char *) string_temp; \ \ DEBUG_PRINT2 (" Popping string %p: `", str); \ DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2); \ DEBUG_PRINT1 ("'\n"); \ \ pat = (unsigned char *) POP_FAILURE_POINTER (); \ DEBUG_PRINT2 (" Popping pattern %p:\n", pat); \ DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend); \ \ /* Restore register info. */ \ high_reg = (active_reg_t) POP_FAILURE_INT (); \ DEBUG_PRINT2 (" Popping high active reg: %ld\n", high_reg); \ \ low_reg = (active_reg_t) POP_FAILURE_INT (); \ DEBUG_PRINT2 (" Popping low active reg: %ld\n", low_reg); \ \ if (1) \ for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \ { \ DEBUG_PRINT2 (" Popping reg: %ld\n", this_reg); \ \ reg_info[this_reg].word = POP_FAILURE_ELT (); \ DEBUG_PRINT2 (" info: %p\n", \ reg_info[this_reg].word.pointer); \ \ regend[this_reg] = (const char *) POP_FAILURE_POINTER (); \ DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \ \ regstart[this_reg] = (const char *) POP_FAILURE_POINTER (); \ DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \ } \ else \ { \ for (this_reg = highest_active_reg; this_reg > high_reg; this_reg--) \ { \ reg_info[this_reg].word.integer = 0; \ regend[this_reg] = 0; \ regstart[this_reg] = 0; \ } \ highest_active_reg = high_reg; \ } \ \ set_regs_matched_done = 0; \ DEBUG_STATEMENT (nfailure_points_popped++); \ } /* POP_FAILURE_POINT */ /* Structure for per-register (a.k.a. per-group) information. Other register information, such as the starting and ending positions (which are addresses), and the list of inner groups (which is a bits list) are maintained in separate variables. We are making a (strictly speaking) nonportable assumption here: that the compiler will pack our bit fields into something that fits into the type of `word', i.e., is something that fits into one item on the failure stack. */ /* Declarations and macros for re_match_2. */ typedef union { fail_stack_elt_t word; struct { /* This field is one if this group can match the empty string, zero if not. If not yet determined, `MATCH_NULL_UNSET_VALUE'. */ #define MATCH_NULL_UNSET_VALUE 3 unsigned match_null_string_p : 2; unsigned is_active : 1; unsigned matched_something : 1; unsigned ever_matched_something : 1; } bits; } register_info_type; #define REG_MATCH_NULL_STRING_P(R) ((R).bits.match_null_string_p) #define IS_ACTIVE(R) ((R).bits.is_active) #define MATCHED_SOMETHING(R) ((R).bits.matched_something) #define EVER_MATCHED_SOMETHING(R) ((R).bits.ever_matched_something) /* Call this when have matched a real character; it sets `matched' flags for the subexpressions which we are currently inside. Also records that those subexprs have matched. */ #define SET_REGS_MATCHED() \ do \ { \ if (!set_regs_matched_done) \ { \ active_reg_t r; \ set_regs_matched_done = 1; \ for (r = lowest_active_reg; r <= highest_active_reg; r++) \ { \ MATCHED_SOMETHING (reg_info[r]) \ = EVER_MATCHED_SOMETHING (reg_info[r]) \ = 1; \ } \ } \ } \ while (0) /* Registers are set to a sentinel when they haven't yet matched. */ static char reg_unset_dummy; #define REG_UNSET_VALUE (®_unset_dummy) #define REG_UNSET(e) ((e) == REG_UNSET_VALUE) /* Subroutine declarations and macros for regex_compile. */ static reg_errcode_t regex_compile _RE_ARGS ((const char *pattern, size_t size, reg_syntax_t syntax, struct re_pattern_buffer *bufp)); static void store_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc, int arg)); static void store_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc, int arg1, int arg2)); static void insert_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc, int arg, unsigned char *end)); static void insert_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc, int arg1, int arg2, unsigned char *end)); static boolean at_begline_loc_p _RE_ARGS ((const char *pattern, const char *p, reg_syntax_t syntax)); static boolean at_endline_loc_p _RE_ARGS ((const char *p, const char *pend, reg_syntax_t syntax)); static reg_errcode_t compile_range _RE_ARGS ((const char **p_ptr, const char *pend, char *translate, reg_syntax_t syntax, unsigned char *b)); /* Fetch the next character in the uncompiled pattern---translating it if necessary. Also cast from a signed character in the constant string passed to us by the user to an unsigned char that we can use as an array index (in, e.g., `translate'). */ #ifndef PATFETCH # define PATFETCH(c) \ do {if (p == pend) return REG_EEND; \ c = (unsigned char) *p++; \ if (translate) c = (unsigned char) translate[c]; \ } while (0) #endif /* Fetch the next character in the uncompiled pattern, with no translation. */ #define PATFETCH_RAW(c) \ do {if (p == pend) return REG_EEND; \ c = (unsigned char) *p++; \ } while (0) /* Go backwards one character in the pattern. */ #define PATUNFETCH p-- /* If `translate' is non-null, return translate[D], else just D. We cast the subscript to translate because some data is declared as `char *', to avoid warnings when a string constant is passed. But when we use a character as a subscript we must make it unsigned. */ #ifndef TRANSLATE # define TRANSLATE(d) \ (translate ? (char) translate[(unsigned char) (d)] : (d)) #endif /* Macros for outputting the compiled pattern into `buffer'. */ /* If the buffer isn't allocated when it comes in, use this. */ #define INIT_BUF_SIZE 32 /* Make sure we have at least N more bytes of space in buffer. */ #define GET_BUFFER_SPACE(n) \ while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated) \ EXTEND_BUFFER () /* Make sure we have one more byte of buffer space and then add C to it. */ #define BUF_PUSH(c) \ do { \ GET_BUFFER_SPACE (1); \ *b++ = (unsigned char) (c); \ } while (0) /* Ensure we have two more bytes of buffer space and then append C1 and C2. */ #define BUF_PUSH_2(c1, c2) \ do { \ GET_BUFFER_SPACE (2); \ *b++ = (unsigned char) (c1); \ *b++ = (unsigned char) (c2); \ } while (0) /* As with BUF_PUSH_2, except for three bytes. */ #define BUF_PUSH_3(c1, c2, c3) \ do { \ GET_BUFFER_SPACE (3); \ *b++ = (unsigned char) (c1); \ *b++ = (unsigned char) (c2); \ *b++ = (unsigned char) (c3); \ } while (0) /* Store a jump with opcode OP at LOC to location TO. We store a relative address offset by the three bytes the jump itself occupies. */ #define STORE_JUMP(op, loc, to) \ store_op1 (op, loc, (int) ((to) - (loc) - 3)) /* Likewise, for a two-argument jump. */ #define STORE_JUMP2(op, loc, to, arg) \ store_op2 (op, loc, (int) ((to) - (loc) - 3), arg) /* Like `STORE_JUMP', but for inserting. Assume `b' is the buffer end. */ #define INSERT_JUMP(op, loc, to) \ insert_op1 (op, loc, (int) ((to) - (loc) - 3), b) /* Like `STORE_JUMP2', but for inserting. Assume `b' is the buffer end. */ #define INSERT_JUMP2(op, loc, to, arg) \ insert_op2 (op, loc, (int) ((to) - (loc) - 3), arg, b) /* This is not an arbitrary limit: the arguments which represent offsets into the pattern are two bytes long. So if 2^16 bytes turns out to be too small, many things would have to change. */ /* Any other compiler which, like MSC, has allocation limit below 2^16 bytes will have to use approach similar to what was done below for MSC and drop MAX_BUF_SIZE a bit. Otherwise you may end up reallocating to 0 bytes. Such thing is not going to work too well. You have been warned!! */ #if defined _MSC_VER && !defined WIN32 /* Microsoft C 16-bit versions limit malloc to approx 65512 bytes. The REALLOC define eliminates a flurry of conversion warnings, but is not required. */ # define MAX_BUF_SIZE 65500L # define REALLOC(p,s) realloc ((p), (size_t) (s)) #else # define MAX_BUF_SIZE (1L << 16) # define REALLOC(p,s) realloc ((p), (s)) #endif /* Extend the buffer by twice its current size via realloc and reset the pointers that pointed into the old block to point to the correct places in the new one. If extending the buffer results in it being larger than MAX_BUF_SIZE, then flag memory exhausted. */ #define EXTEND_BUFFER() \ do { \ unsigned char *old_buffer = bufp->buffer; \ if (bufp->allocated == MAX_BUF_SIZE) \ return REG_ESIZE; \ bufp->allocated <<= 1; \ if (bufp->allocated > MAX_BUF_SIZE) \ bufp->allocated = MAX_BUF_SIZE; \ bufp->buffer = (unsigned char *) REALLOC (bufp->buffer, bufp->allocated);\ if (bufp->buffer == NULL) \ return REG_ESPACE; \ /* If the buffer moved, move all the pointers into it. */ \ if (old_buffer != bufp->buffer) \ { \ b = (b - old_buffer) + bufp->buffer; \ begalt = (begalt - old_buffer) + bufp->buffer; \ if (fixup_alt_jump) \ fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer;\ if (laststart) \ laststart = (laststart - old_buffer) + bufp->buffer; \ if (pending_exact) \ pending_exact = (pending_exact - old_buffer) + bufp->buffer; \ } \ } while (0) /* Since we have one byte reserved for the register number argument to {start,stop}_memory, the maximum number of groups we can report things about is what fits in that byte. */ #define MAX_REGNUM 255 /* But patterns can have more than `MAX_REGNUM' registers. We just ignore the excess. */ typedef unsigned regnum_t; /* Macros for the compile stack. */ /* Since offsets can go either forwards or backwards, this type needs to be able to hold values from -(MAX_BUF_SIZE - 1) to MAX_BUF_SIZE - 1. */ /* int may be not enough when sizeof(int) == 2. */ typedef long pattern_offset_t; typedef struct { pattern_offset_t begalt_offset; pattern_offset_t fixup_alt_jump; pattern_offset_t inner_group_offset; pattern_offset_t laststart_offset; regnum_t regnum; } compile_stack_elt_t; typedef struct { compile_stack_elt_t *stack; unsigned size; unsigned avail; /* Offset of next open position. */ } compile_stack_type; #define INIT_COMPILE_STACK_SIZE 32 #define COMPILE_STACK_EMPTY (compile_stack.avail == 0) #define COMPILE_STACK_FULL (compile_stack.avail == compile_stack.size) /* The next available element. */ #define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail]) /* Set the bit for character C in a list. */ #define SET_LIST_BIT(c) \ (b[((unsigned char) (c)) / BYTEWIDTH] \ |= 1 << (((unsigned char) c) % BYTEWIDTH)) /* Get the next unsigned number in the uncompiled pattern. */ #define GET_UNSIGNED_NUMBER(num) \ { if (p != pend) \ { \ PATFETCH (c); \ while (ISDIGIT (c)) \ { \ if (num < 0) \ num = 0; \ num = num * 10 + c - '0'; \ if (p == pend) \ break; \ PATFETCH (c); \ } \ } \ } #if defined _LIBC || WIDE_CHAR_SUPPORT /* The GNU C library provides support for user-defined character classes and the functions from ISO C amendement 1. */ # ifdef CHARCLASS_NAME_MAX # define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX # else /* This shouldn't happen but some implementation might still have this problem. Use a reasonable default value. */ # define CHAR_CLASS_MAX_LENGTH 256 # endif # ifdef _LIBC # define IS_CHAR_CLASS(string) __wctype (string) # else # define IS_CHAR_CLASS(string) wctype (string) # endif #else # define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ # define IS_CHAR_CLASS(string) \ (STREQ (string, "alpha") || STREQ (string, "upper") \ || STREQ (string, "lower") || STREQ (string, "digit") \ || STREQ (string, "alnum") || STREQ (string, "xdigit") \ || STREQ (string, "space") || STREQ (string, "print") \ || STREQ (string, "punct") || STREQ (string, "graph") \ || STREQ (string, "cntrl") || STREQ (string, "blank")) #endif #ifndef MATCH_MAY_ALLOCATE /* If we cannot allocate large objects within re_match_2_internal, we make the fail stack and register vectors global. The fail stack, we grow to the maximum size when a regexp is compiled. The register vectors, we adjust in size each time we compile a regexp, according to the number of registers it needs. */ static fail_stack_type fail_stack; /* Size with which the following vectors are currently allocated. That is so we can make them bigger as needed, but never make them smaller. */ static int regs_allocated_size; static const char ** regstart, ** regend; static const char ** old_regstart, ** old_regend; static const char **best_regstart, **best_regend; static register_info_type *reg_info; static const char **reg_dummy; static register_info_type *reg_info_dummy; /* Make the register vectors big enough for NUM_REGS registers, but don't make them smaller. */ static regex_grow_registers (num_regs) int num_regs; { if (num_regs > regs_allocated_size) { RETALLOC_IF (regstart, num_regs, const char *); RETALLOC_IF (regend, num_regs, const char *); RETALLOC_IF (old_regstart, num_regs, const char *); RETALLOC_IF (old_regend, num_regs, const char *); RETALLOC_IF (best_regstart, num_regs, const char *); RETALLOC_IF (best_regend, num_regs, const char *); RETALLOC_IF (reg_info, num_regs, register_info_type); RETALLOC_IF (reg_dummy, num_regs, const char *); RETALLOC_IF (reg_info_dummy, num_regs, register_info_type); regs_allocated_size = num_regs; } } #endif /* not MATCH_MAY_ALLOCATE */ static boolean group_in_compile_stack _RE_ARGS ((compile_stack_type compile_stack, regnum_t regnum)); /* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX. Returns one of error codes defined in `regex.h', or zero for success. Assumes the `allocated' (and perhaps `buffer') and `translate' fields are set in BUFP on entry. If it succeeds, results are put in BUFP (if it returns an error, the contents of BUFP are undefined): `buffer' is the compiled pattern; `syntax' is set to SYNTAX; `used' is set to the length of the compiled pattern; `fastmap_accurate' is zero; `re_nsub' is the number of subexpressions in PATTERN; `not_bol' and `not_eol' are zero; The `fastmap' and `newline_anchor' fields are neither examined nor set. */ /* Return, freeing storage we allocated. */ #define FREE_STACK_RETURN(value) \ return (free (compile_stack.stack), value) static reg_errcode_t regex_compile (pattern, size, syntax, bufp) const char *pattern; size_t size; reg_syntax_t syntax; struct re_pattern_buffer *bufp; { /* We fetch characters from PATTERN here. Even though PATTERN is `char *' (i.e., signed), we declare these variables as unsigned, so they can be reliably used as array indices. */ register unsigned char c, c1; /* A random temporary spot in PATTERN. */ const char *p1; /* Points to the end of the buffer, where we should append. */ register unsigned char *b; /* Keeps track of unclosed groups. */ compile_stack_type compile_stack; /* Points to the current (ending) position in the pattern. */ const char *p = pattern; const char *pend = pattern + size; /* How to translate the characters in the pattern. */ RE_TRANSLATE_TYPE translate = bufp->translate; /* Address of the count-byte of the most recently inserted `exactn' command. This makes it possible to tell if a new exact-match character can be added to that command or if the character requires a new `exactn' command. */ unsigned char *pending_exact = 0; /* Address of start of the most recently finished expression. This tells, e.g., postfix * where to find the start of its operand. Reset at the beginning of groups and alternatives. */ unsigned char *laststart = 0; /* Address of beginning of regexp, or inside of last group. */ unsigned char *begalt; /* Place in the uncompiled pattern (i.e., the {) to which to go back if the interval is invalid. */ const char *beg_interval; /* Address of the place where a forward jump should go to the end of the containing expression. Each alternative of an `or' -- except the last -- ends with a forward jump of this sort. */ unsigned char *fixup_alt_jump = 0; /* Counts open-groups as they are encountered. Remembered for the matching close-group on the compile stack, so the same register number is put in the stop_memory as the start_memory. */ regnum_t regnum = 0; #ifdef DEBUG DEBUG_PRINT1 ("\nCompiling pattern: "); if (debug) { unsigned debug_count; for (debug_count = 0; debug_count < size; debug_count++) putchar (pattern[debug_count]); putchar ('\n'); } #endif /* DEBUG */ /* Initialize the compile stack. */ compile_stack.stack = TALLOC (INIT_COMPILE_STACK_SIZE, compile_stack_elt_t); if (compile_stack.stack == NULL) return REG_ESPACE; compile_stack.size = INIT_COMPILE_STACK_SIZE; compile_stack.avail = 0; /* Initialize the pattern buffer. */ bufp->syntax = syntax; bufp->fastmap_accurate = 0; bufp->not_bol = bufp->not_eol = 0; /* Set `used' to zero, so that if we return an error, the pattern printer (for debugging) will think there's no pattern. We reset it at the end. */ bufp->used = 0; /* Always count groups, whether or not bufp->no_sub is set. */ bufp->re_nsub = 0; #if !defined SYNTAX_TABLE /* Initialize the syntax table. */ init_syntax_once (); #endif if (bufp->allocated == 0) { if (bufp->buffer) { /* If zero allocated, but buffer is non-null, try to realloc enough space. This loses if buffer's address is bogus, but that is the user's responsibility. */ RETALLOC (bufp->buffer, INIT_BUF_SIZE, unsigned char); } else { /* Caller did not allocate a buffer. Do it for them. */ bufp->buffer = TALLOC (INIT_BUF_SIZE, unsigned char); } if (!bufp->buffer) FREE_STACK_RETURN (REG_ESPACE); bufp->allocated = INIT_BUF_SIZE; } begalt = b = bufp->buffer; /* Loop through the uncompiled pattern until we're at the end. */ while (p != pend) { PATFETCH (c); switch (c) { case '^': { if ( /* If at start of pattern, it's an operator. */ p == pattern + 1 /* If context independent, it's an operator. */ || syntax & RE_CONTEXT_INDEP_ANCHORS /* Otherwise, depends on what's come before. */ || at_begline_loc_p (pattern, p, syntax)) BUF_PUSH (begline); else goto normal_char; } break; case '$': { if ( /* If at end of pattern, it's an operator. */ p == pend /* If context independent, it's an operator. */ || syntax & RE_CONTEXT_INDEP_ANCHORS /* Otherwise, depends on what's next. */ || at_endline_loc_p (p, pend, syntax)) BUF_PUSH (endline); else goto normal_char; } break; case '+': case '?': if ((syntax & RE_BK_PLUS_QM) || (syntax & RE_LIMITED_OPS)) goto normal_char; handle_plus: case '*': /* If there is no previous pattern... */ if (!laststart) { if (syntax & RE_CONTEXT_INVALID_OPS) FREE_STACK_RETURN (REG_BADRPT); else if (!(syntax & RE_CONTEXT_INDEP_OPS)) goto normal_char; } { /* Are we optimizing this jump? */ boolean keep_string_p = false; /* 1 means zero (many) matches is allowed. */ char zero_times_ok = 0, many_times_ok = 0; /* If there is a sequence of repetition chars, collapse it down to just one (the right one). We can't combine interval operators with these because of, e.g., `a{2}*', which should only match an even number of `a's. */ for (;;) { zero_times_ok |= c != '+'; many_times_ok |= c != '?'; if (p == pend) break; PATFETCH (c); if (c == '*' || (!(syntax & RE_BK_PLUS_QM) && (c == '+' || c == '?'))) ; else if (syntax & RE_BK_PLUS_QM && c == '\\') { if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); PATFETCH (c1); if (!(c1 == '+' || c1 == '?')) { PATUNFETCH; PATUNFETCH; break; } c = c1; } else { PATUNFETCH; break; } /* If we get here, we found another repeat character. */ } /* Star, etc. applied to an empty pattern is equivalent to an empty pattern. */ if (!laststart) break; /* Now we know whether or not zero matches is allowed and also whether or not two or more matches is allowed. */ if (many_times_ok) { /* More than one repetition is allowed, so put in at the end a backward relative jump from `b' to before the next jump we're going to put in below (which jumps from laststart to after this jump). But if we are at the `*' in the exact sequence `.*\n', insert an unconditional jump backwards to the ., instead of the beginning of the loop. This way we only push a failure point once, instead of every time through the loop. */ assert (p - 1 > pattern); /* Allocate the space for the jump. */ GET_BUFFER_SPACE (3); /* We know we are not at the first character of the pattern, because laststart was nonzero. And we've already incremented `p', by the way, to be the character after the `*'. Do we have to do something analogous here for null bytes, because of RE_DOT_NOT_NULL? */ if (TRANSLATE (*(p - 2)) == TRANSLATE ('.') && zero_times_ok && p < pend && TRANSLATE (*p) == TRANSLATE ('\n') && !(syntax & RE_DOT_NEWLINE)) { /* We have .*\n. */ STORE_JUMP (jump, b, laststart); keep_string_p = true; } else /* Anything else. */ STORE_JUMP (maybe_pop_jump, b, laststart - 3); /* We've added more stuff to the buffer. */ b += 3; } /* On failure, jump from laststart to b + 3, which will be the end of the buffer after this jump is inserted. */ GET_BUFFER_SPACE (3); INSERT_JUMP (keep_string_p ? on_failure_keep_string_jump : on_failure_jump, laststart, b + 3); pending_exact = 0; b += 3; if (!zero_times_ok) { /* At least one repetition is required, so insert a `dummy_failure_jump' before the initial `on_failure_jump' instruction of the loop. This effects a skip over that instruction the first time we hit that loop. */ GET_BUFFER_SPACE (3); INSERT_JUMP (dummy_failure_jump, laststart, laststart + 6); b += 3; } } break; case '.': laststart = b; BUF_PUSH (anychar); break; case '[': { boolean had_char_class = false; if (p == pend) FREE_STACK_RETURN (REG_EBRACK); /* Ensure that we have enough space to push a charset: the opcode, the length count, and the bitset; 34 bytes in all. */ GET_BUFFER_SPACE (34); laststart = b; /* We test `*p == '^' twice, instead of using an if statement, so we only need one BUF_PUSH. */ BUF_PUSH (*p == '^' ? charset_not : charset); if (*p == '^') p++; /* Remember the first position in the bracket expression. */ p1 = p; /* Push the number of bytes in the bitmap. */ BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH); /* Clear the whole map. */ bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH); /* charset_not matches newline according to a syntax bit. */ if ((re_opcode_t) b[-2] == charset_not && (syntax & RE_HAT_LISTS_NOT_NEWLINE)) SET_LIST_BIT ('\n'); /* Read in characters and ranges, setting map bits. */ for (;;) { if (p == pend) FREE_STACK_RETURN (REG_EBRACK); PATFETCH (c); /* \ might escape characters inside [...] and [^...]. */ if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\') { if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); PATFETCH (c1); SET_LIST_BIT (c1); continue; } /* Could be the end of the bracket expression. If it's not (i.e., when the bracket expression is `[]' so far), the ']' character bit gets set way below. */ if (c == ']' && p != p1 + 1) break; /* Look ahead to see if it's a range when the last thing was a character class. */ if (had_char_class && c == '-' && *p != ']') FREE_STACK_RETURN (REG_ERANGE); /* Look ahead to see if it's a range when the last thing was a character: if this is a hyphen not at the beginning or the end of a list, then it's the range operator. */ if (c == '-' && !(p - 2 >= pattern && p[-2] == '[') && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^') && *p != ']') { reg_errcode_t ret = compile_range (&p, pend, translate, syntax, b); if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); } else if (p[0] == '-' && p[1] != ']') { /* This handles ranges made up of characters only. */ reg_errcode_t ret; /* Move past the `-'. */ PATFETCH (c1); ret = compile_range (&p, pend, translate, syntax, b); if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); } /* See if we're at the beginning of a possible character class. */ else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':') { /* Leave room for the null. */ char str[CHAR_CLASS_MAX_LENGTH + 1]; PATFETCH (c); c1 = 0; /* If pattern is `[[:'. */ if (p == pend) FREE_STACK_RETURN (REG_EBRACK); for (;;) { PATFETCH (c); if ((c == ':' && *p == ']') || p == pend) break; if (c1 < CHAR_CLASS_MAX_LENGTH) str[c1++] = c; else /* This is in any case an invalid class name. */ str[0] = '\0'; } str[c1] = '\0'; /* If isn't a word bracketed by `[:' and `:]': undo the ending character, the letters, and leave the leading `:' and `[' (but set bits for them). */ if (c == ':' && *p == ']') { #if defined _LIBC || WIDE_CHAR_SUPPORT boolean is_lower = STREQ (str, "lower"); boolean is_upper = STREQ (str, "upper"); wctype_t wt; int ch; wt = IS_CHAR_CLASS (str); if (wt == 0) FREE_STACK_RETURN (REG_ECTYPE); /* Throw away the ] at the end of the character class. */ PATFETCH (c); if (p == pend) FREE_STACK_RETURN (REG_EBRACK); for (ch = 0; ch < 1 << BYTEWIDTH; ++ch) { # ifdef _LIBC if (__iswctype (__btowc (ch), wt)) SET_LIST_BIT (ch); # else if (iswctype (btowc (ch), wt)) SET_LIST_BIT (ch); # endif if (translate && (is_upper || is_lower) && (ISUPPER (ch) || ISLOWER (ch))) SET_LIST_BIT (ch); } had_char_class = true; #else int ch; boolean is_alnum = STREQ (str, "alnum"); boolean is_alpha = STREQ (str, "alpha"); boolean is_blank = STREQ (str, "blank"); boolean is_cntrl = STREQ (str, "cntrl"); boolean is_digit = STREQ (str, "digit"); boolean is_graph = STREQ (str, "graph"); boolean is_lower = STREQ (str, "lower"); boolean is_print = STREQ (str, "print"); boolean is_punct = STREQ (str, "punct"); boolean is_space = STREQ (str, "space"); boolean is_upper = STREQ (str, "upper"); boolean is_xdigit = STREQ (str, "xdigit"); if (!IS_CHAR_CLASS (str)) FREE_STACK_RETURN (REG_ECTYPE); /* Throw away the ] at the end of the character class. */ PATFETCH (c); if (p == pend) FREE_STACK_RETURN (REG_EBRACK); for (ch = 0; ch < 1 << BYTEWIDTH; ch++) { /* This was split into 3 if's to avoid an arbitrary limit in some compiler. */ if ( (is_alnum && ISALNUM (ch)) || (is_alpha && ISALPHA (ch)) || (is_blank && ISBLANK (ch)) || (is_cntrl && ISCNTRL (ch))) SET_LIST_BIT (ch); if ( (is_digit && ISDIGIT (ch)) || (is_graph && ISGRAPH (ch)) || (is_lower && ISLOWER (ch)) || (is_print && ISPRINT (ch))) SET_LIST_BIT (ch); if ( (is_punct && ISPUNCT (ch)) || (is_space && ISSPACE (ch)) || (is_upper && ISUPPER (ch)) || (is_xdigit && ISXDIGIT (ch))) SET_LIST_BIT (ch); if ( translate && (is_upper || is_lower) && (ISUPPER (ch) || ISLOWER (ch))) SET_LIST_BIT (ch); } had_char_class = true; #endif /* libc || wctype.h */ } else { c1++; while (c1--) PATUNFETCH; SET_LIST_BIT ('['); SET_LIST_BIT (':'); had_char_class = false; } } else { had_char_class = false; SET_LIST_BIT (c); } } /* Discard any (non)matching list bytes that are all 0 at the end of the map. Decrease the map-length byte too. */ while ((int) b[-1] > 0 && b[b[-1] - 1] == 0) b[-1]--; b += b[-1]; } break; case '(': if (syntax & RE_NO_BK_PARENS) goto handle_open; else goto normal_char; case ')': if (syntax & RE_NO_BK_PARENS) goto handle_close; else goto normal_char; case '\n': if (syntax & RE_NEWLINE_ALT) goto handle_alt; else goto normal_char; case '|': if (syntax & RE_NO_BK_VBAR) goto handle_alt; else goto normal_char; case '{': if (syntax & RE_INTERVALS && syntax & RE_NO_BK_BRACES) goto handle_interval; else goto normal_char; case '\\': if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); /* Do not translate the character after the \, so that we can distinguish, e.g., \B from \b, even if we normally would translate, e.g., B to b. */ PATFETCH_RAW (c); switch (c) { case '(': if (syntax & RE_NO_BK_PARENS) goto normal_backslash; handle_open: bufp->re_nsub++; regnum++; if (COMPILE_STACK_FULL) { RETALLOC (compile_stack.stack, compile_stack.size << 1, compile_stack_elt_t); if (compile_stack.stack == NULL) return REG_ESPACE; compile_stack.size <<= 1; } /* These are the values to restore when we hit end of this group. They are all relative offsets, so that if the whole pattern moves because of realloc, they will still be valid. */ COMPILE_STACK_TOP.begalt_offset = begalt - bufp->buffer; COMPILE_STACK_TOP.fixup_alt_jump = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0; COMPILE_STACK_TOP.laststart_offset = b - bufp->buffer; COMPILE_STACK_TOP.regnum = regnum; /* We will eventually replace the 0 with the number of groups inner to this one. But do not push a start_memory for groups beyond the last one we can represent in the compiled pattern. */ if (regnum <= MAX_REGNUM) { COMPILE_STACK_TOP.inner_group_offset = b - bufp->buffer + 2; BUF_PUSH_3 (start_memory, regnum, 0); } compile_stack.avail++; fixup_alt_jump = 0; laststart = 0; begalt = b; /* If we've reached MAX_REGNUM groups, then this open won't actually generate any code, so we'll have to clear pending_exact explicitly. */ pending_exact = 0; break; case ')': if (syntax & RE_NO_BK_PARENS) goto normal_backslash; if (COMPILE_STACK_EMPTY) { if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) goto normal_backslash; else FREE_STACK_RETURN (REG_ERPAREN); } handle_close: if (fixup_alt_jump) { /* Push a dummy failure point at the end of the alternative for a possible future `pop_failure_jump' to pop. See comments at `push_dummy_failure' in `re_match_2'. */ BUF_PUSH (push_dummy_failure); /* We allocated space for this jump when we assigned to `fixup_alt_jump', in the `handle_alt' case below. */ STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1); } /* See similar code for backslashed left paren above. */ if (COMPILE_STACK_EMPTY) { if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) goto normal_char; else FREE_STACK_RETURN (REG_ERPAREN); } /* Since we just checked for an empty stack above, this ``can't happen''. */ assert (compile_stack.avail != 0); { /* We don't just want to restore into `regnum', because later groups should continue to be numbered higher, as in `(ab)c(de)' -- the second group is #2. */ regnum_t this_group_regnum; compile_stack.avail--; begalt = bufp->buffer + COMPILE_STACK_TOP.begalt_offset; fixup_alt_jump = COMPILE_STACK_TOP.fixup_alt_jump ? bufp->buffer + COMPILE_STACK_TOP.fixup_alt_jump - 1 : 0; laststart = bufp->buffer + COMPILE_STACK_TOP.laststart_offset; this_group_regnum = COMPILE_STACK_TOP.regnum; /* If we've reached MAX_REGNUM groups, then this open won't actually generate any code, so we'll have to clear pending_exact explicitly. */ pending_exact = 0; /* We're at the end of the group, so now we know how many groups were inside this one. */ if (this_group_regnum <= MAX_REGNUM) { unsigned char *inner_group_loc = bufp->buffer + COMPILE_STACK_TOP.inner_group_offset; *inner_group_loc = regnum - this_group_regnum; BUF_PUSH_3 (stop_memory, this_group_regnum, regnum - this_group_regnum); } } break; case '|': /* `\|'. */ if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR) goto normal_backslash; handle_alt: if (syntax & RE_LIMITED_OPS) goto normal_char; /* Insert before the previous alternative a jump which jumps to this alternative if the former fails. */ GET_BUFFER_SPACE (3); INSERT_JUMP (on_failure_jump, begalt, b + 6); pending_exact = 0; b += 3; /* The alternative before this one has a jump after it which gets executed if it gets matched. Adjust that jump so it will jump to this alternative's analogous jump (put in below, which in turn will jump to the next (if any) alternative's such jump, etc.). The last such jump jumps to the correct final destination. A picture: _____ _____ | | | | | v | v a | b | c If we are at `b', then fixup_alt_jump right now points to a three-byte space after `a'. We'll put in the jump, set fixup_alt_jump to right after `b', and leave behind three bytes which we'll fill in when we get to after `c'. */ if (fixup_alt_jump) STORE_JUMP (jump_past_alt, fixup_alt_jump, b); /* Mark and leave space for a jump after this alternative, to be filled in later either by next alternative or when know we're at the end of a series of alternatives. */ fixup_alt_jump = b; GET_BUFFER_SPACE (3); b += 3; laststart = 0; begalt = b; break; case '{': /* If \{ is a literal. */ if (!(syntax & RE_INTERVALS) /* If we're at `\{' and it's not the open-interval operator. */ || ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) || (p - 2 == pattern && p == pend)) goto normal_backslash; handle_interval: { /* If got here, then the syntax allows intervals. */ /* At least (most) this many matches must be made. */ int lower_bound = -1, upper_bound = -1; beg_interval = p - 1; if (p == pend) { if (syntax & RE_NO_BK_BRACES) goto unfetch_interval; else FREE_STACK_RETURN (REG_EBRACE); } GET_UNSIGNED_NUMBER (lower_bound); if (c == ',') { GET_UNSIGNED_NUMBER (upper_bound); if (upper_bound < 0) upper_bound = RE_DUP_MAX; } else /* Interval such as `{1}' => match exactly once. */ upper_bound = lower_bound; if (lower_bound < 0 || upper_bound > RE_DUP_MAX || lower_bound > upper_bound) { if (syntax & RE_NO_BK_BRACES) goto unfetch_interval; else FREE_STACK_RETURN (REG_BADBR); } if (!(syntax & RE_NO_BK_BRACES)) { if (c != '\\') FREE_STACK_RETURN (REG_EBRACE); PATFETCH (c); } if (c != '}') { if (syntax & RE_NO_BK_BRACES) goto unfetch_interval; else FREE_STACK_RETURN (REG_BADBR); } /* We just parsed a valid interval. */ /* If it's invalid to have no preceding re. */ if (!laststart) { if (syntax & RE_CONTEXT_INVALID_OPS) FREE_STACK_RETURN (REG_BADRPT); else if (syntax & RE_CONTEXT_INDEP_OPS) laststart = b; else goto unfetch_interval; } /* If the upper bound is zero, don't want to succeed at all; jump from `laststart' to `b + 3', which will be the end of the buffer after we insert the jump. */ if (upper_bound == 0) { GET_BUFFER_SPACE (3); INSERT_JUMP (jump, laststart, b + 3); b += 3; } /* Otherwise, we have a nontrivial interval. When we're all done, the pattern will look like: set_number_at <jump count> <upper bound> set_number_at <succeed_n count> <lower bound> succeed_n <after jump addr> <succeed_n count> <body of loop> jump_n <succeed_n addr> <jump count> (The upper bound and `jump_n' are omitted if `upper_bound' is 1, though.) */ else { /* If the upper bound is > 1, we need to insert more at the end of the loop. */ unsigned nbytes = 10 + (upper_bound > 1) * 10; GET_BUFFER_SPACE (nbytes); /* Initialize lower bound of the `succeed_n', even though it will be set during matching by its attendant `set_number_at' (inserted next), because `re_compile_fastmap' needs to know. Jump to the `jump_n' we might insert below. */ INSERT_JUMP2 (succeed_n, laststart, b + 5 + (upper_bound > 1) * 5, lower_bound); b += 5; /* Code to initialize the lower bound. Insert before the `succeed_n'. The `5' is the last two bytes of this `set_number_at', plus 3 bytes of the following `succeed_n'. */ insert_op2 (set_number_at, laststart, 5, lower_bound, b); b += 5; if (upper_bound > 1) { /* More than one repetition is allowed, so append a backward jump to the `succeed_n' that starts this interval. When we've reached this during matching, we'll have matched the interval once, so jump back only `upper_bound - 1' times. */ STORE_JUMP2 (jump_n, b, laststart + 5, upper_bound - 1); b += 5; /* The location we want to set is the second parameter of the `jump_n'; that is `b-2' as an absolute address. `laststart' will be the `set_number_at' we're about to insert; `laststart+3' the number to set, the source for the relative address. But we are inserting into the middle of the pattern -- so everything is getting moved up by 5. Conclusion: (b - 2) - (laststart + 3) + 5, i.e., b - laststart. We insert this at the beginning of the loop so that if we fail during matching, we'll reinitialize the bounds. */ insert_op2 (set_number_at, laststart, b - laststart, upper_bound - 1, b); b += 5; } } pending_exact = 0; beg_interval = NULL; } break; unfetch_interval: /* If an invalid interval, match the characters as literals. */ assert (beg_interval); p = beg_interval; beg_interval = NULL; /* normal_char and normal_backslash need `c'. */ PATFETCH (c); if (!(syntax & RE_NO_BK_BRACES)) { if (p > pattern && p[-1] == '\\') goto normal_backslash; } goto normal_char; case 'w': if (syntax & RE_NO_GNU_OPS) goto normal_char; laststart = b; BUF_PUSH (wordchar); break; case 'W': if (syntax & RE_NO_GNU_OPS) goto normal_char; laststart = b; BUF_PUSH (notwordchar); break; case '<': if (syntax & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (wordbeg); break; case '>': if (syntax & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (wordend); break; case 'b': if (syntax & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (wordbound); break; case 'B': if (syntax & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (notwordbound); break; case '`': if (syntax & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (begbuf); break; case '\'': if (syntax & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (endbuf); break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (syntax & RE_NO_BK_REFS) goto normal_char; c1 = c - '0'; if (c1 > regnum) FREE_STACK_RETURN (REG_ESUBREG); /* Can't back reference to a subexpression if inside of it. */ if (group_in_compile_stack (compile_stack, (regnum_t) c1)) goto normal_char; laststart = b; BUF_PUSH_2 (duplicate, c1); break; case '+': case '?': if (syntax & RE_BK_PLUS_QM) goto handle_plus; else goto normal_backslash; default: normal_backslash: /* You might think it would be useful for \ to mean not to translate; but if we don't translate it it will never match anything. */ c = TRANSLATE (c); goto normal_char; } break; default: /* Expects the character in `c'. */ normal_char: /* If no exactn currently being built. */ if (!pending_exact /* If last exactn not at current position. */ || pending_exact + *pending_exact + 1 != b /* We have only one byte following the exactn for the count. */ || *pending_exact == (1 << BYTEWIDTH) - 1 /* If followed by a repetition operator. */ || *p == '*' || *p == '^' || ((syntax & RE_BK_PLUS_QM) ? *p == '\\' && (p[1] == '+' || p[1] == '?') : (*p == '+' || *p == '?')) || ((syntax & RE_INTERVALS) && ((syntax & RE_NO_BK_BRACES) ? *p == '{' : (p[0] == '\\' && p[1] == '{')))) { /* Start building a new exactn. */ laststart = b; BUF_PUSH_2 (exactn, 0); pending_exact = b - 1; } BUF_PUSH (c); (*pending_exact)++; break; } /* switch (c) */ } /* while p != pend */ /* Through the pattern now. */ if (fixup_alt_jump) STORE_JUMP (jump_past_alt, fixup_alt_jump, b); if (!COMPILE_STACK_EMPTY) FREE_STACK_RETURN (REG_EPAREN); /* If we don't want backtracking, force success the first time we reach the end of the compiled pattern. */ if (syntax & RE_NO_POSIX_BACKTRACKING) BUF_PUSH (succeed); free (compile_stack.stack); /* We have succeeded; set the length of the buffer. */ bufp->used = b - bufp->buffer; #ifdef DEBUG if (debug) { DEBUG_PRINT1 ("\nCompiled pattern: \n"); print_compiled_pattern (bufp); } #endif /* DEBUG */ #ifndef MATCH_MAY_ALLOCATE /* Initialize the failure stack to the largest possible stack. This isn't necessary unless we're trying to avoid calling alloca in the search and match routines. */ { int num_regs = bufp->re_nsub + 1; /* Since DOUBLE_FAIL_STACK refuses to double only if the current size is strictly greater than re_max_failures, the largest possible stack is 2 * re_max_failures failure points. */ if (fail_stack.size < (2 * re_max_failures * MAX_FAILURE_ITEMS)) { fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS); if (! fail_stack.stack) fail_stack.stack = (fail_stack_elt_t *) malloc (fail_stack.size * sizeof (fail_stack_elt_t)); else fail_stack.stack = (fail_stack_elt_t *) realloc (fail_stack.stack, (fail_stack.size * sizeof (fail_stack_elt_t))); } regex_grow_registers (num_regs); } #endif /* not MATCH_MAY_ALLOCATE */ return REG_NOERROR; } /* regex_compile */ /* Subroutines for `regex_compile'. */ /* Store OP at LOC followed by two-byte integer parameter ARG. */ static void store_op1 (op, loc, arg) re_opcode_t op; unsigned char *loc; int arg; { *loc = (unsigned char) op; STORE_NUMBER (loc + 1, arg); } /* Like `store_op1', but for two two-byte parameters ARG1 and ARG2. */ static void store_op2 (op, loc, arg1, arg2) re_opcode_t op; unsigned char *loc; int arg1, arg2; { *loc = (unsigned char) op; STORE_NUMBER (loc + 1, arg1); STORE_NUMBER (loc + 3, arg2); } /* Copy the bytes from LOC to END to open up three bytes of space at LOC for OP followed by two-byte integer parameter ARG. */ static void insert_op1 (op, loc, arg, end) re_opcode_t op; unsigned char *loc; int arg; unsigned char *end; { register unsigned char *pfrom = end; register unsigned char *pto = end + 3; while (pfrom != loc) *--pto = *--pfrom; store_op1 (op, loc, arg); } /* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2. */ static void insert_op2 (op, loc, arg1, arg2, end) re_opcode_t op; unsigned char *loc; int arg1, arg2; unsigned char *end; { register unsigned char *pfrom = end; register unsigned char *pto = end + 5; while (pfrom != loc) *--pto = *--pfrom; store_op2 (op, loc, arg1, arg2); } /* P points to just after a ^ in PATTERN. Return true if that ^ comes after an alternative or a begin-subexpression. We assume there is at least one character before the ^. */ static boolean at_begline_loc_p (pattern, p, syntax) const char *pattern, *p; reg_syntax_t syntax; { const char *prev = p - 2; boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\'; return /* After a subexpression? */ (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash)) /* After an alternative? */ || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash)); } /* The dual of at_begline_loc_p. This one is for $. We assume there is at least one character after the $, i.e., `P < PEND'. */ static boolean at_endline_loc_p (p, pend, syntax) const char *p, *pend; reg_syntax_t syntax; { const char *next = p; boolean next_backslash = *next == '\\'; const char *next_next = p + 1 < pend ? p + 1 : 0; return /* Before a subexpression? */ (syntax & RE_NO_BK_PARENS ? *next == ')' : next_backslash && next_next && *next_next == ')') /* Before an alternative? */ || (syntax & RE_NO_BK_VBAR ? *next == '|' : next_backslash && next_next && *next_next == '|'); } /* Returns true if REGNUM is in one of COMPILE_STACK's elements and false if it's not. */ static boolean group_in_compile_stack (compile_stack, regnum) compile_stack_type compile_stack; regnum_t regnum; { int this_element; for (this_element = compile_stack.avail - 1; this_element >= 0; this_element--) if (compile_stack.stack[this_element].regnum == regnum) return true; return false; } /* Read the ending character of a range (in a bracket expression) from the uncompiled pattern *P_PTR (which ends at PEND). We assume the starting character is in `P[-2]'. (`P[-1]' is the character `-'.) Then we set the translation of all bits between the starting and ending characters (inclusive) in the compiled pattern B. Return an error code. We use these short variable names so we can use the same macros as `regex_compile' itself. */ static reg_errcode_t compile_range (p_ptr, pend, translate, syntax, b) const char **p_ptr, *pend; RE_TRANSLATE_TYPE translate; reg_syntax_t syntax; unsigned char *b; { unsigned this_char; const char *p = *p_ptr; unsigned int range_start, range_end; if (p == pend) return REG_ERANGE; /* Even though the pattern is a signed `char *', we need to fetch with unsigned char *'s; if the high bit of the pattern character is set, the range endpoints will be negative if we fetch using a signed char *. We also want to fetch the endpoints without translating them; the appropriate translation is done in the bit-setting loop below. */ /* The SVR4 compiler on the 3B2 had trouble with unsigned const char *. */ range_start = ((const unsigned char *) p)[-2]; range_end = ((const unsigned char *) p)[0]; /* Have to increment the pointer into the pattern string, so the caller isn't still at the ending character. */ (*p_ptr)++; /* If the start is after the end, the range is empty. */ if (range_start > range_end) return syntax & RE_NO_EMPTY_RANGES ? REG_ERANGE : REG_NOERROR; /* Here we see why `this_char' has to be larger than an `unsigned char' -- the range is inclusive, so if `range_end' == 0xff (assuming 8-bit characters), we would otherwise go into an infinite loop, since all characters <= 0xff. */ for (this_char = range_start; this_char <= range_end; this_char++) { SET_LIST_BIT (TRANSLATE (this_char)); } return REG_NOERROR; } /* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in BUFP. A fastmap records which of the (1 << BYTEWIDTH) possible characters can start a string that matches the pattern. This fastmap is used by re_search to skip quickly over impossible starting points. The caller must supply the address of a (1 << BYTEWIDTH)-byte data area as BUFP->fastmap. We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in the pattern buffer. Returns 0 if we succeed, -2 if an internal error. */ int re_compile_fastmap (bufp) struct re_pattern_buffer *bufp; { int j, k; #ifdef MATCH_MAY_ALLOCATE fail_stack_type fail_stack; #endif register char *fastmap = bufp->fastmap; unsigned char *pattern = bufp->buffer; unsigned char *p = pattern; register unsigned char *pend = pattern + bufp->used; /* Assume that each path through the pattern can be null until proven otherwise. We set this false at the bottom of switch statement, to which we get only if a particular path doesn't match the empty string. */ boolean path_can_be_null = true; /* We aren't doing a `succeed_n' to begin with. */ boolean succeed_n_p = false; assert (fastmap != NULL && p != NULL); INIT_FAIL_STACK (); bzero (fastmap, 1 << BYTEWIDTH); /* Assume nothing's valid. */ bufp->fastmap_accurate = 1; /* It will be when we're done. */ bufp->can_be_null = 0; while (1) { if (p == pend || *p == succeed) { /* We have reached the (effective) end of pattern. */ if (!FAIL_STACK_EMPTY ()) { bufp->can_be_null |= path_can_be_null; /* Reset for next path. */ path_can_be_null = true; p = fail_stack.stack[--fail_stack.avail].pointer; continue; } else break; } /* We should never be about to go beyond the end of the pattern. */ assert (p < pend); switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) { /* I guess the idea here is to simply not bother with a fastmap if a backreference is used, since it's too hard to figure out the fastmap for the corresponding group. Setting `can_be_null' stops `re_search_2' from using the fastmap, so that is all we do. */ case duplicate: bufp->can_be_null = 1; goto done; /* Following are the cases which match a character. These end with `break'. */ case exactn: fastmap[p[1]] = 1; break; case charset: for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--) if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))) fastmap[j] = 1; break; case charset_not: /* Chars beyond end of map must be allowed. */ for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++) fastmap[j] = 1; for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--) if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))) fastmap[j] = 1; break; case wordchar: for (j = 0; j < (1 << BYTEWIDTH); j++) if (SYNTAX (j) == Sword) fastmap[j] = 1; break; case notwordchar: for (j = 0; j < (1 << BYTEWIDTH); j++) if (SYNTAX (j) != Sword) fastmap[j] = 1; break; case anychar: { int fastmap_newline = fastmap['\n']; /* `.' matches anything ... */ for (j = 0; j < (1 << BYTEWIDTH); j++) fastmap[j] = 1; /* ... except perhaps newline. */ if (!(bufp->syntax & RE_DOT_NEWLINE)) fastmap['\n'] = fastmap_newline; /* Return if we have already set `can_be_null'; if we have, then the fastmap is irrelevant. Something's wrong here. */ else if (bufp->can_be_null) goto done; /* Otherwise, have to check alternative paths. */ break; } case no_op: case begline: case endline: case begbuf: case endbuf: case wordbound: case notwordbound: case wordbeg: case wordend: case push_dummy_failure: continue; case jump_n: case pop_failure_jump: case maybe_pop_jump: case jump: case jump_past_alt: case dummy_failure_jump: EXTRACT_NUMBER_AND_INCR (j, p); p += j; if (j > 0) continue; /* Jump backward implies we just went through the body of a loop and matched nothing. Opcode jumped to should be `on_failure_jump' or `succeed_n'. Just treat it like an ordinary jump. For a * loop, it has pushed its failure point already; if so, discard that as redundant. */ if ((re_opcode_t) *p != on_failure_jump && (re_opcode_t) *p != succeed_n) continue; p++; EXTRACT_NUMBER_AND_INCR (j, p); p += j; /* If what's on the stack is where we are now, pop it. */ if (!FAIL_STACK_EMPTY () && fail_stack.stack[fail_stack.avail - 1].pointer == p) fail_stack.avail--; continue; case on_failure_jump: case on_failure_keep_string_jump: handle_on_failure_jump: EXTRACT_NUMBER_AND_INCR (j, p); /* For some patterns, e.g., `(a?)?', `p+j' here points to the end of the pattern. We don't want to push such a point, since when we restore it above, entering the switch will increment `p' past the end of the pattern. We don't need to push such a point since we obviously won't find any more fastmap entries beyond `pend'. Such a pattern can match the null string, though. */ if (p + j < pend) { if (!PUSH_PATTERN_OP (p + j, fail_stack)) { RESET_FAIL_STACK (); return -2; } } else bufp->can_be_null = 1; if (succeed_n_p) { EXTRACT_NUMBER_AND_INCR (k, p); /* Skip the n. */ succeed_n_p = false; } continue; case succeed_n: /* Get to the number of times to succeed. */ p += 2; /* Increment p past the n for when k != 0. */ EXTRACT_NUMBER_AND_INCR (k, p); if (k == 0) { p -= 4; succeed_n_p = true; /* Spaghetti code alert. */ goto handle_on_failure_jump; } continue; case set_number_at: p += 4; continue; case start_memory: case stop_memory: p += 2; continue; default: abort (); /* We have listed all the cases. */ } /* switch *p++ */ /* Getting here means we have found the possible starting characters for one path of the pattern -- and that the empty string does not match. We need not follow this path further. Instead, look at the next alternative (remembered on the stack), or quit if no more. The test at the top of the loop does these things. */ path_can_be_null = false; p = pend; } /* while p */ /* Set `can_be_null' for the last path (also the first path, if the pattern is empty). */ bufp->can_be_null |= path_can_be_null; done: RESET_FAIL_STACK (); return 0; } /* re_compile_fastmap */ #ifdef _LIBC weak_alias (__re_compile_fastmap, re_compile_fastmap) #endif /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated using the malloc library routine, and must each be at least NUM_REGS * sizeof (regoff_t) bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using PATTERN_BUFFER will allocate its own register data, without freeing the old data. */ void re_set_registers (bufp, regs, num_regs, starts, ends) struct re_pattern_buffer *bufp; struct re_registers *regs; unsigned num_regs; regoff_t *starts, *ends; { if (num_regs) { bufp->regs_allocated = REGS_REALLOCATE; regs->num_regs = num_regs; regs->start = starts; regs->end = ends; } else { bufp->regs_allocated = REGS_UNALLOCATED; regs->num_regs = 0; regs->start = regs->end = (regoff_t *) 0; } } #ifdef _LIBC weak_alias (__re_set_registers, re_set_registers) #endif /* Searching routines. */ /* Like re_search_2, below, but only one string is specified, and doesn't let you say where to stop matching. */ int re_search (bufp, string, size, startpos, range, regs) struct re_pattern_buffer *bufp; const char *string; int size, startpos, range; struct re_registers *regs; { return re_search_2 (bufp, NULL, 0, string, size, startpos, range, regs, size); } #ifdef _LIBC weak_alias (__re_search, re_search) #endif /* Using the compiled pattern in BUFP->buffer, first tries to match the virtual concatenation of STRING1 and STRING2, starting first at index STARTPOS, then at STARTPOS + 1, and so on. STRING1 and STRING2 have length SIZE1 and SIZE2, respectively. RANGE is how far to scan while trying to match. RANGE = 0 means try only at STARTPOS; in general, the last start tried is STARTPOS + RANGE. In REGS, return the indices of the virtual concatenation of STRING1 and STRING2 that matched the entire BUFP->buffer and its contained subexpressions. Do not consider matching one past the index STOP in the virtual concatenation of STRING1 and STRING2. We return either the position in the strings at which the match was found, -1 if no match, or -2 if error (such as failure stack overflow). */ int re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; int size1, size2; int startpos; int range; struct re_registers *regs; int stop; { int val; register char *fastmap = bufp->fastmap; register RE_TRANSLATE_TYPE translate = bufp->translate; int total_size = size1 + size2; int endpos = startpos + range; /* Check for out-of-range STARTPOS. */ if (startpos < 0 || startpos > total_size) return -1; /* Fix up RANGE if it might eventually take us outside the virtual concatenation of STRING1 and STRING2. Make sure we won't move STARTPOS below 0 or above TOTAL_SIZE. */ if (endpos < 0) range = 0 - startpos; else if (endpos > total_size) range = total_size - startpos; /* If the search isn't to be a backwards one, don't waste time in a search for a pattern that must be anchored. */ if (bufp->used > 0 && range > 0 && ((re_opcode_t) bufp->buffer[0] == begbuf /* `begline' is like `begbuf' if it cannot match at newlines. */ || ((re_opcode_t) bufp->buffer[0] == begline && !bufp->newline_anchor))) { if (startpos > 0) return -1; else range = 1; } /* Update the fastmap now if not correct already. */ if (fastmap && !bufp->fastmap_accurate) if (re_compile_fastmap (bufp) == -2) return -2; /* Loop through the string, looking for a place to start matching. */ for (;;) { /* If a fastmap is supplied, skip quickly over characters that cannot be the start of a match. If the pattern can match the null string, however, we don't need to skip characters; we want the first null string. */ if (fastmap && startpos < total_size && !bufp->can_be_null) { if (range > 0) /* Searching forwards. */ { register const char *d; register int lim = 0; int irange = range; if (startpos < size1 && startpos + range >= size1) lim = range - (size1 - startpos); d = (startpos >= size1 ? string2 - size1 : string1) + startpos; /* Written out as an if-else to avoid testing `translate' inside the loop. */ if (translate) while (range > lim && !fastmap[(unsigned char) translate[(unsigned char) *d++]]) range--; else while (range > lim && !fastmap[(unsigned char) *d++]) range--; startpos += irange - range; } else /* Searching backwards. */ { register char c = (size1 == 0 || startpos >= size1 ? string2[startpos - size1] : string1[startpos]); if (!fastmap[(unsigned char) TRANSLATE (c)]) goto advance; } } /* If can't match the null string, and that's all we have left, fail. */ if (range >= 0 && startpos == total_size && fastmap && !bufp->can_be_null) return -1; val = re_match_2_internal (bufp, string1, size1, string2, size2, startpos, regs, stop); if (val >= 0) return startpos; if (val == -2) return -2; advance: if (!range) break; else if (range > 0) { range--; startpos++; } else { range++; startpos--; } } return -1; } /* re_search_2 */ #ifdef _LIBC weak_alias (__re_search_2, re_search_2) #endif /* This converts PTR, a pointer into one of the search strings `string1' and `string2' into an offset from the beginning of that string. */ #define POINTER_TO_OFFSET(ptr) \ (FIRST_STRING_P (ptr) \ ? ((regoff_t) ((ptr) - string1)) \ : ((regoff_t) ((ptr) - string2 + size1))) /* Macros for dealing with the split strings in re_match_2. */ #define MATCHING_IN_FIRST_STRING (dend == end_match_1) /* Call before fetching a character with *d. This switches over to string2 if necessary. */ #define PREFETCH() \ while (d == dend) \ { \ /* End of string2 => fail. */ \ if (dend == end_match_2) \ goto fail; \ /* End of string1 => advance to string2. */ \ d = string2; \ dend = end_match_2; \ } /* Test if at very beginning or at very end of the virtual concatenation of `string1' and `string2'. If only one string, it's `string2'. */ #define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2) #define AT_STRINGS_END(d) ((d) == end2) /* Test if D points to a character which is word-constituent. We have two special cases to check for: if past the end of string1, look at the first character in string2; and if before the beginning of string2, look at the last character in string1. */ #define WORDCHAR_P(d) \ (SYNTAX ((d) == end1 ? *string2 \ : (d) == string2 - 1 ? *(end1 - 1) : *(d)) \ == Sword) /* Disabled due to a compiler bug -- see comment at case wordbound */ #if 0 /* Test if the character before D and the one at D differ with respect to being word-constituent. */ #define AT_WORD_BOUNDARY(d) \ (AT_STRINGS_BEG (d) || AT_STRINGS_END (d) \ || WORDCHAR_P (d - 1) != WORDCHAR_P (d)) #endif /* Free everything we malloc. */ #ifdef MATCH_MAY_ALLOCATE # define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL # define FREE_VARIABLES() \ do { \ REGEX_FREE_STACK (fail_stack.stack); \ FREE_VAR (regstart); \ FREE_VAR (regend); \ FREE_VAR (old_regstart); \ FREE_VAR (old_regend); \ FREE_VAR (best_regstart); \ FREE_VAR (best_regend); \ FREE_VAR (reg_info); \ FREE_VAR (reg_dummy); \ FREE_VAR (reg_info_dummy); \ } while (0) #else # define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */ #endif /* not MATCH_MAY_ALLOCATE */ /* These values must meet several constraints. They must not be valid register values; since we have a limit of 255 registers (because we use only one byte in the pattern for the register number), we can use numbers larger than 255. They must differ by 1, because of NUM_FAILURE_ITEMS above. And the value for the lowest register must be larger than the value for the highest register, so we do not try to actually save any registers when none are active. */ #define NO_HIGHEST_ACTIVE_REG (1 << BYTEWIDTH) #define NO_LOWEST_ACTIVE_REG (NO_HIGHEST_ACTIVE_REG + 1) /* Matching routines. */ /* re_match is like re_match_2 except it takes only a single string. */ int re_match (bufp, string, size, pos, regs) struct re_pattern_buffer *bufp; const char *string; int size, pos; struct re_registers *regs; { int result = re_match_2_internal (bufp, NULL, 0, string, size, pos, regs, size); return result; } #ifdef _LIBC weak_alias (__re_match, re_match) #endif static boolean group_match_null_string_p _RE_ARGS ((unsigned char **p, unsigned char *end, register_info_type *reg_info)); static boolean alt_match_null_string_p _RE_ARGS ((unsigned char *p, unsigned char *end, register_info_type *reg_info)); static boolean common_op_match_null_string_p _RE_ARGS ((unsigned char **p, unsigned char *end, register_info_type *reg_info)); static int bcmp_translate _RE_ARGS ((const char *s1, const char *s2, int len, char *translate)); /* re_match_2 matches the compiled pattern in BUFP against the the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1 and SIZE2, respectively). We start matching at POS, and stop matching at STOP. If REGS is non-null and the `no_sub' field of BUFP is nonzero, we store offsets for the substring each group matched in REGS. See the documentation for exactly how many groups we fill. We return -1 if no match, -2 if an internal error (such as the failure stack overflowing). Otherwise, we return the length of the matched substring. */ int re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; int size1, size2; int pos; struct re_registers *regs; int stop; { int result = re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop); return result; } #ifdef _LIBC weak_alias (__re_match_2, re_match_2) #endif /* This is a separate function so that we can force an alloca cleanup afterwards. */ static int re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop) struct re_pattern_buffer *bufp; const char *string1, *string2; int size1, size2; int pos; struct re_registers *regs; int stop; { /* General temporaries. */ int mcnt; unsigned char *p1; /* Just past the end of the corresponding string. */ const char *end1, *end2; /* Pointers into string1 and string2, just past the last characters in each to consider matching. */ const char *end_match_1, *end_match_2; /* Where we are in the data, and the end of the current string. */ const char *d, *dend; /* Where we are in the pattern, and the end of the pattern. */ unsigned char *p = bufp->buffer; register unsigned char *pend = p + bufp->used; /* Mark the opcode just after a start_memory, so we can test for an empty subpattern when we get to the stop_memory. */ unsigned char *just_past_start_mem = 0; /* We use this to map every character in the string. */ RE_TRANSLATE_TYPE translate = bufp->translate; /* Failure point stack. Each place that can handle a failure further down the line pushes a failure point on this stack. It consists of restart, regend, and reg_info for all registers corresponding to the subexpressions we're currently inside, plus the number of such registers, and, finally, two char *'s. The first char * is where to resume scanning the pattern; the second one is where to resume scanning the strings. If the latter is zero, the failure point is a ``dummy''; if a failure happens and the failure point is a dummy, it gets discarded and the next next one is tried. */ #ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */ fail_stack_type fail_stack; #endif #ifdef DEBUG static unsigned failure_id = 0; unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0; #endif /* We fill all the registers internally, independent of what we return, for use in backreferences. The number here includes an element for register zero. */ size_t num_regs = bufp->re_nsub + 1; /* The currently active registers. */ active_reg_t lowest_active_reg = NO_LOWEST_ACTIVE_REG; active_reg_t highest_active_reg = NO_HIGHEST_ACTIVE_REG; /* Information on the contents of registers. These are pointers into the input strings; they record just what was matched (on this attempt) by a subexpression part of the pattern, that is, the regnum-th regstart pointer points to where in the pattern we began matching and the regnum-th regend points to right after where we stopped matching the regnum-th subexpression. (The zeroth register keeps track of what the whole pattern matches.) */ #ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ const char **regstart, **regend; #endif /* If a group that's operated upon by a repetition operator fails to match anything, then the register for its start will need to be restored because it will have been set to wherever in the string we are when we last see its open-group operator. Similarly for a register's end. */ #ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ const char **old_regstart, **old_regend; #endif /* The is_active field of reg_info helps us keep track of which (possibly nested) subexpressions we are currently in. The matched_something field of reg_info[reg_num] helps us tell whether or not we have matched any of the pattern so far this time through the reg_num-th subexpression. These two fields get reset each time through any loop their register is in. */ #ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */ register_info_type *reg_info; #endif /* The following record the register info as found in the above variables when we find a match better than any we've seen before. This happens as we backtrack through the failure points, which in turn happens only if we have not yet matched the entire string. */ unsigned best_regs_set = false; #ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ const char **best_regstart, **best_regend; #endif /* Logically, this is `best_regend[0]'. But we don't want to have to allocate space for that if we're not allocating space for anything else (see below). Also, we never need info about register 0 for any of the other register vectors, and it seems rather a kludge to treat `best_regend' differently than the rest. So we keep track of the end of the best match so far in a separate variable. We initialize this to NULL so that when we backtrack the first time and need to test it, it's not garbage. */ const char *match_end = NULL; /* This helps SET_REGS_MATCHED avoid doing redundant work. */ int set_regs_matched_done = 0; /* Used when we pop values we don't care about. */ #ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ const char **reg_dummy; register_info_type *reg_info_dummy; #endif #ifdef DEBUG /* Counts the total number of registers pushed. */ unsigned num_regs_pushed = 0; #endif DEBUG_PRINT1 ("\n\nEntering re_match_2.\n"); INIT_FAIL_STACK (); #ifdef MATCH_MAY_ALLOCATE /* Do not bother to initialize all the register variables if there are no groups in the pattern, as it takes a fair amount of time. If there are groups, we include space for register 0 (the whole pattern), even though we never use it, since it simplifies the array indexing. We should fix this. */ if (bufp->re_nsub) { regstart = REGEX_TALLOC (num_regs, const char *); regend = REGEX_TALLOC (num_regs, const char *); old_regstart = REGEX_TALLOC (num_regs, const char *); old_regend = REGEX_TALLOC (num_regs, const char *); best_regstart = REGEX_TALLOC (num_regs, const char *); best_regend = REGEX_TALLOC (num_regs, const char *); reg_info = REGEX_TALLOC (num_regs, register_info_type); reg_dummy = REGEX_TALLOC (num_regs, const char *); reg_info_dummy = REGEX_TALLOC (num_regs, register_info_type); if (!(regstart && regend && old_regstart && old_regend && reg_info && best_regstart && best_regend && reg_dummy && reg_info_dummy)) { FREE_VARIABLES (); return -2; } } else { /* We must initialize all our variables to NULL, so that `FREE_VARIABLES' doesn't try to free them. */ regstart = regend = old_regstart = old_regend = best_regstart = best_regend = reg_dummy = NULL; reg_info = reg_info_dummy = (register_info_type *) NULL; } #endif /* MATCH_MAY_ALLOCATE */ /* The starting position is bogus. */ if (pos < 0 || pos > size1 + size2) { FREE_VARIABLES (); return -1; } /* Initialize subexpression text positions to -1 to mark ones that no start_memory/stop_memory has been seen for. Also initialize the register information struct. */ for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) { regstart[mcnt] = regend[mcnt] = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE; REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE; IS_ACTIVE (reg_info[mcnt]) = 0; MATCHED_SOMETHING (reg_info[mcnt]) = 0; EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0; } /* We move `string1' into `string2' if the latter's empty -- but not if `string1' is null. */ if (size2 == 0 && string1 != NULL) { string2 = string1; size2 = size1; string1 = 0; size1 = 0; } end1 = string1 + size1; end2 = string2 + size2; /* Compute where to stop matching, within the two strings. */ if (stop <= size1) { end_match_1 = string1 + stop; end_match_2 = string2; } else { end_match_1 = end1; end_match_2 = string2 + stop - size1; } /* `p' scans through the pattern as `d' scans through the data. `dend' is the end of the input string that `d' points within. `d' is advanced into the following input string whenever necessary, but this happens before fetching; therefore, at the beginning of the loop, `d' can be pointing at the end of a string, but it cannot equal `string2'. */ if (size1 > 0 && pos <= size1) { d = string1 + pos; dend = end_match_1; } else { d = string2 + pos - size1; dend = end_match_2; } DEBUG_PRINT1 ("The compiled pattern is:\n"); DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend); DEBUG_PRINT1 ("The string to match is: `"); DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2); DEBUG_PRINT1 ("'\n"); /* This loops over pattern commands. It exits by returning from the function if the match is complete, or it drops through if the match fails at this starting point in the input data. */ for (;;) { #ifdef _LIBC DEBUG_PRINT2 ("\n%p: ", p); #else DEBUG_PRINT2 ("\n0x%x: ", p); #endif if (p == pend) { /* End of pattern means we might have succeeded. */ DEBUG_PRINT1 ("end of pattern ... "); /* If we haven't matched the entire string, and we want the longest match, try backtracking. */ if (d != end_match_2) { /* 1 if this match ends in the same string (string1 or string2) as the best previous match. */ boolean same_str_p = (FIRST_STRING_P (match_end) == MATCHING_IN_FIRST_STRING); /* 1 if this match is the best seen so far. */ boolean best_match_p; /* AIX compiler got confused when this was combined with the previous declaration. */ if (same_str_p) best_match_p = d > match_end; else best_match_p = !MATCHING_IN_FIRST_STRING; DEBUG_PRINT1 ("backtracking.\n"); if (!FAIL_STACK_EMPTY ()) { /* More failure points to try. */ /* If exceeds best match so far, save it. */ if (!best_regs_set || best_match_p) { best_regs_set = true; match_end = d; DEBUG_PRINT1 ("\nSAVING match as best so far.\n"); for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) { best_regstart[mcnt] = regstart[mcnt]; best_regend[mcnt] = regend[mcnt]; } } goto fail; } /* If no failure points, don't restore garbage. And if last match is real best match, don't restore second best one. */ else if (best_regs_set && !best_match_p) { restore_best_regs: /* Restore best match. It may happen that `dend == end_match_1' while the restored d is in string2. For example, the pattern `x.*y.*z' against the strings `x-' and `y-z-', if the two strings are not consecutive in memory. */ DEBUG_PRINT1 ("Restoring best registers.\n"); d = match_end; dend = ((d >= string1 && d <= end1) ? end_match_1 : end_match_2); for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) { regstart[mcnt] = best_regstart[mcnt]; regend[mcnt] = best_regend[mcnt]; } } } /* d != end_match_2 */ succeed_label: DEBUG_PRINT1 ("Accepting match.\n"); /* If caller wants register contents data back, do it. */ if (regs && !bufp->no_sub) { /* Have the register data arrays been allocated? */ if (bufp->regs_allocated == REGS_UNALLOCATED) { /* No. So allocate them with malloc. We need one extra element beyond `num_regs' for the `-1' marker GNU code uses. */ regs->num_regs = MAX (RE_NREGS, num_regs + 1); regs->start = TALLOC (regs->num_regs, regoff_t); regs->end = TALLOC (regs->num_regs, regoff_t); if (regs->start == NULL || regs->end == NULL) { FREE_VARIABLES (); return -2; } bufp->regs_allocated = REGS_REALLOCATE; } else if (bufp->regs_allocated == REGS_REALLOCATE) { /* Yes. If we need more elements than were already allocated, reallocate them. If we need fewer, just leave it alone. */ if (regs->num_regs < num_regs + 1) { regs->num_regs = num_regs + 1; RETALLOC (regs->start, regs->num_regs, regoff_t); RETALLOC (regs->end, regs->num_regs, regoff_t); if (regs->start == NULL || regs->end == NULL) { FREE_VARIABLES (); return -2; } } } else { /* These braces fend off a "empty body in an else-statement" warning under GCC when assert expands to nothing. */ assert (bufp->regs_allocated == REGS_FIXED); } /* Convert the pointer data in `regstart' and `regend' to indices. Register zero has to be set differently, since we haven't kept track of any info for it. */ if (regs->num_regs > 0) { regs->start[0] = pos; regs->end[0] = (MATCHING_IN_FIRST_STRING ? ((regoff_t) (d - string1)) : ((regoff_t) (d - string2 + size1))); } /* Go through the first `min (num_regs, regs->num_regs)' registers, since that is all we initialized. */ for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs); mcnt++) { if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt])) regs->start[mcnt] = regs->end[mcnt] = -1; else { regs->start[mcnt] = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]); regs->end[mcnt] = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]); } } /* If the regs structure we return has more elements than were in the pattern, set the extra elements to -1. If we (re)allocated the registers, this is the case, because we always allocate enough to have at least one -1 at the end. */ for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++) regs->start[mcnt] = regs->end[mcnt] = -1; } /* regs && !bufp->no_sub */ DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n", nfailure_points_pushed, nfailure_points_popped, nfailure_points_pushed - nfailure_points_popped); DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed); mcnt = d - pos - (MATCHING_IN_FIRST_STRING ? string1 : string2 - size1); DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt); FREE_VARIABLES (); return mcnt; } /* Otherwise match next pattern command. */ switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) { /* Ignore these. Used to ignore the n of succeed_n's which currently have n == 0. */ case no_op: DEBUG_PRINT1 ("EXECUTING no_op.\n"); break; case succeed: DEBUG_PRINT1 ("EXECUTING succeed.\n"); goto succeed_label; /* Match the next n pattern characters exactly. The following byte in the pattern defines n, and the n bytes after that are the characters to match. */ case exactn: mcnt = *p++; DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt); /* This is written out as an if-else so we don't waste time testing `translate' inside the loop. */ if (translate) { do { PREFETCH (); if ((unsigned char) translate[(unsigned char) *d++] != (unsigned char) *p++) goto fail; } while (--mcnt); } else { do { PREFETCH (); if (*d++ != (char) *p++) goto fail; } while (--mcnt); } SET_REGS_MATCHED (); break; /* Match any character except possibly a newline or a null. */ case anychar: DEBUG_PRINT1 ("EXECUTING anychar.\n"); PREFETCH (); if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n') || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000')) goto fail; SET_REGS_MATCHED (); DEBUG_PRINT2 (" Matched `%d'.\n", *d); d++; break; case charset: case charset_not: { register unsigned char c; boolean not = (re_opcode_t) *(p - 1) == charset_not; DEBUG_PRINT2 ("EXECUTING charset%s.\n", not ? "_not" : ""); PREFETCH (); c = TRANSLATE (*d); /* The character to match. */ /* Cast to `unsigned' instead of `unsigned char' in case the bit list is a full 32 bytes long. */ if (c < (unsigned) (*p * BYTEWIDTH) && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH))) not = !not; p += 1 + *p; if (!not) goto fail; SET_REGS_MATCHED (); d++; break; } /* The beginning of a group is represented by start_memory. The arguments are the register number in the next byte, and the number of groups inner to this one in the next. The text matched within the group is recorded (in the internal registers data structure) under the register number. */ case start_memory: DEBUG_PRINT3 ("EXECUTING start_memory %d (%d):\n", *p, p[1]); /* Find out if this group can match the empty string. */ p1 = p; /* To send to group_match_null_string_p. */ if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE) REG_MATCH_NULL_STRING_P (reg_info[*p]) = group_match_null_string_p (&p1, pend, reg_info); /* Save the position in the string where we were the last time we were at this open-group operator in case the group is operated upon by a repetition operator, e.g., with `(a*)*b' against `ab'; then we want to ignore where we are now in the string in case this attempt to match fails. */ old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p]) ? REG_UNSET (regstart[*p]) ? d : regstart[*p] : regstart[*p]; DEBUG_PRINT2 (" old_regstart: %d\n", POINTER_TO_OFFSET (old_regstart[*p])); regstart[*p] = d; DEBUG_PRINT2 (" regstart: %d\n", POINTER_TO_OFFSET (regstart[*p])); IS_ACTIVE (reg_info[*p]) = 1; MATCHED_SOMETHING (reg_info[*p]) = 0; /* Clear this whenever we change the register activity status. */ set_regs_matched_done = 0; /* This is the new highest active register. */ highest_active_reg = *p; /* If nothing was active before, this is the new lowest active register. */ if (lowest_active_reg == NO_LOWEST_ACTIVE_REG) lowest_active_reg = *p; /* Move past the register number and inner group count. */ p += 2; just_past_start_mem = p; break; /* The stop_memory opcode represents the end of a group. Its arguments are the same as start_memory's: the register number, and the number of inner groups. */ case stop_memory: DEBUG_PRINT3 ("EXECUTING stop_memory %d (%d):\n", *p, p[1]); /* We need to save the string position the last time we were at this close-group operator in case the group is operated upon by a repetition operator, e.g., with `((a*)*(b*)*)*' against `aba'; then we want to ignore where we are now in the string in case this attempt to match fails. */ old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p]) ? REG_UNSET (regend[*p]) ? d : regend[*p] : regend[*p]; DEBUG_PRINT2 (" old_regend: %d\n", POINTER_TO_OFFSET (old_regend[*p])); regend[*p] = d; DEBUG_PRINT2 (" regend: %d\n", POINTER_TO_OFFSET (regend[*p])); /* This register isn't active anymore. */ IS_ACTIVE (reg_info[*p]) = 0; /* Clear this whenever we change the register activity status. */ set_regs_matched_done = 0; /* If this was the only register active, nothing is active anymore. */ if (lowest_active_reg == highest_active_reg) { lowest_active_reg = NO_LOWEST_ACTIVE_REG; highest_active_reg = NO_HIGHEST_ACTIVE_REG; } else { /* We must scan for the new highest active register, since it isn't necessarily one less than now: consider (a(b)c(d(e)f)g). When group 3 ends, after the f), the new highest active register is 1. */ unsigned char r = *p - 1; while (r > 0 && !IS_ACTIVE (reg_info[r])) r--; /* If we end up at register zero, that means that we saved the registers as the result of an `on_failure_jump', not a `start_memory', and we jumped to past the innermost `stop_memory'. For example, in ((.)*) we save registers 1 and 2 as a result of the *, but when we pop back to the second ), we are at the stop_memory 1. Thus, nothing is active. */ if (r == 0) { lowest_active_reg = NO_LOWEST_ACTIVE_REG; highest_active_reg = NO_HIGHEST_ACTIVE_REG; } else highest_active_reg = r; } /* If just failed to match something this time around with a group that's operated on by a repetition operator, try to force exit from the ``loop'', and restore the register information for this group that we had before trying this last match. */ if ((!MATCHED_SOMETHING (reg_info[*p]) || just_past_start_mem == p - 1) && (p + 2) < pend) { boolean is_a_jump_n = false; p1 = p + 2; mcnt = 0; switch ((re_opcode_t) *p1++) { case jump_n: is_a_jump_n = true; case pop_failure_jump: case maybe_pop_jump: case jump: case dummy_failure_jump: EXTRACT_NUMBER_AND_INCR (mcnt, p1); if (is_a_jump_n) p1 += 2; break; default: /* do nothing */ ; } p1 += mcnt; /* If the next operation is a jump backwards in the pattern to an on_failure_jump right before the start_memory corresponding to this stop_memory, exit from the loop by forcing a failure after pushing on the stack the on_failure_jump's jump in the pattern, and d. */ if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump && (re_opcode_t) p1[3] == start_memory && p1[4] == *p) { /* If this group ever matched anything, then restore what its registers were before trying this last failed match, e.g., with `(a*)*b' against `ab' for regstart[1], and, e.g., with `((a*)*(b*)*)*' against `aba' for regend[3]. Also restore the registers for inner groups for, e.g., `((a*)(b*))*' against `aba' (register 3 would otherwise get trashed). */ if (EVER_MATCHED_SOMETHING (reg_info[*p])) { unsigned r; EVER_MATCHED_SOMETHING (reg_info[*p]) = 0; /* Restore this and inner groups' (if any) registers. */ for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1); r++) { regstart[r] = old_regstart[r]; /* xx why this test? */ if (old_regend[r] >= regstart[r]) regend[r] = old_regend[r]; } } p1++; EXTRACT_NUMBER_AND_INCR (mcnt, p1); PUSH_FAILURE_POINT (p1 + mcnt, d, -2); goto fail; } } /* Move past the register number and the inner group count. */ p += 2; break; /* \<digit> has been turned into a `duplicate' command which is followed by the numeric value of <digit> as the register number. */ case duplicate: { register const char *d2, *dend2; int regno = *p++; /* Get which register to match against. */ DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno); /* Can't back reference a group which we've never matched. */ if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno])) goto fail; /* Where in input to try to start matching. */ d2 = regstart[regno]; /* Where to stop matching; if both the place to start and the place to stop matching are in the same string, then set to the place to stop, otherwise, for now have to use the end of the first string. */ dend2 = ((FIRST_STRING_P (regstart[regno]) == FIRST_STRING_P (regend[regno])) ? regend[regno] : end_match_1); for (;;) { /* If necessary, advance to next segment in register contents. */ while (d2 == dend2) { if (dend2 == end_match_2) break; if (dend2 == regend[regno]) break; /* End of string1 => advance to string2. */ d2 = string2; dend2 = regend[regno]; } /* At end of register contents => success */ if (d2 == dend2) break; /* If necessary, advance to next segment in data. */ PREFETCH (); /* How many characters left in this segment to match. */ mcnt = dend - d; /* Want how many consecutive characters we can match in one shot, so, if necessary, adjust the count. */ if (mcnt > dend2 - d2) mcnt = dend2 - d2; /* Compare that many; failure if mismatch, else move past them. */ if (translate ? bcmp_translate (d, d2, mcnt, translate) : memcmp (d, d2, mcnt)) goto fail; d += mcnt, d2 += mcnt; /* Do this because we've match some characters. */ SET_REGS_MATCHED (); } } break; /* begline matches the empty string at the beginning of the string (unless `not_bol' is set in `bufp'), and, if `newline_anchor' is set, after newlines. */ case begline: DEBUG_PRINT1 ("EXECUTING begline.\n"); if (AT_STRINGS_BEG (d)) { if (!bufp->not_bol) break; } else if (d[-1] == '\n' && bufp->newline_anchor) { break; } /* In all other cases, we fail. */ goto fail; /* endline is the dual of begline. */ case endline: DEBUG_PRINT1 ("EXECUTING endline.\n"); if (AT_STRINGS_END (d)) { if (!bufp->not_eol) break; } /* We have to ``prefetch'' the next character. */ else if ((d == end1 ? *string2 : *d) == '\n' && bufp->newline_anchor) { break; } goto fail; /* Match at the very beginning of the data. */ case begbuf: DEBUG_PRINT1 ("EXECUTING begbuf.\n"); if (AT_STRINGS_BEG (d)) break; goto fail; /* Match at the very end of the data. */ case endbuf: DEBUG_PRINT1 ("EXECUTING endbuf.\n"); if (AT_STRINGS_END (d)) break; goto fail; /* on_failure_keep_string_jump is used to optimize `.*\n'. It pushes NULL as the value for the string on the stack. Then `pop_failure_point' will keep the current value for the string, instead of restoring it. To see why, consider matching `foo\nbar' against `.*\n'. The .* matches the foo; then the . fails against the \n. But the next thing we want to do is match the \n against the \n; if we restored the string value, we would be back at the foo. Because this is used only in specific cases, we don't need to check all the things that `on_failure_jump' does, to make sure the right things get saved on the stack. Hence we don't share its code. The only reason to push anything on the stack at all is that otherwise we would have to change `anychar's code to do something besides goto fail in this case; that seems worse than this. */ case on_failure_keep_string_jump: DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump"); EXTRACT_NUMBER_AND_INCR (mcnt, p); #ifdef _LIBC DEBUG_PRINT3 (" %d (to %p):\n", mcnt, p + mcnt); #else DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt); #endif PUSH_FAILURE_POINT (p + mcnt, NULL, -2); break; /* Uses of on_failure_jump: Each alternative starts with an on_failure_jump that points to the beginning of the next alternative. Each alternative except the last ends with a jump that in effect jumps past the rest of the alternatives. (They really jump to the ending jump of the following alternative, because tensioning these jumps is a hassle.) Repeats start with an on_failure_jump that points past both the repetition text and either the following jump or pop_failure_jump back to this on_failure_jump. */ case on_failure_jump: on_failure: DEBUG_PRINT1 ("EXECUTING on_failure_jump"); EXTRACT_NUMBER_AND_INCR (mcnt, p); #ifdef _LIBC DEBUG_PRINT3 (" %d (to %p)", mcnt, p + mcnt); #else DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt); #endif /* If this on_failure_jump comes right before a group (i.e., the original * applied to a group), save the information for that group and all inner ones, so that if we fail back to this point, the group's information will be correct. For example, in \(a*\)*\1, we need the preceding group, and in \(zz\(a*\)b*\)\2, we need the inner group. */ /* We can't use `p' to check ahead because we push a failure point to `p + mcnt' after we do this. */ p1 = p; /* We need to skip no_op's before we look for the start_memory in case this on_failure_jump is happening as the result of a completed succeed_n, as in \(a\)\{1,3\}b\1 against aba. */ while (p1 < pend && (re_opcode_t) *p1 == no_op) p1++; if (p1 < pend && (re_opcode_t) *p1 == start_memory) { /* We have a new highest active register now. This will get reset at the start_memory we are about to get to, but we will have saved all the registers relevant to this repetition op, as described above. */ highest_active_reg = *(p1 + 1) + *(p1 + 2); if (lowest_active_reg == NO_LOWEST_ACTIVE_REG) lowest_active_reg = *(p1 + 1); } DEBUG_PRINT1 (":\n"); PUSH_FAILURE_POINT (p + mcnt, d, -2); break; /* A smart repeat ends with `maybe_pop_jump'. We change it to either `pop_failure_jump' or `jump'. */ case maybe_pop_jump: EXTRACT_NUMBER_AND_INCR (mcnt, p); DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt); { register unsigned char *p2 = p; /* Compare the beginning of the repeat with what in the pattern follows its end. If we can establish that there is nothing that they would both match, i.e., that we would have to backtrack because of (as in, e.g., `a*a') then we can change to pop_failure_jump, because we'll never have to backtrack. This is not true in the case of alternatives: in `(a|ab)*' we do need to backtrack to the `ab' alternative (e.g., if the string was `ab'). But instead of trying to detect that here, the alternative has put on a dummy failure point which is what we will end up popping. */ /* Skip over open/close-group commands. If what follows this loop is a ...+ construct, look at what begins its body, since we will have to match at least one of that. */ while (1) { if (p2 + 2 < pend && ((re_opcode_t) *p2 == stop_memory || (re_opcode_t) *p2 == start_memory)) p2 += 3; else if (p2 + 6 < pend && (re_opcode_t) *p2 == dummy_failure_jump) p2 += 6; else break; } p1 = p + mcnt; /* p1[0] ... p1[2] are the `on_failure_jump' corresponding to the `maybe_finalize_jump' of this case. Examine what follows. */ /* If we're at the end of the pattern, we can change. */ if (p2 == pend) { /* Consider what happens when matching ":\(.*\)" against ":/". I don't really understand this code yet. */ p[-3] = (unsigned char) pop_failure_jump; DEBUG_PRINT1 (" End of pattern: change to `pop_failure_jump'.\n"); } else if ((re_opcode_t) *p2 == exactn || (bufp->newline_anchor && (re_opcode_t) *p2 == endline)) { register unsigned char c = *p2 == (unsigned char) endline ? '\n' : p2[2]; if ((re_opcode_t) p1[3] == exactn && p1[5] != c) { p[-3] = (unsigned char) pop_failure_jump; DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n", c, p1[5]); } else if ((re_opcode_t) p1[3] == charset || (re_opcode_t) p1[3] == charset_not) { int not = (re_opcode_t) p1[3] == charset_not; if (c < (unsigned char) (p1[4] * BYTEWIDTH) && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH))) not = !not; /* `not' is equal to 1 if c would match, which means that we can't change to pop_failure_jump. */ if (!not) { p[-3] = (unsigned char) pop_failure_jump; DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); } } } else if ((re_opcode_t) *p2 == charset) { #ifdef DEBUG register unsigned char c = *p2 == (unsigned char) endline ? '\n' : p2[2]; #endif if ((re_opcode_t) p1[3] == exactn && ! ((int) p2[1] * BYTEWIDTH > (int) p1[4] && (p2[2 + p1[4] / BYTEWIDTH] & (1 << (p1[4] % BYTEWIDTH))))) { p[-3] = (unsigned char) pop_failure_jump; DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n", c, p1[5]); } else if ((re_opcode_t) p1[3] == charset_not) { int idx; /* We win if the charset_not inside the loop lists every character listed in the charset after. */ for (idx = 0; idx < (int) p2[1]; idx++) if (! (p2[2 + idx] == 0 || (idx < (int) p1[4] && ((p2[2 + idx] & ~ p1[5 + idx]) == 0)))) break; if (idx == p2[1]) { p[-3] = (unsigned char) pop_failure_jump; DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); } } else if ((re_opcode_t) p1[3] == charset) { int idx; /* We win if the charset inside the loop has no overlap with the one after the loop. */ for (idx = 0; idx < (int) p2[1] && idx < (int) p1[4]; idx++) if ((p2[2 + idx] & p1[5 + idx]) != 0) break; if (idx == p2[1] || idx == p1[4]) { p[-3] = (unsigned char) pop_failure_jump; DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); } } } } p -= 2; /* Point at relative address again. */ if ((re_opcode_t) p[-1] != pop_failure_jump) { p[-1] = (unsigned char) jump; DEBUG_PRINT1 (" Match => jump.\n"); goto unconditional_jump; } /* Note fall through. */ /* The end of a simple repeat has a pop_failure_jump back to its matching on_failure_jump, where the latter will push a failure point. The pop_failure_jump takes off failure points put on by this pop_failure_jump's matching on_failure_jump; we got through the pattern to here from the matching on_failure_jump, so didn't fail. */ case pop_failure_jump: { /* We need to pass separate storage for the lowest and highest registers, even though we don't care about the actual values. Otherwise, we will restore only one register from the stack, since lowest will == highest in `pop_failure_point'. */ active_reg_t dummy_low_reg, dummy_high_reg; unsigned char *pdummy; const char *sdummy; DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n"); POP_FAILURE_POINT (sdummy, pdummy, dummy_low_reg, dummy_high_reg, reg_dummy, reg_dummy, reg_info_dummy); } /* Note fall through. */ unconditional_jump: #ifdef _LIBC DEBUG_PRINT2 ("\n%p: ", p); #else DEBUG_PRINT2 ("\n0x%x: ", p); #endif /* Note fall through. */ /* Unconditionally jump (without popping any failure points). */ case jump: EXTRACT_NUMBER_AND_INCR (mcnt, p); /* Get the amount to jump. */ DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt); p += mcnt; /* Do the jump. */ #ifdef _LIBC DEBUG_PRINT2 ("(to %p).\n", p); #else DEBUG_PRINT2 ("(to 0x%x).\n", p); #endif break; /* We need this opcode so we can detect where alternatives end in `group_match_null_string_p' et al. */ case jump_past_alt: DEBUG_PRINT1 ("EXECUTING jump_past_alt.\n"); goto unconditional_jump; /* Normally, the on_failure_jump pushes a failure point, which then gets popped at pop_failure_jump. We will end up at pop_failure_jump, also, and with a pattern of, say, `a+', we are skipping over the on_failure_jump, so we have to push something meaningless for pop_failure_jump to pop. */ case dummy_failure_jump: DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n"); /* It doesn't matter what we push for the string here. What the code at `fail' tests is the value for the pattern. */ PUSH_FAILURE_POINT (NULL, NULL, -2); goto unconditional_jump; /* At the end of an alternative, we need to push a dummy failure point in case we are followed by a `pop_failure_jump', because we don't want the failure point for the alternative to be popped. For example, matching `(a|ab)*' against `aab' requires that we match the `ab' alternative. */ case push_dummy_failure: DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n"); /* See comments just above at `dummy_failure_jump' about the two zeroes. */ PUSH_FAILURE_POINT (NULL, NULL, -2); break; /* Have to succeed matching what follows at least n times. After that, handle like `on_failure_jump'. */ case succeed_n: EXTRACT_NUMBER (mcnt, p + 2); DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt); assert (mcnt >= 0); /* Originally, this is how many times we HAVE to succeed. */ if (mcnt > 0) { mcnt--; p += 2; STORE_NUMBER_AND_INCR (p, mcnt); #ifdef _LIBC DEBUG_PRINT3 (" Setting %p to %d.\n", p - 2, mcnt); #else DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p - 2, mcnt); #endif } else if (mcnt == 0) { #ifdef _LIBC DEBUG_PRINT2 (" Setting two bytes from %p to no_op.\n", p+2); #else DEBUG_PRINT2 (" Setting two bytes from 0x%x to no_op.\n", p+2); #endif p[2] = (unsigned char) no_op; p[3] = (unsigned char) no_op; goto on_failure; } break; case jump_n: EXTRACT_NUMBER (mcnt, p + 2); DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt); /* Originally, this is how many times we CAN jump. */ if (mcnt) { mcnt--; STORE_NUMBER (p + 2, mcnt); #ifdef _LIBC DEBUG_PRINT3 (" Setting %p to %d.\n", p + 2, mcnt); #else DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p + 2, mcnt); #endif goto unconditional_jump; } /* If don't have to jump any more, skip over the rest of command. */ else p += 4; break; case set_number_at: { DEBUG_PRINT1 ("EXECUTING set_number_at.\n"); EXTRACT_NUMBER_AND_INCR (mcnt, p); p1 = p + mcnt; EXTRACT_NUMBER_AND_INCR (mcnt, p); #ifdef _LIBC DEBUG_PRINT3 (" Setting %p to %d.\n", p1, mcnt); #else DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p1, mcnt); #endif STORE_NUMBER (p1, mcnt); break; } #if 0 /* The DEC Alpha C compiler 3.x generates incorrect code for the test WORDCHAR_P (d - 1) != WORDCHAR_P (d) in the expansion of AT_WORD_BOUNDARY, so this code is disabled. Expanding the macro and introducing temporary variables works around the bug. */ case wordbound: DEBUG_PRINT1 ("EXECUTING wordbound.\n"); if (AT_WORD_BOUNDARY (d)) break; goto fail; case notwordbound: DEBUG_PRINT1 ("EXECUTING notwordbound.\n"); if (AT_WORD_BOUNDARY (d)) goto fail; break; #else case wordbound: { boolean prevchar, thischar; DEBUG_PRINT1 ("EXECUTING wordbound.\n"); if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)) break; prevchar = WORDCHAR_P (d - 1); thischar = WORDCHAR_P (d); if (prevchar != thischar) break; goto fail; } case notwordbound: { boolean prevchar, thischar; DEBUG_PRINT1 ("EXECUTING notwordbound.\n"); if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)) goto fail; prevchar = WORDCHAR_P (d - 1); thischar = WORDCHAR_P (d); if (prevchar != thischar) goto fail; break; } #endif case wordbeg: DEBUG_PRINT1 ("EXECUTING wordbeg.\n"); if (WORDCHAR_P (d) && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1))) break; goto fail; case wordend: DEBUG_PRINT1 ("EXECUTING wordend.\n"); if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1) && (!WORDCHAR_P (d) || AT_STRINGS_END (d))) break; goto fail; case wordchar: DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n"); PREFETCH (); if (!WORDCHAR_P (d)) goto fail; SET_REGS_MATCHED (); d++; break; case notwordchar: DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n"); PREFETCH (); if (WORDCHAR_P (d)) goto fail; SET_REGS_MATCHED (); d++; break; default: abort (); } continue; /* Successfully executed one pattern command; keep going. */ /* We goto here if a matching operation fails. */ fail: if (!FAIL_STACK_EMPTY ()) { /* A restart point is known. Restore to that state. */ DEBUG_PRINT1 ("\nFAIL:\n"); POP_FAILURE_POINT (d, p, lowest_active_reg, highest_active_reg, regstart, regend, reg_info); /* If this failure point is a dummy, try the next one. */ if (!p) goto fail; /* If we failed to the end of the pattern, don't examine *p. */ assert (p <= pend); if (p < pend) { boolean is_a_jump_n = false; /* If failed to a backwards jump that's part of a repetition loop, need to pop this failure point and use the next one. */ switch ((re_opcode_t) *p) { case jump_n: is_a_jump_n = true; case maybe_pop_jump: case pop_failure_jump: case jump: p1 = p + 1; EXTRACT_NUMBER_AND_INCR (mcnt, p1); p1 += mcnt; if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n) || (!is_a_jump_n && (re_opcode_t) *p1 == on_failure_jump)) goto fail; break; default: /* do nothing */ ; } } if (d >= string1 && d <= end1) dend = end_match_1; } else break; /* Matching at this starting point really fails. */ } /* for (;;) */ if (best_regs_set) goto restore_best_regs; FREE_VARIABLES (); return -1; /* Failure to match. */ } /* re_match_2 */ /* Subroutine definitions for re_match_2. */ /* We are passed P pointing to a register number after a start_memory. Return true if the pattern up to the corresponding stop_memory can match the empty string, and false otherwise. If we find the matching stop_memory, sets P to point to one past its number. Otherwise, sets P to an undefined byte less than or equal to END. We don't handle duplicates properly (yet). */ static boolean group_match_null_string_p (p, end, reg_info) unsigned char **p, *end; register_info_type *reg_info; { int mcnt; /* Point to after the args to the start_memory. */ unsigned char *p1 = *p + 2; while (p1 < end) { /* Skip over opcodes that can match nothing, and return true or false, as appropriate, when we get to one that can't, or to the matching stop_memory. */ switch ((re_opcode_t) *p1) { /* Could be either a loop or a series of alternatives. */ case on_failure_jump: p1++; EXTRACT_NUMBER_AND_INCR (mcnt, p1); /* If the next operation is not a jump backwards in the pattern. */ if (mcnt >= 0) { /* Go through the on_failure_jumps of the alternatives, seeing if any of the alternatives cannot match nothing. The last alternative starts with only a jump, whereas the rest start with on_failure_jump and end with a jump, e.g., here is the pattern for `a|b|c': /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6 /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3 /exactn/1/c So, we have to first go through the first (n-1) alternatives and then deal with the last one separately. */ /* Deal with the first (n-1) alternatives, which start with an on_failure_jump (see above) that jumps to right past a jump_past_alt. */ while ((re_opcode_t) p1[mcnt-3] == jump_past_alt) { /* `mcnt' holds how many bytes long the alternative is, including the ending `jump_past_alt' and its number. */ if (!alt_match_null_string_p (p1, p1 + mcnt - 3, reg_info)) return false; /* Move to right after this alternative, including the jump_past_alt. */ p1 += mcnt; /* Break if it's the beginning of an n-th alternative that doesn't begin with an on_failure_jump. */ if ((re_opcode_t) *p1 != on_failure_jump) break; /* Still have to check that it's not an n-th alternative that starts with an on_failure_jump. */ p1++; EXTRACT_NUMBER_AND_INCR (mcnt, p1); if ((re_opcode_t) p1[mcnt-3] != jump_past_alt) { /* Get to the beginning of the n-th alternative. */ p1 -= 3; break; } } /* Deal with the last alternative: go back and get number of the `jump_past_alt' just before it. `mcnt' contains the length of the alternative. */ EXTRACT_NUMBER (mcnt, p1 - 2); if (!alt_match_null_string_p (p1, p1 + mcnt, reg_info)) return false; p1 += mcnt; /* Get past the n-th alternative. */ } /* if mcnt > 0 */ break; case stop_memory: assert (p1[1] == **p); *p = p1 + 2; return true; default: if (!common_op_match_null_string_p (&p1, end, reg_info)) return false; } } /* while p1 < end */ return false; } /* group_match_null_string_p */ /* Similar to group_match_null_string_p, but doesn't deal with alternatives: It expects P to be the first byte of a single alternative and END one byte past the last. The alternative can contain groups. */ static boolean alt_match_null_string_p (p, end, reg_info) unsigned char *p, *end; register_info_type *reg_info; { int mcnt; unsigned char *p1 = p; while (p1 < end) { /* Skip over opcodes that can match nothing, and break when we get to one that can't. */ switch ((re_opcode_t) *p1) { /* It's a loop. */ case on_failure_jump: p1++; EXTRACT_NUMBER_AND_INCR (mcnt, p1); p1 += mcnt; break; default: if (!common_op_match_null_string_p (&p1, end, reg_info)) return false; } } /* while p1 < end */ return true; } /* alt_match_null_string_p */ /* Deals with the ops common to group_match_null_string_p and alt_match_null_string_p. Sets P to one after the op and its arguments, if any. */ static boolean common_op_match_null_string_p (p, end, reg_info) unsigned char **p, *end; register_info_type *reg_info; { int mcnt; boolean ret; int reg_no; unsigned char *p1 = *p; switch ((re_opcode_t) *p1++) { case no_op: case begline: case endline: case begbuf: case endbuf: case wordbeg: case wordend: case wordbound: case notwordbound: break; case start_memory: reg_no = *p1; assert (reg_no > 0 && reg_no <= MAX_REGNUM); ret = group_match_null_string_p (&p1, end, reg_info); /* Have to set this here in case we're checking a group which contains a group and a back reference to it. */ if (REG_MATCH_NULL_STRING_P (reg_info[reg_no]) == MATCH_NULL_UNSET_VALUE) REG_MATCH_NULL_STRING_P (reg_info[reg_no]) = ret; if (!ret) return false; break; /* If this is an optimized succeed_n for zero times, make the jump. */ case jump: EXTRACT_NUMBER_AND_INCR (mcnt, p1); if (mcnt >= 0) p1 += mcnt; else return false; break; case succeed_n: /* Get to the number of times to succeed. */ p1 += 2; EXTRACT_NUMBER_AND_INCR (mcnt, p1); if (mcnt == 0) { p1 -= 4; EXTRACT_NUMBER_AND_INCR (mcnt, p1); p1 += mcnt; } else return false; break; case duplicate: if (!REG_MATCH_NULL_STRING_P (reg_info[*p1])) return false; break; case set_number_at: p1 += 4; default: /* All other opcodes mean we cannot match the empty string. */ return false; } *p = p1; return true; } /* common_op_match_null_string_p */ /* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN bytes; nonzero otherwise. */ static int bcmp_translate (s1, s2, len, translate) const char *s1, *s2; register int len; RE_TRANSLATE_TYPE translate; { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; while (len) { if (translate[*p1++] != translate[*p2++]) return 1; len--; } return 0; } /* Entry points for GNU code. */ /* re_compile_pattern is the GNU regular expression compiler: it compiles PATTERN (of length SIZE) and puts the result in BUFP. Returns 0 if the pattern was valid, otherwise an error string. Assumes the `allocated' (and perhaps `buffer') and `translate' fields are set in BUFP on entry. We call regex_compile to do the actual compilation. */ const char * re_compile_pattern (pattern, length, bufp) const char *pattern; size_t length; struct re_pattern_buffer *bufp; { reg_errcode_t ret; /* GNU code is written to assume at least RE_NREGS registers will be set (and at least one extra will be -1). */ bufp->regs_allocated = REGS_UNALLOCATED; /* And GNU code determines whether or not to get register information by passing null for the REGS argument to re_match, etc., not by setting no_sub. */ bufp->no_sub = 0; /* Match anchors at newline. */ bufp->newline_anchor = 1; ret = regex_compile (pattern, length, re_syntax_options, bufp); if (!ret) return NULL; return gettext (re_error_msgid[(int) ret]); } #ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC /* BSD has one and only one pattern buffer. */ static struct re_pattern_buffer re_comp_buf; char * #ifdef _LIBC /* Make these definitions weak in libc, so POSIX programs can redefine these names if they don't use our functions, and still use regcomp/regexec below without link errors. */ weak_function #endif re_comp (s) const char *s; { reg_errcode_t ret; if (!s) { if (!re_comp_buf.buffer) return gettext ("No previous regular expression"); return 0; } if (!re_comp_buf.buffer) { re_comp_buf.buffer = (unsigned char *) malloc (200); if (re_comp_buf.buffer == NULL) return (char *) gettext (re_error_msgid[(int) REG_ESPACE]); re_comp_buf.allocated = 200; re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH); if (re_comp_buf.fastmap == NULL) return (char *) gettext (re_error_msgid[(int) REG_ESPACE]); } /* Since `re_exec' always passes NULL for the `regs' argument, we don't need to initialize the pattern buffer fields which affect it. */ /* Match anchors at newlines. */ re_comp_buf.newline_anchor = 1; ret = regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf); if (!ret) return NULL; /* Yes, we're discarding `const' here if !HAVE_LIBINTL. */ return (char *) gettext (re_error_msgid[(int) ret]); } int #ifdef _LIBC weak_function #endif re_exec (s) const char *s; { const int len = strlen (s); return 0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0); } #endif /* _REGEX_RE_COMP */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/regex.h�������������������������������������������������������������������������0000644�0000000�0000000�00000050303�14236507210�012162� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Definitions for data structures and routines for the regular expression library, version 0.12. Copyright (C) 1985,89,90,91,92,93,95,96,97,98 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. The master source lives in /gd/gnu/lib. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _REGEX_H #define _REGEX_H 1 /* Allow the use in C++ code. */ #ifdef __cplusplus extern "C" { #endif /* POSIX says that <sys/types.h> must be included (by the caller) before <regex.h>. */ #if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS /* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it should be there. */ # include <stddef.h> #endif /* The following two types have to be signed and unsigned integer type wide enough to hold a value of a pointer. For most ANSI compilers ptrdiff_t and size_t should be likely OK. Still size of these two types is 2 for Microsoft C. Ugh... */ typedef long int s_reg_t; typedef unsigned long int active_reg_t; /* The following bits are used to determine the regexp syntax we recognize. The set/not-set meanings are chosen so that Emacs syntax remains the value 0. The bits are given in alphabetical order, and the definitions shifted by one from the previous bit; thus, when we add or remove a bit, only one other definition need change. */ typedef unsigned long int reg_syntax_t; /* If this bit is not set, then \ inside a bracket expression is literal. If set, then such a \ quotes the following character. */ #define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) /* If this bit is not set, then + and ? are operators, and \+ and \? are literals. If set, then \+ and \? are operators and + and ? are literals. */ #define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) /* If this bit is set, then character classes are supported. They are: [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. If not set, then character classes are not supported. */ #define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) /* If this bit is set, then ^ and $ are always anchors (outside bracket expressions, of course). If this bit is not set, then it depends: ^ is an anchor if it is at the beginning of a regular expression or after an open-group or an alternation operator; $ is an anchor if it is at the end of a regular expression, or before a close-group or an alternation operator. This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because POSIX draft 11.2 says that * etc. in leading positions is undefined. We already implemented a previous draft which made those constructs invalid, though, so we haven't changed the code back. */ #define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) /* If this bit is set, then special characters are always special regardless of where they are in the pattern. If this bit is not set, then special characters are special only in some contexts; otherwise they are ordinary. Specifically, * + ? and intervals are only special when not after the beginning, open-group, or alternation operator. */ #define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) /* If this bit is set, then *, +, ?, and { cannot be first in an re or immediately after an alternation or begin-group operator. */ #define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) /* If this bit is set, then . matches newline. If not set, then it doesn't. */ #define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) /* If this bit is set, then . doesn't match NUL. If not set, then it does. */ #define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) /* If this bit is set, nonmatching lists [^...] do not match newline. If not set, they do. */ #define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) /* If this bit is set, either \{...\} or {...} defines an interval, depending on RE_NO_BK_BRACES. If not set, \{, \}, {, and } are literals. */ #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) /* If this bit is set, +, ? and | aren't recognized as operators. If not set, they are. */ #define RE_LIMITED_OPS (RE_INTERVALS << 1) /* If this bit is set, newline is an alternation operator. If not set, newline is literal. */ #define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) /* If this bit is set, then `{...}' defines an interval, and \{ and \} are literals. If not set, then `\{...\}' defines an interval. */ #define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) /* If this bit is set, (...) defines a group, and \( and \) are literals. If not set, \(...\) defines a group, and ( and ) are literals. */ #define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) /* If this bit is set, then \<digit> matches <digit>. If not set, then \<digit> is a back-reference. */ #define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) /* If this bit is set, then | is an alternation operator, and \| is literal. If not set, then \| is an alternation operator, and | is literal. */ #define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) /* If this bit is set, then an ending range point collating higher than the starting range point, as in [z-a], is invalid. If not set, then when ending range point collates higher than the starting range point, the range is ignored. */ #define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) /* If this bit is set, then an unmatched ) is ordinary. If not set, then an unmatched ) is invalid. */ #define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) /* If this bit is set, succeed as soon as we match the whole pattern, without further backtracking. */ #define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) /* If this bit is set, do not process the GNU regex operators. If not set, then the GNU regex operators are recognized. */ #define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) /* If this bit is set, turn on internal regex debugging. If not set, and debugging was on, turn it off. This only works if regex.c is compiled -DDEBUG. We define this bit always, so that all that's needed to turn on debugging is to recompile regex.c; the calling code can always have this bit set, and it won't affect anything in the normal case. */ #define RE_DEBUG (RE_NO_GNU_OPS << 1) /* This global variable defines the particular regexp syntax to use (for some interfaces). When a regexp is compiled, the syntax used is stored in the pattern buffer, so changing this does not affect already-compiled regexps. */ extern reg_syntax_t re_syntax_options; /* Define combinations of the above bits for the standard possibilities. (The [[[ comments delimit what gets put into the Texinfo file, so don't delete them!) */ /* [[[begin syntaxes]]] */ #define RE_SYNTAX_EMACS 0 #define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) #define RE_SYNTAX_GNU_AWK \ ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \ & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS)) #define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INTERVALS | RE_NO_GNU_OPS) #define RE_SYNTAX_GREP \ (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ | RE_NEWLINE_ALT) #define RE_SYNTAX_EGREP \ (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ | RE_NO_BK_VBAR) #define RE_SYNTAX_POSIX_EGREP \ (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES) /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ #define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC #define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC /* Syntax bits common to both basic and extended POSIX regex syntax. */ #define _RE_SYNTAX_POSIX_COMMON \ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | RE_INTERVALS | RE_NO_EMPTY_RANGES) #define RE_SYNTAX_POSIX_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this isn't minimal, since other operators, such as \`, aren't disabled. */ #define RE_SYNTAX_POSIX_MINIMAL_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) #define RE_SYNTAX_POSIX_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ | RE_UNMATCHED_RIGHT_PAREN_ORD) /* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */ #define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) /* [[[end syntaxes]]] */ /* Maximum number of duplicates an interval can allow. Some systems (erroneously) define this in other header files, but we want our value, so remove any previous define. */ #ifdef RE_DUP_MAX # undef RE_DUP_MAX #endif /* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ #define RE_DUP_MAX (0x7fff) /* POSIX `cflags' bits (i.e., information for `regcomp'). */ /* If this bit is set, then use extended regular expression syntax. If not set, then use basic regular expression syntax. */ #define REG_EXTENDED 1 /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ #define REG_ICASE (REG_EXTENDED << 1) /* If this bit is set, then anchors do not match at newline characters in the string. If not set, then anchors do match at newlines. */ #define REG_NEWLINE (REG_ICASE << 1) /* If this bit is set, then report only success or fail in regexec. If not set, then returns differ between not matching and errors. */ #define REG_NOSUB (REG_NEWLINE << 1) /* POSIX `eflags' bits (i.e., information for regexec). */ /* If this bit is set, then the beginning-of-line operator doesn't match the beginning of the string (presumably because it's not the beginning of a line). If not set, then the beginning-of-line operator does match the beginning of the string. */ #define REG_NOTBOL 1 /* Like REG_NOTBOL, except for the end-of-line. */ #define REG_NOTEOL (1 << 1) /* If any error codes are removed, changed, or added, update the `re_error_msg' table in regex.c. */ typedef enum { #ifdef _XOPEN_SOURCE REG_ENOSYS = -1, /* This will never happen for this implementation. */ #endif REG_NOERROR = 0, /* Success. */ REG_NOMATCH, /* Didn't find a match (for regexec). */ /* POSIX regcomp return error codes. (In the order listed in the standard.) */ REG_BADPAT, /* Invalid pattern. */ REG_ECOLLATE, /* Not implemented. */ REG_ECTYPE, /* Invalid character class name. */ REG_EESCAPE, /* Trailing backslash. */ REG_ESUBREG, /* Invalid back reference. */ REG_EBRACK, /* Unmatched left bracket. */ REG_EPAREN, /* Parenthesis imbalance. */ REG_EBRACE, /* Unmatched \{. */ REG_BADBR, /* Invalid contents of \{\}. */ REG_ERANGE, /* Invalid range end. */ REG_ESPACE, /* Ran out of memory. */ REG_BADRPT, /* No preceding re for repetition op. */ /* Error codes we've added. */ REG_EEND, /* Premature end. */ REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */ REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ } reg_errcode_t; /* This data structure represents a compiled pattern. Before calling the pattern compiler, the fields `buffer', `allocated', `fastmap', `translate', and `no_sub' can be set. After the pattern has been compiled, the `re_nsub' field is available. All other fields are private to the regex routines. */ #ifndef RE_TRANSLATE_TYPE # define RE_TRANSLATE_TYPE char * #endif struct re_pattern_buffer { /* [[[begin pattern_buffer]]] */ /* Space that holds the compiled pattern. It is declared as `unsigned char *' because its elements are sometimes used as array indexes. */ unsigned char *buffer; /* Number of bytes to which `buffer' points. */ unsigned long int allocated; /* Number of bytes actually used in `buffer'. */ unsigned long int used; /* Syntax setting with which the pattern was compiled. */ reg_syntax_t syntax; /* Pointer to a fastmap, if any, otherwise zero. re_search uses the fastmap, if there is one, to skip over impossible starting points for matches. */ char *fastmap; /* Either a translate table to apply to all characters before comparing them, or zero for no translation. The translation is applied to a pattern when it is compiled and to a string when it is matched. */ RE_TRANSLATE_TYPE translate; /* Number of subexpressions found by the compiler. */ size_t re_nsub; /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in `re_search_2', to see whether or not we should use the fastmap, so we don't set this absolutely perfectly; see `re_compile_fastmap' (the `duplicate' case). */ unsigned can_be_null : 1; /* If REGS_UNALLOCATED, allocate space in the `regs' structure for `max (RE_NREGS, re_nsub + 1)' groups. If REGS_REALLOCATE, reallocate space if necessary. If REGS_FIXED, use what's there. */ #define REGS_UNALLOCATED 0 #define REGS_REALLOCATE 1 #define REGS_FIXED 2 unsigned regs_allocated : 2; /* Set to zero when `regex_compile' compiles a pattern; set to one by `re_compile_fastmap' if it updates the fastmap. */ unsigned fastmap_accurate : 1; /* If set, `re_match_2' does not return information about subexpressions. */ unsigned no_sub : 1; /* If set, a beginning-of-line anchor doesn't match at the beginning of the string. */ unsigned not_bol : 1; /* Similarly for an end-of-line anchor. */ unsigned not_eol : 1; /* If true, an anchor at a newline matches. */ unsigned newline_anchor : 1; /* [[[end pattern_buffer]]] */ }; typedef struct re_pattern_buffer regex_t; /* Type for byte offsets within the string. POSIX mandates this. */ typedef int regoff_t; /* This is the structure we store register match data in. See regex.texinfo for a full description of what registers match. */ struct re_registers { unsigned num_regs; regoff_t *start; regoff_t *end; }; /* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, `re_match_2' returns information about at least this many registers the first time a `regs' structure is passed. */ #ifndef RE_NREGS # define RE_NREGS 30 #endif /* POSIX specification for registers. Aside from the different names than `re_registers', POSIX uses an array of structures, instead of a structure of arrays. */ typedef struct { regoff_t rm_so; /* Byte offset from string's start to substring's start. */ regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ } regmatch_t; /* Declarations for routines. */ /* To avoid duplicating every routine declaration -- once with a prototype (if we are ANSI), and once without (if we aren't) -- we use the following macro to declare argument types. This unfortunately clutters up the declarations a bit, but I think it's worth it. */ #if __STDC__ # define _RE_ARGS(args) args #else /* not __STDC__ */ # define _RE_ARGS(args) () #endif /* not __STDC__ */ /* Sets the current default syntax to SYNTAX, and return the old syntax. You can also simply assign to the `re_syntax_options' variable. */ extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax)); /* Compile the regular expression PATTERN, with length LENGTH and syntax given by the global `re_syntax_options', into the buffer BUFFER. Return NULL if successful, and an error string if not. */ extern const char *re_compile_pattern _RE_ARGS ((const char *pattern, size_t length, struct re_pattern_buffer *buffer)); /* Compile a fastmap for the compiled pattern in BUFFER; used to accelerate searches. Return 0 if successful and -2 if was an internal error. */ extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer)); /* Search in the string STRING (with length LENGTH) for the pattern compiled into BUFFER. Start searching at position START, for RANGE characters. Return the starting position of the match, -1 for no match, or -2 for an internal error. Also return register information in REGS (if REGS and BUFFER->no_sub are nonzero). */ extern int re_search _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, int length, int start, int range, struct re_registers *regs)); /* Like `re_search', but search in the concatenation of STRING1 and STRING2. Also, stop searching at index START + STOP. */ extern int re_search_2 _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, int length1, const char *string2, int length2, int start, int range, struct re_registers *regs, int stop)); /* Like `re_search', but return how many characters in STRING the regexp in BUFFER matched, starting at position START. */ extern int re_match _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, int length, int start, struct re_registers *regs)); /* Relates to `re_match' as `re_search_2' relates to `re_search'. */ extern int re_match_2 _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, int length1, const char *string2, int length2, int start, struct re_registers *regs, int stop)); /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated with malloc, and must each be at least `NUM_REGS * sizeof (regoff_t)' bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using PATTERN_BUFFER will allocate its own register data, without freeing the old data. */ extern void re_set_registers _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs, unsigned num_regs, regoff_t *starts, regoff_t *ends)); #if defined _REGEX_RE_COMP || defined _LIBC # ifndef _CRAY /* 4.2 bsd compatibility. */ extern char *re_comp _RE_ARGS ((const char *)); extern int re_exec _RE_ARGS ((const char *)); # endif #endif /* POSIX compatibility. */ extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern, int __cflags)); extern int regexec _RE_ARGS ((const regex_t *__preg, const char *__string, size_t __nmatch, regmatch_t __pmatch[], int __eflags)); extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg, char *__errbuf, size_t __errbuf_size)); extern void regfree _RE_ARGS ((regex_t *__preg)); #ifdef __cplusplus } #endif /* C++ */ #endif /* regex.h */ /* Local variables: make-backup-files: t version-control: t trim-versions-without-asking: nil End: */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/routines.c����������������������������������������������������������������������0000644�0000000�0000000�00000012470�14367514174�012732� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* routines.c - general use routines Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "routines.h" #include "message.h" #include "quotearg.h" /* * Convert a list of string of valid chars to an yes/no array */ void string_to_array (unsigned char arr[256], const unsigned char * string) { int c; for (c = 0 ; c < 256 ; c++) arr [c] = false; for ( /* nothing */ ; *string ; string ++) arr [*string] = true; } /* * return true iff there are no upper case chars */ int is_strlower (const char * string) { for (/* skip */; *string != '\0'; string++) if (isupper(*string)) return false; return true; } /* Copy the LEN first characters of SRC into DST in lower case. DST[LEN] is set to \0. */ static inline char * _strncpylc (char *dst, const char *src, size_t len) { for (size_t i = 0 ; i < len ; i++) dst[i] = (char) tolower (src[i]); dst[len] = '\0'; return dst; } char * strnlower (char *string, size_t len) { return _strncpylc (string, string, len); } char * strlower (char *string) { return _strncpylc (string, string, strlen (string)); } char * strcpylc (char *dst, const char *src) { return _strncpylc (dst, src, strlen (src)); } /* * Count the number of occurrence of C in S */ int strcnt (unsigned char *s, unsigned char c) { int res; for (res = 0 ; *s ; s++) if (*s == c) res++; return res; } /* * Extract a substring for START, of LENGTH, making sure to * set the trailing '\0' (return pos of \0) */ char * strsub (char * dest, const char * string, size_t start, size_t length) { char * end = stpncpy (dest, string + start, length); *end = '\0'; return end; } /* * fopen, but exits on failure */ FILE * xfopen (const char * filename, const char * rights, const char * format) { FILE * res; message (msg_file, (stderr, "%s-fopen (%s)\n", rights, quotearg (filename))); res = fopen (filename, rights); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" if (!res) error (1, errno, format, quotearg (filename)); #pragma GCC diagnostic pop return res; } FILE * xrfopen (const char * filename) { return xfopen (filename, "r", _("cannot open file `%s'")); } FILE * xwfopen (const char * filename) { return xfopen (filename, "w", _("cannot create file `%s'")); } /* * Like popen, but exit upon failure */ FILE * xpopen (const char * filename, const char * rights, const char * format) { FILE * res; message (msg_file, (stderr, "%s-popen (%s)\n", rights, filename)); res = popen (filename, rights); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" if (!res) error (1, errno, format, quotearg (filename)); #pragma GCC diagnostic pop return res; } FILE * xrpopen (const char * filename) { return xpopen (filename, "r", _("cannot open a pipe on `%s'")); } FILE * xwpopen (const char * filename) { return xpopen (filename, "w", _("cannot open a pipe on `%s'")); } /* * Copy the content of IN into OUT */ void streams_copy (FILE * in, FILE * out) { size_t read_length; char buf [BUFSIZ]; while ((read_length = fread (buf, sizeof (char), sizeof (buf), in))) fwrite (buf, sizeof (char), read_length, out); } /* * Dump the content of the file FILENAME onto STREAM. * Used when honoring a subcontract. */ void stream_dump (FILE * stream, const char * filename) { FILE * fp; message (msg_tool | msg_file, (stderr, "Dumping file `%s'\n", filename)); fp = xrfopen (filename); streams_copy (fp, stream); fclose (fp); } /* * Unlink the file FILENAME. */ void unlink2 (_GL_UNUSED void * dummy, const char * filename) { message (msg_tool | msg_file, (stderr, "Unlinking file `%s'\n", filename)); /* Don't complain if you can't unlink. Who cares of a tmp file? */ unlink (filename); } /* * Securely generate a temp file, and make sure it gets * deleted upon exit. */ static char ** tempfiles; static unsigned ntempfiles; static void cleanup_tempfiles(void) { while (ntempfiles--) unlink(tempfiles[ntempfiles]); } char * safe_tempnam(const char *pfx) { char *filename; const char *dirname; int fd; if (!(dirname = getenv("TMPDIR"))) dirname = "/tmp"; tempfiles = (char **) realloc(tempfiles, (ntempfiles+1) * sizeof(char *)); if (tempfiles == NULL) return NULL; filename = malloc(strlen(dirname) + strlen(pfx) + sizeof("/XXXXXX")); if (!filename) return NULL; sprintf(filename, "%s/%sXXXXXX", dirname, pfx); if ((fd = mkstemp(filename)) < 0) { free(filename); return NULL; } close(fd); if (ntempfiles == 0) atexit(cleanup_tempfiles); tempfiles[ntempfiles++] = filename; return filename; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/routines.h����������������������������������������������������������������������0000644�0000000�0000000�00000011633�14405641076�012732� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* routines.h - general use routines Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _ROUTINES_H_ # define _ROUTINES_H_ #include <locale.h> #include <gettext.h> #define _(String) gettext (String) #define N_(String) String /* * A string prefixes another */ #define strprefix(s1, s2) \ (!strncmp(s1, s2, strlen(s1))) /* * A string is the end of another * * Note that there are too many strlens. But I know * no other way... */ #define strsuffix(s1, s2) \ ((strlen (s1) < strlen (s2)) \ ? 0 \ : STREQ (s1 + strlen (s1) - strlen (s2), s2)) /* * Replace a malloc'd string with another */ #define xstrcpy(s1, s2) \ do { \ const char *my_s2 = (s2); \ s1 = !(my_s2 == NULL) ? xstrdup (my_s2) : NULL; \ } while (0) /* * Cut the _STRING_ a the first occurence of the _CHAR_ if there is */ #define strcut(_string_, _char_) \ do { \ char * __strcut_cp; \ __strcut_cp = strchr (_string_, _char_); \ if (__strcut_cp) \ *__strcut_cp = '\0'; \ } while (0) /* * Cut the _STRING_ a the last occurence of the _CHAR_ if there is */ #define strrcut(_string_, _char_) \ do { \ char * __strrcut_cp; \ __strrcut_cp = strrchr (_string_, _char_); \ if (__strrcut_cp) \ *__strrcut_cp = '\0'; \ } while (0) /* * alloca version of some str routines */ /* Here is a very interesting part of the GNU libc doc, which explains a problem I had... Do not use `alloca' inside the arguments of a function call--you will get unpredictable results, because the stack space for the `alloca' would appear on the stack in the middle of the space for the function arguments. An example of what to avoid is `foo (x, alloca (4), y)'. */ #define astrcpy(_d_,_s_) \ do { \ const char * _tmp_ = (const char *) (_s_); \ _d_ = ALLOCA (char, strlen (_tmp_) + 1); \ strcpy (_d_, _tmp_); \ } while (0) #define strcat2(_d_,_s1_,_s2_) \ do { \ stpcpy (stpcpy (_d_, _s1_), _s2_); \ } while (0) #define astrcat2(_d_,_s1_,_s2_) \ do { \ const char * _tmp1_ = (const char *) (_s1_); \ const char * _tmp2_ = (const char *) (_s2_); \ _d_ = ALLOCA (char, (strlen (_tmp1_) \ + strlen (_tmp2_) + 1));\ strcat2(_d_,_s1_,_s2_); \ } while (0) /* * Concatenation of a char. No malloc is done. */ #define STRCCAT(s, c) \ do { \ size_t __len = strlen(s); \ *(s+__len) = (char) c; \ *(s+__len+1) = '\0'; \ } while (false) #define IS_BETWEEN(x, min, max) (((min) <= (x)) && ((x) <= (max))) #define IS_EMPTY(s1) \ (((const char *) (s1) == NULL) || (*(s1) == '\0')) #define UNNULL(s1) \ ((((void const *) s1) == NULL) ? (const char *) "" : (const char *) (s1)) #define strcaseequ(s1, s2) (!strcasecmp(s1, s2)) /* Functions on strings */ void string_to_array (unsigned char arr[256], const unsigned char * string); int is_strlower (const char * string); char *strnlower (char * string, size_t len); char *strlower (char * string); char *strcpylc (char *dst, const char *src); int strcnt (unsigned char * s, unsigned char c); char * strsub (char * dest, const char * string, size_t start, size_t length); /* Copy the content of IN into OUT */ void streams_copy (FILE * in, FILE * out); /* Dump the content of a file onto STREAM */ void stream_dump (FILE * stream, const char * filename); /* unlink FILENAME */ void unlink2 (void* dummy, const char * filename); /* Fopen but exits on failure */ FILE * xfopen (const char * filename, const char * rights, const char * format); /* opened "r", and "w" */ FILE * xrfopen (const char * filename); FILE * xwfopen (const char * filename); /* Popen but exits on failure */ FILE * xpopen (const char * command, const char * rights, const char * format); /* opened "r", and "w" */ FILE * xrpopen (const char * command); FILE * xwpopen (const char * command); /* If _STR_ is not defined, give it a tempname in _TMPDIR_ */ #define tempname_ensure(Str) \ do { \ (Str) = (Str) ? (Str) : safe_tempnam("a2_"); \ } while (0) char * safe_tempnam(const char *); #endif �����������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/str_ht.c������������������������������������������������������������������������0000644�0000000�0000000�00000005456�14236507210�012357� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* str_ht.c - single (char *) hash table Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "system.h" /* Hack! */ #define hash_table_s string_htable #include "str_ht.h" #include "hashtab.h" /************************************************************************ * hash tables with one char * field * ************************************************************************/ /* * Basic routines */ static unsigned long string_hash_1 (char *string) { return_STRING_HASH_1 (string); } static unsigned long string_hash_2 (char *string) { return_STRING_HASH_2 (string); } static int string_hash_cmp (char *x, char *y) { return_STRING_COMPARE (x, y); } /* * For sorting them in alpha order */ static int string_hash_qcmp (char **x, char **y) { return_STRING_COMPARE (*x, *y); } /* * Create the structure that stores the list of strings */ struct string_htable * string_htable_new (void) { struct string_htable * res; res = XMALLOC (struct string_htable); hash_init (res, 8, (hash_func_t) string_hash_1, (hash_func_t) string_hash_2, (hash_cmp_func_t) string_hash_cmp); return res; } /* * Add a string, with your own allocation for them. */ void string_htable_add (struct string_htable * table, const char * key) { if (!hash_find_item (table, key)) hash_insert (table, xstrdup(key)); } /* * Get the value associated to KEY in TABLE * Return NULL upon error (this means that it is not * valid to enter NULL as a value) */ char * string_htable_get (struct string_htable * table, const char * key) { return (char *) hash_find_item (table, key); } /* * Mostly for debbuging */ void string_htable_self_print (struct string_htable * table, FILE * stream) { int i; char ** entries; entries = (char **) hash_dump (table, NULL, (hash_cmp_func_t) string_hash_qcmp); for (i = 0 ; entries[i] ; i++) fprintf (stream, "%s\n", entries[i]); putc ('\n', stream); } /* * Dump in a vector */ char ** string_htable_dump_sorted (struct string_htable * table) { return (char **) hash_dump (table, NULL, (qsort_cmp_t) string_hash_qcmp); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/str_ht.h������������������������������������������������������������������������0000644�0000000�0000000�00000002462�14236507210�012356� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* str_ht.h - single (char *) hash table Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _STR_HT_H_ #define _STR_HT_H_ struct string_htable; /* * Create / Kill */ struct string_htable * string_htable_new (void); /* * Add, get */ void string_htable_add (struct string_htable * table, const char * key); char * string_htable_get (struct string_htable * table, const char * key); /* * Print/Dump */ void string_htable_self_print (struct string_htable * table, FILE * stream); char ** string_htable_dump_sorted (struct string_htable * table); #endif /* !defined(_STR_HT_H_) */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/stream.c������������������������������������������������������������������������0000644�0000000�0000000�00000006671�14251132535�012350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* stream.c - open streams on pipes or files Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "stream.h" #include "routines.h" #include "message.h" #include "quotearg.h" #include <assert.h> /* Open for reading. */ static inline struct stream * _stream_ropen (const char * command, bool is_file) { struct stream * res = XMALLOC (struct stream); res->is_file = is_file; if (!res->is_file) res->fp = xrpopen (command); else { if (!IS_EMPTY (command)) res->fp = xrfopen (command); else res->fp = stdin; } return res; } /* * Inline wrapper */ struct stream * stream_ropen (const char * command, bool is_file) { return _stream_ropen (command, is_file); } /* * Open for writing */ static inline struct stream * _stream_wopen (const char * command, bool is_file, enum backup_type backup_type) { struct stream * res = XMALLOC (struct stream); res->is_file = is_file; if (!res->is_file) res->fp = xwpopen (command); else { if (!IS_EMPTY (command)) res->fp = fopen_backup (command, backup_type); else res->fp = stdout; } return res; } /* * Inline wrapper */ struct stream * stream_wopen (const char * command, bool is_file) { return _stream_wopen (command, is_file, no_backups); } struct stream * stream_wopen_backup (const char * command, bool is_file, enum backup_type backup_type) { return _stream_wopen (command, is_file, backup_type); } /* Open a r or w stream depending in PERL_COMMAND. PERL_COMMAND can be: - `> file', open a w-stream on FILE, and backup is asked. - `| cmd', open a w-pipe on CMD. - `cmd |', open a r-pipe on CMD. - otherwise, PERL_COMMAND is a file to read. Once the decoding done, NAME points to the first char of the file name. */ struct stream * stream_perl_open_backup (const char * perl_command, enum backup_type backup, const char **name) { char * cp; size_t len; assert (perl_command); message (msg_file, (stderr, "perl-open (%s)\n", quotearg (perl_command))); *name = perl_command + strspn (perl_command, "\t >|"); switch (*perl_command) { case '|': return _stream_wopen (*name, false, no_backups); case '>': return _stream_wopen (*name, true, backup); default: /* Open for reading. */ len = strlen (perl_command); switch (perl_command [len - 1]) { case '|': /* Read a pipe. */ cp = ALLOCA (char, len); strncpy (cp, *name, len - 1); return _stream_ropen (cp, false); default: /* Read a file. */ return _stream_ropen (*name, true); } } } /* * Closes and frees. */ void stream_close (struct stream * stream) { if (stream->is_file) fclose (stream->fp); else pclose (stream->fp); } �����������������������������������������������������������������������a2ps-4.15.5/liba2ps/stream.h������������������������������������������������������������������������0000644�0000000�0000000�00000003131�14235572622�012350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* stream.h - open streams on pipes or files Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _STREAM_H_ #define _STREAM_H_ #include "xbackupfile.h" struct stream { bool is_file; /* Is it a file (no : pipe) */ FILE *fp; }; /* Open for reading */ struct stream * stream_ropen (const char * command, bool is_file); /* Open for writing */ struct stream * stream_wopen (const char * command, bool is_file); /* Open for writing, using backup services */ struct stream * stream_wopen_backup (const char * command, bool is_file, enum backup_type backup_type); /* * Uses the perl convention to know whether file or pipe * I.e., command starts by '>', or '|' */ struct stream * stream_perl_open_backup (char const * perl_command, enum backup_type backup, const char **name); /* Closes and frees. */ void stream_close (struct stream * stream); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/system.h������������������������������������������������������������������������0000644�0000000�0000000�00000005476�14367514174�012423� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* system.h - shared system header with the whole package Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef SYSTEM_H_ #define SYSTEM_H_ #include <config.h> /*-------------------------. | This guy must be first. | `-------------------------*/ #include <alloca.h> #define ALLOCA(t, n) (alloca (sizeof (t) * (n))) /*-------------------------------. | Stdio and missing prototypes. | `-------------------------------*/ #include <stdio.h> /*-------------------. | Including stdlib. | `-------------------*/ #include <stdlib.h> /*--------------------. | Including strings. | `--------------------*/ #include <string.h> #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) #define STRNEQ(s1, s2, n) (strncmp ((s1), (s2), (n)) == 0) /*---------------. | Math headers. | `---------------*/ #include <math.h> #include <errno.h> /*-------------------. | Ctype and family. | `-------------------*/ #include <ctype.h> #include <sys/wait.h> #include <sys/types.h> /*---------------------------. | Include unistd and fixes. | `---------------------------*/ #include <pwd.h> #include <unistd.h> #include <sys/stat.h> /*---------------------------------------. | Defining various limits on int types. | `---------------------------------------*/ #include <limits.h> /* The extra casts work around common compiler bugs, e.g. Cray C 5.0.3.0 when t == time_t. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /*--------------------------------. | Defining the PATHMAX some way. | `--------------------------------*/ #include <sys/param.h> /*-----------------. | Time and dates. | `-----------------*/ #include <time.h> #include <sys/time.h> #include <stdbool.h> /*---------------------------. | Take care of NLS matters. | `---------------------------*/ #include <locale.h> #include <gettext.h> /*----------. | fnmatch. | `-----------*/ #include <fnmatch.h> /*---------------------. | Variadic arguments. | `---------------------*/ #include <stdarg.h> #include "xalloc.h" #include "error.h" /* Cardinality of a static array. */ #define cardinalityof(ARRAY) (sizeof (ARRAY) / sizeof ((ARRAY)[0])) #endif /* !defined (SYSTEM_H_) */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/title.c�������������������������������������������������������������������������0000644�0000000�0000000�00000003713�14367514174�012203� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* title.c - fprintf that underlines Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* * Note: * very strong inspiration was taken in error.[ch] by * David MacKenzie <djm@gnu.ai.mit.edu> */ /* Get prototypes for the functions defined here. */ #include <config.h> #include <stdio.h> #include <string.h> #include <stdarg.h> #include "title.h" #include "printlen.h" /* Print the message FORMAT, which is a printf-style format string*/ void title (FILE * stream, char c, int center_p, const char *format, ...) { int len; int padding; va_list args; va_start (args, format); len = vprintflen (format, args); va_end (args); if (format [strlen (format) - 1] == '\n') len --; if (center_p) for (padding = 0 ; padding < 79 - len ; padding += 2) putc (' ', stream); va_start (args, format); vfprintf (stream, format, args); va_end (args); /* We suppose that \n can only be met at the end of format, not * of one of its arguments */ if (format [strlen (format) - 1] != '\n') putc ('\n', stream); /* Draw the line */ if (center_p) for (padding = 0 ; padding < 79 - len ; padding += 2) putc (' ', stream); for (/* nothing */ ; len ; len --) putc (c, stream); putc ('\n', stream); fflush (stream); } �����������������������������������������������������a2ps-4.15.5/liba2ps/title.h�������������������������������������������������������������������������0000644�0000000�0000000�00000002321�14367514174�012202� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* title.h - fprintf that underlines Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* * Note: * very strong inspiration was taken in error.[ch] by * David MacKenzie <djm@gnu.ai.mit.edu> */ #ifndef _TITLE_H_ #define _TITLE_H_ /* Print the title TITLE, which is a printf-style format string with optional args if msg_level is bigger than title_verbosity.*/ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(4, 5) void title (FILE * stream, char c, int center_p, const char *format, ...); #endif /* not TITLE_H_ */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/tterm.c�������������������������������������������������������������������������0000644�0000000�0000000�00000007323�14251132535�012203� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tterm.c - minimalist information on the terminal Copyright 1998-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include <inttypes.h> #include <limits.h> #include <termios.h> #include <sys/ioctl.h> #include "xstrtol.h" #include "quotearg.h" #include "error.h" #include "tterm.h" struct tterm { /* The number of chars per hardware tab stop. Setting this to zero inhibits the use of TAB characters for separating columns. -T */ size_t tabsize; /* The line length to use for breaking lines in many-per-line format. Can be set with -w. */ size_t width; }; /* Default setting */ static struct tterm tterm_default = { 8, /* tabsize */ 80 /* width */ }; /* Set the line width of TTERM to WIDTH. Returns the previous value. */ size_t tterm_width_set (struct tterm * tterm, size_t width) { struct tterm *t = tterm ? tterm : &tterm_default; size_t old = t->width; t->width = width; return old; } /* Return the line width of TTERM. */ size_t tterm_width (struct tterm * tterm) { struct tterm *t = tterm ? tterm : &tterm_default; return t->width; } /* Set the tab size of TTERM to SIZE. Returns the previous value. */ size_t tterm_tabsize_set (struct tterm * tterm, size_t size) { struct tterm *t = tterm ? tterm : &tterm_default; size_t old = t->tabsize; t->tabsize = size; return old; } /* Return the tab size of TTERM. */ size_t tterm_tabsize (struct tterm * tterm) { struct tterm *t = tterm ? tterm : &tterm_default; return t->tabsize; } /* Initialize the values taking the environment into account (for line width, and tabsize). */ void tterm_initialize (struct tterm *tterm, FILE *stream) { const char *cp; struct tterm *t = tterm ? tterm : &tterm_default; long int tmp_long; /* Length of the line. */ if ((cp = getenv ("COLUMNS")) && *cp) { if (xstrtol (cp, NULL, 0, &tmp_long, NULL) == LONGINT_OK && 0 < tmp_long && tmp_long <= INT_MAX) t->width = (size_t) tmp_long; else { error (0, 0, "ignoring invalid width in environment variable COLUMNS: %s", quotearg (cp)); } } #ifdef TIOCGWINSZ { struct winsize ws; if (ioctl (fileno (stream), TIOCGWINSZ, &ws) != -1 && ws.ws_col != 0) t->width = ws.ws_col; } #endif /* Tabulation size. */ /* Using the TABSIZE environment variable is not POSIX-approved. Ignore it when POSIXLY_CORRECT is set. */ if (!getenv ("POSIXLY_CORRECT") && (cp = getenv ("TABSIZE")) && *cp) { if (xstrtol (cp, NULL, 0, &tmp_long, NULL) == LONGINT_OK && 0 <= tmp_long && tmp_long <= INT_MAX) t->tabsize = (size_t) tmp_long; else { error (0, 0, "ignoring invalid tab size in environment variable TABSIZE: %s", quotearg (cp)); } } } /* Sample test of TinyTerm. */ #ifdef TEST const char * program_name = "tterm"; int main (int argc, char **argv) { tterm_init (); printf ("Width = %d, Tabsize = %d\n", tterm_width (NULL), tterm_tabsize (NULL)); return 0; } #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/tterm.h�������������������������������������������������������������������������0000644�0000000�0000000�00000002725�14235572622�012220� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tterm.h - minimalist information on the terminal Copyright 1998-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _TINYTERM_H_ #define _TINYTERM_H_ struct tterm; /* Initialize TTERM taking the environment into account (for line width, and tabsize) for STREAM. */ void tterm_initialize (struct tterm *tterm, FILE *stream); /* Set the line width of TTERM to WIDTH. Returns the previous value. */ size_t tterm_width_set (struct tterm *tterm, size_t width); /* Return the line width of TTERM. */ size_t tterm_width (struct tterm *tterm); /* Set the tab size of TTERM to SIZE. Returns the previous value. */ size_t tterm_tabsize_set (struct tterm *tterm, size_t size); /* Return the tab size of TTERM. */ size_t tterm_tabsize (struct tterm *tterm); #endif /* ! _TINYTERM_H_ */ �������������������������������������������a2ps-4.15.5/liba2ps/userdata.c����������������������������������������������������������������������0000644�0000000�0000000�00000005443�14251132535�012661� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* userdata.c - get data on users (from /etc/passwd) Copyright 1999-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <string.h> #include <pwd.h> #include "system.h" #include "xalloc.h" #include "userdata.h" #include "routines.h" void userdata_get (struct userdata *udata) { struct passwd *passwd = NULL; const char *home, *login; char *comments = NULL, *name = NULL, *cp; passwd = getpwuid (getuid ()); /* Home dir. */ if ((cp = getenv ("HOME"))) home = cp; else if (passwd && passwd->pw_dir) home = passwd->pw_dir; else home = "/home"; /* Login. */ if ((cp = getenv ("LOGNAME"))) login = cp; else if ((cp = getenv ("USERNAME"))) login = cp; else if (passwd && passwd->pw_name) login = passwd->pw_name; else login = NULL; /* The field `pw_gecos' contains the full name and comments, such as phone number etc. */ if (passwd && passwd->pw_gecos) { char *gecos = NULL; if (login) { /* Occurences of `&' in the gecos should be substituted with the login (first letter in uppercase). */ size_t amps = 0; /* Number of ampersands. */ char *cp2; for (cp = passwd->pw_gecos; *cp; cp++) if (*cp == '&') amps++; gecos = ALLOCA (char, (strlen (passwd->pw_gecos) + amps * (strlen (login) - 1) + 1)); cp2 = gecos; for (cp = passwd->pw_gecos; *cp; cp++) if (*cp == '&') { *cp2++ = (char) toupper (*login); cp2 = stpcpy (cp2, login + 1); } else *cp2++ = *cp; *cp2 = '\0'; } else { gecos = ALLOCA (char, strlen (passwd->pw_gecos) + 1); stpcpy (gecos, passwd->pw_gecos); } /* The gecos may have subfields seperated by `,'. Consider the first field to be the user name, and the rest to be comments. */ name = gecos; if ((comments = strchr (gecos, ','))) { *comments = '\0'; comments++; } } udata->login = xstrdup (login ? login : _("user")); udata->name = xstrdup (name ? name : _("Unknown User")); udata->comments = comments ? xstrdup (comments) : NULL; udata->home = xstrdup (home ? home : "/home"); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/userdata.h����������������������������������������������������������������������0000644�0000000�0000000�00000001763�14236507210�012666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* userdata.h - get data on users (from /etc/passwd) Copyright 1999-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef USERDATA_H_ # define USERDATA_H_ struct userdata { char *login; char *name; char *comments; char *home; }; void userdata_get (struct userdata *udata); #endif /* !USERDATA_H_ */ �������������a2ps-4.15.5/liba2ps/useropt.c�����������������������������������������������������������������������0000644�0000000�0000000�00000003632�14236507210�012547� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* useropt.c - user option handling Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "useropt.h" #include "routines.h" #include "pair_ht.h" #include "quotearg.h" /* * User options management */ struct pair_htable * user_options_table_new (void) { return pair_table_new (); } /* * Add a custom option, making its own copy of the parameters */ void user_option_add (a2ps_job * job, const char * key, const char * value) { pair_add (job->user_options, key, value); } /* * Retrieve a user option */ char * user_option_get (a2ps_job * job, char * shortcut) { char * res; res = pair_get (job->user_options, shortcut); if (!res) error (1, 0, _("unknown user option `%s'"), quotearg (shortcut)); return res; } /* * List the values defined */ void user_options_list_short (a2ps_job * job, FILE * stream) { fputs (_("Known User Options"), stream); putc ('\n', stream); pair_table_list_short (job->user_options, stream); } /* * List the values defined */ void user_options_list_long (a2ps_job * job, FILE * stream) { fputs (_("Known User Options"), stream); putc ('\n', stream); pair_table_list_long (job->user_options, stream); } ������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/useropt.h�����������������������������������������������������������������������0000644�0000000�0000000�00000002530�14236507210�012550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* useropt.h - user option handling Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _USEROPT_H_ #define _USEROPT_H_ /* Declare these two, avoiding includes that generate many depends */ struct job; struct pair_htable; void dict_entry_print (void const * item); /* * User options */ struct pair_htable * user_options_table_new (void); void user_option_add (struct a2ps_job * job, const char * key, const char * value); char * user_option_get (struct a2ps_job * job, char * key); void user_options_list_short (struct a2ps_job * job, FILE * stream); void user_options_list_long (struct a2ps_job * job, FILE * stream); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/xbackupfile.c�������������������������������������������������������������������0000644�0000000�0000000�00000014361�14251163721�013346� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xbackupfile.c - backup helping routines Copyright 1990-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Akim Demaille <demaille@inf.enst.fr> */ #include <config.h> #include <assert.h> #include <sys/stat.h> #include <unistd.h> #include <errno.h> #include <stdlib.h> #include <fcntl.h> #include "xbackupfile.h" #include "routines.h" #include "error.h" #include "quotearg.h" /* Non failing call to find_backup_file_name */ char * xfind_backup_file_name (const char * file, enum backup_type backup_type) { char * res; res = find_backup_file_name (AT_FDCWD, file, backup_type); if (!res) error (1, 0, _("memory exhausted")); return res; } /* The following approach has been suggested by Miles Bader and Paul Eggert. From: Paul Eggert <eggert@twinsun.com> Date: Wed, 16 Sep 1998 14:07:47 -0700 (PDT) From: Miles Bader <miles@ccs.mt.nec.co.jp> Date: Wed, 16 Sep 1998 10:15:34 +0900 (JST) In general, if you can get away with it, it's better *not* to stat files and then abort based on information you find; instead, try to simply structure the algorithm so that the actual operation which makes the change fails in an abortable way, and report *that* failure. This avoids race conditions. This is a good suggestion. Here's an idea for doing this. When you first open the file F for writing, use O_EXCL. This will work correctly if F is a directory, since the initial open call will fail with errno==EISDIR in that case. Some older systems don't have O_EXCL; on those systems, you'll have to approximate it with `stat', but that's the best that you can do. I believe that demaille wants to back up only regular files (e.g. he doesn't want to back up /dev/null or /dev/tty, or back up directories). In that case, there's an unavoidable race condition, since there's no way to say `rename this file only if it's a regular file' atomically. But it's still better to use O_EXCL; this will avoid some of the race conditions. The following code was written by Paul Eggert. */ /* Create FILE for output, using open flags OFLAG and default mode MODE. But before creating FILE, back up its previous contents if necessary. OFLAG must include the O_CREAT flag. */ int create_file_for_backup (char const *file, int oflag, mode_t mode, enum backup_type backup_type) { int fd; struct stat st; assert (oflag & O_CREAT); if (backup_type == no_backups) return open (file, oflag, mode); fd = open (file, oflag | O_EXCL, mode); if (fd < 0 && errno == EEXIST) { /* We want to back up only regular files, even though this allows races between `stat' and `open'. */ if (stat (file, &st) == 0 && S_ISREG (st.st_mode)) { char *backup = find_backup_file_name (AT_FDCWD, file, backup_type); if (rename (file, backup) != 0) return -1; } fd = open (file, oflag, mode); } return fd; } /* Since there were two different approaches, and one may fear * portability problems, the old version is here provided by disabled. * Follows the solution based on Miles Bader and Paul Eggert's * approach. */ /*====================== * I could not make it behave the way I want (it works for * a mode 000, which I don't want), so this code the old code will * be used instead ========================*/ #define USE_OLD_FOPEN_BACKUP 1 #ifdef USE_OLD_FOPEN_BACKUP /* Open a stream for writing on the file FILENAME, making, if necessary and adequate, a backup according the policy BACKUP_TYPE */ FILE * fopen_backup (const char * filename, enum backup_type backup_type) { char * backup_name = NULL; struct stat filestat; FILE * res; /* No backup upon non existing files */ if (stat (filename, &filestat)) { if ((errno == ENOENT) || (errno == ENOTDIR)) /* the file does not exist: return */ backup_type = no_backups ; else /* Another kind of error occured: exit */ error (1, errno, _("cannot get informations on file `%s'"), quotearg (filename)); } /* If the file is special (/dev/null etc.), don't backup. Or if we don't have the rights to open the file for writing, don't backup, so that the forthcoming fopen does complain on the rights*/ if (!S_ISREG (filestat.st_mode) || access (filename, W_OK)) backup_type = no_backups ; /* Definitely, make a backup */ if (backup_type != no_backups) { backup_name = xfind_backup_file_name (filename, backup_type); if (rename (filename, backup_name)) error (1, errno, _("cannot rename file `%s' as `%s'"), quotearg (filename), quotearg (backup_name)); } /* Open the file for reading */ res = fopen (filename, "w"); if (!res) { error (0, errno, _("cannot create file `%s'"), quotearg (filename)); if (backup_name) { if (rename (filename, backup_name)) error (0, errno, _("cannot rename file `%s' as `%s'"), quotearg (filename), quotearg (backup_name)); else fprintf (stderr, _("restored file `%s'"), quotearg (filename)); } exit (EXIT_FAILURE); } return res; } #else /* !USE_OLD_FOPEN_BACKUP */ FILE * fopen_backup (const char * filename, enum backup_type backup_type) { FILE * res; int fd; fd = create_file_for_backup (filename, O_CREAT, 0666, backup_type); if (fd < 0) { if (backup_type == no_backups) error (1, errno, _("cannot create file `%s'"), quotearg (filename)); else error (1, errno, ("cannot backup and create file `%s'"), quotearg (filename)); } res = fdopen (fd, "w"); if (!res) error (1, errno, _("cannot create file `%s'"), quotearg (filename)); return res; } #endif /* !USE_OLD_FOPEN_BACKUP */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/xbackupfile.h�������������������������������������������������������������������0000644�0000000�0000000�00000002506�14235572622�013357� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xbackupfile.h - backup helping routines Copyright 1990-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Akim Demaille <demaille@inf.enst.fr> */ #ifndef _XBACKUPFILES_H_ #define _XBACKUPFILES_H_ #include <stdio.h> #include <sys/types.h> #include "backupfile.h" /* Non failing wrapping of find_backup_file_name */ char * xfind_backup_file_name (const char * file, enum backup_type backup_type); FILE * fopen_backup (const char * filename, enum backup_type backup_type); int create_file_for_backup (char const *file, int oflag, mode_t mode, enum backup_type backup_type); #endif /* !_XBACKUPFILES_H_ */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/xobstack.h����������������������������������������������������������������������0000644�0000000�0000000�00000001740�14235572622�012677� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xobstack.h - obstack declarations wrapper Copyright 1996-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _xobstack_h_ #define _xobstack_h_ #include <obstack.h> #include "xalloc.h" #define obstack_chunk_alloc xmalloc #define obstack_chunk_free free #endif /* not _xobstack_h_ */ ��������������������������������a2ps-4.15.5/liba2ps/xstrrpl.c�����������������������������������������������������������������������0000644�0000000�0000000�00000004747�14251132535�012575� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xstrrpl.c - replacement of substrings Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Author: Akim Demaille <demaille@inf.enst.fr> */ #include <config.h> #include "system.h" #include <assert.h> #include "xstrrpl.h" /* Perform subsitutions in string. Result is malloc'd E.g., result = xstrrrpl ("1234", subst) gives result = "112333" where subst = { {"1", "11"}, {"3", "333"}, { "4", ""}} */ char * xstrrpl (const char * string, const char * subst[][2]) { char * res, * cp; int i; size_t max = 0; for (i = 0 ; subst[i][0] ; i++) max = (max > strlen (subst[i][1])) ? max : strlen (subst[i][1]); /* Add one to make sure that it is never zero, which might cause malloc to return NULL. */ res = XNMALLOC (strlen (string) * (max + 1) + 1, char); cp = res; /* Perform the substitutions */ while (*string) { for (i = 0 ; subst[i][0] ; i++) if (!strncmp (subst[i][0], string, strlen (subst[i][0]))) { cp = stpcpy (cp, subst[i][1]); string += strlen (subst[i][0]); goto __next_char; } *cp++ = *string++; __next_char: /* nothing */; } *cp = '\0'; #if DEBUG assert (strlen (string) * (max + 1) < cp - res); #endif res = xnrealloc (res, (size_t) (cp - res + 1), sizeof(char)); return res; } /* Perform subsitution in string. String is untouched, result is malloc'd E.g., result = xstrrrpl ("1234", "1", "11", "3", "333", "4", "", NULL) gives result = "112333" */ char * xvstrrpl (const char * string, ...) { va_list ap; const char * subst[100][2]; /* Hope this is enough :) */ int i = 0; /* Copy arguments into `args'. */ va_start (ap, string); for (i = 0 ; (subst[i / 2][i % 2] = va_arg (ap, char *)) ; i++) ; va_end (ap); if (i % 2) return NULL; return xstrrpl (string, subst); } �������������������������a2ps-4.15.5/liba2ps/xstrrpl.h�����������������������������������������������������������������������0000644�0000000�0000000�00000002017�14236507210�012565� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xstrrpl.h - replacement of substrings Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* Author: Akim Demaille <demaille@inf.enst.fr> */ #ifndef XSTRRPL_H_ # define XSTRRPL_H_ 1 char * xstrrpl (const char * string, const char * subst[][2]); extern char * xvstrrpl (const char * string, ...); #endif /* !XSTRRPL_H_ */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/liba2ps/yy2ppd.h������������������������������������������������������������������������0000644�0000000�0000000�00000001751�14235572622�012312� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Replace the parser/lexer prefix yy into ppd */ #define yymaxdepth ppdmaxdepth #define yyparse ppdparse #define yylex ppdlex #define yyerror ppderror #define yylval ppdlval #define yychar ppdchar #define yydebug ppddebug #define yypact ppdpact #define yyr1 ppdr1 #define yyr2 ppdr2 #define yydef ppddef #define yychk ppdchk #define yypgo ppdpgo #define yyact ppdact #define yyexca ppdexca #define yyerrflag ppderrflag #define yynerrs ppdnerrs #define yyps ppdps #define yypv ppdpv #define yys ppds #define yy_yys ppdyys #define yystate ppdstate #define yytmp ppdtmp #define yyv ppdv #define yy_yyv ppdyyv #define yyval ppdval #define yylloc ppdlloc #define yyreds ppdreds #define yytoks ppdtoks #define yylhs ppdyylhs #define yylen ppdyylen #define yydefred ppdyydefred #define yydgoto ppdyydgoto #define yysindex ppdyysindex #define yyrindex ppdyyrindex #define yygindex ppdyygindex #define yytable ppdyytable #define yycheck ppdyycheck #define yyname ppdyyname #define yyrule ppdyyrule �����������������������a2ps-4.15.5/m4/�������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132364�007750� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/00gnulib.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000007011�14374751113�011551� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# 00gnulib.m4 serial 8 dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This file must be named something that sorts before all other dnl gnulib-provided .m4 files. It is needed until the clang fix has dnl been included in Autoconf. # The following definitions arrange to use a compiler option # -Werror=implicit-function-declaration in AC_CHECK_DECL, when the # compiler is clang. Without it, clang implicitly declares "known" # library functions in C mode, but not in C++ mode, which would cause # Gnulib to omit a declaration and thus later produce an error in C++ # mode. As of clang 9.0, these "known" functions are identified through # LIBBUILTIN invocations in the LLVM source file # llvm/tools/clang/include/clang/Basic/Builtins.def. # It's not possible to AC_REQUIRE the extra tests from AC_CHECK_DECL, # because AC_CHECK_DECL, like other Autoconf built-ins, is not supposed # to AC_REQUIRE anything: some configure.ac files have their first # AC_CHECK_DECL executed conditionally. Therefore append the extra tests # to AC_PROG_CC. AC_DEFUN([gl_COMPILER_CLANG], [ dnl AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([whether the compiler is clang], [gl_cv_compiler_clang], [dnl Use _AC_COMPILE_IFELSE instead of AC_EGREP_CPP, to avoid error dnl "circular dependency of AC_LANG_COMPILER(C)" if AC_PROG_CC has dnl not yet been invoked. _AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #ifdef __clang__ barfbarf #endif ]],[[]]) ], [gl_cv_compiler_clang=no], [gl_cv_compiler_clang=yes]) ]) ]) AC_DEFUN([gl_COMPILER_PREPARE_CHECK_DECL], [ dnl AC_REQUIRE([AC_PROG_CC]) dnl AC_REQUIRE([gl_COMPILER_CLANG]) AC_CACHE_CHECK([for compiler option needed when checking for declarations], [gl_cv_compiler_check_decl_option], [if test $gl_cv_compiler_clang = yes; then dnl Test whether the compiler supports the option dnl '-Werror=implicit-function-declaration'. save_ac_compile="$ac_compile" ac_compile="$ac_compile -Werror=implicit-function-declaration" dnl Use _AC_COMPILE_IFELSE instead of AC_COMPILE_IFELSE, to avoid a dnl warning "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". _AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])], [gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration'], [gl_cv_compiler_check_decl_option=none]) ac_compile="$save_ac_compile" else gl_cv_compiler_check_decl_option=none fi ]) if test "x$gl_cv_compiler_check_decl_option" != xnone; then ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" else ac_compile_for_check_decl="$ac_compile" fi ]) dnl Redefine _AC_CHECK_DECL_BODY so that it references ac_compile_for_check_decl dnl instead of ac_compile. If, for whatever reason, the override of AC_PROG_CC dnl in zzgnulib.m4 is inactive, use the original ac_compile. m4_define([_AC_CHECK_DECL_BODY], [ ac_save_ac_compile="$ac_compile" if test -n "$ac_compile_for_check_decl"; then ac_compile="$ac_compile_for_check_decl" fi] m4_defn([_AC_CHECK_DECL_BODY])[ ac_compile="$ac_save_ac_compile" ]) # gl_00GNULIB # ----------- # Witness macro that this file has been included. Needed to force # Automake to include this file prior to all other gnulib .m4 files. AC_DEFUN([gl_00GNULIB]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/__inline.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000001423�14374751113�011706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Test for __inline keyword dnl Copyright 2017-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl___INLINE], [ AC_CACHE_CHECK([whether the compiler supports the __inline keyword], [gl_cv_c___inline], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[typedef int foo_t; static __inline foo_t foo (void) { return 0; }]], [[return foo ();]])], [gl_cv_c___inline=yes], [gl_cv_c___inline=no])]) if test $gl_cv_c___inline = yes; then AC_DEFINE([HAVE___INLINE], [1], [Define to 1 if the compiler supports the keyword '__inline'.]) fi ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/a2_psutils.m4������������������������������������������������������������������������0000644�0000000�0000000�00000002127�14445130257�012220� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Testing delegations for a2ps: a recent version of psutils dnl dnl Usage: a2_PSUTILS dnl dnl If psutils version 1 patchlevel 17, or psutils version >= 2 is available dnl SUBST(PSUTILS) to <nothing> dnl else dnl SUBST(PSUTILS) to `#' # serial 3 AC_DEFUN([a2_PSUTILS], [ad_CHECK_PROG(psselect) ad_CHECK_PROG(psnup) if test "$COM_psselect" = "#"; then COM_PSUTILS="#" else # We found psselect. Check we either have 1.17 or 2.x ac_prog_psselect_banner=`psselect -v 2>&1 | sed 1q` if test "${ac_prog_psselect_banner}" != "psselect release 1 patchlevel 17" && test `echo "${ac_prog_psselect_banner}" | cut -d " " -f 2 | cut -d . -f 1` -lt 2; then COM_PSUTILS="#" fi fi if test "$COM_PSUTILS" = "#"; then AC_MSG_WARN([===========================================================]) AC_MSG_WARN([a2ps works much better with psutils. Available at:]) AC_MSG_WARN([ https://github.com/rrthomas/psutils/]) AC_MSG_WARN([You *really* should install it *before* installing a2ps.]) AC_MSG_WARN([===========================================================]) fi AC_SUBST(COM_PSUTILS)]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/absolute-header.m4�������������������������������������������������������������������0000644�0000000�0000000�00000010151�14374751113�013174� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# absolute-header.m4 serial 17 dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Derek Price. # gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) # --------------------------------------- # Find the absolute name of a header file, testing first if the header exists. # If the header were sys/inttypes.h, this macro would define # ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h # in config.h # (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. AC_DEFUN([gl_ABSOLUTE_HEADER], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_PREPROC_REQUIRE()dnl m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_absolute_header], [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>], [gl_absolute_header], [AS_VAR_PUSHDEF([ac_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl if test AS_VAR_GET([ac_header_exists]) = yes; then gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME])) fi AS_VAR_POPDEF([ac_header_exists])dnl ])dnl AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])), ["AS_VAR_GET([gl_absolute_header])"], [Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.]) AS_VAR_POPDEF([gl_absolute_header])dnl ])dnl ])# gl_ABSOLUTE_HEADER # gl_ABSOLUTE_HEADER_ONE(HEADER) # ------------------------------ # Like gl_ABSOLUTE_HEADER, except that: # - it assumes that the header exists, # - it uses the current CPPFLAGS, # - it does not cache the result, # - it is silent. AC_DEFUN([gl_ABSOLUTE_HEADER_ONE], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])]) dnl AIX "xlc -E" and "cc -E" omit #line directives for header files dnl that contain only a #include of other header files and no dnl non-comment tokens of their own. This leads to a failure to dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h> dnl and others. The workaround is to force preservation of comments dnl through option -C. This ensures all necessary #line directives dnl are present. GCC supports option -C as well. case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac changequote(,) case "$host_os" in mingw*) dnl For the sake of native Windows compilers (excluding gcc), dnl treat backslash as a directory separator, like /. dnl Actually, these compilers use a double-backslash as dnl directory separator, inside the dnl # line "filename" dnl directives. gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac dnl A sed expression that turns a string into a basic regular dnl expression, for use within "/.../". gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo '$1' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' changequote([,]) dnl eval is necessary to expand gl_absname_cpp. dnl Ultrix and Pyramid sh refuse to redirect output of eval, dnl so use subshell. AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]), [`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | sed -n "$gl_absolute_header_sed"`]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/alloca.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000007312�14374751113�011370� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# alloca.m4 serial 21 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ALLOCA], [ AC_REQUIRE([AC_FUNC_ALLOCA]) if test $ac_cv_func_alloca_works = no; then gl_PREREQ_ALLOCA fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [ AC_EGREP_CPP([Need own alloca], [ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no]) ]) if test $gl_cv_rpl_alloca = yes; then dnl OK, alloca can be implemented through a compiler built-in. AC_DEFINE([HAVE_ALLOCA], [1], [Define to 1 if you have 'alloca' after including <alloca.h>, a header that may be supplied by this distribution.]) GL_GENERATE_ALLOCA_H=true else dnl alloca exists as a library function, i.e. it is slow and probably dnl a memory leak. Don't define HAVE_ALLOCA in this case. GL_GENERATE_ALLOCA_H=false fi else GL_GENERATE_ALLOCA_H=true fi if test $ac_cv_working_alloca_h = yes; then HAVE_ALLOCA_H=1 else HAVE_ALLOCA_H=0 fi AC_SUBST([HAVE_ALLOCA_H]) ]) # Prerequisites of lib/alloca.c. # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. AC_DEFUN([gl_PREREQ_ALLOCA], [:]) m4_version_prereq([2.70], [], [ # This works around a bug in autoconf <= 2.68 and has simplifications # from 2.70. See: # https://lists.gnu.org/r/bug-gnulib/2011-06/msg00277.html # https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497 # https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=15edf7fd8094fd14a89d9891dd72a9624762597a # _AC_LIBOBJ_ALLOCA # ----------------- # Set up the LIBOBJ replacement of 'alloca'. Well, not exactly # AC_LIBOBJ since we actually set the output variable 'ALLOCA'. # Nevertheless, for Automake, AC_LIBSOURCES it. m4_define([_AC_LIBOBJ_ALLOCA], [# The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. AC_LIBSOURCES(alloca.c) AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.]) AC_CACHE_CHECK([stack direction for C alloca], [ac_cv_c_stack_direction], [AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_INCLUDES_DEFAULT int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; }])], [ac_cv_c_stack_direction=1], [ac_cv_c_stack_direction=-1], [ac_cv_c_stack_direction=0])]) AH_VERBATIM([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION])dnl AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) ])# _AC_LIBOBJ_ALLOCA ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/assert_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000005204�14374751113�011743� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# assert-h.m4 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. AC_DEFUN([gl_ASSERT_H], [ AC_CACHE_CHECK([for static_assert], [gl_cv_static_assert], [gl_save_CFLAGS=$CFLAGS for gl_working in "yes, a keyword" "yes, an <assert.h> macro"; do AS_CASE([$gl_working], [*assert.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H"]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#if defined __clang__ && __STDC_VERSION__ < 202311 #pragma clang diagnostic error "-Wc2x-extensions" #pragma clang diagnostic error "-Wc++1z-extensions" #endif #ifdef INCLUDE_ASSERT_H #include <assert.h> #endif static_assert (2 + 2 == 4, "arithmetic does not work"); static_assert (2 + 2 == 4); ]], [[ static_assert (sizeof (char) == 1, "sizeof does not work"); static_assert (sizeof (char) == 1); ]])], [gl_cv_static_assert=$gl_working], [gl_cv_static_assert=no]) CFLAGS=$gl_save_CFLAGS test "$gl_cv_static_assert" != no && break done]) GL_GENERATE_ASSERT_H=false AS_CASE([$gl_cv_static_assert], [yes*keyword*], [AC_DEFINE([HAVE_C_STATIC_ASSERT], [1], [Define to 1 if the static_assert keyword works.])], [no], [GL_GENERATE_ASSERT_H=true gl_NEXT_HEADERS([assert.h])]) dnl The "zz" puts this toward config.h's end, to avoid potential dnl collisions with other definitions. dnl #undef assert so that programs are not tempted to use it without dnl specifically including assert.h. dnl #undef __ASSERT_H__ so that on IRIX, when programs later include dnl <assert.h>, this include actually defines assert. dnl Break the #undef_s apart with a comment so that 'configure' does dnl not comment them out. AH_VERBATIM([zzstatic_assert], [#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \ && (!defined __cplusplus \ || (__cpp_static_assert < 201411 \ && __GNUG__ < 6 && __clang_major__ < 6))) #include <assert.h> #undef/**/assert #ifdef __sgi #undef/**/__ASSERT_H__ #endif /* Solaris 11.4 <assert.h> defines static_assert as a macro with 2 arguments. We need it also to be invocable with a single argument. */ #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus #undef/**/static_assert #define static_assert _Static_assert #endif #endif]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/backupfile.m4������������������������������������������������������������������������0000644�0000000�0000000�00000000744�14374751113�012244� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# backupfile.m4 serial 14 dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Prerequisites of lib/backupfile.c. AC_DEFUN([gl_BACKUPFILE], [ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO]) AC_REQUIRE([AC_SYS_LONG_FILE_NAMES]) AC_CHECK_FUNCS_ONCE([pathconf]) ]) ����������������������������a2ps-4.15.5/m4/builtin-expect.m4��������������������������������������������������������������������0000644�0000000�0000000�00000003023�14374751113�013064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Check for __builtin_expect. dnl Copyright 2016-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN([gl___BUILTIN_EXPECT], [ AC_CACHE_CHECK([for __builtin_expect], [gl_cv___builtin_expect], [AC_LINK_IFELSE( [AC_LANG_SOURCE([[ int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; }]])], [gl_cv___builtin_expect=yes], [AC_LINK_IFELSE( [AC_LANG_SOURCE([[ #include <builtins.h> int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; }]])], [gl_cv___builtin_expect="in <builtins.h>"], [gl_cv___builtin_expect=no])])]) if test "$gl_cv___builtin_expect" = yes; then AC_DEFINE([HAVE___BUILTIN_EXPECT], [1]) elif test "$gl_cv___builtin_expect" = "in <builtins.h>"; then AC_DEFINE([HAVE___BUILTIN_EXPECT], [2]) fi AH_VERBATIM([HAVE___BUILTIN_EXPECT], [/* Define to 1 if the compiler supports __builtin_expect, and to 2 if <builtins.h> does. */ #undef HAVE___BUILTIN_EXPECT #ifndef HAVE___BUILTIN_EXPECT # define __builtin_expect(e, c) (e) #elif HAVE___BUILTIN_EXPECT == 2 # include <builtins.h> #endif ]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/c-bool.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000003360�14374751113�011307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Check for bool that conforms to C2023. dnl Copyright 2022-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_C_BOOL], [ AC_CACHE_CHECK([for bool, true, false], [gl_cv_c_bool], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE([[ #if true == false #error "true == false" #endif extern bool b; bool b = true == false;]])], [gl_cv_c_bool=yes], [gl_cv_c_bool=no])]) if test "$gl_cv_c_bool" = yes; then AC_DEFINE([HAVE_C_BOOL], [1], [Define to 1 if bool, true and false work as per C2023.]) fi AC_CHECK_HEADERS_ONCE([stdbool.h]) dnl The "zz" puts this toward config.h's end, to avoid potential dnl collisions with other definitions. dnl If 'bool', 'true' and 'false' do not work, arrange for them to work. dnl In C, this means including <stdbool.h> if it is not already included. dnl However, if the preprocessor mistakenly treats 'true' as 0, dnl define it to a bool expression equal to 1; this is needed in dnl Sun C++ 5.11 (Oracle Solaris Studio 12.2, 2010) and older. AH_VERBATIM([zzbool], [#ifndef HAVE_C_BOOL # if !defined __cplusplus && !defined __bool_true_false_are_defined # if HAVE_STDBOOL_H # include <stdbool.h> # else # if defined __SUNPRO_C # error "<stdbool.h> is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC." # else # error "<stdbool.h> does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'." # endif # endif # endif # if !true # define true (!false) # endif #endif]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/calloc.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000006064�14374751113�011375� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# calloc.m4 serial 30 # Copyright (C) 2004-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Jim Meyering. # Determine whether calloc (N, S) returns non-NULL when N*S is zero, # and returns NULL when N*S overflows. # If so, define HAVE_CALLOC. Otherwise, define calloc to rpl_calloc # and arrange to use a calloc wrapper function that does work in that case. # _AC_FUNC_CALLOC_IF([IF-WORKS], [IF-NOT]) # ------------------------------------- # If calloc is compatible with GNU calloc, run IF-WORKS, otherwise, IF-NOT. AC_DEFUN([_AC_FUNC_CALLOC_IF], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether calloc (0, n) and calloc (n, 0) return nonnull], [ac_cv_func_calloc_0_nonnull], [if test $cross_compiling != yes; then ac_cv_func_calloc_0_nonnull=yes AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT], [[int result = 0; char * volatile p = calloc (0, 0); if (!p) result |= 1; free (p); return result; ]])], [], [ac_cv_func_calloc_0_nonnull=no]) else case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; # Guess yes on musl systems. *-musl* | midipix*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; # Guess yes on native Windows. mingw*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;; esac fi ]) AS_CASE([$ac_cv_func_calloc_0_nonnull], [*yes], [$1], [$2]) ]) # gl_FUNC_CALLOC_GNU # ------------------ # Replace calloc if it is not compatible with GNU libc. AC_DEFUN([gl_FUNC_CALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_CALLOC_POSIX]) REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX" if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then _AC_FUNC_CALLOC_IF([], [REPLACE_CALLOC_FOR_CALLOC_GNU=1]) fi ])# gl_FUNC_CALLOC_GNU # gl_FUNC_CALLOC_POSIX # -------------------- # Test whether 'calloc' is POSIX compliant (sets errno to ENOMEM when it # fails, and doesn't mess up with ptrdiff_t or size_t overflow), # and replace calloc if it is not. AC_DEFUN([gl_FUNC_CALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then REPLACE_CALLOC_FOR_CALLOC_POSIX=1 fi dnl Although in theory we should also test for size_t overflow, dnl in practice testing for ptrdiff_t overflow suffices dnl since PTRDIFF_MAX <= SIZE_MAX on all known Gnulib porting targets. dnl A separate size_t test would slow down 'configure'. ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/canonicalize.m4����������������������������������������������������������������������0000644�0000000�0000000�00000013705�14374751113�012577� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# canonicalize.m4 serial 38 dnl Copyright (C) 2003-2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Provides canonicalize_file_name and canonicalize_filename_mode, but does # not provide or fix realpath. AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) AC_CHECK_FUNCS_ONCE([canonicalize_file_name]) gl_CHECK_FUNCS_ANDROID([faccessat], [[#include <unistd.h>]]) AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) if test $ac_cv_func_canonicalize_file_name = no; then HAVE_CANONICALIZE_FILE_NAME=0 else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_CANONICALIZE_FILE_NAME=1 ;; esac fi ]) # Provides canonicalize_file_name and realpath. AC_DEFUN([gl_CANONICALIZE_LGPL], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE]) if test $ac_cv_func_canonicalize_file_name = no; then HAVE_CANONICALIZE_FILE_NAME=0 if test $ac_cv_func_realpath = no; then HAVE_REALPATH=0 else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_REALPATH=1 ;; esac fi else case "$gl_cv_func_realpath_works" in *yes) ;; *) REPLACE_CANONICALIZE_FILE_NAME=1 REPLACE_REALPATH=1 ;; esac fi ]) # Like gl_CANONICALIZE_LGPL, except prepare for separate compilation # (no REPLACE_CANONICALIZE_FILE_NAME, no REPLACE_REALPATH, no AC_LIBOBJ). AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) AC_CHECK_FUNCS_ONCE([canonicalize_file_name]) gl_CHECK_FUNCS_ANDROID([faccessat], [[#include <unistd.h>]]) dnl On native Windows, we use _getcwd(), regardless whether getcwd() is dnl available through the linker option '-loldnames'. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) ;; *) AC_CHECK_FUNCS([getcwd]) ;; esac AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) # Check whether realpath works. Assume that if a platform has both # realpath and canonicalize_file_name, but the former is broken, then # so is the latter. AC_DEFUN([gl_FUNC_REALPATH_WORKS], [ AC_CHECK_FUNCS_ONCE([realpath lstat]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether realpath works], [gl_cv_func_realpath_works], [ rm -rf conftest.a conftest.d touch conftest.a # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.a conftest.l fi mkdir conftest.d AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ ]GL_NOCRASH[ #include <errno.h> #include <stdlib.h> #include <string.h> ]], [[ int result = 0; /* This test fails on Solaris 10. */ { char *name = realpath ("conftest.a", NULL); if (!(name && *name == '/')) result |= 1; free (name); } /* This test fails on older versions of Cygwin. */ { char *name = realpath ("conftest.b/../conftest.a", NULL); if (name != NULL) result |= 2; free (name); } /* This test fails on Cygwin 2.9. */ #if HAVE_LSTAT { char *name = realpath ("conftest.l/../conftest.a", NULL); if (name != NULL || errno != ENOTDIR) result |= 4; free (name); } #endif /* This test fails on Mac OS X 10.13, OpenBSD 6.0. */ { char *name = realpath ("conftest.a/", NULL); if (name != NULL) result |= 8; free (name); } /* This test fails on AIX 7, Solaris 10. */ { char *name1 = realpath (".", NULL); char *name2 = realpath ("conftest.d//./..", NULL); if (! name1 || ! name2 || strcmp (name1, name2)) result |= 16; free (name1); free (name2); } #ifdef __linux__ /* On Linux, // is the same as /. See also double-slash-root.m4. realpath() should respect this. This test fails on musl libc 1.2.2. */ { char *name = realpath ("//", NULL); if (! name || strcmp (name, "/")) result |= 32; free (name); } #endif return result; ]]) ], [gl_cv_func_realpath_works=yes], [case $? in 32) gl_cv_func_realpath_works=nearly ;; *) gl_cv_func_realpath_works=no ;; esac ], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;; # Guess 'nearly' on musl systems. *-musl*) gl_cv_func_realpath_works="guessing nearly" ;; # Guess no on Cygwin. cygwin*) gl_cv_func_realpath_works="guessing no" ;; # Guess no on native Windows. mingw*) gl_cv_func_realpath_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_realpath_works="$gl_cross_guess_normal" ;; esac ]) rm -rf conftest.a conftest.l conftest.d ]) case "$gl_cv_func_realpath_works" in *yes) AC_DEFINE([FUNC_REALPATH_WORKS], [1], [Define to 1 if realpath() can malloc memory, always gives an absolute path, and handles leading slashes and a trailing slash correctly.]) ;; *nearly) AC_DEFINE([FUNC_REALPATH_NEARLY_WORKS], [1], [Define to 1 if realpath() can malloc memory, always gives an absolute path, and handles a trailing slash correctly.]) ;; esac ]) �����������������������������������������������������������a2ps-4.15.5/m4/chdir-long.m4������������������������������������������������������������������������0000644�0000000�0000000�00000002054�14374751113�012161� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 17 # Use Gnulib's robust chdir function. # It can handle arbitrarily long directory names, which means # that when it is given the name of an existing directory, it # never fails with ENAMETOOLONG. # Arrange to compile chdir-long.c only on systems that define PATH_MAX. dnl Copyright (C) 2004-2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Written by Jim Meyering. AC_DEFUN([gl_FUNC_CHDIR_LONG], [ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ]) AC_CACHE_CHECK([whether this system supports file names of any length], [gl_cv_have_unlimited_file_name_length], [AC_EGREP_CPP([have_arbitrary_file_name_length_limit], gl_PATHMAX_SNIPPET[ #ifdef PATH_MAX have_arbitrary_file_name_length_limit #endif], [gl_cv_have_unlimited_file_name_length=no], [gl_cv_have_unlimited_file_name_length=yes])]) ]) AC_DEFUN([gl_PREREQ_CHDIR_LONG], [:]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/close.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000002221�14374751113�011234� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# close.m4 serial 9 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_CLOSE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) m4_ifdef([gl_MSVC_INVAL], [ AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi ]) m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [ gl_PREREQ_SYS_H_WINSOCK2 if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then dnl Even if the 'socket' module is not used here, another part of the dnl application may use it and pass file descriptors that refer to dnl sockets to the close() function. So enable the support for sockets. REPLACE_CLOSE=1 fi ]) dnl Replace close() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_CLOSE = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_CLOSE=1 fi fi ]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/closedir.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000001674�14374751113�011746� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# closedir.m4 serial 6 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_CLOSEDIR], [ AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS([closedir]) if test $ac_cv_func_closedir = no; then HAVE_CLOSEDIR=0 fi dnl Replace closedir() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then if test $HAVE_CLOSEDIR = 1; then REPLACE_CLOSEDIR=1 fi fi ]) dnl Replace closedir() for supporting the gnulib-defined dirfd() function. case $host_os,$HAVE_CLOSEDIR in os2*,1) REPLACE_CLOSEDIR=1;; esac ]) ��������������������������������������������������������������������a2ps-4.15.5/m4/codeset.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001525�14374751113�011563� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# codeset.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2023 Free Software dnl Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <langinfo.h>]], [[char* cs = nl_langinfo(CODESET); return !cs;]])], [am_cv_langinfo_codeset=yes], [am_cv_langinfo_codeset=no]) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE([HAVE_LANGINFO_CODESET], [1], [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) fi ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/d-ino.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000004441�14374751113�011143� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 21 dnl From Jim Meyering. dnl dnl Check whether struct dirent has a member named d_ino. dnl # Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2023 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO], [AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([for d_ino member in directory struct], [gl_cv_struct_dirent_d_ino], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> #include <sys/stat.h> #include <dirent.h> ]], [[DIR *dp = opendir ("."); struct dirent *e; struct stat st; if (! dp) return 1; e = readdir (dp); if (! e) { closedir (dp); return 2; } if (lstat (e->d_name, &st) != 0) { closedir (dp); return 3; } if (e->d_ino != st.st_ino) { closedir (dp); return 4; } closedir (dp); return 0; ]])], [gl_cv_struct_dirent_d_ino=yes], [gl_cv_struct_dirent_d_ino=no], [case "$host_os" in # Guess yes on glibc systems with Linux kernel. linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess yes on musl systems with Linux kernel. linux*-musl*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_struct_dirent_d_ino="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_struct_dirent_d_ino="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_struct_dirent_d_ino="$gl_cross_guess_normal" ;; esac ])]) case "$gl_cv_struct_dirent_d_ino" in *yes) AC_DEFINE([D_INO_IN_DIRENT], [1], [Define if struct dirent has a member d_ino that actually works.]) ;; esac ] ) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/dirent_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000006222�14374751113�011730� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# dirent_h.m4 serial 19 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Bruno Haible. AC_DEFUN_ONCE([gl_DIRENT_H], [ dnl Ensure to expand the default settings once only, before all statements dnl that occur in other macros. AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) dnl <dirent.h> is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([dirent.h]) if test $ac_cv_header_dirent_h = yes; then HAVE_DIRENT_H=1 else HAVE_DIRENT_H=0 fi AC_SUBST([HAVE_DIRENT_H]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <dirent.h> ]], [alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir]) ]) # gl_DIRENT_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_DIRENT_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_DIRENT_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_DIRENT_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_DIRENT_H_MODULE_INDICATOR_DEFAULTS], [ gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REWINDDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSEDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DIRFD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPENDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALPHASORT]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_DIRENT_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) ]) AC_DEFUN([gl_DIRENT_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_OPENDIR=1; AC_SUBST([HAVE_OPENDIR]) HAVE_READDIR=1; AC_SUBST([HAVE_READDIR]) HAVE_REWINDDIR=1; AC_SUBST([HAVE_REWINDDIR]) HAVE_CLOSEDIR=1; AC_SUBST([HAVE_CLOSEDIR]) HAVE_DECL_DIRFD=1; AC_SUBST([HAVE_DECL_DIRFD]) HAVE_DECL_FDOPENDIR=1;AC_SUBST([HAVE_DECL_FDOPENDIR]) HAVE_FDOPENDIR=1; AC_SUBST([HAVE_FDOPENDIR]) HAVE_SCANDIR=1; AC_SUBST([HAVE_SCANDIR]) HAVE_ALPHASORT=1; AC_SUBST([HAVE_ALPHASORT]) REPLACE_OPENDIR=0; AC_SUBST([REPLACE_OPENDIR]) REPLACE_CLOSEDIR=0; AC_SUBST([REPLACE_CLOSEDIR]) REPLACE_DIRFD=0; AC_SUBST([REPLACE_DIRFD]) REPLACE_FDOPENDIR=0; AC_SUBST([REPLACE_FDOPENDIR]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/dirfd.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000005135�14374751113�011226� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 26 -*- Autoconf -*- dnl Find out how to get the file descriptor associated with an open DIR*. # Copyright (C) 2001-2006, 2008-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Jim Meyering AC_DEFUN([gl_FUNC_DIRFD], [ AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Persuade glibc <dirent.h> to declare dirfd(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS([dirfd]) AC_CHECK_DECLS([dirfd], , , [[#include <sys/types.h> #include <dirent.h>]]) if test $ac_cv_have_decl_dirfd = no; then HAVE_DECL_DIRFD=0 fi AC_CACHE_CHECK([whether dirfd is a macro], [gl_cv_func_dirfd_macro], [AC_EGREP_CPP([dirent_header_defines_dirfd], [ #include <sys/types.h> #include <dirent.h> #ifdef dirfd dirent_header_defines_dirfd #endif], [gl_cv_func_dirfd_macro=yes], [gl_cv_func_dirfd_macro=no])]) # Use the replacement if we have no function or macro with that name, # or if OS/2 kLIBC whose dirfd() does not work. # Replace only if the system declares dirfd already. case $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro,$host_os,$ac_cv_have_decl_dirfd in no,no,*,yes | *,*,os2*,yes) REPLACE_DIRFD=1 AC_DEFINE([REPLACE_DIRFD], [1], [Define to 1 if gnulib's dirfd() replacement is used.]);; esac ]) dnl Prerequisites of lib/dirfd.c. AC_DEFUN([gl_PREREQ_DIRFD], [ AC_CACHE_CHECK([how to get the file descriptor associated with an open DIR*], [gl_cv_sys_dir_fd_member_name], [ dirfd_save_CFLAGS=$CFLAGS for ac_expr in d_fd dd_fd; do CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/types.h> #include <dirent.h>]], [[DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;]])], [dir_fd_found=yes] ) CFLAGS=$dirfd_save_CFLAGS test "$dir_fd_found" = yes && break done test "$dir_fd_found" = yes || ac_expr=no_such_member gl_cv_sys_dir_fd_member_name=$ac_expr ] ) if test $gl_cv_sys_dir_fd_member_name != no_such_member; then AC_DEFINE_UNQUOTED([DIR_FD_MEMBER_NAME], [$gl_cv_sys_dir_fd_member_name], [the name of the file descriptor member of DIR]) fi AH_VERBATIM([DIR_TO_FD], [#ifdef DIR_FD_MEMBER_NAME # define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) #else # define DIR_TO_FD(Dir_p) -1 #endif ]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/double-slash-root.m4�����������������������������������������������������������������0000644�0000000�0000000�00000003125�14374751113�013476� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# double-slash-root.m4 serial 4 -*- Autoconf -*- dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_DOUBLE_SLASH_ROOT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root], [ if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # <bug-gnulib@gnu.org>. case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$[2]" = "$[4]" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi]) if test "$gl_cv_double_slash_root" = yes; then AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1], [Define to 1 if // is a file system root distinct from /.]) fi ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/dup.m4�������������������������������������������������������������������������������0000644�0000000�0000000�00000003173�14374751113�010726� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# dup.m4 serial 7 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_DUP], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_MSVC_INVAL], [ AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_DUP=1 fi ]) dnl Replace dup() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_DUP=1 fi ]) AC_CACHE_CHECK([whether dup works], [gl_cv_func_dup_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM([[#include <unistd.h> #include <fcntl.h> #include <errno.h> ]GL_MDA_DEFINES], [[/* On OS/2 kLIBC, dup does not work on a directory fd. */ int fd = open (".", O_RDONLY); return fd < 0 ? 1 : dup (fd) < 0 ? 2 : 0; ]]) ], [gl_cv_func_dup_works=yes], [gl_cv_func_dup_works=no], [case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_dup_works="guessing no" ;; *) gl_cv_func_dup_works="guessing yes" ;; esac ]) ]) case "$gl_cv_func_dup_works" in *yes) ;; *) REPLACE_DUP=1 ;; esac ]) # Prerequisites of lib/dup.c. AC_DEFUN([gl_PREREQ_DUP], [:]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/dup2.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000007236�14374751113�011014� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 27 dnl Copyright (C) 2002, 2005, 2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM( [[#include <errno.h> #include <fcntl.h> #include <limits.h> #include <sys/resource.h> #include <unistd.h> ]GL_MDA_DEFINES[ #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif ]], [[int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) != 1) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, bad_fd) == -1 && errno != EBADF) result |= 16; /* Flush out some cygwin core dumps. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; dup2 (2, 255); dup2 (2, 256); /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ { int fd = open (".", O_RDONLY); if (fd == -1) result |= 64; else if (dup2 (fd, fd + 1) == -1) result |= 128; close (fd); } return result;]]) ], [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], [case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; aix* | freebsd*) # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, # not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 AC_CHECK_FUNCS([setdtablesize]) ;; esac dnl Replace dup2() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_DUP2=1 fi ]) ]) # Prerequisites of lib/dup2.c. AC_DEFUN([gl_PREREQ_DUP2], []) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/eealloc.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001667�14374751113�011550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# eealloc.m4 serial 3 dnl Copyright (C) 2003, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EEALLOC], [ AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([gl_EEREALLOC]) ]) AC_DEFUN([gl_EEMALLOC], [ _AC_FUNC_MALLOC_IF( [gl_cv_func_malloc_0_nonnull=1], [gl_cv_func_malloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull], [If malloc(0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) AC_DEFUN([gl_EEREALLOC], [ _AC_FUNC_REALLOC_IF( [gl_cv_func_realloc_0_nonnull=1], [gl_cv_func_realloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull], [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) �������������������������������������������������������������������������a2ps-4.15.5/m4/errno_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000005642�14374751113�011575� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# errno_h.m4 serial 14 dnl Copyright (C) 2004, 2006, 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.61]) AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ AC_EGREP_CPP([booboo],[ #include <errno.h> #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif ], [gl_cv_header_errno_h_complete=no], [gl_cv_header_errno_h_complete=yes]) ]) if test $gl_cv_header_errno_h_complete = yes; then GL_GENERATE_ERRNO_H=false else gl_NEXT_HEADERS([errno.h]) GL_GENERATE_ERRNO_H=true fi gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) gl_REPLACE_ERRNO_VALUE([ENOLINK]) gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) ]) # Assuming $1 = EOVERFLOW. # The EOVERFLOW errno value ought to be defined in <errno.h>, according to # POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and # some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. # Check for the value of EOVERFLOW. # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. AC_DEFUN([gl_REPLACE_ERRNO_VALUE], [ if $GL_GENERATE_ERRNO_H; then AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ AC_EGREP_CPP([yes],[ #include <errno.h> #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=yes], [gl_cv_header_errno_h_]$1[=no]) if test $gl_cv_header_errno_h_]$1[ = no; then AC_EGREP_CPP([yes],[ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=hidden]) if test $gl_cv_header_errno_h_]$1[ = hidden; then dnl The macro exists but is hidden. dnl Define it to the same value. AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> ]) fi fi ]) case $gl_cv_header_errno_h_]$1[ in yes | no) ]$1[_HIDDEN=0; ]$1[_VALUE= ;; *) ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1[" ;; esac AC_SUBST($1[_HIDDEN]) AC_SUBST($1[_VALUE]) fi ]) ����������������������������������������������������������������������������������������������a2ps-4.15.5/m4/error.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000001130�14374751113�011256� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 16 # Copyright (C) 1996-1998, 2001-2004, 2009-2023 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_ERROR], [ ]) # Prerequisites of lib/error.c. AC_DEFUN([gl_PREREQ_ERROR], [ dnl Use system extensions on Android, so that AC_FUNC_STRERROR_R dnl discovers the GNU API for strerror_r on Android API level 23 and later. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_FUNC_STRERROR_R]) : ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/error_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000007612�14374751113�011600� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# error_h.m4 serial 3 dnl Copyright (C) 1996-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Provide a working "error.h". AC_DEFUN_ONCE([gl_ERROR_H], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles gl_CHECK_NEXT_HEADERS([error.h]) if test $ac_cv_header_error_h = yes; then HAVE_ERROR_H=1 else HAVE_ERROR_H=0 fi AC_SUBST([HAVE_ERROR_H]) REPLACE_ERROR=0 gl_CHECK_FUNCS_ANDROID([error], [[#include <error.h>]]) if test $ac_cv_func_error = yes; then HAVE_ERROR=1 else HAVE_ERROR=0 case "$gl_cv_onwards_func_error" in future*) REPLACE_ERROR=1 ;; esac fi dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer dnl maintained in Autoconf and because it invokes AC_LIBOBJ. dnl We need to notice a missing declaration, like gl_CHECK_FUNCS_ANDROID does. AC_CHECK_DECL([error_at_line], , , [[#include <error.h>]]) if test $ac_cv_have_decl_error_at_line = yes; then AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <error.h>]], [[error_at_line (0, 0, "", 0, "an error occurred");]])], [ac_cv_lib_error_at_line=yes], [ac_cv_lib_error_at_line=no])]) else ac_cv_lib_error_at_line=no fi if test $ac_cv_lib_error_at_line = yes; then HAVE_ERROR_AT_LINE=1 else HAVE_ERROR_AT_LINE=0 fi REPLACE_ERROR_AT_LINE=0 if test $ac_cv_func_error = yes && test $ac_cv_lib_error_at_line = yes; then dnl On Android 11, when error_print_progname is set, the output of the dnl error() function contains an extra space. AC_CACHE_CHECK([for working error function], [gl_cv_func_working_error], [if test $cross_compiling != yes; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ #include <error.h> static void print_no_progname (void) {} ]], [[ error_print_progname = print_no_progname; error (0, 0, "foo"); ]]) ], [rm -f conftest.out if test -s conftest$ac_exeext \ && ./conftest$ac_exeext 2> conftest.out; then if grep ' ' conftest.out >/dev/null; then gl_cv_func_working_error=no else gl_cv_func_working_error=yes fi else gl_cv_func_working_error=no fi rm -f conftest.out ], [gl_cv_func_working_error=no]) else AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include <error.h> ]], [[ error (0, 0, "foo"); ]]) ], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_working_error="guessing yes" ;; # Guess no on Android. linux*-android*) gl_cv_func_working_error="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_working_error="$gl_cross_guess_normal" ;; esac ], [gl_cv_func_working_error=no]) fi ]) case "$gl_cv_func_working_error" in *no) REPLACE_ERROR=1 REPLACE_ERROR_AT_LINE=1 ;; esac fi if test $HAVE_ERROR = 0 || test $REPLACE_ERROR = 1 \ || test $HAVE_ERROR_AT_LINE = 0 || test $REPLACE_ERROR_AT_LINE = 1; then dnl Provide a substitute <error.h> file. GL_GENERATE_ERROR_H=true else GL_GENERATE_ERROR_H=false fi AC_SUBST([HAVE_ERROR]) AC_SUBST([HAVE_ERROR_AT_LINE]) AC_SUBST([REPLACE_ERROR]) AC_SUBST([REPLACE_ERROR_AT_LINE]) ]) ����������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/extensions.m4������������������������������������������������������������������������0000644�0000000�0000000�00000020626�14374751113�012337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 23 -*- Autoconf -*- # Enable extensions on systems that normally disable them. # Copyright (C) 2003, 2006-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl Define to empty for the benefit of Autoconf 2.69 and earlier, so that dnl AC_USE_SYSTEM_EXTENSIONS (below) can be used unchanged from Autoconf 2.70+. m4_ifndef([AC_CHECK_INCLUDES_DEFAULT], [AC_DEFUN([AC_CHECK_INCLUDES_DEFAULT], [])]) # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git # Autoconf. Perhaps we can remove this once we can assume Autoconf # is recent-enough everywhere, but since Autoconf mutates rapidly # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. # If autoconf reports a warning # warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # the fix is # 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked # but always AC_REQUIREd, # 2) to ensure that for each occurrence of # AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) # or # AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # the corresponding gnulib module description has 'extensions' among # its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS # invocation occurs in gl_EARLY, not in gl_INIT. m4_version_prereq([2.72], [], [ # AC_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. # We unconditionally define as many of the known feature-enabling # as possible, reserving conditional behavior for macros that are # known to cause problems on some platforms (such as __EXTENSIONS__). AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], [AC_BEFORE([$0], [AC_PREPROC_IFELSE])dnl AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl AC_BEFORE([$0], [AC_LINK_IFELSE])dnl AC_BEFORE([$0], [AC_RUN_IFELSE])dnl AC_BEFORE([$0], [AC_CHECK_INCLUDES_DEFAULT])dnl dnl #undef in AH_VERBATIM gets replaced with #define by AC_DEFINE. dnl Use a different key than __EXTENSIONS__, as that name broke existing dnl configure.ac when using autoheader 2.62. dnl The macros below are in alphabetical order ignoring leading _ or __ dnl prefixes. AH_VERBATIM([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on macOS. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable X/Open compliant socket functions that do not require linking with -lxnet on HP-UX 11.11. */ #ifndef _HPUX_ALT_XOPEN_SOCKET_API # undef _HPUX_ALT_XOPEN_SOCKET_API #endif /* Identify the host operating system as Minix. This macro does not affect the system headers' behavior. A future release of Autoconf may stop defining this macro. */ #ifndef _MINIX # undef _MINIX #endif /* Enable general extensions on NetBSD. Enable NetBSD compatibility extensions on Minix. */ #ifndef _NETBSD_SOURCE # undef _NETBSD_SOURCE #endif /* Enable OpenBSD compatibility extensions on NetBSD. Oddly enough, this does nothing on OpenBSD. */ #ifndef _OPENBSD_SOURCE # undef _OPENBSD_SOURCE #endif /* Define to 1 if needed for POSIX-compatible behavior. */ #ifndef _POSIX_SOURCE # undef _POSIX_SOURCE #endif /* Define to 2 if needed for POSIX-compatible behavior. */ #ifndef _POSIX_1_SOURCE # undef _POSIX_1_SOURCE #endif /* Enable POSIX-compatible threading on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ # undef __STDC_WANT_IEC_60559_BFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif /* Enable extensions specified by C23 Annex F. */ #ifndef __STDC_WANT_IEC_60559_EXT__ # undef __STDC_WANT_IEC_60559_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif /* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif /* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ #ifndef __STDC_WANT_LIB_EXT2__ # undef __STDC_WANT_LIB_EXT2__ #endif /* Enable extensions specified by ISO/IEC 24747:2009. */ #ifndef __STDC_WANT_MATH_SPEC_FUNCS__ # undef __STDC_WANT_MATH_SPEC_FUNCS__ #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions. Define to 500 only if necessary to make mbstate_t available. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif ])dnl AC_REQUIRE([AC_CHECK_INCLUDES_DEFAULT])dnl _AC_CHECK_HEADER_ONCE([wchar.h]) _AC_CHECK_HEADER_ONCE([minix/config.h]) dnl Defining __EXTENSIONS__ may break the system headers on some systems. dnl (FIXME: Which ones?) AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ # define __EXTENSIONS__ 1 ]AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_define___extensions__=yes], [ac_cv_safe_to_define___extensions__=no])]) dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to dnl 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. dnl But defining _XOPEN_SOURCE may turn *off* extensions on platforms dnl not covered by turn-on-extensions macros (notably Dragonfly, Free, dnl and OpenBSD, which don't have any equivalent of _NETBSD_SOURCE) so dnl it should only be defined when necessary. AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], [ac_cv_should_define__xopen_source], [ac_cv_should_define__xopen_source=no AS_IF([test $ac_cv_header_wchar_h = yes], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include <wchar.h> mbstate_t x;]])], [], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #define _XOPEN_SOURCE 500 #include <wchar.h> mbstate_t x;]])], [ac_cv_should_define__xopen_source=yes])])])]) AC_DEFINE([_ALL_SOURCE]) AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API]) AC_DEFINE([_NETBSD_SOURCE]) AC_DEFINE([_OPENBSD_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__]) AC_DEFINE([__STDC_WANT_LIB_EXT2__]) AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__]) AC_DEFINE([_TANDEM_SOURCE]) AS_IF([test $ac_cv_header_minix_config_h = yes], [MINIX=yes AC_DEFINE([_MINIX]) AC_DEFINE([_POSIX_SOURCE]) AC_DEFINE([_POSIX_1_SOURCE], [2])], [MINIX=]) AS_IF([test $ac_cv_safe_to_define___extensions__ = yes], [AC_DEFINE([__EXTENSIONS__])]) AS_IF([test $ac_cv_should_define__xopen_source = yes], [AC_DEFINE([_XOPEN_SOURCE], [500])]) ])# AC_USE_SYSTEM_EXTENSIONS ]) # gl_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl On OpenBSD 6.8 with GCC, the include files contain a couple of dnl definitions that are only activated with an explicit -D_ISOC11_SOURCE. dnl That's because this version of GCC (4.2.1) supports the option dnl '-std=gnu99' but not the option '-std=gnu11'. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in openbsd*) AC_DEFINE([_ISOC11_SOURCE], [1], [Define to enable the declarations of ISO C 11 types and functions.]) ;; esac ]) ����������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/extern-inline.m4���������������������������������������������������������������������0000644�0000000�0000000�00000012774�14374751113�012726� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl 'extern inline' a la ISO C99. dnl Copyright 2012-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EXTERN_INLINE], [ AC_CACHE_CHECK([whether ctype.h defines __header_inline], [gl_cv_have___header_inline], [AC_PREPROC_IFELSE( [AC_LANG_SOURCE([[#include <ctype.h> #ifndef __header_inline #error "<ctype.h> does not define __header_inline" #endif ]])], [gl_cv_have___header_inline=yes], [gl_cv_have___header_inline=no])]) if test "$gl_cv_have___header_inline" = yes; then AC_DEFINE([HAVE___HEADER_INLINE], [1], [Define to 1 if ctype.h defines __header_inline.]) fi AH_VERBATIM([HAVE___HEADER_INLINE_1], [/* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>. Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Oracle Developer Studio 12.6 (Sun C 5.15 SunOS_sparc 2017/05/30). Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) on configurations that mistakenly use 'static inline' to implement functions or macros in standard C headers like <ctype.h>. For example, if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions from calling static functions (ISO C 99 section 6.7.4.(3). This bug is known to occur on: OS X 10.8 and earlier; see: https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html DragonFly; see http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log FreeBSD; see: https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see <https://trac.macports.org/ticket/41033>. Assume DragonFly and FreeBSD will be similar. GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. It defines a macro __GNUC_STDC_INLINE__ to indicate this situation or a macro __GNUC_GNU_INLINE__ to indicate the opposite situation. GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline semantics but warns, unless -fgnu89-inline is used: warning: C99 inline functions are not supported; using GNU89 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined HAVE___HEADER_INLINE \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ : ((! defined _DONT_USE_CTYPE_INLINE_ \ && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern # define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE _GL_UNUSED static # define _GL_EXTERN_INLINE _GL_UNUSED static #endif /* In GCC 4.6 (inclusive) to 5.1 (exclusive), suppress bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif]) ]) ����a2ps-4.15.5/m4/fchdir.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000005044�14374751113�011374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fchdir.m4 serial 28 dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FCHDIR], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_DECLS_ONCE([fchdir]) if test $ac_cv_have_decl_fchdir = no; then HAVE_DECL_FCHDIR=0 fi AC_REQUIRE([gl_TEST_FCHDIR]) if test $HAVE_FCHDIR = 0; then AC_DEFINE([REPLACE_FCHDIR], [1], [Define to 1 if gnulib's fchdir() replacement is used.]) dnl We must also replace anything that can manipulate a directory fd, dnl to keep our bookkeeping up-to-date. We don't have to replace dnl fstatat, since no platform has fstatat but lacks fchdir. AC_CACHE_CHECK([whether open can visit directories], [gl_cv_func_open_directory_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <fcntl.h> ]GL_MDA_DEFINES], [[return open(".", O_RDONLY) < 0;]])], [gl_cv_func_open_directory_works=yes], [gl_cv_func_open_directory_works=no], [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_open_directory_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_open_directory_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_open_directory_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_open_directory_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_open_directory_works="$gl_cross_guess_normal" ;; esac ])]) case "$gl_cv_func_open_directory_works" in *yes) ;; *) AC_DEFINE([REPLACE_OPEN_DIRECTORY], [1], [Define to 1 if open() should work around the inability to open a directory.]) ;; esac fi ]) # Determine whether to use the overrides in lib/fchdir.c. AC_DEFUN([gl_TEST_FCHDIR], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([fchdir]) if test $ac_cv_func_fchdir = no; then HAVE_FCHDIR=0 fi ]) # Prerequisites of lib/fchdir.c. AC_DEFUN([gl_PREREQ_FCHDIR], [:]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/fcntl-o.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000011236�14374751113�011477� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fcntl-o.m4 serial 7 dnl Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_PREREQ([2.60]) # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_FUNCS_ONCE([symlink]) AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> #include <sys/stat.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* on Windows with MSVC */ # include <io.h> # include <stdlib.h> # defined sleep(n) _sleep ((n) * 1000) #endif #include <fcntl.h> ]GL_MDA_DEFINES[ #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; ]], [[ int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result;]])], [gl_cv_header_working_fcntl_h=yes], [case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac], [case "$host_os" in # Guess 'no' on native Windows. mingw*) gl_cv_header_working_fcntl_h='no' ;; *) gl_cv_header_working_fcntl_h=cross-compiling ;; esac ]) ]) case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], [Define to 1 if O_NOATIME works.]) case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], [Define to 1 if O_NOFOLLOW works.]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/fcntl-safer.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000000705�14374751113�012340� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 9 dnl Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FCNTL_SAFER], [ dnl Prerequisites of lib/open-safer.c. AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) ]) AC_DEFUN([gl_OPENAT_SAFER], [ AC_REQUIRE([gl_FCNTL_SAFER]) ]) �����������������������������������������������������������a2ps-4.15.5/m4/fcntl.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000012172�14374751113�011243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fcntl.m4 serial 11 dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # For now, this module ensures that fcntl() # - supports F_DUPFD correctly # - supports or emulates F_DUPFD_CLOEXEC # - supports F_GETFD # Still to be ported to mingw: # - F_SETFD # - F_GETFL, F_SETFL # - F_GETOWN, F_SETOWN # - F_GETLK, F_SETLK, F_SETLKW AC_DEFUN([gl_FUNC_FCNTL], [ dnl Persuade glibc to expose F_DUPFD_CLOEXEC. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([fcntl]) if test $ac_cv_func_fcntl = no; then gl_REPLACE_FCNTL else dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target dnl haiku alpha 2 F_DUPFD has wrong errno AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly], [gl_cv_func_fcntl_f_dupfd_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <errno.h> #include <fcntl.h> #include <limits.h> #include <sys/resource.h> #include <unistd.h> ]GL_MDA_DEFINES[ #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif ]], [[int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ { int fd; fd = open (".", O_RDONLY); if (fd == -1) result |= 16; else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) result |= 32; close (fd); } return result;]])], [gl_cv_func_fcntl_f_dupfd_works=yes], [gl_cv_func_fcntl_f_dupfd_works=no], [case $host_os in aix* | cygwin* | haiku*) gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; esac])]) case $gl_cv_func_fcntl_f_dupfd_works in *yes) ;; *) gl_REPLACE_FCNTL AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD behavior does not match POSIX]) ;; esac dnl Many systems lack F_DUPFD_CLOEXEC. dnl NetBSD 9.0 declares F_DUPFD_CLOEXEC but it works only like F_DUPFD. AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC], [gl_cv_func_fcntl_f_dupfd_cloexec], [AC_RUN_IFELSE( [AC_LANG_SOURCE( [[#include <fcntl.h> #include <unistd.h> int main (int argc, char *argv[]) { if (argc == 1) /* parent process */ { if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) return 1; return execl ("./conftest", "./conftest", "child", NULL); } else /* child process */ return (fcntl (10, F_GETFL) < 0 ? 0 : 42); } ]]) ], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #ifdef __linux__ /* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace it to support the semantics on older kernels that failed with EINVAL. */ choke me #endif ]])], [gl_cv_func_fcntl_f_dupfd_cloexec=yes], [gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"]) ], [gl_cv_func_fcntl_f_dupfd_cloexec=no], [case "$host_os" in # Guess no on NetBSD. netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; esac ]) ]) case "$gl_cv_func_fcntl_f_dupfd_cloexec" in *yes) ;; *) gl_REPLACE_FCNTL dnl No witness macro needed for this bug. ;; esac fi dnl Replace fcntl() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then gl_REPLACE_FCNTL fi ]) ]) AC_DEFUN([gl_REPLACE_FCNTL], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([fcntl]) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/fcntl_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000005206�14374751113�011552� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 20 # Configure fcntl.h. dnl Copyright (C) 2006-2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN_ONCE([gl_FCNTL_H], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([gl_FCNTL_O_FLAGS]) gl_NEXT_HEADERS([fcntl.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, if it is not common dnl enough to be declared everywhere. gl_WARN_ON_USE_PREPARE([[#include <fcntl.h> ]], [fcntl openat]) ]) # gl_FCNTL_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_FCNTL_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CREAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCNTL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) ]) AC_DEFUN([gl_FCNTL_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) REPLACE_CREAT=0; AC_SUBST([REPLACE_CREAT]) REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/fdopendir.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000003763�14374751113�012115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 15 # See if we need to provide fdopendir. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Written by Eric Blake. AC_DEFUN([gl_FUNC_FDOPENDIR], [ AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl FreeBSD 7.3 has the function, but failed to declare it. AC_CHECK_DECLS([fdopendir], [], [HAVE_DECL_FDOPENDIR=0], [[ #include <dirent.h> ]]) AC_CHECK_FUNCS_ONCE([fdopendir]) if test $ac_cv_func_fdopendir = no; then HAVE_FDOPENDIR=0 else AC_CACHE_CHECK([whether fdopendir works], [gl_cv_func_fdopendir_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include <dirent.h> #include <fcntl.h> #include <unistd.h> ]GL_MDA_DEFINES[ #if !HAVE_DECL_FDOPENDIR extern # ifdef __cplusplus "C" # endif DIR *fdopendir (int); #endif ]], [[int result = 0; int fd = open ("conftest.c", O_RDONLY); if (fd < 0) result |= 1; if (fdopendir (fd)) result |= 2; if (close (fd)) result |= 4; return result; ]])], [gl_cv_func_fdopendir_works=yes], [gl_cv_func_fdopendir_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;; # Guess yes on musl systems. *-musl* | midipix*) gl_cv_func_fdopendir_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_fdopendir_works="$gl_cross_guess_normal" ;; esac ])]) case "$gl_cv_func_fdopendir_works" in *yes) ;; *) REPLACE_FDOPENDIR=1 ;; esac fi ]) �������������a2ps-4.15.5/m4/file.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000004065�14233473143�011054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- Autoconf -*- # Find where is `file' and what is the option for it to follow the # links. If no way, use a plain `file'. # # Copyright (C) 1995-2000, 2002 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # 02111-1307 USA # Written by Akim Demaille <akim@freefriends.org> # serial 5 dnl This is a test to know what is the correct way to get dnl file following the links dnl I hope it is robust, but I'm a novice :) Akim Demaille AC_DEFUN([ad_PROG_FILE_LINK], [AC_PATH_PROG(file_prog, file)dnl AC_MSG_CHECKING(for the option for file to follow the links) AC_CACHE_VAL(ac_cv_prog_file_link_option,[ touch conftestfile ln -s conftestfile conftestfile1 for file_opt in '' ' -L' do res=`eval $file_prog $file_opt conftestfile1 2>&-` || res=symbolic case $res in *symbolic*) ;; *) ac_cv_prog_file_link_option=$file_opt ; break ;; esac done rm -f conftestfile conftestfile1 if test "X$ac_cv_prog_file_link_option" = X; then ac_cv_prog_file_link_option="no"; fi])dnl # If no flag were found, default to `file' with no options case "X$ac_cv_prog_file_link_option" in X) AC_MSG_RESULT(none required) ; FILE_LINK=${file_prog} ;; Xno) AC_MSG_RESULT(no way); FILE_LINK=${file_prog} ;; *) AC_MSG_RESULT($ac_cv_prog_file_link_option); FILE_LINK=${file_prog}${ac_cv_prog_file_link_option} ;; esac]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/filenamecat.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000001011�14374751113�012373� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# filenamecat.m4 serial 12 dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FILE_NAME_CONCAT], [ AC_REQUIRE([gl_FILE_NAME_CONCAT_LGPL]) ]) AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL], [ dnl Prerequisites of lib/filenamecat-lgpl.c. gl_CHECK_FUNCS_ANDROID([mempcpy], [[#include <string.h>]]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/free.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000003710�14374751113�011054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# free.m4 serial 6 # Copyright (C) 2003-2005, 2009-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert and Bruno Haible. AC_DEFUN([gl_FUNC_FREE], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) dnl In the next release of POSIX, free must preserve errno. dnl https://www.austingroupbugs.net/view.php?id=385 dnl https://sourceware.org/bugzilla/show_bug.cgi?id=17924 dnl So far, we know of three platforms that do this: dnl * glibc >= 2.33, thanks to the fix for this bug: dnl <https://sourceware.org/bugzilla/show_bug.cgi?id=17924> dnl * OpenBSD >= 4.5, thanks to this commit: dnl <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdlib/malloc.c.diff?r1=1.100&r2=1.101&f=h> dnl * Solaris, because its malloc() implementation is based on brk(), dnl not mmap(); hence its free() implementation makes no system calls. dnl For other platforms, you can only be sure if they state it in their dnl documentation, or by code inspection of the free() implementation in libc. AC_CACHE_CHECK([whether free is known to preserve errno], [gl_cv_func_free_preserves_errno], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stdlib.h> ]], [[#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) #elif defined __OpenBSD__ #elif defined __sun #else #error "'free' is not known to preserve errno" #endif ]])], [gl_cv_func_free_preserves_errno=yes], [gl_cv_func_free_preserves_errno=no]) ]) case $gl_cv_func_free_preserves_errno in *yes) AC_DEFINE([HAVE_FREE_POSIX], [1], [Define if the 'free' function is guaranteed to preserve errno.]) ;; *) REPLACE_FREE=1 ;; esac ]) # Prerequisites of lib/free.c. AC_DEFUN([gl_PREREQ_FREE], [:]) ��������������������������������������������������������a2ps-4.15.5/m4/fstat.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000002117�14374751113�011254� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fstat.m4 serial 8 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FSTAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) case "$host_os" in mingw* | solaris*) dnl On MinGW, the original stat() returns st_atime, st_mtime, dnl st_ctime values that are affected by the time zone. dnl Solaris stat can return a negative tv_nsec. REPLACE_FSTAT=1 ;; esac dnl Replace fstat() for supporting the gnulib-defined open() on directories. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then case "$gl_cv_func_open_directory_works" in *yes) ;; *) REPLACE_FSTAT=1 ;; esac fi ]) ]) # Prerequisites of lib/fstat.c and lib/stat-w32.c. AC_DEFUN([gl_PREREQ_FSTAT], [ AC_REQUIRE([gl_SYS_STAT_H]) AC_REQUIRE([gl_PREREQ_STAT_W32]) : ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/fstatat.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000003752�14374751113�011607� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fstatat.m4 serial 4 dnl Copyright (C) 2004-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Written by Jim Meyering. # If we have the fstatat function, and it has the bug (in AIX 7.1) # that it does not fill in st_size correctly, use the replacement function. AC_DEFUN([gl_FUNC_FSTATAT], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([fstatat]) if test $ac_cv_func_fstatat = no; then HAVE_FSTATAT=0 else dnl Test for an AIX 7.1 bug; see dnl <https://lists.gnu.org/r/bug-tar/2011-09/msg00015.html>. AC_CACHE_CHECK([whether fstatat (..., 0) works], [gl_cv_func_fstatat_zero_flag], [AC_RUN_IFELSE( [AC_LANG_SOURCE( [[ #include <fcntl.h> #include <sys/stat.h> int main (void) { struct stat a; return fstatat (AT_FDCWD, ".", &a, 0) != 0; } ]])], [gl_cv_func_fstatat_zero_flag=yes], [gl_cv_func_fstatat_zero_flag=no], [case "$host_os" in aix*) gl_cv_func_fstatat_zero_flag="guessing no";; *) gl_cv_func_fstatat_zero_flag="guessing yes";; esac ]) ]) case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in *yes+*yes) ;; *) REPLACE_FSTATAT=1 ;; esac case $host_os in solaris*) REPLACE_FSTATAT=1 ;; esac case $REPLACE_FSTATAT,$gl_cv_func_fstatat_zero_flag in 1,*yes) AC_DEFINE([HAVE_WORKING_FSTATAT_ZERO_FLAG], [1], [Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX 7.1.]) ;; esac fi ]) ����������������������a2ps-4.15.5/m4/fullpath.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000003201�14233473143�011743� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- Autoconf -*- # Check for the existence of a program, resolving it either to the # full name or short name. # This is ugly work, don't use it. # serial 2 AC_DEFUN([ad_ENABLE_PATHS], [AC_MSG_CHECKING(whether paths should be hardcoded) AC_ARG_ENABLE(paths, [ --enable-paths hard code the path of the tools]) test "$enable_paths" = "yes" || enable_paths=no AC_MSG_RESULT($enable_paths)]) # ad_CHECK_PROG(PROGRAM[, COMMENT ON FAILURE]) # -------------------------------------------- # defines $COM_PROGRAM to `#' if PROGRAM is not available, to `' otherwise # and defines $PROGRAM to PROGRAM if paths should not be hardcoded, # and to the path to PROGRAM otherwise. AC_DEFUN([ad_CHECK_PROG], [if test "$enable_paths" = "no"; then AC_CHECK_PROG(COM_$1, $1, yes, no) $1="$1"; if test "[$]COM_$1" = "yes"; then COM_$1=""; else COM_$1="#"; fi else AC_PATH_PROG($1, $1, [#]) if test "$1" = "#"; then # not found $1="$1" # let the name of the program as path COM_$1="#" else COM_$1="" fi fi m4_ifval([$2], [if test "[$]COM_$1" = "#"; then AC_MSG_WARN([============================================================ $2]) AC_MSG_WARN([============================================================]) fi]) AC_SUBST($1) AC_SUBST(COM_$1)]) # ad_CHECK_PROG(PROGRAM[, COMMENT ON FAILURE]) # -------------------------------------------- # defines $COM_PROGRAM to `#' if PROGRAM is not available, to `' otherwise # and defines $PROGRAM to PROGRAM if paths should not be hardcoded, # and to the path to PROGRAM otherwise. AC_DEFUN([ad_CHECK_PROGS], [m4_foreach([AC_PROG], [$1], [ad_CHECK_PROG(AC_PROG, $2)])]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/getcwd.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000012501�14374751113�011406� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getcwd.m4 - check for working getcwd that is compatible with glibc # Copyright (C) 2001, 2003-2007, 2009-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. # serial 20 AC_DEFUN([gl_FUNC_GETCWD_NULL], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result], [gl_cv_func_getcwd_null], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ # include <stdlib.h> # if HAVE_UNISTD_H # include <unistd.h> # else /* on Windows with MSVC */ # include <direct.h> # endif ]GL_MDA_DEFINES[ # ifndef getcwd char *getcwd (); # endif ]], [[ #if defined _WIN32 && ! defined __CYGWIN__ /* mingw cwd does not start with '/', but _getcwd does allocate. However, mingw fails to honor non-zero size. */ #else if (chdir ("/") != 0) return 1; else { char *f = getcwd (NULL, 0); if (! f) return 2; if (f[0] != '/') { free (f); return 3; } if (f[1] != '\0') { free (f); return 4; } free (f); return 0; } #endif ]])], [gl_cv_func_getcwd_null=yes], [gl_cv_func_getcwd_null=no], [[case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on musl systems. *-musl*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_getcwd_null="guessing yes";; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_getcwd_null="$gl_cross_guess_normal";; esac ]])]) ]) AC_DEFUN([gl_FUNC_GETCWD_SIGNATURE], [ AC_CACHE_CHECK([for getcwd with POSIX signature], [gl_cv_func_getcwd_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> ]GL_MDA_DEFINES], [[extern #ifdef __cplusplus "C" #endif char *getcwd (char *, size_t); ]]) ], [gl_cv_func_getcwd_posix_signature=yes], [gl_cv_func_getcwd_posix_signature=no]) ]) ]) dnl Guarantee that getcwd will malloc with a NULL first argument. Assumes dnl that either the system getcwd is robust, or that calling code is okay dnl with spurious failures when run from a directory with an absolute name dnl larger than 4k bytes. dnl dnl Assumes that getcwd exists; if you are worried about obsolete dnl platforms that lacked getcwd(), then you need to use the GPL module. AC_DEFUN([gl_FUNC_GETCWD_LGPL], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_GETCWD_NULL]) AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE]) case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in *yes,yes) ;; *) dnl Minimal replacement lib/getcwd-lgpl.c. REPLACE_GETCWD=1 ;; esac ]) dnl Check for all known getcwd bugs; useful for a program likely to be dnl executed from an arbitrary location. AC_DEFUN([gl_FUNC_GETCWD], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_GETCWD_NULL]) AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles gl_abort_bug=no case "$host_os" in mingw*) gl_cv_func_getcwd_path_max=yes ;; *) gl_FUNC_GETCWD_PATH_MAX case "$gl_cv_func_getcwd_null" in *yes) gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes]) ;; esac ;; esac dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD dnl if appropriate. case "$gl_cv_func_getcwd_path_max" in *"no" | *"no, it has the AIX bug") ;; *) AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1], [Define to 1 if getcwd minimally works, that is, its result can be trusted when it succeeds.]) ;; esac case "$gl_cv_func_getcwd_path_max" in *"no, but it is partly working") AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1], [Define to 1 if getcwd works, except it sometimes fails when it shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.]) ;; *"yes, but with shorter paths") AC_DEFINE([HAVE_GETCWD_SHORTER], [1], [Define to 1 if getcwd works, but with shorter paths than is generally tested with the replacement.]) ;; esac if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \ || test $gl_cv_func_getcwd_posix_signature != yes \ || { case "$gl_cv_func_getcwd_path_max" in *yes*) false;; *) true;; esac; } \ || test $gl_abort_bug = yes; then REPLACE_GETCWD=1 fi ]) # Prerequisites of lib/getcwd.c, when full replacement is in effect. AC_DEFUN([gl_PREREQ_GETCWD], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO]) : ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/getdtablesize.m4���������������������������������������������������������������������0000644�0000000�0000000�00000005045�14374751113�012764� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getdtablesize.m4 serial 8 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_GETDTABLESIZE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([getdtablesize]) AC_CHECK_DECLS_ONCE([getdtablesize]) if test $ac_cv_func_getdtablesize = yes && test $ac_cv_have_decl_getdtablesize = yes; then AC_CACHE_CHECK([whether getdtablesize works], [gl_cv_func_getdtablesize_works], [dnl There are two concepts: the "maximum possible file descriptor value + 1" dnl and the "maximum number of open file descriptors in a process". dnl Per SUSv2 and POSIX, getdtablesize() should return the first one. dnl On most platforms, the first and the second concept are the same. dnl On OpenVMS, however, they are different and getdtablesize() returns dnl the second one; thus the test below fails. But we don't care dnl because there's no good way to write a replacement getdtablesize(). case "$host_os" in vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; *) dnl Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft dnl limit up to an unchangeable hard limit; all other platforms dnl correctly require setrlimit before getdtablesize() can report dnl a larger value. AC_RUN_IFELSE([ AC_LANG_PROGRAM( [[#include <unistd.h>] GL_MDA_DEFINES ], [[int size = getdtablesize(); if (dup2 (0, getdtablesize()) != -1) return 1; if (size != getdtablesize()) return 2; ]])], [gl_cv_func_getdtablesize_works=yes], [gl_cv_func_getdtablesize_works=no], [case "$host_os" in cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows gl_cv_func_getdtablesize_works="guessing no" ;; *) gl_cv_func_getdtablesize_works="guessing yes" ;; esac ]) ;; esac ]) case "$gl_cv_func_getdtablesize_works" in *yes | "no (limitation)") ;; *) REPLACE_GETDTABLESIZE=1 ;; esac else HAVE_GETDTABLESIZE=0 fi ]) # Prerequisites of lib/getdtablesize.c. AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/gethostname.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000006643�14374751113�012461� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# gethostname.m4 serial 15 dnl Copyright (C) 2002, 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Ensure # - the gethostname() function, # - the HOST_NAME_MAX macro in <limits.h>. AC_DEFUN([gl_FUNC_GETHOSTNAME], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_PREREQ_SYS_H_WINSOCK2 dnl Where is gethostname() defined? dnl - On native Windows, it is in ws2_32.dll. dnl - Otherwise it is in libc. GETHOSTNAME_LIB= AC_CHECK_FUNCS([gethostname], , [ AC_CACHE_CHECK([for gethostname in winsock2.h and -lws2_32], [gl_cv_w32_gethostname], [gl_cv_w32_gethostname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_WINSOCK2_H #include <winsock2.h> #endif #include <stddef.h> ]], [[gethostname(NULL, 0);]])], [gl_cv_w32_gethostname=yes]) LIBS="$gl_save_LIBS" ]) if test "$gl_cv_w32_gethostname" = "yes"; then GETHOSTNAME_LIB="-lws2_32" fi ]) AC_SUBST([GETHOSTNAME_LIB]) if test "$ac_cv_func_gethostname" = no; then HAVE_GETHOSTNAME=0 fi gl_PREREQ_HOST_NAME_MAX ]) # Provide HOST_NAME_MAX when <limits.h> lacks it. AC_DEFUN([gl_PREREQ_HOST_NAME_MAX], [ dnl - On most Unix systems, use MAXHOSTNAMELEN from <sys/param.h> instead. dnl - On Solaris, Cygwin, BeOS, use MAXHOSTNAMELEN from <netdb.h> instead. dnl - On mingw, use 256, because dnl <https://docs.microsoft.com/en-us/windows/desktop/api/winsock/nf-winsock-gethostname> says: dnl "if a buffer of 256 bytes is passed in the name parameter and dnl the namelen parameter is set to 256, the buffer size will always dnl be adequate." dnl With this, there is no need to use sysconf (_SC_HOST_NAME_MAX), which dnl is not a compile-time constant. dnl We cannot override <limits.h> using the usual technique, because dnl gl_CHECK_NEXT_HEADERS does not work for <limits.h>. Therefore retrieve dnl the value of HOST_NAME_MAX at configure time. AC_CHECK_HEADERS_ONCE([sys/param.h]) AC_CHECK_HEADERS_ONCE([sys/socket.h]) AC_CHECK_HEADERS_ONCE([netdb.h]) AC_CACHE_CHECK([for HOST_NAME_MAX], [gl_cv_decl_HOST_NAME_MAX], [ gl_cv_decl_HOST_NAME_MAX= AC_EGREP_CPP([lucky], [ #include <limits.h> #ifdef HOST_NAME_MAX lucky #endif ], [gl_cv_decl_HOST_NAME_MAX=yes]) if test -z "$gl_cv_decl_HOST_NAME_MAX"; then dnl It's not defined in <limits.h>. Substitute it. if test "$gl_cv_w32_gethostname" = yes; then dnl mingw. gl_cv_decl_HOST_NAME_MAX=256 else AC_COMPUTE_INT([gl_cv_decl_HOST_NAME_MAX], [MAXHOSTNAMELEN], [ #include <sys/types.h> #if HAVE_SYS_PARAM_H # include <sys/param.h> #endif #if HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif #if HAVE_NETDB_H # include <netdb.h> #endif ], [dnl The system does not define MAXHOSTNAMELEN in any of the common dnl headers. Use a safe fallback. gl_cv_decl_HOST_NAME_MAX=256 ]) fi fi ]) if test "$gl_cv_decl_HOST_NAME_MAX" != yes; then AC_DEFINE_UNQUOTED([HOST_NAME_MAX], [$gl_cv_decl_HOST_NAME_MAX], [Define HOST_NAME_MAX when <limits.h> does not define it.]) fi ]) # Prerequisites of lib/gethostname.c. AC_DEFUN([gl_PREREQ_GETHOSTNAME], [ if test "$gl_cv_w32_gethostname" != "yes"; then AC_CHECK_FUNCS([uname]) fi ]) ���������������������������������������������������������������������������������������������a2ps-4.15.5/m4/getprogname.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000003240�14374751113�012441� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getprogname.m4 - check for getprogname or replacements for it # Copyright (C) 2016-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 7 AC_DEFUN([gl_FUNC_GETPROGNAME], [ gl_CHECK_FUNCS_ANDROID([getprogname], [[#include <stdlib.h>]]) if test $ac_cv_func_getprogname = no; then HAVE_GETPROGNAME=0 case "$gl_cv_onwards_func_getprogname" in future*) REPLACE_GETPROGNAME=1 ;; esac fi ]) AC_DEFUN([gl_PREREQ_GETPROGNAME], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([getexecname]) ac_found=0 AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [], [#include <errno.h>]) AC_CHECK_DECLS([program_invocation_short_name], [ac_found=1], [], [#include <errno.h>]) AC_CHECK_DECLS([__argv], [ac_found=1], [], [#include <stdlib.h>]) # Incur the cost of this test only if none of the above worked. if test $ac_found = 0; then # On OpenBSD 5.1, using the global __progname variable appears to be # the only way to implement getprogname. AC_CACHE_CHECK([whether __progname is defined in default libraries], [gl_cv_var___progname], [ gl_cv_var___progname= AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern char *__progname;]], [[return *__progname;]] )], [gl_cv_var___progname=yes] ) ] ) if test "$gl_cv_var___progname" = yes; then AC_DEFINE([HAVE_VAR___PROGNAME], 1, [Define if you have a global __progname variable]) fi fi ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/gettext.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000034230�14415562264�011623� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# gettext.m4 serial 71 (gettext-0.20.2) dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL must be one of 'external', 'use-libtool'. dnl INTLSYMBOL should be 'external' for packages other than GNU gettext, and dnl 'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value '$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. ])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], [no], [yes])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH([included-gettext], [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> #ifndef __GNU_GETTEXT_SUPPORTED_REVISION extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) #else #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 #endif $gt_revision_test_code ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ]])], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> #ifndef __GNU_GETTEXT_SUPPORTED_REVISION extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) #else #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 #endif $gt_revision_test_code ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ]])], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> #ifndef __GNU_GETTEXT_SUPPORTED_REVISION extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); #define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) #else #define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 #endif $gt_revision_test_code ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION ]])], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE([HAVE_GETTEXT], [1], [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE([HAVE_DCGETTEXT], [1], [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes' dnl because some of the testsuite requires it. BUILD_INCLUDED_LIBINTL=yes dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST([INTLLIBS]) dnl Make all documented variables known to autoconf. AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_SUBST([POSUB]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/gnulib-cache.m4����������������������������������������������������������������������0000644�0000000�0000000�00000005021�14424520540�012443� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2002-2023 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the specification of how gnulib-tool is used. # It acts as a cache: It is written and read by gnulib-tool. # In projects that use version control, this file is meant to be put under # version control, like the configure.ac and various Makefile.am files. # Specification in the form of a command-line invocation: # gnulib-tool --import --local-dir=gl --local-dir=gl-mod/bootstrap \ # --lib=libgnu \ # --source-base=lib \ # --m4-base=m4 \ # --po-base=po-gnulib \ # --doc-base=doc \ # --tests-base=tests \ # --aux-dir=build-aux \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --po-domain=a2ps \ # argmatch \ # backupfile \ # bootstrap \ # dirname \ # filenamecat \ # gettext-h \ # havelib \ # isdir \ # maintainer-makefile \ # manywarnings \ # mempcpy \ # obstack \ # readme-release \ # sig2str \ # stpncpy \ # strchrnul \ # strverscmp \ # version-etc-fsf \ # xalloc \ # xgethostname \ # xstrndup \ # xstrtol # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([gl:gl-mod/bootstrap]) gl_MODULES([ argmatch backupfile bootstrap dirname filenamecat gettext-h havelib isdir maintainer-makefile manywarnings mempcpy obstack readme-release sig2str stpncpy strchrnul strverscmp version-etc-fsf xalloc xgethostname xstrndup xstrtol ]) gl_AVOID([]) gl_SOURCE_BASE([lib]) gl_M4_BASE([m4]) gl_PO_BASE([po-gnulib]) gl_DOC_BASE([doc]) gl_TESTS_BASE([tests]) gl_LIB([libgnu]) gl_MAKEFILE_NAME([]) gl_LIBTOOL gl_MACRO_PREFIX([gl]) gl_PO_DOMAIN([a2ps]) gl_WITNESS_C_MACRO([]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/gnulib-common.m4���������������������������������������������������������������������0000644�0000000�0000000�00000150541�14374751113�012706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# gnulib-common.m4 serial 82 dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.62]) # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ dnl Use AC_REQUIRE here, so that the code is expanded once only. AC_REQUIRE([gl_00GNULIB]) AC_REQUIRE([gl_COMMON_BODY]) AC_REQUIRE([gl_ZZGNULIB]) ]) AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_GL_GNUC_PREREQ], [/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ #if defined __GNUC__ && defined __GNUC_MINOR__ # define _GL_GNUC_PREREQ(major, minor) \ ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) #else # define _GL_GNUC_PREREQ(major, minor) 0 #endif ]) AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of C11. */ #ifndef _Noreturn # if (defined __cplusplus \ && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ || (defined _MSC_VER && 1900 <= _MSC_VER)) \ && 0) /* [[noreturn]] is not practically usable, because with it the syntax extern _Noreturn void func (...); would not be valid; such a declaration would only be valid with 'extern' and '_Noreturn' swapped, or without the 'extern' keyword. However, some AIX system header files and several gnulib header files use precisely this syntax with 'extern'. */ # define _Noreturn [[noreturn]] # elif (defined __clang__ && __clang_major__ < 16 \ && defined _GL_WORK_AROUND_LLVM_BUG_59792) /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around that rare LLVM bug, though you may get many false-alarm warnings. */ # define _Noreturn # elif ((!defined __cplusplus || defined __clang__) \ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ || (!defined __STRICT_ANSI__ \ && (_GL_GNUC_PREREQ (4, 7) \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 3 < __clang_major__ + (5 <= __clang_minor__)))))) /* _Noreturn works as-is. */ # elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif ]) AH_VERBATIM([isoc99_inline], [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif]) AH_VERBATIM([attribute], [/* Attributes. */ #if (defined __has_attribute \ && (!defined __clang_minor__ \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 5 <= __clang_major__))) # define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) #else # define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr # define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) # define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) # define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_diagnose_if 0 # define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) # define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) # define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) # define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) # ifdef _ICC # define _GL_ATTR_may_alias 0 # else # define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) # endif # define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) # define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) # define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) # define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) # define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) # define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) # define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) #endif /* Disable GCC -Wpedantic if using __has_c_attribute and this is not C23+. */ #if (defined __has_c_attribute && _GL_GNUC_PREREQ (4, 6) \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710) # pragma GCC diagnostic ignored "-Wpedantic" #endif ]dnl There is no _GL_ATTRIBUTE_ALIGNED; use stdalign's alignas instead. [ /* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function is the size of the returned memory block. _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied by the Nth argument of the function is the size of the returned memory block. */ /* Applies to: function, pointer to function, function types. */ #ifndef _GL_ATTRIBUTE_ALLOC_SIZE # if _GL_HAS_ATTRIBUTE (alloc_size) # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) # else # define _GL_ATTRIBUTE_ALLOC_SIZE(args) # endif #endif /* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the function and report an error if it cannot do so. */ /* Applies to: function. */ #ifndef _GL_ATTRIBUTE_ALWAYS_INLINE # if _GL_HAS_ATTRIBUTE (always_inline) # define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) # else # define _GL_ATTRIBUTE_ALWAYS_INLINE # endif #endif /* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show in stack traces when debugging. The compiler should omit the function from stack traces. */ /* Applies to: function. */ #ifndef _GL_ATTRIBUTE_ARTIFICIAL # if _GL_HAS_ATTRIBUTE (artificial) # define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) # else # define _GL_ATTRIBUTE_ARTIFICIAL # endif #endif /* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ /* Applies to: functions. */ /* Avoid __attribute__ ((cold)) on MinGW; see thread starting at <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>. Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ #ifndef _GL_ATTRIBUTE_COLD # if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ # ifndef __SUNPRO_C # define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) # else # define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) # endif # else # define _GL_ATTRIBUTE_COLD # endif #endif /* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate calls to the function with the same arguments. This attribute is safe for a function that neither depends on nor affects observable state, and always returns exactly once - e.g., does not loop forever, and does not call longjmp. (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_CONST # if _GL_HAS_ATTRIBUTE (const) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) # else # define _GL_ATTRIBUTE_CONST # endif #endif /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers that can be freed by passing them as the Ith argument to the function F. _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that can be freed via 'free'; it can be used only after declaring 'free'. */ /* Applies to: functions. Cannot be used on inline functions. */ #ifndef _GL_ATTRIBUTE_DEALLOC # if _GL_GNUC_PREREQ (11, 0) # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) # else # define _GL_ATTRIBUTE_DEALLOC(f, i) # endif #endif /* If gnulib's <string.h> or <wchar.h> has already defined this macro, continue to use this earlier definition, since <stdlib.h> may not have been included yet. */ #ifndef _GL_ATTRIBUTE_DEALLOC_FREE # if defined __cplusplus && defined __GNUC__ && !defined __clang__ /* Work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108231> */ # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) # else # define _GL_ATTRIBUTE_DEALLOC_FREE \ _GL_ATTRIBUTE_DEALLOC (free, 1) # endif #endif /* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. The compiler may warn if the entity is used. */ /* Applies to: - function, variable, - struct, union, struct/union member, - enumeration, enumeration item, - typedef, in C++ also: namespace, class, template specialization. */ #ifndef _GL_ATTRIBUTE_DEPRECATED # ifdef __has_c_attribute # if __has_c_attribute (__deprecated__) # define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] # endif # endif # if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated) # define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) # endif # ifndef _GL_ATTRIBUTE_DEPRECATED # define _GL_ATTRIBUTE_DEPRECATED # endif #endif /* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and the function call is not optimized away. _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and the function call is not optimized away. */ /* Applies to: functions. */ #if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING) # if _GL_HAS_ATTRIBUTE (error) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) # elif _GL_HAS_ATTRIBUTE (diagnose_if) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) # else # define _GL_ATTRIBUTE_ERROR(msg) # define _GL_ATTRIBUTE_WARNING(msg) # endif #endif /* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain visible to debuggers etc., even with '-fwhole-program'. */ /* Applies to: functions, variables. */ #ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE # if _GL_HAS_ATTRIBUTE (externally_visible) # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) # else # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE # endif #endif /* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if the control flow falls through to the immediately following 'case' or 'default' label. The compiler should not warn in this case. */ /* Applies to: Empty statement (;), inside a 'switch' statement. */ /* Always expands to something. */ #ifndef _GL_ATTRIBUTE_FALLTHROUGH # ifdef __has_c_attribute # if __has_c_attribute (__fallthrough__) # define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] # endif # endif # if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough) # define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) # endif # ifndef _GL_ATTRIBUTE_FALLTHROUGH # define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) # endif #endif /* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) declares that the STRING-INDEXth function argument is a format string of style ARCHETYPE, which is one of: printf, gnu_printf scanf, gnu_scanf, strftime, gnu_strftime, strfmon, or the same thing prefixed and suffixed with '__'. If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK are suitable for the format string. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_FORMAT # if _GL_HAS_ATTRIBUTE (format) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) # else # define _GL_ATTRIBUTE_FORMAT(spec) # endif #endif /* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other compilation unit, it executes code from that unit only by return or by exception handling. This declaration lets the compiler optimize that unit more aggressively. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_LEAF # if _GL_HAS_ATTRIBUTE (leaf) # define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) # else # define _GL_ATTRIBUTE_LEAF # endif #endif /* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly allocated memory. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_MALLOC # if _GL_HAS_ATTRIBUTE (malloc) # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) # else # define _GL_ATTRIBUTE_MALLOC # endif #endif /* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the same storage as pointers to other types. Thus this declaration disables strict aliasing optimization. */ /* Applies to: types. */ /* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ #ifndef _GL_ATTRIBUTE_MAY_ALIAS # if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C # define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) # else # define _GL_ATTRIBUTE_MAY_ALIAS # endif #endif /* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if the entity is not used. The compiler should not warn if the entity is not used. */ /* Applies to: - function, variable, - struct, union, struct/union member, - enumeration, enumeration item, - typedef, in C++ also: class. */ /* In C++ and C23, this is spelled [[__maybe_unused__]]. GCC's syntax is __attribute__ ((__unused__)). clang supports both syntaxes. Except that with clang ≥ 6, < 10, in C++ mode, __has_c_attribute (__maybe_unused__) yields true but the use of [[__maybe_unused__]] nevertheless produces a warning. */ #ifndef _GL_ATTRIBUTE_MAYBE_UNUSED # if defined __clang__ && defined __cplusplus # if !defined __apple_build_version__ && __clang_major__ >= 10 # define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] # endif # elif defined __has_c_attribute # if __has_c_attribute (__maybe_unused__) # define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] # endif # endif # ifndef _GL_ATTRIBUTE_MAYBE_UNUSED # define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED # endif #endif /* Alternative spelling of this macro, for convenience and for compatibility with glibc/include/libc-symbols.h. */ #define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED /* Earlier spellings of this macro. */ #define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED /* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not discard the return value. The compiler may warn if the caller does not use the return value, unless the caller uses something like ignore_value. */ /* Applies to: function, enumeration, class. */ #ifndef _GL_ATTRIBUTE_NODISCARD # if defined __clang__ && defined __cplusplus /* With clang up to 15.0.6 (at least), in C++ mode, [[__nodiscard__]] produces a warning. The 1000 below means a yet unknown threshold. When clang++ version X starts supporting [[__nodiscard__]] without warning about it, you can replace the 1000 with X. */ # if __clang_major__ >= 1000 # define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] # endif # elif defined __has_c_attribute # if __has_c_attribute (__nodiscard__) # define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] # endif # endif # if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result) # define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) # endif # ifndef _GL_ATTRIBUTE_NODISCARD # define _GL_ATTRIBUTE_NODISCARD # endif #endif /* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the function. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_NOINLINE # if _GL_HAS_ATTRIBUTE (noinline) # define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) # else # define _GL_ATTRIBUTE_NOINLINE # endif #endif /* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... must not be NULL. _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be null. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_NONNULL # if _GL_HAS_ATTRIBUTE (nonnull) # define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) # else # define _GL_ATTRIBUTE_NONNULL(args) # endif #endif /* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is not meant to be NUL-terminated. */ /* Applies to: struct/union members and variables that are arrays of element type '[[un]signed] char'. */ #ifndef _GL_ATTRIBUTE_NONSTRING # if _GL_HAS_ATTRIBUTE (nonstring) # define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) # else # define _GL_ATTRIBUTE_NONSTRING # endif #endif /* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ /* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_NOTHROW # if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus # define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) # else # define _GL_ATTRIBUTE_NOTHROW # endif #endif /* _GL_ATTRIBUTE_PACKED declares: For struct members: The member has the smallest possible alignment. For struct, union, class: All members have the smallest possible alignment, minimizing the memory required. */ /* Applies to: struct members, struct, union, in C++ also: class. */ #ifndef _GL_ATTRIBUTE_PACKED # if _GL_HAS_ATTRIBUTE (packed) # define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) # else # define _GL_ATTRIBUTE_PACKED # endif #endif /* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate calls to the function with the same arguments if observable state is not changed between calls. This attribute is safe for a function that does not affect observable state, and always returns exactly once. (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_PURE # if _GL_HAS_ATTRIBUTE (pure) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE # endif #endif /* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is a non-NULL pointer. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_RETURNS_NONNULL # if _GL_HAS_ATTRIBUTE (returns_nonnull) # define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) # else # define _GL_ATTRIBUTE_RETURNS_NONNULL # endif #endif /* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a trailing NULL argument. _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ /* Applies to: functions. */ #ifndef _GL_ATTRIBUTE_SENTINEL # if _GL_HAS_ATTRIBUTE (sentinel) # define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) # else # define _GL_ATTRIBUTE_SENTINEL(pos) # endif #endif /* A helper macro. Don't use it directly. */ #ifndef _GL_ATTRIBUTE_UNUSED # if _GL_HAS_ATTRIBUTE (unused) # define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define _GL_ATTRIBUTE_UNUSED # endif #endif ]dnl There is no _GL_ATTRIBUTE_VISIBILITY; see m4/visibility.m4 instead. [ /* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the immediately preceding label is not used. The compiler should not warn if the label is not used. */ /* Applies to: label (both in C and C++). */ /* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' syntax. But clang does. */ #ifndef _GL_UNUSED_LABEL # if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ # define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED # else # define _GL_UNUSED_LABEL # endif #endif ]) AH_VERBATIM([async_safe], [/* The _GL_ASYNC_SAFE marker should be attached to functions that are signal handlers (for signals other than SIGABRT, SIGPIPE) or can be invoked from such signal handlers. Such functions have some restrictions: * All functions that it calls should be marked _GL_ASYNC_SAFE as well, or should be listed as async-signal-safe in POSIX <https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04> section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in particular, are NOT async-signal-safe. * All memory locations (variables and struct fields) that these functions access must be marked 'volatile'. This holds for both read and write accesses. Otherwise the compiler might optimize away stores to and reads from such locations that occur in the program, depending on its data flow analysis. For example, when the program contains a loop that is intended to inspect a variable set from within a signal handler while (!signal_occurred) ; the compiler is allowed to transform this into an endless loop if the variable 'signal_occurred' is not declared 'volatile'. Additionally, recall that: * A signal handler should not modify errno (except if it is a handler for a fatal signal and ends by raising the same signal again, thus provoking the termination of the process). If it invokes a function that may clobber errno, it needs to save and restore the value of errno. */ #define _GL_ASYNC_SAFE ]) AH_VERBATIM([micro_optimizations], [/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where n1 and n2 are expressions without side effects, that evaluate to real numbers (excluding NaN). It returns 1 if n1 > n2 0 if n1 == n2 -1 if n1 < n2 The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional jump with nearly all GCC versions up to GCC 10. This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many GCC versions up to GCC 9. The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 avoids conditional jumps in all GCC versions >= 3.4. */ #define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) ]) dnl Hint which direction to take regarding cross-compilation guesses: dnl When a user installs a program on a platform they are not intimately dnl familiar with, --enable-cross-guesses=conservative is the appropriate dnl choice. It implements the "If we don't know, assume the worst" principle. dnl However, when an operating system developer (on a platform which is not dnl yet known to gnulib) builds packages for their platform, they want to dnl expose, not hide, possible platform bugs; in this case, dnl --enable-cross-guesses=risky is the appropriate choice. dnl Sets the variables dnl gl_cross_guess_normal (to be used when 'yes' is good and 'no' is bad), dnl gl_cross_guess_inverted (to be used when 'no' is good and 'yes' is bad). AC_ARG_ENABLE([cross-guesses], [AS_HELP_STRING([--enable-cross-guesses={conservative|risky}], [specify policy for cross-compilation guesses])], [if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then AC_MSG_WARN([invalid argument supplied to --enable-cross-guesses]) enableval=conservative fi gl_cross_guesses="$enableval"], [gl_cross_guesses=conservative]) if test $gl_cross_guesses = risky; then gl_cross_guess_normal="guessing yes" gl_cross_guess_inverted="guessing no" else gl_cross_guess_normal="guessing no" gl_cross_guess_inverted="guessing yes" fi dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not dnl to /dev/tty, so they can be redirected to log files. Such diagnostics dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N. LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ]) # gl_MODULE_INDICATOR_INIT_VARIABLE([variablename]) # gl_MODULE_INDICATOR_INIT_VARIABLE([variablename], [initialvalue]) # initializes the shell variable that indicates the presence of the given module # as a C preprocessor expression. AC_DEFUN([gl_MODULE_INDICATOR_INIT_VARIABLE], [ GL_MODULE_INDICATOR_PREFIX[]_[$1]=m4_if([$2], , [0], [$2]) AC_SUBST(GL_MODULE_INDICATOR_PREFIX[]_[$1]) ]) # gl_MODULE_INDICATOR_CONDITION # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present # or not. m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) # sets the shell variable that indicates the presence of the given module to # a C preprocessor expression that will evaluate to 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ gl_MODULE_INDICATOR_SET_VARIABLE_AUX( [GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable]) # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION. # The shell variable's value is a C preprocessor expression that evaluates # to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], [ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1], [ dnl Simplify the expression VALUE || 1 to 1. $1=1 ], [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1], [gl_MODULE_INDICATOR_CONDITION])]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition]) # modifies the shell variable to include the given condition. The shell # variable's value is a C preprocessor expression that evaluates to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], [ dnl Simplify the expression 1 || CONDITION to 1. if test "$[]$1" != 1; then dnl Simplify the expression 0 || CONDITION to CONDITION. if test "$[]$1" = 0; then $1=$2 else $1="($[]$1 || $2)" fi fi ]) # gl_MODULE_INDICATOR([modulename]) # defines a C macro indicating the presence of the given module # in a location where it can be used. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 0 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR], [ AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [gl_MODULE_INDICATOR_CONDITION], [Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module $1 shall be considered present.]) ]) # gl_MODULE_INDICATOR_FOR_TESTS([modulename]) # defines a C macro indicating the presence of the given module # in lib or tests. This is useful to determine whether the module # should be tested. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], [Define to 1 when the gnulib module $1 should be tested.]) ]) # gl_ASSERT_NO_GNULIB_POSIXCHECK # asserts that there will never be a need to #define GNULIB_POSIXCHECK. # and thereby enables an optimization of configure and config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [ dnl Override gl_WARN_ON_USE_PREPARE. dnl But hide this definition from 'aclocal'. AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], []) ]) # gl_ASSERT_NO_GNULIB_TESTS # asserts that there will be no gnulib tests in the scope of the configure.ac # and thereby enables an optimization of config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS], [ dnl Override gl_MODULE_INDICATOR_FOR_TESTS. AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], []) ]) # Test whether <features.h> exists. # Set HAVE_FEATURES_H. AC_DEFUN([gl_FEATURES_H], [ AC_CHECK_HEADERS_ONCE([features.h]) if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi AC_SUBST([HAVE_FEATURES_H]) ]) # gl_PROG_CC_C99 # Modifies the value of the shell variable CC in an attempt to make $CC # understand ISO C99 source code. AC_DEFUN([gl_PROG_CC_C99], [ dnl Just use AC_PROG_CC_C99. dnl When AC_PROG_CC_C99 and AC_PROG_CC_STDC are used together, the substituted dnl value of CC will contain the C99 enabling options twice. But this is only dnl a cosmetic problem. dnl With Autoconf >= 2.70, use AC_PROG_CC since it implies AC_PROG_CC_C99; dnl this avoids a "warning: The macro `AC_PROG_CC_C99' is obsolete." m4_version_prereq([2.70], [AC_REQUIRE([AC_PROG_CC])], [AC_REQUIRE([AC_PROG_CC_C99])]) ]) # gl_PROG_AR_RANLIB # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler. # The user can set the variables AR, ARFLAGS, RANLIB if he wants to override # the values. AC_DEFUN([gl_PROG_AR_RANLIB], [ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler dnl as "cc", and GCC as "gcc". They have different object file formats and dnl library formats. In particular, the GNU binutils programs ar and ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) dnl The '][' hides this use from 'aclocal'. AC_BEFORE([$0], [A][M_PROG_AR]) AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], [ AC_EGREP_CPP([Amsterdam], [ #ifdef __ACK__ Amsterdam #endif ], [gl_cv_c_amsterdam_compiler=yes], [gl_cv_c_amsterdam_compiler=no]) ]) dnl Don't compete with AM_PROG_AR's decision about AR/ARFLAGS if we are not dnl building with __ACK__. if test $gl_cv_c_amsterdam_compiler = yes; then if test -z "$AR"; then AR='cc -c.a' fi if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else dnl AM_PROG_AR was added in automake v1.11.2. AM_PROG_AR does not AC_SUBST dnl ARFLAGS variable (it is filed into Makefile.in directly by automake dnl script on-demand, if not specified by ./configure of course). dnl Don't AC_REQUIRE the AM_PROG_AR otherwise the code for __ACK__ above dnl will be ignored. Also, pay attention to call AM_PROG_AR in else block dnl because AM_PROG_AR is written so it could re-set AR variable even for dnl __ACK__. It may seem like its easier to avoid calling the macro here, dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good dnl default value and automake should usually know them). dnl dnl The '][' hides this use from 'aclocal'. m4_ifdef([A][M_PROG_AR], [A][M_PROG_AR], [:]) fi dnl In case the code above has not helped with setting AR/ARFLAGS, use dnl Automake-documented default values for AR and ARFLAGS, but prefer dnl ${host}-ar over ar (useful for cross-compiling). AC_CHECK_TOOL([AR], [ar], [ar]) if test -z "$ARFLAGS"; then ARFLAGS='cr' fi AC_SUBST([AR]) AC_SUBST([ARFLAGS]) if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else dnl Use the ranlib program if it is available. AC_PROG_RANLIB fi fi AC_SUBST([RANLIB]) ]) # AC_C_RESTRICT # This definition is copied from post-2.70 Autoconf and overrides the # AC_C_RESTRICT macro from autoconf 2.60..2.70. m4_version_prereq([2.70.1], [], [ AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html # Put 'restrict' last, because C++ lacks it. for ac_kw in __restrict__ __restrict _Restrict restrict; do AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[typedef int *int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ int bar (int ip[$ac_kw]) { return ip[0]; } ]], [[int s[1]; int *$ac_kw t = s; t[0] = 0; return foo (t) + bar (t); ]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done ]) AH_VERBATIM([restrict], [/* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported only directly. */ #undef restrict /* Work around a bug in older versions of Sun C++, which did not #define __restrict__ or support _Restrict or __restrict__ even though the corresponding Sun C compiler ended up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. This workaround can be removed once we assume Oracle Developer Studio 12.5 (2016) or later. */ #if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ # define _Restrict # define __restrict__ #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac ])# AC_C_RESTRICT ]) # gl_BIGENDIAN # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some # macros invoke AC_C_BIGENDIAN with arguments. AC_DEFUN([gl_BIGENDIAN], [ AC_C_BIGENDIAN ]) # A temporary file descriptor. # Must be less than 10, because dash 0.5.8 does not support redirections # with multi-digit file descriptors. m4_define([GL_TMP_FD], 9) # gl_SILENT(command) # executes command, but without the normal configure output. # This is useful when you want to invoke AC_CACHE_CHECK (or AC_CHECK_FUNC etc.) # inside another AC_CACHE_CHECK. AC_DEFUN([gl_SILENT], [ exec GL_TMP_FD>&AS_MESSAGE_FD AS_MESSAGE_FD>/dev/null $1 exec AS_MESSAGE_FD>&GL_TMP_FD GL_TMP_FD>&- ]) # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not # output a spurious "(cached)" mark in the midst of other configure output. # This macro should be used instead of AC_CACHE_VAL when it is not surrounded # by an AC_MSG_CHECKING/AC_MSG_RESULT pair. AC_DEFUN([gl_CACHE_VAL_SILENT], [ gl_SILENT([ AC_CACHE_VAL([$1], [$2]) ]) ]) # gl_CONDITIONAL(conditional, condition) # is like AM_CONDITIONAL(conditional, condition), except that it does not # produce an error # configure: error: conditional "..." was never defined. # Usually this means the macro was only invoked conditionally. # when only invoked conditionally. Instead, in that case, both the _TRUE # and the _FALSE case are disabled. AC_DEFUN([gl_CONDITIONAL], [ pushdef([AC_CONFIG_COMMANDS_PRE], [:])dnl AM_CONDITIONAL([$1], [$2]) popdef([AC_CONFIG_COMMANDS_PRE])dnl if test -z "${[$1]_TRUE}" && test -z "${[$1]_FALSE}"; then [$1]_TRUE='#' [$1]_FALSE='#' fi ]) # gl_CC_ALLOW_WARNINGS # sets and substitutes a variable GL_CFLAG_ALLOW_WARNINGS, to a $(CC) option # that reverts a preceding '-Werror' option, if available. # This is expected to be '-Wno-error' on gcc, clang (except clang/MSVC), xlclang # and empty otherwise. AC_DEFUN([gl_CC_ALLOW_WARNINGS], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for C compiler option to allow warnings], [gl_cv_cc_wallow], [rm -f conftest* echo 'int dummy;' > conftest.c AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err]) >/dev/null AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err]) >/dev/null dnl Test the number of error output lines, because AIX xlc accepts the dnl option '-Wno-error', just to produce a warning dnl "Option -Wno-error was incorrectly specified. The option will be ignored." dnl afterwards. if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then gl_cv_cc_wallow='-Wno-error' else gl_cv_cc_wallow=none fi rm -f conftest* ]) case "$gl_cv_cc_wallow" in none) GL_CFLAG_ALLOW_WARNINGS='' ;; *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; esac AC_SUBST([GL_CFLAG_ALLOW_WARNINGS]) ]) # gl_CXX_ALLOW_WARNINGS # sets and substitutes a variable GL_CXXFLAG_ALLOW_WARNINGS, to a $(CC) option # that reverts a preceding '-Werror' option, if available. AC_DEFUN([gl_CXX_ALLOW_WARNINGS], [ dnl Requires AC_PROG_CXX or gl_PROG_ANSI_CXX. if test -n "$CXX" && test "$CXX" != no; then AC_CACHE_CHECK([for C++ compiler option to allow warnings], [gl_cv_cxx_wallow], [rm -f conftest* echo 'int dummy;' > conftest.cc AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err]) >/dev/null AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err]) >/dev/null dnl Test the number of error output lines, because AIX xlC accepts the dnl option '-Wno-error', just to produce a warning dnl "Option -Wno-error was incorrectly specified. The option will be ignored." dnl afterwards. if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then gl_cv_cxx_wallow='-Wno-error' else gl_cv_cxx_wallow=none fi rm -f conftest* ]) case "$gl_cv_cxx_wallow" in none) GL_CXXFLAG_ALLOW_WARNINGS='' ;; *) GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;; esac else GL_CXXFLAG_ALLOW_WARNINGS='' fi AC_SUBST([GL_CXXFLAG_ALLOW_WARNINGS]) ]) # gl_CC_GNULIB_WARNINGS # sets and substitutes a variable GL_CFLAG_GNULIB_WARNINGS, to a $(CC) option # set that enables or disables warnings as suitable for the Gnulib coding style. AC_DEFUN([gl_CC_GNULIB_WARNINGS], [ AC_REQUIRE([gl_CC_ALLOW_WARNINGS]) dnl Assume that the compiler supports -Wno-* options only if it also supports dnl -Wno-error. GL_CFLAG_GNULIB_WARNINGS='' if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then dnl Enable these warning options: dnl dnl GCC clang dnl -Wno-cast-qual >= 3 >= 3.9 dnl -Wno-conversion >= 3 >= 3.9 dnl -Wno-float-conversion >= 4.9 >= 3.9 dnl -Wno-float-equal >= 3 >= 3.9 dnl -Wimplicit-fallthrough >= 7 >= 3.9 dnl -Wno-pedantic >= 4.8 >= 3.9 dnl -Wno-sign-compare >= 3 >= 3.9 dnl -Wno-sign-conversion >= 4.3 >= 3.9 dnl -Wno-type-limits >= 4.3 >= 3.9 dnl -Wno-undef >= 3 >= 3.9 dnl -Wno-unsuffixed-float-constants >= 4.5 dnl -Wno-unused-function >= 3 >= 3.9 dnl -Wno-unused-parameter >= 3 >= 3.9 dnl cat > conftest.c <<\EOF #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wno-cast-qual -Wno-conversion -Wno-float-equal -Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter #endif #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wno-float-conversion #endif #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wimplicit-fallthrough #endif #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wno-pedantic #endif #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) -Wno-sign-conversion -Wno-type-limits #endif #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4 -Wno-unsuffixed-float-constants #endif EOF gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out" if AC_TRY_EVAL([gl_command]); then gl_options=`grep -v '#' conftest.out` for word in $gl_options; do GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word" done fi rm -f conftest.c conftest.out fi AC_SUBST([GL_CFLAG_GNULIB_WARNINGS]) ]) dnl gl_CONDITIONAL_HEADER([foo.h]) dnl takes a shell variable GL_GENERATE_FOO_H (with value true or false) as input dnl and produces dnl - an AC_SUBSTed variable FOO_H that is either a file name or empty, based dnl on whether GL_GENERATE_FOO_H is true or false, dnl - an Automake conditional GL_GENERATE_FOO_H that evaluates to the value of dnl the shell variable GL_GENERATE_FOO_H. AC_DEFUN([gl_CONDITIONAL_HEADER], [ m4_pushdef([gl_header_name], AS_TR_SH(m4_toupper($1))) m4_pushdef([gl_generate_var], [GL_GENERATE_]AS_TR_SH(m4_toupper($1))) m4_pushdef([gl_generate_cond], [GL_GENERATE_]AS_TR_SH(m4_toupper($1))) case "$gl_generate_var" in false) gl_header_name='' ;; true) dnl It is OK to use a .h file in lib/ from within tests/, but not vice dnl versa. if test -z "$gl_header_name"; then gl_header_name="${gl_source_base_prefix}$1" fi ;; *) echo "*** gl_generate_var is not set correctly" 1>&2; exit 1 ;; esac AC_SUBST(gl_header_name) gl_CONDITIONAL(gl_generate_cond, [$gl_generate_var]) m4_popdef([gl_generate_cond]) m4_popdef([gl_generate_var]) m4_popdef([gl_header_name]) ]) dnl Preparations for gl_CHECK_FUNCS_MACOS. AC_DEFUN([gl_PREPARE_CHECK_FUNCS_MACOS], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_COMPILER_CLANG]) AC_CACHE_CHECK([for compiler option needed when checking for future declarations], [gl_cv_compiler_check_future_option], [case "$host_os" in dnl This is only needed on macOS. darwin*) if test $gl_cv_compiler_clang = yes; then dnl Test whether the compiler supports the option dnl '-Werror=unguarded-availability-new'. save_ac_compile="$ac_compile" ac_compile="$ac_compile -Werror=unguarded-availability-new" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])], [gl_cv_compiler_check_future_option='-Werror=unguarded-availability-new'], [gl_cv_compiler_check_future_option=none]) ac_compile="$save_ac_compile" else gl_cv_compiler_check_future_option=none fi ;; *) gl_cv_compiler_check_future_option=none ;; esac ]) ]) dnl Pieces of the expansion of dnl gl_CHECK_FUNCS_ANDROID dnl gl_CHECK_FUNCS_MACOS dnl gl_CHECK_FUNCS_ANDROID_MACOS AC_DEFUN([gl_CHECK_FUNCS_DEFAULT_CASE], [ *) AC_CHECK_FUNC([$1]) [gl_cv_onwards_func_][$1]=$[ac_cv_func_][$1] ;; ]) AC_DEFUN([gl_CHECK_FUNCS_CASE_FOR_ANDROID], [ linux*-android*) AC_CHECK_DECL([$1], , , [$2]) if test $[ac_cv_have_decl_][$1] = yes; then AC_CHECK_FUNC([[$1]]) if test $[ac_cv_func_][$1] = yes; then [gl_cv_onwards_func_][$1]=yes else dnl The function is declared but does not exist. This should not dnl happen normally. But anyway, we know that a future version dnl of Android will have the function. [gl_cv_onwards_func_][$1]='future OS version' fi else [gl_cv_onwards_func_][$1]='future OS version' fi ;; ]) AC_DEFUN([gl_CHECK_FUNCS_CASE_FOR_MACOS], [ darwin*) if test "x$gl_cv_compiler_check_future_option" != "xnone"; then dnl Use a compile test, not a link test. save_ac_compile="$ac_compile" ac_compile="$ac_compile $gl_cv_compiler_check_future_option" save_ac_compile_for_check_decl="$ac_compile_for_check_decl" ac_compile_for_check_decl="$ac_compile_for_check_decl $gl_cv_compiler_check_future_option" unset [ac_cv_have_decl_][$1] AC_CHECK_DECL([$1], , , [$2]) ac_compile="$save_ac_compile" ac_compile_for_check_decl="$save_ac_compile_for_check_decl" [ac_cv_func_][$1]="$[ac_cv_have_decl_][$1]" if test $[ac_cv_func_][$1] = yes; then [gl_cv_onwards_func_][$1]=yes else unset [ac_cv_have_decl_][$1] AC_CHECK_DECL([$1], , , [$2]) if test $[ac_cv_have_decl_][$1] = yes; then [gl_cv_onwards_func_][$1]='future OS version' else [gl_cv_onwards_func_][$1]=no fi fi else AC_CHECK_FUNC([$1]) [gl_cv_onwards_func_][$1]=$[ac_cv_func_][$1] fi ;; ]) AC_DEFUN([gl_CHECK_FUNCS_SET_RESULTS], [ case "$[gl_cv_onwards_func_][$1]" in future*) [ac_cv_func_][$1]=no ;; *) [ac_cv_func_][$1]=$[gl_cv_onwards_func_][$1] ;; esac if test $[ac_cv_func_][$1] = yes; then AC_DEFINE([HAVE_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz], [ABCDEFGHIJKLMNOPQRSTUVWXYZ]), [1], [Define to 1 if you have the `$1' function.]) fi ]) dnl gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]]) dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem dnl on Android. dnl dnl When code is compiled on Android, it is in the context of a certain dnl "Android API level", which indicates the minimum version of Android on dnl which the app can be installed. In other words, you don't compile for a dnl specific version of Android. You compile for all versions of Android, dnl onwards from the given API level. dnl Thus, the question "does the OS have the function func" has three possible dnl answers: dnl - yes, in all versions starting from the given API level, dnl - no, in no version, dnl - not in the given API level, but in a later version of Android. dnl dnl In detail, this works as follows: dnl If func was added to Android API level, say, 28, then the libc.so has the dnl symbol func always, whereas the header file <foo.h> declares func dnl conditionally: dnl #if __ANDROID_API__ >= 28 dnl ... func (...) __INTRODUCED_IN(28); dnl #endif dnl Thus, when compiling with "clang -target armv7a-unknown-linux-android28", dnl the function func is declared and exists in libc. dnl Whereas when compiling with "clang -target armv7a-unknown-linux-android27", dnl the function func is not declared but exists in libc. dnl dnl This macro sets two variables: dnl - gl_cv_onwards_func_<func> to yes / no / "future OS version" dnl - ac_cv_func_<func> to yes / no / no dnl The first variable allows to distinguish all three cases. dnl The second variable is set, so that an invocation dnl gl_CHECK_FUNCS_ANDROID([func], [[#include <foo.h>]]) dnl can be used as a drop-in replacement for dnl AC_CHECK_FUNCS([func]). AC_DEFUN([gl_CHECK_FUNCS_ANDROID], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([for [$1]], [[gl_cv_onwards_func_][$1]], [gl_SILENT([ case "$host_os" in gl_CHECK_FUNCS_CASE_FOR_ANDROID([$1], [$2]) gl_CHECK_FUNCS_DEFAULT_CASE([$1]) esac ]) ]) gl_CHECK_FUNCS_SET_RESULTS([$1]) ]) dnl gl_CHECK_FUNCS_MACOS([func], [[#include <foo.h>]]) dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem dnl on macOS. dnl dnl When code is compiled on macOS, it is in the context of a certain minimum dnl macOS version, that can be set through the option '-mmacosx-version-min='. dnl In other words, you don't compile for a specific version of macOS. You dnl compile for all versions of macOS, onwards from the given version. dnl Thus, the question "does the OS have the function func" has three possible dnl answers: dnl - yes, in all versions starting from the given version, dnl - no, in no version, dnl - not in the given version, but in a later version of macOS. dnl dnl In detail, this works as follows: dnl If func was added to, say, macOS version 13, then the libc has the dnl symbol func always, whereas the header file <foo.h> declares func dnl conditionally with a special availability attribute: dnl ... func (...) __attribute__((availability(macos,introduced=13.0))); dnl Thus, when compiling with "clang mmacosx-version-min=13", there is no dnl warning about the use of func, and the resulting binary dnl - runs fine on macOS 13, dnl - aborts with a dyld "Symbol not found" message on macOS 12. dnl Whereas, when compiling with "clang mmacosx-version-min=12", there is a dnl warning: 'func' is only available on macOS 13.0 or newer dnl [-Wunguarded-availability-new], dnl and the resulting binary dnl - runs fine on macOS 13, dnl - crashes with a SIGSEGV (signal 11) on macOS 12. dnl dnl This macro sets two variables: dnl - gl_cv_onwards_func_<func> to yes / no / "future OS version" dnl - ac_cv_func_<func> to yes / no / no dnl The first variable allows to distinguish all three cases. dnl The second variable is set, so that an invocation dnl gl_CHECK_FUNCS_MACOS([func], [[#include <foo.h>]]) dnl can be used as a drop-in replacement for dnl AC_CHECK_FUNCS([func]). AC_DEFUN([gl_CHECK_FUNCS_MACOS], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_PREPARE_CHECK_FUNCS_MACOS]) AC_CACHE_CHECK([for [$1]], [[gl_cv_onwards_func_][$1]], [gl_SILENT([ case "$host_os" in gl_CHECK_FUNCS_CASE_FOR_MACOS([$1], [$2]) gl_CHECK_FUNCS_DEFAULT_CASE([$1]) esac ]) ]) gl_CHECK_FUNCS_SET_RESULTS([$1]) ]) dnl gl_CHECK_FUNCS_ANDROID_MACOS([func], [[#include <foo.h>]]) dnl is like AC_CHECK_FUNCS([func]), taking into account a portability problem dnl on Android and on macOS. dnl It is the combination of gl_CHECK_FUNCS_ANDROID and gl_CHECK_FUNCS_MACOS. AC_DEFUN([gl_CHECK_FUNCS_ANDROID_MACOS], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_PREPARE_CHECK_FUNCS_MACOS]) AC_CACHE_CHECK([for [$1]], [[gl_cv_onwards_func_][$1]], [gl_SILENT([ case "$host_os" in gl_CHECK_FUNCS_CASE_FOR_ANDROID([$1], [$2]) gl_CHECK_FUNCS_CASE_FOR_MACOS([$1], [$2]) gl_CHECK_FUNCS_DEFAULT_CASE([$1]) esac ]) ]) gl_CHECK_FUNCS_SET_RESULTS([$1]) ]) dnl Expands to some code for use in .c programs that, on native Windows, defines dnl the Microsoft deprecated alias function names to the underscore-prefixed dnl actual function names. With this macro, these function names are available dnl without linking with '-loldnames' and without generating warnings. dnl Usage: Use it after all system header files are included. dnl #include <...> dnl #include <...> dnl ]GL_MDA_DEFINES[ dnl ... AC_DEFUN([GL_MDA_DEFINES],[ AC_REQUIRE([_GL_MDA_DEFINES]) [$gl_mda_defines] ]) AC_DEFUN([_GL_MDA_DEFINES], [gl_mda_defines=' #if defined _WIN32 && !defined __CYGWIN__ #define access _access #define chdir _chdir #define chmod _chmod #define close _close #define creat _creat #define dup _dup #define dup2 _dup2 #define ecvt _ecvt #define execl _execl #define execle _execle #define execlp _execlp #define execv _execv #define execve _execve #define execvp _execvp #define execvpe _execvpe #define fcloseall _fcloseall #define fcvt _fcvt #define fdopen _fdopen #define fileno _fileno #define gcvt _gcvt #define getcwd _getcwd #define getpid _getpid #define getw _getw #define isatty _isatty #define j0 _j0 #define j1 _j1 #define jn _jn #define lfind _lfind #define lsearch _lsearch #define lseek _lseek #define memccpy _memccpy #define mkdir _mkdir #define mktemp _mktemp #define open _open #define putenv _putenv #define putw _putw #define read _read #define rmdir _rmdir #define strdup _strdup #define swab _swab #define tempnam _tempnam #define tzset _tzset #define umask _umask #define unlink _unlink #define utime _utime #define wcsdup _wcsdup #define write _write #define y0 _y0 #define y1 _y1 #define yn _yn #endif ' ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/gnulib-comp.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000111645�14415562313�012354� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2023 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the compiled summary of the specification in # gnulib-cache.m4. It lists the computed macro invocations that need # to be invoked from configure.ac. # In projects that use version control, this file can be treated like # other built files. # This macro should be invoked from ./configure.ac, in the section # "Checks for programs", right after AC_PROG_CC, and certainly before # any checks for libraries, header files, types and library functions. AC_DEFUN([gl_EARLY], [ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable # Pre-early section. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_PROG_AR_RANLIB]) # Code from module absolute-header: # Code from module alignasof: # Code from module alignof: # Code from module alloca-opt: # Code from module announce-gen: # Code from module argmatch: # Code from module assert-h: # Code from module assure: # Code from module at-internal: # Code from module attribute: # Code from module backupfile: # Code from module basename-lgpl: # Code from module bootstrap: # Code from module builtin-expect: # Code from module c-ctype: # Code from module c-strcase: # Code from module c-strcaseeq: # Code from module c99: # Code from module calloc-gnu: # Code from module calloc-posix: # Code from module canonicalize-lgpl: # Code from module chdir: # Code from module chdir-long: # Code from module cloexec: # Code from module close: # Code from module closedir: # Code from module d-ino: # Code from module dirent: # Code from module dirfd: # Code from module dirname: # Code from module dirname-lgpl: # Code from module do-release-commit-and-tag: # Code from module double-slash-root: # Code from module dup: # Code from module dup2: # Code from module eloop-threshold: # Code from module errno: # Code from module error: # Code from module error-h: # Code from module exitfail: # Code from module extensions: # Code from module extern-inline: # Code from module extract-trace: # Code from module fchdir: # Code from module fcntl: # Code from module fcntl-h: # Code from module fcntl-safer: # Code from module fd-hook: # Code from module fd-safer-flag: # Code from module fdopendir: # Code from module filename: # Code from module filenamecat: # Code from module filenamecat-lgpl: # Code from module free-posix: # Code from module fstat: # Code from module fstatat: # Code from module funclib.sh: # Code from module gen-header: # Code from module gendocs: # Code from module getcwd-lgpl: # Code from module getdtablesize: # Code from module gethostname: # Code from module getprogname: # Code from module gettext-h: # Code from module glibc-internal/scratch_buffer: # Code from module gnu-web-doc-update: # Code from module gnumakefile: # Code from module gnupload: # Code from module hard-locale: # Code from module havelib: # Code from module ialloc: # Code from module idx: # Code from module include_next: # Code from module inline-source: # Code from module intprops: # Code from module inttypes-incomplete: # Code from module isdir: # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) # Code from module libc-config: # Code from module limits-h: # Code from module localcharset: # Code from module locale: # Code from module lstat: # Code from module maintainer-makefile: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module malloca: # Code from module manywarnings: # Code from module mbrtowc: # Code from module mbsinit: # Code from module memchr: # Code from module mempcpy: # Code from module memrchr: # Code from module minmax: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nocrash: # Code from module obstack: # Code from module open: # Code from module openat: # Code from module openat-die: # Code from module openat-h: # Code from module openat-safer: # Code from module opendir: # Code from module opendirat: # Code from module options-parser: # Code from module pathmax: # Code from module pipe-posix: # Code from module quote: # Code from module quotearg: # Code from module quotearg-simple: # Code from module rawmemchr: # Code from module readdir: # Code from module readlink: # Code from module readlinkat: # Code from module readme-release: # Code from module realloc-gnu: # Code from module realloc-posix: # Code from module reallocarray: # Code from module rename: # Code from module renameatu: # Code from module rmdir: # Code from module same-inode: # Code from module save-cwd: # Code from module setlocale-null: # Code from module sig2str: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/warn-on-use: # Code from module socketlib: # Code from module sockets: # Code from module socklen: # Code from module ssize_t: # Code from module stat: # Code from module stat-time: # Code from module std-gnu11: # Code from module stdarg: dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode dnl for the builtin va_copy to work. gl_PROG_CC_C99 arranges for this. gl_PROG_CC_C99 # Code from module stdbool: # Code from module stdckdint: # Code from module stddef: # Code from module stdint: # Code from module stdio: # Code from module stdlib: # Code from module stpncpy: # Code from module strchrnul: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: # Code from module strerror-override: # Code from module string: # Code from module strndup: # Code from module strnlen: # Code from module strverscmp: # Code from module sys_socket: # Code from module sys_stat: # Code from module sys_types: # Code from module sys_uio: # Code from module time: # Code from module unistd: # Code from module unistd-safer: # Code from module useless-if-before-free: # Code from module vararrays: # Code from module vc-list-files: # Code from module verify: # Code from module version-etc: # Code from module version-etc-fsf: # Code from module warnings: # Code from module wchar: # Code from module wctype-h: # Code from module xalloc: # Code from module xalloc-die: # Code from module xalloc-oversized: # Code from module xgethostname: # Code from module xstrndup: # Code from module xstrtol: ]) # This macro should be invoked from ./configure.ac, in the section # "Check for header files, types and library functions". AC_DEFUN([gl_INIT], [ AM_CONDITIONAL([GL_COND_LIBTOOL], [true]) gl_cond_libtool=true gl_m4_base='m4' m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) m4_pushdef([gl_LIBSOURCES_LIST], []) m4_pushdef([gl_LIBSOURCES_DIR], []) m4_pushdef([GL_MACRO_PREFIX], [gl]) m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) gl_COMMON gl_source_base='lib' gl_source_base_prefix= gl_ALIGNASOF gl_FUNC_ALLOCA gl_CONDITIONAL_HEADER([alloca.h]) AC_PROG_MKDIR_P gl_ASSERT_H gl_CONDITIONAL_HEADER([assert.h]) AC_PROG_MKDIR_P AC_REQUIRE([AC_CANONICAL_HOST]) gl_BACKUPFILE gl___BUILTIN_EXPECT gl_FUNC_CALLOC_GNU if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then AC_LIBOBJ([calloc]) fi gl_STDLIB_MODULE_INDICATOR([calloc-gnu]) gl_FUNC_CALLOC_POSIX if test $REPLACE_CALLOC_FOR_CALLOC_POSIX = 1; then AC_LIBOBJ([calloc]) fi gl_STDLIB_MODULE_INDICATOR([calloc-posix]) gl_CANONICALIZE_LGPL gl_CONDITIONAL([GL_COND_OBJ_CANONICALIZE_LGPL], [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1]) gl_MODULE_INDICATOR([canonicalize-lgpl]) gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name]) gl_STDLIB_MODULE_INDICATOR([realpath]) gl_UNISTD_MODULE_INDICATOR([chdir]) gl_FUNC_CHDIR_LONG gl_CONDITIONAL([GL_COND_OBJ_CHDIR_LONG], [test $gl_cv_have_unlimited_file_name_length = no]) AM_COND_IF([GL_COND_OBJ_CHDIR_LONG], [ gl_PREREQ_CHDIR_LONG ]) gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) gl_FUNC_CLOSE gl_CONDITIONAL([GL_COND_OBJ_CLOSE], [test $REPLACE_CLOSE = 1]) gl_UNISTD_MODULE_INDICATOR([close]) gl_FUNC_CLOSEDIR gl_CONDITIONAL([GL_COND_OBJ_CLOSEDIR], [test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1]) gl_DIRENT_MODULE_INDICATOR([closedir]) gl_CHECK_TYPE_STRUCT_DIRENT_D_INO gl_DIRENT_H gl_DIRENT_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_FUNC_DIRFD gl_CONDITIONAL([GL_COND_OBJ_DIRFD], [test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no || test $REPLACE_DIRFD = 1]) AM_COND_IF([GL_COND_OBJ_DIRFD], [ gl_PREREQ_DIRFD ]) gl_DIRENT_MODULE_INDICATOR([dirfd]) gl_MODULE_INDICATOR([dirname]) gl_DOUBLE_SLASH_ROOT gl_FUNC_DUP gl_CONDITIONAL([GL_COND_OBJ_DUP], [test $REPLACE_DUP = 1]) AM_COND_IF([GL_COND_OBJ_DUP], [ gl_PREREQ_DUP ]) gl_UNISTD_MODULE_INDICATOR([dup]) gl_FUNC_DUP2 gl_CONDITIONAL([GL_COND_OBJ_DUP2], [test $REPLACE_DUP2 = 1]) AM_COND_IF([GL_COND_OBJ_DUP2], [ gl_PREREQ_DUP2 ]) gl_UNISTD_MODULE_INDICATOR([dup2]) gl_HEADER_ERRNO_H gl_CONDITIONAL_HEADER([errno.h]) AC_PROG_MKDIR_P AC_REQUIRE([gl_ERROR_H]) gl_ERROR gl_CONDITIONAL([GL_COND_OBJ_ERROR], [test $GL_GENERATE_ERROR_H = true]) AM_COND_IF([GL_COND_OBJ_ERROR], [ gl_PREREQ_ERROR ]) m4_ifdef([AM_XGETTEXT_OPTION], [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) gl_ERROR_H gl_CONDITIONAL_HEADER([error.h]) AC_PROG_MKDIR_P AC_REQUIRE([gl_EXTERN_INLINE]) gl_FUNC_FCHDIR gl_CONDITIONAL([GL_COND_OBJ_FCHDIR], [test $HAVE_FCHDIR = 0]) AM_COND_IF([GL_COND_OBJ_FCHDIR], [ gl_PREREQ_FCHDIR ]) gl_UNISTD_MODULE_INDICATOR([fchdir]) gl_FUNC_FCNTL gl_CONDITIONAL([GL_COND_OBJ_FCNTL], [test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1]) gl_FCNTL_MODULE_INDICATOR([fcntl]) gl_FCNTL_H gl_FCNTL_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_FCNTL_SAFER gl_MODULE_INDICATOR([fcntl-safer]) gl_MODULE_INDICATOR([fd-safer-flag]) gl_FUNC_FDOPENDIR gl_CONDITIONAL([GL_COND_OBJ_FDOPENDIR], [test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1]) gl_DIRENT_MODULE_INDICATOR([fdopendir]) gl_MODULE_INDICATOR([fdopendir]) gl_FILE_NAME_CONCAT gl_MODULE_INDICATOR([filenamecat]) gl_FILE_NAME_CONCAT_LGPL gl_FUNC_FREE gl_CONDITIONAL([GL_COND_OBJ_FREE], [test $REPLACE_FREE = 1]) AM_COND_IF([GL_COND_OBJ_FREE], [ gl_PREREQ_FREE ]) gl_STDLIB_MODULE_INDICATOR([free-posix]) gl_FUNC_FSTAT gl_CONDITIONAL([GL_COND_OBJ_FSTAT], [test $REPLACE_FSTAT = 1]) AM_COND_IF([GL_COND_OBJ_FSTAT], [ case "$host_os" in mingw*) AC_LIBOBJ([stat-w32]) ;; esac gl_PREREQ_FSTAT ]) gl_SYS_STAT_MODULE_INDICATOR([fstat]) gl_FUNC_FSTATAT gl_CONDITIONAL([GL_COND_OBJ_FSTATAT], [test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1]) gl_SYS_STAT_MODULE_INDICATOR([fstatat]) gl_FUNC_GETCWD_LGPL gl_CONDITIONAL([GL_COND_OBJ_GETCWD_LGPL], [test $REPLACE_GETCWD = 1]) gl_UNISTD_MODULE_INDICATOR([getcwd]) gl_FUNC_GETDTABLESIZE gl_CONDITIONAL([GL_COND_OBJ_GETDTABLESIZE], [test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1]) AM_COND_IF([GL_COND_OBJ_GETDTABLESIZE], [ gl_PREREQ_GETDTABLESIZE ]) gl_UNISTD_MODULE_INDICATOR([getdtablesize]) gl_FUNC_GETHOSTNAME gl_CONDITIONAL([GL_COND_OBJ_GETHOSTNAME], [test $HAVE_GETHOSTNAME = 0]) AM_COND_IF([GL_COND_OBJ_GETHOSTNAME], [ gl_PREREQ_GETHOSTNAME ]) gl_UNISTD_MODULE_INDICATOR([gethostname]) gl_FUNC_GETPROGNAME gl_CONDITIONAL([GL_COND_OBJ_GETPROGNAME], [test $HAVE_GETPROGNAME = 0 || test $REPLACE_GETPROGNAME = 1]) AM_COND_IF([GL_COND_OBJ_GETPROGNAME], [ gl_PREREQ_GETPROGNAME ]) gl_STDLIB_MODULE_INDICATOR([getprogname]) AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_PROG_MKDIR_P # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile m4_if(m4_version_compare([2.61a.100], m4_defn([m4_PACKAGE_VERSION])), [1], [], [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [], [GNUmakefile=$GNUmakefile])]) AC_REQUIRE([gl_FUNC_SETLOCALE_NULL]) HARD_LOCALE_LIB="$SETLOCALE_NULL_LIB" AC_SUBST([HARD_LOCALE_LIB]) dnl For backward compatibility. LIB_HARD_LOCALE="$HARD_LOCALE_LIB" AC_SUBST([LIB_HARD_LOCALE]) AC_DEFUN([gl_HAVE_MODULE_HAVELIB]) gl_INTTYPES_INCOMPLETE gl_INTTYPES_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P AC_REQUIRE([gl_LARGEFILE]) gl___INLINE gl_LIMITS_H gl_CONDITIONAL_HEADER([limits.h]) AC_PROG_MKDIR_P gl_LOCALCHARSET dnl For backward compatibility. Some packages still use this. LOCALCHARSET_TESTS_ENVIRONMENT= AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) gl_LOCALE_H gl_LOCALE_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_FUNC_LSTAT gl_CONDITIONAL([GL_COND_OBJ_LSTAT], [test $REPLACE_LSTAT = 1]) AM_COND_IF([GL_COND_OBJ_LSTAT], [ gl_PREREQ_LSTAT ]) gl_SYS_STAT_MODULE_INDICATOR([lstat]) AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER], [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])]) AC_REQUIRE([AC_PROG_SED]) AC_REQUIRE([AC_PROG_GREP]) gl_FUNC_MALLOC_GNU if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1; then AC_LIBOBJ([malloc]) fi gl_STDLIB_MODULE_INDICATOR([malloc-gnu]) AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then AC_LIBOBJ([malloc]) fi gl_STDLIB_MODULE_INDICATOR([malloc-posix]) gl_MALLOCA gl_FUNC_MBRTOWC gl_CONDITIONAL([GL_COND_OBJ_MBRTOWC], [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1]) AM_COND_IF([GL_COND_OBJ_MBRTOWC], [ if test $REPLACE_MBSTATE_T = 1; then AC_LIBOBJ([lc-charset-dispatch]) AC_LIBOBJ([mbtowc-lock]) gl_PREREQ_MBTOWC_LOCK fi gl_PREREQ_MBRTOWC ]) gl_WCHAR_MODULE_INDICATOR([mbrtowc]) gl_FUNC_MBSINIT gl_CONDITIONAL([GL_COND_OBJ_MBSINIT], [test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1]) AM_COND_IF([GL_COND_OBJ_MBSINIT], [ gl_PREREQ_MBSINIT ]) gl_WCHAR_MODULE_INDICATOR([mbsinit]) gl_FUNC_MEMCHR gl_CONDITIONAL([GL_COND_OBJ_MEMCHR], [test $REPLACE_MEMCHR = 1]) AM_COND_IF([GL_COND_OBJ_MEMCHR], [ gl_PREREQ_MEMCHR ]) gl_STRING_MODULE_INDICATOR([memchr]) gl_FUNC_MEMPCPY gl_CONDITIONAL([GL_COND_OBJ_MEMPCPY], [test $HAVE_MEMPCPY = 0 || test $REPLACE_MEMPCPY = 1]) AM_COND_IF([GL_COND_OBJ_MEMPCPY], [ gl_PREREQ_MEMPCPY ]) gl_STRING_MODULE_INDICATOR([mempcpy]) gl_FUNC_MEMRCHR gl_CONDITIONAL([GL_COND_OBJ_MEMRCHR], [test $ac_cv_func_memrchr = no]) AM_COND_IF([GL_COND_OBJ_MEMRCHR], [ gl_PREREQ_MEMRCHR ]) gl_STRING_MODULE_INDICATOR([memrchr]) gl_MINMAX AC_REQUIRE([gl_MSVC_INVAL]) gl_CONDITIONAL([GL_COND_OBJ_MSVC_INVAL], [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1]) AC_REQUIRE([gl_MSVC_NOTHROW]) gl_CONDITIONAL([GL_COND_OBJ_MSVC_NOTHROW], [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1]) gl_MODULE_INDICATOR([msvc-nothrow]) gl_MULTIARCH gl_FUNC_OBSTACK gl_CONDITIONAL([GL_COND_OBJ_OBSTACK], [test "$gl_cv_func_obstack" != yes]) gl_FUNC_OPEN gl_CONDITIONAL([GL_COND_OBJ_OPEN], [test $REPLACE_OPEN = 1]) AM_COND_IF([GL_COND_OBJ_OPEN], [ gl_PREREQ_OPEN ]) gl_FCNTL_MODULE_INDICATOR([open]) gl_FUNC_OPENAT gl_CONDITIONAL([GL_COND_OBJ_OPENAT], [test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1]) AM_COND_IF([GL_COND_OBJ_OPENAT], [ gl_PREREQ_OPENAT ]) gl_MODULE_INDICATOR([openat]) dnl for lib/getcwd.c gl_FCNTL_MODULE_INDICATOR([openat]) gl_OPENAT_SAFER gl_MODULE_INDICATOR([openat-safer]) gl_FUNC_OPENDIR gl_CONDITIONAL([GL_COND_OBJ_OPENDIR], [test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1]) gl_DIRENT_MODULE_INDICATOR([opendir]) gl_PATHMAX gl_FUNC_PIPE gl_CONDITIONAL([GL_COND_OBJ_PIPE], [test $HAVE_PIPE = 0]) gl_UNISTD_MODULE_INDICATOR([pipe]) gl_QUOTE gl_QUOTEARG gl_FUNC_RAWMEMCHR gl_CONDITIONAL([GL_COND_OBJ_RAWMEMCHR], [test $HAVE_RAWMEMCHR = 0]) AM_COND_IF([GL_COND_OBJ_RAWMEMCHR], [ gl_PREREQ_RAWMEMCHR ]) gl_STRING_MODULE_INDICATOR([rawmemchr]) gl_FUNC_READDIR gl_CONDITIONAL([GL_COND_OBJ_READDIR], [test $HAVE_READDIR = 0]) gl_DIRENT_MODULE_INDICATOR([readdir]) gl_FUNC_READLINK gl_CONDITIONAL([GL_COND_OBJ_READLINK], [test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1]) AM_COND_IF([GL_COND_OBJ_READLINK], [ gl_PREREQ_READLINK ]) gl_UNISTD_MODULE_INDICATOR([readlink]) gl_FUNC_READLINKAT gl_CONDITIONAL([GL_COND_OBJ_READLINKAT], [test $HAVE_READLINKAT = 0 || test $REPLACE_READLINKAT = 1]) gl_UNISTD_MODULE_INDICATOR([readlinkat]) gl_FUNC_REALLOC_GNU if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then AC_LIBOBJ([realloc]) fi gl_STDLIB_MODULE_INDICATOR([realloc-gnu]) gl_FUNC_REALLOC_POSIX if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then AC_LIBOBJ([realloc]) fi gl_STDLIB_MODULE_INDICATOR([realloc-posix]) gl_FUNC_REALLOCARRAY gl_CONDITIONAL([GL_COND_OBJ_REALLOCARRAY], [test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1]) AM_COND_IF([GL_COND_OBJ_REALLOCARRAY], [ gl_PREREQ_REALLOCARRAY ]) gl_MODULE_INDICATOR([reallocarray]) gl_STDLIB_MODULE_INDICATOR([reallocarray]) gl_FUNC_RENAME gl_CONDITIONAL([GL_COND_OBJ_RENAME], [test $REPLACE_RENAME = 1]) gl_STDIO_MODULE_INDICATOR([rename]) gl_FUNC_RENAMEAT if test $HAVE_RENAMEAT = 0; then AC_LIBOBJ([at-func2]) fi gl_FUNC_RMDIR gl_CONDITIONAL([GL_COND_OBJ_RMDIR], [test $REPLACE_RMDIR = 1]) gl_UNISTD_MODULE_INDICATOR([rmdir]) gl_SAVE_CWD gl_FUNC_SETLOCALE_NULL gl_CONDITIONAL([GL_COND_OBJ_SETLOCALE_LOCK], [test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0]) AM_COND_IF([GL_COND_OBJ_SETLOCALE_LOCK], [ gl_PREREQ_SETLOCALE_LOCK ]) gl_LOCALE_MODULE_INDICATOR([setlocale_null]) gl_FUNC_SIG2STR gl_CONDITIONAL([GL_COND_OBJ_SIG2STR], [test $ac_cv_func_sig2str = no]) AM_COND_IF([GL_COND_OBJ_SIG2STR], [ gl_PREREQ_SIG2STR ]) AC_REQUIRE([gl_SOCKETLIB]) AC_REQUIRE([gl_SOCKETS]) gl_TYPE_SOCKLEN_T gt_TYPE_SSIZE_T gl_FUNC_STAT gl_CONDITIONAL([GL_COND_OBJ_STAT], [test $REPLACE_STAT = 1]) AM_COND_IF([GL_COND_OBJ_STAT], [ case "$host_os" in mingw*) AC_LIBOBJ([stat-w32]) ;; esac gl_PREREQ_STAT ]) gl_SYS_STAT_MODULE_INDICATOR([stat]) gl_STAT_TIME gl_STAT_BIRTHTIME gl_STDARG_H gl_CONDITIONAL_HEADER([stdarg.h]) AC_PROG_MKDIR_P gl_C_BOOL AC_CHECK_HEADERS_ONCE([stdckdint.h]) if test $ac_cv_header_stdckdint_h = yes; then GL_GENERATE_STDCKDINT_H=false else GL_GENERATE_STDCKDINT_H=true fi gl_CONDITIONAL_HEADER([stdckdint.h]) AC_PROG_MKDIR_P gl_STDDEF_H gl_STDDEF_H_REQUIRE_DEFAULTS gl_CONDITIONAL_HEADER([stddef.h]) AC_PROG_MKDIR_P gl_STDINT_H gl_CONDITIONAL_HEADER([stdint.h]) dnl Because of gl_REPLACE_LIMITS_H: gl_CONDITIONAL_HEADER([limits.h]) AC_PROG_MKDIR_P gl_STDIO_H gl_STDIO_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_CONDITIONAL([GL_COND_OBJ_STDIO_READ], [test $REPLACE_STDIO_READ_FUNCS = 1]) gl_CONDITIONAL([GL_COND_OBJ_STDIO_WRITE], [test $REPLACE_STDIO_WRITE_FUNCS = 1]) dnl No need to create extra modules for these functions. Everyone who uses dnl <stdio.h> likely needs them. gl_STDIO_MODULE_INDICATOR([fscanf]) gl_MODULE_INDICATOR([fscanf]) gl_STDIO_MODULE_INDICATOR([scanf]) gl_MODULE_INDICATOR([scanf]) gl_STDIO_MODULE_INDICATOR([fgetc]) gl_STDIO_MODULE_INDICATOR([getc]) gl_STDIO_MODULE_INDICATOR([getchar]) gl_STDIO_MODULE_INDICATOR([fgets]) gl_STDIO_MODULE_INDICATOR([fread]) dnl No need to create extra modules for these functions. Everyone who uses dnl <stdio.h> likely needs them. gl_STDIO_MODULE_INDICATOR([fprintf]) gl_STDIO_MODULE_INDICATOR([printf]) gl_STDIO_MODULE_INDICATOR([vfprintf]) gl_STDIO_MODULE_INDICATOR([vprintf]) gl_STDIO_MODULE_INDICATOR([fputc]) gl_STDIO_MODULE_INDICATOR([putc]) gl_STDIO_MODULE_INDICATOR([putchar]) gl_STDIO_MODULE_INDICATOR([fputs]) gl_STDIO_MODULE_INDICATOR([puts]) gl_STDIO_MODULE_INDICATOR([fwrite]) gl_STDLIB_H gl_STDLIB_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_FUNC_STPNCPY gl_CONDITIONAL([GL_COND_OBJ_STPNCPY], [test $HAVE_STPNCPY = 0 || test $REPLACE_STPNCPY = 1]) AM_COND_IF([GL_COND_OBJ_STPNCPY], [ gl_PREREQ_STPNCPY ]) gl_STRING_MODULE_INDICATOR([stpncpy]) gl_FUNC_STRCHRNUL gl_CONDITIONAL([GL_COND_OBJ_STRCHRNUL], [test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1]) AM_COND_IF([GL_COND_OBJ_STRCHRNUL], [ gl_PREREQ_STRCHRNUL ]) gl_STRING_MODULE_INDICATOR([strchrnul]) gl_FUNC_STRDUP_POSIX gl_CONDITIONAL([GL_COND_OBJ_STRDUP], [test $REPLACE_STRDUP = 1]) AM_COND_IF([GL_COND_OBJ_STRDUP], [ gl_PREREQ_STRDUP ]) gl_STRING_MODULE_INDICATOR([strdup]) gl_FUNC_STRERROR gl_CONDITIONAL([GL_COND_OBJ_STRERROR], [test $REPLACE_STRERROR = 1]) gl_MODULE_INDICATOR([strerror]) gl_STRING_MODULE_INDICATOR([strerror]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) gl_CONDITIONAL([GL_COND_OBJ_STRERROR_OVERRIDE], [test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1]) AM_COND_IF([GL_COND_OBJ_STRERROR_OVERRIDE], [ gl_PREREQ_SYS_H_WINSOCK2 ]) gl_STRING_H gl_STRING_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_FUNC_STRNDUP gl_CONDITIONAL([GL_COND_OBJ_STRNDUP], [test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1]) gl_STRING_MODULE_INDICATOR([strndup]) gl_FUNC_STRNLEN gl_CONDITIONAL([GL_COND_OBJ_STRNLEN], [test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1]) AM_COND_IF([GL_COND_OBJ_STRNLEN], [ gl_PREREQ_STRNLEN ]) gl_STRING_MODULE_INDICATOR([strnlen]) gl_FUNC_STRVERSCMP gl_CONDITIONAL([GL_COND_OBJ_STRVERSCMP], [test $HAVE_STRVERSCMP = 0]) AM_COND_IF([GL_COND_OBJ_STRVERSCMP], [ gl_PREREQ_STRVERSCMP ]) gl_STRING_MODULE_INDICATOR([strverscmp]) gl_SYS_SOCKET_H gl_SYS_SOCKET_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_SYS_STAT_H gl_SYS_STAT_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_SYS_TYPES_H gl_SYS_TYPES_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_SYS_UIO_H gl_SYS_UIO_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_TIME_H gl_TIME_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_UNISTD_H gl_UNISTD_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_UNISTD_SAFER AC_C_VARARRAYS gl_VERSION_ETC gl_WCHAR_H gl_WCHAR_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_WCTYPE_H gl_WCTYPE_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_XALLOC gl_MODULE_INDICATOR([xalloc]) gl_MODULE_INDICATOR([xalloc-die]) gl_XSTRNDUP gl_XSTRTOL # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || for gl_file in ]gl_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([GL_MODULE_INDICATOR_PREFIX]) m4_popdef([GL_MACRO_PREFIX]) m4_popdef([gl_LIBSOURCES_DIR]) m4_popdef([gl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gl_libobjs= gl_ltlibobjs= gl_libobjdeps= if test -n "$gl_LIBOBJS"; then # Remove the extension. changequote(,)dnl sed_drop_objext='s/\.o$//;s/\.obj$//' sed_dirname1='s,//*,/,g' sed_dirname2='s,\(.\)/$,\1,' sed_dirname3='s,^[^/]*$,.,' sed_dirname4='s,\(.\)/[^/]*$,\1,' sed_basename1='s,.*/,,' changequote([, ])dnl for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` i_base=`echo "$i" | sed -e "$sed_basename1"` gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Plo" done fi AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) AC_SUBST([gl_LIBOBJDEPS], [$gl_libobjdeps]) ]) gltests_libdeps= gltests_ltlibdeps= m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) m4_pushdef([gltests_LIBSOURCES_LIST], []) m4_pushdef([gltests_LIBSOURCES_DIR], []) m4_pushdef([GL_MACRO_PREFIX], [gltests]) m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) gl_COMMON gl_source_base='tests' gl_source_base_prefix= changequote(,)dnl gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl AC_SUBST([gltests_WITNESS]) gl_module_indicator_condition=$gltests_WITNESS m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) m4_popdef([gl_MODULE_INDICATOR_CONDITION]) m4_ifval(gltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ || for gl_file in ]gltests_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([GL_MODULE_INDICATOR_PREFIX]) m4_popdef([GL_MACRO_PREFIX]) m4_popdef([gltests_LIBSOURCES_DIR]) m4_popdef([gltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gltests_libobjs= gltests_ltlibobjs= gltests_libobjdeps= if test -n "$gltests_LIBOBJS"; then # Remove the extension. changequote(,)dnl sed_drop_objext='s/\.o$//;s/\.obj$//' sed_dirname1='s,//*,/,g' sed_dirname2='s,\(.\)/$,\1,' sed_dirname3='s,^[^/]*$,.,' sed_dirname4='s,\(.\)/[^/]*$,\1,' sed_basename1='s,.*/,,' changequote([, ])dnl for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` i_base=`echo "$i" | sed -e "$sed_basename1"` gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Plo" done fi AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) AC_SUBST([gltests_LIBOBJDEPS], [$gltests_libobjdeps]) ]) AC_REQUIRE([gl_CC_GNULIB_WARNINGS]) ]) # Like AC_LIBOBJ, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_LIBOBJ], [ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gl_LIBSOURCES_DIR], [lib]) m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_LIBOBJ], [ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gltests_LIBSOURCES_DIR], [tests]) m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ build-aux/announce-gen build-aux/bootstrap.in build-aux/config.rpath build-aux/do-release-commit-and-tag build-aux/extract-trace build-aux/funclib.sh build-aux/gendocs.sh build-aux/gnu-web-doc-update build-aux/gnupload build-aux/inline-source build-aux/options-parser build-aux/useless-if-before-free build-aux/vc-list-files doc/gendocs_template doc/gendocs_template_min lib/_Noreturn.h lib/alignof.h lib/alloca.in.h lib/arg-nonnull.h lib/argmatch.c lib/argmatch.h lib/assert.in.h lib/assure.h lib/at-func.c lib/at-func2.c lib/attribute.h lib/backup-find.c lib/backup-internal.h lib/backupfile.c lib/backupfile.h lib/basename-lgpl.c lib/basename-lgpl.h lib/basename.c lib/c++defs.h lib/c-ctype.c lib/c-ctype.h lib/c-strcase.h lib/c-strcasecmp.c lib/c-strcaseeq.h lib/c-strncasecmp.c lib/calloc.c lib/canonicalize-lgpl.c lib/cdefs.h lib/chdir-long.c lib/chdir-long.h lib/cloexec.c lib/cloexec.h lib/close.c lib/closedir.c lib/creat-safer.c lib/dirent-private.h lib/dirent.in.h lib/dirfd.c lib/dirname-lgpl.c lib/dirname.c lib/dirname.h lib/dup-safer-flag.c lib/dup-safer.c lib/dup.c lib/dup2.c lib/eloop-threshold.h lib/errno.in.h lib/error.c lib/error.in.h lib/exitfail.c lib/exitfail.h lib/fchdir.c lib/fcntl--.h lib/fcntl-safer.h lib/fcntl.c lib/fcntl.in.h lib/fd-hook.c lib/fd-hook.h lib/fd-safer-flag.c lib/fd-safer.c lib/fdopendir.c lib/filename.h lib/filenamecat-lgpl.c lib/filenamecat.c lib/filenamecat.h lib/free.c lib/fstat.c lib/fstatat.c lib/getcwd-lgpl.c lib/getdtablesize.c lib/gethostname.c lib/getprogname.c lib/getprogname.h lib/gettext.h lib/hard-locale.c lib/hard-locale.h lib/ialloc.c lib/ialloc.h lib/idx.h lib/intprops-internal.h lib/intprops.h lib/inttypes.in.h lib/isdir.c lib/isdir.h lib/lc-charset-dispatch.c lib/lc-charset-dispatch.h lib/libc-config.h lib/limits.in.h lib/localcharset.c lib/localcharset.h lib/locale.in.h lib/lstat.c lib/malloc.c lib/malloc/scratch_buffer.h lib/malloc/scratch_buffer_grow.c lib/malloc/scratch_buffer_grow_preserve.c lib/malloc/scratch_buffer_set_array_size.c lib/malloca.c lib/malloca.h lib/mbrtowc-impl-utf8.h lib/mbrtowc-impl.h lib/mbrtowc.c lib/mbsinit.c lib/mbtowc-lock.c lib/mbtowc-lock.h lib/memchr.c lib/memchr.valgrind lib/mempcpy.c lib/memrchr.c lib/minmax.h lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c lib/msvc-nothrow.h lib/obstack.c lib/obstack.h lib/open-safer.c lib/open.c lib/openat-die.c lib/openat-priv.h lib/openat-proc.c lib/openat-safer.c lib/openat.c lib/openat.h lib/opendir.c lib/opendirat.c lib/opendirat.h lib/pathmax.h lib/pipe-safer.c lib/pipe.c lib/quote.h lib/quotearg.c lib/quotearg.h lib/rawmemchr.c lib/rawmemchr.valgrind lib/readdir.c lib/readlink.c lib/readlinkat.c lib/realloc.c lib/reallocarray.c lib/rename.c lib/renameatu.c lib/renameatu.h lib/rmdir.c lib/same-inode.h lib/save-cwd.c lib/save-cwd.h lib/scratch_buffer.h lib/setlocale-lock.c lib/setlocale_null.c lib/setlocale_null.h lib/sig2str.c lib/sig2str.h lib/sockets.c lib/sockets.h lib/stat-time.c lib/stat-time.h lib/stat-w32.c lib/stat-w32.h lib/stat.c lib/stdarg.in.h lib/stdckdint.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio-read.c lib/stdio-write.c lib/stdio.in.h lib/stdlib.in.h lib/stpncpy.c lib/strchrnul.c lib/strchrnul.valgrind lib/strdup.c lib/streq.h lib/strerror-override.c lib/strerror-override.h lib/strerror.c lib/string.in.h lib/stripslash.c lib/strndup.c lib/strnlen.c lib/strverscmp.c lib/sys_socket.c lib/sys_socket.in.h lib/sys_stat.in.h lib/sys_types.in.h lib/sys_uio.in.h lib/time.in.h lib/unistd--.h lib/unistd-safer.h lib/unistd.c lib/unistd.in.h lib/verify.h lib/version-etc-fsf.c lib/version-etc.c lib/version-etc.h lib/w32sock.h lib/warn-on-use.h lib/wchar.in.h lib/wctype-h.c lib/wctype.in.h lib/windows-initguard.h lib/xalloc-die.c lib/xalloc-oversized.h lib/xalloc.h lib/xgetaname-impl.h lib/xgethostname.c lib/xgethostname.h lib/xmalloc.c lib/xstrndup.c lib/xstrndup.h lib/xstrtol.c lib/xstrtol.h lib/xstrtoul.c m4/00gnulib.m4 m4/__inline.m4 m4/absolute-header.m4 m4/alloca.m4 m4/assert_h.m4 m4/backupfile.m4 m4/builtin-expect.m4 m4/c-bool.m4 m4/calloc.m4 m4/canonicalize.m4 m4/chdir-long.m4 m4/close.m4 m4/closedir.m4 m4/codeset.m4 m4/d-ino.m4 m4/dirent_h.m4 m4/dirfd.m4 m4/double-slash-root.m4 m4/dup.m4 m4/dup2.m4 m4/eealloc.m4 m4/errno_h.m4 m4/error.m4 m4/error_h.m4 m4/extensions.m4 m4/extern-inline.m4 m4/fchdir.m4 m4/fcntl-o.m4 m4/fcntl-safer.m4 m4/fcntl.m4 m4/fcntl_h.m4 m4/fdopendir.m4 m4/filenamecat.m4 m4/free.m4 m4/fstat.m4 m4/fstatat.m4 m4/getcwd.m4 m4/getdtablesize.m4 m4/gethostname.m4 m4/getprogname.m4 m4/gnulib-common.m4 m4/host-cpu-c-abi.m4 m4/include_next.m4 m4/inttypes.m4 m4/largefile.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/limits-h.m4 m4/localcharset.m4 m4/locale-fr.m4 m4/locale-ja.m4 m4/locale-zh.m4 m4/locale_h.m4 m4/lstat.m4 m4/malloc.m4 m4/malloca.m4 m4/manywarnings-c++.m4 m4/manywarnings.m4 m4/mbrtowc.m4 m4/mbsinit.m4 m4/mbstate_t.m4 m4/memchr.m4 m4/mempcpy.m4 m4/memrchr.m4 m4/minmax.m4 m4/mmap-anon.m4 m4/mode_t.m4 m4/msvc-inval.m4 m4/msvc-nothrow.m4 m4/multiarch.m4 m4/nocrash.m4 m4/obstack.m4 m4/off_t.m4 m4/open-cloexec.m4 m4/open-slash.m4 m4/open.m4 m4/openat.m4 m4/opendir.m4 m4/pathmax.m4 m4/pid_t.m4 m4/pipe.m4 m4/quote.m4 m4/quotearg.m4 m4/rawmemchr.m4 m4/readdir.m4 m4/readlink.m4 m4/readlinkat.m4 m4/realloc.m4 m4/reallocarray.m4 m4/rename.m4 m4/renameat.m4 m4/rmdir.m4 m4/save-cwd.m4 m4/setlocale_null.m4 m4/sig2str.m4 m4/socketlib.m4 m4/sockets.m4 m4/socklen.m4 m4/sockpfaf.m4 m4/ssize_t.m4 m4/stat-time.m4 m4/stat.m4 m4/std-gnu11.m4 m4/stdalign.m4 m4/stdarg.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdio_h.m4 m4/stdlib_h.m4 m4/stpncpy.m4 m4/strchrnul.m4 m4/strdup.m4 m4/strerror.m4 m4/string_h.m4 m4/strndup.m4 m4/strnlen.m4 m4/strverscmp.m4 m4/sys_socket_h.m4 m4/sys_stat_h.m4 m4/sys_types_h.m4 m4/sys_uio_h.m4 m4/threadlib.m4 m4/time_h.m4 m4/unistd-safer.m4 m4/unistd_h.m4 m4/vararrays.m4 m4/version-etc.m4 m4/visibility.m4 m4/warn-on-use.m4 m4/warnings.m4 m4/wchar_h.m4 m4/wchar_t.m4 m4/wctype_h.m4 m4/wint_t.m4 m4/xalloc.m4 m4/xstrndup.m4 m4/xstrtol.m4 m4/zzgnulib.m4 top/GNUmakefile top/README-release top/maint.mk ]) �������������������������������������������������������������������������������������������a2ps-4.15.5/m4/host-cpu-c-abi.m4��������������������������������������������������������������������0000644�0000000�0000000�00000053720�14374751113�012654� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# host-cpu-c-abi.m4 serial 15 dnl Copyright (C) 2002-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible and Sam Steingold. dnl Sets the HOST_CPU variable to the canonical name of the CPU. dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its dnl C language ABI (application binary interface). dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in dnl config.h. dnl dnl This canonical name can be used to select a particular assembly language dnl source file that will interoperate with C code on the given host. dnl dnl For example: dnl * 'i386' and 'sparc' are different canonical names, because code for i386 dnl will not run on SPARC CPUs and vice versa. They have different dnl instruction sets. dnl * 'sparc' and 'sparc64' are different canonical names, because code for dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit dnl mode, but not both. dnl * 'mips' and 'mipsn32' are different canonical names, because they use dnl different argument passing and return conventions for C functions, and dnl although the instruction set of 'mips' is a large subset of the dnl instruction set of 'mipsn32'. dnl * 'mipsn32' and 'mips64' are different canonical names, because they use dnl different sizes for the C types like 'int' and 'void *', and although dnl the instruction sets of 'mipsn32' and 'mips64' are the same. dnl * The same canonical name is used for different endiannesses. You can dnl determine the endianness through preprocessor symbols: dnl - 'arm': test __ARMEL__. dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because dnl - Instructions that do not exist on all of these CPUs (cmpxchg, dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your dnl assembly language source files use such instructions, you will dnl need to make the distinction. dnl - Speed of execution of the common instruction set is reasonable across dnl the entire family of CPUs. If you have assembly language source files dnl that are optimized for particular CPU types (like GNU gmp has), you dnl will need to make the distinction. dnl See <https://en.wikipedia.org/wiki/X86_instruction_listings>. AC_DEFUN([gl_HOST_CPU_C_ABI], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_C_ASM]) AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], [case "$host_cpu" in changequote(,)dnl i[34567]86 ) changequote([,])dnl gl_cv_host_cpu_c_abi=i386 ;; x86_64 ) # On x86_64 systems, the C compiler may be generating code in one of # these ABIs: # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 # with native Windows (mingw, MSVC). # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (defined __x86_64__ || defined __amd64__ \ || defined _M_X64 || defined _M_AMD64) int ok; #else error fail #endif ]])], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=x86_64-x32], [gl_cv_host_cpu_c_abi=x86_64])], [gl_cv_host_cpu_c_abi=i386]) ;; changequote(,)dnl alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) changequote([,])dnl gl_cv_host_cpu_c_abi=alpha ;; arm* | aarch64 ) # Assume arm with EABI. # On arm64 systems, the C compiler may be generating code in one of # these ABIs: # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __aarch64__ int ok; #else error fail #endif ]])], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=arm64-ilp32], [gl_cv_host_cpu_c_abi=arm64])], [# Don't distinguish little-endian and big-endian arm, since they # don't require different machine code for simple operations and # since the user can distinguish them through the preprocessor # defines __ARMEL__ vs. __ARMEB__. # But distinguish arm which passes floating-point arguments and # return values in integer registers (r0, r1, ...) - this is # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which # passes them in float registers (s0, s1, ...) and double registers # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer # sets the preprocessor defines __ARM_PCS (for the first case) and # __ARM_PCS_VFP (for the second case), but older GCC does not. echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c # Look for a reference to the register d0 in the .s file. AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then gl_cv_host_cpu_c_abi=armhf else gl_cv_host_cpu_c_abi=arm fi rm -f conftest* ]) ;; hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) # On hppa, the C compiler may be generating 32-bit code or 64-bit # code. In the latter case, it defines _LP64 and __LP64__. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __LP64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=hppa64], [gl_cv_host_cpu_c_abi=hppa]) ;; ia64* ) # On ia64 on HP-UX, the C compiler may be generating 64-bit code or # 32-bit code. In the latter case, it defines _ILP32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=ia64-ilp32], [gl_cv_host_cpu_c_abi=ia64]) ;; mips* ) # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this # at 32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=mips64], [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32. # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (_MIPS_SIM == _ABIN32) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=mipsn32], [gl_cv_host_cpu_c_abi=mips])]) ;; powerpc* ) # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. # No need to distinguish them here; the caller may distinguish # them based on the OS. # On powerpc64 systems, the C compiler may still be generating # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif ]])], [# On powerpc64, there are two ABIs on Linux: The AIX compatible # one and the ELFv2 one. The latter defines _CALL_ELF=2. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _CALL_ELF && _CALL_ELF == 2 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=powerpc64-elfv2], [gl_cv_host_cpu_c_abi=powerpc64]) ], [gl_cv_host_cpu_c_abi=powerpc]) ;; rs6000 ) gl_cv_host_cpu_c_abi=powerpc ;; riscv32 | riscv64 ) # There are 2 architectures (with variants): rv32* and rv64*. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if __riscv_xlen == 64 int ok; #else error fail #endif ]])], [cpu=riscv64], [cpu=riscv32]) # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. # Size of 'long' and 'void *': AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ int ok; #else error fail #endif ]])], [main_abi=lp64], [main_abi=ilp32]) # Float ABIs: # __riscv_float_abi_double: # 'float' and 'double' are passed in floating-point registers. # __riscv_float_abi_single: # 'float' are passed in floating-point registers. # __riscv_float_abi_soft: # No values are passed in floating-point registers. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __riscv_float_abi_double int ok; #else error fail #endif ]])], [float_abi=d], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __riscv_float_abi_single int ok; #else error fail #endif ]])], [float_abi=f], [float_abi='']) ]) gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" ;; s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ || defined __s390x__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=s390x], [gl_cv_host_cpu_c_abi=s390]) ;; sparc | sparc64 ) # UltraSPARCs running Linux have `uname -m` = "sparc64", but the # C compiler still generates 32-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=sparc64], [gl_cv_host_cpu_c_abi=sparc]) ;; *) gl_cv_host_cpu_c_abi="$host_cpu" ;; esac ]) dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" AC_SUBST([HOST_CPU]) AC_SUBST([HOST_CPU_C_ABI]) # This was # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) # earlier, but KAI C++ 3.2d doesn't like this. sed -e 's/-/_/g' >> confdefs.h <<EOF #ifndef __${HOST_CPU}__ #define __${HOST_CPU}__ 1 #endif #ifndef __${HOST_CPU_C_ABI}__ #define __${HOST_CPU_C_ABI}__ 1 #endif EOF AH_TOP([/* CPU and C ABI indicator */ #ifndef __i386__ #undef __i386__ #endif #ifndef __x86_64_x32__ #undef __x86_64_x32__ #endif #ifndef __x86_64__ #undef __x86_64__ #endif #ifndef __alpha__ #undef __alpha__ #endif #ifndef __arm__ #undef __arm__ #endif #ifndef __armhf__ #undef __armhf__ #endif #ifndef __arm64_ilp32__ #undef __arm64_ilp32__ #endif #ifndef __arm64__ #undef __arm64__ #endif #ifndef __hppa__ #undef __hppa__ #endif #ifndef __hppa64__ #undef __hppa64__ #endif #ifndef __ia64_ilp32__ #undef __ia64_ilp32__ #endif #ifndef __ia64__ #undef __ia64__ #endif #ifndef __loongarch64__ #undef __loongarch64__ #endif #ifndef __m68k__ #undef __m68k__ #endif #ifndef __mips__ #undef __mips__ #endif #ifndef __mipsn32__ #undef __mipsn32__ #endif #ifndef __mips64__ #undef __mips64__ #endif #ifndef __powerpc__ #undef __powerpc__ #endif #ifndef __powerpc64__ #undef __powerpc64__ #endif #ifndef __powerpc64_elfv2__ #undef __powerpc64_elfv2__ #endif #ifndef __riscv32__ #undef __riscv32__ #endif #ifndef __riscv64__ #undef __riscv64__ #endif #ifndef __riscv32_ilp32__ #undef __riscv32_ilp32__ #endif #ifndef __riscv32_ilp32f__ #undef __riscv32_ilp32f__ #endif #ifndef __riscv32_ilp32d__ #undef __riscv32_ilp32d__ #endif #ifndef __riscv64_ilp32__ #undef __riscv64_ilp32__ #endif #ifndef __riscv64_ilp32f__ #undef __riscv64_ilp32f__ #endif #ifndef __riscv64_ilp32d__ #undef __riscv64_ilp32d__ #endif #ifndef __riscv64_lp64__ #undef __riscv64_lp64__ #endif #ifndef __riscv64_lp64f__ #undef __riscv64_lp64f__ #endif #ifndef __riscv64_lp64d__ #undef __riscv64_lp64d__ #endif #ifndef __s390__ #undef __s390__ #endif #ifndef __s390x__ #undef __s390x__ #endif #ifndef __sh__ #undef __sh__ #endif #ifndef __sparc__ #undef __sparc__ #endif #ifndef __sparc64__ #undef __sparc64__ #endif ]) ]) dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI dnl (application binary interface) is a 32-bit one, to 'no' if it is a 64-bit dnl one, or to 'unknown' if unknown. dnl This is a simplified variant of gl_HOST_CPU_C_ABI. AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit], [if test -n "$gl_cv_host_cpu_c_abi"; then case "$gl_cv_host_cpu_c_abi" in i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) gl_cv_host_cpu_c_abi_32bit=yes ;; x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 ) gl_cv_host_cpu_c_abi_32bit=no ;; *) gl_cv_host_cpu_c_abi_32bit=unknown ;; esac else case "$host_cpu" in # CPUs that only support a 32-bit ABI. arc \ | bfin \ | cris* \ | csky \ | epiphany \ | ft32 \ | h8300 \ | m68k \ | microblaze | microblazeel \ | nds32 | nds32le | nds32be \ | nios2 | nios2eb | nios2el \ | or1k* \ | or32 \ | sh | sh[1234] | sh[1234]e[lb] \ | tic6x \ | xtensa* ) gl_cv_host_cpu_c_abi_32bit=yes ;; # CPUs that only support a 64-bit ABI. changequote(,)dnl alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \ | mmix ) changequote([,])dnl gl_cv_host_cpu_c_abi_32bit=no ;; changequote(,)dnl i[34567]86 ) changequote([,])dnl gl_cv_host_cpu_c_abi_32bit=yes ;; x86_64 ) # On x86_64 systems, the C compiler may be generating code in one of # these ABIs: # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 # with native Windows (mingw, MSVC). # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (defined __x86_64__ || defined __amd64__ \ || defined _M_X64 || defined _M_AMD64) \ && !(defined __ILP32__ || defined _ILP32) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=no], [gl_cv_host_cpu_c_abi_32bit=yes]) ;; arm* | aarch64 ) # Assume arm with EABI. # On arm64 systems, the C compiler may be generating code in one of # these ABIs: # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=no], [gl_cv_host_cpu_c_abi_32bit=yes]) ;; hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) # On hppa, the C compiler may be generating 32-bit code or 64-bit # code. In the latter case, it defines _LP64 and __LP64__. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __LP64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=no], [gl_cv_host_cpu_c_abi_32bit=yes]) ;; ia64* ) # On ia64 on HP-UX, the C compiler may be generating 64-bit code or # 32-bit code. In the latter case, it defines _ILP32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=yes], [gl_cv_host_cpu_c_abi_32bit=no]) ;; mips* ) # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this # at 32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=no], [gl_cv_host_cpu_c_abi_32bit=yes]) ;; powerpc* ) # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. # No need to distinguish them here; the caller may distinguish # them based on the OS. # On powerpc64 systems, the C compiler may still be generating # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=no], [gl_cv_host_cpu_c_abi_32bit=yes]) ;; rs6000 ) gl_cv_host_cpu_c_abi_32bit=yes ;; riscv32 | riscv64 ) # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. # Size of 'long' and 'void *': AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=no], [gl_cv_host_cpu_c_abi_32bit=yes]) ;; s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ || defined __s390x__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=no], [gl_cv_host_cpu_c_abi_32bit=yes]) ;; sparc | sparc64 ) # UltraSPARCs running Linux have `uname -m` = "sparc64", but the # C compiler still generates 32-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi_32bit=no], [gl_cv_host_cpu_c_abi_32bit=yes]) ;; *) gl_cv_host_cpu_c_abi_32bit=unknown ;; esac fi ]) HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" ]) ������������������������������������������������a2ps-4.15.5/m4/iconv.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000023003�14415562264�011251� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# iconv.m4 serial 21 dnl Copyright (C) 2000-2002, 2007-2014, 2016-2020 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, dnl Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[ #include <iconv.h> #include <string.h> #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif ]], [[int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ { /* Try standardized names. */ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); /* Try IRIX, OSF/1 names. */ iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); /* Try AIX names. */ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); /* Try HP-UX names. */ iconv_t cd4 = iconv_open ("utf8", "eucJP"); if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) result |= 16; if (cd1 != (iconv_t)(-1)) iconv_close (cd1); if (cd2 != (iconv_t)(-1)) iconv_close (cd2); if (cd3 != (iconv_t)(-1)) iconv_close (cd3); if (cd4 != (iconv_t)(-1)) iconv_close (cd4); } return result; ]])], [am_cv_func_iconv_works=yes], , [case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac]) test "$am_cv_func_iconv_works" = no || break done LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to dnl avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. m4_define([gl_iconv_AC_DEFUN], m4_version_prereq([2.64], [[AC_DEFUN_ONCE( [$1], [$2])]], [m4_ifdef([gl_00GNULIB], [[AC_DEFUN_ONCE( [$1], [$2])]], [[AC_DEFUN( [$1], [$2])]])])) gl_iconv_AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL([am_cv_proto_iconv], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ]], [[]])], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) else dnl When compiling GNU libiconv on a system that does not have iconv yet, dnl pick the POSIX compliant declaration without 'const'. am_cv_proto_iconv_arg1="" fi AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. m4_ifdef([gl_ICONV_H_DEFAULTS], [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test -n "$am_cv_proto_iconv_arg1"; then ICONV_CONST="const" fi ]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/include_next.m4����������������������������������������������������������������������0000644�0000000�0000000�00000021034�14374751113�012613� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# include_next.m4 serial 26 dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Derek Price. dnl Sets INCLUDE_NEXT, INCLUDE_NEXT_AS_FIRST_DIRECTIVE, PRAGMA_SYSTEM_HEADER, dnl and PRAGMA_COLUMNS. dnl dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to dnl 'include' otherwise. dnl dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler dnl supports it in the special case that it is the first include directive in dnl the given file, or to 'include' otherwise. dnl dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next, dnl so as to avoid GCC warnings when the gcc option -pedantic is used. dnl '#pragma GCC system_header' has the same effect as if the file was found dnl through the include search path specified with '-isystem' options (as dnl opposed to the search path specified with '-I' options). Namely, gcc dnl does not warn about some things, and on some systems (Solaris and Interix) dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead dnl of plain '__STDC__'. dnl dnl PRAGMA_COLUMNS can be used in files that override system header files, so dnl as to avoid compilation errors on HP NonStop systems when the gnulib file dnl is included by a system header file that does a "#pragma COLUMNS 80" (which dnl has the effect of truncating the lines of that file and all files that it dnl includes to 80 columns) and the gnulib file has lines longer than 80 dnl columns. AC_DEFUN([gl_INCLUDE_NEXT], [ AC_LANG_PREPROC_REQUIRE() AC_CACHE_CHECK([whether the preprocessor supports include_next], [gl_cv_have_include_next], [rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) on dnl AIX 6.1 support include_next when used as first preprocessor directive dnl in a file, but not when preceded by another include directive. Check dnl for this bug by including <stdio.h>. dnl Additionally, with this same compiler, include_next is a no-op when dnl used in a header file that was included by specifying its absolute dnl file name. Despite these two bugs, include_next is used in the dnl compiler's <math.h>. By virtue of the second bug, we need to use dnl include_next as well in this case. cat <<EOF > conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include <stdio.h> #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" dnl We intentionally avoid using AC_LANG_SOURCE here. AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]], [gl_cv_have_include_next=yes], [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]], [gl_cv_have_include_next=buggy], [gl_cv_have_include_next=no]) ]) CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 ]) PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi AC_SUBST([INCLUDE_NEXT]) AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE]) AC_SUBST([PRAGMA_SYSTEM_HEADER]) dnl HP NonStop systems, which define __TANDEM, limit the line length dnl after including some system header files. AC_CACHE_CHECK([whether source code line length is unlimited], [gl_cv_source_line_length_unlimited], [AC_EGREP_CPP([choke me], [ #ifdef __TANDEM choke me #endif ], [gl_cv_source_line_length_unlimited=no], [gl_cv_source_line_length_unlimited=yes]) ]) if test $gl_cv_source_line_length_unlimited = no; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi AC_SUBST([PRAGMA_COLUMNS]) ]) # gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------------ # For each arg foo.h, if #include_next works, define NEXT_FOO_H to be # '<foo.h>'; otherwise define it to be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # Also, if #include_next works as first preprocessing directive in a file, # define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be '<foo.h>'; otherwise define it to # be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # That way, a header file with the following line: # #@INCLUDE_NEXT@ @NEXT_FOO_H@ # or # #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ # behaves (after sed substitution) as if it contained # #include_next <foo.h> # even if the compiler does not support include_next. # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. # # This macro also checks whether each header exists, by invoking # AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument. AC_DEFUN([gl_CHECK_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [check]) ]) # gl_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------ # Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist. # This is suitable for headers like <stddef.h> that are standardized by C89 # and therefore can be assumed to exist. AC_DEFUN([gl_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [assume]) ]) # The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], [ AC_REQUIRE([gl_INCLUDE_NEXT]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_if([$2], [check], [AC_CHECK_HEADERS_ONCE([$1]) ]) m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_next_header], [gl_cv_next_]m4_defn([gl_HEADER_NAME])) if test $gl_cv_have_include_next = yes; then AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) else AC_CACHE_CHECK( [absolute name of <]m4_defn([gl_HEADER_NAME])[>], [gl_next_header], [m4_if([$2], [check], [AS_VAR_PUSHDEF([gl_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME])) if test AS_VAR_GET([gl_header_exists]) = yes; then AS_VAR_POPDEF([gl_header_exists]) ]) gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME) AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME)) AS_VAR_SET([gl_next_header], ['"'$gl_header'"']) m4_if([$2], [check], [else AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) fi ]) ]) fi AC_SUBST( AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), [AS_VAR_GET([gl_next_header])]) if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'gl_HEADER_NAME'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=AS_VAR_GET([gl_next_header]) fi AC_SUBST( AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), [$gl_next_as_first_directive]) AS_VAR_POPDEF([gl_next_header])]) ]) # Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE; # this fallback is safe for all earlier autoconf versions. m4_define_default([AC_LANG_DEFINES_PROVIDED]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/intlmacosx.m4������������������������������������������������������������������������0000644�0000000�0000000�00000006235�14415562264�012324� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# intlmacosx.m4 serial 8 (gettext-0.20.2) dnl Copyright (C) 2004-2014, 2016, 2019-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.4. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <CoreFoundation/CFPreferences.h>]], [[CFPreferencesCopyAppValue(NULL, NULL)]])], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, dnl because in macOS 10.13.4 it has the following behaviour: dnl When two or more languages are specified in the dnl "System Preferences > Language & Region > Preferred Languages" panel, dnl it returns en_CC where CC is the territory (even when English is not among dnl the preferred languages!). What we want instead is what dnl CFLocaleCopyCurrent returned in earlier macOS releases and what dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the dnl first among the preferred languages and CC is the territory. AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <CoreFoundation/CFLocale.h>]], [[CFLocaleCopyPreferredLanguages();]])], [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/inttypes.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000014312�14374751113�012012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# inttypes.m4 serial 37 dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Derek Price, Bruno Haible. dnl Test whether <inttypes.h> is supported or must be substituted. AC_DEFUN_ONCE([gl_INTTYPES_H], [ AC_REQUIRE([gl_INTTYPES_INCOMPLETE]) gl_INTTYPES_PRI_SCN ]) AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE], [ AC_REQUIRE([gl_STDINT_H]) AC_CHECK_HEADERS_ONCE([inttypes.h]) dnl Override <inttypes.h> always, so that the portability warnings work. AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([inttypes.h]) AC_REQUIRE([gl_MULTIARCH]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <inttypes.h> ]], [imaxabs imaxdiv strtoimax strtoumax]) AC_REQUIRE([AC_C_RESTRICT]) ]) # Ensure that the PRI* and SCN* macros are defined appropriately. AC_DEFUN([gl_INTTYPES_PRI_SCN], [ PRIPTR_PREFIX= if $GL_GENERATE_STDINT_H; then dnl Using the gnulib <stdint.h>. It defines intptr_t to 'long' or dnl 'long long', depending on _WIN64. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #ifdef _WIN64 LLP64 #endif ]]) ], [PRIPTR_PREFIX='"l"'], [PRIPTR_PREFIX='"ll"']) else dnl Using the system's <stdint.h>. for glpfx in '' l ll I64; do case $glpfx in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; I64) gltype1='__int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <stdint.h> extern intptr_t foo; extern $gltype1 foo;]])], [PRIPTR_PREFIX='"'$glpfx'"']) test -n "$PRIPTR_PREFIX" && break done fi AC_SUBST([PRIPTR_PREFIX]) gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [INT32_MAX_LT_INTMAX_MAX], [defined INT32_MAX && defined INTMAX_MAX], [INT32_MAX < INTMAX_MAX], [sizeof (int) < sizeof (long long int)]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [INT64_MAX_EQ_LONG_MAX], [defined INT64_MAX], [INT64_MAX == LONG_MAX], [sizeof (long long int) == sizeof (long int)]) else INT64_MAX_EQ_LONG_MAX=-1 fi gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [UINT32_MAX_LT_UINTMAX_MAX], [defined UINT32_MAX && defined UINTMAX_MAX], [UINT32_MAX < UINTMAX_MAX], [sizeof (unsigned int) < sizeof (unsigned long long int)]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [UINT64_MAX_EQ_ULONG_MAX], [defined UINT64_MAX], [UINT64_MAX == ULONG_MAX], [sizeof (unsigned long long int) == sizeof (unsigned long int)]) else UINT64_MAX_EQ_ULONG_MAX=-1 fi ]) # Define the symbol $1 to be 1 if the condition is true, 0 otherwise. # If $2 is true, the condition is $3; otherwise if long long int is supported # approximate the condition with $4; otherwise, assume the condition is false. # The condition should work on all C99 platforms; the approximations should be # good enough to work on all practical pre-C99 platforms. # $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants. AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION], [ AC_CACHE_CHECK([whether $3], [gl_cv_test_$1], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include <limits.h> #if HAVE_STDINT_H #include <stdint.h> #endif #if $2 #define CONDITION ($3) #else #define CONDITION ($4) #endif int test[CONDITION ? 1 : -1];]])], [gl_cv_test_$1=yes], [gl_cv_test_$1=no])]) if test $gl_cv_test_$1 = yes; then $1=1; else $1=0; fi AC_SUBST([$1]) ]) # gl_INTTYPES_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_INTTYPES_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_INTTYPES_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXABS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXDIV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOIMAX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUMAX]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) ]) AC_DEFUN([gl_INTTYPES_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS]) HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV]) HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T]) HAVE_IMAXABS=1; AC_SUBST([HAVE_IMAXABS]) HAVE_IMAXDIV=1; AC_SUBST([HAVE_IMAXDIV]) REPLACE_IMAXABS=0; AC_SUBST([REPLACE_IMAXABS]) REPLACE_IMAXDIV=0; AC_SUBST([REPLACE_IMAXDIV]) REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX]) INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX]) PRIPTR_PREFIX=__PRIPTR_PREFIX; AC_SUBST([PRIPTR_PREFIX]) UINT32_MAX_LT_UINTMAX_MAX=1; AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX]) UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; AC_SUBST([UINT64_MAX_EQ_ULONG_MAX]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/largefile.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000035654�14374751113�012101� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Enable large files on systems where this is not the default. # Enable support for files on Linux file systems with 64-bit inode numbers. # Copyright 1992-1996, 1998-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # The following macro works around a problem in Autoconf's AC_FUNC_FSEEKO: # It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this # setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko # and ftello in C++ mode as well. # Fixed in Autoconf 2.72, which has AC_SYS_YEAR2038. AC_DEFUN([gl_SET_LARGEFILE_SOURCE], m4_ifndef([AC_SYS_YEAR2038], [[ AC_REQUIRE([AC_CANONICAL_HOST]) AC_FUNC_FSEEKO case "$host_os" in hpux*) AC_DEFINE([_LARGEFILE_SOURCE], [1], [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).]) ;; esac ]]) ) # Work around a problem in autoconf <= 2.69: # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, # or configures them incorrectly in some cases. m4_version_prereq([2.70], [], [ # _AC_SYS_LARGEFILE_TEST_INCLUDES # ------------------------------- m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [#include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]];[]dnl ]) ])# m4_version_prereq 2.70 # Support AC_SYS_YEAR2038, even if Autoconf 2.71 or earlier. # This code is taken from Autoconf master. m4_ifndef([AC_SYS_YEAR2038], [ # _AC_SYS_YEAR2038_TEST_CODE # -------------------------- # C code used to probe for time_t that can represent time points more # than 2**31 - 1 seconds after the epoch. With the usual Unix epoch, # these correspond to dates after 2038-01-18 22:14:07 +0000 (Gregorian), # hence the name. AC_DEFUN([_AC_SYS_YEAR2038_TEST_CODE], [[ #include <time.h> /* Check that time_t can represent 2**32 - 1 correctly. */ #define LARGE_TIME_T \\ ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 && LARGE_TIME_T % 65537 == 0) ? 1 : -1]; ]]) # _AC_SYS_YEAR2038_OPTIONS # ------------------------ # List of known ways to enable support for large time_t. If you change # this list you probably also need to change the AS_CASE at the end of # _AC_SYS_YEAR2038_PROBE. m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize( ["none needed"] dnl 64-bit and newer 32-bit Unix ["-D_TIME_BITS=64"] dnl glibc 2.34 with some 32-bit ABIs ["-D__MINGW_USE_VC2005_COMPAT"] dnl 32-bit MinGW ["-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"] dnl 32-bit MinGW (misconfiguration) )) # _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED]) # ----------------------------------------- # Subroutine of AC_SYS_YEAR2038. Probe for time_t that can represent # time points more than 2**31 - 1 seconds after the epoch (dates after # 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts # to one of the values in the _AC_SYS_YEAR2038_OPTIONS list, or to # "support not detected" if none of them worked. Then, set compilation # options and #defines as necessary to enable large time_t support. # # Note that we do not test whether mktime, localtime, etc. handle # large values of time_t correctly, as that would require use of # AC_TRY_RUN. Note also that some systems only support large time_t # together with large off_t. # # If support is not detected, the behavior depends on which of the # top-level AC_SYS_YEAR2038 macros was used (see below). # # If you change this macro you may also need to change # _AC_SYS_YEAR2038_OPTIONS. AC_DEFUN([_AC_SYS_YEAR2038_PROBE], [AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038], [ac_cv_sys_year2038_opts], [ac_save_CPPFLAGS="$CPPFLAGS" ac_opt_found=no for ac_opt in _AC_SYS_YEAR2038_OPTIONS; do AS_IF([test x"$ac_opt" != x"none needed"], [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_YEAR2038_TEST_CODE])], [ac_cv_sys_year2038_opts="$ac_opt" ac_opt_found=yes]) test $ac_opt_found = no || break done CPPFLAGS="$ac_save_CPPFLAGS" test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected"]) ac_have_year2038=yes AS_CASE([$ac_cv_sys_year2038_opts], ["none needed"], [], ["support not detected"], [ac_have_year2038=no AS_CASE([$enable_year2038], [yes], [# If we're not cross compiling and 'touch' works with a large # timestamp, then we can presume the system supports wider time_t # *somehow* and we just weren't able to detect it. One common # case that we deliberately *don't* probe for is a system that # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers # wide time_t. (It would be inappropriate for us to override an # intentional use of -m32.) Error out, demanding use of # --disable-year2038 if this is intentional. AS_IF([test $cross_compiling = no], [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null], [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`], [*'Feb 7 2106'* | *'Feb 7 17:10'*], [AC_MSG_FAILURE(m4_text_wrap( [this system appears to support timestamps after January 2038, but no mechanism for enabling wide 'time_t' was detected. Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.) To proceed with 32-bit time_t, configure with '--disable-year2038'.], [], [], [55]))])])])])], ["-D_TIME_BITS=64"], [AC_DEFINE([_TIME_BITS], [64], [Number of bits in time_t, on hosts where this is settable.])], ["-D__MINGW_USE_VC2005_COMPAT=1"], [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1], [Define to 1 on platforms where this makes time_t a 64-bit type.])], ["-U_USE_32_BIT_TIME_T"*], [AC_MSG_FAILURE(m4_text_wrap( [the 'time_t' type is currently forced to be 32-bit. It will stop working after January 2038. Remove _USE_32BIT_TIME_T from the compiler flags.], [], [], [55]))], [AC_MSG_ERROR( [internal error: bad value for \$ac_cv_sys_year2038_opts])]) ]) # _AC_SYS_YEAR2038_ENABLE # ----------------------- # Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN. # Depending on which of the YEAR2038 macros was used, add either an # --enable-year2038, or a --disable-year2038, or no option at all to # the configure script. Note that this is expanded very late and # therefore there cannot be any code in the AC_ARG_ENABLE. The # default value for enable_year2038 is emitted unconditionally # because the generated code always looks at this variable. m4_define([_AC_SYS_YEAR2038_ENABLE], [m4_divert_text([DEFAULTS], m4_provide_if([AC_SYS_YEAR2038], [enable_year2038=yes], [enable_year2038=no]))]dnl [AC_ARG_ENABLE([year2038], m4_provide_if([AC_SYS_YEAR2038], [AS_HELP_STRING([--disable-year2038], [do not support timestamps after 2038])], [AS_HELP_STRING([--enable-year2038], [support timestamps after 2038])]))]) # _AC_SYS_YEAR2038_OPT_IN # ----------------------- # If the --enable-year2038 option is given to configure, attempt to # detect and activate support for large time_t on 32-bit systems. # This macro is automatically invoked by AC_SYS_LARGEFILE when large # *file* support is detected. It does not AC_REQUIRE AC_SYS_LARGEFILE # to avoid a dependency loop, and is therefore unsafe to expose as a # documented macro. AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN], [m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE]) AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) ])]) # AC_SYS_YEAR2038 # --------------- # Attempt to detect and activate support for large time_t. # On systems where time_t is not always 64 bits, this probe can be # skipped by passing the --disable-year2038 option to configure. AC_DEFUN([AC_SYS_YEAR2038], [AC_REQUIRE([AC_SYS_LARGEFILE])]dnl [m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE]) AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) ])]) # _AC_SYS_LARGEFILE_TEST_CODE # --------------------------- # C code used to probe for large file support. m4_define([_AC_SYS_LARGEFILE_TEST_CODE], [@%:@include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ @%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]];[]dnl ]) # _AC_SYS_LARGEFILE_OPTIONS # ------------------------- # List of known ways to enable support for large files. If you change # this list you probably also need to change the AS_CASE at the end of # _AC_SYS_LARGEFILE_PROBE. m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize( ["none needed"] dnl Most current systems ["-D_FILE_OFFSET_BITS=64"] dnl X/Open LFS spec ["-D_LARGE_FILES=1"] dnl AIX (which versions?) ["-n32"] dnl Irix 6.2 w/ SGI compiler )) # _AC_SYS_LARGEFILE_PROBE # ----------------------- # Subroutine of AC_SYS_LARGEFILE. Probe for large file support and set # the cache variable ac_cv_sys_largefile_opts to one of the values in # the _AC_SYS_LARGEFILE_OPTIONS list, or to "support not detected" if # none of the options in that list worked. Then, set compilation # options and #defines as necessary to enable large file support. # # If large file support is not detected, the behavior depends on which of # the top-level AC_SYS_LARGEFILE macros was used (see below). # # If you change this macro you may also need to change # _AC_SYS_LARGEFILE_OPTIONS. AC_DEFUN([_AC_SYS_LARGEFILE_PROBE], [AC_CACHE_CHECK([for $CC option to enable large file support], [ac_cv_sys_largefile_opts], [ac_save_CC="$CC" ac_opt_found=no for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do AS_IF([test x"$ac_opt" != x"none needed"], [CC="$ac_save_CC $ac_opt"]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])], [ac_cv_sys_largefile_opts="$ac_opt" ac_opt_found=yes]) test $ac_opt_found = no || break done CC="$ac_save_CC" test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"]) ac_have_largefile=yes AS_CASE([$ac_cv_sys_largefile_opts], ["none needed"], [], ["support not detected"], [ac_have_largefile=no], ["-D_FILE_OFFSET_BITS=64"], [AC_DEFINE([_FILE_OFFSET_BITS], [64], [Number of bits in a file offset, on hosts where this is settable.])], ["-D_LARGE_FILES=1"], [AC_DEFINE([_LARGE_FILES], [1], [Define to 1 on platforms where this makes off_t a 64-bit type.])], ["-n32"], [CC="$CC -n32"], [AC_MSG_ERROR( [internal error: bad value for \$ac_cv_sys_largefile_opts])]) _AC_SYS_YEAR2038_OPT_IN ]) # _AC_SYS_LARGEFILE_ENABLE # ------------------------ # Subroutine of AC_SYS_LARGEFILE. Note that this # is expanded very late and therefore there cannot be any code in the # AC_ARG_ENABLE. The default value for enable_largefile is emitted # unconditionally because the generated shell code always looks at # this variable. m4_define([_AC_SYS_LARGEFILE_ENABLE], [m4_divert_text([DEFAULTS], enable_largefile=yes)]dnl [AC_ARG_ENABLE([largefile], [AS_HELP_STRING([--disable-largefile], [omit support for large files])])]) # AC_SYS_LARGEFILE # ---------------- # By default, many hosts won't let programs access large files; # one must use special compiler options to get large-file access to work. # For more details about this brain damage please see: # http://www.unix.org/version2/whatsnew/lfs20mar.html # Additionally, on Linux file systems with 64-bit inodes a file that happens # to have a 64-bit inode number cannot be accessed by 32-bit applications on # Linux x86/x86_64. This can occur with file systems such as XFS and NFS. # This macro allows configuration to continue if the system doesn't support # large files. AC_DEFUN([AC_SYS_LARGEFILE], [m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE]) AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE]) ])]) ])# m4_ifndef AC_SYS_YEAR2038 # Enable large files on systems where this is implemented by Gnulib, not by the # system headers. # Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib # overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively. AC_DEFUN([gl_LARGEFILE], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) dnl Native Windows. dnl mingw64 defines off_t to a 64-bit type already, if dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE. AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no]) ]) if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi dnl Some mingw versions define, if _FILE_OFFSET_BITS=64, 'struct stat' dnl to 'struct _stat32i64' or 'struct _stat64' (depending on dnl _USE_32BIT_TIME_T), which has a 32-bit st_size member. AC_CACHE_CHECK([for 64-bit st_size], [gl_cv_member_st_size_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> struct stat buf; int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_member_st_size_64=yes], [gl_cv_member_st_size_64=no]) ]) if test $gl_cv_member_st_size_64 = no; then WINDOWS_64_BIT_ST_SIZE=1 else WINDOWS_64_BIT_ST_SIZE=0 fi ;; *) dnl Nothing to do on gnulib's side. dnl A 64-bit off_t is dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX, dnl OSF/1, Cygwin, dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on dnl glibc, HP-UX, Solaris, dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX, dnl - impossible to achieve on Minix 3.1.8. WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac ]) ������������������������������������������������������������������������������������a2ps-4.15.5/m4/lib-ld.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000012370�14374751113�011300� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-ld.m4 serial 10 dnl Copyright (C) 1996-2003, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) acl_cv_prog_gnu_ld=yes ;; *) acl_cv_prog_gnu_ld=no ;; esac]) with_gnu_ld=$acl_cv_prog_gnu_ld ]) dnl From libtool-2.4. Sets the variable LD. AC_DEFUN([AC_LIB_PROG_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld [default=no]])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi if test -n "$LD"; then AC_MSG_CHECKING([for ld]) elif test "$GCC" = yes; then AC_MSG_CHECKING([for ld used by $CC]) elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi if test -n "$LD"; then # Let the user override the test with a path. : else AC_CACHE_VAL([acl_cv_path_LD], [ acl_cv_path_LD= # Final result of this test ac_prog=ld # Program to search in $PATH if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) acl_output=`($CC -print-prog-name=ld) 2>&5` ;; esac case $acl_output in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` done # Got the pathname. No search in PATH is needed. acl_cv_path_LD="$acl_output" ac_prog= ;; "") # If it fails, then pretend we aren't using GCC. ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac fi if test -n "$ac_prog"; then # Search for $ac_prog in $PATH. acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$acl_save_ifs" fi case $host in *-*-aix*) AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif ]])], [# The compiler produces 64-bit code. Add option '-b64' so that the # linker groks 64-bit object files. case "$acl_cv_path_LD " in *" -b64 "*) ;; *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; esac ], []) ;; sparc64-*-netbsd*) AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif ]])], [], [# The compiler produces 32-bit code. Add option '-m elf32_sparc' # so that the linker groks 32-bit object files. case "$acl_cv_path_LD " in *" -m elf32_sparc "*) ;; *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; esac ]) ;; esac ]) LD="$acl_cv_path_LD" fi if test -n "$LD"; then AC_MSG_RESULT([$LD]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([no acceptable ld found in \$PATH]) fi AC_LIB_PROG_LD_GNU ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/lib-link.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000105613�14374751113�011641� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-link.m4 serial 33 dnl Copyright (C) 2001-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.61]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. The missing-message dnl defaults to 'no' and may contain additional hints for the user. dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, dnl because these -l options might require -L options that are present in dnl LIBS. -l options benefit only from the -L options listed before it. dnl Otherwise, add it to the front of LIBS, because it may be a static dnl library that depends on another static library that is present in LIBS. dnl Static libraries benefit only from the static libraries listed after dnl it. case " $LIB[]NAME" in *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; *) LIBS="$LIB[]NAME $LIBS" ;; esac AC_LINK_IFELSE( [AC_LANG_PROGRAM([[$3]], [[$4]])], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_libname_spec, dnl acl_library_names_spec, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Complain if config.rpath is missing. AC_REQUIRE_AUX_FILE([config.rpath]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" ]) AC_ARG_WITH(PACK[-prefix], [[ --with-]]PACK[[-prefix[=DIR] search for ]]PACKLIBS[[ in DIR/include and DIR/lib --without-]]PACK[[-prefix don't search for ]]PACKLIBS[[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" additional_libdir2="$withval/$acl_libdirstem2" additional_libdir3="$withval/$acl_libdirstem3" fi fi ]) if test "X$additional_libdir2" = "X$additional_libdir"; then additional_libdir2= fi if test "X$additional_libdir3" = "X$additional_libdir"; then additional_libdir3= fi dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do if test "X$found_dir" = "X"; then eval dir=\$$additional_libdir_variable if test -n "$dir"; then dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi fi done fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem3 | */$acl_libdirstem3/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then haveit= if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then dnl Really add $dependency_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then dnl Really add $dependency_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. dnl But on GNU systems, ignore -lc options, because dnl - linking with libc is the default anyway, dnl - linking with libc.a may produce an error dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" dnl or may produce an executable that always crashes, see dnl <https://lists.gnu.org/archive/html/grep-devel/2020-09/msg00052.html>. dep=`echo "X$dep" | sed -e 's/^X-l//'` if test "X$dep" != Xc \ || case $host_os in linux* | gnu* | k*bsd*-gnu) false ;; *) true ;; esac; then names_next_round="$names_next_round $dep" fi ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2" \ && test "X$dir" != "X/usr/$acl_libdirstem3"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2" \ && test "X$dir" != "X/usr/$acl_libdirstem3"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) ���������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/lib-prefix.m4������������������������������������������������������������������������0000644�0000000�0000000�00000027645�14374751113�012211� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-prefix.m4 serial 20 dnl Copyright (C) 2001-2005, 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH([lib-prefix], [[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a function acl_is_expected_elfclass, that tests whether standard input dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing dnl the basename of the libdir to try in turn, either "lib" or "lib64" or dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib, lib32, and lib64. dnl On most glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. dnl We determine the compiler's default mode by looking at the compiler's dnl library search path. If at least one of its elements ends in /lib64 or dnl points to a directory whose absolute pathname ends in /lib64, we use that dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, dnl namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], [AC_EGREP_CPP([Extensible Linking Format], [#if defined __ELF__ || (defined __linux__ && defined __EDG__) Extensible Linking Format #endif ], [gl_cv_elf=yes], [gl_cv_elf=no]) ]) if test $gl_cv_elf = yes; then # Extract the ELF class of a file (5th byte) in decimal. # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header if od -A x < /dev/null >/dev/null 2>/dev/null; then # Use POSIX od. func_elfclass () { od -A n -t d1 -j 4 -N 1 } else # Use BSD hexdump. func_elfclass () { dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' echo } fi # Use 'expr', not 'test', to compare the values of func_elfclass, because on # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, # not 1 or 2. changequote(,)dnl case $HOST_CPU_C_ABI_32BIT in yes) # 32-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null } ;; no) # 64-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null } ;; *) # Unknown. acl_is_expected_elfclass () { : } ;; esac changequote([,])dnl else acl_is_expected_elfclass () { : } fi dnl Allow the user to override the result by setting acl_cv_libdirstems. AC_CACHE_CHECK([for the common suffixes of directories in the library search path], [acl_cv_libdirstems], [dnl Try 'lib' first, because that's the default for libdir in GNU, see dnl <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>. acl_libdirstem=lib acl_libdirstem2= acl_libdirstem3= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>. dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. if test $HOST_CPU_C_ABI_32BIT = no; then acl_libdirstem2=lib/64 case "$host_cpu" in sparc*) acl_libdirstem3=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; esac fi ;; *) dnl If $CC generates code for a 32-bit ABI, the libraries are dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. dnl Find the compiler's search path. However, non-system compilers dnl sometimes have odd library search paths. But we can't simply invoke dnl '/usr/bin/gcc -print-search-dirs' because that would not take into dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test $HOST_CPU_C_ABI_32BIT != no; then # 32-bit or unknown ABI. if test -d /usr/lib32; then acl_libdirstem2=lib32 fi fi if test $HOST_CPU_C_ABI_32BIT != yes; then # 64-bit or unknown ABI. if test -d /usr/lib64; then acl_libdirstem3=lib64 fi fi if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib32 ) acl_libdirstem2=lib32 ;; */lib64 ) acl_libdirstem3=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" if test $HOST_CPU_C_ABI_32BIT = yes; then # 32-bit ABI. acl_libdirstem3= fi if test $HOST_CPU_C_ABI_32BIT = no; then # 64-bit ABI. acl_libdirstem2= fi fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" ]) dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and dnl acl_libdirstem3. changequote(,)dnl acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` changequote([,])dnl ]) �������������������������������������������������������������������������������������������a2ps-4.15.5/m4/libpaper.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000001104�14364475125�011731� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl ## --------------------------------------------------------- ## dnl ## Check if libpaper is available ## dnl ## demaille@inf.enst.fr ## dnl ## --------------------------------------------------------- ## dnl dnl # serial 1 AC_DEFUN([ad_FUNC_SYSTEMPAPERNAME], [ AC_CHECK_LIB(paper, systempapername, dnl Action if found [ AC_DEFINE([HAVE_SYSTEMPAPERNAME], 1, [Define if you have the systempapername function]) LIBS="$LIBS -lpaper" AC_CHECK_HEADERS(paper.h) ]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/libtool.m4���������������������������������������������������������������������������0000644�0000000�0000000�00001131652�14337402464�011610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. ]) # serial 59 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_DECL_FILECMD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC and # ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the 'libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to 'config.status' so that its # declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags='_LT_TAGS'dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into 'config.status', and then the shell code to quote escape them in # for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ '$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test 0 != $[#] do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try '$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) case $MACOSX_DEPLOYMENT_TARGET,$host in 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; *) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} _LT_DECL([], [AR], [1], [The archiver]) # Use ARFLAGS variable as AR's operation code to sync the variable naming with # Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have # higher priority because thats what people were doing historically (setting # ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS # variable obsoleted/removed. test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} lt_ar_flags=$AR_FLAGS _LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) # Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override # by AR_FLAGS because that was never working and AR_FLAGS is about to die. _LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ]) if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen=shl_load], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen=dlopen], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) ]) ]) ]) ]) ]) ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links=nottested if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test no = "$hard_links"; then AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -z "$STRIP"; then AC_MSG_RESULT([no]) else if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then old_striplib="$STRIP --strip-debug" striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else case $host_os in darwin*) # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) ;; freebsd*) if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then old_striplib="$STRIP --strip-debug" striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib<name>.so # instead of lib<name>.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl* | *,icl*) # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$1"; then lt_cv_path_MAGIC_CMD=$ac_dir/"$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac]) MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test no != "$with_gnu_ld" && break ;; *) test yes != "$with_gnu_ld" && break ;; esac fi done IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. fi]) LD=$lt_cv_path_LD if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) _LT_PATH_LD_GNU AC_SUBST([LD]) _LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) ])# LT_PATH_LD # Old names: AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_LD], []) dnl AC_DEFUN([AC_PROG_LD], []) # _LT_PATH_LD_GNU #- -------------- m4_defun([_LT_PATH_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) lt_cv_prog_gnu_ld=yes ;; *) lt_cv_prog_gnu_ld=no ;; esac]) with_gnu_ld=$lt_cv_prog_gnu_ld ])# _LT_PATH_LD_GNU # _LT_CMD_RELOAD # -------------- # find reload flag for linker # -- PORTME Some linkers may need a different reload flag. m4_defun([_LT_CMD_RELOAD], [AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, [lt_cv_ld_reload_flag='-r']) reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac _LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl _LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD # _LT_PATH_DD # ----------- # find a working dd m4_defun([_LT_PATH_DD], [AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi]) if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM=-lm) ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly* | midnightbsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl* | icl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl* | icl*) # Native MSVC or ICC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC and ICC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly* | midnightbsd*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; osf3*) if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test yes,yes = "$GCC,$enable_shared"; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC=$CC AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report what library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl* | ,icl* | no,icl*) # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly* | midnightbsd*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(GCC, $1)=$GXX _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)=$prev$p else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$G77 _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_FILECMD # ---------------- # Check for a file(cmd) program that can be used to detect file type and magic m4_defun([_LT_DECL_FILECMD], [AC_CHECK_TOOL([FILECMD], [file], [:]) _LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types]) ])# _LD_DECL_FILECMD # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f "$lt_ac_sed" && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test 10 -lt "$lt_ac_count" && break lt_ac_count=`expr $lt_ac_count + 1` if test "$lt_ac_count" -gt "$lt_ac_max"; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS ��������������������������������������������������������������������������������������a2ps-4.15.5/m4/limits-h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000002335�14374751113�011663� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Check whether limits.h has needed features. dnl Copyright 2016-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. AC_DEFUN_ONCE([gl_LIMITS_H], [ gl_CHECK_NEXT_HEADERS([limits.h]) AC_CACHE_CHECK([whether limits.h has WORD_BIT, BOOL_WIDTH etc.], [gl_cv_header_limits_width], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include <limits.h> long long llm = LLONG_MAX; int wb = WORD_BIT; int ullw = ULLONG_WIDTH; int bw = BOOL_WIDTH; int bm = BOOL_MAX; ]])], [gl_cv_header_limits_width=yes], [gl_cv_header_limits_width=no])]) if test "$gl_cv_header_limits_width" = yes; then GL_GENERATE_LIMITS_H=false else GL_GENERATE_LIMITS_H=true fi ]) dnl Unconditionally enables the replacement of <limits.h>. AC_DEFUN([gl_REPLACE_LIMITS_H], [ AC_REQUIRE([gl_LIMITS_H]) GL_GENERATE_LIMITS_H=true ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/localcharset.m4����������������������������������������������������������������������0000644�0000000�0000000�00000000633�14374751113�012600� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# localcharset.m4 serial 8 dnl Copyright (C) 2002, 2004, 2006, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LOCALCHARSET], [ dnl Prerequisites of lib/localcharset.c. AC_REQUIRE([AM_LANGINFO_CODESET]) ]) �����������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/locale-fr.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000024474�14374751113�012011� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# locale-fr.m4 serial 20 dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a french locale with traditional encoding. AC_DEFUN([gt_LOCALE_FR], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([[ #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } ]])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR=$gt_cv_locale_fr AC_SUBST([LOCALE_FR]) ]) dnl Determine the name of a french locale with UTF-8 encoding. AC_DEFUN([gt_LOCALE_FR_UTF8], [ AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([[ #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } ]])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 AC_SUBST([LOCALE_FR_UTF8]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/locale-ja.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000013167�14374751113�011771� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# locale-ja.m4 serial 15 dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a japanese locale with EUC-JP encoding. AC_DEFUN([gt_LOCALE_JA], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([[ #include <locale.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } return 0; #endif } ]])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_JA=$gt_cv_locale_ja AC_SUBST([LOCALE_JA]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/locale-zh.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000012612�14374751113�012012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# locale-zh.m4 serial 15 dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a chinese locale with GB18030 encoding. AC_DEFUN([gt_LOCALE_ZH_CN], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([[ #include <locale.h> #include <stdlib.h> #include <time.h> #if HAVE_LANGINFO_CODESET # include <langinfo.h> #endif #include <stdlib.h> #include <string.h> struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; #endif } ]])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* ]) LOCALE_ZH_CN=$gt_cv_locale_zh_CN AC_SUBST([LOCALE_ZH_CN]) ]) ����������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/locale_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000013756�14374751113�011714� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# locale_h.m4 serial 28 dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_LOCALE_H], [ dnl Ensure to expand the default settings once only, before all statements dnl that occur in other macros. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) dnl Persuade glibc <locale.h> to define locale_t and the int_p_*, int_n_* dnl members of 'struct lconv'. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl If <stddef.h> is replaced, then <locale.h> must also be replaced. AC_REQUIRE([gl_STDDEF_H]) AC_REQUIRE([gl_LOCALE_T]) dnl Solaris 11.0 defines the int_p_*, int_n_* members of 'struct lconv' dnl only if _LCONV_C99 is defined. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in solaris*) AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.]) ;; esac AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001], [gl_cv_header_locale_h_posix2001], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <locale.h> int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point);]], [[]])], [gl_cv_header_locale_h_posix2001=yes], [gl_cv_header_locale_h_posix2001=no])]) dnl Check whether 'struct lconv' is complete. dnl Bionic libc's 'struct lconv' is just a dummy. dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members. AC_CACHE_CHECK([whether struct lconv is properly defined], [gl_cv_sys_struct_lconv_ok], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <locale.h> struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes);]], [[]])], [gl_cv_sys_struct_lconv_ok=yes], [gl_cv_sys_struct_lconv_ok=no]) ]) if test $gl_cv_sys_struct_lconv_ok = no; then dnl On native Windows with MSVC, merely define these member names as macros. dnl This avoids trouble in C++ mode. case "$host_os" in mingw*) AC_EGREP_CPP([Special], [ #ifdef _MSC_VER Special #endif ], [], [REPLACE_STRUCT_LCONV=1]) ;; *) REPLACE_STRUCT_LCONV=1 ;; esac fi dnl <locale.h> is always overridden, because of GNULIB_POSIXCHECK. gl_NEXT_HEADERS([locale.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <locale.h> /* Some systems provide declarations in a non-standard header. */ #if HAVE_XLOCALE_H # include <xlocale.h> #endif ]], [setlocale newlocale duplocale freelocale]) ]) dnl Checks to determine whether the system has the locale_t type, dnl and how to obtain it. AC_DEFUN([gl_LOCALE_T], [ dnl Persuade glibc and Solaris <locale.h> to define locale_t. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl Check whether use of locale_t requires inclusion of <xlocale.h>, dnl e.g. on Mac OS X 10.5. If <locale.h> does not define locale_t by dnl itself, we assume that <xlocale.h> will do so. AC_CACHE_CHECK([whether locale.h defines locale_t], [gl_cv_header_locale_has_locale_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <locale.h> locale_t x;]], [[]])], [gl_cv_header_locale_has_locale_t=yes], [gl_cv_header_locale_has_locale_t=no]) ]) dnl Check for <xlocale.h>. AC_CHECK_HEADERS_ONCE([xlocale.h]) if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi HAVE_LOCALE_T=1 else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no if test $gl_cv_header_locale_has_locale_t = yes; then HAVE_LOCALE_T=1 else HAVE_LOCALE_T=0 fi fi AC_SUBST([HAVE_XLOCALE_H]) ]) # gl_LOCALE_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_LOCALE_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_LOCALE_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALECONV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE_NULL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUPLOCALE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALENAME]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) ]) AC_DEFUN([gl_LOCALE_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE]) HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) HAVE_FREELOCALE=1; AC_SUBST([HAVE_FREELOCALE]) REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV]) REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE]) REPLACE_NEWLOCALE=0; AC_SUBST([REPLACE_NEWLOCALE]) REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE]) REPLACE_FREELOCALE=0; AC_SUBST([REPLACE_FREELOCALE]) REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV]) LOCALENAME_ENHANCE_LOCALE_FUNCS=0; AC_SUBST([LOCALENAME_ENHANCE_LOCALE_FUNCS]) ]) ������������������a2ps-4.15.5/m4/lstat.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000005711�14374751113�011265� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 34 # Copyright (C) 1997-2001, 2003-2023 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. AC_DEFUN([gl_FUNC_LSTAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl If lstat does not exist, the replacement <sys/stat.h> does dnl "#define lstat stat", and lstat.c is a no-op. AC_CHECK_FUNCS_ONCE([lstat]) if test $ac_cv_func_lstat = yes; then AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in solaris* | *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi ]) # Prerequisites of lib/lstat.c. AC_DEFUN([gl_PREREQ_LSTAT], [:]) AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], [ dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ. AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether lstat correctly handles trailing slash], [gl_cv_func_lstat_dereferences_slashed_symlink], [rm -f conftest.sym conftest.file echo >conftest.file AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT], [[struct stat sbuf; if (symlink ("conftest.file", "conftest.sym") != 0) return 1; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ]])], [gl_cv_func_lstat_dereferences_slashed_symlink=yes], [gl_cv_func_lstat_dereferences_slashed_symlink=no], [case "$host_os" in linux-* | linux) # Guess yes on Linux systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; midipix*) # Guess yes on systems that emulate the Linux system calls. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; *-gnu* | gnu*) # Guess yes on glibc systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; mingw*) # Guess no on native Windows. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; *) # If we don't know, obey --enable-cross-guesses. gl_cv_func_lstat_dereferences_slashed_symlink="$gl_cross_guess_normal" ;; esac ]) rm -f conftest.sym conftest.file ]) case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], [Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash.]) ;; esac ]) �������������������������������������������������������a2ps-4.15.5/m4/ltoptions.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000034275�14337402464�012201� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free # Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option '$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the 'shared' and # 'disable-shared' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the 'static' and # 'disable-static' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the 'fast-install' # and 'disable-fast-install' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --with-aix-soname flag, and support the `aix-soname=aix' # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_WITH([aix-soname], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/ltsugar.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000010453�14337402464�011617� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/ltversion.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000001312�14337402464�012155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation, # Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 4245 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.7]) m4_define([LT_PACKAGE_REVISION], [2.4.7]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.7' macro_revision='2.4.7' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/lt~obsolete.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000014007�14337402464�012507� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free # Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/malloc.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000013533�14374751113�011406� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# malloc.m4 serial 29 dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # This is adapted with modifications from upstream Autoconf here: # https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n949 AC_DEFUN([_AC_FUNC_MALLOC_IF], [ AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles AC_CACHE_CHECK([whether malloc (0) returns nonnull], [ac_cv_func_malloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <stdlib.h> ]], [[void *p = malloc (0); int result = !p; free (p); return result;]]) ], [ac_cv_func_malloc_0_nonnull=yes], [ac_cv_func_malloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ | gnu* | *-musl* | midipix* | midnightbsd* \ | hpux* | solaris* | cygwin* | mingw* | msys* ) ac_cv_func_malloc_0_nonnull="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; esac ]) ]) AS_CASE([$ac_cv_func_malloc_0_nonnull], [*yes], [$1], [$2]) ])# _AC_FUNC_MALLOC_IF # gl_FUNC_MALLOC_GNU # ------------------ # Replace malloc if it is not compatible with GNU libc. AC_DEFUN([gl_FUNC_MALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX" if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC_FOR_MALLOC_GNU=1]) fi ]) # gl_FUNC_MALLOC_PTRDIFF # ---------------------- # Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX, # and replace malloc otherwise. AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1 ]) # Test whether malloc, realloc, calloc refuse to create objects # larger than what can be expressed in ptrdiff_t. # Set gl_cv_func_malloc_gnu to yes or no accordingly. AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF], [ AC_CACHE_CHECK([whether malloc is ptrdiff_t safe], [gl_cv_malloc_ptrdiff], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stdint.h> ]], [[/* 64-bit ptrdiff_t is so wide that no practical platform can exceed it. */ #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) /* On rare machines where size_t fits in ptrdiff_t there is no problem. */ #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t bounds even on 32-bit platforms. We don't know which non-glibc systems are safe. */ #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE return 0; #else #error "malloc might not be ptrdiff_t safe" syntax error #endif ]])], [gl_cv_malloc_ptrdiff=yes], [gl_cv_malloc_ptrdiff=no]) ]) ]) # gl_FUNC_MALLOC_POSIX # -------------------- # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it # fails, and doesn't mess up with ptrdiff_t overflow), and replace # malloc if it is not. AC_DEFUN([gl_FUNC_MALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MALLOC_PTRDIFF]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test "$gl_cv_func_malloc_posix" = yes; then AC_DEFINE([HAVE_MALLOC_POSIX], [1], [Define if malloc, realloc, and calloc set errno on allocation failure.]) else REPLACE_MALLOC_FOR_MALLOC_POSIX=1 fi ]) # Test whether malloc, realloc, calloc set errno to ENOMEM on failure. # Set gl_cv_func_malloc_posix to yes or no accordingly. AC_DEFUN([gl_CHECK_MALLOC_POSIX], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether malloc, realloc, calloc set errno on failure], [gl_cv_func_malloc_posix], [ dnl It is too dangerous to try to allocate a large amount of memory: dnl some systems go to their knees when you do that. So assume that dnl all Unix implementations of the function set errno on failure, dnl except on those platforms where we have seen 'test-malloc-gnu', dnl 'test-realloc-gnu', 'test-calloc-gnu' fail. case "$host_os" in mingw*) gl_cv_func_malloc_posix=no ;; irix* | solaris*) dnl On IRIX 6.5, the three functions return NULL with errno unset dnl when the argument is larger than PTRDIFF_MAX. dnl On Solaris 11.3, the three functions return NULL with errno set dnl to EAGAIN, not ENOMEM, when the argument is larger than dnl PTRDIFF_MAX. dnl Here is a test program: m4_divert_push([KILL]) #include <errno.h> #include <stdio.h> #include <stdlib.h> #define ptrdiff_t long #ifndef PTRDIFF_MAX # define PTRDIFF_MAX ((ptrdiff_t) ((1UL << (8 * sizeof (ptrdiff_t) - 1)) - 1)) #endif int main () { void *p; fprintf (stderr, "PTRDIFF_MAX = %lu\n", (unsigned long) PTRDIFF_MAX); errno = 0; p = malloc ((unsigned long) PTRDIFF_MAX + 1); fprintf (stderr, "p=%p errno=%d\n", p, errno); errno = 0; p = calloc (PTRDIFF_MAX / 2 + 1, 2); fprintf (stderr, "p=%p errno=%d\n", p, errno); errno = 0; p = realloc (NULL, (unsigned long) PTRDIFF_MAX + 1); fprintf (stderr, "p=%p errno=%d\n", p, errno); return 0; } m4_divert_pop([KILL]) gl_cv_func_malloc_posix=no ;; *) gl_cv_func_malloc_posix=yes ;; esac ]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/malloca.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001033�14374751113�011537� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# malloca.m4 serial 2 dnl Copyright (C) 2003-2004, 2006-2007, 2009-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MALLOCA], [ dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables dnl @ALLOCA@ and @LTALLOCA@. dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. AC_REQUIRE([gl_EEMALLOC]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/manywarnings.m4����������������������������������������������������������������������0000644�0000000�0000000�00000014725�14374751113�012660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# manywarnings.m4 serial 23 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_MANYWARN_COMPLEMENT(OUTVAR, LISTVAR, REMOVEVAR) # -------------------------------------------------- # Copy LISTVAR to OUTVAR except for the entries in REMOVEVAR. # Elements separated by whitespace. In set logic terms, the function # does OUTVAR = LISTVAR \ REMOVEVAR. AC_DEFUN([gl_MANYWARN_COMPLEMENT], [ gl_warn_set= set x $2; shift for gl_warn_item do case " $3 " in *" $gl_warn_item "*) ;; *) gl_AS_VAR_APPEND([gl_warn_set], [" $gl_warn_item"]) ;; esac done $1=$gl_warn_set ]) # gl_MANYWARN_ALL_GCC(VARIABLE) # ----------------------------- # Add all documented GCC warning parameters to variable VARIABLE. # Note that you need to test them using gl_WARN_ADD if you want to # make sure your gcc understands it. # # The effects of this macro depend on the current language (_AC_LANG). AC_DEFUN([gl_MANYWARN_ALL_GCC], [_AC_LANG_DISPATCH([$0], _AC_LANG, $@)]) # Specialization for _AC_LANG = C. AC_DEFUN([gl_MANYWARN_ALL_GCC(C)], [ AC_LANG_PUSH([C]) dnl First, check for some issues that only occur when combining multiple dnl gcc warning categories. AC_REQUIRE([AC_PROG_CC]) if test -n "$GCC"; then dnl Check if -Wextra -Werror -Wno-missing-field-initializers is supported dnl with the current $CC $CFLAGS $CPPFLAGS. AC_CACHE_CHECK([whether -Wno-missing-field-initializers is supported], [gl_cv_cc_nomfi_supported], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Werror -Wno-missing-field-initializers" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_nomfi_supported=yes], [gl_cv_cc_nomfi_supported=no]) CFLAGS="$gl_save_CFLAGS" ]) if test "$gl_cv_cc_nomfi_supported" = yes; then dnl Now check whether -Wno-missing-field-initializers is needed dnl for the { 0, } construct. AC_CACHE_CHECK([whether -Wno-missing-field-initializers is needed], [gl_cv_cc_nomfi_needed], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Werror" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[int f (void) { typedef struct { int a; int b; } s_t; s_t s1 = { 0, }; return s1.b; } ]], [[]])], [gl_cv_cc_nomfi_needed=no], [gl_cv_cc_nomfi_needed=yes]) CFLAGS="$gl_save_CFLAGS" ]) fi dnl Next, check if -Werror -Wuninitialized is useful with the dnl user's choice of $CFLAGS; some versions of gcc warn that it dnl has no effect if -O is not also used AC_CACHE_CHECK([whether -Wuninitialized is supported], [gl_cv_cc_uninitialized_supported], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror -Wuninitialized" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_uninitialized_supported=yes], [gl_cv_cc_uninitialized_supported=no]) CFLAGS="$gl_save_CFLAGS" ]) fi # List all gcc warning categories. # To compare this list to your installed GCC's, run this Bash command: # # comm -3 \ # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\).*/\1/p' manywarnings.m4; \ # awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec) | sort) \ # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort) $1= for gl_manywarn_item in -fanalyzer -fno-common \ -Wall \ -Warith-conversion \ -Wbad-function-cast \ -Wcast-align=strict \ -Wdate-time \ -Wdisabled-optimization \ -Wdouble-promotion \ -Wduplicated-branches \ -Wduplicated-cond \ -Wextra \ -Wformat-signedness \ -Winit-self \ -Winline \ -Winvalid-pch \ -Wlogical-op \ -Wmissing-declarations \ -Wmissing-include-dirs \ -Wmissing-prototypes \ -Wnested-externs \ -Wnull-dereference \ -Wold-style-definition \ -Wopenmp-simd \ -Woverlength-strings \ -Wpacked \ -Wpointer-arith \ -Wshadow \ -Wstack-protector \ -Wstrict-overflow \ -Wstrict-prototypes \ -Wsuggest-attribute=cold \ -Wsuggest-attribute=const \ -Wsuggest-attribute=format \ -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn \ -Wsuggest-attribute=pure \ -Wsuggest-final-methods \ -Wsuggest-final-types \ -Wsync-nand \ -Wsystem-headers \ -Wtrampolines \ -Wuninitialized \ -Wunknown-pragmas \ -Wunsafe-loop-optimizations \ -Wunused-macros \ -Wvariadic-macros \ -Wvector-operation-performance \ -Wvla \ -Wwrite-strings \ \ ; do gl_AS_VAR_APPEND([$1], [" $gl_manywarn_item"]) done # gcc --help=warnings outputs an unusual form for these options; list # them here so that the above 'comm' command doesn't report a false match. gl_AS_VAR_APPEND([$1], [' -Warray-bounds=2']) gl_AS_VAR_APPEND([$1], [' -Wattribute-alias=2']) gl_AS_VAR_APPEND([$1], [' -Wbidi-chars=any,ucn']) gl_AS_VAR_APPEND([$1], [' -Wformat-overflow=2']) gl_AS_VAR_APPEND([$1], [' -Wformat=2']) gl_AS_VAR_APPEND([$1], [' -Wformat-truncation=2']) gl_AS_VAR_APPEND([$1], [' -Wimplicit-fallthrough=5']) gl_AS_VAR_APPEND([$1], [' -Wshift-overflow=2']) gl_AS_VAR_APPEND([$1], [' -Wuse-after-free=3']) gl_AS_VAR_APPEND([$1], [' -Wunused-const-variable=2']) gl_AS_VAR_APPEND([$1], [' -Wvla-larger-than=4031']) # These are needed for older GCC versions. if test -n "$GCC"; then case `($CC --version) 2>/dev/null` in 'gcc (GCC) '[[0-3]].* | \ 'gcc (GCC) '4.[[0-7]].*) gl_AS_VAR_APPEND([$1], [' -fdiagnostics-show-option']) gl_AS_VAR_APPEND([$1], [' -funit-at-a-time']) ;; esac fi # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then gl_AS_VAR_APPEND([$1], [' -Wno-missing-field-initializers']) fi if test "$gl_cv_cc_uninitialized_supported" = no; then gl_AS_VAR_APPEND([$1], [' -Wno-uninitialized']) fi # This warning have too many false alarms in GCC 11.2.1. # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101713 gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-malloc-leak']) AC_LANG_POP([C]) ]) # Specialization for _AC_LANG = C++. AC_DEFUN([gl_MANYWARN_ALL_GCC(C++)], [ gl_MANYWARN_ALL_GCC_CXX_IMPL([$1]) ]) �������������������������������������������a2ps-4.15.5/m4/mbrtowc.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000055777�14374751113�011634� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbrtowc.m4 serial 39 -*- coding: utf-8 -*- dnl Copyright (C) 2001-2002, 2004-2005, 2008-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBRTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([gl_PTHREADLIB]) AC_CHECK_HEADERS_ONCE([threads.h]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([mbrtowc]) if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 AC_CHECK_DECLS([mbrtowc],,, [[ #include <wchar.h> ]]) if test $ac_cv_have_decl_mbrtowc = yes; then dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_MBRTOWC=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBRTOWC=1 else gl_MBRTOWC_NULL_ARG1 gl_MBRTOWC_NULL_ARG2 gl_MBRTOWC_RETVAL gl_MBRTOWC_NUL_RETVAL gl_MBRTOWC_STORES_INCOMPLETE gl_MBRTOWC_EMPTY_INPUT gl_MBRTOWC_C_LOCALE case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1], [Define if the mbrtowc function has the NULL pwc argument bug.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_null_arg2" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1], [Define if the mbrtowc function has the NULL string argument bug.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_retval" in *yes) ;; *) AC_DEFINE([MBRTOWC_RETVAL_BUG], [1], [Define if the mbrtowc function returns a wrong return value.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_nul_retval" in *yes) ;; *) AC_DEFINE([MBRTOWC_NUL_RETVAL_BUG], [1], [Define if the mbrtowc function does not return 0 for a NUL character.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_stores_incomplete" in *no) ;; *) AC_DEFINE([MBRTOWC_STORES_INCOMPLETE_BUG], [1], [Define if the mbrtowc function stores a wide character when reporting incomplete input.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_empty_input" in *yes) ;; *) AC_DEFINE([MBRTOWC_EMPTY_INPUT_BUG], [1], [Define if the mbrtowc function does not return (size_t) -2 for empty input.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in *yes) ;; *) AC_DEFINE([MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ], [1], [Define if the mbrtowc function may signal encoding errors in the C locale.]) REPLACE_MBRTOWC=1 ;; esac fi fi if test $REPLACE_MBSTATE_T = 1; then case "$host_os" in mingw*) MBRTOWC_LIB= ;; *) gl_WEAK_SYMBOLS case "$gl_cv_have_weak" in *yes) MBRTOWC_LIB= ;; *) MBRTOWC_LIB="$LIBPTHREAD" ;; esac ;; esac else MBRTOWC_LIB= fi dnl MBRTOWC_LIB is expected to be '-pthread' or '-lpthread' on AIX dnl with gcc or xlc, and empty otherwise. AC_SUBST([MBRTOWC_LIB]) dnl For backward compatibility. LIB_MBRTOWC="$MBRTOWC_LIB" AC_SUBST([LIB_MBRTOWC]) ]) dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that dnl redefines the semantics of the given mbstate_t type. dnl Result is REPLACE_MBSTATE_T. dnl When this is set to 1, we replace both mbsinit() and mbrtowc(), in order to dnl avoid inconsistencies. AC_DEFUN([gl_MBSTATE_T_BROKEN], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_CHECK_FUNCS_ONCE([mbsinit]) AC_CHECK_FUNCS_ONCE([mbrtowc]) dnl On native Windows, we know exactly how mbsinit() behaves and don't need dnl to override it, even if - like on MSVC - mbsinit() is only defined as dnl an inline function, not as a global function. if case "$host_os" in mingw*) true ;; *) test $ac_cv_func_mbsinit = yes ;; esac \ && test $ac_cv_func_mbrtowc = yes; then gl_MBRTOWC_INCOMPLETE_STATE gl_MBRTOWC_SANITYCHECK REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi ]) dnl Test whether mbrtowc puts the state into non-initial state when parsing an dnl incomplete multibyte character. dnl Result is gl_cv_func_mbrtowc_incomplete_state. AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles incomplete characters], [gl_cv_func_mbrtowc_incomplete_state], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_JA != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_incomplete_state=yes], [gl_cv_func_mbrtowc_incomplete_state=no], [:]) else if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { const char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_incomplete_state=yes], [gl_cv_func_mbrtowc_incomplete_state=no], [:]) fi fi ]) ]) dnl Test whether mbrtowc works not worse than mbtowc. dnl Result is gl_cv_func_mbrtowc_sanitycheck. AC_DEFUN([gl_MBRTOWC_SANITYCHECK], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc works as well as mbtowc], [gl_cv_func_mbrtowc_sanitycheck], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <stdlib.h> #include <string.h> #include <wchar.h> int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_sanitycheck=yes], [gl_cv_func_mbrtowc_sanitycheck=no], [:]) fi ]) ]) dnl Test whether mbrtowc supports a NULL pwc argument correctly. dnl Result is gl_cv_func_mbrtowc_null_arg1. AC_DEFUN([gl_MBRTOWC_NULL_ARG1], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument], [gl_cv_func_mbrtowc_null_arg1], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <stdlib.h> #include <string.h> #include <wchar.h> int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "\303\237er"; mbstate_t state; wchar_t wc; size_t ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 5, &state); if (ret != 2) result |= 1; if (!mbsinit (&state)) result |= 2; memset (&state, '\0', sizeof (mbstate_t)); ret = mbrtowc (NULL, input, 5, &state); if (ret != 2) /* Solaris 7 fails here: ret is -1. */ result |= 4; if (!mbsinit (&state)) result |= 8; } return result; }]])], [gl_cv_func_mbrtowc_null_arg1=yes], [gl_cv_func_mbrtowc_null_arg1=no], [:]) fi ]) ]) dnl Test whether mbrtowc supports a NULL string argument correctly. dnl Result is gl_cv_func_mbrtowc_null_arg2. AC_DEFUN([gl_MBRTOWC_NULL_ARG2], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument], [gl_cv_func_mbrtowc_null_arg2], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on OSF/1. osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { mbstate_t state; wchar_t wc; int ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_null_arg2=yes], [gl_cv_func_mbrtowc_null_arg2=no], [:]) fi ]) ]) dnl Test whether mbrtowc, when parsing the end of a multibyte character, dnl correctly returns the number of bytes that were needed to complete the dnl character (not the total number of bytes of the multibyte character). dnl Result is gl_cv_func_mbrtowc_retval. AC_DEFUN([gl_MBRTOWC_RETVAL], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether mbrtowc has a correct return value], [gl_cv_func_mbrtowc_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on HP-UX, Solaris, native Windows. hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> #include <wchar.h> int main () { int result = 0; int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } found_some_locale = 1; } /* This fails on native Windows. */ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 4; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 8; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 16; } found_some_locale = 1; } return (found_some_locale ? result : 77); }]])], [gl_cv_func_mbrtowc_retval=yes], [if test $? != 77; then gl_cv_func_mbrtowc_retval=no fi ], [:]) fi ]) ]) dnl Test whether mbrtowc, when parsing a NUL character, correctly returns 0. dnl Result is gl_cv_func_mbrtowc_nul_retval. AC_DEFUN([gl_MBRTOWC_NUL_RETVAL], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc returns 0 when parsing a NUL character], [gl_cv_func_mbrtowc_nul_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris 8 and 9. solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> #include <wchar.h> int main () { /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_nul_retval=yes], [gl_cv_func_mbrtowc_nul_retval=no], [:]) fi ]) ]) dnl Test whether mbrtowc stores a wide character when reporting incomplete dnl input. AC_DEFUN([gl_MBRTOWC_STORES_INCOMPLETE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc stores incomplete characters], [gl_cv_func_mbrtowc_stores_incomplete], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;; *) gl_cv_func_mbrtowc_stores_incomplete="guessing no" ;; esac changequote([,])dnl case "$host_os" in mingw*) AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> #include <wchar.h> int main () { int result = 0; if (setlocale (LC_ALL, "French_France.65001") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) result |= 1; } if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) result |= 2; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) result |= 4; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) result |= 8; } return result; }]])], [gl_cv_func_mbrtowc_stores_incomplete=no], [gl_cv_func_mbrtowc_stores_incomplete=yes], [:]) ;; *) AC_REQUIRE([gt_LOCALE_FR_UTF8]) if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <locale.h> #include <string.h> #include <wchar.h> int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { wchar_t wc = (wchar_t) 0xBADFACE; mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) && wc != (wchar_t) 0xBADFACE) return 1; } return 0; }]])], [gl_cv_func_mbrtowc_stores_incomplete=no], [gl_cv_func_mbrtowc_stores_incomplete=yes], [:]) fi ;; esac ]) ]) dnl Test whether mbrtowc returns the correct value on empty input. AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc works on empty input], [gl_cv_func_mbrtowc_empty_input], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX and glibc systems. aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac changequote([,])dnl AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <wchar.h> static wchar_t wc; static mbstate_t mbs; int main (void) { return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; }]])], [gl_cv_func_mbrtowc_empty_input=yes], [gl_cv_func_mbrtowc_empty_input=no], [:]) ]) ]) dnl Test whether mbrtowc reports encoding errors in the C locale. dnl Although POSIX was never intended to allow this, the GNU C Library dnl and other implementations do it. See: dnl https://sourceware.org/bugzilla/show_bug.cgi?id=19932 AC_DEFUN([gl_MBRTOWC_C_LOCALE], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether the C locale is free of encoding errors], [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal" AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <limits.h> #include <locale.h> #include <wchar.h> ]], [[ int i; char *locale = setlocale (LC_ALL, "C"); if (! locale) return 2; for (i = CHAR_MIN; i <= CHAR_MAX; i++) { char c = i; wchar_t wc; mbstate_t mbs = { 0, }; size_t ss = mbrtowc (&wc, &c, 1, &mbs); if (1 < ss) return 3; } return 0; ]])], [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes], [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no], [case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;; esac ]) ]) ]) # Prerequisites of lib/mbrtowc.c and lib/lc-charset-dispatch.c. AC_DEFUN([gl_PREREQ_MBRTOWC], [ AC_REQUIRE([AC_C_INLINE]) : ]) # Prerequisites of lib/mbtowc-lock.c. AC_DEFUN([gl_PREREQ_MBTOWC_LOCK], [ gl_VISIBILITY ]) dnl From Paul Eggert dnl This is an override of an autoconf macro. AC_DEFUN([AC_FUNC_MBRTOWC], [ dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60. AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], [gl_cv_func_mbrtowc], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <wchar.h>]], [[wchar_t wc; char const s[] = ""; size_t n = 1; mbstate_t state; return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])], [gl_cv_func_mbrtowc=yes], [gl_cv_func_mbrtowc=no])]) if test $gl_cv_func_mbrtowc = yes; then AC_DEFINE([HAVE_MBRTOWC], [1], [Define to 1 if mbrtowc and mbstate_t are properly declared.]) fi ]) �a2ps-4.15.5/m4/mbsinit.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000002401�14374751113�011574� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbsinit.m4 serial 9 dnl Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBSINIT], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([mbsinit]) if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 AC_CHECK_DECLS([mbsinit],,, [[ #include <wchar.h> ]]) if test $ac_cv_have_decl_mbsinit = yes; then dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_MBSINIT=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 else dnl On mingw, mbsinit() always returns 1, which is inappropriate for dnl states produced by mbrtowc() for an incomplete multibyte character dnl in multibyte locales. case "$host_os" in mingw*) REPLACE_MBSINIT=1 ;; esac fi fi ]) # Prerequisites of lib/mbsinit.c. AC_DEFUN([gl_PREREQ_MBSINIT], [ : ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/mbstate_t.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000002210�14374751113�012107� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mbstate_t.m4 serial 14 dnl Copyright (C) 2000-2002, 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # From Paul Eggert. # BeOS 5 has <wchar.h> but does not define mbstate_t, # so you can't declare an object of that type. # Check for this incompatibility with Standard C. # AC_TYPE_MBSTATE_T # ----------------- AC_DEFUN([AC_TYPE_MBSTATE_T], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl for HP-UX 11.11 AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT[ #include <wchar.h>]], [[mbstate_t x; return sizeof x;]])], [ac_cv_type_mbstate_t=yes], [ac_cv_type_mbstate_t=no])]) if test $ac_cv_type_mbstate_t = yes; then AC_DEFINE([HAVE_MBSTATE_T], [1], [Define to 1 if <wchar.h> declares mbstate_t.]) else AC_DEFINE([mbstate_t], [int], [Define to a type if <wchar.h> does not define.]) fi ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/memchr.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000006520�14374751113�011410� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# memchr.m4 serial 18 dnl Copyright (C) 2002-2004, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_FUNC_MEMCHR], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Check for prerequisites for memory fence checks. gl_FUNC_MMAP_ANON AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # https://bugzilla.redhat.com/show_bug.cgi?id=499689 # memchr should not dereference overestimated length after a match # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 # memchr should cast the second argument to 'unsigned char'. # This bug exists in Android 4.3. # Assume that memchr works on platforms that lack mprotect. AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <string.h> #if HAVE_SYS_MMAN_H # include <fcntl.h> # include <unistd.h> # include <sys/types.h> # include <sys/mman.h> # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif ]], [[ int result = 0; char *fence = NULL; #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) fence = two_pages + pagesize; } #endif if (fence) { /* Test against bugs on glibc systems. */ if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); if (memchr (fence - 9, 0, 79) != fence - 1) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; /* Test against bug on AIX 7.2. */ if (memchr (fence - 4, '6', 16) != fence - 4) result |= 8; } /* Test against bug on Android 4.3. */ { char input[3]; input[0] = 'a'; input[1] = 'b'; input[2] = 'c'; if (memchr (input, 0x789abc00 | 'b', 3) != input + 1) result |= 16; } return result; ]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no], [case "$host_os" in # Guess no on Android. linux*-android*) gl_cv_func_memchr_works="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_memchr_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;; esac ]) ]) case "$gl_cv_func_memchr_works" in *yes) ;; *) REPLACE_MEMCHR=1 ;; esac ]) # Prerequisites of lib/memchr.c. AC_DEFUN([gl_PREREQ_MEMCHR], [ AC_CHECK_HEADERS([bp-sym.h]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/mempcpy.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001527�14374751113�011611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mempcpy.m4 serial 14 dnl Copyright (C) 2003-2004, 2006-2007, 2009-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MEMPCPY], [ dnl Persuade glibc <string.h> to declare mempcpy(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'. AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) gl_CHECK_FUNCS_ANDROID([mempcpy], [[#include <string.h>]]) if test $ac_cv_func_mempcpy = no; then HAVE_MEMPCPY=0 case "$gl_cv_onwards_func_mempcpy" in future*) REPLACE_MEMPCPY=1 ;; esac fi ]) # Prerequisites of lib/mempcpy.c. AC_DEFUN([gl_PREREQ_MEMPCPY], [ : ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/memrchr.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001244�14374751113�011570� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# memrchr.m4 serial 11 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MEMRCHR], [ dnl Persuade glibc <string.h> to declare memrchr(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([memrchr]) if test $ac_cv_have_decl_memrchr = no; then HAVE_DECL_MEMRCHR=0 fi AC_CHECK_FUNCS([memrchr]) ]) # Prerequisites of lib/memrchr.c. AC_DEFUN([gl_PREREQ_MEMRCHR], [:]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/minmax.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000002455�14374751113�011431� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# minmax.m4 serial 4 dnl Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.53]) AC_DEFUN([gl_MINMAX], [ AC_REQUIRE([gl_PREREQ_MINMAX]) ]) # Prerequisites of lib/minmax.h. AC_DEFUN([gl_PREREQ_MINMAX], [ gl_MINMAX_IN_HEADER([limits.h]) gl_MINMAX_IN_HEADER([sys/param.h]) ]) dnl gl_MINMAX_IN_HEADER(HEADER) dnl The parameter has to be a literal header name; it cannot be macro, dnl nor a shell variable. (Because autoheader collects only AC_DEFINE dnl invocations with a literal macro name.) AC_DEFUN([gl_MINMAX_IN_HEADER], [ m4_pushdef([header], AS_TR_SH([$1])) m4_pushdef([HEADER], AS_TR_CPP([$1])) AC_CACHE_CHECK([whether <$1> defines MIN and MAX], [gl_cv_minmax_in_]header, [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <$1> int x = MIN (42, 17);]], [[]])], [gl_cv_minmax_in_]header[=yes], [gl_cv_minmax_in_]header[=no])]) if test $gl_cv_minmax_in_[]header = yes; then AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1, [Define to 1 if <$1> defines the MIN and MAX macros.]) fi m4_popdef([HEADER]) m4_popdef([header]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/mmap-anon.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000003747�14374751113�012030� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mmap-anon.m4 serial 12 dnl Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Detect how mmap can be used to create anonymous (not file-backed) memory # mappings. # - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS # and MAP_ANON exist and have the same value. # - On HP-UX, only MAP_ANONYMOUS exists. # - On Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix, only MAP_ANON exists. # - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be # used. AC_DEFUN_ONCE([gl_FUNC_MMAP_ANON], [ dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. AC_CHECK_FUNC([mmap], [gl_have_mmap=yes], [gl_have_mmap=no]) # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then AC_MSG_CHECKING([for MAP_ANONYMOUS]) AC_EGREP_CPP([I cannot identify this map], [ #include <sys/mman.h> #ifdef MAP_ANONYMOUS I cannot identify this map #endif ], [gl_have_mmap_anonymous=yes]) if test $gl_have_mmap_anonymous != yes; then AC_EGREP_CPP([I cannot identify this map], [ #include <sys/mman.h> #ifdef MAP_ANON I cannot identify this map #endif ], [AC_DEFINE([MAP_ANONYMOUS], [MAP_ANON], [Define to a substitute value for mmap()'s MAP_ANONYMOUS flag.]) gl_have_mmap_anonymous=yes]) fi AC_MSG_RESULT([$gl_have_mmap_anonymous]) if test $gl_have_mmap_anonymous = yes; then AC_DEFINE([HAVE_MAP_ANONYMOUS], [1], [Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including config.h and <sys/mman.h>.]) fi fi ]) �������������������������a2ps-4.15.5/m4/mode_t.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000002342�14374751113�011402� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mode_t.m4 serial 2 dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # For using mode_t, it's sufficient to use AC_TYPE_MODE_T and # include <sys/types.h>. # Define PROMOTED_MODE_T to the type that is the result of "default argument # promotion" (ISO C 6.5.2.2.(6)) of the type mode_t. AC_DEFUN([gl_PROMOTED_TYPE_MODE_T], [ AC_REQUIRE([AC_TYPE_MODE_T]) AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [ dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int', dnl and to itself otherwise. This assumption is not guaranteed by the ISO C dnl standard, but we don't know of any real-world counterexamples. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])], [gl_cv_promoted_mode_t='int'], [gl_cv_promoted_mode_t='mode_t']) ]) AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t], [Define to the type that is the result of default argument promotions of type mode_t.]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/msvc-inval.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001334�14374751113�012212� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# msvc-inval.m4 serial 1 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_INVAL], [ AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler]) if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1], [Define to 1 on MSVC platforms that have the "invalid parameter handler" concept.]) else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/msvc-nothrow.m4����������������������������������������������������������������������0000644�0000000�0000000�00000000530�14374751113�012576� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# msvc-nothrow.m4 serial 1 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_NOTHROW], [ AC_REQUIRE([gl_MSVC_INVAL]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/multiarch.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000004220�14374751113�012120� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# multiarch.m4 serial 9 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Determine whether the compiler is or may be producing universal binaries. # # On Mac OS X 10.5 and later systems, the user 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" # # Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly. AC_DEFUN_ONCE([gl_MULTIARCH], [ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. AC_CACHE_CHECK([whether the compiler produces multi-arch binaries], [gl_cv_c_multiarch], [gl_cv_c_multiarch=no AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; ]])], [ dnl Check for potential -arch flags. It is not universal unless dnl there are at least two -arch flags with different values. arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64 | arm | arm64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done ]) ]) if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi AC_SUBST([APPLE_UNIVERSAL_BUILD]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/nls.m4�������������������������������������������������������������������������������0000644�0000000�0000000�00000002322�14415562264�010730� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# nls.m4 serial 6 (gettext-0.20.2) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2020 Free dnl Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/nocrash.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000010555�14374751113�011575� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# nocrash.m4 serial 5 dnl Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Based on libsigsegv, from Bruno Haible and Paolo Bonzini. AC_PREREQ([2.13]) dnl Expands to some code for use in .c programs that will cause the configure dnl test to exit instead of crashing. This is useful to avoid triggering dnl action from a background debugger and to avoid core dumps. dnl Usage: ... dnl ]GL_NOCRASH[ dnl ... dnl int main() { nocrash_init(); ... } AC_DEFUN([GL_NOCRASH],[[ #include <stdlib.h> #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include <mach/mach.h> #include <mach/mach_error.h> #include <mach/thread_status.h> #include <mach/exception.h> #include <mach/task.h> #include <pthread.h> /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winerror.h> static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include <signal.h> #include <unistd.h> /* A POSIX signal handler. */ static void exception_handler (int sig) { _exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif ]]) ���������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/obstack.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000002267�14374751113�011567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# See if we need to provide obstacks. dnl Copyright 1996-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Autoconf's AC_FUNC_OBSTACK is marked obsolete since version 2.70. dnl We provide our own macro here. AC_DEFUN([gl_FUNC_OBSTACK], [ AC_CACHE_CHECK([for obstacks that work with any size object], [gl_cv_func_obstack], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include "obstack.h" void *obstack_chunk_alloc (size_t n) { return 0; } void obstack_chunk_free (void *p) { } /* Check that an internal function returns size_t, not int. */ size_t _obstack_memory_used (struct obstack *); ]], [[struct obstack mem; obstack_init (&mem); obstack_free (&mem, 0); ]])], [gl_cv_func_obstack=yes], [gl_cv_func_obstack=no])]) if test "$gl_cv_func_obstack" = yes; then AC_DEFINE([HAVE_OBSTACK], 1, [Define to 1 if the system has obstacks that work with any size object.]) fi ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/off_t.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000001006�14374751113�011224� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# off_t.m4 serial 1 dnl Copyright (C) 2012-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check whether to override the 'off_t' type. dnl Set WINDOWS_64_BIT_OFF_T. AC_DEFUN([gl_TYPE_OFF_T], [ m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_OFF_T=0 ]) AC_SUBST([WINDOWS_64_BIT_OFF_T]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/open-cloexec.m4����������������������������������������������������������������������0000644�0000000�0000000�00000001323�14374751113�012512� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Test whether O_CLOEXEC is defined. dnl Copyright 2017-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_PREPROC_O_CLOEXEC], [ AC_CACHE_CHECK([for O_CLOEXEC], [gl_cv_macro_O_CLOEXEC], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <fcntl.h> #ifndef O_CLOEXEC choke me; #endif ]], [[return O_CLOEXEC;]])], [gl_cv_macro_O_CLOEXEC=yes], [gl_cv_macro_O_CLOEXEC=no])]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/open-slash.m4������������������������������������������������������������������������0000644�0000000�0000000�00000003455�14374751113�012212� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# open-slash.m4 serial 2 dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Tests whether open() and creat() recognize a trailing slash. dnl Sets gl_cv_func_open_slash. AC_DEFUN([gl_OPEN_TRAILING_SLASH_BUG], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl open("foo/") should not create a file when the file name has a dnl trailing slash. FreeBSD only has the problem on symlinks. AC_CHECK_FUNCS_ONCE([lstat]) AC_CACHE_CHECK([whether open recognizes a trailing slash], [gl_cv_func_open_slash], [# Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <fcntl.h> #if HAVE_UNISTD_H # include <unistd.h> #endif ]GL_MDA_DEFINES[ int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; }]])], [gl_cv_func_open_slash=yes], [gl_cv_func_open_slash=no], [ changequote(,)dnl case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac changequote([,])dnl ]) rm -f conftest.sl conftest.tmp conftest.lnk ]) case "$gl_cv_func_open_slash" in *no) AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1], [Define to 1 if open() fails to recognize a trailing slash.]) ;; esac ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/open.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000002765�14374751113�011105� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# open.m4 serial 15 dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_OPEN], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_PREPROC_O_CLOEXEC]) case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) dnl open("foo/") should not create a file when the file name has a dnl trailing slash. FreeBSD only has the problem on symlinks. AC_CHECK_FUNCS_ONCE([lstat]) if test "$gl_cv_macro_O_CLOEXEC" != yes; then REPLACE_OPEN=1 fi gl_OPEN_TRAILING_SLASH_BUG case "$gl_cv_func_open_slash" in *no) REPLACE_OPEN=1 ;; esac ;; esac dnl Replace open() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_OPEN = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_OPEN=1 fi fi ]) dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag. m4_ifdef([gl_NONBLOCKING_IO], [ if test $REPLACE_OPEN = 0; then gl_NONBLOCKING_IO if test $gl_cv_have_open_O_NONBLOCK != yes; then REPLACE_OPEN=1 fi fi ]) ]) # Prerequisites of lib/open.c. AC_DEFUN([gl_PREREQ_OPEN], [ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) : ]) �����������a2ps-4.15.5/m4/openat.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000002023�14374751113�011415� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 46 # See if we need to use our replacement for Solaris' openat et al functions. dnl Copyright (C) 2004-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Written by Jim Meyering. AC_DEFUN([gl_FUNC_OPENAT], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([openat]) AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) AC_REQUIRE([gl_PREPROC_O_CLOEXEC]) case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink+$gl_cv_macro_O_CLOEXEC in yes+*yes+yes) ;; yes+*) # Solaris 10 lacks O_CLOEXEC. # Solaris 9 has *at functions, but uniformly mishandles trailing # slash in all of them. REPLACE_OPENAT=1 ;; *) HAVE_OPENAT=0 ;; esac ]) # Prerequisites of lib/openat.c. AC_DEFUN([gl_PREREQ_OPENAT], [ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) : ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/opendir.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001701�14374751113�011571� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# opendir.m4 serial 5 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_OPENDIR], [ AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS([opendir]) if test $ac_cv_func_opendir = no; then HAVE_OPENDIR=0 fi dnl Replace opendir() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then if test $HAVE_OPENDIR = 1; then REPLACE_OPENDIR=1 fi fi ]) dnl Replace opendir() on OS/2 kLIBC to support dirfd() function replaced dnl by gnulib. case $host_os,$HAVE_OPENDIR in os2*,1) REPLACE_OPENDIR=1;; esac ]) ���������������������������������������������������������������a2ps-4.15.5/m4/pathmax.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000002155�14374751113�011577� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# pathmax.m4 serial 11 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_PATHMAX], [ dnl Prerequisites of lib/pathmax.h. AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) # Expands to a piece of C program that defines PATH_MAX in the same way as # "pathmax.h" will do. AC_DEFUN([gl_PATHMAX_SNIPPET], [[ /* Arrange to define PATH_MAX, like "pathmax.h" does. */ #if HAVE_UNISTD_H # include <unistd.h> #endif #include <limits.h> #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include <sys/param.h> #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifdef __hpux # undef PATH_MAX # define PATH_MAX 1024 #endif #if defined _WIN32 && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif ]]) # Prerequisites of gl_PATHMAX_SNIPPET. AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], [ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/pipe.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000000660�14374751113�011071� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# pipe.m4 serial 2 dnl Copyright (C) 2010-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_PIPE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([pipe]) if test $ac_cv_func_pipe != yes; then HAVE_PIPE=0 fi ]) ��������������������������������������������������������������������������������a2ps-4.15.5/m4/po.m4��������������������������������������������������������������������������������0000644�0000000�0000000�00000044617�14415562264�010567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# po.m4 serial 31 (gettext-0.20.2) dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. AC_PREREQ([2.60]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl AC_REQUIRE([AC_PROG_SED])dnl AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.20]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Test whether it is GNU msgmerge >= 0.20. if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' else dnl Test whether it is GNU msgmerge >= 0.12. if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' else dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is dnl slow. But this is not a big problem, as such old gettext versions are dnl hardly in use any more. MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' fi fi AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat <<EOT $* EOT } gt_echo='echo_func' fi fi # A sed script that extracts the value of VARIABLE from a Makefile. tab=`printf '\t'` sed_x_variable=' # Test if the hold space is empty. x s/P/P/ x ta # Yes it was empty. Look if we have the expected variable definition. /^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{ # Seen the first line of the variable definition. s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=// ba } bd :a # Here we are processing a line from the variable definition. # Remove comment, more precisely replace it with a space. s/#.*$/ / # See if the line ends in a backslash. tb :b s/\\$// # Print the line, without the trailing backslash. p tc # There was no trailing backslash. The end of the variable definition is # reached. Clear the hold space. s/^.*$// x bd :c # A trailing backslash means that the variable definition continues in the # next line. Put a nonempty string into the hold space to indicate this. s/^.*$/P/ x :d ' changequote([,])dnl # Set POTFILES to the value of the Makefile variable POTFILES. sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` # Compute POTFILES_DEPS as # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) POTFILES_DEPS= for file in $POTFILES; do POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" done POMAKEFILEDEPS="" if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` ALL_LINGUAS=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) # Compute PROPERTIESFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties) # Compute CLASSFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class) # Compute QMFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) # Compute MSGFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) # Compute RESOURCESDLLFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= PROPERTIESFILES= CLASSFILES= QMFILES= MSGFILES= RESOURCESDLLFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" PROPERTIESFILES="$PROPERTIESFILES \$(srcdir)/\$(DOMAIN)_$lang.properties" CLASSFILES="$CLASSFILES \$(srcdir)/\$(DOMAIN)_$lang.class" QMFILES="$QMFILES $srcdirpre$lang.qm" frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= JAVACATALOGS= QTCATALOGS= TCLCATALOGS= CSHARPCATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" QTCATALOGS="$QTCATALOGS $lang.qm" frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" done fi sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" tab=`printf '\t'` if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" <<EOF $frobbedlang.msg: $lang.po ${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ ${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } EOF done fi if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <<EOF $frobbedlang/\$(DOMAIN).resources.dll: $lang.po ${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ ${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } EOF done fi if test -n "$POMAKEFILEDEPS"; then cat >> "$ac_file.tmp" <<EOF Makefile: $POMAKEFILEDEPS EOF fi mv "$ac_file.tmp" "$ac_file" ]) dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. AC_DEFUN([AM_XGETTEXT_OPTION_INIT], [ XGETTEXT_EXTRA_OPTIONS= ]) dnl Registers an option to be passed to xgettext in the po subdirectory. AC_DEFUN([AM_XGETTEXT_OPTION], [ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" ]) �����������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/progtest.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000006022�14415562264�012004� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# progtest.m4 serial 8 (gettext-0.20.2) dnl Copyright (C) 1996-2003, 2005, 2008-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1996. AC_PREREQ([2.50]) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL([ac_cv_path_$1], [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$][$1]) else AC_MSG_RESULT([no]) fi AC_SUBST([$1])dnl ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/quote.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000000573�14374751113�011274� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# quote.m4 serial 6 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_QUOTE], [ dnl Prerequisites of lib/quote.c. dnl (none) : ]) �������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/quotearg.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000000533�14374751113�011762� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# quotearg.m4 serial 10 dnl Copyright (C) 2002, 2004-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_QUOTEARG], [ AC_REQUIRE([AC_C_RESTRICT]) : ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/rawmemchr.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000001163�14374751113�012120� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# rawmemchr.m4 serial 3 dnl Copyright (C) 2003, 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_RAWMEMCHR], [ dnl Persuade glibc <string.h> to declare rawmemchr(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([rawmemchr]) if test $ac_cv_func_rawmemchr = no; then HAVE_RAWMEMCHR=0 fi ]) # Prerequisites of lib/strchrnul.c. AC_DEFUN([gl_PREREQ_RAWMEMCHR], [:]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/readdir.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000000670�14374751113�011547� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# readdir.m4 serial 1 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_READDIR], [ AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) AC_CHECK_FUNCS([readdir]) if test $ac_cv_func_readdir = no; then HAVE_READDIR=0 fi ]) ������������������������������������������������������������������������a2ps-4.15.5/m4/readlink.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000010425�14374751113�011725� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# readlink.m4 serial 17 dnl Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_READLINK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS_ONCE([readlink]) if test $ac_cv_func_readlink = no; then HAVE_READLINK=0 else AC_CACHE_CHECK([whether readlink signature is correct], [gl_cv_decl_readlink_works], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> /* Cause compilation failure if original declaration has wrong type. */ ssize_t readlink (const char *, char *, size_t);]])], [gl_cv_decl_readlink_works=yes], [gl_cv_decl_readlink_works=no])]) dnl Solaris 9 ignores trailing slash. dnl FreeBSD 7.2 dereferences only one level of links with trailing slash. AC_CACHE_CHECK([whether readlink handles trailing slash correctly], [gl_cv_func_readlink_trailing_slash], [# We have readlink, so assume ln -s works. ln -s conftest.no-such conftest.link ln -s conftest.link conftest.lnk2 AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> ]], [[char buf[20]; return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])], [gl_cv_func_readlink_trailing_slash=yes], [gl_cv_func_readlink_trailing_slash=no], [case "$host_os" in # Guess yes on Linux or glibc systems. linux-* | linux | *-gnu* | gnu*) gl_cv_func_readlink_trailing_slash="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_readlink_trailing_slash="guessing yes" ;; # Guess no on AIX or HP-UX. aix* | hpux*) gl_cv_func_readlink_trailing_slash="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_readlink_trailing_slash="$gl_cross_guess_normal" ;; esac ]) rm -f conftest.link conftest.lnk2]) case "$gl_cv_func_readlink_trailing_slash" in *yes) if test "$gl_cv_decl_readlink_works" != yes; then REPLACE_READLINK=1 fi ;; *) AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink fails to recognize a trailing slash.]) REPLACE_READLINK=1 ;; esac AC_CACHE_CHECK([whether readlink truncates results correctly], [gl_cv_func_readlink_truncate], [# We have readlink, so assume ln -s works. ln -s ab conftest.link AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> ]], [[char c; return readlink ("conftest.link", &c, 1) != 1;]])], [gl_cv_func_readlink_truncate=yes], [gl_cv_func_readlink_truncate=no], [case "$host_os" in # Guess yes on Linux or glibc systems. linux-* | linux | *-gnu* | gnu*) gl_cv_func_readlink_truncate="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_readlink_truncate="guessing yes" ;; # Guess no on AIX or HP-UX. aix* | hpux*) gl_cv_func_readlink_truncate="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_readlink_truncate="$gl_cross_guess_normal" ;; esac ]) rm -f conftest.link conftest.lnk2]) case $gl_cv_func_readlink_truncate in *yes) if test "$gl_cv_decl_readlink_works" != yes; then REPLACE_READLINK=1 fi ;; *) AC_DEFINE([READLINK_TRUNCATE_BUG], [1], [Define to 1 if readlink sets errno instead of truncating a too-long link.]) REPLACE_READLINK=1 ;; esac fi ]) # Like gl_FUNC_READLINK, except prepare for separate compilation # (no REPLACE_READLINK, no AC_LIBOBJ). AC_DEFUN([gl_FUNC_READLINK_SEPARATE], [ AC_CHECK_FUNCS_ONCE([readlink]) gl_PREREQ_READLINK ]) # Prerequisites of lib/readlink.c. AC_DEFUN([gl_PREREQ_READLINK], [ : ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/readlinkat.m4������������������������������������������������������������������������0000644�0000000�0000000�00000002662�14374751113�012256� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 8 # See if we need to provide readlinkat replacement. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Written by Eric Blake. AC_DEFUN([gl_FUNC_READLINKAT], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) gl_CHECK_FUNCS_ANDROID([readlinkat], [[#include <unistd.h>]]) AC_REQUIRE([gl_FUNC_READLINK]) if test $ac_cv_func_readlinkat = no; then HAVE_READLINKAT=0 case "$gl_cv_onwards_func_readlinkat" in future*) REPLACE_READLINKAT=1 ;; esac else AC_CACHE_CHECK([whether readlinkat signature is correct], [gl_cv_decl_readlinkat_works], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> /* Check whether original declaration has correct type. */ ssize_t readlinkat (int, char const *, char *, size_t);]])], [gl_cv_decl_readlinkat_works=yes], [gl_cv_decl_readlinkat_works=no])]) # Assume readlinkat has the same bugs as readlink, # as is the case on OS X 10.10 with trailing slashes. case $gl_cv_decl_readlinkat_works,$gl_cv_func_readlink_trailing_slash,$gl_cv_func_readlink_truncate in *yes,*yes,*yes) ;; *) REPLACE_READLINKAT=1 ;; esac fi ]) ������������������������������������������������������������������������������a2ps-4.15.5/m4/realloc.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000004350�14374751113�011555� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# realloc.m4 serial 27 dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # This is adapted with modifications from upstream Autoconf here: # https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n1455 AC_DEFUN([_AC_FUNC_REALLOC_IF], [ AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles AC_CACHE_CHECK([whether realloc (0, 0) returns nonnull], [ac_cv_func_realloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <stdlib.h> ]], [[void *p = realloc (0, 0); int result = !p; free (p); return result;]]) ], [ac_cv_func_realloc_0_nonnull=yes], [ac_cv_func_realloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ | gnu* | *-musl* | midipix* | midnightbsd* \ | hpux* | solaris* | cygwin* | mingw* | msys* ) ac_cv_func_realloc_0_nonnull="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;; esac ]) ]) AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2]) ])# AC_FUNC_REALLOC # gl_FUNC_REALLOC_GNU # ------------------- # Replace realloc if it is not compatible with GNU libc. AC_DEFUN([gl_FUNC_REALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_REALLOC_POSIX]) if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC_FOR_REALLOC_GNU=1]) fi ])# gl_FUNC_REALLOC_GNU # gl_FUNC_REALLOC_POSIX # --------------------- # Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it # fails, and doesn't mess up with ptrdiff_t overflow), # and replace realloc if it is not. AC_DEFUN([gl_FUNC_REALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then REPLACE_REALLOC_FOR_REALLOC_POSIX=1 fi ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/reallocarray.m4����������������������������������������������������������������������0000644�0000000�0000000�00000001571�14374751113�012616� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# reallocarray.m4 serial 5 dnl Copyright (C) 2017-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_REALLOCARRAY], [ dnl Persuade glibc <stdlib.h> to declare reallocarray. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) gl_CHECK_FUNCS_ANDROID([reallocarray], [[#include <stdlib.h>]]) if test "$ac_cv_func_reallocarray" = no; then HAVE_REALLOCARRAY=0 case "$gl_cv_onwards_func_reallocarray" in future*) REPLACE_REALLOCARRAY=1 ;; esac elif test "$gl_cv_malloc_ptrdiff" = no; then REPLACE_REALLOCARRAY=1 fi ]) # Prerequisites of lib/reallocarray.c. AC_DEFUN([gl_PREREQ_REALLOCARRAY], [:]) ���������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/rename.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000025106�14374751113�011405� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 34 # Copyright (C) 2001, 2003, 2005-2006, 2009-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Volker Borchert. dnl Determine whether rename works for source file names with a trailing slash. dnl The rename from SunOS 4.1.1_U1 doesn't. dnl dnl If it doesn't, then define RENAME_TRAILING_SLASH_BUG and arrange dnl to compile the wrapper function. dnl AC_DEFUN([gl_FUNC_RENAME], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) dnl Solaris 11.3, AIX 7.1 mistakenly allow rename("file","name/"). dnl NetBSD 1.6 mistakenly forbids rename("dir","name/"). dnl FreeBSD 7.2 mistakenly allows rename("file","link-to-file/"). dnl The Solaris bug can be worked around without stripping dnl trailing slash, while the NetBSD bug requires stripping; dnl the two conditions can be distinguished by whether hard dnl links are also broken. AC_CACHE_CHECK([whether rename honors trailing slash on destination], [gl_cv_func_rename_slash_dst_works], [rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk touch conftest.f && touch conftest.f1 && mkdir conftest.d1 || AC_MSG_ERROR([cannot create temporary files]) # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.f conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ # include <stdio.h> # include <stdlib.h> ]], [[int result = 0; if (rename ("conftest.f1", "conftest.f2/") == 0) result |= 1; if (rename ("conftest.d1", "conftest.d2/") != 0) result |= 2; #if HAVE_LSTAT if (rename ("conftest.f", "conftest.lnk/") == 0) result |= 4; #endif return result; ]])], [gl_cv_func_rename_slash_dst_works=yes], [gl_cv_func_rename_slash_dst_works=no], dnl When crosscompiling, assume rename is broken. [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rename_slash_dst_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_rename_slash_dst_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu*) gl_cv_func_rename_slash_dst_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_rename_slash_dst_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rename_slash_dst_works="$gl_cross_guess_normal" ;; esac ]) rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk ]) case "$gl_cv_func_rename_slash_dst_works" in *yes) ;; *) REPLACE_RENAME=1 AC_DEFINE([RENAME_TRAILING_SLASH_DEST_BUG], [1], [Define if rename does not correctly handle slashes on the destination argument, such as on Solaris 11 or NetBSD 1.6.]) ;; esac dnl SunOS 4.1.1_U1 mistakenly forbids rename("dir/","name"). dnl Solaris 9 mistakenly allows rename("file/","name"). dnl FreeBSD 7.2 mistakenly allows rename("link-to-file/","name"). dnl These bugs require stripping trailing slash to avoid corrupting dnl symlinks with a trailing slash. AC_CACHE_CHECK([whether rename honors trailing slash on source], [gl_cv_func_rename_slash_src_works], [rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk touch conftest.f && touch conftest.f1 && mkdir conftest.d1 || AC_MSG_ERROR([cannot create temporary files]) # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.f conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ # include <stdio.h> # include <stdlib.h> ]], [[int result = 0; if (rename ("conftest.f1/", "conftest.d3") == 0) result |= 1; if (rename ("conftest.d1/", "conftest.d2") != 0) result |= 2; #if HAVE_LSTAT if (rename ("conftest.lnk/", "conftest.f") == 0) result |= 4; #endif return result; ]])], [gl_cv_func_rename_slash_src_works=yes], [gl_cv_func_rename_slash_src_works=no], dnl When crosscompiling, assume rename is broken. [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rename_slash_src_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_rename_slash_src_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu*) gl_cv_func_rename_slash_src_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_rename_slash_src_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rename_slash_src_works="$gl_cross_guess_normal" ;; esac ]) rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk ]) case "$gl_cv_func_rename_slash_src_works" in *yes) ;; *) REPLACE_RENAME=1 AC_DEFINE([RENAME_TRAILING_SLASH_SOURCE_BUG], [1], [Define if rename does not correctly handle slashes on the source argument, such as on Solaris 9 or cygwin 1.5.]) ;; esac dnl NetBSD 1.6 and cygwin 1.5.x mistakenly reduce hard link count dnl on rename("h1","h2"). dnl This bug requires stat'ting targets prior to attempting rename. AC_CHECK_FUNCS_ONCE([link]) AC_CACHE_CHECK([whether rename manages hard links correctly], [gl_cv_func_rename_link_works], [if test $ac_cv_func_link = yes; then if test $cross_compiling != yes; then rm -rf conftest.f conftest.f1 conftest.f2 if touch conftest.f conftest.f2 && ln conftest.f conftest.f1 && set x `ls -i conftest.f conftest.f1` && test "$2" = "$4"; then AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ # include <errno.h> # include <stdio.h> # include <stdlib.h> # include <unistd.h> ]GL_MDA_DEFINES], [[int result = 0; if (rename ("conftest.f", "conftest.f1")) result |= 1; if (unlink ("conftest.f1")) result |= 2; /* Allow either the POSIX-required behavior, where the previous rename kept conftest.f, or the (better) NetBSD behavior, where it removed conftest.f. */ if (rename ("conftest.f", "conftest.f") != 0 && errno != ENOENT) result |= 4; if (rename ("conftest.f1", "conftest.f1") == 0) result |= 8; if (rename ("conftest.f2", "conftest.f2") != 0) result |= 16; return result; ]])], [gl_cv_func_rename_link_works=yes], [gl_cv_func_rename_link_works=no], [dnl We don't get here. : ]) else gl_cv_func_rename_link_works="guessing no" fi rm -rf conftest.f conftest.f1 conftest.f2 else dnl When crosscompiling, assume rename is broken. case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rename_link_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_rename_link_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu*) gl_cv_func_rename_link_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_rename_link_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rename_link_works="$gl_cross_guess_normal" ;; esac fi else gl_cv_func_rename_link_works=yes fi ]) case "$gl_cv_func_rename_link_works" in *yes) ;; *) REPLACE_RENAME=1 AC_DEFINE([RENAME_HARD_LINK_BUG], [1], [Define if rename fails to leave hard links alone, as on NetBSD 1.6 or Cygwin 1.5.]) ;; esac dnl Cygwin 1.5.x mistakenly allows rename("dir","file"). dnl mingw mistakenly forbids rename("dir1","dir2"). dnl These bugs require stripping trailing slash to avoid corrupting dnl symlinks with a trailing slash. AC_CACHE_CHECK([whether rename manages existing destinations correctly], [gl_cv_func_rename_dest_works], [rm -rf conftest.f conftest.d1 conftest.d2 touch conftest.f && mkdir conftest.d1 conftest.d2 || AC_MSG_ERROR([cannot create temporary files]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ # include <stdio.h> # include <stdlib.h> ]], [[int result = 0; if (rename ("conftest.d1", "conftest.d2") != 0) result |= 1; if (rename ("conftest.d2", "conftest.f") == 0) result |= 2; return result; ]])], [gl_cv_func_rename_dest_works=yes], [gl_cv_func_rename_dest_works=no], dnl When crosscompiling, assume rename is broken. [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rename_dest_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu*) gl_cv_func_rename_dest_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_rename_dest_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rename_dest_works="$gl_cross_guess_normal" ;; esac ]) rm -rf conftest.f conftest.d1 conftest.d2 ]) case "$gl_cv_func_rename_dest_works" in *yes) ;; *) REPLACE_RENAME=1 AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1], [Define if rename does not work when the destination file exists, as on Cygwin 1.5 or Windows.]) ;; esac ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/renameat.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000001512�14374751113�011725� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 4 # See if we need to provide renameat replacement. dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Written by Eric Blake. AC_DEFUN([gl_FUNC_RENAMEAT], [ AC_REQUIRE([gl_FUNC_OPENAT]) AC_REQUIRE([gl_FUNC_RENAME]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS([linux/fs.h]) AC_CHECK_FUNCS_ONCE([renameat]) if test $ac_cv_func_renameat = no; then HAVE_RENAMEAT=0 elif test $REPLACE_RENAME = 1; then dnl Solaris 9 and 10 have the same bugs in renameat as in rename. REPLACE_RENAMEAT=1 fi gl_CHECK_FUNCS_ANDROID([renameat2], [[#include <stdio.h>]]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/rmdir.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000004044�14374751113�011251� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# rmdir.m4 serial 18 dnl Copyright (C) 2002, 2005, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_RMDIR], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Detect cygwin 1.5.x bug. AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CACHE_CHECK([whether rmdir works], [gl_cv_func_rmdir_works], [mkdir conftest.dir touch conftest.file AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <stdio.h> #include <errno.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* on Windows with MSVC */ # include <direct.h> #endif ]GL_MDA_DEFINES], [[int result = 0; if (!rmdir ("conftest.file/")) result |= 1; else if (errno != ENOTDIR) result |= 2; if (!rmdir ("conftest.dir/./")) result |= 4; return result; ]])], [gl_cv_func_rmdir_works=yes], [gl_cv_func_rmdir_works=no], [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_rmdir_works="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_rmdir_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_rmdir_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_rmdir_works="guessing no" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_rmdir_works="$gl_cross_guess_normal" ;; esac ]) rm -rf conftest.dir conftest.file]) case "$gl_cv_func_rmdir_works" in *yes) ;; *) REPLACE_RMDIR=1 ;; esac ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/save-cwd.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000000570�14374751113�011645� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 10 dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Prerequisites for lib/save-cwd.c. AC_DEFUN([gl_SAVE_CWD], [ AC_CHECK_FUNCS_ONCE([fchdir]) ]) ����������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/setlocale_null.m4��������������������������������������������������������������������0000644�0000000�0000000�00000010214�14374751113�013135� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# setlocale_null.m4 serial 8 dnl Copyright (C) 2019-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SETLOCALE_NULL], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_PTHREADLIB]) AC_CHECK_HEADERS_ONCE([threads.h]) AC_CACHE_CHECK([whether setlocale (LC_ALL, NULL) is multithread-safe], [gl_cv_func_setlocale_null_all_mtsafe], [case "$host_os" in # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku. *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku*) gl_cv_func_setlocale_null_all_mtsafe=no ;; # Guess no on Cygwin < 3.4.6. cygwin*) AC_EGREP_CPP([Lucky user], [ #if defined __CYGWIN__ #include <cygwin/version.h> #if CYGWIN_VERSION_DLL_COMBINED >= CYGWIN_VERSION_DLL_MAKE_COMBINED (3004, 6) Lucky user #endif #endif ], [gl_cv_func_setlocale_null_all_mtsafe=yes], [gl_cv_func_setlocale_null_all_mtsafe=no]) ;; # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) gl_cv_func_setlocale_null_all_mtsafe=yes ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; esac ]) dnl On platforms without multithreading, there is no issue. case "$host_os" in mingw*) ;; *) if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then gl_cv_func_setlocale_null_all_mtsafe="trivially yes" fi ;; esac case "$gl_cv_func_setlocale_null_all_mtsafe" in *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; esac AC_DEFINE_UNQUOTED([SETLOCALE_NULL_ALL_MTSAFE], [$SETLOCALE_NULL_ALL_MTSAFE], [Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe.]) dnl This is about a single category (not LC_ALL). AC_CACHE_CHECK([whether setlocale (category, NULL) is multithread-safe], [gl_cv_func_setlocale_null_one_mtsafe], [case "$host_os" in # Guess no on OpenBSD, AIX. openbsd* | aix*) gl_cv_func_setlocale_null_one_mtsafe=no ;; # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. *-gnu* | gnu* | *-musl* | midipix* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) gl_cv_func_setlocale_null_one_mtsafe=yes ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; esac ]) dnl On platforms without multithreading, there is no issue. case "$host_os" in mingw*) ;; *) if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then gl_cv_func_setlocale_null_one_mtsafe="trivially yes" fi ;; esac case "$gl_cv_func_setlocale_null_one_mtsafe" in *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; esac AC_DEFINE_UNQUOTED([SETLOCALE_NULL_ONE_MTSAFE], [$SETLOCALE_NULL_ONE_MTSAFE], [Define to 1 if setlocale (category, NULL) is multithread-safe.]) dnl Determine link dependencies of lib/setlocale_null.c and lib/setlocale-lock.c. if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then case "$host_os" in mingw*) SETLOCALE_NULL_LIB= ;; *) gl_WEAK_SYMBOLS case "$gl_cv_have_weak" in *yes) SETLOCALE_NULL_LIB= ;; *) SETLOCALE_NULL_LIB="$LIBPTHREAD" ;; esac ;; esac else SETLOCALE_NULL_LIB= fi dnl SETLOCALE_NULL_LIB is expected to be '-pthread' or '-lpthread' on AIX dnl with gcc or xlc, and empty otherwise. AC_SUBST([SETLOCALE_NULL_LIB]) dnl For backward compatibility. LIB_SETLOCALE_NULL="$SETLOCALE_NULL_LIB" AC_SUBST([LIB_SETLOCALE_NULL]) ]) # Prerequisites of lib/setlocale-lock.c. AC_DEFUN([gl_PREREQ_SETLOCALE_LOCK], [ gl_VISIBILITY ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/sig2str.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000000641�14374751113�011530� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 7 dnl Copyright (C) 2002, 2005-2006, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SIG2STR], [ AC_CHECK_FUNCS([sig2str]) ]) # Prerequisites of lib/sig2str.c. AC_DEFUN([gl_PREREQ_SIG2STR], [ : ]) �����������������������������������������������������������������������������������������������a2ps-4.15.5/m4/socketlib.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000006076�14374751113�012122� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# socketlib.m4 serial 3 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl gl_SOCKETLIB dnl Determines the library to use for socket functions. dnl Sets and AC_SUBSTs LIBSOCKET. AC_DEFUN([gl_SOCKETLIB], [ gl_PREREQ_SYS_H_WINSOCK2 dnl for HAVE_WINSOCK2_H LIBSOCKET= if test $HAVE_WINSOCK2_H = 1; then dnl Native Windows API (not Cygwin). dnl If the function WSAStartup exists (declared in <winsock2.h> and dnl defined through -lws2_32), we need to call it. AC_CACHE_CHECK([for WSAStartup], [gl_cv_func_wsastartup], [ gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ #ifdef HAVE_WINSOCK2_H # include <winsock2.h> #endif]], [[ WORD wVersionRequested = MAKEWORD(1, 1); WSADATA wsaData; int err = WSAStartup(wVersionRequested, &wsaData); WSACleanup (); ]]) ], [gl_cv_func_wsastartup=yes], [gl_cv_func_wsastartup=no]) LIBS="$gl_save_LIBS" ]) if test "$gl_cv_func_wsastartup" = "yes"; then AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) LIBSOCKET='-lws2_32' fi else dnl Unix API. dnl Solaris has most socket functions in libsocket. dnl Haiku has most socket functions in libnetwork. dnl BeOS has most socket functions in libnet. dnl On HP-UX, do NOT link with libxnet, because in 64-bit mode this would dnl break code (e.g. in libraries) that invokes accept(), getpeername(), dnl getsockname(), getsockopt(), or recvfrom() with a 32-bit addrlen. See dnl "man xopen_networking" for details. AC_CACHE_CHECK([for library containing setsockopt], [gl_cv_lib_socket], [ gl_cv_lib_socket= AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif char setsockopt();]], [[setsockopt();]])], [], [gl_save_LIBS="$LIBS" LIBS="$gl_save_LIBS -lsocket" AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif char setsockopt();]], [[setsockopt();]])], [gl_cv_lib_socket="-lsocket"]) if test -z "$gl_cv_lib_socket"; then LIBS="$gl_save_LIBS -lnetwork" AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif char setsockopt();]], [[setsockopt();]])], [gl_cv_lib_socket="-lnetwork"]) if test -z "$gl_cv_lib_socket"; then LIBS="$gl_save_LIBS -lnet" AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif char setsockopt();]], [[setsockopt();]])], [gl_cv_lib_socket="-lnet"]) fi fi LIBS="$gl_save_LIBS" ]) if test -z "$gl_cv_lib_socket"; then gl_cv_lib_socket="none needed" fi ]) if test "$gl_cv_lib_socket" != "none needed"; then LIBSOCKET="$gl_cv_lib_socket" fi fi AC_SUBST([LIBSOCKET]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/sockets.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000000707�14374751113�011611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sockets.m4 serial 7 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_SOCKETS], [ AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([gl_SOCKETLIB]) gl_PREREQ_SOCKETS ]) # Prerequisites of lib/sockets.c. AC_DEFUN([gl_PREREQ_SOCKETS], [ : ]) ���������������������������������������������������������a2ps-4.15.5/m4/socklen.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000006157�14374751113�011601� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# socklen.m4 serial 11 dnl Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Albert Chin, Windows fixes from Simon Josefsson. dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc.: dnl HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS. dnl So we have to test to find something that will work. AC_DEFUN([gl_TYPE_SOCKLEN_T], [AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])dnl AC_CHECK_TYPE([socklen_t], , [AC_CACHE_CHECK([for socklen_t equivalent], [gl_cv_socklen_t_equiv], [# Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername gl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t "unsigned int" "long int" "unsigned long int"; do AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[#include <sys/types.h> #include <sys/socket.h> int getpeername (int, $arg2 *, $t *);]], [[$t len; getpeername (0, 0, &len);]])], [gl_cv_socklen_t_equiv="$t"]) test "$gl_cv_socklen_t_equiv" != "" && break done test "$gl_cv_socklen_t_equiv" != "" && break done if test "$gl_cv_socklen_t_equiv" = ""; then AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) fi ]) AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv], [type to use in place of socklen_t if not defined])], [gl_SOCKET_HEADERS])]) dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find dnl it there too. But on Cygwin, wc2tcpip.h must not be included. Users dnl of this module should use the same include pattern as gl_SOCKET_HEADERS. dnl When you change this macro, keep also in sync: dnl - gl_CHECK_SOCKET_HEADERS, dnl - the Include section of modules/socklen. AC_DEFUN([gl_SOCKET_HEADERS], [ /* <sys/types.h> is not needed according to POSIX, but the <sys/socket.h> in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include <sys/types.h> #if HAVE_SYS_SOCKET_H # include <sys/socket.h> #elif HAVE_WS2TCPIP_H # include <ws2tcpip.h> #endif ]) dnl Tests for the existence of the header for socket facilities. dnl Defines the C macros HAVE_SYS_SOCKET_H, HAVE_WS2TCPIP_H. dnl This macro must match gl_SOCKET_HEADERS. AC_DEFUN([gl_CHECK_SOCKET_HEADERS], [AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h = no; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([ws2tcpip.h]) fi ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/ssize_t.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001463�14374751113�011616� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ssize_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2001-2003, 2006, 2010-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether ssize_t is defined. AC_DEFUN([gt_TYPE_SSIZE_T], [ AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h>]], [[int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x;]])], [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) if test $gt_cv_ssize_t = no; then AC_DEFINE([ssize_t], [int], [Define as a signed type of the same size as size_t.]) fi ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/stat-time.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000006057�14374751113�012051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Checks for stat-related time functions. # Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2023 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # st_atim.tv_nsec - Linux, Solaris, Cygwin # st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE # st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE # st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) # st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) # st_birthtim - Cygwin 1.7.0+ AC_DEFUN([gl_STAT_TIME], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec], [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[ #include <sys/types.h> #include <sys/stat.h> #if HAVE_SYS_TIME_H # include <sys/time.h> #endif #include <time.h> struct timespec ts; struct stat st; ]], [[ st.st_atim = ts; ]])], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1], [Define to 1 if the type of the st_atim member of a struct stat is struct timespec.]) fi], [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_atimensec], [], [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>]) ]) # Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.) # and NTFS (Cygwin). # There was a time when this field was named st_createtime (21 June # 2002 to 16 July 2002) But that window is very small and applied only # to development code, so systems still using that configuration are # not supported. See revisions 1.10 and 1.11 of FreeBSD's # src/sys/ufs/ufs/dinode.h. # AC_DEFUN([gl_STAT_BIRTHTIME], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/stat.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000005726�14374751113�011117� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 19 # Copyright (C) 2009-2023 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) case "$host_os" in mingw*) dnl On this platform, the original stat() returns st_atime, st_mtime, dnl st_ctime values that are affected by the time zone. REPLACE_STAT=1 ;; *) dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). AC_CACHE_CHECK([whether stat handles trailing slashes on files], [gl_cv_func_stat_file_slash], [touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/stat.h> ]], [[int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ]])], [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; # Guess yes on systems that emulate the Linux system calls. midipix*) gl_cv_func_stat_file_slash="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; esac ]) rm -f conftest.tmp conftest.lnk]) case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs help when passed a file name with a trailing slash]);; esac case $host_os in dnl Solaris stat can return a negative tv_nsec. solaris*) REPLACE_FSTAT=1 ;; esac ;; esac ]) # Prerequisites of lib/stat.c and lib/stat-w32.c. AC_DEFUN([gl_PREREQ_STAT], [ AC_REQUIRE([gl_SYS_STAT_H]) AC_REQUIRE([gl_PREREQ_STAT_W32]) : ]) # Prerequisites of lib/stat-w32.c. AC_DEFUN([gl_PREREQ_STAT_W32], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) AC_CHECK_HEADERS([sdkddkver.h]) ;; esac ]) ������������������������������������������a2ps-4.15.5/m4/stdalign.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000017002�14374751113�011737� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Check for alignas and alignof that conform to C23. dnl Copyright 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert and Bruno Haible. # Prepare for substituting <stdalign.h> if it is not supported. AC_DEFUN([gl_ALIGNASOF], [ AC_CACHE_CHECK([for alignas and alignof], [gl_cv_header_working_stdalign_h], [gl_save_CFLAGS=$CFLAGS for gl_working in "yes, keywords" "yes, <stdalign.h> macros"; do AS_CASE([$gl_working], [*stdalign.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_STDALIGN_H"]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stdint.h> #ifdef INCLUDE_STDALIGN_H #include <stdalign.h> #endif #include <stddef.h> /* Test that alignof yields a result consistent with offsetof. This catches GCC bug 52023 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */ #ifdef __cplusplus template <class t> struct alignof_helper { char a; t b; }; # define ao(type) offsetof (alignof_helper<type>, b) #else # define ao(type) offsetof (struct { char a; type b; }, b) #endif char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; /* Test alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ || (__TINYC__ && defined __attribute__) \ || (defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__) \ || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; #endif ]])], [gl_cv_header_working_stdalign_h=$gl_working], [gl_cv_header_working_stdalign_h=no]) CFLAGS=$gl_save_CFLAGS test "$gl_cv_header_working_stdalign_h" != no && break done]) AS_CASE([$gl_cv_header_working_stdalign_h], [yes*keyword*], [AC_DEFINE([HAVE_C_ALIGNASOF], [1], [Define to 1 if the alignas and alignof keywords work.])]) dnl The "zz" puts this toward config.h's end, to avoid potential dnl collisions with other definitions. AH_VERBATIM([zzalignas], [#if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof # if HAVE_STDALIGN_H # include <stdalign.h> # endif /* ISO C23 alignas and alignof for platforms that lack it. References: ISO C23 (latest free draft <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>) sections 6.5.3.4, 6.7.5, 7.15. C++11 (latest free draft <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>) section 18.10. */ /* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment requirement of a structure member (i.e., slot or field) that is of type TYPE, as an integer constant expression. This differs from GCC's and clang's __alignof__ operator, which can yield a better-performing alignment for an object of that type. For example, on x86 with GCC and on Linux/x86 with clang, __alignof__ (double) and __alignof__ (long long) are 8, whereas alignof (double) and alignof (long long) are 4 unless the option '-malign-double' is used. The result cannot be used as a value for an 'enum' constant, if you want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */ /* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. clang versions < 8.0.0 have the same bug. */ # if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ && !defined __clang__) \ || (defined __clang__ && __clang_major__ < 8)) # undef/**/_Alignof # ifdef __cplusplus # if (201103 <= __cplusplus || defined _MSC_VER) # define _Alignof(type) alignof (type) # else template <class __t> struct __alignof_helper { char __a; __t __b; }; # define _Alignof(type) offsetof (__alignof_helper<type>, __b) # define _GL_STDALIGN_NEEDS_STDDEF 1 # endif # else # if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ # define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) # else # define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) # define _GL_STDALIGN_NEEDS_STDDEF 1 # endif # endif # endif # if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) # undef/**/alignof # define alignof _Alignof # endif /* alignas (A), also known as _Alignas (A), aligns a variable or type to the alignment A, where A is an integer constant expression. For example: int alignas (8) foo; struct s { int a; int alignas (8) bar; }; aligns the address of FOO and the offset of BAR to be multiples of 8. A should be a power of two that is at least the type's alignment and at most the implementation's alignment limit. This limit is 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable to MSVC through at least version 10.0, A should be an integer constant, as MSVC does not support expressions such as 1 << 3. To be portable to Sun C 5.11, do not align auto variables to anything stricter than their default alignment. The following C23 requirements are not supported here: - If A is zero, alignas has no effect. - alignas can be used multiple times; the strictest one wins. - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). */ # if !HAVE_STDALIGN_H # if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 # if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) # define _Alignas(a) alignas (a) # elif (!defined __attribute__ \ && ((defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__ && !defined __ibmxl__) \ || (4 <= __clang_major__) \ || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) # define _Alignas(a) __attribute__ ((__aligned__ (a))) # elif 1300 <= _MSC_VER # define _Alignas(a) __declspec (align (a)) # endif # endif # if ((defined _Alignas \ && !(defined __cplusplus \ && (201103 <= __cplusplus || defined _MSC_VER))) \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # define alignas _Alignas # endif # endif # if _GL_STDALIGN_NEEDS_STDDEF # include <stddef.h> # endif #endif]) ]) AC_DEFUN([gl_STDALIGN_H], [ AC_REQUIRE([gl_ALIGNASOF]) if test "$gl_cv_header_working_stdalign_h" = no; then GL_GENERATE_STDALIGN_H=true else GL_GENERATE_STDALIGN_H=false fi gl_CHECK_NEXT_HEADERS([stdalign.h]) if test $ac_cv_header_stdalign_h = yes; then HAVE_STDALIGN_H=1 else HAVE_STDALIGN_H=0 fi AC_SUBST([HAVE_STDALIGN_H]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/stdarg.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000005233�14374751113�011421� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdarg.m4 serial 8 dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Provide a working va_copy in combination with <stdarg.h>. AC_DEFUN([gl_STDARG_H], [ GL_GENERATE_STDARG_H=false NEXT_STDARG_H='<stdarg.h>' AC_CACHE_CHECK([for va_copy], [gl_cv_func_va_copy], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stdarg.h>]], [[ #ifndef va_copy void (*func) (va_list, va_list) = va_copy; #endif ]])], [gl_cv_func_va_copy=yes], [gl_cv_func_va_copy=no]) ]) if test $gl_cv_func_va_copy = no; then dnl Provide a substitute. dnl Usually a simple definition in <config.h> is enough. Not so on AIX 5 dnl with some versions of the /usr/vac/bin/cc compiler. It has an <stdarg.h> dnl which does '#undef va_copy', leading to a missing va_copy symbol. For dnl this platform, we use an <stdarg.h> substitute. But we cannot use this dnl approach on other platforms, because <stdarg.h> often defines only dnl preprocessor macros and gl_ABSOLUTE_HEADER, gl_CHECK_NEXT_HEADERS do dnl not work in this situation. AC_EGREP_CPP([vaccine], [#if defined _AIX && !defined __GNUC__ AIX vaccine #endif ], [gl_aixcc=yes], [gl_aixcc=no]) if test $gl_aixcc = yes; then dnl Provide a substitute <stdarg.h> file. GL_GENERATE_STDARG_H=true gl_NEXT_HEADERS([stdarg.h]) dnl Fallback for the case when <stdarg.h> contains only macro definitions. if test "$gl_cv_next_stdarg_h" = '""'; then gl_cv_next_stdarg_h='"///usr/include/stdarg.h"' NEXT_STDARG_H="$gl_cv_next_stdarg_h" fi else dnl Provide a substitute in <config.h>, either __va_copy or as a simple dnl assignment. gl_CACHE_VAL_SILENT([gl_cv_func___va_copy], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stdarg.h>]], [[ #ifndef __va_copy error, bail out #endif ]])], [gl_cv_func___va_copy=yes], [gl_cv_func___va_copy=no])]) if test $gl_cv_func___va_copy = yes; then AC_DEFINE([va_copy], [__va_copy], [Define as a macro for copying va_list variables.]) else AH_VERBATIM([gl_VA_COPY], [/* A replacement for va_copy, if needed. */ #define gl_va_copy(a,b) ((a) = (b))]) AC_DEFINE([va_copy], [gl_va_copy], [Define as a macro for copying va_list variables.]) fi fi fi AC_SUBST([NEXT_STDARG_H]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/stddef_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000010055�14374751113�011713� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stddef_h.m4 serial 13 dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl A placeholder for <stddef.h>, for platforms that have issues. AC_DEFUN_ONCE([gl_STDDEF_H], [ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) dnl Persuade OpenBSD <stddef.h> to declare max_align_t. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) GL_GENERATE_STDDEF_H=false dnl Test whether the type max_align_t exists and whether its alignment dnl "is as great as is supported by the implementation in all contexts". AC_CACHE_CHECK([for good max_align_t], [gl_cv_type_max_align_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* On FreeBSD 12.0/x86, max_align_t defined by <stddef.h> has the correct alignment with the default (wrong) definition of _Alignof, but a wrong alignment as soon as we activate an ISO C compliant _Alignof definition. */ #if ((defined __GNUC__ && 4 <= __GNUC__) || defined __clang__) && !defined __cplusplus #define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) #endif #include <stddef.h> unsigned int s = sizeof (max_align_t); #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; #endif typedef struct { char a; max_align_t b; } max_helper; typedef struct { char a; long b; } long_helper; typedef struct { char a; double b; } double_helper; typedef struct { char a; long double b; } long_double_helper; int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; ]])], [gl_cv_type_max_align_t=yes], [gl_cv_type_max_align_t=no]) ]) if test $gl_cv_type_max_align_t = no; then HAVE_MAX_ALIGN_T=0 GL_GENERATE_STDDEF_H=true fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 GL_GENERATE_STDDEF_H=true fi AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h> int test[2 * (sizeof NULL == sizeof (void *)) -1]; ]])], [gl_cv_decl_null_works=yes], [gl_cv_decl_null_works=no])]) if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 GL_GENERATE_STDDEF_H=true fi if $GL_GENERATE_STDDEF_H; then gl_NEXT_HEADERS([stddef.h]) fi ]) # gl_STDDEF_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_STDDEF_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_STDDEF_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS], [ ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) ]) AC_DEFUN([gl_STDDEF_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) HAVE_MAX_ALIGN_T=1; AC_SUBST([HAVE_MAX_ALIGN_T]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/stdint.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000042731�14374751113�011446� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdint.m4 serial 61 dnl Copyright (C) 2001-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Bruno Haible. dnl Test whether <stdint.h> is supported or must be substituted. AC_PREREQ([2.61]) AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_LIMITS_H]) AC_REQUIRE([gt_TYPE_WINT_T]) dnl For backward compatibility. Some packages may still be testing these dnl macros. AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'long long int'.]) AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'unsigned long long int'.]) dnl Check for <wchar.h>, in the same way as gl_WCHAR_H does. AC_CHECK_HEADERS_ONCE([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) dnl Check for <inttypes.h>. AC_CHECK_HEADERS_ONCE([inttypes.h]) if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi AC_SUBST([HAVE_INTTYPES_H]) dnl Check for <sys/types.h>. AC_CHECK_HEADERS_ONCE([sys/types.h]) if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi AC_SUBST([HAVE_SYS_TYPES_H]) gl_CHECK_NEXT_HEADERS([stdint.h]) if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi AC_SUBST([HAVE_STDINT_H]) dnl Now see whether we need a substitute <stdint.h>. if test $ac_cv_header_stdint_h = yes; then AC_CACHE_CHECK([whether stdint.h conforms to C99], [gl_cv_header_working_stdint_h], [gl_cv_header_working_stdint_h=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include <stdint.h> /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>" #endif ] gl_STDINT_INCLUDES [ #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ #if 201112 <= __STDC_VERSION__ int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__)) extern size_t k; extern __typeof__ (SIZE_MAX) k; #endif #include <limits.h> /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; ]])], [dnl Determine whether the various *_MIN, *_MAX macros are usable dnl in preprocessor expression. We could do it by compiling a test dnl program for each of these macros. It is faster to run a program dnl that inspects the macro expansion. dnl This detects a bug on HP-UX 11.23/ia64. AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include <stdint.h> ] gl_STDINT_INCLUDES [ #include <stdio.h> #include <string.h> #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; ]], [[ const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ]])], [gl_cv_header_working_stdint_h=yes], [], [case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; # In general, assume it works. *) gl_cv_header_working_stdint_h="guessing yes" ;; esac ]) ]) ]) fi HAVE_C99_STDINT_H=0 HAVE_SYS_BITYPES_H=0 HAVE_SYS_INTTYPES_H=0 GL_GENERATE_STDINT_H=true case "$gl_cv_header_working_stdint_h" in *yes) HAVE_C99_STDINT_H=1 dnl Now see whether the system <stdint.h> works without dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined. dnl If not, there would be problems when stdint.h is included from C++. AC_CACHE_CHECK([whether stdint.h works without ISO C predefines], [gl_cv_header_stdint_without_STDC_macros], [gl_cv_header_stdint_without_STDC_macros=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include <stdint.h> ] gl_STDINT_INCLUDES [ intmax_t im = INTMAX_MAX; int32_t i32 = INT32_C (0x7fffffff); ]])], [gl_cv_header_stdint_without_STDC_macros=yes]) ]) if test $gl_cv_header_stdint_without_STDC_macros = no; then AC_DEFINE([__STDC_CONSTANT_MACROS], [1], [Define to 1 if the system <stdint.h> predates C++11.]) AC_DEFINE([__STDC_LIMIT_MACROS], [1], [Define to 1 if the system <stdint.h> predates C++11.]) fi AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.], [gl_cv_header_stdint_width], [gl_cv_header_stdint_width=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include <stdint.h> ]gl_STDINT_INCLUDES[ int iw = UINTMAX_WIDTH; ]])], [gl_cv_header_stdint_width=yes])]) if test "$gl_cv_header_stdint_width" = yes; then GL_GENERATE_STDINT_H=false fi ;; *) dnl Check for <sys/inttypes.h>, and for dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5). AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 fi gl_STDINT_TYPE_PROPERTIES ;; esac dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH. gl_REPLACE_LIMITS_H AC_SUBST([HAVE_C99_STDINT_H]) AC_SUBST([HAVE_SYS_BITYPES_H]) AC_SUBST([HAVE_SYS_INTTYPES_H]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) dnl Determine the size of each of the given types in bits. AC_DEFUN([gl_STDINT_BITSIZEOF], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to the number of bits in type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], [$2 #include <limits.h>], [result=unknown]) eval gl_cv_bitsizeof_${gltype}=\$result ]) eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, dnl do a syntax check even on unused #if conditions and give an error dnl on valid C code like this: dnl #if 0 dnl # if > 32 dnl # endif dnl #endif result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) eval BITSIZEOF_${GLTYPE}=\$result done m4_foreach_w([gltype], [$1], [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) dnl Determine the signedness of each of the given types. dnl Define HAVE_SIGNED_TYPE if type is signed. AC_DEFUN([gl_CHECK_TYPES_SIGNED], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to 1 if ']gltype[' is a signed integer type.])]) for gltype in $1 ; do AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], result=yes, result=no) eval gl_cv_type_${gltype}_signed=\$result ]) eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1]) eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done m4_foreach_w([gltype], [$1], [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) dnl Determine the suffix to use for integer constants of the given types. dnl Define t_SUFFIX for each such type. AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], [Define to l, ll, u, ul, ull, etc., as suitable for constants of type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for $gltype integer literal suffix], [gl_cv_type_${gltype}_suffix], [eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ extern $gltype foo; extern $gltype1 foo;]])], [eval gl_cv_type_${gltype}_suffix=\$glsuf]) eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done]) GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result]) done m4_foreach_w([gltype], [$1], [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) ]) dnl gl_STDINT_INCLUDES AC_DEFUN([gl_STDINT_INCLUDES], [[ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif ]]) dnl gl_STDINT_TYPE_PROPERTIES dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ AC_REQUIRE([gl_MULTIARCH]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_STDINT_BITSIZEOF([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99 dnl requirement that wint_t is "unchanged by default argument promotions". dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t. dnl Set the variable BITSIZEOF_WINT_T accordingly. if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then BITSIZEOF_WINT_T=32 fi ]) ���������������������������������������a2ps-4.15.5/m4/stdio_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000026105�14374751113�011567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdio_h.m4 serial 61 dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_STDIO_H], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AH_VERBATIM([MINGW_ANSI_STDIO], [/* Use GNU style printf and scanf. */ #ifndef __USE_MINGW_ANSI_STDIO # undef __USE_MINGW_ANSI_STDIO #endif ]) AC_DEFINE([__USE_MINGW_ANSI_STDIO]) gl_NEXT_HEADERS([stdio.h]) dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and dnl inttypes.h behave like gnu instead of system; we must give our dnl printf wrapper the right attribute to match. AC_CACHE_CHECK([which flavor of printf attribute matches inttypes macros], [gl_cv_func_printf_attribute_flavor], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #define __STDC_FORMAT_MACROS 1 #include <stdio.h> #include <inttypes.h> /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif ]])], [gl_cv_func_printf_attribute_flavor=system], [gl_cv_func_printf_attribute_flavor=gnu])]) if test "$gl_cv_func_printf_attribute_flavor" = gnu; then AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1], [Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__"]) fi dnl This ifdef is an optimization, to avoid performing a configure check whose dnl result is not used. But it does not make the test of dnl GNULIB_STDIO_H_NONBLOCKING or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_READ_FUNCS=1 fi ]) dnl This ifdef is an optimization, to avoid performing a configure check whose dnl result is not used. But it does not make the test of dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_STDIO_WRITE_FUNCS=1 fi ]) dnl This ifdef is an optimization, to avoid performing a configure check whose dnl result is not used. But it does not make the test of dnl GNULIB_STDIO_H_NONBLOCKING or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_WRITE_FUNCS=1 fi ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by both C89 and C11. gl_WARN_ON_USE_PREPARE([[#include <stdio.h> ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf]) AC_REQUIRE([AC_C_RESTRICT]) AC_CHECK_DECLS_ONCE([fcloseall]) if test $ac_cv_have_decl_fcloseall = no; then HAVE_DECL_FCLOSEALL=0 fi AC_CHECK_DECLS_ONCE([getw]) if test $ac_cv_have_decl_getw = no; then HAVE_DECL_GETW=0 fi AC_CHECK_DECLS_ONCE([putw]) if test $ac_cv_have_decl_putw = no; then HAVE_DECL_PUTW=0 fi ]) # gl_STDIO_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDIO_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_STDIO_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCLOSE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFLUSH]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN_GNU]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPURGE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREAD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREOPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSCANF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEKO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELLO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FWRITE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCHAR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDELIM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLINE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PCLOSE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PERROR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTCHAR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMOVE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAMEAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SNPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SPRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_NONBLOCKING]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_SIGPIPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TMPFILE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VASPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFSCANF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSCANF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VDPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSNPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSPRINTF_POSIX]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCLOSEALL], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FDOPEN], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FILENO], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETW], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTW], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TEMPNAM], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) ]) AC_DEFUN([gl_STDIO_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_FCLOSEALL=1; AC_SUBST([HAVE_DECL_FCLOSEALL]) HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO]) HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO]) HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) HAVE_DECL_GETW=1; AC_SUBST([HAVE_DECL_GETW]) HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) HAVE_DECL_PUTW=1; AC_SUBST([HAVE_DECL_PUTW]) HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF]) HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE]) HAVE_POPEN=1; AC_SUBST([HAVE_POPEN]) HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT]) HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) REPLACE_FOPEN_FOR_FOPEN_GNU=0; AC_SUBST([REPLACE_FOPEN_FOR_FOPEN_GNU]) REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM]) REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR]) REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN]) REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE]) REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME]) REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS]) REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/stdlib_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000024362�14374751113�011731� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdlib_h.m4 serial 71 dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_STDLIB_H], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_NEXT_HEADERS([stdlib.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include <stdlib.h> #if HAVE_SYS_LOADAVG_H /* OpenIndiana has a bug: <sys/time.h> must be included before <sys/loadavg.h>. */ # include <sys/time.h> # include <sys/loadavg.h> #endif #if HAVE_RANDOM_H # include <random.h> #endif ]], [_Exit aligned_alloc atoll canonicalize_file_name free getloadavg getprogname getsubopt grantpt initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps posix_memalign posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtol strtold strtoll strtoul strtoull unlockpt unsetenv]) AC_REQUIRE([AC_C_RESTRICT]) AC_CHECK_DECLS_ONCE([ecvt]) if test $ac_cv_have_decl_ecvt = no; then HAVE_DECL_ECVT=0 fi AC_CHECK_DECLS_ONCE([fcvt]) if test $ac_cv_have_decl_fcvt = no; then HAVE_DECL_FCVT=0 fi AC_CHECK_DECLS_ONCE([gcvt]) if test $ac_cv_have_decl_gcvt = no; then HAVE_DECL_GCVT=0 fi ]) # gl_STDLIB_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_STDLIB_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_GNU]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPROGNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_GNU]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBTOWC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDTEMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMPS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMPS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_MEMALIGN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_OPENPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTENV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_QSORT_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_GNU]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOULL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYSTEM_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLOCKPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNSETENV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOMB]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ECVT], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCVT], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GCVT], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKTEMP], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTENV], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ]) AC_DEFUN([gl_STDLIB_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) HAVE_ALIGNED_ALLOC=1; AC_SUBST([HAVE_ALIGNED_ALLOC]) HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) HAVE_DECL_ECVT=1; AC_SUBST([HAVE_DECL_ECVT]) HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT]) HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETPROGNAME=1; AC_SUBST([HAVE_GETPROGNAME]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE]) HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE]) HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) HAVE_POSIX_MEMALIGN=1; AC_SUBST([HAVE_POSIX_MEMALIGN]) HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R]) HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE]) HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) HAVE_STRTOL=1; AC_SUBST([HAVE_STRTOL]) HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) HAVE_STRTOUL=1; AC_SUBST([HAVE_STRTOUL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) REPLACE__EXIT=0; AC_SUBST([REPLACE__EXIT]) REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC]) REPLACE_CALLOC_FOR_CALLOC_GNU=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_GNU]) REPLACE_CALLOC_FOR_CALLOC_POSIX=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_FREE=0; AC_SUBST([REPLACE_FREE]) REPLACE_GETLOADAVG=0; AC_SUBST([REPLACE_GETLOADAVG]) REPLACE_GETPROGNAME=0; AC_SUBST([REPLACE_GETPROGNAME]) REPLACE_GETSUBOPT=0; AC_SUBST([REPLACE_GETSUBOPT]) REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE]) REPLACE_MALLOC_FOR_MALLOC_GNU=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_GNU]) REPLACE_MALLOC_FOR_MALLOC_POSIX=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_POSIX]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKOSTEMP=0; AC_SUBST([REPLACE_MKOSTEMP]) REPLACE_MKOSTEMPS=0; AC_SUBST([REPLACE_MKOSTEMPS]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_POSIX_MEMALIGN=0; AC_SUBST([REPLACE_POSIX_MEMALIGN]) REPLACE_POSIX_OPENPT=0; AC_SUBST([REPLACE_POSIX_OPENPT]) REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC_FOR_REALLOC_GNU=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_GNU]) REPLACE_REALLOC_FOR_REALLOC_POSIX=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX]) REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) REPLACE_STRTOL=0; AC_SUBST([REPLACE_STRTOL]) REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD]) REPLACE_STRTOLL=0; AC_SUBST([REPLACE_STRTOLL]) REPLACE_STRTOUL=0; AC_SUBST([REPLACE_STRTOUL]) REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/stpncpy.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000006154�14374751113�011640� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stpncpy.m4 serial 22 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STPNCPY], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Persuade glibc <string.h> to declare stpncpy(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl The stpncpy() declaration in lib/string.in.h uses 'restrict'. AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) dnl Both glibc and AIX (4.3.3, 5.1) have an stpncpy() function dnl declared in <string.h>. Its side effects are the same as those dnl of strncpy(): dnl stpncpy (dest, src, n) dnl overwrites dest[0..n-1], min(strlen(src),n) bytes coming from src, dnl and the remaining bytes being NULs. However, the return value is dnl in glibc: dest + min(strlen(src),n) dnl in AIX: dest + max(0,n-1) dnl Only the glibc return value is useful in practice. AC_CHECK_DECLS_ONCE([stpncpy]) gl_CHECK_FUNCS_ANDROID([stpncpy], [[#include <string.h>]]) if test $ac_cv_func_stpncpy = yes; then AC_CACHE_CHECK([for working stpncpy], [gl_cv_func_stpncpy], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdlib.h> #include <string.h> /* for strcpy */ /* The stpncpy prototype is missing in <string.h> on AIX 4. */ #if !HAVE_DECL_STPNCPY extern # ifdef __cplusplus "C" # endif char *stpncpy (char *dest, const char *src, size_t n); #endif int main () { int result = 0; const char *src = "Hello"; char dest[10]; /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+1 here. */ { strcpy (dest, "\377\377\377\377\377\377"); if (stpncpy (dest, src, 2) != dest + 2) result |= 1; } /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+4 here. */ { strcpy (dest, "\377\377\377\377\377\377"); if (stpncpy (dest, src, 5) != dest + 5) result |= 2; } /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+6 here. */ { strcpy (dest, "\377\377\377\377\377\377"); if (stpncpy (dest, src, 7) != dest + 5) result |= 4; } return result; } ]])], [gl_cv_func_stpncpy=yes], [gl_cv_func_stpncpy=no], [dnl Guess yes on glibc systems and musl systems. AC_EGREP_CPP([Thanks for using GNU], [ #include <features.h> #ifdef __GNU_LIBRARY__ Thanks for using GNU #endif ], [gl_cv_func_stpncpy="guessing yes"], [case "$host_os" in *-musl* | midipix*) gl_cv_func_stpncpy="guessing yes" ;; *) gl_cv_func_stpncpy="$gl_cross_guess_normal" ;; esac ]) ]) ]) case "$gl_cv_func_stpncpy" in *yes) AC_DEFINE([HAVE_STPNCPY], [1], [Define if you have the stpncpy() function and it works.]) ;; *) REPLACE_STPNCPY=1 ;; esac else HAVE_STPNCPY=0 case "$gl_cv_onwards_func_stpncpy" in future*) REPLACE_STPNCPY=1 ;; esac fi ]) # Prerequisites of lib/stpncpy.c. AC_DEFUN([gl_PREREQ_STPNCPY], [ : ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/strchrnul.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000003154�14374751113�012161� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strchrnul.m4 serial 12 dnl Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRCHRNUL], [ dnl Persuade glibc <string.h> to declare strchrnul(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) gl_CHECK_FUNCS_ANDROID([strchrnul], [[#include <string.h>]]) if test $ac_cv_func_strchrnul = no; then HAVE_STRCHRNUL=0 case "$gl_cv_onwards_func_strchrnul" in future*) REPLACE_STRCHRNUL=1 ;; esac else AC_CACHE_CHECK([whether strchrnul works], [gl_cv_func_strchrnul_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <string.h> /* for strchrnul */ ]], [[const char *buf = "a"; return strchrnul (buf, 'b') != buf + 1; ]])], [gl_cv_func_strchrnul_works=yes], [gl_cv_func_strchrnul_works=no], [dnl Cygwin 1.7.9 introduced strchrnul, but it was broken until 1.7.10 AC_EGREP_CPP([Lucky user], [ #if defined __CYGWIN__ #include <cygwin/version.h> #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9) Lucky user #endif #else Lucky user #endif ], [gl_cv_func_strchrnul_works="guessing yes"], [gl_cv_func_strchrnul_works="guessing no"]) ]) ]) case "$gl_cv_func_strchrnul_works" in *yes) ;; *) REPLACE_STRCHRNUL=1 ;; esac fi ]) # Prerequisites of lib/strchrnul.c. AC_DEFUN([gl_PREREQ_STRCHRNUL], [:]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/strdup.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000001455�14374751113�011460� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strdup.m4 serial 15 dnl Copyright (C) 2002-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRDUP], [ AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi ]) AC_DEFUN([gl_FUNC_STRDUP_POSIX], [ AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test $gl_cv_func_malloc_posix != yes; then REPLACE_STRDUP=1 fi AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi ]) # Prerequisites of lib/strdup.c. AC_DEFUN([gl_PREREQ_STRDUP], [:]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/strerror.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000007311�14374751113�012016� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strerror.m4 serial 24 dnl Copyright (C) 2002, 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRERROR], [ AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) ]) if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <string.h> ]], [[if (!*strerror (-2)) return 1;]])], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; # Guess yes on musl systems. *-musl* | midipix*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; esac ]) ]) case "$gl_cv_func_working_strerror" in *yes) ;; *) dnl The system's strerror() fails to return a string for out-of-range dnl integers. Replace it. REPLACE_STRERROR=1 ;; esac m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's dnl buffer, we must replace strerror. case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR=1 ;; esac ]) else dnl The system's strerror() cannot know about the new errno values we add dnl to <errno.h>, or any fix for strerror(0). Replace it. REPLACE_STRERROR=1 fi ]) dnl Detect if strerror(0) passes (that is, does not set errno, and does not dnl return a string that matches strerror(-1)). AC_DEFUN([gl_FUNC_STRERROR_0], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles REPLACE_STRERROR_0=0 AC_CACHE_CHECK([whether strerror(0) succeeds], [gl_cv_func_strerror_0_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <string.h> #include <errno.h> ]], [[int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result;]])], [gl_cv_func_strerror_0_works=yes], [gl_cv_func_strerror_0_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on musl systems. *-musl* | midipix*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; esac ]) ]) case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0) does not return a message implying success.]) ;; esac ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/string_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000016503�14374751113�011754� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Configure a GNU-like replacement for <string.h>. # Copyright (C) 2007-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 37 # Written by Paul Eggert. AC_DEFUN_ONCE([gl_STRING_H], [ dnl Ensure to expand the default settings once only, before all statements dnl that occur in other macros. AC_REQUIRE([gl_STRING_H_DEFAULTS]) gl_NEXT_HEADERS([string.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include <string.h> ]], [explicit_bzero ffsl ffsll memmem mempcpy memrchr memset_explicit rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp]) AC_REQUIRE([AC_C_RESTRICT]) ]) # gl_STRING_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STRING_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_STRING_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPLICIT_BZERO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSLL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMMEM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMPCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMRCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMSET_EXPLICIT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAWMEMCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPNCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCHRNUL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRDUP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNDUP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPBRK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASESTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOK_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASECMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNCASECMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPCASECMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASESTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCSPN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPBRK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSPN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOK_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERRORNAME_NP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGABBREV_NP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGDESCR_NP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSIGNAL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRVERSCMP]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MEMCCPY], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_STRDUP], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS]) dnl Make sure the shell variable for GNULIB_FREE_POSIX is initialized. gl_STDLIB_H_REQUIRE_DEFAULTS AC_REQUIRE([gl_STRING_H_DEFAULTS]) ]) AC_DEFUN([gl_STRING_H_DEFAULTS], [ HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO]) HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL]) HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) HAVE_MEMSET_EXPLICIT=1; AC_SUBST([HAVE_MEMSET_EXPLICIT]) HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R]) HAVE_STRERRORNAME_NP=1; AC_SUBST([HAVE_STRERRORNAME_NP]) HAVE_SIGABBREV_NP=1; AC_SUBST([HAVE_SIGABBREV_NP]) HAVE_SIGDESCR_NP=1; AC_SUBST([HAVE_SIGDESCR_NP]) HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) REPLACE_FFSLL=0; AC_SUBST([REPLACE_FFSLL]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_MEMPCPY=0; AC_SUBST([REPLACE_MEMPCPY]) REPLACE_STPCPY=0; AC_SUBST([REPLACE_STPCPY]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) REPLACE_STRERRORNAME_NP=0; AC_SUBST([REPLACE_STRERRORNAME_NP]) REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/strndup.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000003265�14374751113�011637� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strndup.m4 serial 23 dnl Copyright (C) 2002-2003, 2005-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRNDUP], [ dnl Persuade glibc <string.h> to declare strndup(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([strndup]) AC_CHECK_FUNCS_ONCE([strndup]) if test $ac_cv_have_decl_strndup = no; then HAVE_DECL_STRNDUP=0 fi if test $ac_cv_func_strndup = yes; then HAVE_STRNDUP=1 # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include <string.h> #include <stdlib.h>]], [[ #if !HAVE_DECL_STRNDUP extern #ifdef __cplusplus "C" #endif char *strndup (const char *, size_t); #endif int result; char *s; s = strndup ("some longer string", 15); free (s); s = strndup ("shorter string", 13); result = s[13] != '\0'; free (s); return result;]])], [gl_cv_func_strndup_works=yes], [gl_cv_func_strndup_works=no], [ changequote(,)dnl case $host_os in aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";; *) gl_cv_func_strndup_works="guessing yes";; esac changequote([,])dnl ])]) case $gl_cv_func_strndup_works in *no) REPLACE_STRNDUP=1 ;; esac else HAVE_STRNDUP=0 fi ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/strnlen.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001552�14374751113�011622� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strnlen.m4 serial 14 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRNLEN], [ AC_REQUIRE([gl_STRING_H_DEFAULTS]) dnl Persuade glibc <string.h> to declare strnlen(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([strnlen]) if test $ac_cv_have_decl_strnlen = no; then HAVE_DECL_STRNLEN=0 else m4_pushdef([AC_LIBOBJ], [:]) dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]). AC_FUNC_STRNLEN m4_popdef([AC_LIBOBJ]) if test $ac_cv_func_strnlen_working = no; then REPLACE_STRNLEN=1 fi fi ]) # Prerequisites of lib/strnlen.c. AC_DEFUN([gl_PREREQ_STRNLEN], [:]) ������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/strverscmp.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001177�14374751113�012350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strverscmp.m4 serial 9 dnl Copyright (C) 2002, 2005-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRVERSCMP], [ dnl Persuade glibc <string.h> to declare strverscmp(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([strverscmp]) if test $ac_cv_func_strverscmp = no; then HAVE_STRVERSCMP=0 fi ]) # Prerequisites of lib/strverscmp.c. AC_DEFUN([gl_PREREQ_STRVERSCMP], [ : ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/sys_socket_h.m4����������������������������������������������������������������������0000644�0000000�0000000�00000016333�14374751113�012635� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_socket_h.m4 serial 29 dnl Copyright (C) 2005-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson. AC_DEFUN_ONCE([gl_SYS_SOCKET_H], [ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have dnl old-style declarations (with return type 'int' instead of 'ssize_t') dnl unless _POSIX_PII_SOCKET is defined. case "$host_os" in osf*) AC_DEFINE([_POSIX_PII_SOCKET], [1], [Define to 1 in order to get the POSIX compatible declarations of socket functions.]) ;; esac GL_GENERATE_SYS_SOCKET_H=false AC_CACHE_CHECK([whether <sys/socket.h> is self-contained], [gl_cv_header_sys_socket_h_selfcontained], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])], [gl_cv_header_sys_socket_h_selfcontained=yes], [gl_cv_header_sys_socket_h_selfcontained=no]) ]) if test $gl_cv_header_sys_socket_h_selfcontained = yes; then dnl If the shutdown function exists, <sys/socket.h> should define dnl SHUT_RD, SHUT_WR, SHUT_RDWR. AC_CHECK_FUNCS([shutdown]) if test $ac_cv_func_shutdown = yes; then AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros], [gl_cv_header_sys_socket_h_shut], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])], [gl_cv_header_sys_socket_h_shut=yes], [gl_cv_header_sys_socket_h_shut=no]) ]) if test $gl_cv_header_sys_socket_h_shut = no; then GL_GENERATE_SYS_SOCKET_H=true fi fi fi # We need to check for ws2tcpip.h now. gl_PREREQ_SYS_H_SOCKET AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[ /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif ]) if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family], [], [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0], [#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif ]) fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then GL_GENERATE_SYS_SOCKET_H=true fi gl_PREREQ_SYS_H_WINSOCK2 dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Some systems require prerequisite headers. */ #include <sys/types.h> #include <sys/socket.h> ]], [socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4]) AC_REQUIRE([AC_C_RESTRICT]) ]) AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [ dnl Check prerequisites of the <sys/socket.h> replacement. AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 else HAVE_SYS_SOCKET_H=0 fi AC_SUBST([HAVE_SYS_SOCKET_H]) gl_PREREQ_SYS_H_WS2TCPIP ]) # Common prerequisites of the <sys/socket.h> replacement and of the # <sys/select.h> replacement. # Sets and substitutes HAVE_WINSOCK2_H. AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], [ m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])]) m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])]) AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h != yes; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([winsock2.h]) fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi AC_SUBST([HAVE_WINSOCK2_H]) ]) # Common prerequisites of the <sys/socket.h> replacement and of the # <arpa/inet.h> replacement. # Sets and substitutes HAVE_WS2TCPIP_H. AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP], [ AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_WS2TCPIP_H=0 else if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi AC_SUBST([HAVE_WS2TCPIP_H]) ]) # gl_SYS_SOCKET_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_SYS_SOCKET_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_SYS_SOCKET_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SOCKET]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CONNECT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BIND]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPEERNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LISTEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SEND]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECVFROM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SENDTO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETSOCKOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SHUTDOWN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT4]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) ]) AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], [ HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T]) HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/sys_stat_h.m4������������������������������������������������������������������������0000644�0000000�0000000�00000012232�14374751113�012312� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_stat_h.m4 serial 42 -*- Autoconf -*- dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Eric Blake. dnl Provide a GNU-like <sys/stat.h>. AC_DEFUN_ONCE([gl_SYS_STAT_H], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl Check for broken stat macros. AC_REQUIRE([AC_HEADER_STAT]) gl_CHECK_NEXT_HEADERS([sys/stat.h]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to enable precise timestamps in 'struct stat'. m4_ifdef([gl_WINDOWS_STAT_TIMESPEC], [ AC_REQUIRE([gl_WINDOWS_STAT_TIMESPEC]) ], [ WINDOWS_STAT_TIMESPEC=0 ]) AC_SUBST([WINDOWS_STAT_TIMESPEC]) dnl Whether to ensure that struct stat.st_size is 64-bit wide. m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_ST_SIZE=0 ]) AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) dnl Define types that are supposed to be defined in <sys/types.h> or dnl <sys/stat.h>. AC_CHECK_TYPE([nlink_t], [], [AC_DEFINE([nlink_t], [int], [Define to the type of st_nlink in struct stat, or a supertype.])], [#include <sys/types.h> #include <sys/stat.h>]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <sys/stat.h> ]], [chmod fchmodat fstat fstatat futimens getumask lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat]) AC_REQUIRE([AC_C_RESTRICT]) ]) # gl_SYS_STAT_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_SYS_STAT_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_SYS_STAT_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS], [ gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHMOD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHMODAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTATAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FUTIMENS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUMASK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHMOD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSTAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIRAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFOAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNOD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNODAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UTIMENSAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OVERRIDES_STRUCT_STAT]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHMOD], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKDIR], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UMASK], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) ]) AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) HAVE_GETUMASK=1; AC_SUBST([HAVE_GETUMASK]) HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) REPLACE_CHMOD=0; AC_SUBST([REPLACE_CHMOD]) REPLACE_FCHMODAT=0; AC_SUBST([REPLACE_FCHMODAT]) REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) REPLACE_MKFIFOAT=0; AC_SUBST([REPLACE_MKFIFOAT]) REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) REPLACE_MKNODAT=0; AC_SUBST([REPLACE_MKNODAT]) REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/sys_types_h.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000004361�14374751113�012507� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_types_h.m4 serial 13 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_SYS_TYPES_H], [ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) dnl Use sane struct stat types in OpenVMS 8.2 and later. AC_DEFINE([_USE_STD_STAT], 1, [For standard stat data types on VMS.]) gl_NEXT_HEADERS([sys/types.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override the 'off_t' type. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Whether to override the 'dev_t' and 'ino_t' types. m4_ifdef([gl_WINDOWS_STAT_INODES], [ AC_REQUIRE([gl_WINDOWS_STAT_INODES]) ], [ WINDOWS_STAT_INODES=0 ]) AC_SUBST([WINDOWS_STAT_INODES]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_SYS_TYPES_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS], [ ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) ]) AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], [ ]) # This works around a buggy version in autoconf <= 2.69. # See <https://lists.gnu.org/r/autoconf/2016-08/msg00014.html> # The 2.70 version isn't quoted properly, so override it too. m4_version_prereq([2.70.1], [], [ m4_undefine([AC_HEADER_MAJOR]) AC_DEFUN([AC_HEADER_MAJOR], [AC_CHECK_HEADERS_ONCE([sys/types.h]) AC_CHECK_HEADER([sys/mkdev.h], [AC_DEFINE([MAJOR_IN_MKDEV], [1], [Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.])]) if test $ac_cv_header_sys_mkdev_h = no; then AC_CHECK_HEADER([sys/sysmacros.h], [AC_DEFINE([MAJOR_IN_SYSMACROS], [1], [Define to 1 if `major', `minor', and `makedev' are declared in <sysmacros.h>.])]) fi ])# AC_HEADER_MAJOR ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/sys_uio_h.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000003102�14374751113�012127� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_uio_h.m4 serial 3 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_SYS_UIO_H], [ AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) dnl <sys/uio.h> is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/uio.h]) if test $ac_cv_header_sys_uio_h = yes; then HAVE_SYS_UIO_H=1 else HAVE_SYS_UIO_H=0 fi AC_SUBST([HAVE_SYS_UIO_H]) ]) # gl_SYS_UIO_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_SYS_UIO_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_SYS_UIO_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_SYS_UIO_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_UIO_H_MODULE_INDICATOR_DEFAULTS], [ ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_UIO_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) ]) AC_DEFUN([gl_SYS_UIO_H_DEFAULTS], [ ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/threadlib.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000060536�14374751113�012102� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# threadlib.m4 serial 35 dnl Copyright (C) 2005-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.60]) dnl The general structure of the multithreading modules in gnulib is that we dnl have three set of modules: dnl dnl * POSIX API: dnl pthread, which combines dnl pthread-h dnl pthread-thread dnl pthread-once dnl pthread-mutex dnl pthread-rwlock dnl pthread-cond dnl pthread-tss dnl pthread-spin dnl sched_yield dnl dnl * ISO C API: dnl threads, which combines dnl threads-h dnl thrd dnl mtx dnl cnd dnl tss dnl dnl * Gnulib API, with an implementation that can be chosen at configure dnl time through the option --enable-threads=... dnl thread dnl lock dnl cond dnl tls dnl yield dnl dnl They are independent, except for the fact that dnl - the implementation of the ISO C API may use the POSIX (or some other dnl platform dependent) API, dnl - the implementation of the Gnulib API may use the POSIX or ISO C or dnl some other platform dependent API, depending on the --enable-threads dnl option. dnl dnl This file contains macros for all of these APIs! dnl ============================================================================ dnl Macros for all thread APIs AC_DEFUN([gl_ANYTHREADLIB_EARLY], [ AC_REQUIRE([AC_CANONICAL_HOST]) if test -z "$gl_anythreadlib_early_done"; then case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks <pthread.h>. cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in <errno.h>. case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac gl_anythreadlib_early_done=done fi ]) dnl Checks whether the compiler and linker support weak declarations of symbols. AC_DEFUN([gl_WEAK_SYMBOLS], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether imported symbols can be declared weak], [gl_cv_have_weak], [case "$host_os" in cygwin*) dnl On Cygwin 3.2.0 with gcc 10.2, the test below would succeed, but dnl programs that use pthread_in_use() with weak symbol references dnl crash miserably at runtime. gl_cv_have_weak="guessing no" ;; *) gl_cv_have_weak=no dnl First, test whether the compiler accepts it syntactically. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern void xyzzy (); #pragma weak xyzzy]], [[xyzzy();]])], [gl_cv_have_weak=maybe]) if test $gl_cv_have_weak = maybe; then dnl Second, test whether it actually works. On Cygwin 1.7.2, with dnl gcc 4.3, symbols declared weak always evaluate to the address 0. AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #pragma weak fputs int main () { return (fputs == NULL); }]])], [gl_cv_have_weak=yes], [gl_cv_have_weak=no], [dnl When cross-compiling, assume that only ELF platforms support dnl weak symbols. AC_EGREP_CPP([Extensible Linking Format], [#ifdef __ELF__ Extensible Linking Format #endif ], [gl_cv_have_weak="guessing yes"], [gl_cv_have_weak="guessing no"]) ]) fi ;; esac dnl But when linking statically, weak symbols don't work. case " $LDFLAGS " in *" -static "*) gl_cv_have_weak=no ;; esac dnl Test for a bug in FreeBSD 11: A link error occurs when using a weak dnl symbol and linking against a shared library that has a dependency on dnl the shared library that defines the symbol. case "$gl_cv_have_weak" in *yes) case "$host_os" in freebsd* | dragonfly* | midnightbsd*) : > conftest1.c $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&AS_MESSAGE_LOG_FD 2>&1 cat <<EOF > conftest2.c #include <pthread.h> #pragma weak pthread_mutexattr_gettype int main () { return (pthread_mutexattr_gettype != NULL); } EOF $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&AS_MESSAGE_LOG_FD 2>&1 \ || gl_cv_have_weak=no rm -f conftest1.c libempty.so conftest2.c conftest ;; esac ;; esac ]) case "$gl_cv_have_weak" in *yes) AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [Define to 1 if the compiler and linker support weak declarations of symbols.]) ;; esac ]) dnl ============================================================================ dnl Macros for the POSIX API dnl gl_PTHREADLIB dnl ------------- dnl Tests for the libraries needs for using the POSIX threads API. dnl Sets the variable LIBPTHREAD to the linker options for use in a Makefile. dnl Sets the variable LIBPMULTITHREAD, for programs that really need dnl multithread functionality. The difference between LIBPTHREAD and dnl LIBPMULTITHREAD is that on platforms supporting weak symbols, typically dnl LIBPTHREAD is empty whereas LIBPMULTITHREAD is not. dnl Sets the variable SCHED_YIELD_LIB to the linker options needed to use the dnl sched_yield() function. dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. dnl Defines the C macro HAVE_PTHREAD_API if (at least parts of) the POSIX dnl threads API is available. dnl The guts of gl_PTHREADLIB. Needs to be expanded only once. AC_DEFUN([gl_PTHREADLIB_BODY], [ AC_REQUIRE([gl_ANYTHREADLIB_EARLY]) if test -z "$gl_pthreadlib_body_done"; then gl_pthread_api=no LIBPTHREAD= LIBPMULTITHREAD= # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks <pthread.h>. It's added above, in gl_ANYTHREADLIB_EARLY. AC_CHECK_HEADER([pthread.h], [gl_have_pthread_h=yes], [gl_have_pthread_h=no]) if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. # # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 # needs -pthread for some reason. See: # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html save_LIBS=$LIBS for gl_pthread in '' '-pthread'; do LIBS="$LIBS $gl_pthread" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <pthread.h> pthread_mutex_t m; pthread_mutexattr_t ma; ]], [[pthread_mutex_lock (&m); pthread_mutexattr_init (&ma);]])], [gl_pthread_api=yes LIBPTHREAD=$gl_pthread LIBPMULTITHREAD=$gl_pthread]) LIBS=$save_LIBS test $gl_pthread_api = yes && break done echo "$as_me:__oline__: gl_pthread_api=$gl_pthread_api" >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: LIBPTHREAD=$LIBPTHREAD" >&AS_MESSAGE_LOG_FD gl_pthread_in_glibc=no # On Linux with glibc >= 2.34, libc contains the fully functional # pthread functions. case "$host_os" in linux*) AC_EGREP_CPP([Lucky user], [#include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) Lucky user #endif #endif ], [gl_pthread_in_glibc=yes], []) ;; esac echo "$as_me:__oline__: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&AS_MESSAGE_LOG_FD # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. AC_CHECK_LIB([pthread], [pthread_kill], [if test $gl_pthread_in_glibc = yes; then LIBPMULTITHREAD= else LIBPMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. # On Solaris 10 or newer, this test is no longer needed, because # libc contains the fully functional pthread functions. case "$host_os" in changequote(,)dnl solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) changequote([,])dnl AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], [Define if the pthread_in_use() detection is hard.]) esac fi ]) elif test $gl_pthread_api != yes; then # Some library is needed. Try libpthread and libc_r. AC_CHECK_LIB([pthread], [pthread_kill], [gl_pthread_api=yes LIBPTHREAD=-lpthread LIBPMULTITHREAD=-lpthread]) if test $gl_pthread_api != yes; then # For FreeBSD 4. AC_CHECK_LIB([c_r], [pthread_kill], [gl_pthread_api=yes LIBPTHREAD=-lc_r LIBPMULTITHREAD=-lc_r]) fi fi echo "$as_me:__oline__: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&AS_MESSAGE_LOG_FD fi AC_MSG_CHECKING([whether POSIX threads API is available]) AC_MSG_RESULT([$gl_pthread_api]) AC_SUBST([LIBPTHREAD]) AC_SUBST([LIBPMULTITHREAD]) if test $gl_pthread_api = yes; then AC_DEFINE([HAVE_PTHREAD_API], [1], [Define if you have the <pthread.h> header and the POSIX threads API.]) fi dnl On some systems, sched_yield is in librt, rather than in libpthread. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <sched.h>]], [[sched_yield ();]])], [SCHED_YIELD_LIB= ], [dnl Solaris 7...10 has sched_yield in librt, not in libpthread or libc. AC_CHECK_LIB([rt], [sched_yield], [SCHED_YIELD_LIB=-lrt], [dnl Solaris 2.5.1, 2.6 has sched_yield in libposix4, not librt. AC_CHECK_LIB([posix4], [sched_yield], [SCHED_YIELD_LIB=-lposix4])]) ]) AC_SUBST([SCHED_YIELD_LIB]) dnl For backward compatibility. LIB_SCHED_YIELD="$SCHED_YIELD_LIB" AC_SUBST([LIB_SCHED_YIELD]) gl_pthreadlib_body_done=done fi ]) AC_DEFUN([gl_PTHREADLIB], [ AC_REQUIRE([gl_ANYTHREADLIB_EARLY]) gl_PTHREADLIB_BODY ]) dnl ============================================================================ dnl Macros for the ISO C API dnl gl_STDTHREADLIB dnl --------------- dnl Tests for the libraries needs for using the ISO C threads API. dnl Sets the variable LIBSTDTHREAD to the linker options for use in a Makefile. dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. dnl Defines the C macro HAVE_THREADS_H if (at least parts of) the ISO C threads dnl API is available. dnl The guts of gl_STDTHREADLIB. Needs to be expanded only once. AC_DEFUN([gl_STDTHREADLIB_BODY], [ AC_REQUIRE([gl_ANYTHREADLIB_EARLY]) AC_REQUIRE([AC_CANONICAL_HOST]) if test -z "$gl_stdthreadlib_body_done"; then AC_CHECK_HEADERS_ONCE([threads.h]) case "$host_os" in mingw*) LIBSTDTHREAD= ;; *) gl_PTHREADLIB_BODY if test $ac_cv_header_threads_h = yes; then dnl glibc >= 2.29 has thrd_create in libpthread. dnl FreeBSD >= 10 has thrd_create in libstdthreads; this library depends dnl on libpthread (for the symbol 'pthread_mutexattr_gettype'). dnl glibc >= 2.34, AIX >= 7.1, and Solaris >= 11.4 have thrd_create in dnl libc. gl_CHECK_FUNCS_ANDROID([thrd_create], [[#include <threads.h>]]) if test $ac_cv_func_thrd_create = yes; then LIBSTDTHREAD= else AC_CHECK_LIB([stdthreads], [thrd_create], [ LIBSTDTHREAD='-lstdthreads -lpthread' ], [ dnl Guess that thrd_create is in libpthread. LIBSTDTHREAD="$LIBPMULTITHREAD" ]) fi else dnl Libraries needed by thrd.c, mtx.c, cnd.c, tss.c. LIBSTDTHREAD="$LIBPMULTITHREAD $SCHED_YIELD_LIB" fi ;; esac AC_SUBST([LIBSTDTHREAD]) AC_MSG_CHECKING([whether ISO C threads API is available]) AC_MSG_RESULT([$ac_cv_header_threads_h]) gl_stdthreadlib_body_done=done fi ]) AC_DEFUN([gl_STDTHREADLIB], [ AC_REQUIRE([gl_ANYTHREADLIB_EARLY]) gl_STDTHREADLIB_BODY ]) dnl ============================================================================ dnl Macros for the Gnulib API dnl gl_THREADLIB dnl ------------ dnl Tests for a multithreading library to be used. dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the dnl default is 'no', otherwise it is system dependent. In both cases, the user dnl can change the choice through the options --enable-threads=choice or dnl --disable-threads. dnl Defines at most one of the macros USE_ISOC_THREADS, USE_POSIX_THREADS, dnl USE_ISOC_AND_POSIX_THREADS, USE_WINDOWS_THREADS. dnl The choice --enable-threads=isoc+posix is available only on platforms that dnl have both the ISO C and the POSIX threads APIs. It has the effect of using dnl the ISO C API for most things and the POSIX API only for creating and dnl controlling threads (because there is no equivalent to pthread_atfork in dnl the ISO C API). dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not. dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. dnl Since support for GNU pth was removed, $LTLIBTHREAD and $LIBTHREAD have the dnl same value, and similarly $LTLIBMULTITHREAD and $LIBMULTITHREAD have the dnl same value. Only system libraries are needed. AC_DEFUN([gl_THREADLIB_EARLY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) ]) dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_EARLY_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked dnl declarations, on AIX 5 at least. Therefore it must come early. AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl AC_BEFORE([$0], [gl_ARGP])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl Check for multithreading. m4_ifdef([gl_THREADLIB_DEFAULT_NO], [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])], [m4_divert_text([DEFAULTS], [gl_use_threads_default=])]) m4_divert_text([DEFAULTS], [gl_use_winpthreads_default=]) AC_ARG_ENABLE([threads], AS_HELP_STRING([--enable-threads={isoc|posix|isoc+posix|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [ AS_HELP_STRING([--disable-threads], [build without multithread safety])]), [gl_use_threads=$enableval], [if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else changequote(,)dnl case "$host_os" in dnl Disable multithreading by default on OSF/1, because it interferes dnl with fork()/exec(): When msgexec is linked with -lpthread, its dnl child process gets an endless segmentation fault inside execvp(). osf*) gl_use_threads=no ;; dnl Disable multithreading by default on Cygwin 1.5.x, because it has dnl bugs that lead to endless loops or crashes. See dnl <https://cygwin.com/ml/cygwin/2009-08/msg00283.html>. cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; dnl Obey gl_AVOID_WINPTHREAD on mingw. mingw*) case "$gl_use_winpthreads_default" in yes) gl_use_threads=posix ;; no) gl_use_threads=windows ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac changequote([,])dnl fi ]) if test "$gl_use_threads" = yes \ || test "$gl_use_threads" = isoc \ || test "$gl_use_threads" = posix \ || test "$gl_use_threads" = isoc+posix; then # For using <threads.h> or <pthread.h>: gl_ANYTHREADLIB_EARLY fi ]) dnl The guts of gl_THREADLIB. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_BODY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. gl_WEAK_SYMBOLS if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then dnl If we use weak symbols to implement pthread_in_use / pth_in_use / dnl thread_in_use, we also need to test whether the ISO C 11 thrd_create dnl facility is in use. AC_CHECK_HEADERS_ONCE([threads.h]) : fi if test "$gl_use_threads" = isoc || test "$gl_use_threads" = isoc+posix; then AC_CHECK_HEADERS_ONCE([threads.h]) gl_have_isoc_threads="$ac_cv_header_threads_h" fi if test "$gl_use_threads" = yes \ || test "$gl_use_threads" = posix \ || test "$gl_use_threads" = isoc+posix; then gl_PTHREADLIB_BODY LIBTHREAD=$LIBPTHREAD LTLIBTHREAD=$LIBPTHREAD LIBMULTITHREAD=$LIBPMULTITHREAD LTLIBMULTITHREAD=$LIBPMULTITHREAD if test $gl_pthread_api = yes; then if test "$gl_use_threads" = isoc+posix && test "$gl_have_isoc_threads" = yes; then gl_threads_api='isoc+posix' AC_DEFINE([USE_ISOC_AND_POSIX_THREADS], [1], [Define if the combination of the ISO C and POSIX multithreading APIs can be used.]) LIBTHREAD= LTLIBTHREAD= else gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], [1], [Define if the POSIX multithreading library can be used.]) if test -z "$LIBMULTITHREAD" && test -z "$LTLIBMULTITHREAD"; then AC_DEFINE([USE_POSIX_THREADS_FROM_LIBC], [1], [Define if references to the POSIX multithreading library are satisfied by libc.]) else if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_POSIX_THREADS_WEAK], [1], [Define if references to the POSIX multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= else case "$host_os" in freebsd* | dragonfly* | midnightbsd*) if test "x$LIBTHREAD" != "x$LIBMULTITHREAD"; then dnl If weak symbols can't tell whether pthread_create(), pthread_key_create() dnl etc. will succeed, we need a runtime test. AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], [Define if the pthread_in_use() detection is hard.]) fi ;; esac fi fi fi fi fi if test $gl_threads_api = none; then if test "$gl_use_threads" = isoc && test "$gl_have_isoc_threads" = yes; then gl_STDTHREADLIB_BODY LIBTHREAD=$LIBSTDTHREAD LTLIBTHREAD=$LIBSTDTHREAD LIBMULTITHREAD=$LIBSTDTHREAD LTLIBMULTITHREAD=$LIBSTDTHREAD gl_threads_api=isoc AC_DEFINE([USE_ISOC_THREADS], [1], [Define if the ISO C multithreading library can be used.]) fi fi if test $gl_threads_api = none; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows AC_DEFINE([USE_WINDOWS_THREADS], [1], [Define if the native Windows multithreading API can be used.]) fi ;; esac fi fi AC_MSG_CHECKING([for multithread API to use]) AC_MSG_RESULT([$gl_threads_api]) AC_SUBST([LIBTHREAD]) AC_SUBST([LTLIBTHREAD]) AC_SUBST([LIBMULTITHREAD]) AC_SUBST([LTLIBMULTITHREAD]) ]) AC_DEFUN([gl_THREADLIB], [ AC_REQUIRE([gl_THREADLIB_EARLY]) AC_REQUIRE([gl_THREADLIB_BODY]) ]) dnl gl_DISABLE_THREADS dnl ------------------ dnl Sets the gl_THREADLIB default so that threads are not used by default. dnl The user can still override it at installation time, by using the dnl configure option '--enable-threads'. AC_DEFUN([gl_DISABLE_THREADS], [ m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no]) ]) dnl gl_AVOID_WINPTHREAD dnl ------------------- dnl Sets the gl_THREADLIB default so that on mingw, a dependency to the dnl libwinpthread DLL (mingw-w64 winpthreads library) is avoided. dnl The user can still override it at installation time, by using the dnl configure option '--enable-threads'. AC_DEFUN([gl_AVOID_WINPTHREAD], [ m4_divert_text([INIT_PREPARE], [gl_use_winpthreads_default=no]) ]) dnl ============================================================================ dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl dnl Linux/glibc 2.34 posix Y OK dnl dnl GNU Hurd/glibc posix -lpthread Y OK dnl dnl Ubuntu 14.04 posix -pthread Y OK dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y dnl posix -lpthread ? Y dnl posix -lthr Y dnl dnl FreeBSD 5.2 posix -lc_r Y dnl posix -lkse Y dnl posix -lthr Y dnl dnl FreeBSD 4.0,4.10 posix -lc_r Y OK dnl dnl NetBSD 1.6 -- dnl dnl OpenBSD 3.4 posix -lpthread Y OK dnl dnl Mac OS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) dnl dnl IRIX 6.5 posix -lpthread Y 0.5 dnl dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK dnl dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl dnl Mingw windows N OK dnl dnl BeOS 5 -- dnl dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is dnl turned off: dnl OK if all three tests terminate OK, dnl 0.5 if the first test terminates OK but the second one loops endlessly, dnl 0.0 if the first test already loops endlessly. ������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/time_h.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000016647�14374751113�011415� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Configure a more-standard replacement for <time.h>. # Copyright (C) 2000-2001, 2003-2007, 2009-2023 Free Software Foundation, Inc. # serial 21 # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert and Jim Meyering. AC_DEFUN_ONCE([gl_TIME_H], [ dnl Ensure to expand the default settings once only, before all statements dnl that occur in other macros. AC_REQUIRE([gl_TIME_H_DEFAULTS]) gl_NEXT_HEADERS([time.h]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #include <time.h> ]], [asctime_r ctime_r]) AC_REQUIRE([AC_C_RESTRICT]) AC_CACHE_CHECK([for TIME_UTC in <time.h>], [gl_cv_time_h_has_TIME_UTC], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <time.h> ]], [[static int x = TIME_UTC; x++;]])], [gl_cv_time_h_has_TIME_UTC=yes], [gl_cv_time_h_has_TIME_UTC=no])]) if test $gl_cv_time_h_has_TIME_UTC = yes; then TIME_H_DEFINES_TIME_UTC=1 else TIME_H_DEFINES_TIME_UTC=0 fi AC_SUBST([TIME_H_DEFINES_TIME_UTC]) ]) dnl Check whether 'struct timespec' is declared dnl in time.h, sys/time.h, pthread.h, or unistd.h. AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [ AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CACHE_CHECK([for struct timespec in <time.h>], [gl_cv_sys_struct_timespec_in_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <time.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_time_h=yes], [gl_cv_sys_struct_timespec_in_time_h=no])]) TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in <sys/time.h>], [gl_cv_sys_struct_timespec_in_sys_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/time.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_sys_time_h=yes], [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in <pthread.h>], [gl_cv_sys_struct_timespec_in_pthread_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <pthread.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_pthread_h=yes], [gl_cv_sys_struct_timespec_in_pthread_h=no])]) if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in <unistd.h>], [gl_cv_sys_struct_timespec_in_unistd_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_unistd_h=yes], [gl_cv_sys_struct_timespec_in_unistd_h=no])]) if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi fi AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC]) ]) # gl_TIME_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_TIME_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_TIME_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_TIME_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NANOSLEEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRFTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMEGM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GET]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GETRES]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_RZ]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZSET]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TZSET], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_TIME_H_DEFAULTS]) ]) AC_DEFUN([gl_TIME_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) HAVE_TIMESPEC_GET=1; AC_SUBST([HAVE_TIMESPEC_GET]) HAVE_TIMESPEC_GETRES=1; AC_SUBST([HAVE_TIMESPEC_GETRES]) dnl Even GNU libc does not have timezone_t yet. HAVE_TIMEZONE_T=0; AC_SUBST([HAVE_TIMEZONE_T]) dnl If another module says to replace or to not replace, do that. dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; dnl this lets maintainers check for portability. REPLACE_CTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_CTIME]) REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) REPLACE_STRFTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRFTIME]) REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) REPLACE_TIMESPEC_GET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMESPEC_GET]) REPLACE_TZSET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TZSET]) dnl Hack so that the time module doesn't depend on the sys_time module. dnl First, default GNULIB_GETTIMEOFDAY to 0 if sys_time is absent. : ${GNULIB_GETTIMEOFDAY=0}; AC_SUBST([GNULIB_GETTIMEOFDAY]) dnl Second, it's OK to not use GNULIB_PORTCHECK for REPLACE_GMTIME dnl and REPLACE_LOCALTIME, as portability to Solaris 2.6 and earlier dnl is no longer a big deal. REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME]) REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) ]) �����������������������������������������������������������������������������������������a2ps-4.15.5/m4/unistd-safer.m4����������������������������������������������������������������������0000644�0000000�0000000�00000000530�14374751113�012534� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 9 dnl Copyright (C) 2002, 2005-2006, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_UNISTD_SAFER], [ AC_CHECK_FUNCS_ONCE([pipe]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/unistd_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000034335�14374751113�011757� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# unistd_h.m4 serial 94 dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Simon Josefsson, Bruno Haible. AC_DEFUN_ONCE([gl_UNISTD_H], [ dnl Ensure to expand the default settings once only, before all statements dnl that occur in other macros. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([unistd.h]) if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi AC_SUBST([HAVE_UNISTD_H]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Determine WINDOWS_64_BIT_OFF_T. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if HAVE_UNISTD_H # include <unistd.h> #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <fcntl.h> # include <stdio.h> # include <stdlib.h> # if defined _WIN32 && ! defined __CYGWIN__ # include <io.h> # endif #endif ]], [access chdir chown copy_file_range dup dup2 dup3 environ euidaccess execl execle execlp execv execve execvp execvpe faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getentropy getgroups gethostname getlogin getlogin_r getpagesize getpass getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat truncate ttyname_r unlink unlinkat usleep]) AC_REQUIRE([AC_C_RESTRICT]) AC_CHECK_DECLS_ONCE([execvpe]) if test $ac_cv_have_decl_execvpe = no; then HAVE_DECL_EXECVPE=0 fi ]) # gl_UNISTD_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_UNISTD_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCESS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHOWN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPY_FILE_RANGE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP2]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP3]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ENVIRON]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EUIDACCESS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FACCESSAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHOWNAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDATASYNC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSYNC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTRUNCATE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCWD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDOMAINNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDTABLESIZE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETENTROPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETGROUPS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETHOSTNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETOPT_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAGESIZE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS_GNU]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUSERSHELL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GROUP_MEMBER]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISATTY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHOWN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINKAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSEEK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE2]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PREAD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PWRITE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READ]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINKAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RMDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETHOSTNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SLEEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINKAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCATE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TTYNAME_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_NONBLOCKING]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_SIGPIPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINKAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_USLEEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WRITE]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ACCESS], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHDIR], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CLOSE], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP2], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECL], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLE], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLP], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECV], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVE], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVP], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVPE], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETCWD], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETPID], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ISATTY], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEEK], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_READ], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_RMDIR], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_SWAB], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UNLINK], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WRITE], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) ]) AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE]) HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) HAVE_EXECVPE=1; AC_SUBST([HAVE_EXECVPE]) HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) HAVE_GETENTROPY=1; AC_SUBST([HAVE_GETENTROPY]) HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) HAVE_GETPASS=1; AC_SUBST([HAVE_GETPASS]) HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) HAVE_DECL_EXECVPE=1; AC_SUBST([HAVE_DECL_EXECVPE]) HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) HAVE_DECL_GETLOGIN=1; AC_SUBST([HAVE_DECL_GETLOGIN]) HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) REPLACE_ACCESS=0; AC_SUBST([REPLACE_ACCESS]) REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) REPLACE_COPY_FILE_RANGE=0; AC_SUBST([REPLACE_COPY_FILE_RANGE]) REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_DUP3=0; AC_SUBST([REPLACE_DUP3]) REPLACE_EXECL=0; AC_SUBST([REPLACE_EXECL]) REPLACE_EXECLE=0; AC_SUBST([REPLACE_EXECLE]) REPLACE_EXECLP=0; AC_SUBST([REPLACE_EXECLP]) REPLACE_EXECV=0; AC_SUBST([REPLACE_EXECV]) REPLACE_EXECVE=0; AC_SUBST([REPLACE_EXECVE]) REPLACE_EXECVP=0; AC_SUBST([REPLACE_EXECVP]) REPLACE_EXECVPE=0; AC_SUBST([REPLACE_EXECVPE]) REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_FDATASYNC=0; AC_SUBST([REPLACE_FDATASYNC]) REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE]) REPLACE_GETENTROPY=0; AC_SUBST([REPLACE_GETENTROPY]) REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS]) REPLACE_GETPASS_FOR_GETPASS_GNU=0; AC_SUBST([REPLACE_GETPASS_FOR_GETPASS_GNU]) REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) REPLACE_PIPE2=0; AC_SUBST([REPLACE_PIPE2]) REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SETHOSTNAME=0; AC_SUBST([REPLACE_SETHOSTNAME]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) REPLACE_TRUNCATE=0; AC_SUBST([REPLACE_TRUNCATE]) REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) UNISTD_H_HAVE_SYS_RANDOM_H=0; AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H]) UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/version-etc.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000002226�14374751113�012372� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# version-etc.m4 serial 1 # Copyright (C) 2009-2023 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl $1 - configure flag and define name dnl $2 - human readable description m4_define([gl_VERSION_ETC_FLAG], [dnl AC_ARG_WITH([$1], [AS_HELP_STRING([--with-$1], [$2])], [dnl case $withval in yes|no) ;; *) AC_DEFINE_UNQUOTED(AS_TR_CPP([PACKAGE_$1]), ["$withval"], [$2]) ;; esac ]) ]) AC_DEFUN([gl_VERSION_ETC], [dnl gl_VERSION_ETC_FLAG([packager], [String identifying the packager of this software]) gl_VERSION_ETC_FLAG([packager-version], [Packager-specific version information]) gl_VERSION_ETC_FLAG([packager-bug-reports], [Packager info for bug reports (URL/e-mail/...)]) if test "X$with_packager" = "X" && \ test "X$with_packager_version$with_packager_bug_reports" != "X" then AC_MSG_ERROR([The --with-packager-{bug-reports,version} options require --with-packager]) fi ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/visibility.m4������������������������������������������������������������������������0000644�0000000�0000000�00000006622�14374751113�012327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# visibility.m4 serial 8 dnl Copyright (C) 2005, 2008, 2010-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests whether the compiler supports the command-line option dnl -fvisibility=hidden and the function and variable attributes dnl __attribute__((__visibility__("hidden"))) and dnl __attribute__((__visibility__("default"))). dnl Does *not* test for __visibility__("protected") - which has tricky dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on dnl Mac OS X. dnl Does *not* test for __visibility__("internal") - which has processor dnl dependent semantics. dnl Does *not* test for #pragma GCC visibility push(hidden) - which is dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. AC_DEFUN([gl_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then dnl First, check whether -Werror can be added to the command line, or dnl whether it leads to an error because of some other option that the dnl user has put into $CC $CFLAGS $CPPFLAGS. AC_CACHE_CHECK([whether the -Werror option is usable], [gl_cv_cc_vis_werror], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_vis_werror=yes], [gl_cv_cc_vis_werror=no]) CFLAGS="$gl_save_CFLAGS" ]) dnl Now check whether visibility declarations are supported. AC_CACHE_CHECK([for simple visibility declarations], [gl_cv_cc_visibility], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" dnl We use the option -Werror and a function dummyfunc, because on some dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning dnl "visibility attribute not supported in this configuration; ignored" dnl at the first function definition in every compilation unit, and we dnl don't want to use the option in this case. if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void); int hiddenvar; int exportedvar; int hiddenfunc (void) { return 51; } int exportedfunc (void) { return 1225736919; } void dummyfunc (void) {} ]], [[]])], [gl_cv_cc_visibility=yes], [gl_cv_cc_visibility=no]) CFLAGS="$gl_save_CFLAGS" ]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi AC_SUBST([CFLAG_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) ��������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/warn-on-use.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000005523�14374751113�012312� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# warn-on-use.m4 serial 10 dnl Copyright (C) 2010-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- # If the module 'posixcheck' is in use: # # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. # # See warn-on-use.h for some hints on how to poison function names, as # well as ideas on poisoning global variables and macros. NAMES may # include global variables, but remember that only functions work with # _GL_WARN_ON_USE. Typically, INCLUDES only needs to list a single # header, but if the replacement header pulls in other headers because # some systems declare functions in the wrong header, then INCLUDES # should do likewise. # # It is generally safe to assume declarations for functions declared # in the intersection of C89 and C11 (such as printf) without # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ m4_ifdef([gl_POSIXCHECK], [m4_foreach_w([gl_decl], [$2], [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), [Define to 1 if ]m4_defn([gl_decl])[ is declared even after undefining macros.])])dnl for gl_func in m4_flatten([$2]); do AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl dnl As a workaround to implicit built-in function declarations in dnl clang (e.g. strndup), reference ac_compile_for_check_decl instead dnl of ac_compile. If, for whatever reason, the override of AC_PROG_CC dnl in zzgnulib.m4 is inactive, use the original ac_compile. ac_save_ac_compile="$ac_compile" if test -n "$ac_compile_for_check_decl"; then ac_compile="$ac_compile_for_check_decl" fi AC_CACHE_CHECK([whether $gl_func is declared without a macro], [gl_Symbol], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], [[#undef $gl_func (void) $gl_func;]])], [AS_VAR_SET([gl_Symbol], [yes])], [AS_VAR_SET([gl_Symbol], [no])])]) ac_compile="$ac_save_ac_compile" AS_VAR_IF([gl_Symbol], [yes], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) dnl Shortcut for an AC_CHECK_DECL invocation that may come later: dnl If the raw declaration exists with the given includes, then dnl AC_CHECK_DECL with its many includes would see it as well. dnl So, set a cache variable to allow skipping any later dnl AC_CHECK_DECL invocation for $gl_func. eval "ac_cv_have_decl_$gl_func=yes" ]) AS_VAR_POPDEF([gl_Symbol])dnl done ]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/warnings.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000007456�14374751113�011776� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# warnings.m4 serial 16 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_AS_VAR_APPEND(VAR, VALUE) # ---------------------------- # Provide the functionality of AS_VAR_APPEND if Autoconf does not have it. m4_ifdef([AS_VAR_APPEND], [m4_copy([AS_VAR_APPEND], [gl_AS_VAR_APPEND])], [m4_define([gl_AS_VAR_APPEND], [AS_VAR_SET([$1], [AS_VAR_GET([$1])$2])])]) # gl_COMPILER_OPTION_IF(OPTION, [IF-SUPPORTED], [IF-NOT-SUPPORTED], # [PROGRAM = AC_LANG_PROGRAM()]) # ----------------------------------------------------------------- # Check if the compiler supports OPTION when compiling PROGRAM. # # The effects of this macro depend on the current language (_AC_LANG). AC_DEFUN([gl_COMPILER_OPTION_IF], [ AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl AS_LITERAL_IF([$1], [m4_pushdef([gl_Positive], m4_bpatsubst([$1], [^-Wno-], [-W]))], [gl_positive="$1" case $gl_positive in -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;; esac m4_pushdef([gl_Positive], [$gl_positive])])dnl AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], [gl_Warn], [ gl_save_compiler_FLAGS="$gl_Flags" gl_AS_VAR_APPEND(m4_defn([gl_Flags]), [" $gl_unknown_warnings_are_errors ]m4_defn([gl_Positive])["]) AC_LINK_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([[]])])], [AS_VAR_SET([gl_Warn], [yes])], [AS_VAR_SET([gl_Warn], [no])]) gl_Flags="$gl_save_compiler_FLAGS" ]) AS_VAR_IF(gl_Warn, [yes], [$2], [$3]) m4_popdef([gl_Positive])dnl AS_VAR_POPDEF([gl_Flags])dnl AS_VAR_POPDEF([gl_Warn])dnl ]) # gl_UNKNOWN_WARNINGS_ARE_ERRORS # ------------------------------ # Clang doesn't complain about unknown warning options unless one also # specifies -Wunknown-warning-option -Werror. Detect this. # # The effects of this macro depend on the current language (_AC_LANG). AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS], [_AC_LANG_DISPATCH([$0], _AC_LANG, $@)]) # Specialization for _AC_LANG = C. This macro can be AC_REQUIREd. AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS(C)], [ AC_LANG_PUSH([C]) gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL AC_LANG_POP([C]) ]) # Specialization for _AC_LANG = C++. This macro can be AC_REQUIREd. AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)], [ AC_LANG_PUSH([C++]) gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL AC_LANG_POP([C++]) ]) # Specialization for _AC_LANG = Objective C. This macro can be AC_REQUIREd. AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)], [ AC_LANG_PUSH([Objective C]) gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL AC_LANG_POP([Objective C]) ]) AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL], [gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option], [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'], [gl_unknown_warnings_are_errors=])]) # gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS/WARN_CXXFLAGS], # [PROGRAM = AC_LANG_PROGRAM()]) # ----------------------------------------------------------- # Adds parameter to WARN_CFLAGS/WARN_CXXFLAGS if the compiler supports it # when compiling PROGRAM. For example, gl_WARN_ADD([-Wparentheses]). # # If VARIABLE is a variable name, AC_SUBST it. # # The effects of this macro depend on the current language (_AC_LANG). AC_DEFUN([gl_WARN_ADD], [AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS(]_AC_LANG[)]) gl_COMPILER_OPTION_IF([$1], [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_]_AC_LANG_PREFIX[FLAGS]], [[$2]]), [" $1"])], [], [$3]) m4_ifval([$2], [AS_LITERAL_IF([$2], [AC_SUBST([$2])])], [AC_SUBST([WARN_]_AC_LANG_PREFIX[FLAGS])])dnl ]) # Local Variables: # mode: autoconf # End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/wchar_h.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000025777�14374751113�011567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues. dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Eric Blake. # wchar_h.m4 serial 56 AC_DEFUN_ONCE([gl_WCHAR_H], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) dnl Prepare for creating substitute <wchar.h>. dnl Check for <wchar.h> (missing in Linux uClibc when built without wide dnl character support). dnl <wchar.h> is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) AC_REQUIRE([gl_FEATURES_H]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #include <wchar.h> ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmempcpy wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth wcsftime ]) AC_REQUIRE([AC_C_RESTRICT]) AC_CHECK_DECLS([wcsdup], [], [], [[ #include <wchar.h> ]]) if test $ac_cv_have_decl_wcsdup = no; then HAVE_DECL_WCSDUP=0 fi ]) dnl Check whether <wchar.h> is usable at all. AC_DEFUN([gl_WCHAR_H_INLINE_OK], [ dnl Test whether <wchar.h> suffers due to the transition from '__inline' to dnl 'gnu_inline'. See <https://sourceware.org/bugzilla/show_bug.cgi?id=4022> dnl and <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. In summary, dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and dnl the option -std=c99 or -std=gnu99, leads to a broken <wchar.h>. AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether <wchar.h> uses 'inline' correctly], [gl_cv_header_wchar_h_correct_inline], [gl_cv_header_wchar_h_correct_inline=yes case "$host_os" in *-gnu* | gnu*) AC_LANG_CONFTEST([ AC_LANG_SOURCE([[ #define wcstod renamed_wcstod #include <wchar.h> extern int zero (void); int main () { return zero(); } ]])]) dnl Do not rename the object file from conftest.$ac_objext to dnl conftest1.$ac_objext, as this will cause the link to fail on dnl z/OS when using the XPLINK object format (due to duplicate dnl CSECT names). Instead, temporarily redefine $ac_compile so dnl that the object file has the latter name from the start. save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` if echo '#include "conftest.c"' >conftest1.c \ && AC_TRY_EVAL([ac_compile]); then AC_LANG_CONFTEST([ AC_LANG_SOURCE([[ #define wcstod renamed_wcstod #include <wchar.h> int zero (void) { return 0; } ]])]) dnl See note above about renaming object files. ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` if echo '#include "conftest.c"' >conftest2.c \ && AC_TRY_EVAL([ac_compile]); then if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi ac_compile="$save_ac_compile" rm -f conftest[12].c conftest[12].$ac_objext conftest$ac_exeext ;; esac ]) if test $gl_cv_header_wchar_h_correct_inline = no; then AC_MSG_ERROR([<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted.]) fi ]) # gl_WCHAR_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_WCHAR_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_WCHAR_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BTOWC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOB]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSINIT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRTOWC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRTOWCS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNRTOWCS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCRTOMB]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRTOMBS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNRTOMBS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCWIDTH]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMMOVE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMPCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMSET]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPNCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCASECMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCASECMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCOLL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSXFRM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSDUP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCSPN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSPN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSPBRK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSTOK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSWIDTH]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSFTIME]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WCSDUP], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS]) dnl Make sure the shell variable for GNULIB_FREE_POSIX is initialized. gl_STDLIB_H_REQUIRE_DEFAULTS AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) ]) AC_DEFUN([gl_WCHAR_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) HAVE_MBRTOWC=1; AC_SUBST([HAVE_MBRTOWC]) HAVE_MBRLEN=1; AC_SUBST([HAVE_MBRLEN]) HAVE_MBSRTOWCS=1; AC_SUBST([HAVE_MBSRTOWCS]) HAVE_MBSNRTOWCS=1; AC_SUBST([HAVE_MBSNRTOWCS]) HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) HAVE_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR]) HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP]) HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY]) HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE]) HAVE_WMEMPCPY=1; AC_SUBST([HAVE_WMEMPCPY]) HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET]) HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN]) HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN]) HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY]) HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY]) HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY]) HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY]) HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT]) HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT]) HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP]) HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP]) HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP]) HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP]) HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL]) HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM]) HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP]) HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR]) HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR]) HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN]) HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN]) HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK]) HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR]) HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK]) HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH]) HAVE_WCSFTIME=1; AC_SUBST([HAVE_WCSFTIME]) HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) HAVE_DECL_WCSDUP=1; AC_SUBST([HAVE_DECL_WCSDUP]) HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) REPLACE_WCTOB=0; AC_SUBST([REPLACE_WCTOB]) REPLACE_MBSINIT=0; AC_SUBST([REPLACE_MBSINIT]) REPLACE_MBRTOWC=0; AC_SUBST([REPLACE_MBRTOWC]) REPLACE_MBRLEN=0; AC_SUBST([REPLACE_MBRLEN]) REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS]) REPLACE_MBSNRTOWCS=0; AC_SUBST([REPLACE_MBSNRTOWCS]) REPLACE_WCRTOMB=0; AC_SUBST([REPLACE_WCRTOMB]) REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH]) REPLACE_WCSFTIME=0; AC_SUBST([REPLACE_WCSFTIME]) REPLACE_WCSTOK=0; AC_SUBST([REPLACE_WCSTOK]) REPLACE_WMEMPCPY=0; AC_SUBST([REPLACE_WMEMPCPY]) ]) �a2ps-4.15.5/m4/wchar_t.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001462�14374751113�011564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wchar_t.m4 serial 4 (gettext-0.18.2) dnl Copyright (C) 2002-2003, 2008-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether <stddef.h> has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stddef.h> wchar_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wchar_t=yes], [gt_cv_c_wchar_t=no])]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.]) fi ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/wctype_h.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000014444�14374751113�011763� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wctype_h.m4 serial 30 dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it. dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN_ONCE([gl_WCTYPE_H], [ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([iswcntrl]) if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi AC_SUBST([HAVE_ISWCNTRL]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) gl_CHECK_NEXT_HEADERS([wctype.h]) if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then dnl Linux libc5 has an iswprint function that returns 0 for all arguments. dnl The other functions are likely broken in the same way. AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <wchar.h> #include <wctype.h> int main () { return iswprint ('x') == 0; } ]])], [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no], [dnl Guess no on Linux libc5, yes otherwise. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif]], [[]])], [gl_cv_func_iswcntrl_works="guessing yes"], [gl_cv_func_iswcntrl_works="guessing no"]) ]) ]) fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi AC_SUBST([HAVE_WCTYPE_H]) if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then REPLACE_ISWCNTRL=1 else case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac fi AC_SUBST([REPLACE_ISWCNTRL]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>. : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else AC_CHECK_FUNCS([towlower]) if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else AC_CHECK_DECLS([towlower],,, [[#include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif ]]) if test $ac_cv_have_decl_towlower = yes; then dnl On Minix 3.1.8, the system's <wctype.h> declares towlower() and dnl towupper() although it does not have the functions. Avoid a dnl collision with gnulib's replacement. REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi AC_SUBST([REPLACE_TOWLOWER]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then dnl Redefine towlower, towupper in <wctype.h>. : fi dnl We assume that the wctype() and iswctype() functions exist if and only dnl if the type wctype_t is defined in <wchar.h> or in <wctype.h> if that dnl exists. dnl HP-UX 11.00 declares all these in <wchar.h> and lacks <wctype.h>. AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <wchar.h> #if HAVE_WCTYPE_H # include <wctype.h> #endif wctype_t a; ]], [[]])], [gl_cv_type_wctype_t=yes], [gl_cv_type_wctype_t=no]) ]) if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi dnl We assume that the wctrans() and towctrans() functions exist if and only dnl if the type wctrans_t is defined in <wctype.h>. AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <wchar.h> #include <wctype.h> wctrans_t a; ]], [[]])], [gl_cv_type_wctrans_t=yes], [gl_cv_type_wctrans_t=no]) ]) if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <wchar.h> #endif #include <wctype.h> ]], [wctype iswctype wctrans towctrans ]) ]) # gl_WCTYPE_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_WCTYPE_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_WCTYPE_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWBLANK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWDIGIT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWXDIGIT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTYPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWCTYPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTRANS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOWCTRANS]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) ]) AC_DEFUN([gl_WCTYPE_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK]) HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T]) HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T]) REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK]) REPLACE_ISWDIGIT=0; AC_SUBST([REPLACE_ISWDIGIT]) REPLACE_ISWXDIGIT=0; AC_SUBST([REPLACE_ISWXDIGIT]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/wint_t.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000003433�14374751113�011441� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wint_t.m4 serial 11 dnl Copyright (C) 2003, 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether <wchar.h> has the 'wint_t' type and whether gnulib's dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <wchar.h> wint_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) dnl Determine whether gnulib's <wchar.h> or <wctype.h> would, if present, dnl override 'wint_t'. AC_CACHE_CHECK([whether wint_t is large enough], [gl_cv_type_wint_t_large_enough], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <wchar.h> int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; ]])], [gl_cv_type_wint_t_large_enough=yes], [gl_cv_type_wint_t_large_enough=no])]) if test $gl_cv_type_wint_t_large_enough = no; then GNULIBHEADERS_OVERRIDE_WINT_T=1 else GNULIBHEADERS_OVERRIDE_WINT_T=0 fi else GNULIBHEADERS_OVERRIDE_WINT_T=0 fi AC_SUBST([GNULIBHEADERS_OVERRIDE_WINT_T]) ]) dnl Prerequisites of the 'wint_t' override. AC_DEFUN([gl_TYPE_WINT_T_PREREQ], [ AC_CHECK_HEADERS_ONCE([crtdefs.h]) if test $ac_cv_header_crtdefs_h = yes; then HAVE_CRTDEFS_H=1 else HAVE_CRTDEFS_H=0 fi AC_SUBST([HAVE_CRTDEFS_H]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/xalloc.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000000472�14374751113�011417� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# xalloc.m4 serial 18 dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XALLOC], [:]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/xstrndup.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000000631�14374751113�012021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# xstrndup.m4 serial 2 dnl Copyright (C) 2003, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XSTRNDUP], [ gl_PREREQ_XSTRNDUP ]) # Prerequisites of lib/xstrndup.c. AC_DEFUN([gl_PREREQ_XSTRNDUP], [ : ]) �������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/xstrtol.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000000464�14374751113�011655� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 11 dnl Copyright (C) 2002-2007, 2009-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XSTRTOL], [ : ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/m4/zzgnulib.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000001522�14374751113�011776� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# zzgnulib.m4 serial 1 dnl Copyright (C) 2020-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This file must be named something that sorts after all other dnl package- or gnulib-provided .m4 files - at least for those packages dnl that redefine AC_PROG_CC. dnl Redefine AC_PROG_CC so that it ends with invocations of gl_COMPILER_CLANG dnl and gl_COMPILER_PREPARE_CHECK_DECL. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[ gl_COMPILER_CLANG gl_COMPILER_PREPARE_CHECK_DECL ]) # gl_ZZGNULIB # ----------- # Witness macro that this file has been included. Needed to force # Automake to include this file after all other gnulib .m4 files. AC_DEFUN([gl_ZZGNULIB]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/maint.mk��������������������������������������������������������������������������������0000644�0000000�0000000�00000204616�14374751113�011022� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*-Makefile-*- # This Makefile fragment tries to be general-purpose enough to be # used by many projects via the gnulib maintainer-makefile module. ## Copyright (C) 2001-2023 Free Software Foundation, Inc. ## ## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see <https://www.gnu.org/licenses/>. # This is reported not to work with make-3.79.1 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) ME := maint.mk # These variables ought to be defined through the configure.ac section # of the module description. But some packages import this file directly, # ignoring the module description. AWK ?= awk GREP ?= grep SED ?= sed # Helper variables. _empty = _sp = $(_empty) $(_empty) # _equal,S1,S2 # ------------ # If S1 == S2, return S1, otherwise the empty string. _equal = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1))) # member-check,VARIABLE,VALID-VALUES # ---------------------------------- # Check that $(VARIABLE) is in the space-separated list of VALID-VALUES, and # return it. Die otherwise. member-check = \ $(strip \ $(if $($(1)), \ $(if $(findstring $(_sp),$($(1))), \ $(error invalid $(1): '$($(1))', expected $(2)), \ $(or $(findstring $(_sp)$($(1))$(_sp),$(_sp)$(2)$(_sp)), \ $(error invalid $(1): '$($(1))', expected $(2)))), \ $(error $(1) undefined))) # Do not save the original name or timestamp in the .tar.gz file. # Use --rsyncable if available. gzip_rsyncable := \ $(shell gzip --help 2>/dev/null|$(GREP) rsyncable >/dev/null \ && printf %s --rsyncable) GZIP_ENV = '--no-name --best $(gzip_rsyncable)' GIT = git VC = $(GIT) VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir) # You can override this variable in cfg.mk if your gnulib submodule lives # in a different location. gnulib_dir ?= $(shell if test -n "$(GNULIB_SRCDIR)" && test -f "$(GNULIB_SRCDIR)/gnulib-tool"; then \ echo "$(GNULIB_SRCDIR)"; \ else \ echo $(srcdir)/gnulib; \ fi) # You can override this variable in cfg.mk to set your own regexp # matching files to ignore. VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$ # This is to preprocess robustly the output of $(VC_LIST), so that even # when $(srcdir) is a pathological name like "....", the leading sed command # removes only the intended prefix. _dot_escaped_srcdir = $(subst .,\.,$(srcdir)) # Post-process $(VC_LIST) output, prepending $(srcdir)/, but only # when $(srcdir) is not ".". ifeq ($(srcdir),.) _prepend_srcdir_prefix = else _prepend_srcdir_prefix = | $(SED) 's|^|$(srcdir)/|' endif # In order to be able to consistently filter "."-relative names, # (i.e., with no $(srcdir) prefix), this definition is careful to # remove any $(srcdir) prefix, and to restore what it removes. _sc_excl = \ $(or $(exclude_file_name_regexp--$@),^$$) VC_LIST_EXCEPT = \ $(VC_LIST) | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ | if test -f $(srcdir)/.x-$@; then $(GREP) -vEf $(srcdir)/.x-$@; \ else $(GREP) -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ | $(GREP) -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ $(_prepend_srcdir_prefix) ifeq ($(origin prev_version_file), undefined) prev_version_file = $(srcdir)/.prev-version endif PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null) VERSION_REGEXP = $(subst .,\.,$(VERSION)) PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION)) ifeq ($(VC),$(GIT)) this-vc-tag = v$(VERSION) this-vc-tag-regexp = v$(VERSION_REGEXP) else tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') tag-this-version = $(subst .,_,$(VERSION)) this-vc-tag = $(tag-package)-$(tag-this-version) this-vc-tag-regexp = $(this-vc-tag) endif my_distdir = $(PACKAGE)-$(VERSION) # Old releases are stored here. release_archive_dir ?= ../release # If RELEASE_TYPE is undefined, but RELEASE is, use its second word. # But overwrite VERSION. ifdef RELEASE VERSION := $(word 1, $(RELEASE)) RELEASE_TYPE ?= $(word 2, $(RELEASE)) endif # Validate and return $(RELEASE_TYPE), or die. RELEASE_TYPES = alpha beta stable release-type = $(call member-check,RELEASE_TYPE,$(RELEASE_TYPES)) # Override gnu_rel_host and url_dir_list in cfg.mk if these are not right. # Use alpha.gnu.org for alpha and beta releases. # Use ftp.gnu.org for stable releases. gnu_ftp_host-alpha = alpha.gnu.org gnu_ftp_host-beta = alpha.gnu.org gnu_ftp_host-stable = ftp.gnu.org gnu_rel_host ?= $(gnu_ftp_host-$(release-type)) url_dir_list ?= $(if $(call _equal,$(gnu_rel_host),ftp.gnu.org), \ https://ftpmirror.gnu.org/$(PACKAGE), \ https://$(gnu_rel_host)/gnu/$(PACKAGE)) # Override this in cfg.mk if you are using a different format in your # NEWS file. today = $(shell date +%Y-%m-%d) # Select which lines of NEWS are searched for $(news-check-regexp). # This is a sed line number spec. The default says that we search # lines 1..10 of NEWS for $(news-check-regexp). # If you want to search only line 3 or only lines 20-22, use "3" or "20,22". news-check-lines-spec ?= 1,10 news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)' # Prevent programs like 'sort' from considering distinct strings to be equal. # Doing it here saves us from having to set LC_ALL elsewhere in this file. export LC_ALL = C ## --------------- ## ## Sanity checks. ## ## --------------- ## ifneq ($(_gl-Makefile),) _cfg_mk := $(wildcard $(srcdir)/cfg.mk) # Collect the names of rules starting with 'sc_'. syntax-check-rules := $(sort $(shell env LC_ALL=C $(SED) -n \ 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(srcdir)/$(ME) $(_cfg_mk))) .PHONY: $(syntax-check-rules) ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0) local-checks-available += $(syntax-check-rules) else local-checks-available += no-vc-detected no-vc-detected: @echo "No version control files detected; skipping syntax check" endif .PHONY: $(local-checks-available) # Arrange to print the name of each syntax-checking rule just before running it. $(syntax-check-rules): %: %.m sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules)) .PHONY: $(sc_m_rules_) $(sc_m_rules_): @echo $(patsubst sc_%.m, %, $@) @date +%s.%N > .sc-start-$(basename $@) # Compute and print the elapsed time for each syntax-check rule. sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules)) .PHONY: $(sc_z_rules_) $(sc_z_rules_): %.z: % @end=$$(date +%s.%N); \ start=$$(cat .sc-start-$*); \ rm -f .sc-start-$*; \ $(AWK) -v s=$$start -v e=$$end \ 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null # The patsubst here is to replace each sc_% rule with its sc_%.z wrapper # that computes and prints elapsed time. local-check := \ $(patsubst sc_%, sc_%.z, \ $(filter-out $(local-checks-to-skip), $(local-checks-available))) syntax-check: $(local-check) endif # _sc_search_regexp # # This macro searches for a given construct in the selected files and # then takes some action. # # Parameters (shell variables): # # prohibit | require # # Regular expression (ERE) denoting either a forbidden construct # or a required construct. Those arguments are exclusive. # # exclude # # Regular expression (ERE) denoting lines to ignore that matched # a prohibit construct. For example, this can be used to exclude # comments that mention why the nearby code uses an alternative # construct instead of the simpler prohibited construct. # # in_vc_files | in_files # # grep-E-style regexp selecting the files to check. For in_vc_files, # the regexp is used to select matching files from the list of all # version-controlled files; for in_files, it's from the names printed # by "find $(srcdir)". When neither is specified, use all files that # are under version control. # # containing | non_containing # # Select the files (non) containing strings matching this regexp. # If both arguments are specified then CONTAINING takes # precedence. # # with_grep_options # # Extra options for grep. # # ignore_case # # Ignore case. # # halt # # Message to display before to halting execution. # # Finally, you may exempt files based on an ERE matching file names. # For example, to exempt from the sc_space_tab check all files with the # .diff suffix, set this Make variable: # # exclude_file_name_regexp--sc_space_tab = \.diff$ # # Note that while this functionality is mostly inherited via VC_LIST_EXCEPT, # when filtering by name via in_files, we explicitly filter out matching # names here as well. # Initialize each, so that envvar settings cannot interfere. export require = export prohibit = export exclude = export in_vc_files = export in_files = export containing = export non_containing = export halt = export with_grep_options = # By default, _sc_search_regexp does not ignore case. export ignore_case = _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :) define _sc_say_and_exit dummy=; : so we do not need a semicolon before each use; \ { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; }; endef define _sc_search_regexp dummy=; : so we do not need a semicolon before each use; \ \ : Check arguments; \ test -n "$$prohibit" && test -n "$$require" \ && { msg='Cannot specify both prohibit and require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -z "$$require" \ && { msg='Should specify either prohibit or require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -n "$$exclude" \ && { msg='Use of exclude requires a prohibit pattern' \ $(_sc_say_and_exit) } || :; \ test -n "$$in_vc_files" && test -n "$$in_files" \ && { msg='Cannot specify both in_vc_files and in_files' \ $(_sc_say_and_exit) } || :; \ test "x$$halt" != x \ || { msg='halt not defined' $(_sc_say_and_exit) }; \ \ : Filter by file name; \ if test -n "$$in_files"; then \ files=$$(find $(srcdir) | $(GREP) -E "$$in_files" \ | $(GREP) -Ev '$(_sc_excl)'); \ else \ files=$$($(VC_LIST_EXCEPT)); \ if test -n "$$in_vc_files"; then \ files=$$(echo "$$files" | $(GREP) -E "$$in_vc_files"); \ fi; \ fi; \ \ : Filter by content; \ test -n "$$files" \ && test -n "$$containing" \ && { files=$$(echo "$$files" | xargs $(GREP) -l "$$containing"); } \ || :; \ test -n "$$files" \ && test -n "$$non_containing" \ && { files=$$(echo "$$files" | xargs $(GREP) -vl "$$non_containing"); } \ || :; \ \ : Check for the construct; \ if test -n "$$files"; then \ if test -n "$$prohibit"; then \ echo "$$files" \ | xargs $(GREP) $$with_grep_options $(_ignore_case) -nE \ "$$prohibit" /dev/null \ | $(GREP) -vE "$${exclude:-^$$}" \ && { msg="$$halt" $(_sc_say_and_exit) } \ || :; \ else \ echo "$$files" \ | xargs \ $(GREP) $$with_grep_options $(_ignore_case) -LE "$$require" \ | $(GREP) . \ && { msg="$$halt" $(_sc_say_and_exit) } \ || :; \ fi \ else :; \ fi || :; endef sc_avoid_if_before_free: @$(VC_LIST_EXCEPT) \ | $(GREP) -v useless-if-before-free \ | xargs \ $(srcdir)/$(_build-aux)/useless-if-before-free \ $(useless_free_options) \ && { printf '$(ME): found useless "if"' \ ' before "free" above\n' 1>&2; \ exit 1; } \ || : sc_cast_of_argument_to_free: @prohibit='\<free *\( *\(' halt="don't cast free argument" \ $(_sc_search_regexp) sc_cast_of_x_alloc_return_value: @prohibit='\*\) *x(m|c|re)alloc\>' \ halt="don't cast x*alloc return value" \ $(_sc_search_regexp) sc_cast_of_alloca_return_value: @prohibit='\*\) *alloca\>' \ halt="don't cast alloca return value" \ $(_sc_search_regexp) sc_space_tab: @prohibit='[ ] ' \ halt='found SPACE-TAB sequence; remove the SPACE' \ $(_sc_search_regexp) # Don't use *scanf or the old ato* functions in "real" code. # They provide no error checking mechanism. # Instead, use strto* functions. sc_prohibit_atoi_atof: @prohibit='\<([fs]?scanf|ato([filq]|ll)) *\(' \ halt='do not use *scan''f, ato''f, ato''i, ato''l, ato''ll or ato''q' \ $(_sc_search_regexp) # Use STREQ rather than comparing strcmp == 0, or != 0. sp_ = strcmp *\(.+\) sc_prohibit_strcmp: @prohibit='! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)' \ exclude='# *define STRN?EQ\(' \ halt='replace strcmp calls above with STREQ/STRNEQ' \ $(_sc_search_regexp) # Really. You don't want to use this function. # It may fail to NUL-terminate the destination, # and always NUL-pads out to the specified length. sc_prohibit_strncpy: @prohibit='\<strncpy *\(' \ halt='do not use strncpy, period' \ $(_sc_search_regexp) # Pass EXIT_*, not number, to usage, exit, and error (when exiting) # Convert all uses automatically, via these two commands: # git grep -l '\<exit *(1)' \ # | grep -vEf .x-sc_prohibit_magic_number_exit \ # | xargs --no-run-if-empty \ # perl -pi -e 's/(^|[^.])\b(exit ?)\(1\)/$1$2(EXIT_FAILURE)/' # git grep -l '\<exit *(0)' \ # | grep -vEf .x-sc_prohibit_magic_number_exit \ # | xargs --no-run-if-empty \ # perl -pi -e 's/(^|[^.])\b(exit ?)\(0\)/$1$2(EXIT_SUCCESS)/' sc_prohibit_magic_number_exit: @prohibit='(^|[^.])\<(usage|exit|error) ?\(-?[0-9]+[,)]' \ exclude='exit \(77\)|error ?\(((0|77),|[^,]*)' \ halt='use EXIT_* values rather than magic number' \ $(_sc_search_regexp) # Check that we don't use $< in non-implicit Makefile rules. # # To find the Makefiles, trace AC_CONFIG_FILES. Using VC_LIST would # miss the Makefiles that are not under VC control (e.g., symlinks # installed for gettext). "Parsing" (recursive) uses of SUBDIRS seems # too delicate. # # Use GNU Make's --print-data-base to normalize the rules into some # easy to parse format: they are separated by two \n. Look for the # "section" about non-pattern rules (marked with "# Files") inside # which there are still the POSIX Make like implicit rules (".c.o"). sc_prohibit_gnu_make_extensions_awk_ = \ BEGIN { \ RS = "\n\n"; \ in_rules = 0; \ } \ /^\# Files/ { \ in_rules = 1; \ } \ /\$$</ && in_rules && $$0 !~ /^(.*\n)*\.\w+(\.\w+)?:/ { \ print "Error: " file ": $$< in a non implicit rule\n" $$0; \ status = 1; \ } \ END { \ exit status; \ } sc_prohibit_gnu_make_extensions: @if $(AWK) --version | grep GNU >/dev/null 2>&1; then \ (cd $(srcdir) && autoconf --trace AC_CONFIG_FILES:'$$1') | \ tr ' ' '\n' | \ $(SED) -ne '/Makefile/{s/\.in$$//;p;}' | \ while read m; do \ $(MAKE) -qp -f $$m .DUMMY-TARGET 2>/dev/null | \ $(AWK) -v file=$$m -e '$($@_awk_)' || exit 1; \ done; \ fi # Using EXIT_SUCCESS as the first argument to error is misleading, # since when that parameter is 0, error does not exit. Use '0' instead. sc_error_exit_success: @prohibit='error *\(EXIT_SUCCESS,' \ in_vc_files='\.[chly]$$' \ halt='found error (EXIT_SUCCESS' \ $(_sc_search_regexp) # "FATAL:" should be fully upper-cased in error messages # "WARNING:" should be fully upper-cased, or fully lower-cased sc_error_message_warn_fatal: @$(VC_LIST_EXCEPT) \ | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ | $(GREP) -E '"Warning|"Fatal|"fatal' \ && { echo '$(ME): use FATAL, WARNING or warning' 1>&2; \ exit 1; } \ || : # Error messages should not start with a capital letter sc_error_message_uppercase: @$(VC_LIST_EXCEPT) \ | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ | $(GREP) -E '"[A-Z]' \ | $(GREP) -vE '"FATAL|"WARNING|"Java|"C#|"PRI' \ && { echo '$(ME): found capitalized error message' 1>&2; \ exit 1; } \ || : # Error messages should not end with a period sc_error_message_period: @$(VC_LIST_EXCEPT) \ | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ | $(GREP) -E '[^."]\."' \ && { echo '$(ME): found error message ending in period' 1>&2; \ exit 1; } \ || : sc_file_system: @prohibit=file''system \ exclude='/proc/filesystems' \ ignore_case=1 \ halt='found use of "file''system"; spell it "file system"' \ $(_sc_search_regexp) # Don't use cpp tests of this symbol. All code assumes config.h is included. sc_prohibit_have_config_h: @prohibit='^# *if.*HAVE''_CONFIG_H' \ halt='found use of HAVE''_CONFIG_H; remove' \ $(_sc_search_regexp) # Nearly all .c files must include <config.h>. However, we also permit this # via inclusion of a package-specific header, if cfg.mk specified one. # config_h_header must be suitable for grep -E. config_h_header ?= <config\.h> sc_require_config_h: @require='^# *include $(config_h_header)' \ in_vc_files='\.c$$' \ halt='the above files do not include <config.h>' \ $(_sc_search_regexp) # Print each file name for which the first #include does not match # $(config_h_header). Like grep -m 1, this only looks at the first match. perl_config_h_first_ = \ -e 'BEGIN {$$ret = 0}' \ -e 'if (/^\# *include\b/) {' \ -e ' if (not m{^\# *include $(config_h_header)}) {' \ -e ' print "$$ARGV\n";' \ -e ' $$ret = 1;' \ -e ' }' \ -e ' \# Move on to next file after first include' \ -e ' close ARGV;' \ -e '}' \ -e 'END {exit $$ret}' # You must include <config.h> before including any other header file. # This can possibly be via a package-specific header, if given by cfg.mk. sc_require_config_h_first: @if $(VC_LIST_EXCEPT) | $(GREP) '\.c$$' > /dev/null; then \ files=$$($(VC_LIST_EXCEPT) | $(GREP) '\.c$$') && \ perl -n $(perl_config_h_first_) $$files || \ { echo '$(ME): the above files include some other header' \ 'before <config.h>' 1>&2; exit 1; } || :; \ else :; \ fi sc_prohibit_HAVE_MBRTOWC: @prohibit='\bHAVE_MBRTOWC\b' \ halt="do not use $$prohibit; it is always defined" \ $(_sc_search_regexp) # To use this "command" macro, you must first define two shell variables: # h: the header name, with no enclosing <> or "" # re: a regular expression that matches IFF something provided by $h is used. define _sc_header_without_use dummy=; : so we do not need a semicolon before each use; \ h_esc=`echo '[<"]'"$$h"'[">]'|$(SED) 's/\./\\\\./g'`; \ if $(VC_LIST_EXCEPT) | $(GREP) '\.c$$' > /dev/null; then \ files=$$($(GREP) -l '^# *include '"$$h_esc" \ $$($(VC_LIST_EXCEPT) | $(GREP) '\.c$$')) && \ $(GREP) -LE "$$re" $$files | $(GREP) . && \ { echo "$(ME): the above files include $$h but don't use it" \ 1>&2; exit 1; } || :; \ else :; \ fi endef # Prohibit the inclusion of assert.h without an actual use of assert. sc_prohibit_assert_without_use: @h='assert.h' re='\<assert *\(' $(_sc_header_without_use) # Prohibit the inclusion of close-stream.h without an actual use. sc_prohibit_close_stream_without_use: @h='close-stream.h' re='\<close_stream *\(' $(_sc_header_without_use) # Prohibit the inclusion of getopt.h without an actual use. sc_prohibit_getopt_without_use: @h='getopt.h' re='\<getopt(_long)? *\(' $(_sc_header_without_use) # Don't include quotearg.h unless you use one of its functions. sc_prohibit_quotearg_without_use: @h='quotearg.h' re='\<quotearg(_[^ ]+)? *\(' $(_sc_header_without_use) # Don't include quote.h unless you use one of its functions. sc_prohibit_quote_without_use: @h='quote.h' re='\<quote((_n)? *\(|_quoting_options\>)' \ $(_sc_header_without_use) # Don't include this header unless you use one of its functions. sc_prohibit_long_options_without_use: @h='long-options.h' re='\<parse_(long_options|gnu_standard_options_only) *\(' \ $(_sc_header_without_use) # Don't include this header unless you use one of its functions. sc_prohibit_inttostr_without_use: @h='inttostr.h' re='\<(off|[iu]max|uint)tostr *\(' \ $(_sc_header_without_use) # Don't include this header unless you use one of its functions. sc_prohibit_ignore_value_without_use: @h='ignore-value.h' re='\<ignore_(value|ptr) *\(' \ $(_sc_header_without_use) # Don't include this header unless you use one of its functions. sc_prohibit_error_without_use: @h='error.h' \ re='\<error(_at_line|_print_progname|_one_per_line|_message_count)? *\('\ $(_sc_header_without_use) # Don't include xalloc.h unless you use one of its functions. # Consider these symbols: # perl -lne '/^# *define (\w+)\(/ and print $1' lib/xalloc.h|grep -v '^__'; # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/xalloc.h # Divide into two sets on case, and filter each through this: # | sort | perl -MRegexp::Assemble -le \ # 'print Regexp::Assemble->new(file => "/dev/stdin")->as_string'|sed 's/\?://g' # Note this was produced by the above: # _xa1 = \ #x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup) # But we can do better, in at least two ways: # 1) take advantage of two "dup"-suffixed strings: # x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup) # 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable # "char|[cmz]" # x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa2 = X([CZ]|N?M)ALLOC sc_prohibit_xalloc_without_use: @h='xalloc.h' \ re='\<($(_xa1)|$(_xa2)) *\('\ $(_sc_header_without_use) # Extract function names: # perl -lne '/^(?:extern )?(?:void|char|Hash_table) \*?(\w+) *\(/ and print $1' lib/hash.h _hash_re = \ hash_(re(set_tuning|move)|xin(itialize|sert)|in(itialize|sert)|get_(firs|nex)t|print_statistics|(delet|fre)e|lookup|clear) _hash_fn = \<($(_hash_re)) *\( _hash_struct = (struct )?\<[Hh]ash_(table|tuning)\> sc_prohibit_hash_without_use: @h='hash.h' \ re='$(_hash_fn)|$(_hash_struct)'\ $(_sc_header_without_use) sc_prohibit_cloexec_without_use: @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \ $(_sc_header_without_use) sc_prohibit_posixver_without_use: @h='posixver.h' re='\<posix2_version *\(' $(_sc_header_without_use) sc_prohibit_same_without_use: @h='same.h' re='\<same_name(at)? *\(' $(_sc_header_without_use) sc_prohibit_hash_pjw_without_use: @h='hash-pjw.h' \ re='\<hash_pjw\>' \ $(_sc_header_without_use) sc_prohibit_safe_read_without_use: @h='safe-read.h' re='(\<SAFE_READ_ERROR\>|\<safe_read *\()' \ $(_sc_header_without_use) sc_prohibit_argmatch_without_use: @h='argmatch.h' \ re='(\<(ARGMATCH_DEFINE_GROUP|ARRAY_CARDINALITY|X?ARGMATCH(|_TO_ARGUMENT|_VERIFY))\>|\<(invalid_arg|argmatch(_exit_fn|_(in)?valid)?) *\()' \ $(_sc_header_without_use) sc_prohibit_canonicalize_without_use: @h='canonicalize.h' \ re='CAN_(EXISTING|ALL_BUT_LAST|MISSING)|canonicalize_(mode_t|filename_mode|file_name)' \ $(_sc_header_without_use) sc_prohibit_root_dev_ino_without_use: @h='root-dev-ino.h' \ re='(\<ROOT_DEV_INO_(CHECK|WARN)\>|\<get_root_dev_ino *\()' \ $(_sc_header_without_use) sc_prohibit_openat_without_use: @h='openat.h' \ re='\<(openat_(permissive|needs_fchdir|(save|restore)_fail)|l?(stat|ch(own|mod))at|(euid)?accessat|(FCHMOD|FCHOWN|STAT)AT_INLINE)\>' \ $(_sc_header_without_use) # Prohibit the inclusion of c-ctype.h without an actual use. ctype_re = isalnum|isalpha|isascii|isblank|iscntrl|isdigit|isgraph|islower\ |isprint|ispunct|isspace|isupper|isxdigit|tolower|toupper sc_prohibit_c_ctype_without_use: @h='c-ctype.h' re='\<c_($(ctype_re)) *\(' \ $(_sc_header_without_use) # The following list was generated by running: # man signal.h|col -b|perl -ne '/bsd_signal.*;/.../sigwaitinfo.*;/ and print' \ # | perl -lne '/^\s+(?:int|void).*?(\w+).*/ and print $1' | fmt _sig_functions = \ bsd_signal kill killpg pthread_kill pthread_sigmask raise sigaction \ sigaddset sigaltstack sigdelset sigemptyset sigfillset sighold sigignore \ siginterrupt sigismember signal sigpause sigpending sigprocmask sigqueue \ sigrelse sigset sigsuspend sigtimedwait sigwait sigwaitinfo _sig_function_re = $(subst $(_sp),|,$(strip $(_sig_functions))) # The following were extracted from "man signal.h" manually. _sig_types_and_consts = \ MINSIGSTKSZ SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK \ SA_RESETHAND SA_RESTART SA_SIGINFO SIGEV_NONE SIGEV_SIGNAL \ SIGEV_THREAD SIGSTKSZ SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SS_DISABLE \ SS_ONSTACK mcontext_t pid_t sig_atomic_t sigevent siginfo_t sigset_t \ sigstack sigval stack_t ucontext_t # generated via this: # perl -lne '/^#ifdef (SIG\w+)/ and print $1' lib/sig2str.c|sort -u|fmt -70 _sig_names = \ SIGABRT SIGALRM SIGALRM1 SIGBUS SIGCANCEL SIGCHLD SIGCLD SIGCONT \ SIGDANGER SIGDIL SIGEMT SIGFPE SIGFREEZE SIGGRANT SIGHUP SIGILL \ SIGINFO SIGINT SIGIO SIGIOT SIGKAP SIGKILL SIGKILLTHR SIGLOST SIGLWP \ SIGMIGRATE SIGMSG SIGPHONE SIGPIPE SIGPOLL SIGPRE SIGPROF SIGPWR \ SIGQUIT SIGRETRACT SIGSAK SIGSEGV SIGSOUND SIGSTKFLT SIGSTOP SIGSYS \ SIGTERM SIGTHAW SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGURG SIGUSR1 \ SIGUSR2 SIGVIRT SIGVTALRM SIGWAITING SIGWINCH SIGWIND SIGWINDOW \ SIGXCPU SIGXFSZ _sig_syms_re = $(subst $(_sp),|,$(strip $(_sig_names) $(_sig_types_and_consts))) # Prohibit the inclusion of signal.h without an actual use. sc_prohibit_signal_without_use: @h='signal.h' \ re='\<($(_sig_function_re)) *\(|\<($(_sig_syms_re))\>' \ $(_sc_header_without_use) # Don't include stdio--.h unless you use one of its functions. sc_prohibit_stdio--_without_use: @h='stdio--.h' re='\<((f(re)?|p)open|tmpfile) *\(' \ $(_sc_header_without_use) # Don't include stdio-safer.h unless you use one of its functions. sc_prohibit_stdio-safer_without_use: @h='stdio-safer.h' re='\<((f(re)?|p)open|tmpfile)_safer *\(' \ $(_sc_header_without_use) # Prohibit the inclusion of strings.h without a sensible use. # Using the likes of bcmp, bcopy, bzero, index or rindex is not sensible. sc_prohibit_strings_without_use: @h='strings.h' \ re='\<(strn?casecmp|ffs(ll)?)\>' \ $(_sc_header_without_use) # Extract the raw list of symbol names with this: gl_extract_define_simple = \ /^\# *define ([A-Z]\w+)\(/ and print $$1 # Filter out duplicates and convert to a space-separated list: _intprops_names = \ $(shell f=$(gnulib_dir)/lib/intprops.h; \ perl -lne '$(gl_extract_define_simple)' $$f | sort -u | tr '\n' ' ') # Remove trailing space and convert to a regular expression: _intprops_syms_re = $(subst $(_sp),|,$(strip $(_intprops_names))) # Prohibit the inclusion of intprops.h without an actual use. sc_prohibit_intprops_without_use: @h='intprops.h' \ re='\<($(_intprops_syms_re)) *\(' \ $(_sc_header_without_use) _stddef_syms_re = NULL|offsetof|ptrdiff_t|size_t|wchar_t # Prohibit the inclusion of stddef.h without an actual use. sc_prohibit_stddef_without_use: @h='stddef.h' \ re='\<($(_stddef_syms_re))\>' \ $(_sc_header_without_use) _de1 = dirfd|(close|(fd)?open|read|rewind|seek|tell)dir(64)?(_r)? _de2 = (versionsort|struct dirent|getdirentries|alphasort|scandir(at)?)(64)? _de3 = MAXNAMLEN|DIR|ino_t|d_ino|d_fileno|d_namlen _dirent_syms_re = $(_de1)|$(_de2)|$(_de3) # Prohibit the inclusion of dirent.h without an actual use. sc_prohibit_dirent_without_use: @h='dirent.h' \ re='\<($(_dirent_syms_re))\>' \ $(_sc_header_without_use) # Prohibit the inclusion of verify.h without an actual use. sc_prohibit_verify_without_use: @h='verify.h' \ re='\<(verify(_expr)?|assume) *\(' \ $(_sc_header_without_use) # Don't include xfreopen.h unless you use one of its functions. sc_prohibit_xfreopen_without_use: @h='xfreopen.h' re='\<xfreopen *\(' $(_sc_header_without_use) sc_obsolete_symbols: @prohibit='\<(HAVE''_FCNTL_H|O''_NDELAY)\>' \ halt='do not use HAVE''_FCNTL_H or O'_NDELAY \ $(_sc_search_regexp) # FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ # Each nonempty ChangeLog line must start with a year number, or a TAB. sc_changelog: @prohibit='^[^12 ]' \ in_vc_files='^ChangeLog$$' \ halt='found unexpected prefix in a ChangeLog' \ $(_sc_search_regexp) # Ensure that each .c file containing a "main" function also # calls bindtextdomain. sc_bindtextdomain: @require='bindtextdomain *\(' \ in_vc_files='\.c$$' \ containing='\<main *(' \ halt='the above files do not call bindtextdomain' \ $(_sc_search_regexp) # Require that the final line of each test-lib.sh-using test be this one: # Exit $fail # Note: this test requires GNU grep's --label= option. Exit_witness_file ?= tests/test-lib.sh Exit_base := $(notdir $(Exit_witness_file)) sc_require_test_exit_idiom: @if test -f $(srcdir)/$(Exit_witness_file); then \ die=0; \ for i in $$($(GREP) -l -F 'srcdir/$(Exit_base)' \ $$($(VC_LIST) tests)); do \ tail -n1 $$i | $(GREP) '^Exit .' > /dev/null \ && : || { die=1; echo $$i; } \ done; \ test $$die = 1 && \ { echo 1>&2 '$(ME): the final line in each of the above is not:'; \ echo 1>&2 'Exit something'; \ exit 1; } || :; \ fi sc_trailing_blank: @prohibit='[ ]$$' \ halt='found trailing blank(s)' \ exclude='^Binary file .* matches$$' \ $(_sc_search_regexp) # Match lines like the following, but where there is only one space # between the options and the description: # -D, --all-repeated[=delimit-method] print all duplicate lines\n longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*]?)? sc_two_space_separator_in_usage: @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \ halt='help2man requires at least two spaces between an option and its description'\ $(_sc_search_regexp) # A regexp matching function names like "error" that may be used # to emit translatable messages. _gl_translatable_diag_func_re ?= error # Look for diagnostics that aren't marked for translation. # This won't find any for which error's format string is on a separate line. sc_unmarked_diagnostics: @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \ exclude='(_|ngettext ?)\(' \ halt='found unmarked diagnostic(s)' \ $(_sc_search_regexp) # Avoid useless parentheses like those in this example: # #if defined (SYMBOL) || defined (SYM2) sc_useless_cpp_parens: @prohibit='^# *if .*defined *\(' \ halt='found useless parentheses in cpp directive' \ $(_sc_search_regexp) # List headers for which HAVE_HEADER_H is always true, assuming you are # using the appropriate gnulib module. CAUTION: for each "unnecessary" # #if HAVE_HEADER_H that you remove, be sure that your project explicitly # requires the gnulib module that guarantees the usability of that header. gl_assured_headers_ = \ cd $(gnulib_dir)/lib && echo *.in.h|$(SED) 's/\.in\.h//g' # Convert the list of names to upper case, and replace each space with "|". az_ = abcdefghijklmnopqrstuvwxyz AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ gl_header_upper_case_or_ = \ $$($(gl_assured_headers_) \ | tr $(az_)/.- $(AZ_)___ \ | tr -s ' ' '|' \ ) sc_prohibit_always_true_header_tests: @or=$(gl_header_upper_case_or_); \ re="HAVE_($$or)_H"; \ prohibit='\<'"$$re"'\>' \ halt=$$(printf '%s\n' \ 'do not test the above HAVE_<header>_H symbol(s);' \ ' with the corresponding gnulib module, they are always true') \ $(_sc_search_regexp) sc_prohibit_defined_have_decl_tests: @prohibit='(#[ ]*ifn?def|\<defined)\>[ (]+HAVE_DECL_' \ halt='HAVE_DECL macros are always defined' \ $(_sc_search_regexp) # ================================================================== gl_other_headers_ ?= \ intprops.h \ openat.h \ stat-macros.h # Perl -lne code to extract "significant" cpp-defined symbols from a # gnulib header file, eliminating a few common false-positives. # The exempted names below are defined only conditionally in gnulib, # and hence sometimes must/may be defined in application code. gl_extract_significant_defines_ = \ /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\ && $$2 !~ /(?:rpl_|_used_without_)/\ && $$1 !~ /^(?:NSIG|ENODATA)$$/\ && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\ and print $$1 # Create a list of regular expressions matching the names # of macros that are guaranteed to be defined by parts of gnulib. define def_sym_regex gen_h=$(gl_generated_headers_); \ (cd $(gnulib_dir)/lib; \ for f in *.in.h $(gl_other_headers_); do \ test -f $$f \ && perl -lne '$(gl_extract_significant_defines_)' $$f; \ done; \ ) | sort -u \ | $(SED) 's/^/^ *# *(define|undef) */;s/$$/\\>/' endef # Don't define macros that we already get from gnulib header files. sc_prohibit_always-defined_macros: @if test -d $(gnulib_dir); then \ case $$(echo all: | $(GREP) -l -f - Makefile) in Makefile);; *) \ echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ esac; \ regex=$$($(def_sym_regex)); export regex; \ $(VC_LIST_EXCEPT) \ | xargs sh -c 'echo $$regex | $(GREP) -E -f - "$$@"' \ dummy /dev/null \ && { printf '$(ME): define the above' \ ' via some gnulib .h file\n' 1>&2; \ exit 1; } \ || :; \ fi # ================================================================== # Prohibit checked in backup files. sc_prohibit_backup_files: @$(VC_LIST) | $(GREP) '~$$' && \ { echo '$(ME): found version controlled backup file' 1>&2; \ exit 1; } || : # Require the latest GPL. sc_GPL_version: @prohibit='either ''version [^3]' \ halt='GPL vN, N!=3' \ $(_sc_search_regexp) # Require the latest GFDL. Two regexp, since some .texi files end up # line wrapping between 'Free Documentation License,' and 'Version'. _GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any) sc_GFDL_version: @prohibit='$(_GFDL_regexp)' \ halt='GFDL vN, N!=3' \ $(_sc_search_regexp) # Don't use Texinfo's @acronym{}. # https://lists.gnu.org/r/bug-gnulib/2010-03/msg00321.html texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$ sc_texinfo_acronym: @prohibit='@acronym\{' \ in_vc_files='$(texinfo_suffix_re_)' \ halt='found use of Texinfo @acronym{}' \ $(_sc_search_regexp) cvs_keywords = \ Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State sc_prohibit_cvs_keyword: @prohibit='\$$($(cvs_keywords))\$$' \ halt='do not use CVS keyword expansion' \ $(_sc_search_regexp) # This Perl code is slightly obfuscated. Not only is each "$" doubled # because it's in a Makefile, but the $$c's are comments; we cannot # use "#" due to the way the script ends up concatenated onto one line. # It would be much more concise, and would produce better output (including # counts) if written as: # perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ... # but that would be far less efficient, reading the entire contents # of each file, rather than just the last two bytes of each. # In addition, while the code below detects both blank lines and a missing # newline at EOF, the above detects only the former. # # This is a perl script that is expected to be the single-quoted argument # to a command-line "-le". The remaining arguments are file names. # Print the name of each file that does not end in exactly one newline byte. # I.e., warn if there are blank lines (2 or more newlines), or if the # last byte is not a newline. However, currently we don't complain # about any file that contains exactly one byte. # Exit nonzero if at least one such file is found, otherwise, exit 0. # Warn about, but otherwise ignore open failure. Ignore seek/read failure. # # Use this if you want to remove trailing empty lines from selected files: # perl -pi -0777 -e 's/\n\n+$/\n/' files... # require_exactly_one_NL_at_EOF_ = \ foreach my $$f (@ARGV) \ { \ open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \ my $$p = sysseek (F, -2, 2); \ my $$c = "seek failure probably means file has < 2 bytes; ignore"; \ my $$last_two_bytes; \ defined $$p and $$p = sysread F, $$last_two_bytes, 2; \ close F; \ $$c = "ignore read failure"; \ $$p && ($$last_two_bytes eq "\n\n" \ || substr ($$last_two_bytes,1) ne "\n") \ and (print $$f), $$fail=1; \ } \ END { exit defined $$fail } sc_prohibit_empty_lines_at_EOF: @$(VC_LIST_EXCEPT) \ | xargs perl -le '$(require_exactly_one_NL_at_EOF_)' \ || { echo '$(ME): empty line(s) or no newline at EOF' 1>&2; \ exit 1; } \ || : # Make sure we don't use st_blocks. Use ST_NBLOCKS instead. # This is a bit of a kludge, since it prevents use of the string # even in comments, but for now it does the job with no false positives. sc_prohibit_stat_st_blocks: @prohibit='[.>]st_blocks' \ halt='do not use st_blocks; use ST_NBLOCKS' \ $(_sc_search_regexp) # Make sure we don't define any S_IS* macros in src/*.c files. # They're already defined via gnulib's sys/stat.h replacement. sc_prohibit_S_IS_definition: @prohibit='^ *# *define *S_IS' \ halt='do not define S_IS* macros; include <sys/stat.h>' \ $(_sc_search_regexp) # Perl block to convert a match to FILE_NAME:LINENO:TEST, # that is shared by two definitions below. perl_filename_lineno_text_ = \ -e ' {' \ -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \ -e ' ($$v = $$&) =~ s/\n/\\n/g;' \ -e ' print "$$ARGV:$$n:$$v\n";' \ -e ' }' prohibit_doubled_words_ = \ the then in an on if is it but for or at and do to can # expand the regex before running the check to avoid using expensive captures prohibit_doubled_word_expanded_ = \ $(join $(prohibit_doubled_words_),$(addprefix \s+,$(prohibit_doubled_words_))) prohibit_doubled_word_RE_ ?= \ /\b(?:$(subst $(_sp),|,$(prohibit_doubled_word_expanded_)))\b/gims prohibit_doubled_word_ = \ -e 'while ($(prohibit_doubled_word_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_doubled_word_match_RE_ ?= ^$$ sc_prohibit_doubled_word: @$(VC_LIST_EXCEPT) \ | xargs perl -n -0777 $(prohibit_doubled_word_) \ | $(GREP) -vE '$(ignore_doubled_word_match_RE_)' \ | $(GREP) . \ && { echo '$(ME): doubled words' 1>&2; exit 1; } \ || : # A regular expression matching undesirable combinations of words like # "can not"; this matches them even when the two words appear on different # lines, but not when there is an intervening delimiter like "#" or "*". # Similarly undesirable, "See @xref{...}", since an @xref should start # a sentence. Explicitly prohibit any prefix of "see" or "also". # Also prohibit a prefix matching "\w+ +". # @pxref gets the same see/also treatment and should be parenthesized; # presume it must *not* start a sentence. # POSIX spells it "timestamp" rather than "time\s+stamp", so we do, too. bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{ bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{ prohibit_undesirable_word_seq_RE_ ?= \ /(?:\bcan\s+not\b|\btime\s+stamps?\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims prohibit_undesirable_word_seq_ = \ -e 'while ($(prohibit_undesirable_word_seq_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_undesirable_word_sequence_RE_ ?= ^$$ sc_prohibit_undesirable_word_seq: @$(VC_LIST_EXCEPT) \ | xargs perl -n -0777 $(prohibit_undesirable_word_seq_) \ | $(GREP) -vE '$(ignore_undesirable_word_sequence_RE_)' \ | $(GREP) . \ && { echo '$(ME): undesirable word sequence' >&2; exit 1; } \ || : # Except for shell files and for loops, double semicolon is probably a mistake sc_prohibit_double_semicolon: @prohibit='; *;[ {} \]*(/[/*]|$$)' \ in_vc_files='\.[chly]$$' \ exclude='\bfor *\(.*\)' \ halt="Double semicolon detected" \ $(_sc_search_regexp) _ptm1 = use "test C1 && test C2", not "test C1 -''a C2" _ptm2 = use "test C1 || test C2", not "test C1 -''o C2" # Using test's -a and -o operators is not portable. # We prefer test over [, since the latter is spelled [[ in configure.ac. sc_prohibit_test_minus_ao: @prohibit='(\<test| \[+) .+ -[ao] ' \ halt='$(_ptm1); $(_ptm2)' \ $(_sc_search_regexp) # Avoid a test bashism. sc_prohibit_test_double_equal: @prohibit='(\<test| \[+) .+ == ' \ containing='#! */bin/[a-z]*sh' \ halt='use "test x = x", not "test x =''= x"' \ $(_sc_search_regexp) # Each program that uses proper_name_utf8 must link with one of the # ICONV libraries. Otherwise, some ICONV library must appear in LDADD. # The perl -0777 invocation below extracts the possibly-multi-line # definition of LDADD from the appropriate Makefile.am and exits 0 # when it contains "ICONV". sc_proper_name_utf8_requires_ICONV: @progs=$$($(VC_LIST_EXCEPT) \ | xargs $(GREP) -l 'proper_name_utf8 ''("'); \ if test "x$$progs" != x; then \ fail=0; \ for p in $$progs; do \ dir=$$(dirname "$$p"); \ perl -0777 \ -ne 'exit !(/^LDADD =(.+?[^\\]\n)/ms && $$1 =~ /ICONV/)' \ $$dir/Makefile.am && continue; \ base=$$(basename "$$p" .c); \ $(GREP) "$${base}_LDADD.*ICONV)" $$dir/Makefile.am > /dev/null \ || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \ done; \ test $$fail = 1 && \ { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \ exit 1; } || :; \ fi # Warn about "c0nst struct Foo const foo[]", # but not about "char const *const foo" or "#define const const". sc_redundant_const: @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \ halt='redundant "const" in declarations' \ $(_sc_search_regexp) sc_const_long_option: @prohibit='^ *static.*struct option ' \ exclude='const struct option|struct option const' \ halt='add "const" to the above declarations' \ $(_sc_search_regexp) NEWS_hash = \ $$($(SED) -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \ $(srcdir)/NEWS \ | perl -0777 -pe \ 's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms' \ | md5sum - \ | $(SED) 's/ .*//') # Ensure that we don't accidentally insert an entry into an old NEWS block. sc_immutable_NEWS: @if test -f $(srcdir)/NEWS; then \ test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \ { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \ fi # Update the hash stored above. Do this after each release and # for any corrections to old entries. update-NEWS-hash: NEWS perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \ $(srcdir)/cfg.mk # Ensure that we use only the standard $(VAR) notation, # not @...@ in Makefile.am, now that we can rely on automake # to emit a definition for each substituted variable. # However, there is still one case in which @VAR@ use is not just # legitimate, but actually required: when augmenting an automake-defined # variable with a prefix. For example, gettext uses this: # MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@ # otherwise, makeinfo would put German or French (current locale) # navigation hints in the otherwise-English documentation. # # Allow the package to add exceptions via a hook in cfg.mk; # for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by # setting this to ' && !/PRAGMA_SYSTEM_HEADER/'. _makefile_at_at_check_exceptions ?= sc_makefile_at_at_check: @perl -ne '/\@\w+\@/' \ -e ' && !/(\w+)\s+=.*\@\1\@$$/' \ -e ''$(_makefile_at_at_check_exceptions) \ -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \ $$($(VC_LIST_EXCEPT) | $(GREP) -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || : news-check: NEWS $(AM_V_GEN)if $(SED) -n $(news-check-lines-spec)p $< \ | $(GREP) -E $(news-check-regexp) >/dev/null; then \ :; \ else \ echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \ exit 1; \ fi sc_makefile_TAB_only_indentation: @prohibit='^ [ ]{8}' \ in_vc_files='akefile|\.mk$$' \ halt='found TAB-8-space indentation' \ $(_sc_search_regexp) sc_m4_quote_check: @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \ in_vc_files='(^configure\.ac|\.m4)$$' \ halt='quote the first arg to AC_DEF*' \ $(_sc_search_regexp) fix_po_file_diag = \ 'you have changed the set of files with translatable diagnostics;\n\ apply the above patch\n' # Generate a list of files in which to search for translatable strings. perl_translatable_files_list_ = \ -e 'foreach $$file (@ARGV) {' \ -e ' \# Consider only file extensions with one or two letters' \ -e ' $$file =~ /\...?$$/ or next;' \ -e ' \# Ignore m4 and mk files' \ -e ' $$file =~ /\.m[4k]$$/ and next;' \ -e ' \# Ignore a .c or .h file with a corresponding .l or .y file' \ -e ' $$file =~ /(.+)\.[ch]$$/ && (-e "$${1}.l" || -e "$${1}.y")' \ -e ' and next;' \ -e ' \# Skip unreadable files' \ -e ' -r $$file or next;' \ -e ' print "$$file ";' \ -e '}' # Verify that all source files using _() (more specifically, files that # match $(_gl_translatable_string_re)) are listed in po/POTFILES.in. po_file ?= $(srcdir)/po/POTFILES.in generated_files ?= $(srcdir)/lib/*.[ch] _gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$) sc_po_check: @if test -f $(po_file); then \ $(GREP) -E -v '^(#|$$)' $(po_file) \ | $(GREP) -v '^src/false\.c$$' | sort > $@-1; \ { $(VC_LIST_EXCEPT); echo $(generated_files); } \ | xargs perl $(perl_translatable_files_list_) \ | xargs $(GREP) -E -l '$(_gl_translatable_string_re)' \ | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ | sort -u > $@-2; \ diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \ || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \ rm -f $@-1 $@-2; \ fi # Sometimes it is useful to change the PATH environment variable # in Makefiles. When doing so, it's better not to use the Unix-centric # path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'. msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead' sc_makefile_path_separator_check: @prohibit='PATH[=].*:' \ in_vc_files='akefile|\.mk$$' \ halt=$(msg) \ $(_sc_search_regexp) sc_makefile_DISTCHECK_CONFIGURE_FLAGS: @prohibit='^DISTCHECK_CONFIGURE_FLAGS' \ in_vc_files='akefile|\.mk$$' \ halt="use AM_DISTCHECK_CONFIGURE_FLAGS" \ $(_sc_search_regexp) # Check that 'make alpha' will not fail at the end of the process, # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release) # and is read-only. writable-files: $(AM_V_GEN)if test -d $(release_archive_dir); then \ for file in $(DIST_ARCHIVES); do \ for p in ./ $(release_archive_dir)/; do \ test -e $$p$$file || continue; \ test -w $$p$$file \ || { echo ERROR: $$p$$file is not writable; fail=1; }; \ done; \ done; \ test "$$fail" && exit 1 || : ; \ else :; \ fi v_etc_file = $(gnulib_dir)/lib/version-etc.c sample-test = tests/sample-test texi = doc/$(PACKAGE).texi # Make sure that the copyright date in $(v_etc_file) is up to date. # Do the same for the $(sample-test) and the main doc/.texi file. sc_copyright_check: @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \ in_files=$(v_etc_file) \ halt='out of date copyright in $(v_etc_file); update it' \ $(_sc_search_regexp) @require='# Copyright \(C\) '$$(date +%Y)' Free' \ in_vc_files=$(sample-test) \ halt='out of date copyright in $(sample-test); update it' \ $(_sc_search_regexp) @require='Copyright @copyright\{} .*'$$(date +%Y) \ in_vc_files=$(texi) \ halt='out of date copyright in $(texi); update it' \ $(_sc_search_regexp) # If tests/help-version exists and seems to be new enough, assume that its # use of init.sh and path_prepend_ is correct, and ensure that every other # use of init.sh is identical. # This is useful because help-version cross-checks prog --version # with $(VERSION), which verifies that its path_prepend_ invocation # sets PATH correctly. This is an inexpensive way to ensure that # the other init.sh-using tests also get it right. _hv_file ?= $(srcdir)/tests/help-version _hv_regex_weak ?= ^ *\. .*/init\.sh" # Fix syntax-highlighters " _hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh" sc_cross_check_PATH_usage_in_tests: @if test -f $(_hv_file); then \ $(GREP) -l 'VERSION mismatch' $(_hv_file) >/dev/null \ || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \ exit 0; }; \ $(GREP) -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \ exit 1; }; \ good=$$($(GREP) -E '$(_hv_regex_strong)' $(_hv_file)); \ $(VC_LIST_EXCEPT) \ | xargs $(GREP) -lE '$(_hv_regex_weak)' \ | xargs $(GREP) -LFx "$$good" \ | $(GREP) . \ && { printf "$(ME): the above files use" \ " path_prepend_ inconsistently\n" 1>&2; \ exit 1; } \ || :; \ fi # BRE regex of file contents to identify a test script. _test_script_regex ?= \<init\.sh\> # In tests, use "compare expected actual", not the reverse. sc_prohibit_reversed_compare_failure: @prohibit='\<compare [^ ]+ ([^ ]*exp|/dev/null)' \ containing='$(_test_script_regex)' \ halt='reversed compare arguments' \ $(_sc_search_regexp) # #if HAVE_... will evaluate to false for any non numeric string. # That would be flagged by using -Wundef, however gnulib currently # tests many undefined macros, and so we can't enable that option. # So at least preclude common boolean strings as macro values. sc_Wundef_boolean: @prohibit='^#define.*(yes|no|true|false)$$' \ in_files='$(CONFIG_INCLUDE)' \ halt='Use 0 or 1 for macro values' \ $(_sc_search_regexp) # Even if you use pathmax.h to guarantee that PATH_MAX is defined, it might # not be constant, or might overflow a stack. In general, use PATH_MAX as # a limit, not an array or alloca size. sc_prohibit_path_max_allocation: @prohibit='(\balloca *\([^)]*|\[[^]]*)\bPATH_MAX' \ halt='Avoid stack allocations of size PATH_MAX' \ $(_sc_search_regexp) sc_vulnerable_makefile_CVE-2009-4029: @prohibit='perm -777 -exec chmod a\+rwx|chmod 777 \$$\(distdir\)' \ in_files='(^|/)Makefile\.in$$' \ halt=$$(printf '%s\n' \ 'the above files are vulnerable; beware of running' \ ' "make dist*" rules, and upgrade to fixed automake' \ ' see https://bugzilla.redhat.com/show_bug.cgi?id=542609 for details') \ $(_sc_search_regexp) sc_vulnerable_makefile_CVE-2012-3386: @prohibit='chmod a\+w \$$\(distdir\)' \ in_files='(^|/)Makefile\.in$$' \ halt=$$(printf '%s\n' \ 'the above files are vulnerable; beware of running' \ ' "make distcheck", and upgrade to fixed automake' \ ' see https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2012-3386 for details') \ $(_sc_search_regexp) sc_unportable_grep_q: @prohibit='grep -q' halt="unportable 'grep -q', use >/dev/null instead" \ $(_sc_search_regexp) vc-diff-check: $(AM_V_GEN)(unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || : $(AM_V_at)if test -s vc-diffs; then \ cat vc-diffs; \ echo "Some files are locally modified:" 1>&2; \ exit 1; \ else \ rm vc-diffs; \ fi rel-files = $(DIST_ARCHIVES) gnulib-version = $$(cd $(gnulib_dir) \ && { git describe || git rev-parse --short=10 HEAD; } ) bootstrap-tools ?= autoconf,automake,gnulib gpgv = $$(gpgv2 --version >/dev/null && echo gpgv2 || echo gpgv) # If it's not already specified, derive the GPG key ID from # the signed tag we've just applied to mark this release. gpg_key_ID ?= \ $$(cd $(srcdir) \ && git cat-file tag v$(VERSION) \ | $(gpgv) --status-fd 1 --keyring /dev/null - - 2>/dev/null \ | $(AWK) '/^\[GNUPG:] ERRSIG / {print $$3; exit}') gpg_key_email ?= \ $$(gpg --list-key --with-colons $(gpg_key_ID) 2>/dev/null \ | $(AWK) -F: '/^uid/ {print $$10; exit}' \ | $(SED) -n 's/.*<\(.*\)>/\1/p') gpg_keyring_url ?= https://savannah.gnu.org/project/release-gpgkeys.php?group=$(PACKAGE)&download=1 translation_project_ ?= coordinator@translationproject.org # Make info-gnu the default only for a stable release. announcement_Cc_stable = $(translation_project_), $(PACKAGE_BUGREPORT) announcement_mail_headers_stable = \ To: info-gnu@gnu.org \ Cc: $(announcement_Cc_) \ Mail-Followup-To: $(PACKAGE_BUGREPORT) announcement_Cc_alpha = $(translation_project_) announcement_mail_headers_alpha = \ To: $(PACKAGE_BUGREPORT) \ Cc: $(announcement_Cc_) announcement_mail_Cc_beta = $(announcement_mail_Cc_alpha) announcement_mail_headers_beta = $(announcement_mail_headers_alpha) announcement_Cc_ ?= $(announcement_Cc_$(release-type)) announcement_mail_headers_ ?= $(announcement_mail_headers_$(release-type)) announcement: NEWS ChangeLog $(rel-files) # Not $(AM_V_GEN) since the output of this command serves as # announcement message: it would start with " GEN announcement". $(AM_V_at)$(srcdir)/$(_build-aux)/announce-gen \ --mail-headers='$(announcement_mail_headers_)' \ --release-type=$(release-type) \ --package=$(PACKAGE) \ --prev=$(PREV_VERSION) \ --curr=$(VERSION) \ --gpg-key-id=$(gpg_key_ID) \ $$(test -n "$(gpg_key_email)" && \ echo --gpg-key-email="$(gpg_key_email)") \ $$(test -n "$(gpg_keyring_url)" && \ echo --gpg-keyring-url="$(gpg_keyring_url)") \ --srcdir=$(srcdir) \ --news=$(srcdir)/NEWS \ --bootstrap-tools=$(bootstrap-tools) \ $$(case ,$(bootstrap-tools), in (*,gnulib,*) \ echo --gnulib-version=$(gnulib-version);; esac) \ $(addprefix --url-dir=, $(url_dir_list)) .PHONY: release-commit release-commit: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/do-release-commit-and-tag \ -C $(abs_builddir) $(RELEASE) ## ---------------- ## ## Updating files. ## ## ---------------- ## ftp-gnu = https://ftp.gnu.org/gnu www-gnu = https://www.gnu.org upload_dest_dir_ ?= $(PACKAGE) upload_command = \ $(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \ --to $(gnu_rel_host):$(upload_dest_dir_) \ $(rel-files) emit_upload_commands: @echo ===================================== @echo ===================================== @echo '$(upload_command)' @echo '# send the ~/announce-$(my_distdir) e-mail' @echo ===================================== @echo ===================================== .PHONY: upload upload: $(AM_V_GEN)$(upload_command) define emit-commit-log printf '%s\n' 'maint: post-release administrivia' '' \ '* NEWS: Add header line for next release.' \ '* .prev-version: Record previous version.' \ '* cfg.mk (old_NEWS_hash): Auto-update.' endef .PHONY: no-submodule-changes no-submodule-changes: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ diff=$$(cd $(srcdir) && git submodule -q foreach \ git diff-index --name-only HEAD) \ || exit 1; \ case $$diff in '') ;; \ *) echo '$(ME): submodule files are locally modified:'; \ echo "$$diff"; exit 1;; esac; \ else \ : ; \ fi submodule-checks ?= no-submodule-changes public-submodule-commit # Ensure that each sub-module commit we're using is public. # Without this, it is too easy to tag and release code that # cannot be built from a fresh clone. .PHONY: public-submodule-commit public-submodule-commit: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ cd $(srcdir) && \ git submodule --quiet foreach \ 'test "$$(git rev-parse "$$sha1")" \ = "$$(git merge-base origin "$$sha1")"' \ || { echo '$(ME): found non-public submodule commit' >&2; \ exit 1; }; \ else \ : ; \ fi # This rule has a high enough utility/cost ratio that it should be a # dependent of "check" by default. However, some of us do occasionally # commit a temporary change that deliberately points to a non-public # submodule commit, and want to be able to use rules like "make check". # In that case, run e.g., "make check gl_public_submodule_commit=" # to disable this test. gl_public_submodule_commit ?= public-submodule-commit check: $(gl_public_submodule_commit) .PHONY: alpha beta stable release ALL_RECURSIVE_TARGETS += alpha beta stable alpha beta stable: $(local-check) writable-files $(submodule-checks) $(AM_V_GEN)test $@ = stable \ && { echo $(VERSION) | $(GREP) -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ || : $(AM_V_at)$(MAKE) vc-diff-check $(AM_V_at)$(MAKE) news-check $(AM_V_at)$(MAKE) distcheck $(AM_V_at)$(MAKE) dist $(AM_V_at)$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@ $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@ release: $(AM_V_GEN)$(MAKE) _version $(AM_V_at)$(MAKE) $(release-type) # Override this in cfg.mk if you follow different procedures. release-prep-hook ?= release-prep gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?] .PHONY: release-prep release-prep: $(AM_V_GEN)$(MAKE) --no-print-directory -s announcement \ > ~/announce-$(my_distdir) $(AM_V_at)if test -d $(release_archive_dir); then \ ln $(rel-files) $(release_archive_dir); \ chmod a-w $(rel-files); \ fi $(AM_V_at)echo $(VERSION) > $(prev_version_file) $(AM_V_at)$(MAKE) update-NEWS-hash $(AM_V_at)perl -pi \ -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' \ $(srcdir)/NEWS $(AM_V_at)msg=$$($(emit-commit-log)) || exit 1; \ cd $(srcdir) && $(VC) commit -m "$$msg" -a # Override this with e.g., -s $(srcdir)/some_other_name.texi # if the default $(PACKAGE)-derived name doesn't apply. gendocs_options_ ?= .PHONY: web-manual web-manual: $(AM_V_GEN)test -z "$(manual_title)" \ && { echo define manual_title in cfg.mk 1>&2; exit 1; } || : $(AM_V_at)cd '$(srcdir)/doc'; \ $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \ -o '$(abs_builddir)/doc/manual' \ --email $(PACKAGE_BUGREPORT) $(PACKAGE) \ "$(PACKAGE_NAME) - $(manual_title)" $(AM_V_at)echo " *** Upload the doc/manual directory to web-cvs." .PHONY: web-manual-update web-manual-update: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/gnu-web-doc-update -C $(abs_builddir) # Code Coverage init-coverage: $(MAKE) $(AM_MAKEFLAGS) clean lcov --directory . --zerocounters COVERAGE_CCOPTS ?= "-g --coverage" COVERAGE_OUT ?= doc/coverage build-coverage: $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check mkdir -p $(COVERAGE_OUT) lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \ --capture gen-coverage: genhtml --output-directory $(COVERAGE_OUT) \ $(COVERAGE_OUT)/$(PACKAGE).info \ --highlight --frames --legend \ --title "$(PACKAGE_NAME)" coverage: $(MAKE) init-coverage $(MAKE) build-coverage $(MAKE) gen-coverage # Some projects carry local adjustments for gnulib modules via patches in # a gnulib patch directory whose default name is gl/ (defined in bootstrap # via local_gl_dir=gl). Those patches become stale as the originals evolve # in gnulib. Use this rule to refresh any stale patches. It applies each # patch to the original in $(gnulib_dir) and uses the temporary result to # generate a fuzz-free .diff file. If you customize the name of your local # gnulib patch directory via bootstrap.conf, this rule detects that name. # Run this from a non-VPATH (i.e., srcdir) build directory. .PHONY: refresh-gnulib-patches refresh-gnulib-patches: gl=gl; \ if test -f bootstrap.conf; then \ t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;' \ -e 'END{defined $$d and print $$d}' bootstrap.conf); \ test -n "$$t" && gl=$$t; \ fi; \ for diff in $$(cd $$gl; git ls-files | $(GREP) '\.diff$$'); do \ b=$$(printf %s "$$diff"|$(SED) 's/\.diff$$//'); \ VERSION_CONTROL=none \ patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1; \ ( cd $(gnulib_dir) || exit 1; \ git diff "$$b" > "../$$gl/$$diff"; \ git checkout $$b ) || exit 1; \ done # Update gettext files. PACKAGE ?= $(shell basename $(PWD)) PO_DOMAIN ?= $(PACKAGE) POURL = https://translationproject.org/latest/$(PO_DOMAIN)/ PODIR ?= po refresh-po: rm -f $(PODIR)/*.po && \ echo "$(ME): getting translations into po (please ignore the robots.txt ERROR 404)..." && \ wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \ echo 'en@boldquot' > $(PODIR)/LINGUAS && \ echo 'en@quot' >> $(PODIR)/LINGUAS && \ ls $(PODIR)/*.po | $(SED) 's/\.po//;s,$(PODIR)/,,' | \ sort >> $(PODIR)/LINGUAS # Indentation indent_args ?= -ppi 1 C_SOURCES ?= $$($(VC_LIST_EXCEPT) | grep '\.[ch]\(.in\)\?$$') INDENT_SOURCES ?= $(C_SOURCES) exclude_file_name_regexp--indent ?= $(exclude_file_name_regexp--sc_indent) .PHONY: indent indent: # Running indent once is not idempotent, but running it twice is. $(AM_V_GEN)indent $(indent_args) $(INDENT_SOURCES) && \ indent $(indent_args) $(INDENT_SOURCES) sc_indent: @if ! indent --version 2> /dev/null | grep 'GNU indent' > /dev/null; then \ echo 1>&2 '$(ME): sc_indent: GNU indent is missing'; \ else \ fail=0; files="$(INDENT_SOURCES)"; \ for f in $$files; do \ indent $(indent_args) -st $$f \ | indent $(indent_args) -st - \ | diff -u $$f - || fail=1; \ done; \ test $$fail = 1 && \ { echo 1>&2 '$(ME): code format error, try "make indent"'; \ exit 1; } || :; \ fi # If you want to set UPDATE_COPYRIGHT_* environment variables, # put the assignments in this variable. update-copyright-env ?= # Run this rule once per year (usually early in January) # to update all FSF copyright year lists in your project. # If you have an additional project-specific rule, # add it in cfg.mk along with a line 'update-copyright: prereq'. # By default, exclude all variants of COPYING; you can also # add exemptions (such as ChangeLog..* for rotated change logs) # in the file .x-update-copyright. .PHONY: update-copyright update-copyright: $(AM_V_GEN)$(GREP) -l -w Copyright \ $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@ # This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not # overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS. # NOTE: to override any _gl_TS_* default value, you must # define the variable(s) using "export" in cfg.mk. _gl_TS_dir ?= src ALL_RECURSIVE_TARGETS += sc_tight_scope sc_tight_scope: tight-scope.mk @fail=0; \ if ! $(GREP) '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ > /dev/null \ && ! $(GREP) -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ > /dev/null 2>&1; then \ echo '$(ME): skipping $@'; \ else \ $(MAKE) -s -C $(_gl_TS_dir) \ -f Makefile \ -f $(abs_top_srcdir)/cfg.mk \ -f $(abs_top_builddir)/$< \ _gl_tight_scope \ || fail=1; \ fi; \ rm -f $<; \ exit $$fail tight-scope.mk: $(ME) @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(srcdir)/$(ME) > $@-t @mv $@-t $@ ifeq (a,b) # TS-start # Most functions should have static scope. # Any that don't must be marked with 'extern', but 'main' # and 'usage' are exceptions: they're always extern, but # do not need to be marked. Symbols matching '__.*' are # reserved by the compiler, so are automatically excluded below. _gl_TS_unmarked_extern_functions ?= main usage _gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\w+) *\(/ # If your project uses a macro like "XTERN", then put # the following in cfg.mk to override this default: # export _gl_TS_extern = extern|XTERN _gl_TS_extern ?= extern # The second nm|grep checks for file-scope variables with 'extern' scope. # Without gnulib's progname module, you might put program_name here. # Symbols matching '__.*' are reserved by the compiler, # so are automatically excluded below. _gl_TS_unmarked_extern_vars ?= # NOTE: the _match variables are perl expressions -- not mere regular # expressions -- so that you can extend them to match other patterns # and easily extract matched variable names. # For example, if your project declares some global variables via # a macro like this: GLOBAL(type, var_name, initializer), then you # can override this definition to automatically extract those names: # export _gl_TS_var_match = \ # /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/ _gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?])?;/ # The names of object files in (or relative to) $(_gl_TS_dir). _gl_TS_obj_files ?= *.$(OBJEXT) # Files in which to search for the one-line style extern declarations. # $(_gl_TS_dir)-relative. _gl_TS_headers ?= $(noinst_HEADERS) _gl_TS_other_headers ?= *.h .PHONY: _gl_tight_scope _gl_tight_scope: $(bin_PROGRAMS) sed_wrap='s/^/^_?/;s/$$/$$/'; \ t=exceptions-$$$$; \ trap 's=$$?; rm -f $$t; exit $$s' 0; \ for sig in 1 2 3 13 15; do \ eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \ done; \ src=`for f in $(SOURCES); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ hdr=`for f in $(_gl_TS_headers); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ ( printf '%s\n' '__.*' $(_gl_TS_unmarked_extern_functions); \ $(GREP) -h -A1 '^extern .*[^;]$$' $$src \ | $(GREP) -vE '^(extern |--|#)' | $(SED) 's/ .*//; /^$$/d'; \ perl -lne \ '$(_gl_TS_function_match) and print $$1' $$hdr; \ ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ nm -g $(_gl_TS_obj_files)|$(SED) -n 's/.* T //p'|$(GREP) -Ev -f $$t \ && { echo the above functions should have static scope >&2; \ exit 1; } || : ; \ ( printf '%s\n' '__.*' main $(_gl_TS_unmarked_extern_vars); \ perl -lne '$(_gl_TS_var_match) and print $$1' \ $$hdr $(_gl_TS_other_headers) \ ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ nm -g $(_gl_TS_obj_files) | $(SED) -n 's/.* [BCDGRS] //p' \ | sort -u | $(GREP) -Ev -f $$t \ && { echo the above variables should have static scope >&2; \ exit 1; } || : # TS-end endif ������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132372�010202� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000003647�14374750525�012177� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # man_MANS = $(regular_mans) $(irregular_mans) man_aux = a2ps.x card.x fixps.x lp2.x pdiff.x regular_mans = card.1 fixps.1 lp2.1 pdiff.1 irregular_mans = a2ps.1 a2ps-lpr-wrapper.1 EXTRA_DIST = $(man_MANS) $(man_aux) common.x a2ps-lpr-wrapper.1 MAINTAINERCLEANFILES = $(man_MANS) # Depend on configure.ac to get version number changes. $(man_MANS): $(top_srcdir)/configure.ac common.x # Depend on the source file containing the --help text. $(regular_mans): %.1: $(top_srcdir)/contrib/%.in a2ps.1: $(top_srcdir)/src/main.c # Build command for man pages # Exit gracefully if $@ is not writeable, such as during distcheck! do_build = "if ( touch $${name%.*}.w && rm -f $${name%.*}.w; ) >/dev/null 2>&1; then \ $(top_builddir)/build-aux/x-to-1 \ $(PERL) $(HELP2MAN) --include=$(srcdir)/common.x \ $$exe $(srcdir)/$${name%.*}.x $$name; \ fi" a2ps.1: a2ps.x name=$@ exe=$(top_builddir)/src/a2ps; eval $(do_build) card.1: card.x name=$@ exe=$(top_builddir)/contrib/card; eval $(do_build) lp2.1: lp2.x name=$@ exe=$(top_builddir)/contrib/lp2; eval $(do_build) fixps.1: fixps.x name=$@ exe=$(top_builddir)/contrib/fixps; eval $(do_build) pdiff.1: pdiff.x name=$@ exe=$(top_builddir)/contrib/pdiff; eval $(do_build) �����������������������������������������������������������������������������������������a2ps-4.15.5/man/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000166775�14445132055�012213� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2023 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = man ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(man_MANS) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ man_MANS = $(regular_mans) $(irregular_mans) man_aux = a2ps.x card.x fixps.x lp2.x pdiff.x regular_mans = card.1 fixps.1 lp2.1 pdiff.1 irregular_mans = a2ps.1 a2ps-lpr-wrapper.1 EXTRA_DIST = $(man_MANS) $(man_aux) common.x a2ps-lpr-wrapper.1 MAINTAINERCLEANFILES = $(man_MANS) # Build command for man pages # Exit gracefully if $@ is not writeable, such as during distcheck! do_build = "if ( touch $${name%.*}.w && rm -f $${name%.*}.w; ) >/dev/null 2>&1; then \ $(top_builddir)/build-aux/x-to-1 \ $(PERL) $(HELP2MAN) --include=$(srcdir)/common.x \ $$exe $(srcdir)/$${name%.*}.x $$name; \ fi" all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign man/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs loc-am loc-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-man uninstall-man1 .PRECIOUS: Makefile # Depend on configure.ac to get version number changes. $(man_MANS): $(top_srcdir)/configure.ac common.x # Depend on the source file containing the --help text. $(regular_mans): %.1: $(top_srcdir)/contrib/%.in a2ps.1: $(top_srcdir)/src/main.c a2ps.1: a2ps.x name=$@ exe=$(top_builddir)/src/a2ps; eval $(do_build) card.1: card.x name=$@ exe=$(top_builddir)/contrib/card; eval $(do_build) lp2.1: lp2.x name=$@ exe=$(top_builddir)/contrib/lp2; eval $(do_build) fixps.1: fixps.x name=$@ exe=$(top_builddir)/contrib/fixps; eval $(do_build) pdiff.1: pdiff.x name=$@ exe=$(top_builddir)/contrib/pdiff; eval $(do_build) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���a2ps-4.15.5/man/a2ps-lpr-wrapper.1������������������������������������������������������������������0000644�0000000�0000000�00000002441�14365733205�013326� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "a2ps-lpr-wrapper" "1" .SH "NAME" a2ps-lpr-wrapper \(em lp/lpr wrapper script for GNU a2ps on Debian .SH "SYNOPSIS" .PP \fBa2ps-lpr-wrapper\fR [\fB-d \fIprinter\fR\fP] [\fB\fIfiles\fR\fP] .SH "DESCRIPTION" .PP This manual page documents briefly the \fBa2ps-lpr-wrapper\fR command. .PP \fBa2ps-lpr-wrapper\fR uses either \fBlp\fP or \fBlpr\fP to send \fIfiles\fR to \fIprinter\fR. It determines which of the two programs is currently installed and adds the appropriate parameters. .SH "OPTIONS" .IP "\fB-d \fIprinter\fR\fP " 10 Destination system printer. .IP "\fB\fIfiles\fR\fP " 10 List of files to be printed. .SH "SEE ALSO" .PP a2ps (1). .PP The programs are documented fully by the a2ps documentation available via the \fBInfo\fP system. .SH "AUTHOR" .PP This manual page was written by Michael Tautschnig tautschn@model.in.tum.de for the \fBDebian\fP system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version published by the Free Software Foundation. .PP On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL. .\" created by instant / docbook-to-man �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/a2ps.1������������������������������������������������������������������������������0000644�0000000�0000000�00000020144�14445132173�011051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. .TH A2PS "1" "June 2023" "GNU a2ps 4.15.4" "User Commands" .SH NAME a2ps \- format files for printing on a PostScript printer .SH SYNOPSIS .B a2ps [\fI\,OPTION\/\fR]... [\fI\,FILE\/\fR]... .SH DESCRIPTION .\" Add any additional description here .PP Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with \fB\-o\fR. .PP Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. .PP Tasks: .TP \fB\-\-version\fR display version .TP \fB\-\-help\fR display this help .TP \fB\-\-guess\fR report guessed types of FILES .TP \fB\-\-which\fR report the full path of library files named FILES .TP \fB\-\-glob\fR report the full path of library files matching FILES .TP \fB\-\-list\fR=\fI\,defaults\/\fR display default settings and parameters .TP \fB\-\-list\fR=\fI\,TOPIC\/\fR detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style\-sheets, user\-options) .PP After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. .PP Global: .TP \fB\-q\fR, \fB\-\-quiet\fR, \fB\-\-silent\fR be really quiet .TP \fB\-v\fR, \fB\-\-verbose\fR[=\fI\,LEVEL\/\fR] set verbosity on, or to LEVEL .TP \fB\-=\fR, \fB\-\-user\-option\fR=\fI\,OPTION\/\fR use the user defined shortcut OPTION .TP \fB\-\-debug\fR enable debugging features .TP \fB\-D\fR, \fB\-\-define\fR=\fI\,KEY[\/\fR:VALUE] unset variable KEY or set to VALUE .PP Sheets: .TP \fB\-M\fR, \fB\-\-medium\fR=\fI\,NAME\/\fR use output medium NAME .TP \fB\-r\fR, \fB\-\-landscape\fR print in landscape mode .TP \fB\-R\fR, \fB\-\-portrait\fR print in portrait mode .TP \fB\-\-columns\fR=\fI\,NUM\/\fR number of columns per sheet .TP \fB\-\-rows\fR=\fI\,NUM\/\fR number of rows per sheet .TP \fB\-\-major\fR=\fI\,DIRECTION\/\fR first fill (DIRECTION=) rows, or columns .TP \fB\-1\fR, \fB\-2\fR, ..., \fB\-9\fR predefined font sizes and layouts for 1..9 virtuals .TP \fB\-A\fR, \fB\-\-file\-align\fR=\fI\,MODE\/\fR align separate files according to MODE (fill, rank page, sheet, or a number) .TP \fB\-j\fR, \fB\-\-borders\fR* print borders around columns .TP \fB\-\-margin\fR[=\fI\,NUM\/\fR] define an interior margin of size NUM .PP The options \fB\-1\fR.. \fB\-9\fR affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `\-R \fB\-f40\fR \fB\-2\fR' is equivalent to `\-2'. To modify the layout, use `\-2Rf40', or compose primitive options (`\-\-columns', `\-\-font\-size' etc.). .PP Virtual pages: .TP \fB\-\-line\-numbers\fR=\fI\,NUM\/\fR precede each NUM lines with its line number .TP \fB\-C\fR alias for \fB\-\-line\-numbers\fR=\fI\,5\/\fR .TP \fB\-f\fR, \fB\-\-font\-size\fR=\fI\,SIZE\/\fR use font SIZE (float) for the body text .TP \fB\-L\fR, \fB\-\-lines\-per\-page\fR=\fI\,NUM\/\fR scale the font to print NUM lines per virtual .TP \fB\-l\fR, \fB\-\-chars\-per\-line\fR=\fI\,NUM\/\fR scale the font to print NUM columns per virtual .TP \fB\-m\fR, \fB\-\-catman\fR process FILE as a man page (same as \fB\-L66\fR) .TP \fB\-T\fR, \fB\-\-tabsize\fR=\fI\,NUM\/\fR set tabulator size to NUM .HP \fB\-\-non\-printable\-format\fR=\fI\,FMT\/\fR specify how non\-printable chars are printed .PP Headings: .TP \fB\-B\fR, \fB\-\-no\-header\fR no page headers at all .TP \fB\-b\fR, \fB\-\-header\fR[=\fI\,TEXT\/\fR] set page header .TP \fB\-u\fR, \fB\-\-underlay\fR[=\fI\,TEXT\/\fR] print TEXT under every page .TP \fB\-\-center\-title\fR[=\fI\,TEXT\/\fR] set page title to TITLE .TP \fB\-\-left\-title\fR[=\fI\,TEXT\/\fR] set left and right page title to TEXT .HP \fB\-\-right\-title\fR[=\fI\,TEXT\/\fR] .TP \fB\-\-left\-footer\fR[=\fI\,TEXT\/\fR] set sheet footers to TEXT .HP \fB\-\-footer\fR[=\fI\,TEXT\/\fR] .HP \fB\-\-right\-footer\fR[=\fI\,TEXT\/\fR] .PP The TEXTs may use special escapes. .PP Input: .TP \fB\-a\fR, \fB\-\-pages\fR[=\fI\,RANGE\/\fR] select the pages to print .TP \fB\-c\fR, \fB\-\-truncate\-lines\fR* cut long lines .TP \fB\-i\fR, \fB\-\-interpret\fR* interpret tab, bs and ff chars .TP \fB\-\-end\-of\-line\fR=\fI\,TYPE\/\fR specify the eol char (TYPE: r, n, nr, rn, any) .TP \fB\-X\fR, \fB\-\-encoding\fR=\fI\,NAME\/\fR use input encoding NAME .TP \fB\-t\fR, \fB\-\-title\fR=\fI\,NAME\/\fR set the name of the job .TP \fB\-\-stdin\fR=\fI\,NAME\/\fR set the name of the input file stdin .TP \fB\-\-print\-anyway\fR* force binary printing .TP \fB\-Z\fR, \fB\-\-delegate\fR* delegate files to another application .TP \fB\-\-toc\fR[=\fI\,TEXT\/\fR] generate a table of content .PP When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. .PP Pretty\-printing: .TP \fB\-E\fR, \fB\-\-pretty\-print\fR[=\fI\,LANG\/\fR] enable pretty\-printing (set style to LANG) .TP \fB\-\-highlight\-level\fR=\fI\,LEVEL\/\fR set pretty printing highlight LEVEL LEVEL can be none, normal or heavy .TP \fB\-g\fR alias for \fB\-\-highlight\-level\fR=\fI\,heavy\/\fR .TP \fB\-\-strip\-level\fR=\fI\,NUM\/\fR level of comments stripping .PP Output: .TP \fB\-o\fR, \fB\-\-output\fR=\fI\,FILE\/\fR leave output to file FILE. If FILE is `\-', leave output to stdout. .TP \fB\-\-version\-control\fR=\fI\,WORD\/\fR override the usual version control .TP \fB\-\-suffix\fR=\fI\,SUFFIX\/\fR override the usual backup suffix .TP \fB\-P\fR, \fB\-\-printer\fR=\fI\,NAME\/\fR send output to printer NAME .TP \fB\-d\fR send output to the default printer (this is the default behavior) .PP PostScript: .TP \fB\-\-prologue\fR=\fI\,FILE\/\fR include FILE.pro as PostScript prologue .TP \fB\-\-ppd\fR[=\fI\,KEY\/\fR] automatic PPD selection or set to KEY .TP \fB\-n\fR, \fB\-\-copies\fR=\fI\,NUM\/\fR print NUM copies of each page .TP \fB\-s\fR, \fB\-\-sides\fR=\fI\,MODE\/\fR set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') .TP \fB\-S\fR, \fB\-\-setpagedevice\fR=\fI\,K[\/\fR:V] pass a page device definition to output .TP \fB\-\-statusdict\fR=\fI\,K[\/\fR:[:]V] pass a statusdict definition to the output .TP \fB\-k\fR, \fB\-\-page\-prefeed\fR enable page prefeed .TP \fB\-K\fR, \fB\-\-no\-page\-prefeed\fR disable page prefeed .PP By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', .IP \f(CW$ a2ps -P lw --toc src/*\fR .PP To process the files `sample.ps' and `sample.html' and display the result, .IP \f(CW$ a2ps -P display sample.ps sample.html\fR .PP To process a mailbox in 4 up, .IP \f(CW$ a2ps -=mail -4 mailbox\fR .PP To print as a booklet on the default printer, which is duplex capable, .IP \f(CW$ a2ps -=book paper.dvi.gz -d\fR .SH FILES a2ps reads several files before the command line options. In order, they are: .IP 1. The system configuration file (usually \fI/usr/local/etc/a2ps.cfg\fR) unless you have defined the environment variable \fIA2PS_CONFIG\fR, in which case a2ps reads the file it points to; .IP 2. the user's home configuration file (\fI$HOME/.a2ps/a2psrc\fR) .IP 3. the file \fI.a2psrc\fR in the current directory. See the info manual for more information, including a description of the configuration file format. .SH AUTHOR Written by Akim Demaille, Miguel Santana, and Reuben Thomas. .SH "REPORTING BUGS" Report bugs to: bug\-a2ps@gnu.org .br GNU a2ps home page: <https://www.gnu.org/software/a2ps/> .br General help using GNU software: <https://www.gnu.org/gethelp/> .SH COPYRIGHT Copyright \(co 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. .br This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. .SH "SEE ALSO" .BR a2ps (1), .BR card (1), .BR fixps (1), .BR pdiff (1). .PP The full documentation for .B a2ps is maintained as a Texinfo manual. If the .B info and .B a2ps programs are properly installed at your site, the command .IP .B info a2ps .PP should give you access to the complete manual. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/a2ps.x������������������������������������������������������������������������������0000644�0000000�0000000�00000001166�14415504320�011155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[NAME] a2ps \- format files for printing on a PostScript printer [DESCRIPTION] .\" Add any additional description here [FILES] a2ps reads several files before the command line options. In order, they are: .IP 1. The system configuration file (usually \fI/usr/local/etc/a2ps.cfg\fR) unless you have defined the environment variable \fIA2PS_CONFIG\fR, in which case a2ps reads the file it points to; .IP 2. the user's home configuration file (\fI$HOME/.a2ps/a2psrc\fR) .IP 3. the file \fI.a2psrc\fR in the current directory. See the info manual for more information, including a description of the configuration file format. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/card.1������������������������������������������������������������������������������0000644�0000000�0000000�00000003122�14445132173�011112� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. .TH CARD "1" "June 2023" "card 1.3 (GNU a2ps 4.15.5)" "User Commands" .SH NAME card \- print reference card of program options .SH SYNOPSIS .B card [\fI\,OPTION\/\fR]... \fI\,PROGRAM\/\fR... .SH DESCRIPTION .\" Add any additional description here .PP Print a reference card of the PROGRAMs thanks to their inline help. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR display this help and exit .TP \fB\-v\fR, \fB\-\-version\fR display version information and exit .TP \fB\-o\fR, \fB\-\-output\fR=\fI\,FILE\/\fR save the output in FILE .TP \fB\-l\fR, \fB\-\-language\fR=\fI\,LL\/\fR print the help in the language LL (default: English) .TP \fB\-\-command\fR=\fI\,CMD\/\fR perform pretty\-printing on the output of CMD (e.g. \fB\-\-command=\fR'a2ps \fB\-\-help\fR') .PP Options for a2ps are given after `\-\-', for instance .IP \f(CW$ card -lfr a2ps -- -Pdisplay -4\fR .PP News, updates and documentation: https://www.gnu.org/software/a2ps/ .SH AUTHOR Written by Akim Demaille. .SH "REPORTING BUGS" Report bugs to <bug\-a2ps@gnu.org>. .SH COPYRIGHT Copyright \(co 1997\-99 Akim Demaille, Miguel Santana .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" .BR a2ps (1), .BR card (1), .BR fixps (1), .BR pdiff (1). .PP The full documentation for .B card is maintained as a Texinfo manual. If the .B info and .B card programs are properly installed at your site, the command .IP .B info card .PP should give you access to the complete manual. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/card.x������������������������������������������������������������������������������0000644�0000000�0000000�00000000156�14236507210�011221� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[NAME] card \- print reference card of program options [DESCRIPTION] .\" Add any additional description here ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/common.x����������������������������������������������������������������������������0000644�0000000�0000000�00000000105�14365455714�011610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[see also] .BR a2ps (1), .BR card (1), .BR fixps (1), .BR pdiff (1). �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/fixps.1�����������������������������������������������������������������������������0000644�0000000�0000000�00000002577�14445132173�011347� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. .TH FIXPS "1" "June 2023" "fixps 1.6 (GNU a2ps 4.15.5)" "User Commands" .SH NAME fixps \- sanitize PostScript files .SH SYNOPSIS .B fixps [\fI\,OPTIONS\/\fR] \fI\,FILE\/\fR .SH DESCRIPTION .\" Add any additional description here .PP Try to fix common PostScript problems that break postprocessing. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR display this help and exit .TP \fB\-v\fR, \fB\-\-version\fR display version information and exit .TP \fB\-q\fR, \fB\-\-quiet\fR don't print informational messages .TP \fB\-o\fR, \fB\-\-output\fR=\fI\,FILE\/\fR save result in FILE. If FILE is `\-', send to stdout .TP \fB\-c\fR, \fB\-\-check\fR, \fB\-\-dry\-run\fR don't perform any action .SH AUTHOR Written by Akim Demaille. .SH "REPORTING BUGS" Report bugs to <bug\-a2ps@gnu.org> .SH COPYRIGHT Copyright \(co 1998\-2000 Akim Demaille, Miguel Santana .br Copyright \(co 2023 Reuben Thomas .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" .BR a2ps (1), .BR card (1), .BR fixps (1), .BR pdiff (1). .PP The full documentation for .B fixps is maintained as a Texinfo manual. If the .B info and .B fixps programs are properly installed at your site, the command .IP .B info fixps .PP should give you access to the complete manual. ���������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/fixps.x�����������������������������������������������������������������������������0000644�0000000�0000000�00000000141�14236507210�011433� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[NAME] fixps \- sanitize PostScript files [DESCRIPTION] .\" Add any additional description here �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/lp2.1�������������������������������������������������������������������������������0000644�0000000�0000000�00000002560�14445132173�010703� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. .TH LP2 "1" "June 2023" "lp2 1.0 (GNU a2ps 4.15.5)" "User Commands" .SH NAME lp2 \- print duplex on non duplex printers .SH SYNOPSIS .B lp2 [\fI\,OPTIONS\/\fR] \fI\,FILE\/\fR... .SH DESCRIPTION .\" Add any additional description here .PP Print a file duplex on a simplex printer.n First print the odd pages, then prompt the user to put the printed pages back in, then print the even pages in reverse order. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR display this help and exit .TP \fB\-V\fR, \fB\-\-version\fR display version information and exit .TP \fB\-f\fR, \fB\-\-front\fR print only the front pages (recto) .TP \fB\-b\fR, \fB\-\-back\fR print only the back pages (verso) .SH AUTHOR Written by Reuben Thomas. .SH "REPORTING BUGS" Report bugs to <bug\-a2ps@gnu.org> .SH COPYRIGHT Copyright \(co 2023 Reuben Thomas Based on fixps, copyright (c) 1998\-2000 Akim Demaille .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" .BR a2ps (1), .BR card (1), .BR fixps (1), .BR pdiff (1). .PP The full documentation for .B lp2 is maintained as a Texinfo manual. If the .B info and .B lp2 programs are properly installed at your site, the command .IP .B info lp2 .PP should give you access to the complete manual. ������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/lp2.x�������������������������������������������������������������������������������0000644�0000000�0000000�00000000151�14366256466�011022� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[NAME] lp2 \- print duplex on non duplex printers [DESCRIPTION] .\" Add any additional description here �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/pdiff.1�����������������������������������������������������������������������������0000644�0000000�0000000�00000003107�14445132173�011274� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. .TH PDIFF "1" "June 2023" "pdiff 0.4 (GNU a2ps 4.15.5)" "User Commands" .SH NAME pdiff \- produce a pretty comparison between files .SH SYNOPSIS .B pdiff \fI\,FILE1 FILE2 \/\fR[\fI\,-- A2PS-OPTIONS\/\fR...] .SH DESCRIPTION .\" Add any additional description here .PP Pretty print the differences between FILE1 and FILE2. .SH OPTIONS .TP \fB\-h\fR, \fB\-\-help\fR display this help and exit .TP \fB\-v\fR, \fB\-\-version\fR display version information and exit .TP \fB\-q\fR, \fB\-\-quiet\fR don't print informational messages .TP \fB\-l\fR, \fB\-\-lines\fR search for line differences (`diff') .TP \fB\-w\fR, \fB\-\-words\fR search for word differences (`wdiff') .TP \fB\-o\fR, \fB\-\-output\fR=\fI\,FILE\/\fR save the output in FILE .PP Options for a2ps are given after `\-\-', for instance .IP \f(CW$ pdiff COPYING COPYING.LIB -- -Pdisplay\fR .PP News, updates and documentation: https://www.gnu.org/software/a2ps/ .SH AUTHOR Written by Akim Demaille. .SH "REPORTING BUGS" Report bugs to <bug\-a2ps@gnu.org>. .SH COPYRIGHT Copyright \(co 1997\-1999 Akim Demaille, Miguel Santana .br This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH "SEE ALSO" .BR a2ps (1), .BR card (1), .BR fixps (1), .BR pdiff (1). .PP The full documentation for .B pdiff is maintained as a Texinfo manual. If the .B info and .B pdiff programs are properly installed at your site, the command .IP .B info pdiff .PP should give you access to the complete manual. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/man/pdiff.x�����������������������������������������������������������������������������0000644�0000000�0000000�00000000161�14236507210�011374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[NAME] pdiff \- produce a pretty comparison between files [DESCRIPTION] .\" Add any additional description here ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/�������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132365�011256� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/Makefile.am��������������������������������������������������������������������0000644�0000000�0000000�00000010105�14374450457�013235� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # SUBDIRS = doc m4 CLEANFILES = $(bin_SCRIPTS) afmdir = $(pkgdatadir)/afm fontsdir = $(pkgdatadir)/fonts ogonkifydir = $(pkgdatadir) SUFFIXES = .enc .ps .pfa .afm encoding = ogonki targetEncoding = adobe ORIGINAL_ENCODINGS_AFMS = \ ascii.afm adobe.afm latin1.afm latin2.afm latin3.afm latin4.afm \ latin5.afm latin6.afm latin7.afm latin9.afm cp1250.afm ogonki.afm \ mac.afm ibmpc.afm hp.afm ENCODINGS_VECTORS = \ ascii.enc adobe.enc latin1.enc latin2.enc latin3.enc latin4.enc \ latin5.enc latin6.enc latin7.enc latin9.enc cp1250.enc ogonki.enc \ mac.enc ibmpc.enc hp.enc ORIGINAL_AFMS = \ pcrr.afm pcrro.afm pcrb.afm pcrbo.afm \ ptmr.afm ptmri.afm ptmb.afm ptmbi.afm \ phvr.afm phvro.afm phvb.afm phvbo.afm ORIGINAL_COMP_FONTS_AFMS = \ pcrr-c.afm pcrro-c.afm pcrb-c.afm pcrbo-c.afm \ ptmr-c.afm ptmri-c.afm ptmb-c.afm ptmbi-c.afm \ phvr-c.afm phvro-c.afm phvb-c.afm phvbo-c.afm CREATED_AFMS = \ pcrr-o.afm pcrro-o.afm pcrb-o.afm pcrbo-o.afm \ ptmr-o.afm ptmri-o.afm ptmb-o.afm ptmbi-o.afm \ phvr-o.afm phvro-o.afm phvb-o.afm phvbo-o.afm CREATED_FONTS = \ pcrr-o.ps pcrro-o.ps pcrb-o.ps pcrbo-o.ps \ ptmr-o.ps ptmri-o.ps ptmb-o.ps ptmbi-o.ps \ phvr-o.ps phvro-o.ps phvb-o.ps phvbo-o.ps CREATED_PFAS = \ pcrr-o.pfa pcrro-o.pfa pcrb-o.pfa pcrbo-o.pfa \ ptmr-o.pfa ptmri-o.pfa ptmb-o.pfa ptmbi-o.pfa \ phvr-o.pfa phvro-o.pfa phvb-o.pfa phvbo-o.pfa PSPROGS = allchars.ps compose.ps helper.ps printenc.ps # # What gets installed # if EXTENSIONS bin_SCRIPTS = ogonkify composeglyphs ogonkify_DATA = $(ENCODINGS_VECTORS) $(CREATED_FONTS) $(PSPROGS) README afm_DATA = $(CREATED_AFMS) fonts_DATA = $(CREATED_PFAS) endif # # The afm's and ps's for composite fonts # %-o.afm: ogonki.enc composeglyphs.in %-c.afm @fontname=`grep "$* " $(srcdir)/fontname.dat \ | sed 's/^.* //'`; \ echo "Working on $$fontname-Ogonki ($*-o)..."; \ $(PERL) ./composeglyphs -i $(srcdir)/$*.afm -c $(srcdir)/$*-c.afm \ -o $(srcdir)/$*-o.ps -n $$fontname-Ogonki \ -a $*-o.afm -e $(srcdir)/$(encoding).afm \ -t $(srcdir)/$(targetEncoding).afm %-o.ps: ogonki.enc composeglyphs.in %-c.afm @fontname=`grep "$* " $(srcdir)/fontname.dat \ | sed 's/^.* //'`; \ echo "Working on $$fontname-Ogonki ($*-o)..."; \ $(PERL) ./composeglyphs -i $(srcdir)/$*.afm -c $(srcdir)/$*-c.afm \ -o $(srcdir)/$*-o.ps -n $$fontname-Ogonki \ -a $*-o.afm -e $(srcdir)/$(encoding).afm \ -t $(srcdir)/$(targetEncoding).afm # # We want to distribute the product of composeglyphs too, avoiding # perl as a requirement # EXTRA_DIST = README VERSION \ adobe.enc ogonki.enc adobe.enc \ $(PSPROGS) fontname.dat \ $(ORIGINAL_ENCODINGS_AFMS) $(ORIGINAL_AFMS) \ $(ORIGINAL_COMP_FONTS_AFMS) \ $(CREATED_FONTS) $(CREATED_AFMS) $(ENCODINGS_VECTORS) DISTCLEANFILES = $(CREATED_PFAS) MAINTAINERCLEANFILES = $(CREATED_FONTS) $(CREATED_FONTS) $(CREATED_AFMS) ogonkify: ogonkify.in # Don't add $(srcdir) to ogonkify.in: it's built by configure sed -e "s#@LIBDIR@#$(ogonkifydir)#g" ogonkify.in > ogonkify-t chmod +x ogonkify-t mv ogonkify-t ogonkify # # Suffix rules # %.enc: %.afm composeglyphs.in @echo "Creating $* encoding vector..." $(PERL) ./composeglyphs -e $< -E $*.enc %.pfa: %.ps ogonki.enc adobe.enc compose.ps @cat $(srcdir)/${encoding}.enc \ $(srcdir)/${targetEncoding}.enc \ $(srcdir)/compose.ps \ $(srcdir)/$*.ps > $@.tmp @mv $@.tmp $@ loc: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/Makefile.in��������������������������������������������������������������������0000644�0000000�0000000�00000104040�14424520614�013235� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = composeglyphs ogonkify.in CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(afmdir)" \ "$(DESTDIR)$(fontsdir)" "$(DESTDIR)$(ogonkifydir)" SCRIPTS = $(bin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(afm_DATA) $(fonts_DATA) $(ogonkify_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/composeglyphs.in \ $(srcdir)/ogonkify.in.in $(top_srcdir)/../build-aux/compile \ $(top_srcdir)/../build-aux/install-sh \ $(top_srcdir)/../build-aux/missing ../build-aux/ar-lib \ ../build-aux/compile ../build-aux/config.guess \ ../build-aux/config.rpath ../build-aux/config.sub \ ../build-aux/depcomp ../build-aux/install-sh \ ../build-aux/ltmain.sh ../build-aux/mdate-sh \ ../build-aux/missing ../build-aux/texinfo.tex \ ../build-aux/ylwrap README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" GZIP_ENV = --best DIST_ARCHIVES = $(distdir).tar.bz2 DIST_TARGETS = dist-bzip2 # Exists only to be overridden by the user if desired. AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ IBMFONTS = @IBMFONTS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = doc m4 CLEANFILES = $(bin_SCRIPTS) afmdir = $(pkgdatadir)/afm fontsdir = $(pkgdatadir)/fonts ogonkifydir = $(pkgdatadir) SUFFIXES = .enc .ps .pfa .afm encoding = ogonki targetEncoding = adobe ORIGINAL_ENCODINGS_AFMS = \ ascii.afm adobe.afm latin1.afm latin2.afm latin3.afm latin4.afm \ latin5.afm latin6.afm latin7.afm latin9.afm cp1250.afm ogonki.afm \ mac.afm ibmpc.afm hp.afm ENCODINGS_VECTORS = \ ascii.enc adobe.enc latin1.enc latin2.enc latin3.enc latin4.enc \ latin5.enc latin6.enc latin7.enc latin9.enc cp1250.enc ogonki.enc \ mac.enc ibmpc.enc hp.enc ORIGINAL_AFMS = \ pcrr.afm pcrro.afm pcrb.afm pcrbo.afm \ ptmr.afm ptmri.afm ptmb.afm ptmbi.afm \ phvr.afm phvro.afm phvb.afm phvbo.afm ORIGINAL_COMP_FONTS_AFMS = \ pcrr-c.afm pcrro-c.afm pcrb-c.afm pcrbo-c.afm \ ptmr-c.afm ptmri-c.afm ptmb-c.afm ptmbi-c.afm \ phvr-c.afm phvro-c.afm phvb-c.afm phvbo-c.afm CREATED_AFMS = \ pcrr-o.afm pcrro-o.afm pcrb-o.afm pcrbo-o.afm \ ptmr-o.afm ptmri-o.afm ptmb-o.afm ptmbi-o.afm \ phvr-o.afm phvro-o.afm phvb-o.afm phvbo-o.afm CREATED_FONTS = \ pcrr-o.ps pcrro-o.ps pcrb-o.ps pcrbo-o.ps \ ptmr-o.ps ptmri-o.ps ptmb-o.ps ptmbi-o.ps \ phvr-o.ps phvro-o.ps phvb-o.ps phvbo-o.ps CREATED_PFAS = \ pcrr-o.pfa pcrro-o.pfa pcrb-o.pfa pcrbo-o.pfa \ ptmr-o.pfa ptmri-o.pfa ptmb-o.pfa ptmbi-o.pfa \ phvr-o.pfa phvro-o.pfa phvb-o.pfa phvbo-o.pfa PSPROGS = allchars.ps compose.ps helper.ps printenc.ps # # What gets installed # @EXTENSIONS_TRUE@bin_SCRIPTS = ogonkify composeglyphs @EXTENSIONS_TRUE@ogonkify_DATA = $(ENCODINGS_VECTORS) $(CREATED_FONTS) $(PSPROGS) README @EXTENSIONS_TRUE@afm_DATA = $(CREATED_AFMS) @EXTENSIONS_TRUE@fonts_DATA = $(CREATED_PFAS) # # We want to distribute the product of composeglyphs too, avoiding # perl as a requirement # EXTRA_DIST = README VERSION \ adobe.enc ogonki.enc adobe.enc \ $(PSPROGS) fontname.dat \ $(ORIGINAL_ENCODINGS_AFMS) $(ORIGINAL_AFMS) \ $(ORIGINAL_COMP_FONTS_AFMS) \ $(CREATED_FONTS) $(CREATED_AFMS) $(ENCODINGS_VECTORS) DISTCLEANFILES = $(CREATED_PFAS) MAINTAINERCLEANFILES = $(CREATED_FONTS) $(CREATED_FONTS) $(CREATED_AFMS) all: all-recursive .SUFFIXES: .SUFFIXES: .enc .ps .pfa .afm am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): composeglyphs: $(top_builddir)/config.status $(srcdir)/composeglyphs.in cd $(top_builddir) && $(SHELL) ./config.status $@ ogonkify.in: $(top_builddir)/config.status $(srcdir)/ogonkify.in.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) install-afmDATA: $(afm_DATA) @$(NORMAL_INSTALL) @list='$(afm_DATA)'; test -n "$(afmdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(afmdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(afmdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(afmdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(afmdir)" || exit $$?; \ done uninstall-afmDATA: @$(NORMAL_UNINSTALL) @list='$(afm_DATA)'; test -n "$(afmdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(afmdir)'; $(am__uninstall_files_from_dir) install-fontsDATA: $(fonts_DATA) @$(NORMAL_INSTALL) @list='$(fonts_DATA)'; test -n "$(fontsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(fontsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(fontsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(fontsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(fontsdir)" || exit $$?; \ done uninstall-fontsDATA: @$(NORMAL_UNINSTALL) @list='$(fonts_DATA)'; test -n "$(fontsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(fontsdir)'; $(am__uninstall_files_from_dir) install-ogonkifyDATA: $(ogonkify_DATA) @$(NORMAL_INSTALL) @list='$(ogonkify_DATA)'; test -n "$(ogonkifydir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(ogonkifydir)'"; \ $(MKDIR_P) "$(DESTDIR)$(ogonkifydir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ogonkifydir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(ogonkifydir)" || exit $$?; \ done uninstall-ogonkifyDATA: @$(NORMAL_UNINSTALL) @list='$(ogonkify_DATA)'; test -n "$(ogonkifydir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(ogonkifydir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-zstd: distdir tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ *.tar.zst*) \ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(afmdir)" "$(DESTDIR)$(fontsdir)" "$(DESTDIR)$(ogonkifydir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-afmDATA install-fontsDATA \ install-ogonkifyDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-afmDATA uninstall-binSCRIPTS \ uninstall-fontsDATA uninstall-ogonkifyDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ dist-zstd distcheck distclean distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-afmDATA install-am \ install-binSCRIPTS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-fontsDATA \ install-html install-html-am install-info install-info-am \ install-man install-ogonkifyDATA install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-afmDATA \ uninstall-am uninstall-binSCRIPTS uninstall-fontsDATA \ uninstall-ogonkifyDATA .PRECIOUS: Makefile # # The afm's and ps's for composite fonts # %-o.afm: ogonki.enc composeglyphs.in %-c.afm @fontname=`grep "$* " $(srcdir)/fontname.dat \ | sed 's/^.* //'`; \ echo "Working on $$fontname-Ogonki ($*-o)..."; \ $(PERL) ./composeglyphs -i $(srcdir)/$*.afm -c $(srcdir)/$*-c.afm \ -o $(srcdir)/$*-o.ps -n $$fontname-Ogonki \ -a $*-o.afm -e $(srcdir)/$(encoding).afm \ -t $(srcdir)/$(targetEncoding).afm %-o.ps: ogonki.enc composeglyphs.in %-c.afm @fontname=`grep "$* " $(srcdir)/fontname.dat \ | sed 's/^.* //'`; \ echo "Working on $$fontname-Ogonki ($*-o)..."; \ $(PERL) ./composeglyphs -i $(srcdir)/$*.afm -c $(srcdir)/$*-c.afm \ -o $(srcdir)/$*-o.ps -n $$fontname-Ogonki \ -a $*-o.afm -e $(srcdir)/$(encoding).afm \ -t $(srcdir)/$(targetEncoding).afm ogonkify: ogonkify.in # Don't add $(srcdir) to ogonkify.in: it's built by configure sed -e "s#@LIBDIR@#$(ogonkifydir)#g" ogonkify.in > ogonkify-t chmod +x ogonkify-t mv ogonkify-t ogonkify # # Suffix rules # %.enc: %.afm composeglyphs.in @echo "Creating $* encoding vector..." $(PERL) ./composeglyphs -e $< -E $*.enc %.pfa: %.ps ogonki.enc adobe.enc compose.ps @cat $(srcdir)/${encoding}.enc \ $(srcdir)/${targetEncoding}.enc \ $(srcdir)/compose.ps \ $(srcdir)/$*.ps > $@.tmp @mv $@.tmp $@ loc: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/README�������������������������������������������������������������������������0000644�0000000�0000000�00000001646�14251171614�012060� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Composite fonts and Ogonkify This package contains two programs: a utility for creating composite fonts in a semi-automatic fashion, and a program for converting PS output -- notably Netscape and Mosaic output -- to use these fonts. It has been tested with Netscape Navigator 1.1N, 2.02, 3.0 beta 4, 3.01 and 4.04 and Mosaic 2.7b1, all of those under Unix. Installation instructions are provided in the file `INSTALL'. Extensive documentation is provided in the `doc/' subdirectory. The interesting files are: doc/ogonkify.man the ogonkify(1) man page doc/ogonkify.info the full manual, including installation instructions and the license Both of these can be treated like plain text files, although the latter is really an Info file (best viewed in an Info viewer, such as the one in GNU Emacs). J. Chroboczek ������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/VERSION������������������������������������������������������������������������0000644�0000000�0000000�00000000121�14233473143�012235� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This is the version of `ogonkify' distributed as of Fri May 21 14:56:35 BST 1999 �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/aclocal.m4���������������������������������������������������������������������0000644�0000000�0000000�00000122512�14424520613�013033� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# generated automatically by aclocal 1.16.5 -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, [m4_warning([this file was generated for autoconf 2.71. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.16.5], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.16.5])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. AS_CASE([$CONFIG_FILES], [*\'*], [eval set x "$CONFIG_FILES"], [*], [set x $CONFIG_FILES]) shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`AS_DIRNAME(["$am_mf"])` am_filepart=`AS_BASENAME(["$am_mf"])` AM_RUN_LOG([cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles]) || am_rc=$? done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE="gmake" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi AS_UNSET([am_dirpart]) AS_UNSET([am_filepart]) AS_UNSET([am_mf]) AS_UNSET([am_rc]) rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking is enabled. # This creates each '.Po' and '.Plo' makefile fragment that we'll need in # order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl m4_ifdef([_$0_ALREADY_INIT], [m4_fatal([$0 expanded multiple times ]m4_defn([_$0_ALREADY_INIT]))], [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) # Variables for tags utilities; see am/tags.am if test -z "$CTAGS"; then CTAGS=ctags fi AC_SUBST([CTAGS]) if test -z "$ETAGS"; then ETAGS=etags fi AC_SUBST([ETAGS]) if test -z "$CSCOPE"; then CSCOPE=cscope fi AC_SUBST([CSCOPE]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: <https://www.gnu.org/software/coreutils/>. If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check whether make has an 'include' directive that can support all # the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) AS_CASE([$?:`cat confinc.out 2>/dev/null`], ['0:this is the am__doit target'], [AS_CASE([$s], [BSD], [am__include='.include' am__quote='"'], [am__include='include' am__quote=''])]) if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* AC_MSG_RESULT([${_am_result}]) AC_SUBST([am__include])]) AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar <conftest.tar]) AM_RUN_LOG([cat conftest.dir/file]) grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/adobe.afm����������������������������������������������������������������������0000644�0000000�0000000�00000005445�14233473143�012742� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Adobe standard encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme StandardEncoding StartCharMetrics 256 C 32 ; N space ; C 33 ; N exclam ; C 34 ; N quotedbl ; C 35 ; N numbersign ; C 36 ; N dollar ; C 37 ; N percent ; C 38 ; N ampersand ; C 39 ; N quoteright ; C 40 ; N parenleft ; C 41 ; N parenright ; C 42 ; N asterisk ; C 43 ; N plus ; C 44 ; N comma ; C 45 ; N hyphen ; C 46 ; N period ; C 47 ; N slash ; C 48 ; N zero ; C 49 ; N one ; C 50 ; N two ; C 51 ; N three ; C 52 ; N four ; C 53 ; N five ; C 54 ; N six ; C 55 ; N seven ; C 56 ; N eight ; C 57 ; N nine ; C 58 ; N colon ; C 59 ; N semicolon ; C 60 ; N less ; C 61 ; N equal ; C 62 ; N greater ; C 63 ; N question ; C 64 ; N at ; C 65 ; N A ; C 66 ; N B ; C 67 ; N C ; C 68 ; N D ; C 69 ; N E ; C 70 ; N F ; C 71 ; N G ; C 72 ; N H ; C 73 ; N I ; C 74 ; N J ; C 75 ; N K ; C 76 ; N L ; C 77 ; N M ; C 78 ; N N ; C 79 ; N O ; C 80 ; N P ; C 81 ; N Q ; C 82 ; N R ; C 83 ; N S ; C 84 ; N T ; C 85 ; N U ; C 86 ; N V ; C 87 ; N W ; C 88 ; N X ; C 89 ; N Y ; C 90 ; N Z ; C 91 ; N bracketleft ; C 92 ; N backslash ; C 93 ; N bracketright ; C 94 ; N asciicircum ; C 95 ; N underscore ; C 96 ; N quoteleft ; C 97 ; N a ; C 98 ; N b ; C 99 ; N c ; C 100 ; N d ; C 101 ; N e ; C 102 ; N f ; C 103 ; N g ; C 104 ; N h ; C 105 ; N i ; C 106 ; N j ; C 107 ; N k ; C 108 ; N l ; C 109 ; N m ; C 110 ; N n ; C 111 ; N o ; C 112 ; N p ; C 113 ; N q ; C 114 ; N r ; C 115 ; N s ; C 116 ; N t ; C 117 ; N u ; C 118 ; N v ; C 119 ; N w ; C 120 ; N x ; C 121 ; N y ; C 122 ; N z ; C 123 ; N braceleft ; C 124 ; N bar ; C 125 ; N braceright ; C 126 ; N asciitilde ; C 161 ; N exclamdown ; C 162 ; N cent ; C 163 ; N sterling ; C 164 ; N fraction ; C 165 ; N yen ; C 166 ; N florin ; C 167 ; N section ; C 168 ; N currency ; C 169 ; N quotesingle ; C 170 ; N quotedblleft ; C 171 ; N guillemotleft ; C 172 ; N guilsinglleft ; C 173 ; N guilsinglright ; C 174 ; N fi ; C 175 ; N fl ; C 177 ; N endash ; C 178 ; N dagger ; C 179 ; N daggerdbl ; C 180 ; N periodcentered ; C 182 ; N paragraph ; C 183 ; N bullet ; C 184 ; N quotesinglbase ; C 185 ; N quotedblbase ; C 186 ; N quotedblright ; C 187 ; N guillemotright ; C 188 ; WX 1000 ; N ellipsis ; C 189 ; WX 1000 ; N perthousand ; C 191 ; N questiondown ; C 193 ; N grave ; C 194 ; N acute ; C 195 ; N circumflex ; C 196 ; N tilde ; C 197 ; N macron ; C 198 ; N breve ; C 199 ; N dotaccent ; C 200 ; N dieresis ; C 202 ; N ring ; C 203 ; N cedilla ; C 205 ; N hungarumlaut ; C 206 ; N ogonek ; C 207 ; N caron ; C 208 ; WX 1000 ; N emdash ; C 225 ; N AE ; C 227 ; N ordfeminine ; C 232 ; N Lslash ; C 233 ; N Oslash ; C 234 ; N OE ; C 235 ; N ordmasculine ; C 241 ; N ae ; C 245 ; N dotlessi ; C 248 ; N lslash ; C 249 ; N oslash ; C 250 ; N oe ; C 251 ; N germandbls ; EndCharMetrics EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/adobe.enc����������������������������������������������������������������������0000644�0000000�0000000�00000004257�14374753737�012764� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding StandardEncoding /StandardEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section /currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /.notdef /questiondown % 300 /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef ] def %%EndResource �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/allchars.ps��������������������������������������������������������������������0000644�0000000�0000000�00000001451�14233473143�013331� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! /PR { gsave show grestore 0 baseline neg rmoveto } def /doit { /baseline exch def (dok\261d DOK\241D pami\352tasz PAMI\312TASZ) PR (\263awka \243AWKA na\346pa\346 NA\306PA\306 ga\266nie GA\246NIE ki\266\346 KI\246\306 ) PR (mr\363wka MR\323WKA wska\274nik WSKA\254NIK mo\277na MO\257NA) PR } def 20 720 moveto /Times-Roman-Ogonki findfont 20 scalefont setfont 20 doit /Times-Bold-Ogonki findfont 20 scalefont setfont 20 doit /Times-Italic-Ogonki findfont 20 scalefont setfont 20 doit /Times-BoldItalic-Ogonki findfont 20 scalefont setfont 20 doit /Courier-Ogonki findfont 20 scalefont setfont 20 doit /Courier-Bold-Ogonki findfont 20 scalefont setfont 20 doit /Courier-Oblique-Ogonki findfont 20 scalefont setfont 20 doit /Courier-BoldOblique-Ogonki findfont 20 scalefont setfont 20 doit showpage �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ascii.afm����������������������������������������������������������������������0000644�0000000�0000000�00000003755�14233473143�012762� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ASCII encoding Comment This is not strictly an AFM file. EncodingScheme ASCIIEncoding StartCharMetrics 128 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N tilde C 127 ; N .notdef EndCharMetrics EndFontMetrics �������������������a2ps-4.15.5/ogonkify/ascii.enc����������������������������������������������������������������������0000644�0000000�0000000�00000004170�14233473143�012754� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ASCIIEncoding /ASCIIEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 300 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndResource ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/compose.ps���������������������������������������������������������������������0000644�0000000�0000000�00000013700�14233473143�013205� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Add composite (i.e. accented) characters to any font % By J. Chroboczek <jec@dcs.ed.ac.uk> % % -- code follows this line -- %%BeginResource: procset compose 0.8 0 % Copyright (c) 1996-1999 by J. Chroboczek % This code may be distributed under the terms of the % GNU Public License, either version 3 of the license, or (at your % option) any later version. /makeCompositeDict 20 dict def makeCompositeDict begin /nameUnique { % name nameUnique namexxxxxx dup length exch 1 index string cvs % length (name) 1 index 12 add string dup % length (name) (...) (...) 3 2 roll 0 exch putinterval % length (name...) dup 3 2 roll rand 12 string cvs putinterval } bind def /doMakeComposite { /compositeChars exch def /targetEncoding exch def /baseEncoding exch def /newfontname exch def /oldfontname exch def /oldfont oldfontname findfont def /newfont 20 dict def /oldFontMatrix oldfont /FontMatrix get def /oldFontBBox oldfont /FontBBox get cvlit def /oldfontcopy oldfont length dict def newfont begin /FontType 3 def /PaintType 0 def % not used /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox [ oldFontBBox 0 get oldFontBBox 1 get oldFontMatrix transform [1000 0 0 1000 0 0] transform oldFontBBox 2 get oldFontBBox 3 get oldFontMatrix transform [1000 0 0 1000 0 0] transform ] cvx def /StrokeWidth 0 def % not used /Encoding targetEncoding def /Decoding 256 dict def % invert base encoding vector Decoding begin 0 1 255 { dup baseEncoding exch get exch def } bind for end newfont /compositeChars compositeChars put /FontName newfontname def % make a copy of the original font, reencoding it oldfont oldfontcopy begin {1 index /FID ne {def} {pop pop} ifelse } bind forall end oldfontcopy /Encoding baseEncoding put oldfontname nameUnique oldfontcopy definefont 1000 scalefont /OriginalFont exch def /BuildChar % newfont n BuildChar - { exch begin % n /OriginalFont load setfont /Encoding load exch get % glyphName /compositeChars load dup 2 index known % glyphName compositeChars known-p { 1 index get % glyphName [ 65 x y 129 ] dup 0 get ( ) dup % glyphName [...] 65 ( ) ( ) 0 3 index put % glyphName [...] 65 (A) dup stringwidth setcharwidth 0 0 moveto show pop % glyphName [...] dup 1 get 1 index 2 get % glyphName [...] x y moveto % glyphName [...] 3 get ( ) dup 3 2 roll % glyphName ( ) ( ) 129 0 exch put % glyphName (') show % glyphName } { pop /Decoding load % glyphName Decoding dup 2 index known % glyphName Decoding known-p { exch get } { pop pop 0 } ifelse % n' ( ) dup 0 3 index put dup % n' (A) (A) stringwidth setcharwidth 0 0 moveto show % n' } ifelse pop end } bind def end % newfont newfontname newfont definefont pop } def % doMakeComposite /fillEuro { % w h -- gsave exch 1000 div exch 1000 div scale 955.852 232.172 moveto 904.495 180.815 lineto 829.454 117.848 734.626 83.333 636.667 83.333 curveto 406.667 83.333 220 270 220 500 curveto 220 730 406.667 916.667 636.667 916.667 curveto 759.831 916.667 876.684 862.177 955.852 767.828 curveto 988.474 855.291 lineto 894.851 947.996 768.422 1000 636.667 1000 curveto 360.667 1000 136.667 776 136.667 500 curveto 136.667 224 360.667 0 636.667 0 curveto 753.23 0 866.13 40.725 955.852 115.135 curveto closepath fill 869.037 541.667 moveto 901.025 625 lineto 31.989 625 lineto 0 541.667 lineto closepath fill 805.059 375 moveto 837.048 458.333 lineto 31.989 458.333 lineto 0 375 lineto closepath fill grestore } bind def /makeEuroCharstring { % w h -- charstring [ /pop cvx % w h mark pop 3 index 0 0 0 % w h mark pop w 0 0 0 7 index 7 index /setcachedevice cvx % w h mark pop w 0 0 0 w h setcachedevice 10 index 10 index /fillEuro load /exec cvx ] cvx bind 3 1 roll pop pop } def /doEurifyFont { % oldname newname -- exch findfont dup dup % newname dict dict dict /FontMatrix get matrix invertmatrix % newname dict dict m {} forall pop pop [ 5 1 roll 0 0] makefont setfont % newnamedict 0 0 moveto (5) stringwidth pop % newname dict w (M) false charpath pathbbox 4 1 roll pop pop pop % newnamedict w h 3 2 roll % newname w h dict dup length dict dup 3 1 roll begin % newname w h newdict {1 index /FID ne {def} {pop pop} ifelse} forall CharStrings dup length 1 add dict dup 3 1 roll begin % newnamew h newdict newdict' {def} forall /Euro % newname w h newdict newdict' /Euro 4 index 4 index makeEuroCharstring def end % newname w h newdict newdict' /CharStrings exch def end 3 1 roll pop pop % newname dict definefont pop } bind def end % makeCompositeDict % oldfontname newfontname baseEncoding targetEncoding compositeChars -- /makeComposite { makeCompositeDict begin doMakeComposite end } bind def % oldfontname newfontname /eurifyFont { makeCompositeDict begin doEurifyFont end } bind def %%EndResource ����������������������������������������������������������������a2ps-4.15.5/ogonkify/composeglyphs.in���������������������������������������������������������������0000644�0000000�0000000�00000033264�14233473143�014427� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!@PERL@ # Create a composite font program. # By J. Chroboczek <jec at dcs.ed.ac.uk> # # Copyright (c) 1996-1999 by J. Chroboczek # This code may be distributed under the terms of the # GNU Public License, either version 3 of the license, or (at your # option) any later version. # Time-stamp: <99/05/14 02:37:45 jec> $PROGNAME='composeglyphs'; $VERSION='v. 0.7.10 by J. Chroboczek'; sub usage { local($oldfh)=select(STDERR); print <<"ALAMAKOTA"; $PROGNAME $VERSION $PROGNAME -e<encoding.afm> -E<encoding.ps> $PROGNAME -i<input.afm> -o<output.ps> -c<composite.afm> -n<newname> -e<base_encoding.afm> -t<target_encoding.afm> -a<output.afm> -C<output.afm.c> ALAMAKOTA select($oldfh); } sub min { local($x1,$x2) = @_; if($x1<=$x2) { return $x1; } else { return $x2; } } sub max { local($x1,$x2) = @_; if($x1>=$x2) { return $x1; } else { return $x2; } } # A finite state automaton for parsing AFMs sub readAFM { $fontName=('UnknownFont'); local($afmname,$dochars,$doencoding,$docomposites)=@_; open(AFM,$afmname); $_=<AFM>; if (! (/^StartFontMetrics.*/)) { die "$afmname is not an Adobe Font Metrics file" ; } header: while (<AFM>) { if (/^FontName *(.*)$/) { $fontName=$1 ; } elsif (/^EncodingScheme *(.*)$/ && $doencoding) { if ($doencoding eq 'target') { $encodingName=$1 ; } else { $baseEncodingName=$1; } } elsif (/^FontBBox *(-?[0-9]*) *(-?[0-9]*) *(-?[0-9]*) *(-?[0-9]*)/) { @fontBBox=($1,$2,$3,$4); } elsif (/^Start/) { reset ; last header ; } } afmloop: while (TRUE) { garbage: while (TRUE) { if(/^Start([a-zA-Z0-9]*).*/) { $where=$1; last garbage; } elsif(/^EndFontMetrics.*/) { last afmloop; } $_=<AFM>; } if ($where eq 'CharMetrics') { while(<AFM>) { if (/^EndCharMetrics.*/) { next afmloop ; } $characterName='Unknown'; $characterCode=-1 ; @_=split(/ *; */); @bbox=(); while($_ = $_[0]) { shift @_ ; if(/^C *(-?[0-9]*)/) { $characterCode=$1 ; } elsif(/^CH *([0-9a-fA-F]*)/) { $characterCode=hex($1) ; } elsif(/^N *([a-zA-Z0-9\.]*)/) { $characterName=$1 ; } elsif(/^WX *(-?[0-9\.]*)/) { $width=$1; } elsif(/^B *(-?[0-9]*) *(-?[0-9]*) *(-?[0-9]*) *(-?[0-9]*)/) { @bbox=($1,$2,$3,$4); } } if($dochars && !defined($characters{$characterName})) { $characters{$characterName}=$characterName; $characterIndex[$#characterIndex+1]=$characterName; $widths{$characterName}=$width; if($#bbox eq 3) { $BBox{$characterName}=$characterName; $BBox{$characterName,0}=$bbox[0]; $BBox{$characterName,1}=$bbox[1]; $BBox{$characterName,2}=$bbox[2]; $BBox{$characterName,3}=$bbox[3]; } } if($doencoding && ($characterCode>=0) && ($characterCode<=255)) { if($doencoding eq 'base') { $decoding{$characterName}=$characterCode; $baseEncoding[$characterCode]=$characterName; } elsif($doencoding eq 'target') { $encoding[$characterCode]=$characterName; } } } } if ($where eq 'KernData') { while(<AFM>) { if (/^EndKernData/) { next afmloop ; } } } if ($where eq 'Composites') { compositeloop: while(<AFM>) { if (/^EndComposites/) { next afmloop ; } if (!$docomposites) { next; } $characterName='Unknown'; $components=0; $currentComponent=0 ; @_=split(/\s*;\s*/); while($#_ >= 0) { $_=$_[0]; shift @_; if(/^CC *([a-zA-Z0-9\.]*) *([0-9]*)/) { $characterName=$1; if(defined($composites{$characterName})) { next compositeloop; } $components=$2; $compositeIndex[$#compositeIndex+1]=$characterName; $composites{$characterName}=$components; } elsif(/^PCC *([a-zA-Z0-9.]*) *(-?[0-9]*) *(-?[0-9]*)/) { $composites{$characterName,$currentComponent}=$1; $composites{$characterName,$currentComponent,'dx'}=$2; $composites{$characterName,$currentComponent,'dy'}=$3; $currentComponent=$currentComponent+1; } } if($components!=$currentComponent) { die "Composite information inconsistent for character $characterName font $fontName"; } } } } } # sub readSidebearings { # local($filename)=$_; # open(SB,$filename); # while(<SB>) { # if (/^%/) { next ; } # elsif (/ */) { next ; } # elsif (/^ *([-_$a-zA-Z0-9]*) *([-_$a-zA-Z0-9]*)* ([0-9]*) *$/) { # $sidebearings{$1,$2}=$3; # } else { # die "Error reading sidebearings data"; # } # } # } sub printEncoding { print "%!\n"; print "% Automatically generated by the Ogonkify package\n"; print "% Do not modify\n"; print "% -- code follows this line --\n"; print "%%BeginResource: encoding $baseEncodingName\n"; print "/$baseEncodingName [\n"; for($i=0; $i<256; $i++) { if($i!=0 && $i%64==0) { printf "%% %o\n", $i; } print "/$baseEncoding[$i]"; if($i%8==7) { print "\n"; } else { print " "; } } print "] def\n"; print "%%EndResource\n"; } sub printCAFM { $shortFontName=$shortnames{$fontName}; if(!$shortFontName) { $shortFontName=$fontName; } $shortEncodingName=$shortnames{$baseEncodingName}; if(!$shortEncodingName) { $shortEncodingName=$baseEncodingName; } print "/* Automatically generated by the Ogonkify package */\n"; print "/* Do not modify */\n"; print "/* -- code follows this line -- */\n"; printf "unsigned int %s_%s_WX [256] = {\n ", $shortEncodingName,$shortFontName; for($i=0; $i<256; $i++) { if(defined($w=$widths{$baseEncoding[$i]})) { printf "%d",$w; } else { print "0"; } if($i<255) { if($i%8==7) { print ",\n "; } else { print ", "; } } } print "\n};\n\n"; } sub printAFM { print <<"ALAMAKOTA"; StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName $newName EncodingScheme $encodingName FullName $newName Composite font FontBBox $newFontBBox[0] $newFontBBox[1] $newFontBBox[2] $newFontBBox[3] ALAMAKOTA $numChars=0; for($i=0; $i<=$#characterIndex; $i++) { $charname=$characterIndex[$i]; if($characters{$charname} && ($decoding{$charname} || $characters{$charname} eq 'GENERATEDCOMPOSITE')) { $numChars++; } } print "StartCharMetrics $numChars\n"; for($i=0;$i<256;$i++) { $charname=$encoding[$i]; if($characters{$charname} && ($decoding{$charname} || $characters{$charname} eq 'GENERATEDCOMPOSITE')) { printf "C %d ; WX %d ; N %s ;",$i,$widths{$encoding[$i]},$encoding[$i]; if($BBox{$encoding[$i]}) { printf " B %d %d %d %d ;\n", $BBox{$encoding[$i],0}, $BBox{$encoding[$i],1}, $BBox{$encoding[$i],2}, $BBox{$encoding[$i],3}; } else { print "\n"; } $characters{$charname}='DONE'; } } for($i=0; $i<=$#characterIndex; $i++) { $charname=$characterIndex[$i]; if($characters{$charname} && $characters{$charname} ne 'DONE' && ($decoding{$charname} || $characters{$charname} eq 'GENERATEDCOMPOSITE')) { printf "C %d ; WX %d ; N %s ;",-1, $widths{$characterIndex[$i]},$characterIndex[$i]; if($BBox{$characterIndex[$i]}) { printf " B %d %d %d %d ;\n", $BBox{$characterIndex[$i],0}, $BBox{$characterIndex[$i],1}, $BBox{$characterIndex[$i],2}, $BBox{$characterIndex[$i],3}; } else { print "\n"; } } } print "EndCharMetrics\n"; print "EndFontMetrics\n"; } sub printComposite { if($baseEncoding[0] ne '.notdef') { warn "Character 0 is not '.notdef' but '$baseEncoding[0]'; proceeding anyway"; } # just get a rough upper approximation $entries=0; for($i=0; $i<=$#compositeIndex; $i++) { $charName=$compositeIndex[$i]; if(!($characters{$charName} && $decoding{$charName}) && $composites{$charName} == 2 && $decoding{$composites{$charName,0}} && $decoding{$composites{$charName,1}}) { $entries++; } } print <<"ALAMAKOTA"; %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font $newName /$oldName /$newName $baseEncodingName $encodingName $entries dict ALAMAKOTA for($i=0; $i<=$#compositeIndex; $i++) { $charName=$compositeIndex[$i]; if(!($characters{$charName} && $decoding{$charName}) && $composites{$charName}) { if($composites{$charName}==2 && ($dx=$composites{$charName,0,'dx'})==0 && ($dy=$composites{$charName,0,'dy'})==0) { $dx=$composites{$charName,1,'dx'}; $dy=$composites{$charName,1,'dy'}; if(($C1=$decoding{$CN1=$composites{$charName,0}}) && ($C2=$decoding{$CN2=$composites{$charName,1}})) { if(!defined($characters{$charName})) { $characterIndex[$#characterIndex+1]=$charName; } $characters{$charName}='GENERATEDCOMPOSITE'; $widths{$charName}=$widths{$CN1}; $BBox{$charName}='GENERATEDCOMPOSITE'; $BBox{$charName,0}=&min($BBox{$CN1,0},$BBox{$CN2,0}+$dx); $BBox{$charName,1}=&min($BBox{$CN1,1},$BBox{$CN2,1}+$dy); $BBox{$charName,2}=&max($BBox{$CN1,2},$BBox{$CN2,2}+$dx); $BBox{$charName,3}=&max($BBox{$CN1,3},$BBox{$CN2,3}+$dy); printf "dup /$charName [%d %d %d %d] put\n", $C1, $dx, $dy, $C2; } else { warn "Composition for $charName uses char not in base encoding -- not used\n"; } } else { warn "Composition for $charName not in the right form -- not used\n"; } } } print "makeComposite\n%%EndResource\n\n"; } # Main program %shortnames=('Times-Roman','Times', 'Times-Roman-Ogonki','Times', 'Times-Bold', 'Times_Bold', 'Times-Bold-Ogonki', 'Times_Bold', 'Times-Italic', 'Times_Italic', 'Times-Italic-Ogonki', 'Times_Italic', 'Times-BoldItalic', 'Times_BoldItalic', 'Times-BoldItalic-Ogonki', 'Times_BoldItalic', 'Courier-Ogonki','Courier', 'Helvetica-Ogonki','Helvetica', 'Helvetica-Bold','Helvetica_Bold', 'Helvetica-Bold-Ogonki','Helvetica_Bold', 'Helvetica-Oblique','Helvetica_Oblique', 'Helvetica-Oblique-Ogonki','Helvetica_Oblique', 'Helvetica-BoldOblique','Helvetica_BoldOblique', 'Helvetica-BoldOblique-Ogonki','Helvetica_BoldOblique', 'ASCIIEncoding', 'ascii', 'ISOLatin1Encoding','latin1', 'ISOLatin2Encoding','latin2', 'ISOLatin3Encoding','latin3', 'ISOLatin4Encoding','latin4', 'ISOLatin5Encoding','latin5', 'ISOLatin6Encoding','latin6', 'ISOLatin7Encoding','latin7', 'CP1250Encoding','cp1250', 'MacintoshEncoding', 'mac', 'IBMPCEncoding', 'ibmpc', 'HPRomanEncoding', 'hp'); # %sidebearings=() ; $encodingName='UnknownEncoding' ; $#encoding=256; for($i=0; $i<256; $i++) { $encoding[$i]='.notdef'; } $baseEncodingName='UnknownEncoding'; $#baseEncoding=256; for($i=0; $i<256; $i++) { $baseEncoding[$i]='.notdef'; } %characters=(); @characterIndex=(); %decoding=(); @compositeIndex=(); %composites=(); %widths=(); %BBox=(); $compName='UnknownFont'; $baseEncodingAFM='ogonki.afm'; $encodingAFM='latin2.afm'; $oldAFM='Times-Roman.afm'; $compFile='Times-Roman-Ogonki.ps'; while($_ = $ARGV[0], /^-/) { shift; if(/^--$/) {last;} elsif (/^-i$/) { $oldAFM=$ARGV[0]; shift; } elsif (/^-i(.*)/) { $oldAFM=$1; } elsif (/^-o$/) { $compFile=$ARGV[0]; shift; } elsif (/^-o(.*)/) { $compFile=$1; } elsif (/^-c$/) { $compAFM=$ARGV[0]; shift; } elsif (/^-c(.*)/) { $compAFM=$1; } elsif (/^-n$/) { $newName=$ARGV[0]; shift; } elsif (/^-n(.*)/) { $newName=$1; } elsif (/^-e$/) { $baseEncodingAFM=$ARGV[0]; shift; } elsif (/^-e(.*)/) { $baseEncodingAFM=$1; } elsif (/^-t$/) { $encodingAFM=$ARGV[0]; shift; } elsif (/^-t(.*)/) { $encodingAFM=$1; } elsif (/^-a$/) { $outputAFM=$ARGV[0]; shift; } elsif (/^-a(.*)/) { $outputAFM=$1; } elsif (/^-E$/) { $encodingFile=$ARGV[0]; shift; } elsif (/^-E(.*)/) { $encodingFile=$1; } elsif (/^-C$/) { $CAFMFile=$ARGV[0]; shift; } elsif (/^-C(.*)/) { $CAFMFile=$1; } else { &usage ; die "Quitting"; } } if($encodingFile) { # generating a PostScript encoding &readAFM($baseEncodingAFM,0,'base',0); open(ENCODING,'>' . $encodingFile); $oldfh = select(ENCODING); &printEncoding; select($oldfh); } elsif($CAFMFile) { # generating a CAFM file for a2ps &readAFM($baseEncodingAFM,0,'base',0); &readAFM($oldAFM,TRUE,0,0); if(!$widths{'.notdef'}) { $widths{'.notdef'}=0; } open(CAFM,'>' . $CAFMFile); $oldfh=select(CAFM); &printCAFM; select($oldfh); } else { # generating PS font programs &readAFM($baseEncodingAFM,0,'base',0); &readAFM($encodingAFM,0,'target',0); &readAFM($oldAFM,TRUE,0,TRUE); @newFontBBox=@fontBBox; $oldName=$fontName; if($compAFM) { &readAFM($compAFM,0,0,TRUE); $compName=$fontName; } if(!$newName) { $newName=$compName; } open(COMPOSITE,'>' . $compFile); $oldfh = select(COMPOSITE); &printComposite; if($outputAFM) { open(OUTAFM,'>' . $outputAFM); select(OUTAFM); &printAFM; } select($oldfh); } ### Local Variables: *** ### mode: perl *** ### End: *** ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/configure����������������������������������������������������������������������0000754�0000000�0000000�00000526740�14445132131�013111� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for Ogonkify 0.7.0. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 </dev/null exec 6>&1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Ogonkify' PACKAGE_TARNAME='ogonkify' PACKAGE_VERSION='0.7.0' PACKAGE_STRING='Ogonkify 0.7.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS IBMFONTS CPP XMKMF am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC PERL EXTENSIONS_FALSE EXTENSIONS_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V CSCOPE ETAGS CTAGS am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_extensions with_x enable_dependency_tracking ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS XMKMF CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Ogonkify 0.7.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/ogonkify] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Ogonkify 0.7.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --disable-extensions small footprint installation --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-x use the X Window System Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> LIBS libraries to pass to the linker, e.g. -l<library> CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> XMKMF Path to xmkmf, Makefile generator for X Window System CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Ogonkify configure 0.7.0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Ogonkify $as_me 0.7.0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include <stddef.h> #include <stdarg.h> struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated as an "x". The following induces an error, until -std is added to get proper ANSI mode. Curiously \x00 != x always comes out true, for an array size at least. It is necessary to write \x00 == 0 to get something that is true only with -std. */ int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) '\''x'\'' int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' // Does the compiler advertise C99 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif #include <stdbool.h> extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' // Does the compiler advertise C11 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " # Auxiliary files required by this configure script. ac_aux_files="compile missing install-sh" # Locations in which to look for auxiliary files. ac_aux_dir_candidates="${srcdir}/../build-aux" # Search for a directory containing all of the required auxiliary files, # $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. # If we don't find one directory that contains all the files we need, # we report the set of missing files from the *first* directory in # $ac_aux_dir_candidates and give up. ac_missing_aux_files="" ac_first_candidate=: printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in $ac_aux_dir_candidates do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 ac_aux_dir_found=yes ac_install_sh= for ac_aux in $ac_aux_files do # As a special case, if "install-sh" is required, that requirement # can be satisfied by any of "install-sh", "install.sh", or "shtool", # and $ac_install_sh is set appropriately for whichever one is found. if test x"$ac_aux" = x"install-sh" then if test -f "${as_dir}install-sh"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 ac_install_sh="${as_dir}install-sh -c" elif test -f "${as_dir}install.sh"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 ac_install_sh="${as_dir}install.sh -c" elif test -f "${as_dir}shtool"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 ac_install_sh="${as_dir}shtool install -c" else ac_aux_dir_found=no if $ac_first_candidate; then ac_missing_aux_files="${ac_missing_aux_files} install-sh" else break fi fi else if test -f "${as_dir}${ac_aux}"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 else ac_aux_dir_found=no if $ac_first_candidate; then ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" else break fi fi fi done if test "$ac_aux_dir_found" = yes; then ac_aux_dir="$as_dir" break fi ac_first_candidate=false as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. if test -f "${ac_aux_dir}config.guess"; then ac_config_guess="$SHELL ${ac_aux_dir}config.guess" fi if test -f "${ac_aux_dir}config.sub"; then ac_config_sub="$SHELL ${ac_aux_dir}config.sub" fi if test -f "$ac_aux_dir/configure"; then ac_configure="$SHELL ${ac_aux_dir}configure" fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test ${ac_cv_path_install+y} then : printf %s "(cached) " >&6 else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac # Account for fact that we put trailing slashes in our PATH walk. case $as_dir in #(( ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 printf "%s\n" "$STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 printf "%s\n" "$ac_ct_STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 printf %s "checking for a race-free mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test ${ac_cv_path_mkdir+y} then : printf %s "(cached) " >&6 else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir ('*'coreutils) '* | \ 'BusyBox '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 printf "%s\n" "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 printf "%s\n" "$AWK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } SET_MAKE= else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test ${enable_silent_rules+y} then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 printf %s "checking whether $am_make supports nested variables... " >&6; } if test ${am_cv_make_support_nested_variables+y} then : printf %s "(cached) " >&6 else $as_nop if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='ogonkify' VERSION='0.7.0' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # Variables for tags utilities; see am/tags.am if test -z "$CTAGS"; then CTAGS=ctags fi if test -z "$ETAGS"; then ETAGS=etags fi if test -z "$CSCOPE"; then CSCOPE=cscope fi # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: <https://www.gnu.org/software/coreutils/>. If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # What should get installed? # Check whether --enable-extensions was given. if test ${enable_extensions+y} then : enableval=$enable_extensions; case "${enableval}" in yes|no) ;; *) as_fn_error $? "bad value ${enableval} for --disable-extensions" "$LINENO" 5 ;; esac else $as_nop enable_extensions=yes fi if test x$enable_extensions = xyes; then EXTENSIONS_TRUE= EXTENSIONS_FALSE='#' else EXTENSIONS_TRUE='#' EXTENSIONS_FALSE= fi # # Ogonkify support # # Composite needs ibmfonts and perl # Ogonkify is written in Perl. case "x$PERL" in x/*) # User specified a version of Perl to use by absolute path. ;; x) # She didn't specify at all. # Extract the first word of "perl perl5", so it can be a program name with args. set dummy perl perl5; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PERL+y} then : printf %s "(cached) " >&6 else $as_nop case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no" ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 printf "%s\n" "$PERL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ;; x*) # She specified the name, but we want the path. # Extract the first word of "$PERL", so it can be a program name with args. set dummy $PERL; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PERL+y} then : printf %s "(cached) " >&6 else $as_nop case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no" ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 printf "%s\n" "$PERL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ;; esac # We need the IBM PFA files. DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } case $?:`cat confinc.out 2>/dev/null` in #( '0:this is the am__doit target') : case $s in #( BSD) : am__include='.include' am__quote='"' ;; #( *) : am__include='include' am__quote='' ;; esac ;; #( *) : ;; esac if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 printf "%s\n" "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test ${enable_dependency_tracking+y} then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else $as_nop ac_file='' fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> int main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 printf %s "checking whether $CC understands -c and -o together... " >&6; } if test ${am_cv_prog_cc_c_o+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CC_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 else $as_nop if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 printf %s "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test ${ac_cv_prog_CPP+y} then : printf %s "(cached) " >&6 else $as_nop # Double quotes because $CC needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 printf "%s\n" "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for X" >&5 printf %s "checking for X... " >&6; } # Check whether --with-x was given. if test ${with_x+y} then : withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( *,NONE | NONE,*) if test ${ac_cv_have_x+y} then : printf %s "(cached) " >&6 else $as_nop # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no # Do we need to do anything special at all? ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <X11/Xlib.h> int main (void) { XrmInitialize () ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : # We can compile and link X programs with no special options. ac_x_includes= ac_x_libraries= fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$ac_save_LIBS" # If that didn't work, only try xmkmf and file system searches # for native compilation. if test x"$ac_x_includes" = xno && test "$cross_compiling" = no then : rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl dylib la dll; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /usr/lib64 | /lib | /lib64) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /opt/X11/include /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <X11/Xlib.h> _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # We can compile using X headers with no special include directory. ac_x_includes= else $as_nop for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.i conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <X11/Xlib.h> int main (void) { XrmInitialize () ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else $as_nop LIBS=$ac_save_LIBS for ac_dir in `printf "%s\n" "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl dylib la dll; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no fi # Record the results. case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) : # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no" ;; #( *) : # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" ;; esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 printf "%s\n" "$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 printf "%s\n" "libraries $x_libraries, headers $x_includes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IBM font files" >&5 printf %s "checking for IBM font files... " >&6; } for i in $x_libraries/X11/fonts/Type1 \ /usr/local/share/TeX/gs/fonts do if test -r "$i"; then for j in 'cour*.pfa' 'ncr*.pfa' do if test -n "`echo $i/$j`"; then IBMFONTS=$i/$j break 2; fi done fi done if test -n "$IBMFONTS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $IBMFONTS" >&5 printf "%s\n" "$IBMFONTS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ac_config_files="$ac_config_files composeglyphs" ac_config_files="$ac_config_files Makefile ogonkify.in doc/Makefile m4/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 printf %s "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 printf "%s\n" "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${EXTENSIONS_TRUE}" && test -z "${EXTENSIONS_FALSE}"; then as_fn_error $? "conditional \"EXTENSIONS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by Ogonkify $as_me 0.7.0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to the package provider." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ Ogonkify config.status 0.7.0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "composeglyphs") CONFIG_FILES="$CONFIG_FILES composeglyphs" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "ogonkify.in") CONFIG_FILES="$CONFIG_FILES ogonkify.in" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' <conf$$subs.awk | sed ' /^[^""]/{ N s/\n// } ' >>$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. case $CONFIG_FILES in #( *\'*) : eval set x "$CONFIG_FILES" ;; #( *) : set x $CONFIG_FILES ;; #( *) : ;; esac shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`$as_dirname -- "$am_mf" || $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` am_filepart=`$as_basename -- "$am_mf" || $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` { echo "$as_me:$LINENO: cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles" >&5 (cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE=\"gmake\" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} { am_mf=; unset am_mf;} { am_rc=; unset am_rc;} rm -f conftest-deps.mk } ;; "composeglyphs":F) chmod +x composeglyphs ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ��������������������������������a2ps-4.15.5/ogonkify/configure.ac�������������������������������������������������������������������0000644�0000000�0000000�00000002744�14374450457�013501� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������AC_PREREQ([2.71]) AC_INIT([Ogonkify],[0.7.0]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([../build-aux]) AM_INIT_AUTOMAKE([1.15 foreign dist-bzip2 no-dist-gzip subdir-objects silent-rules]) # What should get installed? AC_ARG_ENABLE(extensions, [ --disable-extensions small footprint installation], [case "${enableval}" in yes|no) ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-extensions) ;; esac],[enable_extensions=yes]) AM_CONDITIONAL(EXTENSIONS, test x$enable_extensions = xyes) # # Ogonkify support # # Composite needs ibmfonts and perl AC_DEFUN([ad_IBMFONTS], [AC_PATH_X AC_MSG_CHECKING(for IBM font files) for i in $x_libraries/X11/fonts/Type1 \ /usr/local/share/TeX/gs/fonts do if test -r "$i"; then for j in 'cour*.pfa' 'ncr*.pfa' do if test -n "`echo $i/$j`"; then IBMFONTS=$i/$j AC_SUBST(IBMFONTS) break 2; fi done fi done if test -n "$IBMFONTS"; then AC_MSG_RESULT($IBMFONTS) else AC_MSG_RESULT(no) fi]) # Ogonkify is written in Perl. case "x$PERL" in x/*) # User specified a version of Perl to use by absolute path. AC_SUBST(PERL);; x) # She didn't specify at all. AC_PATH_PROG(PERL, [perl perl5], no) ;; x*) # She specified the name, but we want the path. AC_PATH_PROG(PERL, $PERL, no) ;; esac # We need the IBM PFA files. ad_IBMFONTS AC_CONFIG_FILES(composeglyphs, [chmod +x composeglyphs]) AC_CONFIG_FILES([ Makefile ogonkify.in doc/Makefile m4/Makefile]) AC_OUTPUT ����������������������������a2ps-4.15.5/ogonkify/cp1250.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010542�14233473143�012574� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Microsoft CP-1250 encoding in AFM format Comment This is not strictly an AFM file. EncodingScheme CP1250Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N tilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N quotesinglbase C 131 ; N .notdef C 132 ; N quotedblbase C 133 ; N ellipsis C 134 ; N dagger C 135 ; N daggerdbl C 136 ; N .notdef C 137 ; N perthousand C 138 ; N Scaron C 139 ; N guilsinglleft C 140 ; N Sacute C 141 ; N Tcaron C 142 ; N Zcaron C 143 ; N Zacute C 144 ; N .notdef C 145 ; N quoteleft C 146 ; N quoteright C 147 ; N quotedblleft C 148 ; N quotedblright C 149 ; N bullet C 150 ; N endash C 151 ; N emdash C 152 ; N .notdef C 153 ; N trademark C 154 ; N scaron C 155 ; N guilsinglright C 156 ; N sacute C 157 ; N tcaron C 158 ; N zcaron C 159 ; N zacute C 160 ; N space C 161 ; N caron C 162 ; N breve C 163 ; N Lslash C 164 ; N currency C 165 ; N Aogonek C 166 ; N brokenbar C 167 ; N section C 168 ; N dieresis C 169 ; N copyright C 170 ; N Scedilla C 171 ; N guillemotleft C 172 ; N logicalnot C 173 ; N hyphen C 174 ; N registered C 175 ; N Zdotaccent C 176 ; N degree C 177 ; N plusminus C 178 ; N ogonek C 179 ; N lslash C 180 ; N acute C 181 ; N mu C 182 ; N paragraph C 183 ; N bullet C 184 ; N cedilla C 185 ; N aogonek C 186 ; N scedilla C 187 ; N guillemotright C 188 ; N Ydieresis C 189 ; N hungarumlaut C 190 ; N Lcaron C 191 ; N zdotaccent C 192 ; N Racute C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Abreve C 196 ; N Adieresis C 197 ; N Lacute C 198 ; N Cacute C 199 ; N Ccedilla C 200 ; N Ccaron C 201 ; N Eacute C 202 ; N Eogonek C 203 ; N Edieresis C 204 ; N Ecaron C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Dcaron C 208 ; N Eth C 209 ; N Nacute C 210 ; N Ncaron C 211 ; N Oacute C 212 ; N Ocircumflex C 213 ; N Ohungarumlaut C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Rcaron C 217 ; N Uring C 218 ; N Uacute C 219 ; N Uhungarumlaut C 220 ; N Udieresis C 221 ; N Yacute C 222 ; N Tcedilla C 223 ; N germandbls C 224 ; N racute C 225 ; N aacute C 226 ; N acircumflex C 227 ; N abreve C 228 ; N adieresis C 229 ; N lacute C 230 ; N cacute C 231 ; N ccedilla C 232 ; N ccaron C 233 ; N eacute C 234 ; N eogonek C 235 ; N edieresis C 236 ; N ecaron C 237 ; N iacute C 238 ; N icircumflex C 239 ; N dcaron C 240 ; N dbar C 241 ; N nacute C 242 ; N ncaron C 243 ; N oacute C 244 ; N ocircumflex C 245 ; N ohungarumlaut C 246 ; N odieresis C 247 ; N divide C 248 ; N rcaron C 249 ; N uring C 250 ; N uacute C 251 ; N uhungarumlaut C 252 ; N udieresis C 253 ; N yacute C 254 ; N tcedilla C 255 ; N dotaccent EndCharMetrics EndFontMetrics ��������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/cp1250.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004324�14233473143�012577� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding CP1250Encoding /CP1250Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef % 200 /.notdef /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl /.notdef /perthousand /Scaron /guilsinglleft /Sacute /Tcaron /Zcaron /Zacute /.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash /.notdef /trademark /scaron /guilsinglright /sacute /tcaron /zcaron /zacute /space /caron /breve /Lslash /currency /Aogonek /brokenbar /section /dieresis /copyright /Scedilla /guillemotleft /logicalnot /hyphen /registered /Zdotaccent /degree /plusminus /ogonek /lslash /acute /mu /paragraph /bullet /cedilla /aogonek /scedilla /guillemotright /Ydieresis /hungarumlaut /Lcaron /zdotaccent % 300 /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Eth /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/doc/���������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132365�012023� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/doc/Makefile.am����������������������������������������������������������������0000644�0000000�0000000�00000001456�14273213734�014004� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # man_MANS = ogonkify.1 info_TEXINFOS = ogonkify.texi EXTRA_DIST = $(man_MANS) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/doc/Makefile.in����������������������������������������������������������������0000644�0000000�0000000�00000061754�14424520614�014020� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) am__v_DVIPS_0 = @echo " DVIPS " $@; am__v_DVIPS_1 = AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; am__v_MAKEINFO_1 = AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) am__v_INFOHTML_0 = @echo " INFOHTML" $@; am__v_INFOHTML_1 = AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; am__v_TEXI2DVI_1 = AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; am__v_TEXI2PDF_1 = AM_V_texinfo = $(am__v_texinfo_@AM_V@) am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) am__v_texinfo_0 = -q am__v_texinfo_1 = AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) am__v_texidevnull_0 = > /dev/null am__v_texidevnull_1 = INFO_DEPS = $(srcdir)/ogonkify.info TEXINFO_TEX = $(top_srcdir)/../build-aux/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/../build-aux DVIS = ogonkify.dvi PDFS = ogonkify.pdf PSS = ogonkify.ps HTMLS = ogonkify.html TEXINFOS = ogonkify.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/../build-aux/texinfo.tex DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ IBMFONTS = @IBMFONTS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ man_MANS = ogonkify.1 info_TEXINFOS = ogonkify.texi EXTRA_DIST = $(man_MANS) all: all-am .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): .texi.info: $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ $(am__cd) $(srcdir); \ else \ rc=$$?; \ $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ $< .texi.pdf: $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ $< .texi.html: $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@ && mv $(@:.html=.htp) $@; \ else \ rm -rf $(@:.html=.htp); exit 1; \ fi $(srcdir)/ogonkify.info: ogonkify.texi ogonkify.dvi: ogonkify.texi ogonkify.pdf: ogonkify.texi ogonkify.html: ogonkify.texi .dvi.ps: $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) $(AM_V_texinfo) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-info-am: @$(PRE_UNINSTALL) @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done uninstall-pdf-am: @$(NORMAL_UNINSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f "$(distdir)/$$relfile" || \ cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf ogonkify.t2d ogonkify.t2p clean-aminfo: -test -z "ogonkify.dvi ogonkify.pdf ogonkify.ps ogonkify.html" \ || rm -rf ogonkify.dvi ogonkify.pdf ogonkify.ps ogonkify.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: check-am all-am: Makefile $(INFO_DEPS) $(MANS) installdirs: for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-aminfo clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: $(DVIS) html: html-am html-am: $(HTMLS) info: info-am info-am: $(INFO_DEPS) install-data-am: install-info-am install-man install-dvi: install-dvi-am install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: install-html: install-html-am install-html-am: $(HTMLS) @$(NORMAL_INSTALL) @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ $(am__strip_dir) \ d2=$$d$$p; \ if test -d "$$d2"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ list2="$$list2 $$d2"; \ fi; \ done; \ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done; } install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ fi; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ done; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-am install-ps-am: $(PSS) @$(NORMAL_INSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-aminfo mostlyclean-generic pdf: pdf-am pdf-am: $(PDFS) ps: ps-am ps-am: $(PSS) uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-man uninstall-pdf-am uninstall-ps-am uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-aminfo clean-generic \ cscopelist-am ctags-am dist-info distclean distclean-generic \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-aminfo \ maintainer-clean-generic mostlyclean mostlyclean-aminfo \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-dvi-am uninstall-html-am \ uninstall-info-am uninstall-man uninstall-man1 \ uninstall-pdf-am uninstall-ps-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ��������������������a2ps-4.15.5/ogonkify/doc/ogonkify.1�����������������������������������������������������������������0000644�0000000�0000000�00000013765�14233473143�013663� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH OGONKIFY 1 "14 May 1999" "McKornik Jr." .\" Time-stamp: <99/05/21 14:43:47 jec> .SH NAME ogonkify \- international support for PostScript .SH SYNOPSIS .B ogonkify .RB [ \-p .IR procset ] .RB [ \-e .IR encoding ] .RB [ \-r .IR Old=New ] .RB [ \-a ] .RB [ \-c ] .RB [ \-h ] .RB [ \-t ] .RB [ \-A ] .RB [ \-C ] .RB [ \-H ] .RB [ \-T ] .RB [ \-AT ] .RB [ \-CT ] .RB [ \-ATH ] .RB [ \-CTH ] .RB [ \-E ] .RB [ \-N ] .RB [ \-M ] .RB [ \-mp ] .RB [ \-SO ] .RB [ \-AX ] .RB [ \-F ] .RB [ \-RS ] .RB [ \-\- ] .I file ... .SH DESCRIPTION .B ogonkify does various munging of PostScript files related to printing in different languages. Its main use is to filter the output of Netscape, Mosaic and other programs in order to print in languages that don't use the standard Western-European encoding (ISO 8859-1). .SH SUMMARY USAGE Installation instructions are provided in the file INSTALL. Assuming the installation has been correctly completed, save the PostScript output of Netscape or Mosaic to a file, say .BR output.ps . Then print it using .IP % ogonkify \-AT \-N output.ps | lpr .TP in the case of Netscape, or .IP % ogonkify \-AT \-M output.ps | lpr .TP in the case of Mosaic. .LP You may want to change the .B \-AT option to .B \-CT in order to use a high quality Courier font from IBM (at the price of slower printing). An alternative way to print from Netscape is to set the printing command in the printing dialog box to: .IP ogonkify \-AT \-N | lpr .TP For more details, see the USAGE section below. .SH OPTIONS .TP .B \-p Includes the specified procset in the output file. .TP .B \-e Set the encoding of the output. Defaults to .B L2 (ISO 8859\-2, a.k.a. ISO Latin\-2). Other possible values are .B L1 (ISO 8859\-1, a.k.a. ISO Latin\-1), .B L3 (ISO 8859\-3, a.k.a. ISO Latin\-3), .B L4 (ISO 8859\-4, a.k.a. ISO Latin\-4), .B L5 (ISO 8859\-9, a.k.a. ISO Latin\-5), .B L6 (ISO 8859\-10, a.k.a. ISO Latin\-6), .B L7 (ISO 8859\-13, a.k.a. ISO Latin\-7), .B L9 (ISO 8859\-15, a.k.a. ISO Latin\-9), .B CP1250 (Microsoft Code Page 1250, a.k.a. CeP), .B ibmpc (Original IBM-PC encoding), .B mac (Apple Macintosh encoding) and .B hp (HP Roman Encoding). .TP .B \-r Use the font .I New in place of .IR Old . Will lead to ugly or unreadable output when the metrics mismatch. .TP .B \-a Do the right font remappings for using Courier\-Ogonki in place of Courier (the .B a stands for Adobe Courier). This avoids downloading any fonts to the printer. .TP .B \-c Do the right font remappings for using IBM Courier in place of Adobe Courier. .TP .B \-t Do the right font remappings for using Times\-Roman\-Ogonki in place of Times\-Roman. .TP .B \-h Do the right font remappings for using Helvetica\-Ogonki in place of Helvetica. .TP .B \-A Like .BR \-a but also downloads the Courier\-Ogonki fonts. .TP .B \-C Like .BR \-c , but also downloads the IBM Courier fonts. .TP .B \-H Like .BR \-h , but also downloads the Helvetica\-xxx\-Ogonki fonts. .TP .B \-T Like .BR \-t , but also downloads the Times\-xxx\-Ogonki fonts. .TP .B \-CT Equivalent to .B \-C .BR \-T . .TP .B \-CTH Equivalent to .B \-C .B \-T .BR \-H . .TP .B \-E Add the .B Euro currency sign to all standard fonts (use with .B \-e .BR L9 ). .TP .B \-N Do .B Netscape processing. .TP .B \-M Do .B Mosaic processing. .TP .B \-mp Do .B mp processing. Will not work with the .B -A option (use .B -C instead). .TP .B \-SO Do .B StarOffice processing. .TP .B \-AX Do .B ApplixWare processing. .TP .B \-F Do .B XFig processing. .TP .B \-RS Recode standard fonts. This is likely to work with applications that leave fonts in .BR AdobeStandardEncoding , typically applications that do not even support printing even of characters. .TP .B \-\- End options. .SH USAGE Let us assume that you want to print a WWW page encoded in ISO Latin\-2. Netscape stubbornly insists on printing it as ISO Latin\-1. By using the File->Print command, have Netscape send the output to a file, say alamakota.ps. As .B ogonkify is configured for ISO Latin\-2 by default, passing it the PostScript generated by Netscape will correct the encoding of the fonts. It is enough to do: .IP % ogonkify \-N <alamakota.ps | lpr .LP However, most printers do not have fonts with the needed characters installed; synthesized fonts will be downloaded and used instead of Courier and Times\-Roman with .BR \-AT , and a very good Courier font from IBM will be used with: .BR \-CT . The command will therefore typically be: .IP % ogonkify \-N \-AT <alamakota.ps | lpr .LP or eventually .IP % ogonkify \-N \-CT <alamakota.ps | lpr .LP Typical usage with other programs is: .IP .nf % ogonkify \-M \-AT <alamakota.ps | lpr % ogonkify \-mp \-AT <alamakota.ps | lpr % ogonkify \-SO \-AT <alamakota.ps | lpr % ogonkify \-AX \-ATH <alamakota.ps | lpr % ogonkify \-XF \-ATH <alamakota.ps | lpr .fi .LP .SH BUGS Characters with an `ogonek' should be constructed differently (for instance, the `ogonek' used with an `a' should be differently shaped than the one used with an `e'.) It would be better to patch the programs we have the sources to than to post-process the produced PostScript. The program is written in Perl. .SH NOTES In order to view the output PostScript with Ghostscript, you might need to run .B gs with the flag .BR \-dNOPLATFONTS , and .B ghostview with the flag .B \-arguments .BR \-dNOPLATFONTS . Netscape, IBM, Adobe, PostScript, StarOffice, ApplixWare and possibly others are registered trademarks. .SH THANKS Much of the composite character data have been provided by Primoz Peterlin, H. Turgut Uyar, Ricardas Cepas, Kristof Petrovay and Jan Prikryl. Jacek Pliszka provided the support for .BR StarOffice . Andrzej Baginski provided the support for .BR ApplixWare . Markku Rossi wrote .B genscript and provided many useful encoding vectors with the distribution. Throughout writing the Postscript code, I used the .B ghostscript interpreter, by Peter Deutsch. Larry Wall wrote .BR perl , the syntax and semantics of which are a never ending source of puzzlement. .SH AUTHOR Juliusz Chroboczek <jec@dcs.ed.ac.uk>, with help from loads of people. �����������a2ps-4.15.5/ogonkify/doc/ogonkify.info��������������������������������������������������������������0000644�0000000�0000000�00000037565�14415562571�014470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This is ogonkify.info, produced by makeinfo version 6.8 from ogonkify.texi. INFO-DIR-SECTION Printing Tools START-INFO-DIR-ENTRY * ogonkify: (ogonkify). Ogonkify END-INFO-DIR-ENTRY This is the Ogonkify manual, Copyright (C) 1996-1999 by Juliusz Chroboczek.  File: ogonkify.info, Node: Top, Next: License, Prev: (dir), Up: (dir) The Ogonkify package ******************** The Ogonkify package contains two programs: a utility for adding composite characters to fonts in a semi-automatic fashion, and a program for converting PS output -- notably Netscape and Mosaic output -- to use these fonts. * Menu: * License:: Your rights and my polite requests * Using Ogonkify:: How to use Ogonkify * Adding new characters:: How to add new characters to the fonts * Reaching the author:: Addresses  File: ogonkify.info, Node: License, Next: Using Ogonkify, Prev: Top, Up: Top 1 The McKornik Jr. Public License ********************************* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. In particular, this program is provided as is, without any warranty, not even of any kind. It might (or might not) do what it is supposed to do, it might (or might not) destroy your printer, and it might (or might not) be useful to you. In any case, you are on your own. This program is written in Perl. While stronger people find reading Perl code character-building, it should not be shown to people in their formative years. The author will not accept any responsibility for any moral grief caused. I would like to ask you _not_ to distribute the generated fonts without including a pointer to the original AFMs and the rest of the code. Furthermore, please notify me if you decide to include this code in a larger piece of software. If you find this software useful, local goodies, makowiec, beer from Zywiec, postcards from exotic places and all sorts of things are accepted.  File: ogonkify.info, Node: Using Ogonkify, Next: Adding new characters, Prev: License, Up: Top 2 Using Ogonkify **************** This chapter describes the various uses of Ogonkify. * Menu: * Ghostscript:: Viewing with ghostscript * Standard Applications:: Using the package with standard applications * a2ps:: Printing with a2ps * genscript:: Printing with genscript  File: ogonkify.info, Node: Ghostscript, Next: Standard Applications, Prev: Using Ogonkify, Up: Using Ogonkify 2.1 Viewing with Ghostscript ============================ Due to a bug in some versions of ghostscript, in order to view the output of Ogonkify you may need to run ghostscript with the '-dNOPLATFONTS' option, as in gs -dNOPLATFONTS foo.ps or in ghostview -arguments -dNOPLATFONTS foo.ps See the 'gs(1)' and 'ghostview(1)' manual pages for more details.  File: ogonkify.info, Node: Standard Applications, Next: a2ps, Prev: Ghostscript, Up: Using Ogonkify 2.2 Printing from Standard Applications ======================================= The main use of Ogonkify is to allow various standard applications to print in various languages. As of this writing, the 'ogonkify' script knows how to handle Netscape, Mosaic, the mail printer MP, StarOffice, and ApplixWare. Its usage is described in full detail in the 'ogonkify(1)' manual page.  File: ogonkify.info, Node: a2ps, Next: genscript, Prev: Standard Applications, Up: Using Ogonkify 2.3 Printing with a2ps ====================== 'a2ps' is a PostScript formatter with pretty-printing capabilities. Starting with version 4.7.21, it automatically uses Ogonkify, which is distributed with it. *Note a2ps manual: (a2ps.info)top. 'a2ps' can be obtained from: <URL:https://www.gnu.org/software/a2ps>  File: ogonkify.info, Node: genscript, Prev: a2ps, Up: Using Ogonkify 2.4 Printing with GNU Enscript ============================== GNU Enscript is a program for printing text files on PostScript printers written by Markku Rossi and distributed with other GNU software. You will find it on any mirror carrying GNU software. GNU Enscript is one of the few programs that allow the user to select the encoding of the files he wants to print, and correctly reencoding the fonts it uses . In order to obtain information about the characters available in a font, it uses AFM files. If you are only interested in printing in Courier, you might want to simply use the IBM Courier fonts and the AFM files provided with them. However, you may also want to use the output of Ogonkify; for printing in Times and Helvetica, this is the only solution. Here are installation procedures for using the fonts generated by the 'instogonki' script with 'genscript'. They assume that 'genscript' is properly installed, and that you know which 'genscript.cfg' file it reads. 1. In the directory '$PFADIR', type % mkafmmap *.afm (the 'mkafmmap' program is installed with GNU Enscript). 2. In the 'genscript.cfg' file, add your '$PFADIR' directory to the AFMPath. You can now print with the composite characters. Example: % genscript -X latin2 -f Times-Roman-Ogonki@12 \ -o wierszyk.ps wierszyk.txt or % genscript -X latin2 -f Helvetica-Ogonki@12 \ -o wierszyk.ps wierszyk.txt  File: ogonkify.info, Node: Adding new characters, Next: Reaching the author, Prev: Using Ogonkify, Up: Top 3 Adding new characters *********************** This chapter attempts to explain how to extend Ogonkify to handle supplementary characters. * Menu: * Composite background:: Background about composite characters * AFM files:: Non-orthodox use of Adobe Font Metric files * Generated fonts:: Fonts with composite characters * Composite usage:: Usage of the script 'composeglyphs' * Composite example:: A step-by-step example  File: ogonkify.info, Node: Composite background, Next: AFM files, Prev: Adding new characters, Up: Adding new characters 3.1 Background ============== A typical Type 1 font for the latin alphabet contains "pure" characters, such a 'A' or 'acute', and composite characters, such as 'Aacute', which are composed of the 'A' character, and the 'acute' character using the Type 1 'seac' operator. Unfortunately, most fonts do not contain all the characters in the ISO Latin-2 character set. In particular, most of the Polish characters (with the exception of 'oacute' and 'Oacute') are usually missing (a notable exception is IBM Courier -- not Adobe Courier -- which contains many useful glyphs). However, the components of those glyphs are present. It should not be difficult to add the characters we need if the necessary tools were available... At least four methods could be used: i) Do not change the original font, but do overstriking for individual characters (e.g. typeset an 'a', then move backwards and typeset an 'ogonek' for 'aogonek'). This method is widely used, for instance by TeX. ii) Parse the 'PFA' or 'PFB' file containing the font program for a Type 1 font, and generate a new 'PFA' containing the composite characters. This should not be too difficult ('PFA' parsers are freely available), but would require that users have the 'PFA' files corresponding to the fonts they use, which is often not the case. Furthermore, I believe that it would violate the license of the fonts. I am not quite sure what to make of the following: Adobe Systems' Type 1 font programs are licensed for use on one or more devices (depending on the terms of particular licenses). These licenses would permit the use of a licensed program in a system that translates a Type 1 font program to some other format in the process of rendering, as long as a copy of the program (even in translated form) is not produced. 'Adobe Type 1 Font Format', p. 7, Adobe Systems Inc. iii) Download the original font, and add to its Charstrings dictionary the supplementary characters using PostScript. This would not violate the license agreement as the modified font would exist only in the printer. However, many PostScript interpreters do not allow tampering with Type 1 font dictionaries. Copy protection, as always, only bothers honest users. iv) Create a new Type 3 font dictionary which draws characters by using the characters in the original font. This has the benefits of working and being legal. I expected it to be quite inefficient, but found it to be reasonably fast. The 'composite.ps' file contained in this distribution, and the accompanying perl program 'composeglyphs', follow scheme (iv). The following sections describe them in more detail, including information on extending the code to create other composite characters. *Please note:* our usage of the word "composite" has noting to do with Adobe's notion of "composite fonts". This is a bug. *Please note:* a Polish typographer would be appalled to see that we consider the "ogonek" as a diacritical mark, and thus harm the integrity of the two letters that all Poles love. Indeed, in a proper Polish font, the tail of 'aogonek' would have a different shape than that of 'eogonek'. Considering however the poor availability of fonts with the needed characters, we do not currently have the luxury to whine about such esthetic problems.  File: ogonkify.info, Node: AFM files, Next: Generated fonts, Prev: Composite background, Up: Adding new characters 3.2 Non-orthodox uses of Adobe Font Metrics files ================================================= Information about the fonts comes from "Adobe Font Metrics" (AFM) files. Much more information is in AFMs then usually known; in particular, the encoding vector can be derived from the AFM, and AFMs contain the composite character information. Therefore, a program could generate the needed font -- encoding vector and everything included -- from the AFMs. In order to simplify the handling of AFM information, we use three different AFMs on every run of the program: (i) an AFM with the encoding vector to use, (ii) the AFM of the original font, and (iii) an AFM with supplementary composite character information. The latter will usually have to be supplied by the user. It is needed because AFMs provided with Type 1 fonts usually only contain composite information about the characters already in the font (in fact, the Adobe documentation does not make it quite clear whether it is legal to insert composite information about characters not already in the font into an AFM).  File: ogonkify.info, Node: Generated fonts, Next: Composite usage, Prev: AFM files, Up: Adding new characters 3.3 Fonts with composite characters =================================== The generated font contains (i) the characters that were in the original font, and (ii) the characters which were not in the original font but for which composite information was provided. AFM files for the generated fonts are generated too, which means that the fonts can be used with most applications. Furthermore, they can be reencoded, just like any well-behaved PostScript font. In order to maintain compatibility with PostScript Level 1, every composed font must be based on a base encoding vector, and characters can only be composed from components in that vector. Thus, in order to build 'Nacute' from 'N' and 'acute', both 'N' and 'acute' must be in the base vector. However, as the base vector is only ever used internally, much liberty can be taken when designing it. In particular, it doesn't need to be compatible with any other vector, and there is no reason to avoid the control character range. The base encoding vector that I use is called 'OgonkiEncoding'; it is based on Latin-2, but contains all the characters of 'StandardEncoding' (although in strange places). There is a limitation on the composite information that can be used. In particular, the only composite entries used are of the form: CC ... 2 ; PCC x 0 0 ; PCC ' ... ; ... In plain words, there must be exactly two characters to compose, the first character must be set at the origin, and the width of the composite character is taken to be that of the first character. This limitation is easy to lift, and I will generalize the code if you send me AFMs that do not obey this convention (I have never seen any, and, indeed, this is the format required by the Type 1 'seac' operator). AFMs that do not obey it are (hopefully) gracefully handled (you should see warnings about 'CC' entries being ignored).  File: ogonkify.info, Node: Composite usage, Next: Composite example, Prev: Generated fonts, Up: Adding new characters 3.4 Usage of the composite script ================================= The 'composeglyphs' script can be run to generate either an encoding vector or a new font. It is a perl script, and only reformats the data; the real magic is in the file 'composite.ps'. In order to generate an encoding vector from a suitable AFM, 'composeglyphs' is run as follows: % composeglyphs -e latin2.afm -E latin2.enc which will generate the file 'latin2.enc' from the AFM file 'latin2.afm' (this is the default). Any AFM file is suitable as input, but most AFMs do not contain all the possible characters of an encoding vector (the missing ones will be replaced by '.notdef'). In order to generate a font program, more input must be provided: % composeglyphs -i ptmr.afm -c ptmr-c.afm \ -o ptmr-o.ps -n Times-Roman-Ogonki \ -a ptmr-o.afm \ -e ogonki.afm -t adobe.afm where '-i' specifies the AFM of the original font, '-c' supplementary composite character information, '-o' the font program to generate, '-n' the name of the new font, '-a' the name of the AFM file to generate, '-e' the base encoding AFM to use, and '-t' the target encoding. The file 'makecomp' contains a shell script (run by the installation program) which generates fonts with composite characters for the Times, Courier and Helvetica families from the supplementary AFMs '*-c.afm'.  File: ogonkify.info, Node: Composite example, Prev: Composite usage, Up: Adding new characters 3.5 A step-by-step example ========================== Assume that you want to add the 'ccaron' and 'Ccaron' characters to the Times-Roman font. Start from similar characters already present in the base Times-Roman font -- for example, 'zcaron' and 'Zcaron'. Take the corresponding "composite character" ('CC') line from the 'ptmr.afm' file: CC zcaron 2 ; PCC z 0 0 ; PCC caron 55 0 ; and insert it into the 'ptmr-c.afm' file, changing the names of the characters thus: CC ccaron 2 ; PCC c 0 0 ; PCC caron 55 0 ; This line can be used as a starting point. Execute './instogonki', typeset some text with the new character, and fine-tune the last set of coordinates ('55 0'). If you create new AFMs or modify the existing ones, please send me a copy so that I can include them in the distribution.  File: ogonkify.info, Node: Reaching the author, Prev: Adding new characters, Up: Top 4 Reaching the author ********************* This manual and most of the Ogonkify package were written by Juliusz Chroboczek, <jec@dcs.ed.ac.uk>. My current snail-mail address is: Juliusz Chroboczek Department of Computer Science Mayfield Road Edinburgh EH9 3JZ Scotland, United Kingdom tel. +44/131/650-5163 fax. +44/131/667-7209  Tag Table: Node: Top271 Node: License858 Node: Using Ogonkify2154 Node: Ghostscript2596 Node: Standard Applications3085 Node: a2ps3575 Node: genscript4003 Node: Adding new characters5553 Node: Composite background6152 Node: AFM files9674 Node: Generated fonts10885 Node: Composite usage12889 Node: Composite example14440 Node: Reaching the author15359  End Tag Table  Local Variables: coding: utf-8 End: �������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/doc/ogonkify.texi��������������������������������������������������������������0000644�0000000�0000000�00000036640�14273213734�014473� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename ogonkify.info @settitle Ogonkify @setchapternewpage off @c %**end of header @c Time-stamp: <2022-08-05 12:22:24 rrt> @dircategory Printing Tools @direntry * ogonkify: (ogonkify). Ogonkify @end direntry @ifinfo This is the Ogonkify manual, Copyright @copyright{} 1996--1999 by Juliusz Chroboczek. @end ifinfo @titlepage @title Ogonkify @author Juliusz Chroboczek @end titlepage @node Top, License, (dir), (dir) @top The Ogonkify package The Ogonkify package contains two programs: a utility for adding composite characters to fonts in a semi-automatic fashion, and a program for converting PS output --- notably Netscape and Mosaic output --- to use these fonts. @menu * License:: Your rights and my polite requests * Using Ogonkify:: How to use Ogonkify * Adding new characters:: How to add new characters to the fonts * Reaching the author:: Addresses @end menu @node License, Using Ogonkify, Top, Top @chapter The McKornik Jr.@: Public License This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. In particular, this program is provided as is, without any warranty, not even of any kind. It might (or might not) do what it is supposed to do, it might (or might not) destroy your printer, and it might (or might not) be useful to you. In any case, you are on your own. This program is written in Perl. While stronger people find reading Perl code character-building, it should not be shown to people in their formative years. The author will not accept any responsibility for any moral grief caused. I would like to ask you @emph{not} to distribute the generated fonts without including a pointer to the original AFMs and the rest of the code. Furthermore, please notify me if you decide to include this code in a larger piece of software. If you find this software useful, local goodies, makowiec, beer from Zywiec, postcards from exotic places and all sorts of things are accepted. @node Using Ogonkify, Adding new characters, License, Top @chapter Using Ogonkify This chapter describes the various uses of Ogonkify. @menu * Ghostscript:: Viewing with ghostscript * Standard Applications:: Using the package with standard applications * a2ps:: Printing with a2ps * genscript:: Printing with genscript @end menu @node Ghostscript, Standard Applications, Using Ogonkify, Using Ogonkify @section Viewing with Ghostscript Due to a bug in some versions of ghostscript, in order to view the output of Ogonkify you may need to run ghostscript with the @code{-dNOPLATFONTS} option, as in @example gs -dNOPLATFONTS foo.ps @end example @noindent or in @example ghostview -arguments -dNOPLATFONTS foo.ps @end example See the @code{gs(1)} and @code{ghostview(1)} manual pages for more details. @node Standard Applications, a2ps, Ghostscript, Using Ogonkify @section Printing from Standard Applications The main use of Ogonkify is to allow various standard applications to print in various languages. As of this writing, the @code{ogonkify} script knows how to handle Netscape, Mosaic, the mail printer MP, StarOffice, and ApplixWare. Its usage is described in full detail in the @code{ogonkify(1)} manual page. @node a2ps, genscript, Standard Applications, Using Ogonkify @section Printing with a2ps @code{a2ps} is a PostScript formatter with pretty-printing capabilities. Starting with version 4.7.21, it automatically uses Ogonkify, which is distributed with it. @xref{top,,a2ps manual,a2ps.info,a2ps manual}. @code{a2ps} can be obtained from: @example <URL:https://www.gnu.org/software/a2ps> @end example @node genscript, , a2ps, Using Ogonkify @section Printing with GNU Enscript GNU Enscript is a program for printing text files on PostScript printers written by Markku Rossi and distributed with other GNU software. You will find it on any mirror carrying GNU software. GNU Enscript is one of the few programs that allow the user to select the encoding of the files he wants to print, and correctly reencoding the fonts it uses . In order to obtain information about the characters available in a font, it uses AFM files. If you are only interested in printing in Courier, you might want to simply use the IBM Courier fonts and the AFM files provided with them. However, you may also want to use the output of Ogonkify; for printing in Times and Helvetica, this is the only solution. Here are installation procedures for using the fonts generated by the @code{instogonki} script with @code{genscript}. They assume that @code{genscript} is properly installed, and that you know which @code{genscript.cfg} file it reads. @enumerate @item In the directory @code{$PFADIR}, type @example % mkafmmap *.afm @end example (the @code{mkafmmap} program is installed with GNU Enscript). @item In the @code{genscript.cfg} file, add your @code{$PFADIR} directory to the AFMPath. @end enumerate @noindent You can now print with the composite characters. Example: @example % genscript -X latin2 -f Times-Roman-Ogonki@@12 \ -o wierszyk.ps wierszyk.txt @end example or @example % genscript -X latin2 -f Helvetica-Ogonki@@12 \ -o wierszyk.ps wierszyk.txt @end example @node Adding new characters, Reaching the author, Using Ogonkify, Top @chapter Adding new characters This chapter attempts to explain how to extend Ogonkify to handle supplementary characters. @menu * Composite background:: Background about composite characters * AFM files:: Non-orthodox use of Adobe Font Metric files * Generated fonts:: Fonts with composite characters * Composite usage:: Usage of the script `composeglyphs' * Composite example:: A step-by-step example @end menu @node Composite background, AFM files, Adding new characters, Adding new characters @section Background A typical Type 1 font for the latin alphabet contains ``pure'' characters, such a @code{A} or @code{acute}, and composite characters, such as @code{Aacute}, which are composed of the @code{A} character, and the @code{acute} character using the Type 1 @code{seac} operator. Unfortunately, most fonts do not contain all the characters in the ISO Latin-2 character set. In particular, most of the Polish characters (with the exception of @code{oacute} and @code{Oacute}) are usually missing (a notable exception is IBM Courier --- not Adobe Courier --- which contains many useful glyphs). However, the components of those glyphs are present. It should not be difficult to add the characters we need if the necessary tools were available@dots{} At least four methods could be used: @noindent i) Do not change the original font, but do overstriking for individual characters (e.g. typeset an @code{a}, then move backwards and typeset an @code{ogonek} for @code{aogonek}). This method is widely used, for instance by TeX. @noindent ii) Parse the @code{PFA} or @code{PFB} file containing the font program for a Type 1 font, and generate a new @code{PFA} containing the composite characters. This should not be too difficult (@code{PFA} parsers are freely available), but would require that users have the @code{PFA} files corresponding to the fonts they use, which is often not the case. Furthermore, I believe that it would violate the license of the fonts. I am not quite sure what to make of the following: @quotation Adobe Systems' Type 1 font programs are licensed for use on one or more devices (depending on the terms of particular licenses). These licenses would permit the use of a licensed program in a system that translates a Type 1 font program to some other format in the process of rendering, as long as a copy of the program (even in translated form) is not produced. @flushright @cite{Adobe Type 1 Font Format}, p.@: 7, Adobe Systems Inc. @end flushright @end quotation @noindent iii) Download the original font, and add to its Charstrings dictionary the supplementary characters using PostScript. This would not violate the license agreement as the modified font would exist only in the printer. However, many PostScript interpreters do not allow tampering with Type 1 font dictionaries. Copy protection, as always, only bothers honest users. @noindent iv) Create a new Type 3 font dictionary which draws characters by using the characters in the original font. This has the benefits of working and being legal. I expected it to be quite inefficient, but found it to be reasonably fast. The @code{composite.ps} file contained in this distribution, and the accompanying perl program @code{composeglyphs}, follow scheme (iv). The following sections describe them in more detail, including information on extending the code to create other composite characters. @quotation @strong{Please note:} our usage of the word ``composite'' has noting to do with Adobe's notion of ``composite fonts''. This is a bug. @end quotation @quotation @strong{Please note:} a Polish typographer would be appalled to see that we consider the ``ogonek'' as a diacritical mark, and thus harm the integrity of the two letters that all Poles love. Indeed, in a proper Polish font, the tail of @code{aogonek} would have a different shape than that of @code{eogonek}. Considering however the poor availability of fonts with the needed characters, we do not currently have the luxury to whine about such esthetic problems. @end quotation @node AFM files, Generated fonts, Composite background, Adding new characters @section Non-orthodox uses of Adobe Font Metrics files Information about the fonts comes from @dfn{Adobe Font Metrics} (AFM) files. Much more information is in AFMs then usually known; in particular, the encoding vector can be derived from the AFM, and AFMs contain the composite character information. Therefore, a program could generate the needed font --- encoding vector and everything included --- from the AFMs. In order to simplify the handling of AFM information, we use three different AFMs on every run of the program: (i) an AFM with the encoding vector to use, (ii) the AFM of the original font, and (iii) an AFM with supplementary composite character information. The latter will usually have to be supplied by the user. It is needed because AFMs provided with Type 1 fonts usually only contain composite information about the characters already in the font (in fact, the Adobe documentation does not make it quite clear whether it is legal to insert composite information about characters not already in the font into an AFM). @node Generated fonts, Composite usage, AFM files, Adding new characters @section Fonts with composite characters The generated font contains (i) the characters that were in the original font, and (ii) the characters which were not in the original font but for which composite information was provided. AFM files for the generated fonts are generated too, which means that the fonts can be used with most applications. Furthermore, they can be reencoded, just like any well-behaved PostScript font. In order to maintain compatibility with PostScript Level 1, every composed font must be based on a base encoding vector, and characters can only be composed from components in that vector. Thus, in order to build @code{Nacute} from @code{N} and @code{acute}, both @code{N} and @code{acute} must be in the base vector. However, as the base vector is only ever used internally, much liberty can be taken when designing it. In particular, it doesn't need to be compatible with any other vector, and there is no reason to avoid the control character range. The base encoding vector that I use is called @code{OgonkiEncoding}; it is based on Latin-2, but contains all the characters of @code{StandardEncoding} (although in strange places). There is a limitation on the composite information that can be used. In particular, the only composite entries used are of the form: @example CC ... 2 ; PCC x 0 0 ; PCC ' ... ; ... @end example @noindent In plain words, there must be exactly two characters to compose, the first character must be set at the origin, and the width of the composite character is taken to be that of the first character. This limitation is easy to lift, and I will generalize the code if you send me AFMs that do not obey this convention (I have never seen any, and, indeed, this is the format required by the Type 1 @code{seac} operator). AFMs that do not obey it are (hopefully) gracefully handled (you should see warnings about @code{CC} entries being ignored). @node Composite usage, Composite example, Generated fonts, Adding new characters @section Usage of the composite script The @code{composeglyphs} script can be run to generate either an encoding vector or a new font. It is a perl script, and only reformats the data; the real magic is in the file @code{composite.ps}. In order to generate an encoding vector from a suitable AFM, @code{composeglyphs} is run as follows: @example % composeglyphs -e latin2.afm -E latin2.enc @end example @noindent which will generate the file @code{latin2.enc} from the AFM file @code{latin2.afm} (this is the default). Any AFM file is suitable as input, but most AFMs do not contain all the possible characters of an encoding vector (the missing ones will be replaced by @code{.notdef}). In order to generate a font program, more input must be provided: @example % composeglyphs -i ptmr.afm -c ptmr-c.afm \ -o ptmr-o.ps -n Times-Roman-Ogonki \ -a ptmr-o.afm \ -e ogonki.afm -t adobe.afm @end example @noindent where @code{-i} specifies the AFM of the original font, @code{-c} supplementary composite character information, @code{-o} the font program to generate, @code{-n} the name of the new font, @code{-a} the name of the AFM file to generate, @code{-e} the base encoding AFM to use, and @code{-t} the target encoding. The file @code{makecomp} contains a shell script (run by the installation program) which generates fonts with composite characters for the Times, Courier and Helvetica families from the supplementary AFMs @code{*-c.afm}. @node Composite example, , Composite usage, Adding new characters @section A step-by-step example Assume that you want to add the @code{ccaron} and @code{Ccaron} characters to the Times-Roman font. Start from similar characters already present in the base Times-Roman font --- for example, @code{zcaron} and @code{Zcaron}. Take the corresponding @dfn{composite character} (@code{CC}) line from the @code{ptmr.afm} file: @example CC zcaron 2 ; PCC z 0 0 ; PCC caron 55 0 ; @end example @noindent and insert it into the @code{ptmr-c.afm} file, changing the names of the characters thus: @example CC ccaron 2 ; PCC c 0 0 ; PCC caron 55 0 ; @end example @noindent This line can be used as a starting point. Execute @code{./instogonki}, typeset some text with the new character, and fine-tune the last set of coordinates (@code{55 0}). If you create new AFMs or modify the existing ones, please send me a copy so that I can include them in the distribution. @node Reaching the author, , Adding new characters, Top @chapter Reaching the author This manual and most of the Ogonkify package were written by Juliusz Chroboczek, <jec@@dcs.ed.ac.uk>. My current snail-mail address is: @display Juliusz Chroboczek Department of Computer Science Mayfield Road Edinburgh EH9 3JZ Scotland, United Kingdom tel. +44/131/650-5163 fax. +44/131/667-7209 @end display @c @contents @bye ������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/fontname.dat�������������������������������������������������������������������0000644�0000000�0000000�00000000361�14233473143�013474� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������pcrr Courier pcrb Courier-Bold pcrro Courier-Oblique pcrbo Courier-BoldOblique ptmr Times-Roman ptmb Times-Bold ptmri Times-Italic ptmbi Times-BoldItalic phvr Helvetica phvb Helvetica-Bold phvro Helvetica-Oblique phvbo Helvetica-BoldOblique �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/helper.ps����������������������������������������������������������������������0000644�0000000�0000000�00000001333�14251171634�013016� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/onechar { /s exch def 100 0 moveto 100 1000 lineto 0 100 moveto 1000 100 lineto -100 10 900 { dup /len exch 50 mod 0 eq {8} {4} ifelse def dup 100 add 100 len sub moveto dup 100 add 100 len add lineto stroke dup 100 add 100 len sub exch moveto 100 add 100 len add exch lineto stroke } for /Times-BoldItalic-Ogonki findfont 500 scalefont setfont 100 100 moveto s show showpage } def /polchar { [(\241) (\261) (\312) (\352) % ogonki (\246\323) (\266\351) (\306\323) (\346\351) % s & c acute (\321\311) (\361\351) % n acute (\254\311) (\274\351) % Z acute (\257\311) (\277\351)] % z dotaccent {onechar} forall } def �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/hp.afm�������������������������������������������������������������������������0000644�0000000�0000000�00000010462�14233473143�012272� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment HP Roman encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme HPRomanEncoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N hyphen C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N tilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N .notdef C 161 ; N Agrave C 162 ; N Acircumflex C 163 ; N Egrave C 164 ; N Ecircumflex C 165 ; N Edieresis C 166 ; N Icircumflex C 167 ; N Idieresis C 168 ; N acute C 169 ; N grave C 170 ; N circumflex C 171 ; N dieresis C 172 ; N tilde C 173 ; N Ugrave C 174 ; N Ucircumflex C 175 ; N sterling C 176 ; N macron C 177 ; N Yacute C 178 ; N yacute C 179 ; N degree C 180 ; N Ccedilla C 181 ; N ccedilla C 182 ; N Ntilde C 183 ; N ntilde C 184 ; N exclamdown C 185 ; N questiondown C 186 ; N currency C 187 ; N sterling C 188 ; N yen C 189 ; N section C 190 ; N florin C 191 ; N cent C 192 ; N acircumflex C 193 ; N ecircumflex C 194 ; N ocircumflex C 195 ; N ucircumflex C 196 ; N aacute C 197 ; N eacute C 198 ; N oacute C 199 ; N uacute C 200 ; N agrave C 201 ; N egrave C 202 ; N ograve C 203 ; N ugrave C 204 ; N adieresis C 205 ; N edieresis C 206 ; N odieresis C 207 ; N udieresis C 208 ; N Aring C 209 ; N icircumflex C 210 ; N Oslash C 211 ; N AE C 212 ; N aring C 213 ; N iacute C 214 ; N oslash C 215 ; N ae C 216 ; N Adieresis C 217 ; N igrave C 218 ; N Odieresis C 219 ; N Udieresis C 220 ; N Eacute C 221 ; N idieresis C 222 ; N germandbls C 223 ; N Ocircumflex C 224 ; N Aacute C 225 ; N Atilde C 226 ; N atilde C 227 ; N Eth C 228 ; N eth C 229 ; N Iacute C 230 ; N Igrave C 231 ; N Oacute C 232 ; N Ograve C 233 ; N Otilde C 234 ; N otilde C 235 ; N Scaron C 236 ; N scaron C 237 ; N Uacute C 238 ; N Ydieresis C 239 ; N ydieresis C 240 ; N Thorn C 241 ; N thorn C 242 ; N periodcentered C 243 ; N mu C 244 ; N paragraph C 245 ; N threequarters C 246 ; N emdash C 247 ; N onequarter C 248 ; N onehalf C 249 ; N ordfeminine C 250 ; N ordmasculine C 251 ; N guillemotleft C 252 ; N filledbox C 253 ; N guillemotright C 254 ; N plusminus C 255 ; N .notdef EndCharMetrics EndFontMetrics ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/hp.enc�������������������������������������������������������������������������0000644�0000000�0000000�00000004255�14233473143�012277� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding HPRomanEncoding /HPRomanEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /Agrave /Acircumflex /Egrave /Ecircumflex /Edieresis /Icircumflex /Idieresis /acute /grave /circumflex /dieresis /tilde /Ugrave /Ucircumflex /sterling /macron /Yacute /yacute /degree /Ccedilla /ccedilla /Ntilde /ntilde /exclamdown /questiondown /currency /sterling /yen /section /florin /cent % 300 /acircumflex /ecircumflex /ocircumflex /ucircumflex /aacute /eacute /oacute /uacute /agrave /egrave /ograve /ugrave /adieresis /edieresis /odieresis /udieresis /Aring /icircumflex /Oslash /AE /aring /iacute /oslash /ae /Adieresis /igrave /Odieresis /Udieresis /Eacute /idieresis /germandbls /Ocircumflex /Aacute /Atilde /atilde /Eth /eth /Iacute /Igrave /Oacute /Ograve /Otilde /otilde /Scaron /scaron /Uacute /Ydieresis /ydieresis /Thorn /thorn /periodcentered /mu /paragraph /threequarters /emdash /onequarter /onehalf /ordfeminine /ordmasculine /guillemotleft /filledbox /guillemotright /plusminus /.notdef ] def %%EndResource ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ibmpc.afm����������������������������������������������������������������������0000644�0000000�0000000�00000010450�14233473143�012752� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment IBM PC's encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme IBMPCEncoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N heart C 4 ; N diamond C 5 ; N club C 6 ; N spade C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N paragraph C 21 ; N section C 22 ; N .notdef C 23 ; N .notdef C 24 ; N arrowup C 25 ; N arrowdown C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N arrowboth C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N hyphen C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N tilde C 127 ; N .notdef C 128 ; N Ccedilla C 129 ; N udieresis C 130 ; N eacute C 131 ; N acircumflex C 132 ; N adieresis C 133 ; N agrave C 134 ; N aring C 135 ; N ccedilla C 136 ; N ecircumflex C 137 ; N edieresis C 138 ; N egrave C 139 ; N idieresis C 140 ; N icircumflex C 141 ; N igrave C 142 ; N Adieresis C 143 ; N Aring C 144 ; N Eacute C 145 ; N ae C 146 ; N AE C 147 ; N ocircumflex C 148 ; N odieresis C 149 ; N ograve C 150 ; N ucircumflex C 151 ; N ugrave C 152 ; N ydieresis C 153 ; N Odieresis C 154 ; N Udieresis C 155 ; N cent C 156 ; N sterling C 157 ; N yen C 158 ; N .notdef C 159 ; N florin C 160 ; N aacute C 161 ; N iacute C 162 ; N oacute C 163 ; N uacute C 164 ; N ntilde C 165 ; N Ntilde C 166 ; N ordfeminine C 167 ; N degree C 168 ; N questiondown C 169 ; N .notdef C 170 ; N logicalnot C 171 ; N onehalf C 172 ; N onequarter C 173 ; N exclamdown C 174 ; N guillemotleft C 175 ; N guillemotright C 176 ; N .notdef C 177 ; N .notdef C 178 ; N .notdef C 179 ; N .notdef C 180 ; N .notdef C 181 ; N .notdef C 182 ; N .notdef C 183 ; N .notdef C 184 ; N .notdef C 185 ; N .notdef C 186 ; N .notdef C 187 ; N .notdef C 188 ; N .notdef C 189 ; N .notdef C 190 ; N .notdef C 191 ; N .notdef C 192 ; N .notdef C 193 ; N .notdef C 194 ; N .notdef C 195 ; N .notdef C 196 ; N .notdef C 197 ; N .notdef C 198 ; N .notdef C 199 ; N .notdef C 200 ; N .notdef C 201 ; N .notdef C 202 ; N .notdef C 203 ; N .notdef C 204 ; N .notdef C 205 ; N .notdef C 206 ; N .notdef C 207 ; N .notdef C 208 ; N .notdef C 209 ; N .notdef C 210 ; N .notdef C 211 ; N .notdef C 212 ; N .notdef C 213 ; N .notdef C 214 ; N .notdef C 215 ; N .notdef C 216 ; N .notdef C 217 ; N .notdef C 218 ; N .notdef C 219 ; N .notdef C 220 ; N .notdef C 221 ; N .notdef C 222 ; N .notdef C 223 ; N .notdef C 224 ; N alpha C 225 ; N germandbls C 226 ; N Gamma C 227 ; N pi C 228 ; N Sigma C 229 ; N sigma C 230 ; N mu C 231 ; N tau C 232 ; N phi C 233 ; N theta C 234 ; N Omega C 235 ; N delta C 236 ; N infinity C 237 ; N oslash C 238 ; N epsilon C 239 ; N intersection C 240 ; N equivalence C 241 ; N plusminus C 242 ; N greaterequal C 243 ; N lessequal C 244 ; N integraltp C 245 ; N integralbt C 246 ; N divide C 247 ; N approxequal C 248 ; N degree C 249 ; N dotaccent C 250 ; N dotaccent C 251 ; N radical C 252 ; N .notdef C 253 ; N twosuperior C 254 ; N .notdef C 255 ; N .notdef EndCharMetrics EndFontMetrics ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ibmpc.enc����������������������������������������������������������������������0000644�0000000�0000000�00000004241�14233473143�012755� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding IBMPCEncoding /IBMPCEncoding [ /.notdef /.notdef /.notdef /heart /diamond /club /spade /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /paragraph /section /.notdef /.notdef /arrowup /arrowdown /.notdef /.notdef /.notdef /arrowboth /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef % 200 /Ccedilla /udieresis /eacute /acircumflex /adieresis /agrave /aring /ccedilla /ecircumflex /edieresis /egrave /idieresis /icircumflex /igrave /Adieresis /Aring /Eacute /ae /AE /ocircumflex /odieresis /ograve /ucircumflex /ugrave /ydieresis /Odieresis /Udieresis /cent /sterling /yen /.notdef /florin /aacute /iacute /oacute /uacute /ntilde /Ntilde /ordfeminine /degree /questiondown /.notdef /logicalnot /onehalf /onequarter /exclamdown /guillemotleft /guillemotright /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 300 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /alpha /germandbls /Gamma /pi /Sigma /sigma /mu /tau /phi /theta /Omega /delta /infinity /oslash /epsilon /intersection /equivalence /plusminus /greaterequal /lessequal /integraltp /integralbt /divide /approxequal /degree /dotaccent /dotaccent /radical /.notdef /twosuperior /.notdef /.notdef ] def %%EndResource ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin1.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010524�14233473143�013052� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ISO-Latin-1 (ISO8859-1) encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme ISOLatin1Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N space C 161 ; N exclamdown C 162 ; N cent C 163 ; N sterling C 164 ; N currency C 165 ; N yen C 166 ; N brokenbar C 167 ; N section C 168 ; N dieresis C 169 ; N copyright C 170 ; N ordfeminine C 171 ; N guillemotleft C 172 ; N logicalnot C 173 ; N hyphen C 174 ; N registered C 175 ; N macron C 176 ; N degree C 177 ; N plusminus C 178 ; N twosuperior C 179 ; N threesuperior C 180 ; N acute C 181 ; N mu C 182 ; N paragraph C 183 ; N bullet C 184 ; N cedilla C 185 ; N onesuperior C 186 ; N ordmasculine C 187 ; N guillemotright C 188 ; N onequarter C 189 ; N onehalf C 190 ; N threequarters C 191 ; N questiondown C 192 ; N Agrave C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Atilde C 196 ; N Adieresis C 197 ; N Aring C 198 ; N AE C 199 ; N Ccedilla C 200 ; N Egrave C 201 ; N Eacute C 202 ; N Ecircumflex C 203 ; N Edieresis C 204 ; N Igrave C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Idieresis C 208 ; N Eth C 209 ; N Ntilde C 210 ; N Ograve C 211 ; N Oacute C 212 ; N Ocircumflex C 213 ; N Otilde C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Oslash C 217 ; N Ugrave C 218 ; N Uacute C 219 ; N Ucircumflex C 220 ; N Udieresis C 221 ; N Yacute C 222 ; N Thorn C 223 ; N germandbls C 224 ; N agrave C 225 ; N aacute C 226 ; N acircumflex C 227 ; N atilde C 228 ; N adieresis C 229 ; N aring C 230 ; N ae C 231 ; N ccedilla C 232 ; N egrave C 233 ; N eacute C 234 ; N ecircumflex C 235 ; N edieresis C 236 ; N igrave C 237 ; N iacute C 238 ; N icircumflex C 239 ; N idieresis C 240 ; N eth C 241 ; N ntilde C 242 ; N ograve C 243 ; N oacute C 244 ; N ocircumflex C 245 ; N otilde C 246 ; N odieresis C 247 ; N divide C 248 ; N oslash C 249 ; N ugrave C 250 ; N uacute C 251 ; N ucircumflex C 252 ; N udieresis C 253 ; N yacute C 254 ; N thorn C 255 ; N ydieresis EndCharMetrics EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin1.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004302�14233473143�013051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ISOLatin1Encoding /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 300 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndResource ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin2.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010454�14233473143�013055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ISO-Latin-2 (ISO8859-2) encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme ISOLatin2Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N space C 161 ; N Aogonek C 162 ; N breve C 163 ; N Lslash C 164 ; N currency C 165 ; N Lcaron C 166 ; N Sacute C 167 ; N section C 168 ; N dieresis C 169 ; N Scaron C 170 ; N Scedilla C 171 ; N Tcaron C 172 ; N Zacute C 173 ; N hyphen C 174 ; N Zcaron C 175 ; N Zdotaccent C 176 ; N degree C 177 ; N aogonek C 178 ; N ogonek C 179 ; N lslash C 180 ; N acute C 181 ; N lcaron C 182 ; N sacute C 183 ; N caron C 184 ; N cedilla C 185 ; N scaron C 186 ; N scedilla C 187 ; N tcaron C 188 ; N zacute C 189 ; N hungarumlaut C 190 ; N zcaron C 191 ; N zdotaccent C 192 ; N Racute C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Abreve C 196 ; N Adieresis C 197 ; N Lacute C 198 ; N Cacute C 199 ; N Ccedilla C 200 ; N Ccaron C 201 ; N Eacute C 202 ; N Eogonek C 203 ; N Edieresis C 204 ; N Ecaron C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Dcaron C 208 ; N Dbar C 209 ; N Nacute C 210 ; N Ncaron C 211 ; N Oacute C 212 ; N Ocircumflex C 213 ; N Ohungarumlaut C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Rcaron C 217 ; N Uring C 218 ; N Uacute C 219 ; N Uhungarumlaut C 220 ; N Udieresis C 221 ; N Yacute C 222 ; N Tcedilla C 223 ; N germandbls C 224 ; N racute C 225 ; N aacute C 226 ; N acircumflex C 227 ; N abreve C 228 ; N adieresis C 229 ; N lacute C 230 ; N cacute C 231 ; N ccedilla C 232 ; N ccaron C 233 ; N eacute C 234 ; N eogonek C 235 ; N edieresis C 236 ; N ecaron C 237 ; N iacute C 238 ; N icircumflex C 239 ; N dcaron C 240 ; N dbar C 241 ; N nacute C 242 ; N ncaron C 243 ; N oacute C 244 ; N ocircumflex C 245 ; N ohungarumlaut C 246 ; N odieresis C 247 ; N divide C 248 ; N rcaron C 249 ; N uring C 250 ; N uacute C 251 ; N uhungarumlaut C 252 ; N udieresis C 253 ; N yacute C 254 ; N tcedilla C 255 ; N dotaccent EndCharMetrics EndFontMetrics ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin2.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004232�14233473143�013054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ISOLatin2Encoding /ISOLatin2Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section /dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent % 300 /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin3.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010572�14233473143�013057� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ISO-Latin-3 (ISO8859-3) encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme ISOLatin3Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N space C 161 ; N Hstroke C 162 ; N breve C 163 ; N sterling C 164 ; N currency C 165 ; N yen C 166 ; N Hcircumflex C 167 ; N section C 168 ; N dieresis C 169 ; N Idotaccent C 170 ; N Scedilla C 171 ; N Gbreve C 172 ; N Jcircumflex C 173 ; N hyphen C 174 ; N registered C 175 ; N Zdotaccent C 176 ; N degree C 177 ; N hstroke C 178 ; N twosuperior C 179 ; N threesuperior C 180 ; N acute C 181 ; N mu C 182 ; N hcircumflex C 183 ; N bullet C 184 ; N cedilla C 185 ; N dotlessi C 186 ; N scedilla C 187 ; N gbreve C 188 ; N jcircumflex C 189 ; N onehalf C 190 ; N threequarters C 191 ; N zdotaccent C 192 ; N Agrave C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Atilde C 196 ; N Adieresis C 197 ; N Cdotaccent C 198 ; N Ccircumflex C 199 ; N Ccedilla C 200 ; N Egrave C 201 ; N Eacute C 202 ; N Ecircumflex C 203 ; N Edieresis C 204 ; N Igrave C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Idieresis C 208 ; N Eth C 209 ; N Ntilde C 210 ; N Ograve C 211 ; N Oacute C 212 ; N Ocircumflex C 213 ; N Gdotaccent C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Gcircumflex C 217 ; N Ugrave C 218 ; N Uacute C 219 ; N Ucircumflex C 220 ; N Udieresis C 221 ; N Ubreve C 222 ; N Scircumflex C 223 ; N germandbls C 224 ; N agrave C 225 ; N aacute C 226 ; N acircumflex C 227 ; N atilde C 228 ; N adieresis C 229 ; N cdotaccent C 230 ; N ccircumflex C 231 ; N ccedilla C 232 ; N egrave C 233 ; N eacute C 234 ; N ecircumflex C 235 ; N edieresis C 236 ; N igrave C 237 ; N iacute C 238 ; N icircumflex C 239 ; N idieresis C 240 ; N eth C 241 ; N ntilde C 242 ; N ograve C 243 ; N oacute C 244 ; N ocircumflex C 245 ; N gdotaccent C 246 ; N odieresis C 247 ; N divide C 248 ; N gcircumflex C 249 ; N ugrave C 250 ; N uacute C 251 ; N ucircumflex C 252 ; N udieresis C 253 ; N ubreve C 254 ; N scircumflex C 255 ; N dotaccent EndCharMetrics EndFontMetrics ��������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin3.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004350�14233473143�013056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ISOLatin3Encoding /ISOLatin3Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Hstroke /breve /sterling /currency /yen /Hcircumflex /section /dieresis /Idotaccent /Scedilla /Gbreve /Jcircumflex /hyphen /registered /Zdotaccent /degree /hstroke /twosuperior /threesuperior /acute /mu /hcircumflex /bullet /cedilla /dotlessi /scedilla /gbreve /jcircumflex /onehalf /threequarters /zdotaccent % 300 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Cdotaccent /Ccircumflex /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Gdotaccent /Odieresis /multiply /Gcircumflex /Ugrave /Uacute /Ucircumflex /Udieresis /Ubreve /Scircumflex /germandbls /agrave /aacute /acircumflex /atilde /adieresis /cdotaccent /ccircumflex /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /gdotaccent /odieresis /divide /gcircumflex /ugrave /uacute /ucircumflex /udieresis /ubreve /scircumflex /dotaccent ] def %%EndResource ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin4.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010425�14233473143�013055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ISO-Latin-4 (ISO8859-4) encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme ISOLatin4Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N space C 161 ; N Aogonek C 162 ; N kra C 163 ; N Rcedilla C 164 ; N currency C 165 ; N Itilde C 166 ; N Lcedilla C 167 ; N section C 168 ; N dieresis C 169 ; N Scaron C 170 ; N Emacron C 171 ; N Gcedilla C 172 ; N Tbar C 173 ; N hyphen C 174 ; N Zcaron C 175 ; N macron C 176 ; N degree C 177 ; N aogonek C 178 ; N ogonek C 179 ; N rcedilla C 180 ; N acute C 181 ; N itilde C 182 ; N lcedilla C 183 ; N caron C 184 ; N cedilla C 185 ; N scaron C 186 ; N emacron C 187 ; N gcedilla C 188 ; N tbar C 189 ; N Eng C 190 ; N zcaron C 191 ; N eng C 192 ; N Amacron C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Atilde C 196 ; N Adieresis C 197 ; N Aring C 198 ; N AE C 199 ; N Iogonek C 200 ; N Ccaron C 201 ; N Eacute C 202 ; N Eogonek C 203 ; N Edieresis C 204 ; N Edotaccent C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Imacron C 208 ; N Eth C 209 ; N Ncedilla C 210 ; N Omacron C 211 ; N Kcedilla C 212 ; N Ocircumflex C 213 ; N Otilde C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Oslash C 217 ; N Uogonek C 218 ; N Uacute C 219 ; N Ucircumflex C 220 ; N Udieresis C 221 ; N Utilde C 222 ; N Umacron C 223 ; N germandbls C 224 ; N amacron C 225 ; N aacute C 226 ; N acircumflex C 227 ; N atilde C 228 ; N adieresis C 229 ; N aring C 230 ; N ae C 231 ; N iogonek C 232 ; N ccaron C 233 ; N eacute C 234 ; N eogonek C 235 ; N edieresis C 236 ; N edotaccent C 237 ; N iacute C 238 ; N icircumflex C 239 ; N imacron C 240 ; N dbar C 241 ; N ncedilla C 242 ; N omacron C 243 ; N kcedilla C 244 ; N ocircumflex C 245 ; N otilde C 246 ; N odieresis C 247 ; N divide C 248 ; N oslash C 249 ; N uogonek C 250 ; N uacute C 251 ; N ucircumflex C 252 ; N udieresis C 253 ; N utilde C 254 ; N umacron C 255 ; N dotaccent EndCharMetrics EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin4.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004203�14233473143�013054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ISOLatin4Encoding /ISOLatin4Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Aogonek /kra /Rcedilla /currency /Itilde /Lcedilla /section /dieresis /Scaron /Emacron /Gcedilla /Tbar /hyphen /Zcaron /macron /degree /aogonek /ogonek /rcedilla /acute /itilde /lcedilla /caron /cedilla /scaron /emacron /gcedilla /tbar /Eng /zcaron /eng % 300 /Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek /Ccaron /Eacute /Eogonek /Edieresis /Edotaccent /Iacute /Icircumflex /Imacron /Eth /Ncedilla /Omacron /Kcedilla /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Utilde /Umacron /germandbls /amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek /ccaron /eacute /eogonek /edieresis /edotaccent /iacute /icircumflex /imacron /dbar /ncedilla /omacron /kcedilla /ocircumflex /otilde /odieresis /divide /oslash /uogonek /uacute /ucircumflex /udieresis /utilde /umacron /dotaccent ] def %%EndResource ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin5.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010546�14233473143�013062� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ISO-Latin-5 (ISO8859-9) encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme ISOLatin5Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N space C 161 ; N exclamdown C 162 ; N cent C 163 ; N sterling C 164 ; N currency C 165 ; N yen C 166 ; N brokenbar C 167 ; N section C 168 ; N dieresis C 169 ; N copyright C 170 ; N ordfeminine C 171 ; N guillemotleft C 172 ; N logicalnot C 173 ; N hyphen C 174 ; N registered C 175 ; N macron C 176 ; N degree C 177 ; N plusminus C 178 ; N twosuperior C 179 ; N threesuperior C 180 ; N acute C 181 ; N mu C 182 ; N paragraph C 183 ; N bullet C 184 ; N cedilla C 185 ; N onesuperior C 186 ; N ordmasculine C 187 ; N guillemotright C 188 ; N onequarter C 189 ; N onehalf C 190 ; N threequarters C 191 ; N questiondown C 192 ; N Agrave C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Atilde C 196 ; N Adieresis C 197 ; N Aring C 198 ; N AE C 199 ; N Ccedilla C 200 ; N Egrave C 201 ; N Eacute C 202 ; N Ecircumflex C 203 ; N Edieresis C 204 ; N Igrave C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Idieresis C 208 ; N Gbreve C 209 ; N Ntilde C 210 ; N Ograve C 211 ; N Oacute C 212 ; N Ocircumflex C 213 ; N Otilde C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Oslash C 217 ; N Ugrave C 218 ; N Uacute C 219 ; N Ucircumflex C 220 ; N Udieresis C 221 ; N Idotaccent C 222 ; N Scedilla C 223 ; N germandbls C 224 ; N agrave C 225 ; N aacute C 226 ; N acircumflex C 227 ; N atilde C 228 ; N adieresis C 229 ; N aring C 230 ; N ae C 231 ; N ccedilla C 232 ; N egrave C 233 ; N eacute C 234 ; N ecircumflex C 235 ; N edieresis C 236 ; N igrave C 237 ; N iacute C 238 ; N icircumflex C 239 ; N idieresis C 240 ; N gbreve C 241 ; N ntilde C 242 ; N ograve C 243 ; N oacute C 244 ; N ocircumflex C 245 ; N otilde C 246 ; N odieresis C 247 ; N divide C 248 ; N oslash C 249 ; N ugrave C 250 ; N uacute C 251 ; N ucircumflex C 252 ; N udieresis C 253 ; N dotlessi C 254 ; N scedilla C 255 ; N ydieresis EndCharMetrics EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin5.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004324�14233473143�013061� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ISOLatin5Encoding /ISOLatin5Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 300 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Gbreve /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Idotaccent /Scedilla /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /gbreve /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /dotlessi /scedilla /ydieresis ] def %%EndResource ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin6.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010417�14233473143�013060� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ISO Latin-6 (ISO8859-10) encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme ISOLatin6Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N space C 161 ; N Aogonek C 162 ; N Emacron C 163 ; N Gcedilla C 164 ; N Imacron C 165 ; N Itilde C 166 ; N Kcedilla C 167 ; N Lcedilla C 168 ; N acute C 169 ; N Rcedilla C 170 ; N Scaron C 171 ; N Tbar C 172 ; N Zcaron C 173 ; N hyphen C 174 ; N kra C 175 ; N Eng C 176 ; N dbar C 177 ; N aogonek C 178 ; N emacron C 179 ; N gcedilla C 180 ; N imacron C 181 ; N itilde C 182 ; N kcedilla C 183 ; N lcedilla C 184 ; N nacute C 185 ; N rcedilla C 186 ; N scaron C 187 ; N tbar C 188 ; N zcaron C 189 ; N section C 190 ; N germandbls C 191 ; N eng C 192 ; N Amacron C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Atilde C 196 ; N Adieresis C 197 ; N Aring C 198 ; N AE C 199 ; N Iogonek C 200 ; N Ccaron C 201 ; N Eacute C 202 ; N Eogonek C 203 ; N Edieresis C 204 ; N Edotaccent C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Idieresis C 208 ; N Dbar C 209 ; N Ncedilla C 210 ; N Omacron C 211 ; N Oacute C 212 ; N Ocircumflex C 213 ; N Otilde C 214 ; N Odieresis C 215 ; N Utilde C 216 ; N Oslash C 217 ; N Uogonek C 218 ; N Uacute C 219 ; N Ucircumflex C 220 ; N Udieresis C 221 ; N Yacute C 222 ; N Thorn C 223 ; N Umacron C 224 ; N amacron C 225 ; N aacute C 226 ; N acircumflex C 227 ; N atilde C 228 ; N adieresis C 229 ; N aring C 230 ; N ae C 231 ; N iogonek C 232 ; N ccaron C 233 ; N eacute C 234 ; N eogonek C 235 ; N edieresis C 236 ; N edotaccent C 237 ; N iacute C 238 ; N icircumflex C 239 ; N idieresis C 240 ; N eth C 241 ; N ncedilla C 242 ; N omacron C 243 ; N oacute C 244 ; N ocircumflex C 245 ; N otilde C 246 ; N odieresis C 247 ; N utilde C 248 ; N oslash C 249 ; N uogonek C 250 ; N uacute C 251 ; N ucircumflex C 252 ; N udieresis C 253 ; N yacute C 254 ; N thorn C 255 ; N umacron EndCharMetrics EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin6.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004174�14233473143�013065� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ISOLatin6Encoding /ISOLatin6Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Aogonek /Emacron /Gcedilla /Imacron /Itilde /Kcedilla /Lcedilla /acute /Rcedilla /Scaron /Tbar /Zcaron /hyphen /kra /Eng /dbar /aogonek /emacron /gcedilla /imacron /itilde /kcedilla /lcedilla /nacute /rcedilla /scaron /tbar /zcaron /section /germandbls /eng % 300 /Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek /Ccaron /Eacute /Eogonek /Edieresis /Edotaccent /Iacute /Icircumflex /Idieresis /Dbar /Ncedilla /Omacron /Oacute /Ocircumflex /Otilde /Odieresis /Utilde /Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /Umacron /amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek /ccaron /eacute /eogonek /edieresis /edotaccent /iacute /icircumflex /idieresis /eth /ncedilla /omacron /oacute /ocircumflex /otilde /odieresis /utilde /oslash /uogonek /uacute /ucircumflex /udieresis /yacute /thorn /umacron ] def %%EndResource ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin7.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010521�14233473143�013055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ISO-Latin-7 (ISO8859-13) encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme ISOLatin7Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N space C 161 ; N quotedblright C 162 ; N cent C 163 ; N sterling C 164 ; N currency C 165 ; N quotedblbase C 166 ; N brokenbar C 167 ; N section C 168 ; N Oslash C 169 ; N copyright C 170 ; N Rcedilla C 171 ; N guillemotleft C 172 ; N logicalnot C 173 ; N hyphen C 174 ; N registered C 175 ; N AE C 176 ; N degree C 177 ; N plusminus C 178 ; N twosuperior C 179 ; N threesuperior C 180 ; N quotedblleft C 181 ; N mu C 182 ; N paragraph C 183 ; N bullet C 184 ; N oslash C 185 ; N onesuperior C 186 ; N rcedilla C 187 ; N guillemotright C 188 ; N onequarter C 189 ; N onehalf C 190 ; N threequarters C 191 ; N ae C 192 ; N Aogonek C 193 ; N Iogonek C 194 ; N Amacron C 195 ; N Cacute C 196 ; N Adieresis C 197 ; N Aring C 198 ; N Eogonek C 199 ; N Emacron C 200 ; N Ccaron C 201 ; N Eacute C 202 ; N Zacute C 203 ; N Edotaccent C 204 ; N Gcedilla C 205 ; N Kcedilla C 206 ; N Imacron C 207 ; N Lcedilla C 208 ; N Scaron C 209 ; N Nacute C 210 ; N Ncedilla C 211 ; N Oacute C 212 ; N Omacron C 213 ; N Otilde C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Uogonek C 217 ; N Lslash C 218 ; N Sacute C 219 ; N Umacron C 220 ; N Udieresis C 221 ; N Zdotaccent C 222 ; N Zcaron C 223 ; N germandbls C 224 ; N aogonek C 225 ; N iogonek C 226 ; N amacron C 227 ; N cacute C 228 ; N adieresis C 229 ; N aring C 230 ; N eogonek C 231 ; N emacron C 232 ; N ccaron C 233 ; N eacute C 234 ; N zacute C 235 ; N edotaccent C 236 ; N gcedilla C 237 ; N kcedilla C 238 ; N imacron C 239 ; N lcedilla C 240 ; N scaron C 241 ; N nacute C 242 ; N ncedilla C 243 ; N oacute C 244 ; N omacron C 245 ; N otilde C 246 ; N odieresis C 247 ; N divide C 248 ; N uogonek C 249 ; N lslash C 250 ; N sacute C 251 ; N umacron C 252 ; N udieresis C 253 ; N zdotaccent C 254 ; N zcaron C 255 ; N quoteright EndCharMetrics EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin7.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004276�14233473143�013071� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ISOLatin7Encoding /ISOLatin7Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /quotedblright /cent /sterling /currency /quotedblbase /brokenbar /section /Oslash /copyright /Rcedilla /guillemotleft /logicalnot /hyphen /registered /AE /degree /plusminus /twosuperior /threesuperior /quotedblleft /mu /paragraph /bullet /oslash /onesuperior /rcedilla /guillemotright /onequarter /onehalf /threequarters /ae % 300 /Aogonek /Iogonek /Amacron /Cacute /Adieresis /Aring /Eogonek /Emacron /Ccaron /Eacute /Zacute /Edotaccent /Gcedilla /Kcedilla /Imacron /Lcedilla /Scaron /Nacute /Ncedilla /Oacute /Omacron /Otilde /Odieresis /multiply /Uogonek /Lslash /Sacute /Umacron /Udieresis /Zdotaccent /Zcaron /germandbls /aogonek /iogonek /amacron /cacute /adieresis /aring /eogonek /emacron /ccaron /eacute /zacute /edotaccent /gcedilla /kcedilla /imacron /lcedilla /scaron /nacute /ncedilla /oacute /omacron /otilde /odieresis /divide /uogonek /lslash /sacute /umacron /udieresis /zdotaccent /zcaron /quoteright ] def %%EndResource ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin9.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010473�14233473143�013065� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment ISO-Latin-9 (ISO8859-15) encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme ISOLatin9Encoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N .notdef C 130 ; N .notdef C 131 ; N .notdef C 132 ; N .notdef C 133 ; N .notdef C 134 ; N .notdef C 135 ; N .notdef C 136 ; N .notdef C 137 ; N .notdef C 138 ; N .notdef C 139 ; N .notdef C 140 ; N .notdef C 141 ; N .notdef C 142 ; N .notdef C 143 ; N .notdef C 144 ; N .notdef C 145 ; N .notdef C 146 ; N .notdef C 147 ; N .notdef C 148 ; N .notdef C 149 ; N .notdef C 150 ; N .notdef C 151 ; N .notdef C 152 ; N .notdef C 153 ; N .notdef C 154 ; N .notdef C 155 ; N .notdef C 156 ; N .notdef C 157 ; N .notdef C 158 ; N .notdef C 159 ; N .notdef C 160 ; N space C 161 ; N exclamdown C 162 ; N cent C 163 ; N sterling C 164 ; N Euro C 165 ; N yen C 166 ; N Scaron C 167 ; N section C 168 ; N scaron C 169 ; N copyright C 170 ; N ordfeminine C 171 ; N guillemotleft C 172 ; N logicalnot C 173 ; N hyphen C 174 ; N registered C 175 ; N macron C 176 ; N degree C 177 ; N plusminus C 178 ; N twosuperior C 179 ; N threesuperior C 180 ; N Zcaron C 181 ; N mu C 182 ; N paragraph C 183 ; N bullet C 184 ; N zcaron C 185 ; N onesuperior C 186 ; N ordmasculine C 187 ; N guillemotright C 188 ; N OE C 189 ; N oe C 190 ; N Ydieresis C 191 ; N questiondown C 192 ; N Agrave C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Atilde C 196 ; N Adieresis C 197 ; N Aring C 198 ; N AE C 199 ; N Ccedilla C 200 ; N Egrave C 201 ; N Eacute C 202 ; N Ecircumflex C 203 ; N Edieresis C 204 ; N Igrave C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Idieresis C 208 ; N Eth C 209 ; N Ntilde C 210 ; N Ograve C 211 ; N Oacute C 212 ; N Ocircumflex C 213 ; N Otilde C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Oslash C 217 ; N Ugrave C 218 ; N Uacute C 219 ; N Ucircumflex C 220 ; N Udieresis C 221 ; N Yacute C 222 ; N Thorn C 223 ; N germandbls C 224 ; N agrave C 225 ; N aacute C 226 ; N acircumflex C 227 ; N atilde C 228 ; N adieresis C 229 ; N aring C 230 ; N ae C 231 ; N ccedilla C 232 ; N egrave C 233 ; N eacute C 234 ; N ecircumflex C 235 ; N edieresis C 236 ; N igrave C 237 ; N iacute C 238 ; N icircumflex C 239 ; N idieresis C 240 ; N eth C 241 ; N ntilde C 242 ; N ograve C 243 ; N oacute C 244 ; N ocircumflex C 245 ; N otilde C 246 ; N odieresis C 247 ; N divide C 248 ; N oslash C 249 ; N ugrave C 250 ; N uacute C 251 ; N ucircumflex C 252 ; N udieresis C 253 ; N yacute C 254 ; N thorn C 255 ; N ydieresis EndCharMetrics EndFontMetrics �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/latin9.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004250�14233473143�013063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding ISOLatin9Encoding /ISOLatin9Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /Euro /yen /Scaron /section /scaron /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /Zcaron /mu /paragraph /bullet /zcaron /onesuperior /ordmasculine /guillemotright /OE /oe /Ydieresis /questiondown % 300 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndResource ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/m4/����������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132365�011576� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/m4/Makefile.am�����������������������������������������������������������������0000644�0000000�0000000�00000001431�14273213734�013550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # aclocal_macros = perl.m4 EXTRA_DIST = $(aclocal_macros) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/m4/Makefile.in�����������������������������������������������������������������0000644�0000000�0000000�00000027151�14424520614�013564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ IBMFONTS = @IBMFONTS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ aclocal_macros = perl.m4 EXTRA_DIST = $(aclocal_macros) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign m4/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/m4/perl.m4���������������������������������������������������������������������0000644�0000000�0000000�00000004100�14251166717�012720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 2 dnl From Jim Meyering. dnl Find a new-enough version of Perl. dnl AC_DEFUN([jm_PERL], [ dnl FIXME: don't hard-code 5.003 dnl FIXME: should we cache the result? AC_MSG_CHECKING([for perl5.003 or newer]) if test "${PERL+set}" = set; then # `PERL' is set in the user's environment. candidate_perl_names="$PERL" perl_specified=yes else candidate_perl_names='perl perl5' perl_specified=no fi found=no AC_SUBST(PERL) PERL="$missing_dir/missing perl" for perl in $candidate_perl_names; do # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. if ( $perl -e 'require 5.003' ) > /dev/null 2>&1; then PERL=$perl found=yes break fi done AC_MSG_RESULT($found) test $found = no && AC_MSG_WARN([ *** You don't seem to have perl5.003 or newer installed. *** Because of that, you may be unable to regenerate certain files *** if you modify the sources from which they are derived.] ) ]) dnl The same, but the path to perl is wanted. dnl dnl By Akim Demaille, do not flame Jim for this :) AC_DEFUN([jm_PATH_PERL], [ dnl FIXME: don't hard-code 5.003 dnl FIXME: should we cache the result? if test "${PERL+set}" = set; then # `PERL' is set in the user's environment. candidate_perl_names="$PERL" perl_specified=yes else candidate_perl_names='perl perl5' perl_specified=no fi found=no for perl_name in $candidate_perl_names; do # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. AC_PATH_PROG(PERL, $perl_name, no) if test "$PERL" != "no" \ && ( $PERL -e 'require 5.003' ) > /dev/null 2>&1; then found=yes break fi done AC_SUBST(PERL) if test $found = no; then PERL="/usr/local/bin/perl" AC_MSG_WARN([ *** You don't seem to have perl5.003 or newer installed. *** Because of that, you may be unable to regenerate certain files *** if you modify the sources from which they are derived.] ) fi ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/mac.afm������������������������������������������������������������������������0000644�0000000�0000000�00000010543�14233473143�012423� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Macintosh encoding in AFM format. Comment This is not strictly an AFM file. EncodingScheme MacintoshEncoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N .notdef C 2 ; N .notdef C 3 ; N .notdef C 4 ; N .notdef C 5 ; N .notdef C 6 ; N .notdef C 7 ; N .notdef C 8 ; N .notdef C 9 ; N .notdef C 10 ; N .notdef C 11 ; N .notdef C 12 ; N .notdef C 13 ; N .notdef C 14 ; N .notdef C 15 ; N .notdef C 16 ; N .notdef C 17 ; N .notdef C 18 ; N .notdef C 19 ; N .notdef C 20 ; N .notdef C 21 ; N .notdef C 22 ; N .notdef C 23 ; N .notdef C 24 ; N .notdef C 25 ; N .notdef C 26 ; N .notdef C 27 ; N .notdef C 28 ; N .notdef C 29 ; N .notdef C 30 ; N .notdef C 31 ; N .notdef C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N hyphen C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N tilde C 127 ; N .notdef C 128 ; N Adieresis C 129 ; N Aring C 130 ; N Ccedilla C 131 ; N Eacute C 132 ; N Ntilde C 133 ; N Odieresis C 134 ; N Udieresis C 135 ; N aacute C 136 ; N agrave C 137 ; N acircumflex C 138 ; N adieresis C 139 ; N atilde C 140 ; N aring C 141 ; N ccedilla C 142 ; N eacute C 143 ; N egrave C 144 ; N ecircumflex C 145 ; N edieresis C 146 ; N iacute C 147 ; N igrave C 148 ; N icircumflex C 149 ; N idieresis C 150 ; N ntilde C 151 ; N oacute C 152 ; N ograve C 153 ; N ocircumflex C 154 ; N odieresis C 155 ; N otilde C 156 ; N uacute C 157 ; N ugrave C 158 ; N ucircumflex C 159 ; N udieresis C 160 ; N dagger C 161 ; N degree C 162 ; N cent C 163 ; N sterling C 164 ; N section C 165 ; N bullet C 166 ; N paragraph C 167 ; N germandbls C 168 ; N registered C 169 ; N copyright C 170 ; N trademark C 171 ; N acute C 172 ; N dieresis C 173 ; N notequal C 174 ; N AE C 175 ; N Oslash C 176 ; N infinity C 177 ; N plusminus C 178 ; N lessequal C 179 ; N greaterequal C 180 ; N yen C 181 ; N mu C 182 ; N partialdiff C 183 ; N Sigma C 184 ; N product C 185 ; N pi C 186 ; N integral C 187 ; N ordfeminine C 188 ; N ordmasculine C 189 ; N Omega C 190 ; N ae C 191 ; N oslash C 192 ; N questiondown C 193 ; N exclamdown C 194 ; N logicalnot C 195 ; N radical C 196 ; N florin C 197 ; N approxequal C 198 ; N Delta C 199 ; N guillemotleft C 200 ; N guillemotright C 201 ; N ellipsis C 202 ; N space C 203 ; N Agrave C 204 ; N Atilde C 205 ; N Otilde C 206 ; N OE C 207 ; N oe C 208 ; N endash C 209 ; N emdash C 210 ; N quotedblleft C 211 ; N quotedblright C 212 ; N quoteleft C 213 ; N quoteright C 214 ; N divide C 215 ; N lozenge C 216 ; N ydieresis C 217 ; N Ydieresis C 218 ; N fraction C 219 ; N currency C 220 ; N guilsinglleft C 221 ; N guilsinglright C 222 ; N fi C 223 ; N fl C 224 ; N daggerdbl C 225 ; N periodcentered C 226 ; N quotesinglbase C 227 ; N quotedblbase C 228 ; N perthousand C 229 ; N Acircumflex C 230 ; N Ecircumflex C 231 ; N Aacute C 232 ; N Edieresis C 233 ; N Egrave C 234 ; N Iacute C 235 ; N Icircumflex C 236 ; N Idieresis C 237 ; N Igrave C 238 ; N Oacute C 239 ; N Ocircumflex C 240 ; N .notdef C 241 ; N Ograve C 242 ; N Uacute C 243 ; N Ucircumflex C 244 ; N Ugrave C 245 ; N dotlessi C 246 ; N circumflex C 247 ; N tilde C 248 ; N macron C 249 ; N breve C 250 ; N dotaccent C 251 ; N ring C 252 ; N cedilla C 253 ; N hungarumlaut C 254 ; N ogonek C 255 ; N caron EndCharMetrics EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/mac.enc������������������������������������������������������������������������0000644�0000000�0000000�00000004337�14233473143�012431� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding MacintoshEncoding /MacintoshEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef % 200 /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /degree /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /notequal /AE /Oslash /infinity /plusminus /lessequal /greaterequal /yen /mu /partialdiff /Sigma /product /pi /integral /ordfeminine /ordmasculine /Omega /ae /oslash % 300 /questiondown /exclamdown /logicalnot /radical /florin /approxequal /Delta /guillemotleft /guillemotright /ellipsis /space /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /divide /lozenge /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def %%EndResource �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ogonki.afm���������������������������������������������������������������������0000644�0000000�0000000�00000010755�14233473143�013156� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Extended ISO-Latin-2 encoding in AFM format. Comment This encoding contains all the diacritical marks you dreamt of Comment As it is only ever used internally, it may use the control range Comment This is not strictly an AFM file. EncodingScheme OgonkiEncoding StartCharMetrics 256 C 0 ; N .notdef C 1 ; N exclamdown C 2 ; N cent C 3 ; N sterling C 4 ; N fraction C 5 ; N yen C 6 ; N florin C 7 ; N quotesingle C 8 ; N quotedblleft C 9 ; N guillemotleft C 10 ; N guilsinglleft C 11 ; N guilsinglright C 12 ; N fi C 13 ; N fl C 14 ; N endash C 15 ; N dagger C 16 ; N daggerdbl C 17 ; N periodcentered C 18 ; N paragraph C 19 ; N bullet C 20 ; N quotesinglbase C 21 ; N quotedblbase C 22 ; N quotedblright C 23 ; N guillemotright C 24 ; N ellipsis C 25 ; N perthousand C 26 ; N questiondown C 27 ; N grave C 28 ; N circumflex C 29 ; N tilde C 30 ; N macron C 31 ; N ring C 32 ; N space C 33 ; N exclam C 34 ; N quotedbl C 35 ; N numbersign C 36 ; N dollar C 37 ; N percent C 38 ; N ampersand C 39 ; N quoteright C 40 ; N parenleft C 41 ; N parenright C 42 ; N asterisk C 43 ; N plus C 44 ; N comma C 45 ; N minus C 46 ; N period C 47 ; N slash C 48 ; N zero C 49 ; N one C 50 ; N two C 51 ; N three C 52 ; N four C 53 ; N five C 54 ; N six C 55 ; N seven C 56 ; N eight C 57 ; N nine C 58 ; N colon C 59 ; N semicolon C 60 ; N less C 61 ; N equal C 62 ; N greater C 63 ; N question C 64 ; N at C 65 ; N A C 66 ; N B C 67 ; N C C 68 ; N D C 69 ; N E C 70 ; N F C 71 ; N G C 72 ; N H C 73 ; N I C 74 ; N J C 75 ; N K C 76 ; N L C 77 ; N M C 78 ; N N C 79 ; N O C 80 ; N P C 81 ; N Q C 82 ; N R C 83 ; N S C 84 ; N T C 85 ; N U C 86 ; N V C 87 ; N W C 88 ; N X C 89 ; N Y C 90 ; N Z C 91 ; N bracketleft C 92 ; N backslash C 93 ; N bracketright C 94 ; N asciicircum C 95 ; N underscore C 96 ; N quoteleft C 97 ; N a C 98 ; N b C 99 ; N c C 100 ; N d C 101 ; N e C 102 ; N f C 103 ; N g C 104 ; N h C 105 ; N i C 106 ; N j C 107 ; N k C 108 ; N l C 109 ; N m C 110 ; N n C 111 ; N o C 112 ; N p C 113 ; N q C 114 ; N r C 115 ; N s C 116 ; N t C 117 ; N u C 118 ; N v C 119 ; N w C 120 ; N x C 121 ; N y C 122 ; N z C 123 ; N braceleft C 124 ; N bar C 125 ; N braceright C 126 ; N asciitilde C 127 ; N .notdef C 128 ; N .notdef C 129 ; N emdash C 130 ; N AE C 131 ; N ordfeminine C 132 ; N Oslash C 133 ; N OE C 134 ; N ordmasculine C 135 ; N ae C 136 ; N dotlessi C 137 ; N oslash C 138 ; N oe C 139 ; N threesuperior C 140 ; N thorn C 141 ; N twosuperior C 142 ; N threequarters C 143 ; N Eth C 144 ; N trademark C 145 ; N registered C 146 ; N onequarter C 147 ; N Thorn C 148 ; N logicalnot C 149 ; N plusminus C 150 ; N minus C 151 ; N onesuperior C 152 ; N copyright C 153 ; N mu C 154 ; N eth C 155 ; N brokenbar C 156 ; N onehalf C 157 ; N dotlessj C 158 ; N Euro C 159 ; N .notdef C 160 ; N space C 161 ; N Aogonek C 162 ; N breve C 163 ; N Lslash C 164 ; N currency C 165 ; N Lcaron C 166 ; N Sacute C 167 ; N section C 168 ; N dieresis C 169 ; N Scaron C 170 ; N Scedilla C 171 ; N Tcaron C 172 ; N Zacute C 173 ; N hyphen C 174 ; N Zcaron C 175 ; N Zdotaccent C 176 ; N degree C 177 ; N aogonek C 178 ; N ogonek C 179 ; N lslash C 180 ; N acute C 181 ; N lcaron C 182 ; N sacute C 183 ; N caron C 184 ; N cedilla C 185 ; N scaron C 186 ; N scedilla C 187 ; N tcaron C 188 ; N zacute C 189 ; N hungarumlaut C 190 ; N zcaron C 191 ; N zdotaccent C 192 ; N Racute C 193 ; N Aacute C 194 ; N Acircumflex C 195 ; N Abreve C 196 ; N Adieresis C 197 ; N Lacute C 198 ; N Cacute C 199 ; N Ccedilla C 200 ; N Ccaron C 201 ; N Eacute C 202 ; N Eogonek C 203 ; N Edieresis C 204 ; N Ecaron C 205 ; N Iacute C 206 ; N Icircumflex C 207 ; N Dcaron C 208 ; N Eth C 209 ; N Nacute C 210 ; N Ncaron C 211 ; N Oacute C 212 ; N Ocircumflex C 213 ; N Ohungarumlaut C 214 ; N Odieresis C 215 ; N multiply C 216 ; N Rcaron C 217 ; N Uring C 218 ; N Uacute C 219 ; N Uhungarumlaut C 220 ; N Udieresis C 221 ; N Yacute C 222 ; N Tcedilla C 223 ; N germandbls C 224 ; N racute C 225 ; N aacute C 226 ; N acircumflex C 227 ; N abreve C 228 ; N adieresis C 229 ; N lacute C 230 ; N cacute C 231 ; N ccedilla C 232 ; N ccaron C 233 ; N eacute C 234 ; N eogonek C 235 ; N edieresis C 236 ; N ecaron C 237 ; N iacute C 238 ; N icircumflex C 239 ; N dcaron C 240 ; N dbar C 241 ; N nacute C 242 ; N ncaron C 243 ; N oacute C 244 ; N ocircumflex C 245 ; N ohungarumlaut C 246 ; N odieresis C 247 ; N divide C 248 ; N rcaron C 249 ; N uring C 250 ; N uacute C 251 ; N uhungarumlaut C 252 ; N udieresis C 253 ; N yacute C 254 ; N tcedilla C 255 ; N dotaccent EndCharMetrics EndFontMetrics �������������������a2ps-4.15.5/ogonkify/ogonki.enc���������������������������������������������������������������������0000644�0000000�0000000�00000004313�14233473143�013151� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding OgonkiEncoding /OgonkiEncoding [ /.notdef /exclamdown /cent /sterling /fraction /yen /florin /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /endash /dagger /daggerdbl /periodcentered /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /questiondown /grave /circumflex /tilde /macron /ring /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /emdash /AE /ordfeminine /Oslash /OE /ordmasculine /ae /dotlessi /oslash /oe /threesuperior /thorn /twosuperior /threequarters /Eth /trademark /registered /onequarter /Thorn /logicalnot /plusminus /minus /onesuperior /copyright /mu /eth /brokenbar /onehalf /dotlessj /Euro /.notdef /space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section /dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent % 300 /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Eth /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ogonkify.in.in�����������������������������������������������������������������0000644�0000000�0000000�00000022123�14233473143�013755� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!@PERL@ # Convert the PostScript output of Netscape to use an arbitrary encoding. # Do font remapping if asked for. # By J. Chroboczek <jec at dcs.ed.ac.uk> # # Copyright (c) 1996-1999 by J. Chroboczek # This code may be distributed under the terms of the # GNU Public License, either version 3 of the license, or (at your # option) any later version. # Time-stamp: <99/05/14 04:09:10 jec> # Warning: this program is written in Perl $PROGNAME='ogonkify'; $VERSION='v. 0.7.0 by J. Chroboczek'; # Directory with the IBM Courier fonts $IBMFONTS="@IBMFONTS@"; # Directory with ogonkify's prologs $LIBDIR="@LIBDIR@"; @procsets=(); @downloadFonts=(); $encoding='L2'; %encodings=('L1',"$LIBDIR/latin1.enc",'L2',"$LIBDIR/latin2.enc", 'L3',"$LIBDIR/latin3.enc",'L4',"$LIBDIR/latin4.enc", 'L5',"$LIBDIR/latin5.enc",'L6',"$LIBDIR/latin6.enc", 'L7',"$LIBDIR/latin7.enc",'L9',"$LIBDIR/latin9.enc", 'CP1250',"$LIBDIR/cp1250.enc",'cp1250',"$LIBDIR/cp1250.enc", 'ibmpc',"$LIBDIR/ibmpc.enc",'mac',"$LIBDIR/mac.enc", 'HP',"$LIBDIR/hp.enc"); %encodingvecs=('L1','ISOLatin1Encoding','L2','ISOLatin2Encoding', 'L3','ISOLatin3Encoding','L4','ISOLatin4Encoding', 'L5','ISOLatin5Encoding','L6','ISOLatin6Encoding', 'L7','ISOLatin7Encoding','L9','ISOLatin9Encoding', 'CP1250','CP1250Encoding','cp1250','CP1250Encoding', 'ibmpc','IBMPCEncoding', 'mac','MacintoshEncoding', 'HP','HPRomanEncoding'); @standardFont= ('Courier', 'Courier-Oblique', 'Courier-Bold', 'Courier-BoldItalic', 'Times-Roman', 'Times-Italic', 'Times-Bold', 'Times-BoldItalic', 'Helvetica', 'Helvetica-Oblique', 'Helvetica-Bold', 'Helvetica-BoldOblique'); %remappings=(); $doNetscape=0; $doMosaic=0; $doStarOffice=0; $doApplixWare=0; $doXfig=0; $doMp=0; $recodeStandardFonts=0; $eurify=0; sub courierRemappings { $remappings{'Courier-Oblique'}="Courier-Italic"; $remappings{'Courier-BoldOblique'}="Courier-BoldItalic"; if($doApplixWare) { $remappings{'Courier_AX'}="Courier"; $remappings{'Courier-Bold_AX'}="Courier-Bold"; $remappings{'Courier-Oblique_AX'}="Courier-Italic"; $remappings{'Courier-BoldOblique_AX'}="Courier-BoldItalic"; } } sub timesRemappings { $remappings{'Times-Roman'}="Times-Roman-Ogonki"; $remappings{'Times-Bold'}="Times-Bold-Ogonki"; $remappings{'Times-Italic'}="Times-Italic-Ogonki"; $remappings{'Times-BoldItalic'}="Times-BoldItalic-Ogonki"; if($doApplixWare) { $remappings{'Times-Roman_AX'}="Times-Roman-Ogonki"; $remappings{'Times-Bold_AX'}="Times-Bold-Ogonki"; $remappings{'Times-Italic_AX'}="Times-Italic-Ogonki"; $remappings{'Times-BoldItalic_AX'}="Times-BoldItalic-Ogonki"; } } sub helveticaRemappings { $remappings{'Helvetica'}="Helvetica-Ogonki"; $remappings{'Helvetica-Bold'}="Helvetica-Bold-Ogonki"; $remappings{'Helvetica-Oblique'}="Helvetica-Oblique-Ogonki"; $remappings{'Helvetica-BoldOblique'}="Helvetica-BoldOblique-Ogonki"; if($doApplixWare) { $remappings{'Helvetica_AX'}="Helvetica-Ogonki"; $remappings{'Helvetica-Bold_AX'}="Helvetica-Bold-Ogonki"; $remappings{'Helvetica-Oblique_AX'}="Helvetica-Oblique-Ogonki"; $remappings{'Helvetica-BoldOblique_AX'}="Helvetica-BoldOblique-Ogonki"; } } sub adobeCourierRemappings { $remappings{'Courier'}="Courier-Ogonki"; $remappings{'Courier-Bold'}="Courier-Bold-Ogonki"; $remappings{'Courier-Oblique'}="Courier-Oblique-Ogonki"; $remappings{'Courier-BoldOblique'}="Courier-BoldOblique-Ogonki"; if($doApplixWare) { $remappings{'Courier_AX'}="Courier-Ogonki"; $remappings{'Courier-Bold_AX'}="Courier-Bold-Ogonki"; $remappings{'Courier-Oblique_AX'}="Courier-Oblique-Ogonki"; $remappings{'Courier-BoldOblique_AX'}="Courier-BoldOblique-Ogonki"; } } sub courierFonts { while(<$IBMFONTS>) { $downloadFonts[$#downloadFonts+1]=$_; } } sub timesFonts { $compositeProcset=TRUE; $downloadFonts[$#downloadFonts+1]="$LIBDIR/ptmr-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/ptmri-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/ptmb-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/ptmbi-o.ps"; } sub adobeCourierFonts { $compositeProcset=TRUE; $downloadFonts[$#downloadFonts+1]="$LIBDIR/pcrr-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/pcrro-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/pcrb-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/pcrbo-o.ps"; } sub helveticaFonts { $compositeProcset=TRUE; $downloadFonts[$#downloadFonts+1]="$LIBDIR/phvr-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/phvro-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/phvb-o.ps"; $downloadFonts[$#downloadFonts+1]="$LIBDIR/phvbo-o.ps"; } sub procset { local($ps)=@_; open(PROCSET,$ps); if($_=<PROCSET>) { print; } else { die "File $ps not found; stopped"; } while(<PROCSET>) { print; } } sub downloadFont { local($ps)=@_; # print("%%BeginResource: font $ps\n"); # this is not DSC conforming open(PROCSET,$ps); if($_=<PROCSET>) { print; } else { die "File $ps not found; stopped"; } while(<PROCSET>) { print; } print("%%EndResource\n"); } sub remap { local($from,$to,$newencoding)=@_; print <<"ALAMAKOTA"; /$to findfont dup length 1 add dict begin {1 index /FID ne {def} {pop pop} ifelse} forall ALAMAKOTA if($newencoding) { print "/Encoding $newencoding def\n"; } print <<"ALAMAKOTA"; currentdict end /$from exch definefont pop ALAMAKOTA } sub eurifyFont { local($name)=@_; print "/$name /$name eurifyFont\n"; } sub usage { local($oldfh)=select(STDERR); print <<"ALAMAKOTA"; $PROGNAME $VERSION $PROGNAME -p<procset> -e<encoding> -rOld=New -a -c -h -t -A -C -H -T -AT -CT -ATH -CTH -E -N -M -mp -SO -AX -F -RS -- file ... ALAMAKOTA select($oldfh); } while(defined($_ = $ARGV[0]) && /^-/) { shift; if(/^--$/) {last;} elsif (/^-p$/) { $procsets[$#procsets+1]=$ARGV[0]; shift; } elsif (/^-p(.*)/) { $procsets[$#procsets+1]=$1; } elsif (/^-e$/) { $encoding=$ARGV[0]; shift; } elsif (/^-e(.*)/) { $encoding=$1 ; } elsif (/^-r(.*)=(.*)/) { $remappings{$1}=$2; } elsif (/^-c$/) { &courierRemappings; } elsif (/^-C$/) { &courierRemappings; &courierFonts; } elsif (/^-a$/) { &adobeCourierRemappings; } elsif (/^-t$/) { ×Remappings; } elsif (/^-h$/) { &helveticaRemappings ; } elsif (/^-T$/) { ×Remappings; ×Fonts; } elsif (/^-A$/) { &adobeCourierRemappings; &adobeCourierFonts; } elsif (/^-H$/) { &helveticaRemappings; &helveticaFonts; } elsif (/^-CT$/){ &courierRemappings; ×Remappings; &courierFonts; ×Fonts; } elsif (/^-AT$/){ &adobeCourierRemappings; ×Remappings; &adobeCourierFonts; ×Fonts; } elsif (/^-CTH$/){ &courierRemappings; ×Remappings; &helveticaRemappings; &courierFonts; ×Fonts; &helveticaFonts; } elsif (/^-ATH$/){ &adobeCourierRemappings; ×Remappings; &helveticaRemappings; &adobeCourierFonts; ×Fonts; &helveticaFonts; } elsif(/^-E$/) { $compositeProcset=TRUE; $eurify=TRUE; } elsif (/^-RS$/) { $recodeStandardFonts=TRUE; } elsif (/^-N$/) { $doNetscape=TRUE; } elsif (/^-SO$/) { $doStarOffice=TRUE; } elsif (/^-AX$/) { $doApplixWare=TRUE; } elsif (/^-M$/) { $doMosaic=TRUE; } elsif (/^-mp$/) { $doMp=TRUE; } elsif (/^-F$/) { $doXfig=TRUE; } else { &usage ; die "\n"; } } if(!$encodings{$encoding}) { die "Unknown encoding $encoding"; } $where=0; while(<>) { if($where==0) { print; if(($doMosaic || $doMp) && /^%%EndComments/) { $_="%%BeginProlog\n"; print; } if(/^%%BeginProlog/) { $where=1; &procset($encodings{$encoding}); if($compositeProcset) { &procset("$LIBDIR/compose.ps"); &procset("$LIBDIR/ogonki.enc"); } for(@procsets) { &procset($_); } for(@downloadFonts) { &downloadFont($_); } if($eurify) { for(@standardFont) { &eurifyFont($_); } } while(($from,$to)=each %remappings) { &remap($from,$to); } if($recodeStandardFonts) { for(@standardFont) { &remap($_, $_, $encodingvecs{$encoding}); } } } } elsif($where==1) { if(/^%%EndProlog/) { $where=2; } else { if ($doNetscape && m|/Encoding[ \t]+isolatin1encoding[ \t]*def|) { s/isolatin1encoding/$encodingvecs{$encoding}/; } elsif ($doMosaic && m|/Encoding[ \t]+ISOLatin1Encoding[ \t]*D|) { s/ISOLatin1Encoding/$encodingvecs{$encoding}/; } elsif ($doMp && m|/Encoding[ \t]+ISOLatin1Encoding[ \t]*def|) { s/ISOLatin1Encoding/$encodingvecs{$encoding}/; } elsif ($doStarOffice && m/ISOLatin1Encoding/) { s/ISOLatin1Encoding/$encodingvecs{$encoding}/; } elsif ($doXfig && m|/([^ \t]+)[ \t]+/([^ \t]+)[ \t]+isovec[ \t]+ReEncode|) { &remap($2,$1,$encodingvecs{$encoding}); next; } } print; } elsif($where==2) { print; } } ### Local Variables: *** ### mode: perl *** ### End: *** ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrb-c.afm���������������������������������������������������������������������0000644�0000000�0000000�00000015231�14233473143�013030� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Composite characters for Courier-Bold Comment By J. Chroboczek Comment Some of this data was stolen from IBM Courier FontName Courier-Bold-Comp FamilyName Courier StartComposites 141 CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 0 130 ; CC abreve 2 ; PCC a 0 0 ; PCC breve 0 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 0 130 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 0 130 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 0 130 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 0 130 ; CC amacron 2 ; PCC a 0 0 ; PCC macron 0 0 ; CC Amacron 2 ; PCC A 0 0 ; PCC macron 0 130 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 200 0 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 200 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 0 130 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 130 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 0 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 0 130 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 18 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 18 130 ; CC ccircumflex 2 ; PCC c 0 0 ; PCC circumflex 18 0 ; CC Ccircumflex 2 ; PCC C 0 0 ; PCC circumflex 18 130 ; CC cdotaccent 2 ; PCC c 0 0 ; PCC dotaccent 0 0 ; CC Cdotaccent 2 ; PCC C 0 0 ; PCC dotaccent 0 130 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 200 250 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 0 130 ; CC dcaron 2 ; PCC d 0 0 ; PCC caron 30 195 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 0 130 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 0 130 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 130 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 130 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 0 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 0 130 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 130 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 20 0 ; CC emacron 2 ; PCC e 0 0 ; PCC macron 0 0 ; CC Emacron 2 ; PCC E 0 0 ; PCC macron 0 130 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 0 0 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 0 0 ; CC gacute 2 ; PCC g 0 0 ; PCC acute 0 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 0 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 18 130 ; CC gcircumflex 2 ; PCC g 0 0 ; PCC circumflex 0 0 ; CC Gcircumflex 2 ; PCC G 0 0 ; PCC circumflex 18 130 ; CC gdotaccent 2 ; PCC g 0 0 ; PCC dotaccent 0 0 ; CC Gdotaccent 2 ; PCC G 0 0 ; PCC dotaccent 18 130 ; CC hcircumflex 2 ; PCC h 0 0 ; PCC circumflex -20 195 ; CC Hcircumflex 2 ; PCC H 0 0 ; PCC circumflex 0 130 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 130 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek 20 0 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek 20 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 130 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 130 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 0 130 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 130 ; CC imacron 2 ; PCC dotlessi 0 0 ; PCC macron 0 0 ; CC Imacron 2 ; PCC I 0 0 ; PCC macron 0 130 ; CC itilde 2 ; PCC dotlessi 0 0 ; PCC tilde 0 0 ; CC Itilde 2 ; PCC I 0 0 ; PCC tilde 0 130 ; CC Jcircumflex 2 ; PCC J 0 0 ; PCC circumflex 85 130 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute -100 130 ; CC lacute 2 ; PCC l 0 0 ; PCC acute -20 195 ; CC Lcaron 2 ; PCC L 0 0 ; PCC caron -100 130 ; CC lcaron 2 ; PCC l 0 0 ; PCC caron 0 195 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 0 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 0 130 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 0 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 0 130 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 130 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 130 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 130 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 130 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 130 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 0 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 0 130 ; CC omacron 2 ; PCC o 0 0 ; PCC macron 0 0 ; CC Omacron 2 ; PCC O 0 0 ; PCC macron 0 130 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 130 ; CC racute 2 ; PCC r 0 0 ; PCC acute 0 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 0 130 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 0 130 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 0 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 0 130 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 0 130 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 0 0 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 0 0 ; CC scircumflex 2 ; PCC s 0 0 ; PCC circumflex 0 0 ; CC Scircumflex 2 ; PCC S 0 0 ; PCC circumflex 0 130 ; CC tcaron 2 ; PCC t 0 0 ; PCC caron 0 107 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 0 130 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 0 0 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 0 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 0 130 ; CC ubreve 2 ; PCC u 0 0 ; PCC breve 0 0 ; CC Ubreve 2 ; PCC U 0 0 ; PCC breve 0 130 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 0 0 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 130 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 130 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 0 0 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 0 130 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 0 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 0 130 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 0 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 0 130 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 109 0 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 5 23 ; CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 0 130 ; CC utilde 2 ; PCC u 0 0 ; PCC tilde 0 0 ; CC Utilde 2 ; PCC U 0 0 ; PCC tilde 0 130 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 0 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 0 130 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 130 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 0 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 0 130 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 130 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 0 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 0 130 ; EndComposites EndFontMetrics �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrb-o.afm���������������������������������������������������������������������0000644�0000000�0000000�00000034766�14415562571�013070� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Courier-Bold-Ogonki EncodingScheme StandardEncoding FullName Courier-Bold-Ogonki Composite font FontBBox -113 -250 749 801 StartCharMetrics 315 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ; C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ; C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ; C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ; C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ; C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ; C 39 ; WX 600 ; N quoteright ; B 171 277 423 562 ; C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ; C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ; C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ; C 43 ; WX 600 ; N plus ; B 71 39 529 478 ; C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ; C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ; C 46 ; WX 600 ; N period ; B 192 -15 408 171 ; C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ; C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ; C 49 ; WX 600 ; N one ; B 81 0 539 616 ; C 50 ; WX 600 ; N two ; B 61 0 499 616 ; C 51 ; WX 600 ; N three ; B 63 -15 501 616 ; C 52 ; WX 600 ; N four ; B 53 0 507 616 ; C 53 ; WX 600 ; N five ; B 70 -15 521 601 ; C 54 ; WX 600 ; N six ; B 90 -15 521 616 ; C 55 ; WX 600 ; N seven ; B 55 0 494 601 ; C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ; C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ; C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ; C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ; C 60 ; WX 600 ; N less ; B 66 15 523 501 ; C 61 ; WX 600 ; N equal ; B 71 118 529 398 ; C 62 ; WX 600 ; N greater ; B 77 15 534 501 ; C 63 ; WX 600 ; N question ; B 98 -14 501 580 ; C 64 ; WX 600 ; N at ; B 16 -15 584 616 ; C 65 ; WX 600 ; N A ; B -9 0 609 562 ; C 66 ; WX 600 ; N B ; B 30 0 573 562 ; C 67 ; WX 600 ; N C ; B 22 -18 560 580 ; C 68 ; WX 600 ; N D ; B 30 0 594 562 ; C 69 ; WX 600 ; N E ; B 25 0 560 562 ; C 70 ; WX 600 ; N F ; B 39 0 570 562 ; C 71 ; WX 600 ; N G ; B 22 -18 594 580 ; C 72 ; WX 600 ; N H ; B 20 0 580 562 ; C 73 ; WX 600 ; N I ; B 77 0 523 562 ; C 74 ; WX 600 ; N J ; B 37 -18 601 562 ; C 75 ; WX 600 ; N K ; B 21 0 599 562 ; C 76 ; WX 600 ; N L ; B 39 0 578 562 ; C 77 ; WX 600 ; N M ; B -2 0 602 562 ; C 78 ; WX 600 ; N N ; B 8 -12 610 562 ; C 79 ; WX 600 ; N O ; B 22 -18 578 580 ; C 80 ; WX 600 ; N P ; B 48 0 559 562 ; C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ; C 82 ; WX 600 ; N R ; B 24 0 599 562 ; C 83 ; WX 600 ; N S ; B 47 -22 553 582 ; C 84 ; WX 600 ; N T ; B 21 0 579 562 ; C 85 ; WX 600 ; N U ; B 4 -18 596 562 ; C 86 ; WX 600 ; N V ; B -13 0 613 562 ; C 87 ; WX 600 ; N W ; B -18 0 618 562 ; C 88 ; WX 600 ; N X ; B 12 0 588 562 ; C 89 ; WX 600 ; N Y ; B 12 0 589 562 ; C 90 ; WX 600 ; N Z ; B 62 0 539 562 ; C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ; C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ; C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ; C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ; C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; C 96 ; WX 600 ; N quoteleft ; B 178 277 428 562 ; C 97 ; WX 600 ; N a ; B 35 -15 570 454 ; C 98 ; WX 600 ; N b ; B 0 -15 584 626 ; C 99 ; WX 600 ; N c ; B 40 -15 545 459 ; C 100 ; WX 600 ; N d ; B 20 -15 591 626 ; C 101 ; WX 600 ; N e ; B 40 -15 563 454 ; C 102 ; WX 600 ; N f ; B 83 0 547 626 ; C 103 ; WX 600 ; N g ; B 30 -146 580 454 ; C 104 ; WX 600 ; N h ; B 5 0 592 626 ; C 105 ; WX 600 ; N i ; B 77 0 523 658 ; C 106 ; WX 600 ; N j ; B 63 -146 440 658 ; C 107 ; WX 600 ; N k ; B 20 0 585 626 ; C 108 ; WX 600 ; N l ; B 77 0 523 626 ; C 109 ; WX 600 ; N m ; B -22 0 626 454 ; C 110 ; WX 600 ; N n ; B 18 0 592 454 ; C 111 ; WX 600 ; N o ; B 30 -15 570 454 ; C 112 ; WX 600 ; N p ; B -1 -142 570 454 ; C 113 ; WX 600 ; N q ; B 20 -142 591 454 ; C 114 ; WX 600 ; N r ; B 47 0 580 454 ; C 115 ; WX 600 ; N s ; B 68 -17 535 459 ; C 116 ; WX 600 ; N t ; B 47 -15 532 562 ; C 117 ; WX 600 ; N u ; B -1 -15 569 439 ; C 118 ; WX 600 ; N v ; B -1 0 601 439 ; C 119 ; WX 600 ; N w ; B -18 0 618 439 ; C 120 ; WX 600 ; N x ; B 6 0 594 439 ; C 121 ; WX 600 ; N y ; B -4 -142 601 439 ; C 122 ; WX 600 ; N z ; B 81 0 520 439 ; C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ; C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ; C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ; C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ; C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ; C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ; C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ; C 164 ; WX 600 ; N fraction ; B 25 -60 576 661 ; C 165 ; WX 600 ; N yen ; B 10 0 590 562 ; C 166 ; WX 600 ; N florin ; B -30 -131 572 616 ; C 167 ; WX 600 ; N section ; B 83 -70 517 580 ; C 168 ; WX 600 ; N currency ; B 54 49 546 517 ; C 169 ; WX 600 ; N quotesingle ; B 227 277 373 562 ; C 170 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ; C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ; C 173 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ; C 174 ; WX 600 ; N fi ; B 12 0 593 626 ; C 175 ; WX 600 ; N fl ; B 12 0 593 626 ; C 177 ; WX 600 ; N endash ; B 65 203 535 313 ; C 178 ; WX 600 ; N dagger ; B 106 -70 494 580 ; C 179 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ; C 180 ; WX 600 ; N periodcentered ; B 196 165 404 351 ; C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ; C 183 ; WX 600 ; N bullet ; B 140 132 460 430 ; C 184 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ; C 185 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ; C 186 ; WX 600 ; N quotedblright ; B 61 277 525 562 ; C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ; C 188 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ; C 189 ; WX 600 ; N perthousand ; B -113 -15 713 616 ; C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ; C 193 ; WX 600 ; N grave ; B 132 508 395 661 ; C 194 ; WX 600 ; N acute ; B 205 508 468 661 ; C 195 ; WX 600 ; N circumflex ; B 103 483 497 657 ; C 196 ; WX 600 ; N tilde ; B 89 493 512 636 ; C 197 ; WX 600 ; N macron ; B 88 505 512 585 ; C 198 ; WX 600 ; N breve ; B 83 468 517 631 ; C 199 ; WX 600 ; N dotaccent ; B 230 485 370 625 ; C 200 ; WX 600 ; N dieresis ; B 128 485 472 625 ; C 202 ; WX 600 ; N ring ; B 198 481 402 678 ; C 203 ; WX 600 ; N cedilla ; B 205 -206 387 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ; C 206 ; WX 600 ; N ogonek ; B 169 -199 367 0 ; C 207 ; WX 600 ; N caron ; B 103 493 497 667 ; C 208 ; WX 600 ; N emdash ; B -10 203 610 313 ; C 225 ; WX 600 ; N AE ; B -29 0 602 562 ; C 227 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ; C 232 ; WX 600 ; N Lslash ; B 39 0 578 562 ; C 233 ; WX 600 ; N Oslash ; B 22 -22 578 584 ; C 234 ; WX 600 ; N OE ; B -25 0 595 562 ; C 235 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ; C 241 ; WX 600 ; N ae ; B -4 -15 601 454 ; C 245 ; WX 600 ; N dotlessi ; B 77 0 523 439 ; C 248 ; WX 600 ; N lslash ; B 77 0 523 626 ; C 249 ; WX 600 ; N oslash ; B 30 -24 570 463 ; C 250 ; WX 600 ; N oe ; B -18 -15 611 454 ; C 251 ; WX 600 ; N germandbls ; B 22 -15 596 626 ; C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 748 ; C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ; C -1 ; WX 600 ; N minus ; B 71 203 529 313 ; C -1 ; WX 600 ; N degree ; B 86 243 474 616 ; C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ; C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ; C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ; C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ; C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ; C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ; C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ; C -1 ; WX 600 ; N divide ; B 71 16 529 500 ; C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ; C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ; C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ; C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ; C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ; C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ; C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ; C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ; C -1 ; WX 600 ; N edieresis ; B 40 -15 563 625 ; C -1 ; WX 600 ; N odieresis ; B 30 -15 570 625 ; C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ; C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ; C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ; C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ; C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ; C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ; C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 748 ; C -1 ; WX 600 ; N Gcaron ; B 22 -18 594 790 ; C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ; C -1 ; WX 600 ; N Idieresis ; B 77 0 523 748 ; C -1 ; WX 600 ; N adieresis ; B 35 -15 570 625 ; C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ; C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ; C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ; C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ; C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ; C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ; C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ; C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ; C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ; C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ; C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ; C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ; C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ; C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ; C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ; C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ; C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ; C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ; C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ; C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 748 ; C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 625 ; C -1 ; WX 600 ; N idieresis ; B 77 0 523 625 ; C -1 ; WX 600 ; N Adieresis ; B -9 0 609 748 ; C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ; C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ; C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ; C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ; C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ; C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ; C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; C -1 ; WX 600 ; N udieresis ; B -1 -15 569 625 ; C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ; C -1 ; WX 600 ; N Edieresis ; B 25 0 560 748 ; C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ; C -1 ; WX 600 ; N gcaron ; B 30 -146 580 667 ; C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ; C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ; C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ; C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ; C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ; C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ; C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ; C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ; C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ; C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ; C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ; C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ; C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ; C -1 ; WX 600 ; N icircumflex ; B 63 0 523 657 ; C -1 ; WX 600 ; N abreve ; B 35 -15 570 631 ; C -1 ; WX 600 ; N Abreve ; B -9 0 609 761 ; C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ; C -1 ; WX 600 ; N Amacron ; B -9 0 609 715 ; C -1 ; WX 600 ; N Aogonek ; B -9 -199 609 562 ; C -1 ; WX 600 ; N aogonek ; B 35 -199 570 454 ; C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ; C -1 ; WX 600 ; N Cacute ; B 22 -18 560 791 ; C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ; C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 797 ; C -1 ; WX 600 ; N ccircumflex ; B 40 -15 545 657 ; C -1 ; WX 600 ; N Ccircumflex ; B 22 -18 560 787 ; C -1 ; WX 600 ; N cdotaccent ; B 40 -15 545 625 ; C -1 ; WX 600 ; N Cdotaccent ; B 22 -18 560 755 ; C -1 ; WX 600 ; N dbar ; B 20 -15 700 626 ; C -1 ; WX 600 ; N Dbar ; B 0 0 594 562 ; C -1 ; WX 600 ; N Dcaron ; B 30 0 594 797 ; C -1 ; WX 600 ; N dcaron ; B 20 -15 591 862 ; C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ; C -1 ; WX 600 ; N Ecaron ; B 25 0 560 797 ; C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 625 ; C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 755 ; C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ; C -1 ; WX 600 ; N Emacron ; B 25 0 560 715 ; C -1 ; WX 600 ; N Eogonek ; B 25 -199 560 562 ; C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ; C -1 ; WX 600 ; N gacute ; B 30 -146 580 661 ; C -1 ; WX 600 ; N gbreve ; B 30 -146 580 631 ; C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 761 ; C -1 ; WX 600 ; N gcircumflex ; B 30 -146 580 657 ; C -1 ; WX 600 ; N Gcircumflex ; B 22 -18 594 787 ; C -1 ; WX 600 ; N gdotaccent ; B 30 -146 580 625 ; C -1 ; WX 600 ; N Gdotaccent ; B 22 -18 594 755 ; C -1 ; WX 600 ; N hcircumflex ; B 5 0 592 852 ; C -1 ; WX 600 ; N Hcircumflex ; B 20 0 580 787 ; C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ; C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ; C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 755 ; C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ; C -1 ; WX 600 ; N Imacron ; B 77 0 523 715 ; C -1 ; WX 600 ; N itilde ; B 77 0 523 636 ; C -1 ; WX 600 ; N Itilde ; B 77 0 523 766 ; C -1 ; WX 600 ; N Jcircumflex ; B 37 -18 601 787 ; C -1 ; WX 600 ; N Lacute ; B 39 0 578 791 ; C -1 ; WX 600 ; N lacute ; B 77 0 523 856 ; C -1 ; WX 600 ; N Lcaron ; B 3 0 578 797 ; C -1 ; WX 600 ; N lcaron ; B 77 0 523 862 ; C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ; C -1 ; WX 600 ; N Nacute ; B 8 -12 610 791 ; C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ; C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 797 ; C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 588 661 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 588 791 ; C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ; C -1 ; WX 600 ; N Omacron ; B 22 -18 578 715 ; C -1 ; WX 600 ; N racute ; B 47 0 580 661 ; C -1 ; WX 600 ; N Racute ; B 24 0 599 791 ; C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ; C -1 ; WX 600 ; N Rcaron ; B 24 0 599 797 ; C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ; C -1 ; WX 600 ; N Sacute ; B 47 -22 553 791 ; C -1 ; WX 600 ; N scircumflex ; B 68 -17 535 657 ; C -1 ; WX 600 ; N Scircumflex ; B 47 -22 553 787 ; C -1 ; WX 600 ; N tcaron ; B 47 -15 532 774 ; C -1 ; WX 600 ; N Tcaron ; B 21 0 579 797 ; C -1 ; WX 600 ; N Tcedilla ; B 21 -206 579 562 ; C -1 ; WX 600 ; N tcedilla ; B 47 -206 532 562 ; C -1 ; WX 600 ; N ubreve ; B -1 -15 569 631 ; C -1 ; WX 600 ; N Ubreve ; B 4 -18 596 761 ; C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 588 661 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 596 791 ; C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ; C -1 ; WX 600 ; N Umacron ; B 4 -18 596 715 ; C -1 ; WX 600 ; N uogonek ; B -1 -199 569 439 ; C -1 ; WX 600 ; N Uogonek ; B 4 -176 596 562 ; C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ; C -1 ; WX 600 ; N Uring ; B 4 -18 596 808 ; C -1 ; WX 600 ; N utilde ; B -1 -15 569 636 ; C -1 ; WX 600 ; N Utilde ; B 4 -18 596 766 ; C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ; C -1 ; WX 600 ; N Zacute ; B 62 0 539 791 ; C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 625 ; C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 755 ; EndCharMetrics EndFontMetrics ����������a2ps-4.15.5/ogonkify/pcrb-o.ps����������������������������������������������������������������������0000644�0000000�0000000�00000007306�14415562571�012735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Courier-Bold-Ogonki /Courier-Bold /Courier-Bold-Ogonki OgonkiEncoding StandardEncoding 111 dict dup /Agrave [65 -50 123 27] put dup /Aring [65 -10 123 31] put dup /Atilde [65 -30 123 29] put dup /Ecircumflex [69 0 123 28] put dup /Egrave [69 0 123 27] put dup /Gcaron [71 10 123 183] put dup /Idieresis [73 0 123 168] put dup /Igrave [73 0 123 27] put dup /Ntilde [78 0 123 29] put dup /Ograve [79 0 123 27] put dup /Otilde [79 0 123 29] put dup /Ucircumflex [85 0 123 28] put dup /Ugrave [85 -30 123 27] put dup /Ydieresis [89 0 123 168] put dup /agrave [97 -30 0 27] put dup /aring [97 0 0 31] put dup /atilde [97 0 0 29] put dup /ecircumflex [101 0 0 28] put dup /egrave [101 0 0 27] put dup /gcaron [103 -40 0 183] put dup /idieresis [136 -40 0 168] put dup /igrave [136 0 0 27] put dup /ntilde [110 0 0 29] put dup /ograve [111 0 0 27] put dup /otilde [111 0 0 29] put dup /ucircumflex [117 -20 0 28] put dup /ugrave [117 -30 0 27] put dup /ydieresis [121 10 0 168] put dup /abreve [97 0 0 162] put dup /Abreve [65 0 130 162] put dup /amacron [97 0 0 30] put dup /Amacron [65 0 130 30] put dup /Aogonek [65 200 0 178] put dup /aogonek [97 200 0 178] put dup /cacute [99 0 0 180] put dup /Cacute [67 0 130 180] put dup /ccaron [99 18 0 183] put dup /Ccaron [67 18 130 183] put dup /ccircumflex [99 18 0 28] put dup /Ccircumflex [67 18 130 28] put dup /cdotaccent [99 0 0 255] put dup /Cdotaccent [67 0 130 255] put dup /dbar [100 200 250 173] put dup /Dbar [208 0 0 160] put dup /Dcaron [68 0 130 183] put dup /dcaron [100 30 195 183] put dup /ecaron [101 0 0 183] put dup /Ecaron [69 0 130 183] put dup /edotaccent [101 0 0 255] put dup /Edotaccent [69 0 130 255] put dup /emacron [101 0 0 30] put dup /Emacron [69 0 130 30] put dup /Eogonek [69 0 0 178] put dup /eogonek [101 0 0 178] put dup /gacute [103 0 0 180] put dup /gbreve [103 0 0 162] put dup /Gbreve [71 18 130 162] put dup /gcircumflex [103 0 0 28] put dup /Gcircumflex [71 18 130 28] put dup /gdotaccent [103 0 0 255] put dup /Gdotaccent [71 18 130 255] put dup /hcircumflex [104 -20 195 28] put dup /Hcircumflex [72 0 130 28] put dup /Iogonek [73 20 0 178] put dup /iogonek [105 20 0 178] put dup /Idotaccent [73 0 130 255] put dup /imacron [136 0 0 30] put dup /Imacron [73 0 130 30] put dup /itilde [136 0 0 29] put dup /Itilde [73 0 130 29] put dup /Jcircumflex [74 85 130 28] put dup /Lacute [76 -100 130 180] put dup /lacute [108 -20 195 180] put dup /Lcaron [76 -100 130 183] put dup /lcaron [108 0 195 183] put dup /nacute [110 0 0 180] put dup /Nacute [78 0 130 180] put dup /ncaron [110 0 0 183] put dup /Ncaron [78 0 130 183] put dup /ohungarumlaut [111 0 0 189] put dup /Ohungarumlaut [79 0 130 189] put dup /omacron [111 0 0 30] put dup /Omacron [79 0 130 30] put dup /racute [114 0 0 180] put dup /Racute [82 0 130 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 0 130 183] put dup /sacute [115 0 0 180] put dup /Sacute [83 0 130 180] put dup /scircumflex [115 0 0 28] put dup /Scircumflex [83 0 130 28] put dup /tcaron [116 0 107 183] put dup /Tcaron [84 0 130 183] put dup /Tcedilla [84 0 0 184] put dup /tcedilla [116 0 0 184] put dup /ubreve [117 0 0 162] put dup /Ubreve [85 0 130 162] put dup /uhungarumlaut [117 0 0 189] put dup /Uhungarumlaut [85 0 130 189] put dup /umacron [117 0 0 30] put dup /Umacron [85 0 130 30] put dup /uogonek [117 109 0 178] put dup /Uogonek [85 5 23 178] put dup /uring [117 0 0 31] put dup /Uring [85 0 130 31] put dup /utilde [117 0 0 29] put dup /Utilde [85 0 130 29] put dup /zacute [122 0 0 180] put dup /Zacute [90 0 130 180] put dup /zdotaccent [122 0 0 255] put dup /Zdotaccent [90 0 130 255] put makeComposite %%EndResource ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrb.afm�����������������������������������������������������������������������0000644�0000000�0000000�00000035770�14233473143�012622� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1989, 1990, 1991, Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Tue Sep 17 14:02:41 1991 Comment UniqueID 36384 Comment VMusage 31992 40360 FontName Courier-Bold FullName Courier Bold FamilyName Courier Weight Bold ItalicAngle 0 IsFixedPitch true FontBBox -113 -250 749 801 UnderlinePosition -100 UnderlineThickness 50 Version 002.004 Notice Copyright (c) 1989, 1990, 1991, Adobe Systems Incorporated. All rights reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 439 Ascender 626 Descender -142 StartCharMetrics 260 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ; C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ; C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ; C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ; C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ; C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ; C 39 ; WX 600 ; N quoteright ; B 171 277 423 562 ; C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ; C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ; C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ; C 43 ; WX 600 ; N plus ; B 71 39 529 478 ; C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ; C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ; C 46 ; WX 600 ; N period ; B 192 -15 408 171 ; C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ; C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ; C 49 ; WX 600 ; N one ; B 81 0 539 616 ; C 50 ; WX 600 ; N two ; B 61 0 499 616 ; C 51 ; WX 600 ; N three ; B 63 -15 501 616 ; C 52 ; WX 600 ; N four ; B 53 0 507 616 ; C 53 ; WX 600 ; N five ; B 70 -15 521 601 ; C 54 ; WX 600 ; N six ; B 90 -15 521 616 ; C 55 ; WX 600 ; N seven ; B 55 0 494 601 ; C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ; C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ; C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ; C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ; C 60 ; WX 600 ; N less ; B 66 15 523 501 ; C 61 ; WX 600 ; N equal ; B 71 118 529 398 ; C 62 ; WX 600 ; N greater ; B 77 15 534 501 ; C 63 ; WX 600 ; N question ; B 98 -14 501 580 ; C 64 ; WX 600 ; N at ; B 16 -15 584 616 ; C 65 ; WX 600 ; N A ; B -9 0 609 562 ; C 66 ; WX 600 ; N B ; B 30 0 573 562 ; C 67 ; WX 600 ; N C ; B 22 -18 560 580 ; C 68 ; WX 600 ; N D ; B 30 0 594 562 ; C 69 ; WX 600 ; N E ; B 25 0 560 562 ; C 70 ; WX 600 ; N F ; B 39 0 570 562 ; C 71 ; WX 600 ; N G ; B 22 -18 594 580 ; C 72 ; WX 600 ; N H ; B 20 0 580 562 ; C 73 ; WX 600 ; N I ; B 77 0 523 562 ; C 74 ; WX 600 ; N J ; B 37 -18 601 562 ; C 75 ; WX 600 ; N K ; B 21 0 599 562 ; C 76 ; WX 600 ; N L ; B 39 0 578 562 ; C 77 ; WX 600 ; N M ; B -2 0 602 562 ; C 78 ; WX 600 ; N N ; B 8 -12 610 562 ; C 79 ; WX 600 ; N O ; B 22 -18 578 580 ; C 80 ; WX 600 ; N P ; B 48 0 559 562 ; C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ; C 82 ; WX 600 ; N R ; B 24 0 599 562 ; C 83 ; WX 600 ; N S ; B 47 -22 553 582 ; C 84 ; WX 600 ; N T ; B 21 0 579 562 ; C 85 ; WX 600 ; N U ; B 4 -18 596 562 ; C 86 ; WX 600 ; N V ; B -13 0 613 562 ; C 87 ; WX 600 ; N W ; B -18 0 618 562 ; C 88 ; WX 600 ; N X ; B 12 0 588 562 ; C 89 ; WX 600 ; N Y ; B 12 0 589 562 ; C 90 ; WX 600 ; N Z ; B 62 0 539 562 ; C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ; C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ; C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ; C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ; C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; C 96 ; WX 600 ; N quoteleft ; B 178 277 428 562 ; C 97 ; WX 600 ; N a ; B 35 -15 570 454 ; C 98 ; WX 600 ; N b ; B 0 -15 584 626 ; C 99 ; WX 600 ; N c ; B 40 -15 545 459 ; C 100 ; WX 600 ; N d ; B 20 -15 591 626 ; C 101 ; WX 600 ; N e ; B 40 -15 563 454 ; C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ; C 103 ; WX 600 ; N g ; B 30 -146 580 454 ; C 104 ; WX 600 ; N h ; B 5 0 592 626 ; C 105 ; WX 600 ; N i ; B 77 0 523 658 ; C 106 ; WX 600 ; N j ; B 63 -146 440 658 ; C 107 ; WX 600 ; N k ; B 20 0 585 626 ; C 108 ; WX 600 ; N l ; B 77 0 523 626 ; C 109 ; WX 600 ; N m ; B -22 0 626 454 ; C 110 ; WX 600 ; N n ; B 18 0 592 454 ; C 111 ; WX 600 ; N o ; B 30 -15 570 454 ; C 112 ; WX 600 ; N p ; B -1 -142 570 454 ; C 113 ; WX 600 ; N q ; B 20 -142 591 454 ; C 114 ; WX 600 ; N r ; B 47 0 580 454 ; C 115 ; WX 600 ; N s ; B 68 -17 535 459 ; C 116 ; WX 600 ; N t ; B 47 -15 532 562 ; C 117 ; WX 600 ; N u ; B -1 -15 569 439 ; C 118 ; WX 600 ; N v ; B -1 0 601 439 ; C 119 ; WX 600 ; N w ; B -18 0 618 439 ; C 120 ; WX 600 ; N x ; B 6 0 594 439 ; C 121 ; WX 600 ; N y ; B -4 -142 601 439 ; C 122 ; WX 600 ; N z ; B 81 0 520 439 ; C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ; C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ; C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ; C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ; C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ; C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ; C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ; C 164 ; WX 600 ; N fraction ; B 25 -60 576 661 ; C 165 ; WX 600 ; N yen ; B 10 0 590 562 ; C 166 ; WX 600 ; N florin ; B -30 -131 572 616 ; C 167 ; WX 600 ; N section ; B 83 -70 517 580 ; C 168 ; WX 600 ; N currency ; B 54 49 546 517 ; C 169 ; WX 600 ; N quotesingle ; B 227 277 373 562 ; C 170 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ; C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ; C 173 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ; C 174 ; WX 600 ; N fi ; B 12 0 593 626 ; C 175 ; WX 600 ; N fl ; B 12 0 593 626 ; C 177 ; WX 600 ; N endash ; B 65 203 535 313 ; C 178 ; WX 600 ; N dagger ; B 106 -70 494 580 ; C 179 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ; C 180 ; WX 600 ; N periodcentered ; B 196 165 404 351 ; C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ; C 183 ; WX 600 ; N bullet ; B 140 132 460 430 ; C 184 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ; C 185 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ; C 186 ; WX 600 ; N quotedblright ; B 61 277 525 562 ; C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ; C 188 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ; C 189 ; WX 600 ; N perthousand ; B -113 -15 713 616 ; C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ; C 193 ; WX 600 ; N grave ; B 132 508 395 661 ; C 194 ; WX 600 ; N acute ; B 205 508 468 661 ; C 195 ; WX 600 ; N circumflex ; B 103 483 497 657 ; C 196 ; WX 600 ; N tilde ; B 89 493 512 636 ; C 197 ; WX 600 ; N macron ; B 88 505 512 585 ; C 198 ; WX 600 ; N breve ; B 83 468 517 631 ; C 199 ; WX 600 ; N dotaccent ; B 230 485 370 625 ; C 200 ; WX 600 ; N dieresis ; B 128 485 472 625 ; C 202 ; WX 600 ; N ring ; B 198 481 402 678 ; C 203 ; WX 600 ; N cedilla ; B 205 -206 387 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ; C 206 ; WX 600 ; N ogonek ; B 169 -199 367 0 ; C 207 ; WX 600 ; N caron ; B 103 493 497 667 ; C 208 ; WX 600 ; N emdash ; B -10 203 610 313 ; C 225 ; WX 600 ; N AE ; B -29 0 602 562 ; C 227 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ; C 232 ; WX 600 ; N Lslash ; B 39 0 578 562 ; C 233 ; WX 600 ; N Oslash ; B 22 -22 578 584 ; C 234 ; WX 600 ; N OE ; B -25 0 595 562 ; C 235 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ; C 241 ; WX 600 ; N ae ; B -4 -15 601 454 ; C 245 ; WX 600 ; N dotlessi ; B 77 0 523 439 ; C 248 ; WX 600 ; N lslash ; B 77 0 523 626 ; C 249 ; WX 600 ; N oslash ; B 30 -24 570 463 ; C 250 ; WX 600 ; N oe ; B -18 -15 611 454 ; C 251 ; WX 600 ; N germandbls ; B 22 -15 596 626 ; C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 748 ; C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ; C -1 ; WX 600 ; N minus ; B 71 203 529 313 ; C -1 ; WX 600 ; N merge ; B 137 -15 464 487 ; C -1 ; WX 600 ; N degree ; B 86 243 474 616 ; C -1 ; WX 600 ; N dectab ; B 8 0 592 320 ; C -1 ; WX 600 ; N ll ; B -12 0 600 626 ; C -1 ; WX 600 ; N IJ ; B -8 -18 622 562 ; C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ; C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ; C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ; C -1 ; WX 600 ; N left ; B 65 44 535 371 ; C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ; C -1 ; WX 600 ; N up ; B 136 0 463 447 ; C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ; C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ; C -1 ; WX 600 ; N tab ; B 19 0 581 562 ; C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ; C -1 ; WX 600 ; N divide ; B 71 16 529 500 ; C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ; C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ; C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ; C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ; C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ; C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ; C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ; C -1 ; WX 600 ; N down ; B 137 -15 464 439 ; C -1 ; WX 600 ; N center ; B 40 14 560 580 ; C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ; C -1 ; WX 600 ; N ij ; B 6 -146 574 658 ; C -1 ; WX 600 ; N edieresis ; B 40 -15 563 625 ; C -1 ; WX 600 ; N graybox ; B 76 0 525 599 ; C -1 ; WX 600 ; N odieresis ; B 30 -15 570 625 ; C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ; C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ; C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ; C -1 ; WX 600 ; N prescription ; B 24 -15 599 562 ; C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ; C -1 ; WX 600 ; N largebullet ; B 248 229 352 333 ; C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ; C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ; C -1 ; WX 600 ; N notegraphic ; B 77 -15 523 572 ; C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 748 ; C -1 ; WX 600 ; N Gcaron ; B 22 -18 594 790 ; C -1 ; WX 600 ; N arrowdown ; B 144 -15 456 608 ; C -1 ; WX 600 ; N format ; B 5 -146 115 601 ; C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ; C -1 ; WX 600 ; N Idieresis ; B 77 0 523 748 ; C -1 ; WX 600 ; N adieresis ; B 35 -15 570 625 ; C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ; C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ; C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ; C -1 ; WX 600 ; N LL ; B -45 0 645 562 ; C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ; C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ; C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ; C -1 ; WX 600 ; N Idot ; B 77 0 523 748 ; C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ; C -1 ; WX 600 ; N indent ; B 65 45 535 372 ; C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ; C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ; C -1 ; WX 600 ; N overscore ; B 0 579 600 629 ; C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ; C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ; C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ; C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ; C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ; C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ; C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ; C -1 ; WX 600 ; N lira ; B 72 -28 558 611 ; C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ; C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ; C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ; C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 748 ; C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 625 ; C -1 ; WX 600 ; N idieresis ; B 77 0 523 625 ; C -1 ; WX 600 ; N Adieresis ; B -9 0 609 748 ; C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ; C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ; C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ; C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ; C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ; C -1 ; WX 600 ; N return ; B 19 0 581 562 ; C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ; C -1 ; WX 600 ; N square ; B 19 0 581 562 ; C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; C -1 ; WX 600 ; N stop ; B 19 0 581 562 ; C -1 ; WX 600 ; N udieresis ; B -1 -15 569 625 ; C -1 ; WX 600 ; N arrowup ; B 144 3 456 626 ; C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ; C -1 ; WX 600 ; N Edieresis ; B 25 0 560 748 ; C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ; C -1 ; WX 600 ; N arrowboth ; B -24 143 624 455 ; C -1 ; WX 600 ; N gcaron ; B 30 -146 580 667 ; C -1 ; WX 600 ; N arrowleft ; B -24 143 634 455 ; C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ; C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ; C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ; C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ; C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ; C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ; C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ; C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ; C -1 ; WX 600 ; N arrowright ; B -34 143 624 455 ; C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ; C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ; C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ; C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ; C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ; C -1 ; WX 600 ; N icircumflex ; B 63 0 523 657 ; EndCharMetrics StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 30 123 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -30 123 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis -20 123 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave -50 123 ; CC Aring 2 ; PCC A 0 0 ; PCC ring -10 123 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde -30 123 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 30 123 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 123 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 123 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 123 ; CC Gcaron 2 ; PCC G 0 0 ; PCC caron 10 123 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 123 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 123 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 123 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 123 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 123 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 123 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 123 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 123 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 123 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 123 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 0 123 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 30 123 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 123 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 123 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave -30 123 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 30 123 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 123 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 123 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex -20 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis -10 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave -30 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; CC gcaron 2 ; PCC g 0 0 ; PCC caron -40 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -40 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -40 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex -20 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis -20 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave -30 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 30 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 10 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; EndComposites EndFontMetrics ��������a2ps-4.15.5/ogonkify/pcrbo-c.afm��������������������������������������������������������������������0000644�0000000�0000000�00000015334�14233473143�013213� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Composite characters for Courier-BoldOblique Comment By J. Chroboczek Comment Some of this data was stolen from IBM Courier FontName Courier-BoldOblique-Comp FamilyName Courier StartComposites 141 CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 30 130 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve -18 130 ; CC abreve 2 ; PCC a 0 0 ; PCC breve 0 0 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -18 130 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 30 130 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 30 130 ; CC Amacron 2 ; PCC A 0 0 ; PCC macron -15 130 ; CC amacron 2 ; PCC a 0 0 ; PCC macron 0 0 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 200 0 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 200 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 30 130 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 30 130 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 0 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 30 130 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 0 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 30 130 ; CC ccircumflex 2 ; PCC c 0 0 ; PCC circumflex 0 0 ; CC Ccircumflex 2 ; PCC C 0 0 ; PCC circumflex 30 130 ; CC cdotaccent 2 ; PCC c 0 0 ; PCC dotaccent 0 0 ; CC Cdotaccent 2 ; PCC C 0 0 ; PCC dotaccent 30 130 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 200 250 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron -12 130 ; CC dcaron 2 ; PCC d 0 0 ; PCC caron 35 178 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 30 130 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 30 130 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 30 130 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 30 130 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 0 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 30 130 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 30 160 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 39 0 ; CC emacron 2 ; PCC e 0 0 ; PCC macron 0 0 ; CC Emacron 2 ; PCC E 0 0 ; PCC macron 30 130 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 0 0 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 0 0 ; CC gacute 2 ; PCC g 0 0 ; PCC acute 0 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 0 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 30 130 ; CC gcircumflex 2 ; PCC g 0 0 ; PCC circumflex 0 0 ; CC Gcircumflex 2 ; PCC G 0 0 ; PCC circumflex 30 130 ; CC gdotaccent 2 ; PCC g 0 0 ; PCC dotaccent 0 0 ; CC Gdotaccent 2 ; PCC G 0 0 ; PCC dotaccent 30 130 ; CC hcircumflex 2 ; PCC h 0 0 ; PCC circumflex 0 178 ; CC Hcircumflex 2 ; PCC H 0 0 ; PCC circumflex 30 130 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 30 130 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 30 130 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 30 130 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 30 130 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 30 130 ; CC imacron 2 ; PCC dotlessi 0 0 ; PCC macron 0 0 ; CC Imacron 2 ; PCC I 0 0 ; PCC macron 30 130 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek 20 0 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek 20 0 ; CC itilde 2 ; PCC dotlessi 0 0 ; PCC tilde 0 0 ; CC Itilde 2 ; PCC I 0 0 ; PCC tilde 30 130 ; CC Jcircumflex 2 ; PCC J 0 0 ; PCC circumflex 95 130 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute -88 130 ; CC lacute 2 ; PCC l 0 0 ; PCC acute 0 178 ; CC Lcaron 2 ; PCC L 0 0 ; PCC caron -88 130 ; CC lcaron 2 ; PCC l 0 0 ; PCC caron 0 178 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 0 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 30 130 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 0 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 30 130 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 30 130 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 30 130 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 30 130 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 30 130 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 60 130 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 0 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 30 130 ; CC omacron 2 ; PCC o 0 0 ; PCC macron 0 0 ; CC Omacron 2 ; PCC O 0 0 ; PCC macron 30 130 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 30 130 ; CC racute 2 ; PCC r 0 0 ; PCC acute 0 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 30 130 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 30 130 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 0 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 30 130 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 30 130 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 0 0 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 0 0 ; CC scircumflex 2 ; PCC s 0 0 ; PCC circumflex 0 0 ; CC Scircumflex 2 ; PCC S 0 0 ; PCC circumflex 30 130 ; CC tcaron 2 ; PCC t 0 0 ; PCC caron -59 106 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 30 130 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 0 0 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 0 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 30 130 ; CC ubreve 2 ; PCC u 0 0 ; PCC breve 0 0 ; CC Ubreve 2 ; PCC U 0 0 ; PCC breve 30 130 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 0 0 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 30 130 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 30 130 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 0 0 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 30 130 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 0 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 30 130 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 0 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 30 130 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 0 7 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 108 0 ; CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 30 130 ; CC utilde 2 ; PCC u 0 0 ; PCC tilde 0 0 ; CC Utilde 2 ; PCC U 0 0 ; PCC tilde 30 130 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 0 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 30 130 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 30 130 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 0 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 30 130 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 30 130 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 0 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 30 130 ; EndComposites EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrbo-o.afm��������������������������������������������������������������������0000644�0000000�0000000�00000035073�14415562571�013237� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Courier-BoldOblique-Ogonki EncodingScheme StandardEncoding FullName Courier-BoldOblique-Ogonki Composite font FontBBox -56 -250 868 801 StartCharMetrics 315 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 216 -15 495 572 ; C 34 ; WX 600 ; N quotedbl ; B 212 277 584 562 ; C 35 ; WX 600 ; N numbersign ; B 88 -45 640 651 ; C 36 ; WX 600 ; N dollar ; B 87 -126 629 666 ; C 37 ; WX 600 ; N percent ; B 102 -15 624 616 ; C 38 ; WX 600 ; N ampersand ; B 62 -15 594 543 ; C 39 ; WX 600 ; N quoteright ; B 230 277 542 562 ; C 40 ; WX 600 ; N parenleft ; B 266 -102 592 616 ; C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ; C 42 ; WX 600 ; N asterisk ; B 179 219 597 601 ; C 43 ; WX 600 ; N plus ; B 114 39 596 478 ; C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ; C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ; C 46 ; WX 600 ; N period ; B 207 -15 426 171 ; C 47 ; WX 600 ; N slash ; B 91 -77 626 626 ; C 48 ; WX 600 ; N zero ; B 136 -15 592 616 ; C 49 ; WX 600 ; N one ; B 93 0 561 616 ; C 50 ; WX 600 ; N two ; B 61 0 593 616 ; C 51 ; WX 600 ; N three ; B 72 -15 571 616 ; C 52 ; WX 600 ; N four ; B 82 0 558 616 ; C 53 ; WX 600 ; N five ; B 77 -15 621 601 ; C 54 ; WX 600 ; N six ; B 136 -15 652 616 ; C 55 ; WX 600 ; N seven ; B 147 0 622 601 ; C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ; C 57 ; WX 600 ; N nine ; B 76 -15 592 616 ; C 58 ; WX 600 ; N colon ; B 206 -15 479 425 ; C 59 ; WX 600 ; N semicolon ; B 99 -111 480 425 ; C 60 ; WX 600 ; N less ; B 121 15 612 501 ; C 61 ; WX 600 ; N equal ; B 96 118 614 398 ; C 62 ; WX 600 ; N greater ; B 97 15 589 501 ; C 63 ; WX 600 ; N question ; B 183 -14 591 580 ; C 64 ; WX 600 ; N at ; B 66 -15 641 616 ; C 65 ; WX 600 ; N A ; B -9 0 631 562 ; C 66 ; WX 600 ; N B ; B 30 0 629 562 ; C 67 ; WX 600 ; N C ; B 75 -18 674 580 ; C 68 ; WX 600 ; N D ; B 30 0 664 562 ; C 69 ; WX 600 ; N E ; B 25 0 669 562 ; C 70 ; WX 600 ; N F ; B 39 0 683 562 ; C 71 ; WX 600 ; N G ; B 75 -18 674 580 ; C 72 ; WX 600 ; N H ; B 20 0 699 562 ; C 73 ; WX 600 ; N I ; B 77 0 642 562 ; C 74 ; WX 600 ; N J ; B 59 -18 720 562 ; C 75 ; WX 600 ; N K ; B 21 0 691 562 ; C 76 ; WX 600 ; N L ; B 39 0 635 562 ; C 77 ; WX 600 ; N M ; B -2 0 721 562 ; C 78 ; WX 600 ; N N ; B 8 -12 729 562 ; C 79 ; WX 600 ; N O ; B 74 -18 645 580 ; C 80 ; WX 600 ; N P ; B 48 0 642 562 ; C 81 ; WX 600 ; N Q ; B 84 -138 636 580 ; C 82 ; WX 600 ; N R ; B 24 0 617 562 ; C 83 ; WX 600 ; N S ; B 54 -22 672 582 ; C 84 ; WX 600 ; N T ; B 86 0 678 562 ; C 85 ; WX 600 ; N U ; B 101 -18 715 562 ; C 86 ; WX 600 ; N V ; B 84 0 732 562 ; C 87 ; WX 600 ; N W ; B 84 0 737 562 ; C 88 ; WX 600 ; N X ; B 12 0 689 562 ; C 89 ; WX 600 ; N Y ; B 109 0 708 562 ; C 90 ; WX 600 ; N Z ; B 62 0 636 562 ; C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ; C 92 ; WX 600 ; N backslash ; B 223 -77 496 626 ; C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ; C 94 ; WX 600 ; N asciicircum ; B 171 250 555 616 ; C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ; C 96 ; WX 600 ; N quoteleft ; B 297 277 487 562 ; C 97 ; WX 600 ; N a ; B 62 -15 592 454 ; C 98 ; WX 600 ; N b ; B 13 -15 636 626 ; C 99 ; WX 600 ; N c ; B 81 -15 631 459 ; C 100 ; WX 600 ; N d ; B 61 -15 644 626 ; C 101 ; WX 600 ; N e ; B 81 -15 604 454 ; C 102 ; WX 600 ; N f ; B 83 0 677 626 ; C 103 ; WX 600 ; N g ; B 41 -146 673 454 ; C 104 ; WX 600 ; N h ; B 18 0 614 626 ; C 105 ; WX 600 ; N i ; B 77 0 545 658 ; C 106 ; WX 600 ; N j ; B 37 -146 580 658 ; C 107 ; WX 600 ; N k ; B 33 0 642 626 ; C 108 ; WX 600 ; N l ; B 77 0 545 626 ; C 109 ; WX 600 ; N m ; B -22 0 648 454 ; C 110 ; WX 600 ; N n ; B 18 0 614 454 ; C 111 ; WX 600 ; N o ; B 71 -15 622 454 ; C 112 ; WX 600 ; N p ; B -31 -142 622 454 ; C 113 ; WX 600 ; N q ; B 61 -142 684 454 ; C 114 ; WX 600 ; N r ; B 47 0 654 454 ; C 115 ; WX 600 ; N s ; B 67 -17 607 459 ; C 116 ; WX 600 ; N t ; B 118 -15 566 562 ; C 117 ; WX 600 ; N u ; B 70 -15 591 439 ; C 118 ; WX 600 ; N v ; B 70 0 694 439 ; C 119 ; WX 600 ; N w ; B 53 0 711 439 ; C 120 ; WX 600 ; N x ; B 6 0 670 439 ; C 121 ; WX 600 ; N y ; B -20 -142 694 439 ; C 122 ; WX 600 ; N z ; B 81 0 613 439 ; C 123 ; WX 600 ; N braceleft ; B 204 -102 595 616 ; C 124 ; WX 600 ; N bar ; B 202 -250 504 750 ; C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ; C 126 ; WX 600 ; N asciitilde ; B 120 153 589 356 ; C 161 ; WX 600 ; N exclamdown ; B 197 -146 477 449 ; C 162 ; WX 600 ; N cent ; B 121 -49 604 614 ; C 163 ; WX 600 ; N sterling ; B 107 -28 650 611 ; C 164 ; WX 600 ; N fraction ; B 22 -60 707 661 ; C 165 ; WX 600 ; N yen ; B 98 0 709 562 ; C 166 ; WX 600 ; N florin ; B -56 -131 701 616 ; C 167 ; WX 600 ; N section ; B 74 -70 619 580 ; C 168 ; WX 600 ; N currency ; B 77 49 643 517 ; C 169 ; WX 600 ; N quotesingle ; B 304 277 492 562 ; C 170 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ; C 171 ; WX 600 ; N guillemotleft ; B 63 70 638 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 196 70 544 446 ; C 173 ; WX 600 ; N guilsinglright ; B 166 70 514 446 ; C 174 ; WX 600 ; N fi ; B 12 0 643 626 ; C 175 ; WX 600 ; N fl ; B 12 0 643 626 ; C 177 ; WX 600 ; N endash ; B 108 203 602 313 ; C 178 ; WX 600 ; N dagger ; B 176 -70 586 580 ; C 179 ; WX 600 ; N daggerdbl ; B 122 -70 586 580 ; C 180 ; WX 600 ; N periodcentered ; B 249 165 461 351 ; C 182 ; WX 600 ; N paragraph ; B 61 -70 699 580 ; C 183 ; WX 600 ; N bullet ; B 197 132 523 430 ; C 184 ; WX 600 ; N quotesinglbase ; B 145 -142 457 143 ; C 185 ; WX 600 ; N quotedblbase ; B 35 -142 559 143 ; C 186 ; WX 600 ; N quotedblright ; B 120 277 644 562 ; C 187 ; WX 600 ; N guillemotright ; B 72 70 647 446 ; C 188 ; WX 600 ; N ellipsis ; B 35 -15 586 116 ; C 189 ; WX 600 ; N perthousand ; B -44 -15 742 616 ; C 191 ; WX 600 ; N questiondown ; B 101 -146 509 449 ; C 193 ; WX 600 ; N grave ; B 272 508 503 661 ; C 194 ; WX 600 ; N acute ; B 313 508 608 661 ; C 195 ; WX 600 ; N circumflex ; B 212 483 606 657 ; C 196 ; WX 600 ; N tilde ; B 200 493 642 636 ; C 197 ; WX 600 ; N macron ; B 195 505 636 585 ; C 198 ; WX 600 ; N breve ; B 217 468 651 631 ; C 199 ; WX 600 ; N dotaccent ; B 346 485 490 625 ; C 200 ; WX 600 ; N dieresis ; B 244 485 592 625 ; C 202 ; WX 600 ; N ring ; B 319 481 528 678 ; C 203 ; WX 600 ; N cedilla ; B 169 -206 367 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 172 488 728 661 ; C 206 ; WX 600 ; N ogonek ; B 144 -199 350 0 ; C 207 ; WX 600 ; N caron ; B 238 493 632 667 ; C 208 ; WX 600 ; N emdash ; B 33 203 677 313 ; C 225 ; WX 600 ; N AE ; B -29 0 707 562 ; C 227 ; WX 600 ; N ordfeminine ; B 189 196 526 580 ; C 232 ; WX 600 ; N Lslash ; B 39 0 635 562 ; C 233 ; WX 600 ; N Oslash ; B 48 -22 672 584 ; C 234 ; WX 600 ; N OE ; B 26 0 700 562 ; C 235 ; WX 600 ; N ordmasculine ; B 189 196 542 580 ; C 241 ; WX 600 ; N ae ; B 21 -15 651 454 ; C 245 ; WX 600 ; N dotlessi ; B 77 0 545 439 ; C 248 ; WX 600 ; N lslash ; B 77 0 578 626 ; C 249 ; WX 600 ; N oslash ; B 55 -24 637 463 ; C 250 ; WX 600 ; N oe ; B 19 -15 661 454 ; C 251 ; WX 600 ; N germandbls ; B 22 -15 628 626 ; C -1 ; WX 600 ; N Odieresis ; B 74 -18 645 748 ; C -1 ; WX 600 ; N logicalnot ; B 135 103 617 413 ; C -1 ; WX 600 ; N minus ; B 114 203 596 313 ; C -1 ; WX 600 ; N degree ; B 173 243 569 616 ; C -1 ; WX 600 ; N Eacute ; B 25 0 669 784 ; C -1 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ; C -1 ; WX 600 ; N ucircumflex ; B 70 -15 591 657 ; C -1 ; WX 600 ; N threesuperior ; B 193 222 525 616 ; C -1 ; WX 600 ; N multiply ; B 105 39 606 478 ; C -1 ; WX 600 ; N Scaron ; B 54 -22 672 790 ; C -1 ; WX 600 ; N Ucircumflex ; B 101 -18 715 780 ; C -1 ; WX 600 ; N divide ; B 114 16 596 500 ; C -1 ; WX 600 ; N Acircumflex ; B -9 0 631 780 ; C -1 ; WX 600 ; N eacute ; B 81 -15 608 661 ; C -1 ; WX 600 ; N uacute ; B 70 -15 608 661 ; C -1 ; WX 600 ; N Aacute ; B -9 0 665 784 ; C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; C -1 ; WX 600 ; N twosuperior ; B 192 230 541 616 ; C -1 ; WX 600 ; N Ecircumflex ; B 25 0 669 780 ; C -1 ; WX 600 ; N ntilde ; B 18 0 642 636 ; C -1 ; WX 600 ; N onesuperior ; B 213 230 514 616 ; C -1 ; WX 600 ; N edieresis ; B 81 -15 604 625 ; C -1 ; WX 600 ; N odieresis ; B 71 -15 622 625 ; C -1 ; WX 600 ; N Ograve ; B 74 -18 645 784 ; C -1 ; WX 600 ; N threequarters ; B 8 -60 698 661 ; C -1 ; WX 600 ; N plusminus ; B 76 24 614 515 ; C -1 ; WX 600 ; N eth ; B 93 -27 661 626 ; C -1 ; WX 600 ; N egrave ; B 81 -15 604 661 ; C -1 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ; C -1 ; WX 600 ; N Udieresis ; B 101 -18 715 748 ; C -1 ; WX 600 ; N Gcaron ; B 75 -18 674 790 ; C -1 ; WX 600 ; N Otilde ; B 74 -18 668 759 ; C -1 ; WX 600 ; N Idieresis ; B 77 0 642 748 ; C -1 ; WX 600 ; N adieresis ; B 62 -15 592 625 ; C -1 ; WX 600 ; N ecircumflex ; B 81 -15 606 657 ; C -1 ; WX 600 ; N Eth ; B 30 0 664 562 ; C -1 ; WX 600 ; N onequarter ; B 14 -60 706 661 ; C -1 ; WX 600 ; N agrave ; B 62 -15 592 661 ; C -1 ; WX 600 ; N Zcaron ; B 62 0 659 790 ; C -1 ; WX 600 ; N Scedilla ; B 54 -206 672 582 ; C -1 ; WX 600 ; N Iacute ; B 77 0 642 784 ; C -1 ; WX 600 ; N Ugrave ; B 101 -18 715 784 ; C -1 ; WX 600 ; N scaron ; B 67 -17 632 667 ; C -1 ; WX 600 ; N Aring ; B -9 0 631 801 ; C -1 ; WX 600 ; N Ccedilla ; B 74 -206 674 580 ; C -1 ; WX 600 ; N Igrave ; B 77 0 642 784 ; C -1 ; WX 600 ; N brokenbar ; B 218 -175 488 675 ; C -1 ; WX 600 ; N Oacute ; B 74 -18 645 784 ; C -1 ; WX 600 ; N otilde ; B 71 -15 642 636 ; C -1 ; WX 600 ; N Yacute ; B 109 0 708 784 ; C -1 ; WX 600 ; N Icircumflex ; B 77 0 642 780 ; C -1 ; WX 600 ; N Atilde ; B -9 0 638 759 ; C -1 ; WX 600 ; N Uacute ; B 101 -18 715 784 ; C -1 ; WX 600 ; N Ydieresis ; B 109 0 708 748 ; C -1 ; WX 600 ; N ydieresis ; B -20 -142 694 625 ; C -1 ; WX 600 ; N idieresis ; B 77 0 552 625 ; C -1 ; WX 600 ; N Adieresis ; B -9 0 631 748 ; C -1 ; WX 600 ; N mu ; B 50 -142 591 439 ; C -1 ; WX 600 ; N trademark ; B 86 230 868 562 ; C -1 ; WX 600 ; N oacute ; B 71 -15 622 661 ; C -1 ; WX 600 ; N acircumflex ; B 62 -15 592 657 ; C -1 ; WX 600 ; N Agrave ; B -9 0 631 784 ; C -1 ; WX 600 ; N atilde ; B 62 -15 642 636 ; C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; C -1 ; WX 600 ; N udieresis ; B 70 -15 591 625 ; C -1 ; WX 600 ; N igrave ; B 77 0 545 661 ; C -1 ; WX 600 ; N Edieresis ; B 25 0 669 748 ; C -1 ; WX 600 ; N zcaron ; B 81 0 632 667 ; C -1 ; WX 600 ; N gcaron ; B 41 -146 673 667 ; C -1 ; WX 600 ; N aacute ; B 62 -15 608 661 ; C -1 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ; C -1 ; WX 600 ; N scedilla ; B 67 -206 607 459 ; C -1 ; WX 600 ; N ograve ; B 71 -15 622 661 ; C -1 ; WX 600 ; N onehalf ; B 23 -60 715 661 ; C -1 ; WX 600 ; N ugrave ; B 70 -15 591 661 ; C -1 ; WX 600 ; N Ntilde ; B 8 -12 729 759 ; C -1 ; WX 600 ; N iacute ; B 77 0 608 661 ; C -1 ; WX 600 ; N Thorn ; B 48 0 619 562 ; C -1 ; WX 600 ; N Egrave ; B 25 0 669 784 ; C -1 ; WX 600 ; N thorn ; B -31 -142 622 626 ; C -1 ; WX 600 ; N aring ; B 62 -15 592 678 ; C -1 ; WX 600 ; N yacute ; B -20 -142 694 661 ; C -1 ; WX 600 ; N icircumflex ; B 77 0 566 657 ; C -1 ; WX 600 ; N Abreve ; B -9 0 633 761 ; C -1 ; WX 600 ; N abreve ; B 62 -15 651 631 ; C -1 ; WX 600 ; N Amacron ; B -9 0 631 715 ; C -1 ; WX 600 ; N amacron ; B 62 -15 636 585 ; C -1 ; WX 600 ; N Aogonek ; B -9 -199 631 562 ; C -1 ; WX 600 ; N aogonek ; B 62 -199 592 454 ; C -1 ; WX 600 ; N cacute ; B 81 -15 631 661 ; C -1 ; WX 600 ; N Cacute ; B 75 -18 674 791 ; C -1 ; WX 600 ; N ccaron ; B 81 -15 632 667 ; C -1 ; WX 600 ; N Ccaron ; B 75 -18 674 797 ; C -1 ; WX 600 ; N ccircumflex ; B 81 -15 631 657 ; C -1 ; WX 600 ; N Ccircumflex ; B 75 -18 674 787 ; C -1 ; WX 600 ; N cdotaccent ; B 81 -15 631 625 ; C -1 ; WX 600 ; N Cdotaccent ; B 75 -18 674 755 ; C -1 ; WX 600 ; N dbar ; B 61 -15 767 626 ; C -1 ; WX 600 ; N Dbar ; B 0 0 664 562 ; C -1 ; WX 600 ; N Dcaron ; B 30 0 664 797 ; C -1 ; WX 600 ; N dcaron ; B 61 -15 667 845 ; C -1 ; WX 600 ; N ecaron ; B 81 -15 632 667 ; C -1 ; WX 600 ; N Ecaron ; B 25 0 669 797 ; C -1 ; WX 600 ; N edotaccent ; B 81 -15 604 625 ; C -1 ; WX 600 ; N Edotaccent ; B 25 0 669 755 ; C -1 ; WX 600 ; N emacron ; B 81 -15 636 585 ; C -1 ; WX 600 ; N Emacron ; B 25 0 669 715 ; C -1 ; WX 600 ; N Eogonek ; B 25 -199 669 562 ; C -1 ; WX 600 ; N eogonek ; B 81 -199 604 454 ; C -1 ; WX 600 ; N gacute ; B 41 -146 673 661 ; C -1 ; WX 600 ; N gbreve ; B 41 -146 673 631 ; C -1 ; WX 600 ; N Gbreve ; B 75 -18 681 761 ; C -1 ; WX 600 ; N gcircumflex ; B 41 -146 673 657 ; C -1 ; WX 600 ; N Gcircumflex ; B 75 -18 674 787 ; C -1 ; WX 600 ; N gdotaccent ; B 41 -146 673 625 ; C -1 ; WX 600 ; N Gdotaccent ; B 75 -18 674 755 ; C -1 ; WX 600 ; N hcircumflex ; B 18 0 614 835 ; C -1 ; WX 600 ; N Hcircumflex ; B 20 0 699 787 ; C -1 ; WX 600 ; N Idotaccent ; B 77 0 642 755 ; C -1 ; WX 600 ; N imacron ; B 77 0 636 585 ; C -1 ; WX 600 ; N Imacron ; B 77 0 666 715 ; C -1 ; WX 600 ; N Iogonek ; B 77 -199 642 562 ; C -1 ; WX 600 ; N iogonek ; B 77 -199 545 658 ; C -1 ; WX 600 ; N itilde ; B 77 0 642 636 ; C -1 ; WX 600 ; N Itilde ; B 77 0 672 766 ; C -1 ; WX 600 ; N Jcircumflex ; B 59 -18 720 787 ; C -1 ; WX 600 ; N Lacute ; B 39 0 635 791 ; C -1 ; WX 600 ; N lacute ; B 77 0 608 839 ; C -1 ; WX 600 ; N Lcaron ; B 39 0 635 797 ; C -1 ; WX 600 ; N lcaron ; B 77 0 632 845 ; C -1 ; WX 600 ; N nacute ; B 18 0 614 661 ; C -1 ; WX 600 ; N Nacute ; B 8 -12 729 791 ; C -1 ; WX 600 ; N ncaron ; B 18 0 632 667 ; C -1 ; WX 600 ; N Ncaron ; B 8 -12 729 797 ; C -1 ; WX 600 ; N ohungarumlaut ; B 71 -15 728 661 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 74 -18 758 791 ; C -1 ; WX 600 ; N omacron ; B 71 -15 636 585 ; C -1 ; WX 600 ; N Omacron ; B 74 -18 666 715 ; C -1 ; WX 600 ; N racute ; B 47 0 654 661 ; C -1 ; WX 600 ; N Racute ; B 24 0 638 791 ; C -1 ; WX 600 ; N rcaron ; B 47 0 654 667 ; C -1 ; WX 600 ; N Rcaron ; B 24 0 662 797 ; C -1 ; WX 600 ; N sacute ; B 67 -17 608 661 ; C -1 ; WX 600 ; N Sacute ; B 54 -22 672 791 ; C -1 ; WX 600 ; N scircumflex ; B 67 -17 607 657 ; C -1 ; WX 600 ; N Scircumflex ; B 54 -22 672 787 ; C -1 ; WX 600 ; N tcaron ; B 118 -15 573 773 ; C -1 ; WX 600 ; N Tcaron ; B 86 0 678 797 ; C -1 ; WX 600 ; N Tcedilla ; B 86 -206 678 562 ; C -1 ; WX 600 ; N tcedilla ; B 118 -206 566 562 ; C -1 ; WX 600 ; N ubreve ; B 70 -15 651 631 ; C -1 ; WX 600 ; N Ubreve ; B 101 -18 715 761 ; C -1 ; WX 600 ; N uhungarumlaut ; B 70 -15 728 661 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 101 -18 758 791 ; C -1 ; WX 600 ; N umacron ; B 70 -15 636 585 ; C -1 ; WX 600 ; N Umacron ; B 101 -18 715 715 ; C -1 ; WX 600 ; N Uogonek ; B 101 -192 715 562 ; C -1 ; WX 600 ; N uogonek ; B 70 -199 591 439 ; C -1 ; WX 600 ; N uring ; B 70 -15 591 678 ; C -1 ; WX 600 ; N Uring ; B 101 -18 715 808 ; C -1 ; WX 600 ; N utilde ; B 70 -15 642 636 ; C -1 ; WX 600 ; N Utilde ; B 101 -18 715 766 ; C -1 ; WX 600 ; N zacute ; B 81 0 613 661 ; C -1 ; WX 600 ; N Zacute ; B 62 0 638 791 ; C -1 ; WX 600 ; N zdotaccent ; B 81 0 613 625 ; C -1 ; WX 600 ; N Zdotaccent ; B 62 0 636 755 ; EndCharMetrics EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrbo-o.ps���������������������������������������������������������������������0000644�0000000�0000000�00000007371�14415562571�013116� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Courier-BoldOblique-Ogonki /Courier-BoldOblique /Courier-BoldOblique-Ogonki OgonkiEncoding StandardEncoding 111 dict dup /Agrave [65 -24 123 27] put dup /Aring [65 16 123 31] put dup /Atilde [65 -4 123 29] put dup /Ecircumflex [69 26 123 28] put dup /Egrave [69 26 123 27] put dup /Gcaron [71 36 123 183] put dup /Idieresis [73 26 123 168] put dup /Igrave [73 26 123 27] put dup /Ntilde [78 26 123 29] put dup /Ograve [79 26 123 27] put dup /Otilde [79 26 123 29] put dup /Ucircumflex [85 26 123 28] put dup /Ugrave [85 -4 123 27] put dup /Ydieresis [89 26 123 168] put dup /agrave [97 -30 0 27] put dup /aring [97 0 0 31] put dup /atilde [97 0 0 29] put dup /ecircumflex [101 0 0 28] put dup /egrave [101 0 0 27] put dup /gcaron [103 -40 0 183] put dup /idieresis [136 -40 0 168] put dup /igrave [136 0 0 27] put dup /ntilde [110 0 0 29] put dup /ograve [111 0 0 27] put dup /otilde [111 0 0 29] put dup /ucircumflex [117 -20 0 28] put dup /ugrave [117 -30 0 27] put dup /ydieresis [121 10 0 168] put dup /Abreve [65 -18 130 162] put dup /abreve [97 0 0 162] put dup /Amacron [65 -15 130 30] put dup /amacron [97 0 0 30] put dup /Aogonek [65 200 0 178] put dup /aogonek [97 200 0 178] put dup /cacute [99 0 0 180] put dup /Cacute [67 30 130 180] put dup /ccaron [99 0 0 183] put dup /Ccaron [67 30 130 183] put dup /ccircumflex [99 0 0 28] put dup /Ccircumflex [67 30 130 28] put dup /cdotaccent [99 0 0 255] put dup /Cdotaccent [67 30 130 255] put dup /dbar [100 200 250 173] put dup /Dbar [208 0 0 160] put dup /Dcaron [68 -12 130 183] put dup /dcaron [100 35 178 183] put dup /ecaron [101 0 0 183] put dup /Ecaron [69 30 130 183] put dup /edotaccent [101 0 0 255] put dup /Edotaccent [69 30 130 255] put dup /emacron [101 0 0 30] put dup /Emacron [69 30 130 30] put dup /Eogonek [69 0 0 178] put dup /eogonek [101 0 0 178] put dup /gacute [103 0 0 180] put dup /gbreve [103 0 0 162] put dup /Gbreve [71 30 130 162] put dup /gcircumflex [103 0 0 28] put dup /Gcircumflex [71 30 130 28] put dup /gdotaccent [103 0 0 255] put dup /Gdotaccent [71 30 130 255] put dup /hcircumflex [104 0 178 28] put dup /Hcircumflex [72 30 130 28] put dup /Idotaccent [73 30 130 255] put dup /imacron [136 0 0 30] put dup /Imacron [73 30 130 30] put dup /Iogonek [73 20 0 178] put dup /iogonek [105 20 0 178] put dup /itilde [136 0 0 29] put dup /Itilde [73 30 130 29] put dup /Jcircumflex [74 95 130 28] put dup /Lacute [76 -88 130 180] put dup /lacute [108 0 178 180] put dup /Lcaron [76 -88 130 183] put dup /lcaron [108 0 178 183] put dup /nacute [110 0 0 180] put dup /Nacute [78 30 130 180] put dup /ncaron [110 0 0 183] put dup /Ncaron [78 30 130 183] put dup /ohungarumlaut [111 0 0 189] put dup /Ohungarumlaut [79 30 130 189] put dup /omacron [111 0 0 30] put dup /Omacron [79 30 130 30] put dup /racute [114 0 0 180] put dup /Racute [82 30 130 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 30 130 183] put dup /sacute [115 0 0 180] put dup /Sacute [83 30 130 180] put dup /scircumflex [115 0 0 28] put dup /Scircumflex [83 30 130 28] put dup /tcaron [116 -59 106 183] put dup /Tcaron [84 30 130 183] put dup /Tcedilla [84 0 0 184] put dup /tcedilla [116 0 0 184] put dup /ubreve [117 0 0 162] put dup /Ubreve [85 30 130 162] put dup /uhungarumlaut [117 0 0 189] put dup /Uhungarumlaut [85 30 130 189] put dup /umacron [117 0 0 30] put dup /Umacron [85 30 130 30] put dup /Uogonek [85 0 7 178] put dup /uogonek [117 108 0 178] put dup /uring [117 0 0 31] put dup /Uring [85 30 130 31] put dup /utilde [117 0 0 29] put dup /Utilde [85 30 130 29] put dup /zacute [122 0 0 180] put dup /Zacute [90 30 130 180] put dup /zdotaccent [122 0 0 255] put dup /Zdotaccent [90 30 130 255] put makeComposite %%EndResource �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrbo.afm����������������������������������������������������������������������0000644�0000000�0000000�00000036076�14233473143�013001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1989, 1990, 1991, Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Tue Sep 17 14:13:24 1991 Comment UniqueID 36389 Comment VMusage 10055 54684 FontName Courier-BoldOblique FullName Courier Bold Oblique FamilyName Courier Weight Bold ItalicAngle -12 IsFixedPitch true FontBBox -56 -250 868 801 UnderlinePosition -100 UnderlineThickness 50 Version 002.004 Notice Copyright (c) 1989, 1990, 1991, Adobe Systems Incorporated. All rights reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 439 Ascender 626 Descender -142 StartCharMetrics 260 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 216 -15 495 572 ; C 34 ; WX 600 ; N quotedbl ; B 212 277 584 562 ; C 35 ; WX 600 ; N numbersign ; B 88 -45 640 651 ; C 36 ; WX 600 ; N dollar ; B 87 -126 629 666 ; C 37 ; WX 600 ; N percent ; B 102 -15 624 616 ; C 38 ; WX 600 ; N ampersand ; B 62 -15 594 543 ; C 39 ; WX 600 ; N quoteright ; B 230 277 542 562 ; C 40 ; WX 600 ; N parenleft ; B 266 -102 592 616 ; C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ; C 42 ; WX 600 ; N asterisk ; B 179 219 597 601 ; C 43 ; WX 600 ; N plus ; B 114 39 596 478 ; C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ; C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ; C 46 ; WX 600 ; N period ; B 207 -15 426 171 ; C 47 ; WX 600 ; N slash ; B 91 -77 626 626 ; C 48 ; WX 600 ; N zero ; B 136 -15 592 616 ; C 49 ; WX 600 ; N one ; B 93 0 561 616 ; C 50 ; WX 600 ; N two ; B 61 0 593 616 ; C 51 ; WX 600 ; N three ; B 72 -15 571 616 ; C 52 ; WX 600 ; N four ; B 82 0 558 616 ; C 53 ; WX 600 ; N five ; B 77 -15 621 601 ; C 54 ; WX 600 ; N six ; B 136 -15 652 616 ; C 55 ; WX 600 ; N seven ; B 147 0 622 601 ; C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ; C 57 ; WX 600 ; N nine ; B 76 -15 592 616 ; C 58 ; WX 600 ; N colon ; B 206 -15 479 425 ; C 59 ; WX 600 ; N semicolon ; B 99 -111 480 425 ; C 60 ; WX 600 ; N less ; B 121 15 612 501 ; C 61 ; WX 600 ; N equal ; B 96 118 614 398 ; C 62 ; WX 600 ; N greater ; B 97 15 589 501 ; C 63 ; WX 600 ; N question ; B 183 -14 591 580 ; C 64 ; WX 600 ; N at ; B 66 -15 641 616 ; C 65 ; WX 600 ; N A ; B -9 0 631 562 ; C 66 ; WX 600 ; N B ; B 30 0 629 562 ; C 67 ; WX 600 ; N C ; B 75 -18 674 580 ; C 68 ; WX 600 ; N D ; B 30 0 664 562 ; C 69 ; WX 600 ; N E ; B 25 0 669 562 ; C 70 ; WX 600 ; N F ; B 39 0 683 562 ; C 71 ; WX 600 ; N G ; B 75 -18 674 580 ; C 72 ; WX 600 ; N H ; B 20 0 699 562 ; C 73 ; WX 600 ; N I ; B 77 0 642 562 ; C 74 ; WX 600 ; N J ; B 59 -18 720 562 ; C 75 ; WX 600 ; N K ; B 21 0 691 562 ; C 76 ; WX 600 ; N L ; B 39 0 635 562 ; C 77 ; WX 600 ; N M ; B -2 0 721 562 ; C 78 ; WX 600 ; N N ; B 8 -12 729 562 ; C 79 ; WX 600 ; N O ; B 74 -18 645 580 ; C 80 ; WX 600 ; N P ; B 48 0 642 562 ; C 81 ; WX 600 ; N Q ; B 84 -138 636 580 ; C 82 ; WX 600 ; N R ; B 24 0 617 562 ; C 83 ; WX 600 ; N S ; B 54 -22 672 582 ; C 84 ; WX 600 ; N T ; B 86 0 678 562 ; C 85 ; WX 600 ; N U ; B 101 -18 715 562 ; C 86 ; WX 600 ; N V ; B 84 0 732 562 ; C 87 ; WX 600 ; N W ; B 84 0 737 562 ; C 88 ; WX 600 ; N X ; B 12 0 689 562 ; C 89 ; WX 600 ; N Y ; B 109 0 708 562 ; C 90 ; WX 600 ; N Z ; B 62 0 636 562 ; C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ; C 92 ; WX 600 ; N backslash ; B 223 -77 496 626 ; C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ; C 94 ; WX 600 ; N asciicircum ; B 171 250 555 616 ; C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ; C 96 ; WX 600 ; N quoteleft ; B 297 277 487 562 ; C 97 ; WX 600 ; N a ; B 62 -15 592 454 ; C 98 ; WX 600 ; N b ; B 13 -15 636 626 ; C 99 ; WX 600 ; N c ; B 81 -15 631 459 ; C 100 ; WX 600 ; N d ; B 61 -15 644 626 ; C 101 ; WX 600 ; N e ; B 81 -15 604 454 ; C 102 ; WX 600 ; N f ; B 83 0 677 626 ; L i fi ; L l fl ; C 103 ; WX 600 ; N g ; B 41 -146 673 454 ; C 104 ; WX 600 ; N h ; B 18 0 614 626 ; C 105 ; WX 600 ; N i ; B 77 0 545 658 ; C 106 ; WX 600 ; N j ; B 37 -146 580 658 ; C 107 ; WX 600 ; N k ; B 33 0 642 626 ; C 108 ; WX 600 ; N l ; B 77 0 545 626 ; C 109 ; WX 600 ; N m ; B -22 0 648 454 ; C 110 ; WX 600 ; N n ; B 18 0 614 454 ; C 111 ; WX 600 ; N o ; B 71 -15 622 454 ; C 112 ; WX 600 ; N p ; B -31 -142 622 454 ; C 113 ; WX 600 ; N q ; B 61 -142 684 454 ; C 114 ; WX 600 ; N r ; B 47 0 654 454 ; C 115 ; WX 600 ; N s ; B 67 -17 607 459 ; C 116 ; WX 600 ; N t ; B 118 -15 566 562 ; C 117 ; WX 600 ; N u ; B 70 -15 591 439 ; C 118 ; WX 600 ; N v ; B 70 0 694 439 ; C 119 ; WX 600 ; N w ; B 53 0 711 439 ; C 120 ; WX 600 ; N x ; B 6 0 670 439 ; C 121 ; WX 600 ; N y ; B -20 -142 694 439 ; C 122 ; WX 600 ; N z ; B 81 0 613 439 ; C 123 ; WX 600 ; N braceleft ; B 204 -102 595 616 ; C 124 ; WX 600 ; N bar ; B 202 -250 504 750 ; C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ; C 126 ; WX 600 ; N asciitilde ; B 120 153 589 356 ; C 161 ; WX 600 ; N exclamdown ; B 197 -146 477 449 ; C 162 ; WX 600 ; N cent ; B 121 -49 604 614 ; C 163 ; WX 600 ; N sterling ; B 107 -28 650 611 ; C 164 ; WX 600 ; N fraction ; B 22 -60 707 661 ; C 165 ; WX 600 ; N yen ; B 98 0 709 562 ; C 166 ; WX 600 ; N florin ; B -56 -131 701 616 ; C 167 ; WX 600 ; N section ; B 74 -70 619 580 ; C 168 ; WX 600 ; N currency ; B 77 49 643 517 ; C 169 ; WX 600 ; N quotesingle ; B 304 277 492 562 ; C 170 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ; C 171 ; WX 600 ; N guillemotleft ; B 63 70 638 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 196 70 544 446 ; C 173 ; WX 600 ; N guilsinglright ; B 166 70 514 446 ; C 174 ; WX 600 ; N fi ; B 12 0 643 626 ; C 175 ; WX 600 ; N fl ; B 12 0 643 626 ; C 177 ; WX 600 ; N endash ; B 108 203 602 313 ; C 178 ; WX 600 ; N dagger ; B 176 -70 586 580 ; C 179 ; WX 600 ; N daggerdbl ; B 122 -70 586 580 ; C 180 ; WX 600 ; N periodcentered ; B 249 165 461 351 ; C 182 ; WX 600 ; N paragraph ; B 61 -70 699 580 ; C 183 ; WX 600 ; N bullet ; B 197 132 523 430 ; C 184 ; WX 600 ; N quotesinglbase ; B 145 -142 457 143 ; C 185 ; WX 600 ; N quotedblbase ; B 35 -142 559 143 ; C 186 ; WX 600 ; N quotedblright ; B 120 277 644 562 ; C 187 ; WX 600 ; N guillemotright ; B 72 70 647 446 ; C 188 ; WX 600 ; N ellipsis ; B 35 -15 586 116 ; C 189 ; WX 600 ; N perthousand ; B -44 -15 742 616 ; C 191 ; WX 600 ; N questiondown ; B 101 -146 509 449 ; C 193 ; WX 600 ; N grave ; B 272 508 503 661 ; C 194 ; WX 600 ; N acute ; B 313 508 608 661 ; C 195 ; WX 600 ; N circumflex ; B 212 483 606 657 ; C 196 ; WX 600 ; N tilde ; B 200 493 642 636 ; C 197 ; WX 600 ; N macron ; B 195 505 636 585 ; C 198 ; WX 600 ; N breve ; B 217 468 651 631 ; C 199 ; WX 600 ; N dotaccent ; B 346 485 490 625 ; C 200 ; WX 600 ; N dieresis ; B 244 485 592 625 ; C 202 ; WX 600 ; N ring ; B 319 481 528 678 ; C 203 ; WX 600 ; N cedilla ; B 169 -206 367 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 172 488 728 661 ; C 206 ; WX 600 ; N ogonek ; B 144 -199 350 0 ; C 207 ; WX 600 ; N caron ; B 238 493 632 667 ; C 208 ; WX 600 ; N emdash ; B 33 203 677 313 ; C 225 ; WX 600 ; N AE ; B -29 0 707 562 ; C 227 ; WX 600 ; N ordfeminine ; B 189 196 526 580 ; C 232 ; WX 600 ; N Lslash ; B 39 0 635 562 ; C 233 ; WX 600 ; N Oslash ; B 48 -22 672 584 ; C 234 ; WX 600 ; N OE ; B 26 0 700 562 ; C 235 ; WX 600 ; N ordmasculine ; B 189 196 542 580 ; C 241 ; WX 600 ; N ae ; B 21 -15 651 454 ; C 245 ; WX 600 ; N dotlessi ; B 77 0 545 439 ; C 248 ; WX 600 ; N lslash ; B 77 0 578 626 ; C 249 ; WX 600 ; N oslash ; B 55 -24 637 463 ; C 250 ; WX 600 ; N oe ; B 19 -15 661 454 ; C 251 ; WX 600 ; N germandbls ; B 22 -15 628 626 ; C -1 ; WX 600 ; N Odieresis ; B 74 -18 645 748 ; C -1 ; WX 600 ; N logicalnot ; B 135 103 617 413 ; C -1 ; WX 600 ; N minus ; B 114 203 596 313 ; C -1 ; WX 600 ; N merge ; B 168 -15 533 487 ; C -1 ; WX 600 ; N degree ; B 173 243 569 616 ; C -1 ; WX 600 ; N dectab ; B 8 0 615 320 ; C -1 ; WX 600 ; N ll ; B 1 0 653 626 ; C -1 ; WX 600 ; N IJ ; B -8 -18 741 562 ; C -1 ; WX 600 ; N Eacute ; B 25 0 669 784 ; C -1 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ; C -1 ; WX 600 ; N ucircumflex ; B 70 -15 591 657 ; C -1 ; WX 600 ; N left ; B 109 44 589 371 ; C -1 ; WX 600 ; N threesuperior ; B 193 222 525 616 ; C -1 ; WX 600 ; N up ; B 196 0 523 447 ; C -1 ; WX 600 ; N multiply ; B 105 39 606 478 ; C -1 ; WX 600 ; N Scaron ; B 54 -22 672 790 ; C -1 ; WX 600 ; N tab ; B 19 0 641 562 ; C -1 ; WX 600 ; N Ucircumflex ; B 101 -18 715 780 ; C -1 ; WX 600 ; N divide ; B 114 16 596 500 ; C -1 ; WX 600 ; N Acircumflex ; B -9 0 631 780 ; C -1 ; WX 600 ; N eacute ; B 81 -15 608 661 ; C -1 ; WX 600 ; N uacute ; B 70 -15 608 661 ; C -1 ; WX 600 ; N Aacute ; B -9 0 665 784 ; C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; C -1 ; WX 600 ; N twosuperior ; B 192 230 541 616 ; C -1 ; WX 600 ; N Ecircumflex ; B 25 0 669 780 ; C -1 ; WX 600 ; N ntilde ; B 18 0 642 636 ; C -1 ; WX 600 ; N down ; B 168 -15 496 439 ; C -1 ; WX 600 ; N center ; B 103 14 623 580 ; C -1 ; WX 600 ; N onesuperior ; B 213 230 514 616 ; C -1 ; WX 600 ; N ij ; B 6 -146 714 658 ; C -1 ; WX 600 ; N edieresis ; B 81 -15 604 625 ; C -1 ; WX 600 ; N graybox ; B 76 0 652 599 ; C -1 ; WX 600 ; N odieresis ; B 71 -15 622 625 ; C -1 ; WX 600 ; N Ograve ; B 74 -18 645 784 ; C -1 ; WX 600 ; N threequarters ; B 8 -60 698 661 ; C -1 ; WX 600 ; N plusminus ; B 76 24 614 515 ; C -1 ; WX 600 ; N prescription ; B 24 -15 632 562 ; C -1 ; WX 600 ; N eth ; B 93 -27 661 626 ; C -1 ; WX 600 ; N largebullet ; B 307 229 413 333 ; C -1 ; WX 600 ; N egrave ; B 81 -15 604 661 ; C -1 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ; C -1 ; WX 600 ; N notegraphic ; B 91 -15 619 572 ; C -1 ; WX 600 ; N Udieresis ; B 101 -18 715 748 ; C -1 ; WX 600 ; N Gcaron ; B 75 -18 674 790 ; C -1 ; WX 600 ; N arrowdown ; B 174 -15 486 608 ; C -1 ; WX 600 ; N format ; B -26 -146 243 601 ; C -1 ; WX 600 ; N Otilde ; B 74 -18 668 759 ; C -1 ; WX 600 ; N Idieresis ; B 77 0 642 748 ; C -1 ; WX 600 ; N adieresis ; B 62 -15 592 625 ; C -1 ; WX 600 ; N ecircumflex ; B 81 -15 606 657 ; C -1 ; WX 600 ; N Eth ; B 30 0 664 562 ; C -1 ; WX 600 ; N onequarter ; B 14 -60 706 661 ; C -1 ; WX 600 ; N LL ; B -45 0 694 562 ; C -1 ; WX 600 ; N agrave ; B 62 -15 592 661 ; C -1 ; WX 600 ; N Zcaron ; B 62 0 659 790 ; C -1 ; WX 600 ; N Scedilla ; B 54 -206 672 582 ; C -1 ; WX 600 ; N Idot ; B 77 0 642 748 ; C -1 ; WX 600 ; N Iacute ; B 77 0 642 784 ; C -1 ; WX 600 ; N indent ; B 99 45 579 372 ; C -1 ; WX 600 ; N Ugrave ; B 101 -18 715 784 ; C -1 ; WX 600 ; N scaron ; B 67 -17 632 667 ; C -1 ; WX 600 ; N overscore ; B 123 579 734 629 ; C -1 ; WX 600 ; N Aring ; B -9 0 631 801 ; C -1 ; WX 600 ; N Ccedilla ; B 74 -206 674 580 ; C -1 ; WX 600 ; N Igrave ; B 77 0 642 784 ; C -1 ; WX 600 ; N brokenbar ; B 218 -175 488 675 ; C -1 ; WX 600 ; N Oacute ; B 74 -18 645 784 ; C -1 ; WX 600 ; N otilde ; B 71 -15 642 636 ; C -1 ; WX 600 ; N Yacute ; B 109 0 708 784 ; C -1 ; WX 600 ; N lira ; B 107 -28 650 611 ; C -1 ; WX 600 ; N Icircumflex ; B 77 0 642 780 ; C -1 ; WX 600 ; N Atilde ; B -9 0 638 759 ; C -1 ; WX 600 ; N Uacute ; B 101 -18 715 784 ; C -1 ; WX 600 ; N Ydieresis ; B 109 0 708 748 ; C -1 ; WX 600 ; N ydieresis ; B -20 -142 694 625 ; C -1 ; WX 600 ; N idieresis ; B 77 0 552 625 ; C -1 ; WX 600 ; N Adieresis ; B -9 0 631 748 ; C -1 ; WX 600 ; N mu ; B 50 -142 591 439 ; C -1 ; WX 600 ; N trademark ; B 86 230 868 562 ; C -1 ; WX 600 ; N oacute ; B 71 -15 622 661 ; C -1 ; WX 600 ; N acircumflex ; B 62 -15 592 657 ; C -1 ; WX 600 ; N Agrave ; B -9 0 631 784 ; C -1 ; WX 600 ; N return ; B 79 0 700 562 ; C -1 ; WX 600 ; N atilde ; B 62 -15 642 636 ; C -1 ; WX 600 ; N square ; B 19 0 700 562 ; C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; C -1 ; WX 600 ; N stop ; B 19 0 700 562 ; C -1 ; WX 600 ; N udieresis ; B 70 -15 591 625 ; C -1 ; WX 600 ; N arrowup ; B 244 3 556 626 ; C -1 ; WX 600 ; N igrave ; B 77 0 545 661 ; C -1 ; WX 600 ; N Edieresis ; B 25 0 669 748 ; C -1 ; WX 600 ; N zcaron ; B 81 0 632 667 ; C -1 ; WX 600 ; N arrowboth ; B 40 143 688 455 ; C -1 ; WX 600 ; N gcaron ; B 41 -146 673 667 ; C -1 ; WX 600 ; N arrowleft ; B 40 143 708 455 ; C -1 ; WX 600 ; N aacute ; B 62 -15 608 661 ; C -1 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ; C -1 ; WX 600 ; N scedilla ; B 67 -206 607 459 ; C -1 ; WX 600 ; N ograve ; B 71 -15 622 661 ; C -1 ; WX 600 ; N onehalf ; B 23 -60 715 661 ; C -1 ; WX 600 ; N ugrave ; B 70 -15 591 661 ; C -1 ; WX 600 ; N Ntilde ; B 8 -12 729 759 ; C -1 ; WX 600 ; N iacute ; B 77 0 608 661 ; C -1 ; WX 600 ; N arrowright ; B 20 143 688 455 ; C -1 ; WX 600 ; N Thorn ; B 48 0 619 562 ; C -1 ; WX 600 ; N Egrave ; B 25 0 669 784 ; C -1 ; WX 600 ; N thorn ; B -31 -142 622 626 ; C -1 ; WX 600 ; N aring ; B 62 -15 592 678 ; C -1 ; WX 600 ; N yacute ; B -20 -142 694 661 ; C -1 ; WX 600 ; N icircumflex ; B 77 0 566 657 ; EndCharMetrics StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 56 123 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -4 123 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 6 123 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave -24 123 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 16 123 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde -4 123 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 56 123 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 26 123 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 26 123 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 26 123 ; CC Gcaron 2 ; PCC G 0 0 ; PCC caron 36 123 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 26 123 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 26 123 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 26 123 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 26 123 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 26 123 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 26 123 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 26 123 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 26 123 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 26 123 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 26 123 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 26 123 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 56 123 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 26 123 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 26 123 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave -4 123 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 56 123 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 26 123 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 26 123 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex -20 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis -10 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave -30 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; CC gcaron 2 ; PCC g 0 0 ; PCC caron -40 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -40 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -40 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex -20 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis -20 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave -30 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 30 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 10 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; EndComposites EndFontMetrics ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrr-c.afm���������������������������������������������������������������������0000644�0000000�0000000�00000015250�14233473143�013051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Composite characters for Courier-BoldOblique Comment By J. Chroboczek Comment Some of this data was stolen from IBM Courier FontName Courier-Comp FamilyName Courier StartComposites 141 CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 0 133 ; CC abreve 2 ; PCC a 0 0 ; PCC breve 0 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 0 133 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex -20 0 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 0 133 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis -20 0 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 0 133 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 0 133 ; CC amacron 2 ; PCC a 0 0 ; PCC macron 0 0 ; CC Amacron 2 ; PCC A 0 0 ; PCC macron 0 133 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 200 0 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 200 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 0 133 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 133 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 17 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 30 133 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 17 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 30 133 ; CC ccircumflex 2 ; PCC c 0 0 ; PCC circumflex 17 2 ; CC Ccircumflex 2 ; PCC C 0 0 ; PCC circumflex 30 133 ; CC cdotaccent 2 ; PCC c 0 0 ; PCC dotaccent 0 0 ; CC Cdotaccent 2 ; PCC C 0 0 ; PCC dotaccent 30 133 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 200 250 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 0 133 ; CC dcaron 2 ; PCC d 0 0 ; PCC caron 17 156 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 0 133 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 0 133 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 133 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 133 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 0 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 0 133 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 133 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 17 0 ; CC Emacron 2 ; PCC E 0 0 ; PCC macron 0 133 ; CC emacron 2 ; PCC e 0 0 ; PCC macron 17 0 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 100 0 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 100 0 ; CC gacute 2 ; PCC g 0 0 ; PCC acute 0 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 0 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 30 133 ; CC gcircumflex 2 ; PCC g 0 0 ; PCC circumflex 0 0 ; CC Gcircumflex 2 ; PCC G 0 0 ; PCC circumflex 30 133 ; CC gdotaccent 2 ; PCC g 0 0 ; PCC dotaccent 0 0 ; CC Gdotaccent 2 ; PCC G 0 0 ; PCC dotaccent 0 133 ; CC Hcircumflex 2 ; PCC H 0 0 ; PCC circumflex 0 133 ; CC hcircumflex 2 ; PCC h 0 0 ; PCC circumflex 0 164 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 133 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 133 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 133 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 0 133 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 133 ; CC imacron 2 ; PCC dotlessi 0 0 ; PCC macron 0 0 ; CC Imacron 2 ; PCC I 0 0 ; PCC macron 0 133 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek 20 0 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek 20 0 ; CC itilde 2 ; PCC dotlessi 0 0 ; PCC tilde 0 0 ; CC Itilde 2 ; PCC I 0 0 ; PCC tilde 0 133 ; CC Jcircumflex 2 ; PCC J 0 0 ; PCC circumflex 100 133 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute -100 133 ; CC lacute 2 ; PCC l 0 0 ; PCC acute -12 147 ; CC Lcaron 2 ; PCC L 0 0 ; PCC caron -100 133 ; CC lcaron 2 ; PCC l 0 0 ; PCC caron -12 144 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 0 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 0 133 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 0 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 0 133 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 133 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 133 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 133 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 133 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 133 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 0 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 0 133 ; CC omacron 2 ; PCC o 0 0 ; PCC macron 0 0 ; CC Omacron 2 ; PCC O 0 0 ; PCC macron 0 133 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 133 ; CC racute 2 ; PCC r 0 0 ; PCC acute 0 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 0 133 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 0 133 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 0 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 0 133 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 0 133 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 0 0 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 0 0 ; CC scircumflex 2 ; PCC s 0 0 ; PCC circumflex 0 0 ; CC Scircumflex 2 ; PCC S 0 0 ; PCC circumflex 0 133 ; CC tcaron 2 ; PCC t 0 0 ; PCC caron -77 92 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 0 133 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 0 0 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 0 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 0 133 ; CC ubreve 2 ; PCC u 0 0 ; PCC breve 0 0 ; CC Ubreve 2 ; PCC U 0 0 ; PCC breve 0 133 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 0 0 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 133 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 133 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 0 0 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 0 133 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 0 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 0 133 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 0 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 0 133 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 120 0 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 5 20 ; CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 0 133 ; CC utilde 2 ; PCC u 0 0 ; PCC tilde 0 0 ; CC Utilde 2 ; PCC U 0 0 ; PCC tilde 0 133 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 0 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 0 133 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 133 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 0 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 0 133 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 133 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 0 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 0 133 ; EndComposites EndFontMetrics ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrr-o.afm���������������������������������������������������������������������0000644�0000000�0000000�00000034762�14415562571�013104� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Courier-Ogonki EncodingScheme StandardEncoding FullName Courier-Ogonki Composite font FontBBox -28 -250 628 805 StartCharMetrics 315 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ; C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ; C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ; C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ; C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ; C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ; C 39 ; WX 600 ; N quoteright ; B 213 328 376 562 ; C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ; C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ; C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ; C 43 ; WX 600 ; N plus ; B 80 44 520 470 ; C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ; C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ; C 46 ; WX 600 ; N period ; B 229 -15 371 109 ; C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ; C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ; C 49 ; WX 600 ; N one ; B 96 0 505 622 ; C 50 ; WX 600 ; N two ; B 70 0 471 622 ; C 51 ; WX 600 ; N three ; B 75 -15 466 622 ; C 52 ; WX 600 ; N four ; B 78 0 500 622 ; C 53 ; WX 600 ; N five ; B 92 -15 497 607 ; C 54 ; WX 600 ; N six ; B 111 -15 497 622 ; C 55 ; WX 600 ; N seven ; B 82 0 483 607 ; C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ; C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ; C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ; C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ; C 60 ; WX 600 ; N less ; B 41 42 519 472 ; C 61 ; WX 600 ; N equal ; B 80 138 520 376 ; C 62 ; WX 600 ; N greater ; B 66 42 544 472 ; C 63 ; WX 600 ; N question ; B 129 -15 492 572 ; C 64 ; WX 600 ; N at ; B 77 -15 533 622 ; C 65 ; WX 600 ; N A ; B 3 0 597 562 ; C 66 ; WX 600 ; N B ; B 43 0 559 562 ; C 67 ; WX 600 ; N C ; B 41 -18 540 580 ; C 68 ; WX 600 ; N D ; B 43 0 574 562 ; C 69 ; WX 600 ; N E ; B 53 0 550 562 ; C 70 ; WX 600 ; N F ; B 53 0 545 562 ; C 71 ; WX 600 ; N G ; B 31 -18 575 580 ; C 72 ; WX 600 ; N H ; B 32 0 568 562 ; C 73 ; WX 600 ; N I ; B 96 0 504 562 ; C 74 ; WX 600 ; N J ; B 34 -18 566 562 ; C 75 ; WX 600 ; N K ; B 38 0 582 562 ; C 76 ; WX 600 ; N L ; B 47 0 554 562 ; C 77 ; WX 600 ; N M ; B 4 0 596 562 ; C 78 ; WX 600 ; N N ; B 7 -13 593 562 ; C 79 ; WX 600 ; N O ; B 43 -18 557 580 ; C 80 ; WX 600 ; N P ; B 79 0 558 562 ; C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ; C 82 ; WX 600 ; N R ; B 38 0 588 562 ; C 83 ; WX 600 ; N S ; B 72 -20 529 580 ; C 84 ; WX 600 ; N T ; B 38 0 563 562 ; C 85 ; WX 600 ; N U ; B 17 -18 583 562 ; C 86 ; WX 600 ; N V ; B -4 -13 604 562 ; C 87 ; WX 600 ; N W ; B -3 -13 603 562 ; C 88 ; WX 600 ; N X ; B 23 0 577 562 ; C 89 ; WX 600 ; N Y ; B 24 0 576 562 ; C 90 ; WX 600 ; N Z ; B 86 0 514 562 ; C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ; C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ; C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ; C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ; C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; C 96 ; WX 600 ; N quoteleft ; B 224 328 387 562 ; C 97 ; WX 600 ; N a ; B 53 -15 559 441 ; C 98 ; WX 600 ; N b ; B 14 -15 575 629 ; C 99 ; WX 600 ; N c ; B 66 -15 529 441 ; C 100 ; WX 600 ; N d ; B 45 -15 591 629 ; C 101 ; WX 600 ; N e ; B 66 -15 548 441 ; C 102 ; WX 600 ; N f ; B 114 0 531 629 ; C 103 ; WX 600 ; N g ; B 45 -157 566 441 ; C 104 ; WX 600 ; N h ; B 18 0 582 629 ; C 105 ; WX 600 ; N i ; B 95 0 505 657 ; C 106 ; WX 600 ; N j ; B 82 -157 410 657 ; C 107 ; WX 600 ; N k ; B 43 0 580 629 ; C 108 ; WX 600 ; N l ; B 95 0 505 629 ; C 109 ; WX 600 ; N m ; B -5 0 605 441 ; C 110 ; WX 600 ; N n ; B 26 0 575 441 ; C 111 ; WX 600 ; N o ; B 62 -15 538 441 ; C 112 ; WX 600 ; N p ; B 9 -157 555 441 ; C 113 ; WX 600 ; N q ; B 45 -157 591 441 ; C 114 ; WX 600 ; N r ; B 60 0 559 441 ; C 115 ; WX 600 ; N s ; B 80 -15 513 441 ; C 116 ; WX 600 ; N t ; B 87 -15 530 561 ; C 117 ; WX 600 ; N u ; B 21 -15 562 426 ; C 118 ; WX 600 ; N v ; B 10 -10 590 426 ; C 119 ; WX 600 ; N w ; B -4 -10 604 426 ; C 120 ; WX 600 ; N x ; B 20 0 580 426 ; C 121 ; WX 600 ; N y ; B 7 -157 592 426 ; C 122 ; WX 600 ; N z ; B 99 0 502 426 ; C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ; C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ; C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ; C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ; C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ; C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ; C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ; C 164 ; WX 600 ; N fraction ; B 92 -57 509 665 ; C 165 ; WX 600 ; N yen ; B 26 0 574 562 ; C 166 ; WX 600 ; N florin ; B 4 -143 539 622 ; C 167 ; WX 600 ; N section ; B 113 -78 488 580 ; C 168 ; WX 600 ; N currency ; B 73 58 527 506 ; C 169 ; WX 600 ; N quotesingle ; B 259 328 341 562 ; C 170 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ; C 171 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ; C 173 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ; C 174 ; WX 600 ; N fi ; B 3 0 597 629 ; C 175 ; WX 600 ; N fl ; B 3 0 597 629 ; C 177 ; WX 600 ; N endash ; B 75 231 525 285 ; C 178 ; WX 600 ; N dagger ; B 141 -78 459 580 ; C 179 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ; C 180 ; WX 600 ; N periodcentered ; B 222 189 378 327 ; C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ; C 183 ; WX 600 ; N bullet ; B 172 130 428 383 ; C 184 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ; C 185 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ; C 186 ; WX 600 ; N quotedblright ; B 143 328 457 562 ; C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ; C 188 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ; C 189 ; WX 600 ; N perthousand ; B 3 -15 600 622 ; C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ; C 193 ; WX 600 ; N grave ; B 151 497 378 672 ; C 194 ; WX 600 ; N acute ; B 242 497 469 672 ; C 195 ; WX 600 ; N circumflex ; B 124 477 476 654 ; C 196 ; WX 600 ; N tilde ; B 105 489 503 606 ; C 197 ; WX 600 ; N macron ; B 120 525 480 565 ; C 198 ; WX 600 ; N breve ; B 153 501 447 609 ; C 199 ; WX 600 ; N dotaccent ; B 249 477 352 580 ; C 200 ; WX 600 ; N dieresis ; B 148 492 453 595 ; C 202 ; WX 600 ; N ring ; B 218 463 382 627 ; C 203 ; WX 600 ; N cedilla ; B 224 -151 362 10 ; C 205 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ; C 206 ; WX 600 ; N ogonek ; B 227 -151 370 0 ; C 207 ; WX 600 ; N caron ; B 124 492 476 669 ; C 208 ; WX 600 ; N emdash ; B 0 231 600 285 ; C 225 ; WX 600 ; N AE ; B 3 0 550 562 ; C 227 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ; C 232 ; WX 600 ; N Lslash ; B 47 0 554 562 ; C 233 ; WX 600 ; N Oslash ; B 43 -80 557 629 ; C 234 ; WX 600 ; N OE ; B 7 0 567 562 ; C 235 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ; C 241 ; WX 600 ; N ae ; B 19 -15 570 441 ; C 245 ; WX 600 ; N dotlessi ; B 95 0 505 426 ; C 248 ; WX 600 ; N lslash ; B 95 0 505 629 ; C 249 ; WX 600 ; N oslash ; B 62 -80 538 506 ; C 250 ; WX 600 ; N oe ; B 19 -15 559 441 ; C 251 ; WX 600 ; N germandbls ; B 48 -15 588 629 ; C -1 ; WX 600 ; N Odieresis ; B 43 -18 557 731 ; C -1 ; WX 600 ; N logicalnot ; B 87 108 513 369 ; C -1 ; WX 600 ; N minus ; B 80 232 520 283 ; C -1 ; WX 600 ; N degree ; B 123 269 477 622 ; C -1 ; WX 600 ; N Eacute ; B 53 0 550 793 ; C -1 ; WX 600 ; N Ocircumflex ; B 43 -18 557 775 ; C -1 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ; C -1 ; WX 600 ; N threesuperior ; B 155 240 406 622 ; C -1 ; WX 600 ; N multiply ; B 87 43 515 470 ; C -1 ; WX 600 ; N Scaron ; B 72 -20 529 805 ; C -1 ; WX 600 ; N Ucircumflex ; B 17 -18 583 775 ; C -1 ; WX 600 ; N divide ; B 87 48 513 467 ; C -1 ; WX 600 ; N Acircumflex ; B 3 0 597 775 ; C -1 ; WX 600 ; N eacute ; B 66 -15 548 672 ; C -1 ; WX 600 ; N uacute ; B 21 -15 562 672 ; C -1 ; WX 600 ; N Aacute ; B 3 0 597 793 ; C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; C -1 ; WX 600 ; N twosuperior ; B 177 249 424 622 ; C -1 ; WX 600 ; N Ecircumflex ; B 53 0 550 775 ; C -1 ; WX 600 ; N ntilde ; B 26 0 575 606 ; C -1 ; WX 600 ; N onesuperior ; B 172 249 428 622 ; C -1 ; WX 600 ; N edieresis ; B 66 -15 548 595 ; C -1 ; WX 600 ; N odieresis ; B 62 -15 538 595 ; C -1 ; WX 600 ; N Ograve ; B 43 -18 557 793 ; C -1 ; WX 600 ; N threequarters ; B 8 -56 593 666 ; C -1 ; WX 600 ; N plusminus ; B 87 44 513 558 ; C -1 ; WX 600 ; N eth ; B 62 -15 538 629 ; C -1 ; WX 600 ; N egrave ; B 66 -15 548 672 ; C -1 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ; C -1 ; WX 600 ; N Udieresis ; B 17 -18 583 731 ; C -1 ; WX 600 ; N Gcaron ; B 31 -18 575 805 ; C -1 ; WX 600 ; N Otilde ; B 43 -18 557 732 ; C -1 ; WX 600 ; N Idieresis ; B 96 0 504 731 ; C -1 ; WX 600 ; N adieresis ; B 53 -15 559 595 ; C -1 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ; C -1 ; WX 600 ; N Eth ; B 30 0 574 562 ; C -1 ; WX 600 ; N onequarter ; B 0 -57 600 665 ; C -1 ; WX 600 ; N agrave ; B 53 -15 559 672 ; C -1 ; WX 600 ; N Zcaron ; B 86 0 514 805 ; C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ; C -1 ; WX 600 ; N Iacute ; B 96 0 504 793 ; C -1 ; WX 600 ; N Ugrave ; B 17 -18 583 793 ; C -1 ; WX 600 ; N scaron ; B 80 -15 513 669 ; C -1 ; WX 600 ; N Aring ; B 3 0 597 753 ; C -1 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ; C -1 ; WX 600 ; N Igrave ; B 96 0 504 793 ; C -1 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ; C -1 ; WX 600 ; N Oacute ; B 43 -18 557 793 ; C -1 ; WX 600 ; N otilde ; B 62 -15 538 606 ; C -1 ; WX 600 ; N Yacute ; B 24 0 576 793 ; C -1 ; WX 600 ; N Icircumflex ; B 96 0 504 775 ; C -1 ; WX 600 ; N Atilde ; B 3 0 597 732 ; C -1 ; WX 600 ; N Uacute ; B 17 -18 583 793 ; C -1 ; WX 600 ; N Ydieresis ; B 24 0 576 731 ; C -1 ; WX 600 ; N ydieresis ; B 7 -157 592 595 ; C -1 ; WX 600 ; N idieresis ; B 95 0 505 595 ; C -1 ; WX 600 ; N Adieresis ; B 3 0 597 731 ; C -1 ; WX 600 ; N mu ; B 21 -157 562 426 ; C -1 ; WX 600 ; N trademark ; B -23 263 623 562 ; C -1 ; WX 600 ; N oacute ; B 62 -15 538 672 ; C -1 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ; C -1 ; WX 600 ; N Agrave ; B 3 0 597 793 ; C -1 ; WX 600 ; N atilde ; B 53 -15 559 606 ; C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; C -1 ; WX 600 ; N udieresis ; B 21 -15 562 595 ; C -1 ; WX 600 ; N igrave ; B 95 0 505 672 ; C -1 ; WX 600 ; N Edieresis ; B 53 0 550 731 ; C -1 ; WX 600 ; N zcaron ; B 99 0 502 669 ; C -1 ; WX 600 ; N gcaron ; B 45 -157 566 669 ; C -1 ; WX 600 ; N aacute ; B 53 -15 559 672 ; C -1 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ; C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ; C -1 ; WX 600 ; N ograve ; B 62 -15 538 672 ; C -1 ; WX 600 ; N onehalf ; B 0 -57 611 665 ; C -1 ; WX 600 ; N ugrave ; B 21 -15 562 672 ; C -1 ; WX 600 ; N Ntilde ; B 7 -13 593 732 ; C -1 ; WX 600 ; N iacute ; B 95 0 505 672 ; C -1 ; WX 600 ; N Thorn ; B 79 0 538 562 ; C -1 ; WX 600 ; N Egrave ; B 53 0 550 793 ; C -1 ; WX 600 ; N thorn ; B -6 -157 555 629 ; C -1 ; WX 600 ; N aring ; B 53 -15 559 627 ; C -1 ; WX 600 ; N yacute ; B 7 -157 592 672 ; C -1 ; WX 600 ; N icircumflex ; B 94 0 505 654 ; C -1 ; WX 600 ; N abreve ; B 53 -15 559 609 ; C -1 ; WX 600 ; N Abreve ; B 3 0 597 742 ; C -1 ; WX 600 ; N amacron ; B 53 -15 559 565 ; C -1 ; WX 600 ; N Amacron ; B 3 0 597 698 ; C -1 ; WX 600 ; N Aogonek ; B 3 -151 597 562 ; C -1 ; WX 600 ; N aogonek ; B 53 -151 570 441 ; C -1 ; WX 600 ; N cacute ; B 66 -15 529 672 ; C -1 ; WX 600 ; N Cacute ; B 41 -18 540 805 ; C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ; C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 802 ; C -1 ; WX 600 ; N ccircumflex ; B 66 -15 529 656 ; C -1 ; WX 600 ; N Ccircumflex ; B 41 -18 540 787 ; C -1 ; WX 600 ; N cdotaccent ; B 66 -15 529 580 ; C -1 ; WX 600 ; N Cdotaccent ; B 41 -18 540 713 ; C -1 ; WX 600 ; N dbar ; B 45 -15 697 629 ; C -1 ; WX 600 ; N Dbar ; B 0 0 574 562 ; C -1 ; WX 600 ; N Dcaron ; B 43 0 574 802 ; C -1 ; WX 600 ; N dcaron ; B 45 -15 591 825 ; C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ; C -1 ; WX 600 ; N Ecaron ; B 53 0 550 802 ; C -1 ; WX 600 ; N edotaccent ; B 66 -15 548 580 ; C -1 ; WX 600 ; N Edotaccent ; B 53 0 550 713 ; C -1 ; WX 600 ; N Emacron ; B 53 0 550 698 ; C -1 ; WX 600 ; N emacron ; B 66 -15 548 565 ; C -1 ; WX 600 ; N Eogonek ; B 53 -151 550 562 ; C -1 ; WX 600 ; N eogonek ; B 66 -151 548 441 ; C -1 ; WX 600 ; N gacute ; B 45 -157 566 672 ; C -1 ; WX 600 ; N gbreve ; B 45 -157 566 609 ; C -1 ; WX 600 ; N Gbreve ; B 31 -18 575 742 ; C -1 ; WX 600 ; N gcircumflex ; B 45 -157 566 654 ; C -1 ; WX 600 ; N Gcircumflex ; B 31 -18 575 787 ; C -1 ; WX 600 ; N gdotaccent ; B 45 -157 566 580 ; C -1 ; WX 600 ; N Gdotaccent ; B 31 -18 575 713 ; C -1 ; WX 600 ; N Hcircumflex ; B 32 0 568 787 ; C -1 ; WX 600 ; N hcircumflex ; B 18 0 582 818 ; C -1 ; WX 600 ; N Idotaccent ; B 96 0 504 713 ; C -1 ; WX 600 ; N imacron ; B 95 0 505 565 ; C -1 ; WX 600 ; N Imacron ; B 96 0 504 698 ; C -1 ; WX 600 ; N iogonek ; B 95 -151 505 657 ; C -1 ; WX 600 ; N Iogonek ; B 96 -151 504 562 ; C -1 ; WX 600 ; N itilde ; B 95 0 505 606 ; C -1 ; WX 600 ; N Itilde ; B 96 0 504 739 ; C -1 ; WX 600 ; N Jcircumflex ; B 34 -18 576 787 ; C -1 ; WX 600 ; N Lacute ; B 47 0 554 805 ; C -1 ; WX 600 ; N lacute ; B 95 0 505 819 ; C -1 ; WX 600 ; N Lcaron ; B 24 0 554 802 ; C -1 ; WX 600 ; N lcaron ; B 95 0 505 813 ; C -1 ; WX 600 ; N nacute ; B 26 0 575 672 ; C -1 ; WX 600 ; N Nacute ; B 7 -13 593 805 ; C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ; C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 802 ; C -1 ; WX 600 ; N ohungarumlaut ; B 62 -15 540 672 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 43 -18 557 805 ; C -1 ; WX 600 ; N omacron ; B 62 -15 538 565 ; C -1 ; WX 600 ; N Omacron ; B 43 -18 557 698 ; C -1 ; WX 600 ; N racute ; B 60 0 559 672 ; C -1 ; WX 600 ; N Racute ; B 38 0 588 805 ; C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ; C -1 ; WX 600 ; N Rcaron ; B 38 0 588 802 ; C -1 ; WX 600 ; N sacute ; B 80 -15 513 672 ; C -1 ; WX 600 ; N Sacute ; B 72 -20 529 805 ; C -1 ; WX 600 ; N scircumflex ; B 80 -15 513 654 ; C -1 ; WX 600 ; N Scircumflex ; B 72 -20 529 787 ; C -1 ; WX 600 ; N tcaron ; B 47 -15 530 761 ; C -1 ; WX 600 ; N Tcaron ; B 38 0 563 802 ; C -1 ; WX 600 ; N Tcedilla ; B 38 -151 563 562 ; C -1 ; WX 600 ; N tcedilla ; B 87 -151 530 561 ; C -1 ; WX 600 ; N ubreve ; B 21 -15 562 609 ; C -1 ; WX 600 ; N Ubreve ; B 17 -18 583 742 ; C -1 ; WX 600 ; N uhungarumlaut ; B 21 -15 562 672 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 17 -18 583 805 ; C -1 ; WX 600 ; N umacron ; B 21 -15 562 565 ; C -1 ; WX 600 ; N Umacron ; B 17 -18 583 698 ; C -1 ; WX 600 ; N uogonek ; B 21 -151 562 426 ; C -1 ; WX 600 ; N Uogonek ; B 17 -131 583 562 ; C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ; C -1 ; WX 600 ; N Uring ; B 17 -18 583 760 ; C -1 ; WX 600 ; N utilde ; B 21 -15 562 606 ; C -1 ; WX 600 ; N Utilde ; B 17 -18 583 739 ; C -1 ; WX 600 ; N zacute ; B 99 0 502 672 ; C -1 ; WX 600 ; N Zacute ; B 86 0 514 805 ; C -1 ; WX 600 ; N zdotaccent ; B 99 0 502 580 ; C -1 ; WX 600 ; N Zdotaccent ; B 86 0 514 713 ; EndCharMetrics EndFontMetrics ��������������a2ps-4.15.5/ogonkify/pcrr-o.ps����������������������������������������������������������������������0000644�0000000�0000000�00000007276�14415562571�012763� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Courier-Ogonki /Courier /Courier-Ogonki OgonkiEncoding StandardEncoding 111 dict dup /Agrave [65 -30 121 27] put dup /Aring [65 -15 126 31] put dup /Atilde [65 0 126 29] put dup /Ecircumflex [69 0 121 28] put dup /Egrave [69 0 121 27] put dup /Gcaron [71 0 136 183] put dup /Idieresis [73 0 136 168] put dup /Igrave [73 0 121 27] put dup /Ntilde [78 0 126 29] put dup /Ograve [79 0 121 27] put dup /Otilde [79 0 126 29] put dup /Ucircumflex [85 0 121 28] put dup /Ugrave [85 -30 121 27] put dup /Ydieresis [89 0 136 168] put dup /agrave [97 0 0 27] put dup /aring [97 0 0 31] put dup /atilde [97 0 0 29] put dup /ecircumflex [101 0 0 28] put dup /egrave [101 0 0 27] put dup /gcaron [103 -30 0 183] put dup /idieresis [136 -30 0 168] put dup /igrave [136 -30 0 27] put dup /ntilde [110 0 0 29] put dup /ograve [111 0 0 27] put dup /otilde [111 0 0 29] put dup /ucircumflex [117 -10 0 28] put dup /ugrave [117 -30 0 27] put dup /ydieresis [121 -10 0 168] put dup /abreve [97 0 0 162] put dup /Abreve [65 0 133 162] put dup /amacron [97 0 0 30] put dup /Amacron [65 0 133 30] put dup /Aogonek [65 200 0 178] put dup /aogonek [97 200 0 178] put dup /cacute [99 17 0 180] put dup /Cacute [67 30 133 180] put dup /ccaron [99 17 0 183] put dup /Ccaron [67 30 133 183] put dup /ccircumflex [99 17 2 28] put dup /Ccircumflex [67 30 133 28] put dup /cdotaccent [99 0 0 255] put dup /Cdotaccent [67 30 133 255] put dup /dbar [100 200 250 173] put dup /Dbar [208 0 0 160] put dup /Dcaron [68 0 133 183] put dup /dcaron [100 17 156 183] put dup /ecaron [101 0 0 183] put dup /Ecaron [69 0 133 183] put dup /edotaccent [101 0 0 255] put dup /Edotaccent [69 0 133 255] put dup /Emacron [69 0 133 30] put dup /emacron [101 17 0 30] put dup /Eogonek [69 100 0 178] put dup /eogonek [101 100 0 178] put dup /gacute [103 0 0 180] put dup /gbreve [103 0 0 162] put dup /Gbreve [71 30 133 162] put dup /gcircumflex [103 0 0 28] put dup /Gcircumflex [71 30 133 28] put dup /gdotaccent [103 0 0 255] put dup /Gdotaccent [71 0 133 255] put dup /Hcircumflex [72 0 133 28] put dup /hcircumflex [104 0 164 28] put dup /Idotaccent [73 0 133 255] put dup /imacron [136 0 0 30] put dup /Imacron [73 0 133 30] put dup /iogonek [105 20 0 178] put dup /Iogonek [73 20 0 178] put dup /itilde [136 0 0 29] put dup /Itilde [73 0 133 29] put dup /Jcircumflex [74 100 133 28] put dup /Lacute [76 -100 133 180] put dup /lacute [108 -12 147 180] put dup /Lcaron [76 -100 133 183] put dup /lcaron [108 -12 144 183] put dup /nacute [110 0 0 180] put dup /Nacute [78 0 133 180] put dup /ncaron [110 0 0 183] put dup /Ncaron [78 0 133 183] put dup /ohungarumlaut [111 0 0 189] put dup /Ohungarumlaut [79 0 133 189] put dup /omacron [111 0 0 30] put dup /Omacron [79 0 133 30] put dup /racute [114 0 0 180] put dup /Racute [82 0 133 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 0 133 183] put dup /sacute [115 0 0 180] put dup /Sacute [83 0 133 180] put dup /scircumflex [115 0 0 28] put dup /Scircumflex [83 0 133 28] put dup /tcaron [116 -77 92 183] put dup /Tcaron [84 0 133 183] put dup /Tcedilla [84 0 0 184] put dup /tcedilla [116 0 0 184] put dup /ubreve [117 0 0 162] put dup /Ubreve [85 0 133 162] put dup /uhungarumlaut [117 0 0 189] put dup /Uhungarumlaut [85 0 133 189] put dup /umacron [117 0 0 30] put dup /Umacron [85 0 133 30] put dup /uogonek [117 120 0 178] put dup /Uogonek [85 5 20 178] put dup /uring [117 0 0 31] put dup /Uring [85 0 133 31] put dup /utilde [117 0 0 29] put dup /Utilde [85 0 133 29] put dup /zacute [122 0 0 180] put dup /Zacute [90 0 133 180] put dup /zdotaccent [122 0 0 255] put dup /Zdotaccent [90 0 133 255] put makeComposite %%EndResource ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrr.afm�����������������������������������������������������������������������0000644�0000000�0000000�00000035753�14233473143�012643� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Tue Sep 17 07:47:21 1991 Comment UniqueID 36347 Comment VMusage 31037 39405 FontName Courier FullName Courier FamilyName Courier Weight Medium ItalicAngle 0 IsFixedPitch true FontBBox -28 -250 628 805 UnderlinePosition -100 UnderlineThickness 50 Version 002.004 Notice Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 426 Ascender 629 Descender -157 StartCharMetrics 260 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ; C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ; C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ; C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ; C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ; C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ; C 39 ; WX 600 ; N quoteright ; B 213 328 376 562 ; C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ; C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ; C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ; C 43 ; WX 600 ; N plus ; B 80 44 520 470 ; C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ; C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ; C 46 ; WX 600 ; N period ; B 229 -15 371 109 ; C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ; C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ; C 49 ; WX 600 ; N one ; B 96 0 505 622 ; C 50 ; WX 600 ; N two ; B 70 0 471 622 ; C 51 ; WX 600 ; N three ; B 75 -15 466 622 ; C 52 ; WX 600 ; N four ; B 78 0 500 622 ; C 53 ; WX 600 ; N five ; B 92 -15 497 607 ; C 54 ; WX 600 ; N six ; B 111 -15 497 622 ; C 55 ; WX 600 ; N seven ; B 82 0 483 607 ; C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ; C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ; C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ; C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ; C 60 ; WX 600 ; N less ; B 41 42 519 472 ; C 61 ; WX 600 ; N equal ; B 80 138 520 376 ; C 62 ; WX 600 ; N greater ; B 66 42 544 472 ; C 63 ; WX 600 ; N question ; B 129 -15 492 572 ; C 64 ; WX 600 ; N at ; B 77 -15 533 622 ; C 65 ; WX 600 ; N A ; B 3 0 597 562 ; C 66 ; WX 600 ; N B ; B 43 0 559 562 ; C 67 ; WX 600 ; N C ; B 41 -18 540 580 ; C 68 ; WX 600 ; N D ; B 43 0 574 562 ; C 69 ; WX 600 ; N E ; B 53 0 550 562 ; C 70 ; WX 600 ; N F ; B 53 0 545 562 ; C 71 ; WX 600 ; N G ; B 31 -18 575 580 ; C 72 ; WX 600 ; N H ; B 32 0 568 562 ; C 73 ; WX 600 ; N I ; B 96 0 504 562 ; C 74 ; WX 600 ; N J ; B 34 -18 566 562 ; C 75 ; WX 600 ; N K ; B 38 0 582 562 ; C 76 ; WX 600 ; N L ; B 47 0 554 562 ; C 77 ; WX 600 ; N M ; B 4 0 596 562 ; C 78 ; WX 600 ; N N ; B 7 -13 593 562 ; C 79 ; WX 600 ; N O ; B 43 -18 557 580 ; C 80 ; WX 600 ; N P ; B 79 0 558 562 ; C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ; C 82 ; WX 600 ; N R ; B 38 0 588 562 ; C 83 ; WX 600 ; N S ; B 72 -20 529 580 ; C 84 ; WX 600 ; N T ; B 38 0 563 562 ; C 85 ; WX 600 ; N U ; B 17 -18 583 562 ; C 86 ; WX 600 ; N V ; B -4 -13 604 562 ; C 87 ; WX 600 ; N W ; B -3 -13 603 562 ; C 88 ; WX 600 ; N X ; B 23 0 577 562 ; C 89 ; WX 600 ; N Y ; B 24 0 576 562 ; C 90 ; WX 600 ; N Z ; B 86 0 514 562 ; C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ; C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ; C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ; C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ; C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; C 96 ; WX 600 ; N quoteleft ; B 224 328 387 562 ; C 97 ; WX 600 ; N a ; B 53 -15 559 441 ; C 98 ; WX 600 ; N b ; B 14 -15 575 629 ; C 99 ; WX 600 ; N c ; B 66 -15 529 441 ; C 100 ; WX 600 ; N d ; B 45 -15 591 629 ; C 101 ; WX 600 ; N e ; B 66 -15 548 441 ; C 102 ; WX 600 ; N f ; B 114 0 531 629 ; L i fi ; L l fl ; C 103 ; WX 600 ; N g ; B 45 -157 566 441 ; C 104 ; WX 600 ; N h ; B 18 0 582 629 ; C 105 ; WX 600 ; N i ; B 95 0 505 657 ; C 106 ; WX 600 ; N j ; B 82 -157 410 657 ; C 107 ; WX 600 ; N k ; B 43 0 580 629 ; C 108 ; WX 600 ; N l ; B 95 0 505 629 ; C 109 ; WX 600 ; N m ; B -5 0 605 441 ; C 110 ; WX 600 ; N n ; B 26 0 575 441 ; C 111 ; WX 600 ; N o ; B 62 -15 538 441 ; C 112 ; WX 600 ; N p ; B 9 -157 555 441 ; C 113 ; WX 600 ; N q ; B 45 -157 591 441 ; C 114 ; WX 600 ; N r ; B 60 0 559 441 ; C 115 ; WX 600 ; N s ; B 80 -15 513 441 ; C 116 ; WX 600 ; N t ; B 87 -15 530 561 ; C 117 ; WX 600 ; N u ; B 21 -15 562 426 ; C 118 ; WX 600 ; N v ; B 10 -10 590 426 ; C 119 ; WX 600 ; N w ; B -4 -10 604 426 ; C 120 ; WX 600 ; N x ; B 20 0 580 426 ; C 121 ; WX 600 ; N y ; B 7 -157 592 426 ; C 122 ; WX 600 ; N z ; B 99 0 502 426 ; C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ; C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ; C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ; C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ; C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ; C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ; C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ; C 164 ; WX 600 ; N fraction ; B 92 -57 509 665 ; C 165 ; WX 600 ; N yen ; B 26 0 574 562 ; C 166 ; WX 600 ; N florin ; B 4 -143 539 622 ; C 167 ; WX 600 ; N section ; B 113 -78 488 580 ; C 168 ; WX 600 ; N currency ; B 73 58 527 506 ; C 169 ; WX 600 ; N quotesingle ; B 259 328 341 562 ; C 170 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ; C 171 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ; C 173 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ; C 174 ; WX 600 ; N fi ; B 3 0 597 629 ; C 175 ; WX 600 ; N fl ; B 3 0 597 629 ; C 177 ; WX 600 ; N endash ; B 75 231 525 285 ; C 178 ; WX 600 ; N dagger ; B 141 -78 459 580 ; C 179 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ; C 180 ; WX 600 ; N periodcentered ; B 222 189 378 327 ; C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ; C 183 ; WX 600 ; N bullet ; B 172 130 428 383 ; C 184 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ; C 185 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ; C 186 ; WX 600 ; N quotedblright ; B 143 328 457 562 ; C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ; C 188 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ; C 189 ; WX 600 ; N perthousand ; B 3 -15 600 622 ; C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ; C 193 ; WX 600 ; N grave ; B 151 497 378 672 ; C 194 ; WX 600 ; N acute ; B 242 497 469 672 ; C 195 ; WX 600 ; N circumflex ; B 124 477 476 654 ; C 196 ; WX 600 ; N tilde ; B 105 489 503 606 ; C 197 ; WX 600 ; N macron ; B 120 525 480 565 ; C 198 ; WX 600 ; N breve ; B 153 501 447 609 ; C 199 ; WX 600 ; N dotaccent ; B 249 477 352 580 ; C 200 ; WX 600 ; N dieresis ; B 148 492 453 595 ; C 202 ; WX 600 ; N ring ; B 218 463 382 627 ; C 203 ; WX 600 ; N cedilla ; B 224 -151 362 10 ; C 205 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ; C 206 ; WX 600 ; N ogonek ; B 227 -151 370 0 ; C 207 ; WX 600 ; N caron ; B 124 492 476 669 ; C 208 ; WX 600 ; N emdash ; B 0 231 600 285 ; C 225 ; WX 600 ; N AE ; B 3 0 550 562 ; C 227 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ; C 232 ; WX 600 ; N Lslash ; B 47 0 554 562 ; C 233 ; WX 600 ; N Oslash ; B 43 -80 557 629 ; C 234 ; WX 600 ; N OE ; B 7 0 567 562 ; C 235 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ; C 241 ; WX 600 ; N ae ; B 19 -15 570 441 ; C 245 ; WX 600 ; N dotlessi ; B 95 0 505 426 ; C 248 ; WX 600 ; N lslash ; B 95 0 505 629 ; C 249 ; WX 600 ; N oslash ; B 62 -80 538 506 ; C 250 ; WX 600 ; N oe ; B 19 -15 559 441 ; C 251 ; WX 600 ; N germandbls ; B 48 -15 588 629 ; C -1 ; WX 600 ; N Odieresis ; B 43 -18 557 731 ; C -1 ; WX 600 ; N logicalnot ; B 87 108 513 369 ; C -1 ; WX 600 ; N minus ; B 80 232 520 283 ; C -1 ; WX 600 ; N merge ; B 160 -15 440 436 ; C -1 ; WX 600 ; N degree ; B 123 269 477 622 ; C -1 ; WX 600 ; N dectab ; B 18 0 582 227 ; C -1 ; WX 600 ; N ll ; B 18 0 567 629 ; C -1 ; WX 600 ; N IJ ; B 32 -18 583 562 ; C -1 ; WX 600 ; N Eacute ; B 53 0 550 793 ; C -1 ; WX 600 ; N Ocircumflex ; B 43 -18 557 775 ; C -1 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ; C -1 ; WX 600 ; N left ; B 70 68 530 348 ; C -1 ; WX 600 ; N threesuperior ; B 155 240 406 622 ; C -1 ; WX 600 ; N up ; B 160 0 440 437 ; C -1 ; WX 600 ; N multiply ; B 87 43 515 470 ; C -1 ; WX 600 ; N Scaron ; B 72 -20 529 805 ; C -1 ; WX 600 ; N tab ; B 19 0 581 562 ; C -1 ; WX 600 ; N Ucircumflex ; B 17 -18 583 775 ; C -1 ; WX 600 ; N divide ; B 87 48 513 467 ; C -1 ; WX 600 ; N Acircumflex ; B 3 0 597 775 ; C -1 ; WX 600 ; N eacute ; B 66 -15 548 672 ; C -1 ; WX 600 ; N uacute ; B 21 -15 562 672 ; C -1 ; WX 600 ; N Aacute ; B 3 0 597 793 ; C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; C -1 ; WX 600 ; N twosuperior ; B 177 249 424 622 ; C -1 ; WX 600 ; N Ecircumflex ; B 53 0 550 775 ; C -1 ; WX 600 ; N ntilde ; B 26 0 575 606 ; C -1 ; WX 600 ; N down ; B 160 -15 440 426 ; C -1 ; WX 600 ; N center ; B 40 14 560 580 ; C -1 ; WX 600 ; N onesuperior ; B 172 249 428 622 ; C -1 ; WX 600 ; N ij ; B 37 -157 490 657 ; C -1 ; WX 600 ; N edieresis ; B 66 -15 548 595 ; C -1 ; WX 600 ; N graybox ; B 76 0 525 599 ; C -1 ; WX 600 ; N odieresis ; B 62 -15 538 595 ; C -1 ; WX 600 ; N Ograve ; B 43 -18 557 793 ; C -1 ; WX 600 ; N threequarters ; B 8 -56 593 666 ; C -1 ; WX 600 ; N plusminus ; B 87 44 513 558 ; C -1 ; WX 600 ; N prescription ; B 27 -15 577 562 ; C -1 ; WX 600 ; N eth ; B 62 -15 538 629 ; C -1 ; WX 600 ; N largebullet ; B 261 220 339 297 ; C -1 ; WX 600 ; N egrave ; B 66 -15 548 672 ; C -1 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ; C -1 ; WX 600 ; N notegraphic ; B 136 -15 464 572 ; C -1 ; WX 600 ; N Udieresis ; B 17 -18 583 731 ; C -1 ; WX 600 ; N Gcaron ; B 31 -18 575 805 ; C -1 ; WX 600 ; N arrowdown ; B 116 -15 484 608 ; C -1 ; WX 600 ; N format ; B 5 -157 56 607 ; C -1 ; WX 600 ; N Otilde ; B 43 -18 557 732 ; C -1 ; WX 600 ; N Idieresis ; B 96 0 504 731 ; C -1 ; WX 600 ; N adieresis ; B 53 -15 559 595 ; C -1 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ; C -1 ; WX 600 ; N Eth ; B 30 0 574 562 ; C -1 ; WX 600 ; N onequarter ; B 0 -57 600 665 ; C -1 ; WX 600 ; N LL ; B 8 0 592 562 ; C -1 ; WX 600 ; N agrave ; B 53 -15 559 672 ; C -1 ; WX 600 ; N Zcaron ; B 86 0 514 805 ; C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ; C -1 ; WX 600 ; N Idot ; B 96 0 504 716 ; C -1 ; WX 600 ; N Iacute ; B 96 0 504 793 ; C -1 ; WX 600 ; N indent ; B 70 68 530 348 ; C -1 ; WX 600 ; N Ugrave ; B 17 -18 583 793 ; C -1 ; WX 600 ; N scaron ; B 80 -15 513 669 ; C -1 ; WX 600 ; N overscore ; B 0 579 600 629 ; C -1 ; WX 600 ; N Aring ; B 3 0 597 753 ; C -1 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ; C -1 ; WX 600 ; N Igrave ; B 96 0 504 793 ; C -1 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ; C -1 ; WX 600 ; N Oacute ; B 43 -18 557 793 ; C -1 ; WX 600 ; N otilde ; B 62 -15 538 606 ; C -1 ; WX 600 ; N Yacute ; B 24 0 576 793 ; C -1 ; WX 600 ; N lira ; B 73 -21 521 611 ; C -1 ; WX 600 ; N Icircumflex ; B 96 0 504 775 ; C -1 ; WX 600 ; N Atilde ; B 3 0 597 732 ; C -1 ; WX 600 ; N Uacute ; B 17 -18 583 793 ; C -1 ; WX 600 ; N Ydieresis ; B 24 0 576 731 ; C -1 ; WX 600 ; N ydieresis ; B 7 -157 592 595 ; C -1 ; WX 600 ; N idieresis ; B 95 0 505 595 ; C -1 ; WX 600 ; N Adieresis ; B 3 0 597 731 ; C -1 ; WX 600 ; N mu ; B 21 -157 562 426 ; C -1 ; WX 600 ; N trademark ; B -23 263 623 562 ; C -1 ; WX 600 ; N oacute ; B 62 -15 538 672 ; C -1 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ; C -1 ; WX 600 ; N Agrave ; B 3 0 597 793 ; C -1 ; WX 600 ; N return ; B 19 0 581 562 ; C -1 ; WX 600 ; N atilde ; B 53 -15 559 606 ; C -1 ; WX 600 ; N square ; B 19 0 581 562 ; C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; C -1 ; WX 600 ; N stop ; B 19 0 581 562 ; C -1 ; WX 600 ; N udieresis ; B 21 -15 562 595 ; C -1 ; WX 600 ; N arrowup ; B 116 0 484 623 ; C -1 ; WX 600 ; N igrave ; B 95 0 505 672 ; C -1 ; WX 600 ; N Edieresis ; B 53 0 550 731 ; C -1 ; WX 600 ; N zcaron ; B 99 0 502 669 ; C -1 ; WX 600 ; N arrowboth ; B -28 115 628 483 ; C -1 ; WX 600 ; N gcaron ; B 45 -157 566 669 ; C -1 ; WX 600 ; N arrowleft ; B -24 115 624 483 ; C -1 ; WX 600 ; N aacute ; B 53 -15 559 672 ; C -1 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ; C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ; C -1 ; WX 600 ; N ograve ; B 62 -15 538 672 ; C -1 ; WX 600 ; N onehalf ; B 0 -57 611 665 ; C -1 ; WX 600 ; N ugrave ; B 21 -15 562 672 ; C -1 ; WX 600 ; N Ntilde ; B 7 -13 593 732 ; C -1 ; WX 600 ; N iacute ; B 95 0 505 672 ; C -1 ; WX 600 ; N arrowright ; B -24 115 624 483 ; C -1 ; WX 600 ; N Thorn ; B 79 0 538 562 ; C -1 ; WX 600 ; N Egrave ; B 53 0 550 793 ; C -1 ; WX 600 ; N thorn ; B -6 -157 555 629 ; C -1 ; WX 600 ; N aring ; B 53 -15 559 627 ; C -1 ; WX 600 ; N yacute ; B 7 -157 592 672 ; C -1 ; WX 600 ; N icircumflex ; B 94 0 505 654 ; EndCharMetrics StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 20 121 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -30 121 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis -30 136 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave -30 121 ; CC Aring 2 ; PCC A 0 0 ; PCC ring -15 126 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 126 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 30 121 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 121 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 136 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 121 ; CC Gcaron 2 ; PCC G 0 0 ; PCC caron 0 136 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 121 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 121 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 136 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 121 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 126 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 121 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 121 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 136 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 121 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 126 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 30 136 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 30 121 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 121 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 136 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave -30 121 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 30 121 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 136 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 136 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; CC gcaron 2 ; PCC g 0 0 ; PCC caron -30 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -30 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -30 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -30 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute -10 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex -10 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave -30 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute -20 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis -10 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 10 0 ; EndComposites EndFontMetrics ���������������������a2ps-4.15.5/ogonkify/pcrro-c.afm��������������������������������������������������������������������0000644�0000000�0000000�00000015365�14233473143�013237� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Composite characters for Courier-Oblique Comment By J. Chroboczek Comment Some of this data was stolen from IBM Courier FontName Courier-Oblique-Comp FullName Courier Oblique Composite FamilyName Courier StartComposites 141 CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 0 133 ; CC abreve 2 ; PCC a 0 0 ; PCC breve 0 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 0 133 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 0 133 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 0 133 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 0 133 ; CC amacron 2 ; PCC a 0 0 ; PCC macron 0 0 ; CC Amacron 2 ; PCC A 0 0 ; PCC macron 0 133 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 200 0 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 200 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 0 133 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 133 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 0 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 53 133 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 0 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 53 133 ; CC ccircumflex 2 ; PCC c 0 0 ; PCC circumflex 0 2 ; CC Ccircumflex 2 ; PCC C 0 0 ; PCC circumflex 53 133 ; CC cdotaccent 2 ; PCC c 0 0 ; PCC dotaccent 0 0 ; CC Cdotaccent 2 ; PCC C 0 0 ; PCC dotaccent 53 133 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 200 250 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC caron 20 182 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 33 133 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 53 133 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 53 133 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 53 133 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 53 133 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 0 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 53 133 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 53 133 ; CC emacron 2 ; PCC e 0 0 ; PCC macron 0 0 ; CC Emacron 2 ; PCC E 0 0 ; PCC macron 53 133 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 0 0 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 0 0 ; CC gacute 2 ; PCC g 0 0 ; PCC acute -10 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve -10 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 53 133 ; CC gcircumflex 2 ; PCC g 0 0 ; PCC circumflex -10 0 ; CC Gcircumflex 2 ; PCC G 0 0 ; PCC circumflex 53 133 ; CC gdotaccent 2 ; PCC g 0 0 ; PCC dotaccent 0 0 ; CC Gdotaccent 2 ; PCC G 0 0 ; PCC dotaccent 53 186 ; CC hcircumflex 2 ; PCC h 0 0 ; PCC circumflex 0 182 ; CC Hcircumflex 2 ; PCC H 0 0 ; PCC circumflex 30 133 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 30 133 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -24 0 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 30 133 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 30 133 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 30 133 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 30 133 ; CC imacron 2 ; PCC dotlessi 0 0 ; PCC macron 0 0 ; CC Imacron 2 ; PCC I 0 0 ; PCC macron 30 133 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek 20 0 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek 20 0 ; CC itilde 2 ; PCC dotlessi 0 0 ; PCC tilde 0 0 ; CC Itilde 2 ; PCC I 0 0 ; PCC tilde 30 133 ; CC Jcircumflex 2 ; PCC J 0 0 ; PCC circumflex 98 133 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute -83 133 ; CC lacute 2 ; PCC l 0 0 ; PCC acute 0 182 ; CC Lcaron 2 ; PCC L 0 0 ; PCC caron -83 133 ; CC lcaron 2 ; PCC l 0 0 ; PCC caron 0 182 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 0 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 53 133 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 0 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 53 133 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 53 133 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 53 133 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 53 133 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 53 133 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 53 133 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 0 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 53 133 ; CC omacron 2 ; PCC o 0 0 ; PCC macron 0 0 ; CC Omacron 2 ; PCC O 0 0 ; PCC macron 53 133 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 53 133 ; CC racute 2 ; PCC r 0 0 ; PCC acute 0 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 53 133 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 40 133 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 0 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 53 133 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 53 133 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 0 0 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 0 0 ; CC scircumflex 2 ; PCC s 0 0 ; PCC circumflex 0 0 ; CC Scircumflex 2 ; PCC S 0 0 ; PCC circumflex 53 133 ; CC tcaron 2 ; PCC t 0 0 ; PCC caron -65 118 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 40 133 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 0 0 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 0 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 53 133 ; CC ubreve 2 ; PCC u 0 0 ; PCC breve 0 0 ; CC Ubreve 2 ; PCC U 0 0 ; PCC breve 53 133 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 0 0 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 53 133 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 53 133 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 0 0 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 53 133 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 0 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 53 133 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 0 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 53 133 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 120 0 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 5 15 ; CC uring 2 ; PCC u 0 0 ; PCC ring -30 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 53 133 ; CC utilde 2 ; PCC u 0 0 ; PCC tilde 0 0 ; CC Utilde 2 ; PCC U 0 0 ; PCC tilde 53 133 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 0 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 53 133 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 53 133 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 0 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 40 133 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 40 133 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 0 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 40 133 ; EndComposites EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrro-o.afm��������������������������������������������������������������������0000644�0000000�0000000�00000035137�14415562571�013260� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Courier-Oblique-Ogonki EncodingScheme StandardEncoding FullName Courier-Oblique-Ogonki Composite font FontBBox -28 -250 742 805 StartCharMetrics 315 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ; C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ; C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ; C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ; C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ; C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ; C 39 ; WX 600 ; N quoteright ; B 283 328 495 562 ; C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ; C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ; C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ; C 43 ; WX 600 ; N plus ; B 129 44 580 470 ; C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ; C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ; C 46 ; WX 600 ; N period ; B 238 -15 382 109 ; C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ; C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ; C 49 ; WX 600 ; N one ; B 98 0 515 622 ; C 50 ; WX 600 ; N two ; B 70 0 568 622 ; C 51 ; WX 600 ; N three ; B 82 -15 538 622 ; C 52 ; WX 600 ; N four ; B 108 0 541 622 ; C 53 ; WX 600 ; N five ; B 99 -15 589 607 ; C 54 ; WX 600 ; N six ; B 155 -15 629 622 ; C 55 ; WX 600 ; N seven ; B 182 0 612 607 ; C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ; C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ; C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ; C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ; C 60 ; WX 600 ; N less ; B 96 42 610 472 ; C 61 ; WX 600 ; N equal ; B 109 138 600 376 ; C 62 ; WX 600 ; N greater ; B 85 42 599 472 ; C 63 ; WX 600 ; N question ; B 222 -15 583 572 ; C 64 ; WX 600 ; N at ; B 127 -15 582 622 ; C 65 ; WX 600 ; N A ; B 3 0 607 562 ; C 66 ; WX 600 ; N B ; B 43 0 616 562 ; C 67 ; WX 600 ; N C ; B 93 -18 655 580 ; C 68 ; WX 600 ; N D ; B 43 0 645 562 ; C 69 ; WX 600 ; N E ; B 53 0 660 562 ; C 70 ; WX 600 ; N F ; B 53 0 660 562 ; C 71 ; WX 600 ; N G ; B 83 -18 645 580 ; C 72 ; WX 600 ; N H ; B 32 0 687 562 ; C 73 ; WX 600 ; N I ; B 96 0 623 562 ; C 74 ; WX 600 ; N J ; B 52 -18 685 562 ; C 75 ; WX 600 ; N K ; B 38 0 671 562 ; C 76 ; WX 600 ; N L ; B 47 0 607 562 ; C 77 ; WX 600 ; N M ; B 4 0 715 562 ; C 78 ; WX 600 ; N N ; B 7 -13 712 562 ; C 79 ; WX 600 ; N O ; B 94 -18 625 580 ; C 80 ; WX 600 ; N P ; B 79 0 644 562 ; C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ; C 82 ; WX 600 ; N R ; B 38 0 598 562 ; C 83 ; WX 600 ; N S ; B 76 -20 650 580 ; C 84 ; WX 600 ; N T ; B 108 0 665 562 ; C 85 ; WX 600 ; N U ; B 125 -18 702 562 ; C 86 ; WX 600 ; N V ; B 105 -13 723 562 ; C 87 ; WX 600 ; N W ; B 106 -13 722 562 ; C 88 ; WX 600 ; N X ; B 23 0 675 562 ; C 89 ; WX 600 ; N Y ; B 133 0 695 562 ; C 90 ; WX 600 ; N Z ; B 86 0 610 562 ; C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ; C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ; C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ; C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ; C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ; C 96 ; WX 600 ; N quoteleft ; B 343 328 457 562 ; C 97 ; WX 600 ; N a ; B 76 -15 569 441 ; C 98 ; WX 600 ; N b ; B 29 -15 625 629 ; C 99 ; WX 600 ; N c ; B 106 -15 608 441 ; C 100 ; WX 600 ; N d ; B 85 -15 640 629 ; C 101 ; WX 600 ; N e ; B 106 -15 598 441 ; C 102 ; WX 600 ; N f ; B 114 0 662 629 ; C 103 ; WX 600 ; N g ; B 61 -157 657 441 ; C 104 ; WX 600 ; N h ; B 33 0 592 629 ; C 105 ; WX 600 ; N i ; B 95 0 515 657 ; C 106 ; WX 600 ; N j ; B 52 -157 550 657 ; C 107 ; WX 600 ; N k ; B 58 0 633 629 ; C 108 ; WX 600 ; N l ; B 95 0 515 629 ; C 109 ; WX 600 ; N m ; B -5 0 615 441 ; C 110 ; WX 600 ; N n ; B 26 0 585 441 ; C 111 ; WX 600 ; N o ; B 102 -15 588 441 ; C 112 ; WX 600 ; N p ; B -24 -157 605 441 ; C 113 ; WX 600 ; N q ; B 85 -157 682 441 ; C 114 ; WX 600 ; N r ; B 60 0 636 441 ; C 115 ; WX 600 ; N s ; B 78 -15 584 441 ; C 116 ; WX 600 ; N t ; B 167 -15 561 561 ; C 117 ; WX 600 ; N u ; B 101 -15 572 426 ; C 118 ; WX 600 ; N v ; B 90 -10 681 426 ; C 119 ; WX 600 ; N w ; B 76 -10 695 426 ; C 120 ; WX 600 ; N x ; B 20 0 655 426 ; C 121 ; WX 600 ; N y ; B -4 -157 683 426 ; C 122 ; WX 600 ; N z ; B 99 0 593 426 ; C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ; C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ; C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ; C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ; C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ; C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ; C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ; C 164 ; WX 600 ; N fraction ; B 84 -57 646 665 ; C 165 ; WX 600 ; N yen ; B 120 0 693 562 ; C 166 ; WX 600 ; N florin ; B -26 -143 671 622 ; C 167 ; WX 600 ; N section ; B 104 -78 590 580 ; C 168 ; WX 600 ; N currency ; B 94 58 628 506 ; C 169 ; WX 600 ; N quotesingle ; B 345 328 460 562 ; C 170 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ; C 171 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ; C 173 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ; C 174 ; WX 600 ; N fi ; B 3 0 619 629 ; C 175 ; WX 600 ; N fl ; B 3 0 619 629 ; C 177 ; WX 600 ; N endash ; B 124 231 586 285 ; C 178 ; WX 600 ; N dagger ; B 217 -78 546 580 ; C 179 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ; C 180 ; WX 600 ; N periodcentered ; B 275 189 434 327 ; C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ; C 183 ; WX 600 ; N bullet ; B 224 130 485 383 ; C 184 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ; C 185 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ; C 186 ; WX 600 ; N quotedblright ; B 213 328 576 562 ; C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ; C 188 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ; C 189 ; WX 600 ; N perthousand ; B 59 -15 627 622 ; C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ; C 193 ; WX 600 ; N grave ; B 294 497 484 672 ; C 194 ; WX 600 ; N acute ; B 348 497 612 672 ; C 195 ; WX 600 ; N circumflex ; B 229 477 581 654 ; C 196 ; WX 600 ; N tilde ; B 212 489 629 606 ; C 197 ; WX 600 ; N macron ; B 232 525 600 565 ; C 198 ; WX 600 ; N breve ; B 279 501 576 609 ; C 199 ; WX 600 ; N dotaccent ; B 360 477 466 580 ; C 200 ; WX 600 ; N dieresis ; B 262 492 570 595 ; C 202 ; WX 600 ; N ring ; B 332 463 500 627 ; C 203 ; WX 600 ; N cedilla ; B 197 -151 344 10 ; C 205 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ; C 206 ; WX 600 ; N ogonek ; B 207 -151 348 0 ; C 207 ; WX 600 ; N caron ; B 262 492 614 669 ; C 208 ; WX 600 ; N emdash ; B 49 231 661 285 ; C 225 ; WX 600 ; N AE ; B 3 0 655 562 ; C 227 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ; C 232 ; WX 600 ; N Lslash ; B 47 0 607 562 ; C 233 ; WX 600 ; N Oslash ; B 94 -80 625 629 ; C 234 ; WX 600 ; N OE ; B 59 0 672 562 ; C 235 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ; C 241 ; WX 600 ; N ae ; B 41 -15 626 441 ; C 245 ; WX 600 ; N dotlessi ; B 95 0 515 426 ; C 248 ; WX 600 ; N lslash ; B 95 0 583 629 ; C 249 ; WX 600 ; N oslash ; B 102 -80 588 506 ; C 250 ; WX 600 ; N oe ; B 54 -15 615 441 ; C 251 ; WX 600 ; N germandbls ; B 48 -15 617 629 ; C -1 ; WX 600 ; N Odieresis ; B 94 -18 625 731 ; C -1 ; WX 600 ; N logicalnot ; B 155 108 591 369 ; C -1 ; WX 600 ; N minus ; B 129 232 580 283 ; C -1 ; WX 600 ; N degree ; B 214 269 576 622 ; C -1 ; WX 600 ; N Eacute ; B 53 0 668 793 ; C -1 ; WX 600 ; N Ocircumflex ; B 94 -18 625 775 ; C -1 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ; C -1 ; WX 600 ; N threesuperior ; B 213 240 501 622 ; C -1 ; WX 600 ; N multiply ; B 103 43 607 470 ; C -1 ; WX 600 ; N Scaron ; B 76 -20 673 805 ; C -1 ; WX 600 ; N Ucircumflex ; B 125 -18 702 775 ; C -1 ; WX 600 ; N divide ; B 136 48 573 467 ; C -1 ; WX 600 ; N Acircumflex ; B 3 0 607 775 ; C -1 ; WX 600 ; N eacute ; B 106 -15 612 672 ; C -1 ; WX 600 ; N uacute ; B 101 -15 602 672 ; C -1 ; WX 600 ; N Aacute ; B 3 0 658 793 ; C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; C -1 ; WX 600 ; N twosuperior ; B 230 249 535 622 ; C -1 ; WX 600 ; N Ecircumflex ; B 53 0 660 775 ; C -1 ; WX 600 ; N ntilde ; B 26 0 629 606 ; C -1 ; WX 600 ; N onesuperior ; B 231 249 491 622 ; C -1 ; WX 600 ; N edieresis ; B 106 -15 598 595 ; C -1 ; WX 600 ; N odieresis ; B 102 -15 588 595 ; C -1 ; WX 600 ; N Ograve ; B 94 -18 625 793 ; C -1 ; WX 600 ; N threequarters ; B 73 -56 659 666 ; C -1 ; WX 600 ; N plusminus ; B 96 44 594 558 ; C -1 ; WX 600 ; N eth ; B 102 -15 639 629 ; C -1 ; WX 600 ; N egrave ; B 106 -15 598 672 ; C -1 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ; C -1 ; WX 600 ; N Udieresis ; B 125 -18 702 731 ; C -1 ; WX 600 ; N Gcaron ; B 83 -18 645 805 ; C -1 ; WX 600 ; N Otilde ; B 94 -18 656 732 ; C -1 ; WX 600 ; N Idieresis ; B 96 0 623 731 ; C -1 ; WX 600 ; N adieresis ; B 76 -15 570 595 ; C -1 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ; C -1 ; WX 600 ; N Eth ; B 43 0 645 562 ; C -1 ; WX 600 ; N onequarter ; B 65 -57 674 665 ; C -1 ; WX 600 ; N agrave ; B 76 -15 569 672 ; C -1 ; WX 600 ; N Zcaron ; B 86 0 643 805 ; C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ; C -1 ; WX 600 ; N Iacute ; B 96 0 638 793 ; C -1 ; WX 600 ; N Ugrave ; B 125 -18 702 793 ; C -1 ; WX 600 ; N scaron ; B 78 -15 614 669 ; C -1 ; WX 600 ; N Aring ; B 3 0 607 753 ; C -1 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ; C -1 ; WX 600 ; N Igrave ; B 96 0 623 793 ; C -1 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ; C -1 ; WX 600 ; N Oacute ; B 94 -18 638 793 ; C -1 ; WX 600 ; N otilde ; B 102 -15 629 606 ; C -1 ; WX 600 ; N Yacute ; B 133 0 695 793 ; C -1 ; WX 600 ; N Icircumflex ; B 96 0 623 775 ; C -1 ; WX 600 ; N Atilde ; B 3 0 656 732 ; C -1 ; WX 600 ; N Uacute ; B 125 -18 702 793 ; C -1 ; WX 600 ; N Ydieresis ; B 133 0 695 731 ; C -1 ; WX 600 ; N ydieresis ; B -4 -157 683 595 ; C -1 ; WX 600 ; N idieresis ; B 95 0 540 595 ; C -1 ; WX 600 ; N Adieresis ; B 3 0 607 731 ; C -1 ; WX 600 ; N mu ; B 72 -157 572 426 ; C -1 ; WX 600 ; N trademark ; B 75 263 742 562 ; C -1 ; WX 600 ; N oacute ; B 102 -15 612 672 ; C -1 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ; C -1 ; WX 600 ; N Agrave ; B 3 0 607 793 ; C -1 ; WX 600 ; N atilde ; B 76 -15 629 606 ; C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; C -1 ; WX 600 ; N udieresis ; B 101 -15 572 595 ; C -1 ; WX 600 ; N igrave ; B 95 0 515 672 ; C -1 ; WX 600 ; N Edieresis ; B 53 0 660 731 ; C -1 ; WX 600 ; N zcaron ; B 99 0 624 669 ; C -1 ; WX 600 ; N gcaron ; B 61 -157 657 669 ; C -1 ; WX 600 ; N aacute ; B 76 -15 612 672 ; C -1 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ; C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ; C -1 ; WX 600 ; N ograve ; B 102 -15 588 672 ; C -1 ; WX 600 ; N onehalf ; B 65 -57 669 665 ; C -1 ; WX 600 ; N ugrave ; B 101 -15 572 672 ; C -1 ; WX 600 ; N Ntilde ; B 7 -13 712 732 ; C -1 ; WX 600 ; N iacute ; B 95 0 612 672 ; C -1 ; WX 600 ; N Thorn ; B 79 0 606 562 ; C -1 ; WX 600 ; N Egrave ; B 53 0 660 793 ; C -1 ; WX 600 ; N thorn ; B -24 -157 605 629 ; C -1 ; WX 600 ; N aring ; B 76 -15 569 627 ; C -1 ; WX 600 ; N yacute ; B -4 -157 683 672 ; C -1 ; WX 600 ; N icircumflex ; B 95 0 551 654 ; C -1 ; WX 600 ; N abreve ; B 76 -15 576 609 ; C -1 ; WX 600 ; N Abreve ; B 3 0 607 742 ; C -1 ; WX 600 ; N amacron ; B 76 -15 600 565 ; C -1 ; WX 600 ; N Amacron ; B 3 0 607 698 ; C -1 ; WX 600 ; N Aogonek ; B 3 -151 607 562 ; C -1 ; WX 600 ; N aogonek ; B 76 -151 569 441 ; C -1 ; WX 600 ; N cacute ; B 106 -15 612 672 ; C -1 ; WX 600 ; N Cacute ; B 93 -18 665 805 ; C -1 ; WX 600 ; N ccaron ; B 106 -15 614 669 ; C -1 ; WX 600 ; N Ccaron ; B 93 -18 667 802 ; C -1 ; WX 600 ; N ccircumflex ; B 106 -15 608 656 ; C -1 ; WX 600 ; N Ccircumflex ; B 93 -18 655 787 ; C -1 ; WX 600 ; N cdotaccent ; B 106 -15 608 580 ; C -1 ; WX 600 ; N Cdotaccent ; B 93 -18 655 713 ; C -1 ; WX 600 ; N dbar ; B 85 -15 758 629 ; C -1 ; WX 600 ; N Dbar ; B 0 0 645 562 ; C -1 ; WX 600 ; N dcaron ; B 85 -15 640 851 ; C -1 ; WX 600 ; N Dcaron ; B 43 0 647 802 ; C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ; C -1 ; WX 600 ; N Ecaron ; B 53 0 667 802 ; C -1 ; WX 600 ; N edotaccent ; B 106 -15 598 580 ; C -1 ; WX 600 ; N Edotaccent ; B 53 0 660 713 ; C -1 ; WX 600 ; N emacron ; B 106 -15 600 565 ; C -1 ; WX 600 ; N Emacron ; B 53 0 660 698 ; C -1 ; WX 600 ; N Eogonek ; B 53 -151 660 562 ; C -1 ; WX 600 ; N eogonek ; B 106 -151 598 441 ; C -1 ; WX 600 ; N gacute ; B 61 -157 657 672 ; C -1 ; WX 600 ; N gbreve ; B 61 -157 657 609 ; C -1 ; WX 600 ; N Gbreve ; B 83 -18 645 742 ; C -1 ; WX 600 ; N gcircumflex ; B 61 -157 657 654 ; C -1 ; WX 600 ; N Gcircumflex ; B 83 -18 645 787 ; C -1 ; WX 600 ; N gdotaccent ; B 61 -157 657 580 ; C -1 ; WX 600 ; N Gdotaccent ; B 83 -18 645 766 ; C -1 ; WX 600 ; N hcircumflex ; B 33 0 592 836 ; C -1 ; WX 600 ; N Hcircumflex ; B 32 0 687 787 ; C -1 ; WX 600 ; N Idotaccent ; B 96 0 623 713 ; C -1 ; WX 600 ; N imacron ; B 95 0 600 565 ; C -1 ; WX 600 ; N Imacron ; B 96 0 630 698 ; C -1 ; WX 600 ; N iogonek ; B 95 -151 515 657 ; C -1 ; WX 600 ; N Iogonek ; B 96 -151 623 562 ; C -1 ; WX 600 ; N itilde ; B 95 0 629 606 ; C -1 ; WX 600 ; N Itilde ; B 96 0 659 739 ; C -1 ; WX 600 ; N Jcircumflex ; B 52 -18 685 787 ; C -1 ; WX 600 ; N Lacute ; B 47 0 607 805 ; C -1 ; WX 600 ; N lacute ; B 95 0 612 854 ; C -1 ; WX 600 ; N Lcaron ; B 47 0 607 802 ; C -1 ; WX 600 ; N lcaron ; B 95 0 614 851 ; C -1 ; WX 600 ; N nacute ; B 26 0 612 672 ; C -1 ; WX 600 ; N Nacute ; B 7 -13 712 805 ; C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ; C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 802 ; C -1 ; WX 600 ; N ohungarumlaut ; B 102 -15 683 672 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -18 736 805 ; C -1 ; WX 600 ; N omacron ; B 102 -15 600 565 ; C -1 ; WX 600 ; N Omacron ; B 94 -18 653 698 ; C -1 ; WX 600 ; N racute ; B 60 0 636 672 ; C -1 ; WX 600 ; N Racute ; B 38 0 665 805 ; C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ; C -1 ; WX 600 ; N Rcaron ; B 38 0 654 802 ; C -1 ; WX 600 ; N sacute ; B 78 -15 612 672 ; C -1 ; WX 600 ; N Sacute ; B 76 -20 665 805 ; C -1 ; WX 600 ; N scircumflex ; B 78 -15 584 654 ; C -1 ; WX 600 ; N Scircumflex ; B 76 -20 650 787 ; C -1 ; WX 600 ; N tcaron ; B 167 -15 561 787 ; C -1 ; WX 600 ; N Tcaron ; B 108 0 665 802 ; C -1 ; WX 600 ; N Tcedilla ; B 108 -151 665 562 ; C -1 ; WX 600 ; N tcedilla ; B 167 -151 561 561 ; C -1 ; WX 600 ; N ubreve ; B 101 -15 576 609 ; C -1 ; WX 600 ; N Ubreve ; B 125 -18 702 742 ; C -1 ; WX 600 ; N uhungarumlaut ; B 101 -15 683 672 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 125 -18 736 805 ; C -1 ; WX 600 ; N umacron ; B 101 -15 600 565 ; C -1 ; WX 600 ; N Umacron ; B 125 -18 702 698 ; C -1 ; WX 600 ; N uogonek ; B 101 -151 572 426 ; C -1 ; WX 600 ; N Uogonek ; B 125 -136 702 562 ; C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ; C -1 ; WX 600 ; N Uring ; B 125 -18 702 760 ; C -1 ; WX 600 ; N utilde ; B 101 -15 629 606 ; C -1 ; WX 600 ; N Utilde ; B 125 -18 702 739 ; C -1 ; WX 600 ; N zacute ; B 99 0 612 672 ; C -1 ; WX 600 ; N Zacute ; B 86 0 652 805 ; C -1 ; WX 600 ; N zdotaccent ; B 99 0 593 580 ; C -1 ; WX 600 ; N Zdotaccent ; B 86 0 610 713 ; EndCharMetrics EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrro-o.ps���������������������������������������������������������������������0000644�0000000�0000000�00000007361�14415562571�013135� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Courier-Oblique-Ogonki /Courier-Oblique /Courier-Oblique-Ogonki OgonkiEncoding StandardEncoding 111 dict dup /Agrave [65 -4 121 27] put dup /Aring [65 12 126 31] put dup /Atilde [65 27 126 29] put dup /Ecircumflex [69 26 121 28] put dup /Egrave [69 26 121 27] put dup /Gcaron [71 29 136 183] put dup /Idieresis [73 29 136 168] put dup /Igrave [73 26 121 27] put dup /Ntilde [78 27 126 29] put dup /Ograve [79 26 121 27] put dup /Otilde [79 27 126 29] put dup /Ucircumflex [85 26 121 28] put dup /Ugrave [85 -4 121 27] put dup /Ydieresis [89 29 136 168] put dup /agrave [97 0 0 27] put dup /aring [97 0 0 31] put dup /atilde [97 0 0 29] put dup /ecircumflex [101 0 0 28] put dup /egrave [101 0 0 27] put dup /gcaron [103 -30 0 183] put dup /idieresis [136 -30 0 168] put dup /igrave [136 -30 0 27] put dup /ntilde [110 0 0 29] put dup /ograve [111 0 0 27] put dup /otilde [111 0 0 29] put dup /ucircumflex [117 -10 0 28] put dup /ugrave [117 -30 0 27] put dup /ydieresis [121 -10 0 168] put dup /abreve [97 0 0 162] put dup /Abreve [65 0 133 162] put dup /amacron [97 0 0 30] put dup /Amacron [65 0 133 30] put dup /Aogonek [65 200 0 178] put dup /aogonek [97 200 0 178] put dup /cacute [99 0 0 180] put dup /Cacute [67 53 133 180] put dup /ccaron [99 0 0 183] put dup /Ccaron [67 53 133 183] put dup /ccircumflex [99 0 2 28] put dup /Ccircumflex [67 53 133 28] put dup /cdotaccent [99 0 0 255] put dup /Cdotaccent [67 53 133 255] put dup /dbar [100 200 250 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 20 182 183] put dup /Dcaron [68 33 133 183] put dup /ecaron [101 0 0 183] put dup /Ecaron [69 53 133 183] put dup /edotaccent [101 0 0 255] put dup /Edotaccent [69 53 133 255] put dup /emacron [101 0 0 30] put dup /Emacron [69 53 133 30] put dup /Eogonek [69 0 0 178] put dup /eogonek [101 0 0 178] put dup /gacute [103 -10 0 180] put dup /gbreve [103 -10 0 162] put dup /Gbreve [71 53 133 162] put dup /gcircumflex [103 -10 0 28] put dup /Gcircumflex [71 53 133 28] put dup /gdotaccent [103 0 0 255] put dup /Gdotaccent [71 53 186 255] put dup /hcircumflex [104 0 182 28] put dup /Hcircumflex [72 30 133 28] put dup /Idotaccent [73 30 133 255] put dup /imacron [136 0 0 30] put dup /Imacron [73 30 133 30] put dup /iogonek [105 20 0 178] put dup /Iogonek [73 20 0 178] put dup /itilde [136 0 0 29] put dup /Itilde [73 30 133 29] put dup /Jcircumflex [74 98 133 28] put dup /Lacute [76 -83 133 180] put dup /lacute [108 0 182 180] put dup /Lcaron [76 -83 133 183] put dup /lcaron [108 0 182 183] put dup /nacute [110 0 0 180] put dup /Nacute [78 53 133 180] put dup /ncaron [110 0 0 183] put dup /Ncaron [78 53 133 183] put dup /ohungarumlaut [111 0 0 189] put dup /Ohungarumlaut [79 53 133 189] put dup /omacron [111 0 0 30] put dup /Omacron [79 53 133 30] put dup /racute [114 0 0 180] put dup /Racute [82 53 133 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 40 133 183] put dup /sacute [115 0 0 180] put dup /Sacute [83 53 133 180] put dup /scircumflex [115 0 0 28] put dup /Scircumflex [83 53 133 28] put dup /tcaron [116 -65 118 183] put dup /Tcaron [84 40 133 183] put dup /Tcedilla [84 0 0 184] put dup /tcedilla [116 0 0 184] put dup /ubreve [117 0 0 162] put dup /Ubreve [85 53 133 162] put dup /uhungarumlaut [117 0 0 189] put dup /Uhungarumlaut [85 53 133 189] put dup /umacron [117 0 0 30] put dup /Umacron [85 53 133 30] put dup /uogonek [117 120 0 178] put dup /Uogonek [85 5 15 178] put dup /uring [117 -30 0 31] put dup /Uring [85 53 133 31] put dup /utilde [117 0 0 29] put dup /Utilde [85 53 133 29] put dup /zacute [122 0 0 180] put dup /Zacute [90 40 133 180] put dup /zdotaccent [122 0 0 255] put dup /Zdotaccent [90 40 133 255] put makeComposite %%EndResource �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/pcrro.afm����������������������������������������������������������������������0000644�0000000�0000000�00000036123�14233473143�013012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Tue Sep 17 09:42:19 1991 Comment UniqueID 36350 Comment VMusage 9174 52297 FontName Courier-Oblique FullName Courier Oblique FamilyName Courier Weight Medium ItalicAngle -12 IsFixedPitch true FontBBox -28 -250 742 805 UnderlinePosition -100 UnderlineThickness 50 Version 002.004 Notice Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 426 Ascender 629 Descender -157 StartCharMetrics 260 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ; C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ; C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ; C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ; C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ; C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ; C 39 ; WX 600 ; N quoteright ; B 283 328 495 562 ; C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ; C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ; C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ; C 43 ; WX 600 ; N plus ; B 129 44 580 470 ; C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ; C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ; C 46 ; WX 600 ; N period ; B 238 -15 382 109 ; C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ; C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ; C 49 ; WX 600 ; N one ; B 98 0 515 622 ; C 50 ; WX 600 ; N two ; B 70 0 568 622 ; C 51 ; WX 600 ; N three ; B 82 -15 538 622 ; C 52 ; WX 600 ; N four ; B 108 0 541 622 ; C 53 ; WX 600 ; N five ; B 99 -15 589 607 ; C 54 ; WX 600 ; N six ; B 155 -15 629 622 ; C 55 ; WX 600 ; N seven ; B 182 0 612 607 ; C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ; C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ; C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ; C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ; C 60 ; WX 600 ; N less ; B 96 42 610 472 ; C 61 ; WX 600 ; N equal ; B 109 138 600 376 ; C 62 ; WX 600 ; N greater ; B 85 42 599 472 ; C 63 ; WX 600 ; N question ; B 222 -15 583 572 ; C 64 ; WX 600 ; N at ; B 127 -15 582 622 ; C 65 ; WX 600 ; N A ; B 3 0 607 562 ; C 66 ; WX 600 ; N B ; B 43 0 616 562 ; C 67 ; WX 600 ; N C ; B 93 -18 655 580 ; C 68 ; WX 600 ; N D ; B 43 0 645 562 ; C 69 ; WX 600 ; N E ; B 53 0 660 562 ; C 70 ; WX 600 ; N F ; B 53 0 660 562 ; C 71 ; WX 600 ; N G ; B 83 -18 645 580 ; C 72 ; WX 600 ; N H ; B 32 0 687 562 ; C 73 ; WX 600 ; N I ; B 96 0 623 562 ; C 74 ; WX 600 ; N J ; B 52 -18 685 562 ; C 75 ; WX 600 ; N K ; B 38 0 671 562 ; C 76 ; WX 600 ; N L ; B 47 0 607 562 ; C 77 ; WX 600 ; N M ; B 4 0 715 562 ; C 78 ; WX 600 ; N N ; B 7 -13 712 562 ; C 79 ; WX 600 ; N O ; B 94 -18 625 580 ; C 80 ; WX 600 ; N P ; B 79 0 644 562 ; C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ; C 82 ; WX 600 ; N R ; B 38 0 598 562 ; C 83 ; WX 600 ; N S ; B 76 -20 650 580 ; C 84 ; WX 600 ; N T ; B 108 0 665 562 ; C 85 ; WX 600 ; N U ; B 125 -18 702 562 ; C 86 ; WX 600 ; N V ; B 105 -13 723 562 ; C 87 ; WX 600 ; N W ; B 106 -13 722 562 ; C 88 ; WX 600 ; N X ; B 23 0 675 562 ; C 89 ; WX 600 ; N Y ; B 133 0 695 562 ; C 90 ; WX 600 ; N Z ; B 86 0 610 562 ; C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ; C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ; C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ; C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ; C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ; C 96 ; WX 600 ; N quoteleft ; B 343 328 457 562 ; C 97 ; WX 600 ; N a ; B 76 -15 569 441 ; C 98 ; WX 600 ; N b ; B 29 -15 625 629 ; C 99 ; WX 600 ; N c ; B 106 -15 608 441 ; C 100 ; WX 600 ; N d ; B 85 -15 640 629 ; C 101 ; WX 600 ; N e ; B 106 -15 598 441 ; C 102 ; WX 600 ; N f ; B 114 0 662 629 ; L i fi ; L l fl ; C 103 ; WX 600 ; N g ; B 61 -157 657 441 ; C 104 ; WX 600 ; N h ; B 33 0 592 629 ; C 105 ; WX 600 ; N i ; B 95 0 515 657 ; C 106 ; WX 600 ; N j ; B 52 -157 550 657 ; C 107 ; WX 600 ; N k ; B 58 0 633 629 ; C 108 ; WX 600 ; N l ; B 95 0 515 629 ; C 109 ; WX 600 ; N m ; B -5 0 615 441 ; C 110 ; WX 600 ; N n ; B 26 0 585 441 ; C 111 ; WX 600 ; N o ; B 102 -15 588 441 ; C 112 ; WX 600 ; N p ; B -24 -157 605 441 ; C 113 ; WX 600 ; N q ; B 85 -157 682 441 ; C 114 ; WX 600 ; N r ; B 60 0 636 441 ; C 115 ; WX 600 ; N s ; B 78 -15 584 441 ; C 116 ; WX 600 ; N t ; B 167 -15 561 561 ; C 117 ; WX 600 ; N u ; B 101 -15 572 426 ; C 118 ; WX 600 ; N v ; B 90 -10 681 426 ; C 119 ; WX 600 ; N w ; B 76 -10 695 426 ; C 120 ; WX 600 ; N x ; B 20 0 655 426 ; C 121 ; WX 600 ; N y ; B -4 -157 683 426 ; C 122 ; WX 600 ; N z ; B 99 0 593 426 ; C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ; C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ; C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ; C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ; C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ; C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ; C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ; C 164 ; WX 600 ; N fraction ; B 84 -57 646 665 ; C 165 ; WX 600 ; N yen ; B 120 0 693 562 ; C 166 ; WX 600 ; N florin ; B -26 -143 671 622 ; C 167 ; WX 600 ; N section ; B 104 -78 590 580 ; C 168 ; WX 600 ; N currency ; B 94 58 628 506 ; C 169 ; WX 600 ; N quotesingle ; B 345 328 460 562 ; C 170 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ; C 171 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ; C 173 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ; C 174 ; WX 600 ; N fi ; B 3 0 619 629 ; C 175 ; WX 600 ; N fl ; B 3 0 619 629 ; C 177 ; WX 600 ; N endash ; B 124 231 586 285 ; C 178 ; WX 600 ; N dagger ; B 217 -78 546 580 ; C 179 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ; C 180 ; WX 600 ; N periodcentered ; B 275 189 434 327 ; C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ; C 183 ; WX 600 ; N bullet ; B 224 130 485 383 ; C 184 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ; C 185 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ; C 186 ; WX 600 ; N quotedblright ; B 213 328 576 562 ; C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ; C 188 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ; C 189 ; WX 600 ; N perthousand ; B 59 -15 627 622 ; C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ; C 193 ; WX 600 ; N grave ; B 294 497 484 672 ; C 194 ; WX 600 ; N acute ; B 348 497 612 672 ; C 195 ; WX 600 ; N circumflex ; B 229 477 581 654 ; C 196 ; WX 600 ; N tilde ; B 212 489 629 606 ; C 197 ; WX 600 ; N macron ; B 232 525 600 565 ; C 198 ; WX 600 ; N breve ; B 279 501 576 609 ; C 199 ; WX 600 ; N dotaccent ; B 360 477 466 580 ; C 200 ; WX 600 ; N dieresis ; B 262 492 570 595 ; C 202 ; WX 600 ; N ring ; B 332 463 500 627 ; C 203 ; WX 600 ; N cedilla ; B 197 -151 344 10 ; C 205 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ; C 206 ; WX 600 ; N ogonek ; B 207 -151 348 0 ; C 207 ; WX 600 ; N caron ; B 262 492 614 669 ; C 208 ; WX 600 ; N emdash ; B 49 231 661 285 ; C 225 ; WX 600 ; N AE ; B 3 0 655 562 ; C 227 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ; C 232 ; WX 600 ; N Lslash ; B 47 0 607 562 ; C 233 ; WX 600 ; N Oslash ; B 94 -80 625 629 ; C 234 ; WX 600 ; N OE ; B 59 0 672 562 ; C 235 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ; C 241 ; WX 600 ; N ae ; B 41 -15 626 441 ; C 245 ; WX 600 ; N dotlessi ; B 95 0 515 426 ; C 248 ; WX 600 ; N lslash ; B 95 0 583 629 ; C 249 ; WX 600 ; N oslash ; B 102 -80 588 506 ; C 250 ; WX 600 ; N oe ; B 54 -15 615 441 ; C 251 ; WX 600 ; N germandbls ; B 48 -15 617 629 ; C -1 ; WX 600 ; N Odieresis ; B 94 -18 625 731 ; C -1 ; WX 600 ; N logicalnot ; B 155 108 591 369 ; C -1 ; WX 600 ; N minus ; B 129 232 580 283 ; C -1 ; WX 600 ; N merge ; B 187 -15 503 436 ; C -1 ; WX 600 ; N degree ; B 214 269 576 622 ; C -1 ; WX 600 ; N dectab ; B 18 0 593 227 ; C -1 ; WX 600 ; N ll ; B 33 0 616 629 ; C -1 ; WX 600 ; N IJ ; B 32 -18 702 562 ; C -1 ; WX 600 ; N Eacute ; B 53 0 668 793 ; C -1 ; WX 600 ; N Ocircumflex ; B 94 -18 625 775 ; C -1 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ; C -1 ; WX 600 ; N left ; B 114 68 580 348 ; C -1 ; WX 600 ; N threesuperior ; B 213 240 501 622 ; C -1 ; WX 600 ; N up ; B 223 0 503 437 ; C -1 ; WX 600 ; N multiply ; B 103 43 607 470 ; C -1 ; WX 600 ; N Scaron ; B 76 -20 673 805 ; C -1 ; WX 600 ; N tab ; B 19 0 641 562 ; C -1 ; WX 600 ; N Ucircumflex ; B 125 -18 702 775 ; C -1 ; WX 600 ; N divide ; B 136 48 573 467 ; C -1 ; WX 600 ; N Acircumflex ; B 3 0 607 775 ; C -1 ; WX 600 ; N eacute ; B 106 -15 612 672 ; C -1 ; WX 600 ; N uacute ; B 101 -15 602 672 ; C -1 ; WX 600 ; N Aacute ; B 3 0 658 793 ; C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; C -1 ; WX 600 ; N twosuperior ; B 230 249 535 622 ; C -1 ; WX 600 ; N Ecircumflex ; B 53 0 660 775 ; C -1 ; WX 600 ; N ntilde ; B 26 0 629 606 ; C -1 ; WX 600 ; N down ; B 187 -15 467 426 ; C -1 ; WX 600 ; N center ; B 103 14 623 580 ; C -1 ; WX 600 ; N onesuperior ; B 231 249 491 622 ; C -1 ; WX 600 ; N ij ; B 37 -157 630 657 ; C -1 ; WX 600 ; N edieresis ; B 106 -15 598 595 ; C -1 ; WX 600 ; N graybox ; B 76 0 652 599 ; C -1 ; WX 600 ; N odieresis ; B 102 -15 588 595 ; C -1 ; WX 600 ; N Ograve ; B 94 -18 625 793 ; C -1 ; WX 600 ; N threequarters ; B 73 -56 659 666 ; C -1 ; WX 600 ; N plusminus ; B 96 44 594 558 ; C -1 ; WX 600 ; N prescription ; B 27 -15 617 562 ; C -1 ; WX 600 ; N eth ; B 102 -15 639 629 ; C -1 ; WX 600 ; N largebullet ; B 315 220 395 297 ; C -1 ; WX 600 ; N egrave ; B 106 -15 598 672 ; C -1 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ; C -1 ; WX 600 ; N notegraphic ; B 143 -15 564 572 ; C -1 ; WX 600 ; N Udieresis ; B 125 -18 702 731 ; C -1 ; WX 600 ; N Gcaron ; B 83 -18 645 805 ; C -1 ; WX 600 ; N arrowdown ; B 152 -15 520 608 ; C -1 ; WX 600 ; N format ; B -28 -157 185 607 ; C -1 ; WX 600 ; N Otilde ; B 94 -18 656 732 ; C -1 ; WX 600 ; N Idieresis ; B 96 0 623 731 ; C -1 ; WX 600 ; N adieresis ; B 76 -15 570 595 ; C -1 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ; C -1 ; WX 600 ; N Eth ; B 43 0 645 562 ; C -1 ; WX 600 ; N onequarter ; B 65 -57 674 665 ; C -1 ; WX 600 ; N LL ; B 8 0 647 562 ; C -1 ; WX 600 ; N agrave ; B 76 -15 569 672 ; C -1 ; WX 600 ; N Zcaron ; B 86 0 643 805 ; C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ; C -1 ; WX 600 ; N Idot ; B 96 0 623 716 ; C -1 ; WX 600 ; N Iacute ; B 96 0 638 793 ; C -1 ; WX 600 ; N indent ; B 108 68 574 348 ; C -1 ; WX 600 ; N Ugrave ; B 125 -18 702 793 ; C -1 ; WX 600 ; N scaron ; B 78 -15 614 669 ; C -1 ; WX 600 ; N overscore ; B 123 579 734 629 ; C -1 ; WX 600 ; N Aring ; B 3 0 607 753 ; C -1 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ; C -1 ; WX 600 ; N Igrave ; B 96 0 623 793 ; C -1 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ; C -1 ; WX 600 ; N Oacute ; B 94 -18 638 793 ; C -1 ; WX 600 ; N otilde ; B 102 -15 629 606 ; C -1 ; WX 600 ; N Yacute ; B 133 0 695 793 ; C -1 ; WX 600 ; N lira ; B 118 -21 621 611 ; C -1 ; WX 600 ; N Icircumflex ; B 96 0 623 775 ; C -1 ; WX 600 ; N Atilde ; B 3 0 656 732 ; C -1 ; WX 600 ; N Uacute ; B 125 -18 702 793 ; C -1 ; WX 600 ; N Ydieresis ; B 133 0 695 731 ; C -1 ; WX 600 ; N ydieresis ; B -4 -157 683 595 ; C -1 ; WX 600 ; N idieresis ; B 95 0 540 595 ; C -1 ; WX 600 ; N Adieresis ; B 3 0 607 731 ; C -1 ; WX 600 ; N mu ; B 72 -157 572 426 ; C -1 ; WX 600 ; N trademark ; B 75 263 742 562 ; C -1 ; WX 600 ; N oacute ; B 102 -15 612 672 ; C -1 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ; C -1 ; WX 600 ; N Agrave ; B 3 0 607 793 ; C -1 ; WX 600 ; N return ; B 79 0 700 562 ; C -1 ; WX 600 ; N atilde ; B 76 -15 629 606 ; C -1 ; WX 600 ; N square ; B 19 0 700 562 ; C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; C -1 ; WX 600 ; N stop ; B 19 0 700 562 ; C -1 ; WX 600 ; N udieresis ; B 101 -15 572 595 ; C -1 ; WX 600 ; N arrowup ; B 209 0 577 623 ; C -1 ; WX 600 ; N igrave ; B 95 0 515 672 ; C -1 ; WX 600 ; N Edieresis ; B 53 0 660 731 ; C -1 ; WX 600 ; N zcaron ; B 99 0 624 669 ; C -1 ; WX 600 ; N arrowboth ; B 36 115 692 483 ; C -1 ; WX 600 ; N gcaron ; B 61 -157 657 669 ; C -1 ; WX 600 ; N arrowleft ; B 40 115 693 483 ; C -1 ; WX 600 ; N aacute ; B 76 -15 612 672 ; C -1 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ; C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ; C -1 ; WX 600 ; N ograve ; B 102 -15 588 672 ; C -1 ; WX 600 ; N onehalf ; B 65 -57 669 665 ; C -1 ; WX 600 ; N ugrave ; B 101 -15 572 672 ; C -1 ; WX 600 ; N Ntilde ; B 7 -13 712 732 ; C -1 ; WX 600 ; N iacute ; B 95 0 612 672 ; C -1 ; WX 600 ; N arrowright ; B 34 115 688 483 ; C -1 ; WX 600 ; N Thorn ; B 79 0 606 562 ; C -1 ; WX 600 ; N Egrave ; B 53 0 660 793 ; C -1 ; WX 600 ; N thorn ; B -24 -157 605 629 ; C -1 ; WX 600 ; N aring ; B 76 -15 569 627 ; C -1 ; WX 600 ; N yacute ; B -4 -157 683 672 ; C -1 ; WX 600 ; N icircumflex ; B 95 0 551 654 ; EndCharMetrics StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 46 121 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -4 121 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis -1 136 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave -4 121 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 12 126 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 27 126 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 56 121 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 26 121 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 29 136 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 26 121 ; CC Gcaron 2 ; PCC G 0 0 ; PCC caron 29 136 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 26 121 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 26 121 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 29 136 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 26 121 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 27 126 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 26 121 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 26 121 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 29 136 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 26 121 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 27 126 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 59 136 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 56 121 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 26 121 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 29 136 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave -4 121 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 56 121 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 29 136 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 29 136 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; CC gcaron 2 ; PCC g 0 0 ; PCC caron -30 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -30 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -30 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -30 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute -10 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex -10 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave -30 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute -20 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis -10 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 10 0 ; EndComposites EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvb-c.afm���������������������������������������������������������������������0000644�0000000�0000000�00000005353�14233473143�013045� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 FontName Helvetica-Bold-Comp StartComposites 57 CC abreve 2 ; PCC a 0 0 ; PCC breve 111 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 194 202 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 270 0 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 444 0 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 111 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 194 193 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 122 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 210 191 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 302 298 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 493 73 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 190 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 167 190 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 103 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 188 191 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 150 0 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 290 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 139 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 222 191 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent -27 191 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek -39 0 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek -30 0 ; CC lacute 2 ; PCC l 0 0 ; PCC acute -7 193 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 193 ; CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 155 73 ; CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 161 73 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 159 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 231 193 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 215 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 139 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 222 191 ; CC racute 2 ; PCC r 0 0 ; PCC acute 48 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 231 193 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 190 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 111 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 167 193 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 111 0 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 167 0 ; CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 249 0 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 139 190 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 86 0 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 197 0 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 139 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 197 191 ; CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 194 190 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 139 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 199 191 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 286 0 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 260 0 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 103 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 139 193 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 83 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 139 206 ; EndComposites EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvb-o.afm���������������������������������������������������������������������0000644�0000000�0000000�00000032107�14415562571�013064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Helvetica-Bold-Ogonki EncodingScheme StandardEncoding FullName Helvetica-Bold-Ogonki Composite font FontBBox -173 -221 1003 936 StartCharMetrics 285 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 112 0 262 729 ; C 34 ; WX 474 ; N quotedbl ; B 50 470 424 729 ; C 35 ; WX 556 ; N numbersign ; B 3 -30 553 696 ; C 36 ; WX 556 ; N dollar ; B 22 -125 526 765 ; C 37 ; WX 889 ; N percent ; B 22 -18 863 708 ; C 38 ; WX 722 ; N ampersand ; B 55 -20 694 729 ; C 39 ; WX 278 ; N quoteright ; B 66 469 201 729 ; C 40 ; WX 333 ; N parenleft ; B 40 -202 303 729 ; C 41 ; WX 333 ; N parenright ; B 22 -202 285 729 ; C 42 ; WX 389 ; N asterisk ; B 23 385 356 730 ; C 43 ; WX 584 ; N plus ; B 50 -10 534 474 ; C 44 ; WX 278 ; N comma ; B 64 -174 214 146 ; C 45 ; WX 333 ; N hyphen ; B 26 208 298 344 ; C 46 ; WX 278 ; N period ; B 64 0 214 146 ; C 47 ; WX 278 ; N slash ; B 2 -14 275 715 ; C 48 ; WX 556 ; N zero ; B 29 -23 517 725 ; C 49 ; WX 556 ; N one ; B 68 0 378 709 ; C 50 ; WX 556 ; N two ; B 30 0 515 726 ; C 51 ; WX 556 ; N three ; B 29 -23 516 726 ; C 52 ; WX 556 ; N four ; B 24 0 522 709 ; C 53 ; WX 556 ; N five ; B 27 -24 517 709 ; C 54 ; WX 556 ; N six ; B 32 -23 519 727 ; C 55 ; WX 556 ; N seven ; B 29 0 528 709 ; C 56 ; WX 556 ; N eight ; B 22 -23 525 726 ; C 57 ; WX 556 ; N nine ; B 28 -23 516 728 ; C 58 ; WX 333 ; N colon ; B 113 0 263 521 ; C 59 ; WX 333 ; N semicolon ; B 113 -174 263 521 ; C 60 ; WX 584 ; N less ; B 40 -10 529 474 ; C 61 ; WX 584 ; N equal ; B 50 52 534 412 ; C 62 ; WX 584 ; N greater ; B 40 -10 529 474 ; C 63 ; WX 611 ; N question ; B 64 0 556 744 ; C 64 ; WX 975 ; N at ; B 27 -136 947 746 ; C 65 ; WX 722 ; N A ; B 26 0 703 729 ; C 66 ; WX 722 ; N B ; B 82 0 666 729 ; C 67 ; WX 722 ; N C ; B 44 -23 685 741 ; C 68 ; WX 722 ; N D ; B 77 0 681 729 ; C 69 ; WX 667 ; N E ; B 79 0 624 729 ; C 70 ; WX 611 ; N F ; B 74 0 586 729 ; C 71 ; WX 778 ; N G ; B 42 -24 711 741 ; C 72 ; WX 722 ; N H ; B 68 0 657 729 ; C 73 ; WX 278 ; N I ; B 63 0 213 729 ; C 74 ; WX 556 ; N J ; B 24 -23 486 729 ; C 75 ; WX 722 ; N K ; B 74 0 717 729 ; C 76 ; WX 611 ; N L ; B 80 0 579 729 ; C 77 ; WX 833 ; N M ; B 66 0 776 729 ; C 78 ; WX 722 ; N N ; B 68 0 661 729 ; C 79 ; WX 778 ; N O ; B 40 -23 742 741 ; C 80 ; WX 667 ; N P ; B 76 0 633 729 ; C 81 ; WX 778 ; N Q ; B 43 -54 745 741 ; C 82 ; WX 722 ; N R ; B 80 0 677 729 ; C 83 ; WX 667 ; N S ; B 32 -23 633 741 ; C 84 ; WX 611 ; N T ; B 14 0 598 729 ; C 85 ; WX 722 ; N U ; B 76 -23 654 729 ; C 86 ; WX 667 ; N V ; B 24 0 647 729 ; C 87 ; WX 944 ; N W ; B 13 0 932 729 ; C 88 ; WX 667 ; N X ; B 22 0 653 729 ; C 89 ; WX 667 ; N Y ; B 27 0 650 729 ; C 90 ; WX 611 ; N Z ; B 30 0 578 729 ; C 91 ; WX 333 ; N bracketleft ; B 66 -202 308 729 ; C 92 ; WX 278 ; N backslash ; B -12 -21 289 708 ; C 93 ; WX 333 ; N bracketright ; B 18 -202 260 729 ; C 94 ; WX 584 ; N asciicircum ; B 61 271 522 696 ; C 95 ; WX 556 ; N underscore ; B -22 -200 578 -130 ; C 96 ; WX 278 ; N quoteleft ; B 67 469 202 729 ; C 97 ; WX 556 ; N a ; B 27 -24 524 551 ; C 98 ; WX 611 ; N b ; B 59 -23 575 729 ; C 99 ; WX 556 ; N c ; B 34 -23 522 551 ; C 100 ; WX 611 ; N d ; B 29 -23 545 729 ; C 101 ; WX 556 ; N e ; B 22 -23 525 551 ; C 102 ; WX 333 ; N f ; B 14 0 313 729 ; C 103 ; WX 611 ; N g ; B 34 -220 541 551 ; C 104 ; WX 611 ; N h ; B 67 0 541 729 ; C 105 ; WX 278 ; N i ; B 67 0 207 729 ; C 106 ; WX 278 ; N j ; B 4 -219 210 729 ; C 107 ; WX 556 ; N k ; B 59 0 548 729 ; C 108 ; WX 278 ; N l ; B 67 0 207 729 ; C 109 ; WX 889 ; N m ; B 60 0 824 553 ; C 110 ; WX 611 ; N n ; B 63 0 546 551 ; C 111 ; WX 611 ; N o ; B 35 -23 569 551 ; C 112 ; WX 611 ; N p ; B 58 -219 574 551 ; C 113 ; WX 611 ; N q ; B 28 -219 544 551 ; C 114 ; WX 389 ; N r ; B 63 0 370 553 ; C 115 ; WX 556 ; N s ; B 29 -23 520 551 ; C 116 ; WX 333 ; N t ; B 14 -23 301 678 ; C 117 ; WX 611 ; N u ; B 58 -23 541 542 ; C 118 ; WX 556 ; N v ; B 14 0 536 542 ; C 119 ; WX 778 ; N w ; B 5 0 766 542 ; C 120 ; WX 556 ; N x ; B 16 0 535 542 ; C 121 ; WX 556 ; N y ; B 9 -219 538 542 ; C 122 ; WX 500 ; N z ; B 21 0 468 542 ; C 123 ; WX 389 ; N braceleft ; B 37 -202 317 729 ; C 124 ; WX 280 ; N bar ; B 100 -202 180 729 ; C 125 ; WX 389 ; N braceright ; B 72 -202 352 729 ; C 126 ; WX 584 ; N asciitilde ; B 60 144 519 322 ; C 161 ; WX 333 ; N exclamdown ; B 66 -187 216 542 ; C 162 ; WX 556 ; N cent ; B 37 -122 522 637 ; C 163 ; WX 556 ; N sterling ; B 31 -20 537 717 ; C 164 ; WX 167 ; N fraction ; B -173 -20 337 715 ; C 165 ; WX 556 ; N yen ; B 5 0 552 705 ; C 166 ; WX 556 ; N florin ; B 21 -221 535 745 ; C 167 ; WX 556 ; N section ; B 33 -201 518 728 ; C 168 ; WX 556 ; N currency ; B 26 105 530 604 ; C 169 ; WX 238 ; N quotesingle ; B 50 469 188 729 ; C 170 ; WX 500 ; N quotedblleft ; B 71 469 433 729 ; C 171 ; WX 556 ; N guillemotleft ; B 88 71 468 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 83 73 250 476 ; C 173 ; WX 333 ; N guilsinglright ; B 80 73 247 476 ; C 174 ; WX 611 ; N fi ; B 9 0 548 729 ; C 175 ; WX 611 ; N fl ; B 12 0 546 729 ; C 177 ; WX 556 ; N endash ; B -9 208 557 313 ; C 178 ; WX 556 ; N dagger ; B 31 -195 523 708 ; C 179 ; WX 556 ; N daggerdbl ; B 28 -195 520 708 ; C 180 ; WX 278 ; N periodcentered ; B 64 318 188 442 ; C 182 ; WX 556 ; N paragraph ; B 20 -195 529 729 ; C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; C 184 ; WX 278 ; N quotesinglbase ; B 66 -135 201 125 ; C 185 ; WX 500 ; N quotedblbase ; B 72 -164 432 141 ; C 186 ; WX 500 ; N quotedblright ; B 73 469 440 729 ; C 187 ; WX 556 ; N guillemotright ; B 88 71 462 482 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; C 189 ; WX 1000 ; N perthousand ; B 11 -20 990 745 ; C 191 ; WX 611 ; N questiondown ; B 51 -192 544 542 ; C 193 ; WX 333 ; N grave ; B 17 595 213 745 ; C 194 ; WX 333 ; N acute ; B 121 595 317 745 ; C 195 ; WX 333 ; N circumflex ; B 8 598 326 745 ; C 196 ; WX 333 ; N tilde ; B -9 595 345 729 ; C 197 ; WX 333 ; N macron ; B 16 629 315 717 ; C 198 ; WX 333 ; N breve ; B 35 593 299 736 ; C 199 ; WX 333 ; N dotaccent ; B 112 607 222 729 ; C 200 ; WX 333 ; N dieresis ; B 18 609 314 731 ; C 202 ; WX 333 ; N ring ; B 77 565 257 745 ; C 203 ; WX 333 ; N cedilla ; B 27 -220 294 -9 ; C 205 ; WX 333 ; N hungarumlaut ; B -44 595 340 745 ; C 206 ; WX 333 ; N ogonek ; B 45 -195 268 38 ; C 207 ; WX 333 ; N caron ; B 9 598 327 745 ; C 208 ; WX 1000 ; N emdash ; B -7 208 1003 313 ; C 225 ; WX 1000 ; N AE ; B 1 0 966 729 ; C 227 ; WX 370 ; N ordfeminine ; B 31 277 329 746 ; C 232 ; WX 611 ; N Lslash ; B 0 0 597 729 ; C 233 ; WX 778 ; N Oslash ; B 31 -34 755 754 ; C 234 ; WX 1000 ; N OE ; B 28 -20 970 741 ; C 235 ; WX 365 ; N ordmasculine ; B 23 276 343 745 ; C 241 ; WX 889 ; N ae ; B 27 -20 857 555 ; C 245 ; WX 278 ; N dotlessi ; B 67 0 207 542 ; C 248 ; WX 278 ; N lslash ; B 0 0 252 729 ; C 249 ; WX 611 ; N oslash ; B 11 -34 598 561 ; C 250 ; WX 944 ; N oe ; B 23 -21 920 554 ; C 251 ; WX 611 ; N germandbls ; B 67 -16 575 730 ; C -1 ; WX 722 ; N Aacute ; B 26 0 703 936 ; C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; C -1 ; WX 722 ; N Adieresis ; B 26 0 703 922 ; C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; C -1 ; WX 722 ; N Aring ; B 26 0 703 936 ; C -1 ; WX 722 ; N Atilde ; B 26 0 703 920 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -220 685 741 ; C -1 ; WX 667 ; N Eacute ; B 79 0 624 936 ; C -1 ; WX 667 ; N Ecircumflex ; B 79 0 624 936 ; C -1 ; WX 667 ; N Edieresis ; B 79 0 624 922 ; C -1 ; WX 667 ; N Egrave ; B 79 0 624 936 ; C -1 ; WX 722 ; N Eth ; B -18 0 681 729 ; C -1 ; WX 278 ; N Iacute ; B 63 0 290 936 ; C -1 ; WX 278 ; N Icircumflex ; B -19 0 299 936 ; C -1 ; WX 278 ; N Idieresis ; B -9 0 287 922 ; C -1 ; WX 278 ; N Igrave ; B -10 0 213 936 ; C -1 ; WX 722 ; N Ntilde ; B 68 0 661 920 ; C -1 ; WX 778 ; N Oacute ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Ocircumflex ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Odieresis ; B 40 -23 742 922 ; C -1 ; WX 778 ; N Ograve ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Otilde ; B 40 -23 742 920 ; C -1 ; WX 667 ; N Scaron ; B 32 -23 633 936 ; C -1 ; WX 667 ; N Thorn ; B 76 0 633 729 ; C -1 ; WX 722 ; N Uacute ; B 76 -23 654 936 ; C -1 ; WX 722 ; N Ucircumflex ; B 76 -23 654 936 ; C -1 ; WX 722 ; N Udieresis ; B 76 -23 654 922 ; C -1 ; WX 722 ; N Ugrave ; B 76 -23 654 936 ; C -1 ; WX 667 ; N Yacute ; B 27 0 650 932 ; C -1 ; WX 667 ; N Ydieresis ; B 27 0 650 922 ; C -1 ; WX 611 ; N Zcaron ; B 30 0 578 936 ; C -1 ; WX 556 ; N aacute ; B 27 -24 524 745 ; C -1 ; WX 556 ; N acircumflex ; B 27 -24 524 745 ; C -1 ; WX 556 ; N adieresis ; B 27 -24 524 731 ; C -1 ; WX 556 ; N agrave ; B 27 -24 524 745 ; C -1 ; WX 556 ; N aring ; B 27 -24 524 745 ; C -1 ; WX 556 ; N atilde ; B 27 -24 524 729 ; C -1 ; WX 280 ; N brokenbar ; B 100 -202 180 729 ; C -1 ; WX 556 ; N ccedilla ; B 34 -220 522 551 ; C -1 ; WX 737 ; N copyright ; B -14 -20 751 745 ; C -1 ; WX 400 ; N degree ; B 50 425 350 725 ; C -1 ; WX 584 ; N divide ; B 50 -10 534 474 ; C -1 ; WX 556 ; N eacute ; B 22 -23 525 745 ; C -1 ; WX 556 ; N ecircumflex ; B 22 -23 525 745 ; C -1 ; WX 556 ; N edieresis ; B 22 -23 525 731 ; C -1 ; WX 556 ; N egrave ; B 22 -23 525 745 ; C -1 ; WX 611 ; N eth ; B 35 -23 569 730 ; C -1 ; WX 278 ; N iacute ; B 67 0 290 745 ; C -1 ; WX 278 ; N icircumflex ; B -19 0 299 745 ; C -1 ; WX 278 ; N idieresis ; B -9 0 287 731 ; C -1 ; WX 278 ; N igrave ; B -10 0 207 745 ; C -1 ; WX 584 ; N logicalnot ; B 40 121 544 412 ; C -1 ; WX 584 ; N minus ; B 40 174 544 290 ; C -1 ; WX 611 ; N mu ; B 58 -219 541 542 ; C -1 ; WX 584 ; N multiply ; B 50 -10 534 474 ; C -1 ; WX 611 ; N ntilde ; B 63 0 546 729 ; C -1 ; WX 611 ; N oacute ; B 35 -23 569 745 ; C -1 ; WX 611 ; N ocircumflex ; B 35 -23 569 745 ; C -1 ; WX 611 ; N odieresis ; B 35 -23 569 731 ; C -1 ; WX 611 ; N ograve ; B 35 -23 569 745 ; C -1 ; WX 834 ; N onehalf ; B 30 -20 803 715 ; C -1 ; WX 834 ; N onequarter ; B 30 -20 804 715 ; C -1 ; WX 333 ; N onesuperior ; B 46 284 247 709 ; C -1 ; WX 611 ; N otilde ; B 35 -23 569 729 ; C -1 ; WX 584 ; N plusminus ; B 40 0 544 674 ; C -1 ; WX 737 ; N registered ; B -14 -20 751 745 ; C -1 ; WX 556 ; N scaron ; B 29 -23 520 745 ; C -1 ; WX 611 ; N thorn ; B 58 -219 574 729 ; C -1 ; WX 834 ; N threequarters ; B 30 -20 804 725 ; C -1 ; WX 333 ; N threesuperior ; B 8 271 325 720 ; C -1 ; WX 1000 ; N trademark ; B 71 341 929 745 ; C -1 ; WX 333 ; N twosuperior ; B 9 284 324 719 ; C -1 ; WX 611 ; N uacute ; B 58 -23 541 745 ; C -1 ; WX 611 ; N ucircumflex ; B 58 -23 541 745 ; C -1 ; WX 611 ; N udieresis ; B 58 -23 541 731 ; C -1 ; WX 611 ; N ugrave ; B 58 -23 541 745 ; C -1 ; WX 556 ; N yacute ; B 9 -219 538 745 ; C -1 ; WX 556 ; N ydieresis ; B 9 -219 538 731 ; C -1 ; WX 500 ; N zcaron ; B 21 0 468 745 ; C -1 ; WX 556 ; N abreve ; B 27 -24 524 736 ; C -1 ; WX 722 ; N Abreve ; B 26 0 703 938 ; C -1 ; WX 556 ; N aogonek ; B 27 -195 538 551 ; C -1 ; WX 722 ; N Aogonek ; B 26 -195 712 729 ; C -1 ; WX 556 ; N cacute ; B 34 -23 522 745 ; C -1 ; WX 722 ; N Cacute ; B 44 -23 685 938 ; C -1 ; WX 556 ; N ccaron ; B 34 -23 522 745 ; C -1 ; WX 722 ; N Ccaron ; B 44 -23 685 936 ; C -1 ; WX 611 ; N dbar ; B 29 -23 600 729 ; C -1 ; WX 722 ; N Dbar ; B -18 0 681 729 ; C -1 ; WX 611 ; N dcaron ; B 29 -23 694 802 ; C -1 ; WX 722 ; N Dcaron ; B 77 0 681 935 ; C -1 ; WX 556 ; N ecaron ; B 22 -23 525 745 ; C -1 ; WX 667 ; N Ecaron ; B 79 0 624 935 ; C -1 ; WX 556 ; N edotaccent ; B 22 -23 525 729 ; C -1 ; WX 667 ; N Edotaccent ; B 79 0 624 920 ; C -1 ; WX 556 ; N eogonek ; B 22 -195 525 551 ; C -1 ; WX 667 ; N Eogonek ; B 79 -195 624 729 ; C -1 ; WX 611 ; N gbreve ; B 34 -220 541 736 ; C -1 ; WX 778 ; N Gbreve ; B 42 -24 711 927 ; C -1 ; WX 278 ; N Idotaccent ; B 63 0 213 920 ; C -1 ; WX 278 ; N iogonek ; B 6 -195 229 729 ; C -1 ; WX 278 ; N Iogonek ; B 15 -195 238 729 ; C -1 ; WX 278 ; N lacute ; B 67 0 310 938 ; C -1 ; WX 611 ; N Lacute ; B 80 0 579 938 ; C -1 ; WX 278 ; N lcaron ; B 67 0 356 802 ; C -1 ; WX 611 ; N Lcaron ; B 80 0 579 802 ; C -1 ; WX 611 ; N nacute ; B 63 0 546 745 ; C -1 ; WX 722 ; N Nacute ; B 68 0 661 938 ; C -1 ; WX 611 ; N ncaron ; B 63 0 546 745 ; C -1 ; WX 722 ; N Ncaron ; B 68 0 661 960 ; C -1 ; WX 611 ; N ohungarumlaut ; B 35 -23 569 745 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 40 -23 742 936 ; C -1 ; WX 389 ; N racute ; B 63 0 370 745 ; C -1 ; WX 722 ; N Racute ; B 80 0 677 938 ; C -1 ; WX 389 ; N rcaron ; B 37 0 370 745 ; C -1 ; WX 722 ; N Rcaron ; B 80 0 677 935 ; C -1 ; WX 556 ; N sacute ; B 29 -23 520 745 ; C -1 ; WX 667 ; N Sacute ; B 32 -23 633 938 ; C -1 ; WX 556 ; N scedilla ; B 29 -220 520 551 ; C -1 ; WX 667 ; N Scedilla ; B 32 -220 633 741 ; C -1 ; WX 333 ; N tcaron ; B 14 -23 450 729 ; C -1 ; WX 611 ; N Tcaron ; B 14 0 598 935 ; C -1 ; WX 333 ; N tcedilla ; B 14 -220 380 678 ; C -1 ; WX 611 ; N Tcedilla ; B 14 -220 598 729 ; C -1 ; WX 611 ; N uhungarumlaut ; B 58 -23 541 745 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 76 -23 654 936 ; C -1 ; WX 611 ; N uring ; B 58 -23 541 745 ; C -1 ; WX 722 ; N Uring ; B 76 -23 654 935 ; C -1 ; WX 611 ; N umacron ; B 58 -23 541 717 ; C -1 ; WX 722 ; N Umacron ; B 76 -23 654 908 ; C -1 ; WX 611 ; N uogonek ; B 58 -195 554 542 ; C -1 ; WX 722 ; N Uogonek ; B 76 -195 654 729 ; C -1 ; WX 500 ; N zacute ; B 21 0 468 745 ; C -1 ; WX 611 ; N Zacute ; B 30 0 578 938 ; C -1 ; WX 500 ; N zdotaccent ; B 21 0 468 729 ; C -1 ; WX 611 ; N Zdotaccent ; B 30 0 578 935 ; EndCharMetrics EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvb-o.ps����������������������������������������������������������������������0000644�0000000�0000000�00000005654�14415562571�012752� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Helvetica-Bold-Ogonki /Helvetica-Bold /Helvetica-Bold-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Ydieresis [89 167 191 168] put dup /ydieresis [121 111 0 168] put dup /Ucircumflex [85 197 191 28] put dup /Ugrave [85 197 191 27] put dup /ucircumflex [117 139 0 28] put dup /ugrave [117 139 0 27] put dup /Idieresis [73 -27 191 168] put dup /Igrave [73 -27 191 27] put dup /idieresis [136 -27 0 168] put dup /igrave [136 -27 0 27] put dup /Ecircumflex [69 188 191 28] put dup /Egrave [69 188 191 27] put dup /ecircumflex [101 111 0 28] put dup /egrave [101 111 0 27] put dup /Agrave [65 197 191 27] put dup /agrave [97 111 0 27] put dup /Ograve [79 222 191 27] put dup /ograve [111 139 0 27] put dup /Atilde [65 197 191 29] put dup /atilde [97 111 0 29] put dup /Ntilde [78 200 191 29] put dup /ntilde [110 146 0 29] put dup /Otilde [79 222 191 29] put dup /otilde [111 139 0 29] put dup /Aring [65 197 191 31] put dup /aring [97 111 0 31] put dup /abreve [97 111 0 162] put dup /Abreve [65 194 202 162] put dup /aogonek [97 270 0 178] put dup /Aogonek [65 444 0 178] put dup /cacute [99 111 0 180] put dup /Cacute [67 194 193 180] put dup /ccaron [99 122 0 183] put dup /Ccaron [67 210 191 183] put dup /dbar [100 302 298 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 493 73 39] put dup /Dcaron [68 194 190 183] put dup /ecaron [101 111 0 183] put dup /Ecaron [69 167 190 183] put dup /edotaccent [101 103 0 255] put dup /Edotaccent [69 188 191 255] put dup /eogonek [101 150 0 178] put dup /Eogonek [69 290 0 178] put dup /gbreve [103 139 0 162] put dup /Gbreve [71 222 191 162] put dup /Idotaccent [73 -27 191 255] put dup /iogonek [105 -39 0 178] put dup /Iogonek [73 -30 0 178] put dup /lacute [108 -7 193 180] put dup /Lacute [76 139 193 180] put dup /lcaron [108 155 73 39] put dup /Lcaron [76 161 73 39] put dup /nacute [110 159 0 180] put dup /Nacute [78 231 193 180] put dup /ncaron [110 111 0 183] put dup /Ncaron [78 194 215 183] put dup /ohungarumlaut [111 139 0 189] put dup /Ohungarumlaut [79 222 191 189] put dup /racute [114 48 0 180] put dup /Racute [82 231 193 180] put dup /rcaron [114 28 0 183] put dup /Rcaron [82 194 190 183] put dup /sacute [115 111 0 180] put dup /Sacute [83 167 193 180] put dup /scedilla [115 111 0 184] put dup /Scedilla [83 167 0 184] put dup /tcaron [116 249 0 39] put dup /Tcaron [84 139 190 183] put dup /tcedilla [116 86 0 184] put dup /Tcedilla [84 197 0 184] put dup /uhungarumlaut [117 139 0 189] put dup /Uhungarumlaut [85 197 191 189] put dup /uring [117 139 0 31] put dup /Uring [85 194 190 31] put dup /umacron [117 139 0 30] put dup /Umacron [85 199 191 30] put dup /uogonek [117 286 0 178] put dup /Uogonek [85 260 0 178] put dup /zacute [122 103 0 180] put dup /Zacute [90 139 193 180] put dup /zdotaccent [122 83 0 255] put dup /Zdotaccent [90 139 206 255] put makeComposite %%EndResource ������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvb.afm�����������������������������������������������������������������������0000644�0000000�0000000�00000036123�14233473143�012624� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date:Sun Feb 8 19:34:17 PST 1987 FontName Helvetica-Bold EncodingScheme AdobeStandardEncoding FullName Helvetica Bold FamilyName Helvetica Weight Bold ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -106 UnderlineThickness 73 Version 001.002 Notice Helvetica is a registered trademark of Allied Corporation. FontBBox -173 -221 1003 936 CapHeight 729 XHeight 542 Descender -219 Ascender 729 StartCharMetrics 228 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 112 0 262 729 ; C 34 ; WX 474 ; N quotedbl ; B 50 470 424 729 ; C 35 ; WX 556 ; N numbersign ; B 3 -30 553 696 ; C 36 ; WX 556 ; N dollar ; B 22 -125 526 765 ; C 37 ; WX 889 ; N percent ; B 22 -18 863 708 ; C 38 ; WX 722 ; N ampersand ; B 55 -20 694 729 ; C 39 ; WX 278 ; N quoteright ; B 66 469 201 729 ; C 40 ; WX 333 ; N parenleft ; B 40 -202 303 729 ; C 41 ; WX 333 ; N parenright ; B 22 -202 285 729 ; C 42 ; WX 389 ; N asterisk ; B 23 385 356 730 ; C 43 ; WX 584 ; N plus ; B 50 -10 534 474 ; C 44 ; WX 278 ; N comma ; B 64 -174 214 146 ; C 45 ; WX 333 ; N hyphen ; B 26 208 298 344 ; C 46 ; WX 278 ; N period ; B 64 0 214 146 ; C 47 ; WX 278 ; N slash ; B 2 -14 275 715 ; C 48 ; WX 556 ; N zero ; B 29 -23 517 725 ; C 49 ; WX 556 ; N one ; B 68 0 378 709 ; C 50 ; WX 556 ; N two ; B 30 0 515 726 ; C 51 ; WX 556 ; N three ; B 29 -23 516 726 ; C 52 ; WX 556 ; N four ; B 24 0 522 709 ; C 53 ; WX 556 ; N five ; B 27 -24 517 709 ; C 54 ; WX 556 ; N six ; B 32 -23 519 727 ; C 55 ; WX 556 ; N seven ; B 29 0 528 709 ; C 56 ; WX 556 ; N eight ; B 22 -23 525 726 ; C 57 ; WX 556 ; N nine ; B 28 -23 516 728 ; C 58 ; WX 333 ; N colon ; B 113 0 263 521 ; C 59 ; WX 333 ; N semicolon ; B 113 -174 263 521 ; C 60 ; WX 584 ; N less ; B 40 -10 529 474 ; C 61 ; WX 584 ; N equal ; B 50 52 534 412 ; C 62 ; WX 584 ; N greater ; B 40 -10 529 474 ; C 63 ; WX 611 ; N question ; B 64 0 556 744 ; C 64 ; WX 975 ; N at ; B 27 -136 947 746 ; C 65 ; WX 722 ; N A ; B 26 0 703 729 ; C 66 ; WX 722 ; N B ; B 82 0 666 729 ; C 67 ; WX 722 ; N C ; B 44 -23 685 741 ; C 68 ; WX 722 ; N D ; B 77 0 681 729 ; C 69 ; WX 667 ; N E ; B 79 0 624 729 ; C 70 ; WX 611 ; N F ; B 74 0 586 729 ; C 71 ; WX 778 ; N G ; B 42 -24 711 741 ; C 72 ; WX 722 ; N H ; B 68 0 657 729 ; C 73 ; WX 278 ; N I ; B 63 0 213 729 ; C 74 ; WX 556 ; N J ; B 24 -23 486 729 ; C 75 ; WX 722 ; N K ; B 74 0 717 729 ; C 76 ; WX 611 ; N L ; B 80 0 579 729 ; C 77 ; WX 833 ; N M ; B 66 0 776 729 ; C 78 ; WX 722 ; N N ; B 68 0 661 729 ; C 79 ; WX 778 ; N O ; B 40 -23 742 741 ; C 80 ; WX 667 ; N P ; B 76 0 633 729 ; C 81 ; WX 778 ; N Q ; B 43 -54 745 741 ; C 82 ; WX 722 ; N R ; B 80 0 677 729 ; C 83 ; WX 667 ; N S ; B 32 -23 633 741 ; C 84 ; WX 611 ; N T ; B 14 0 598 729 ; C 85 ; WX 722 ; N U ; B 76 -23 654 729 ; C 86 ; WX 667 ; N V ; B 24 0 647 729 ; C 87 ; WX 944 ; N W ; B 13 0 932 729 ; C 88 ; WX 667 ; N X ; B 22 0 653 729 ; C 89 ; WX 667 ; N Y ; B 27 0 650 729 ; C 90 ; WX 611 ; N Z ; B 30 0 578 729 ; C 91 ; WX 333 ; N bracketleft ; B 66 -202 308 729 ; C 92 ; WX 278 ; N backslash ; B -12 -21 289 708 ; C 93 ; WX 333 ; N bracketright ; B 18 -202 260 729 ; C 94 ; WX 584 ; N asciicircum ; B 61 271 522 696 ; C 95 ; WX 556 ; N underscore ; B -22 -200 578 -130 ; C 96 ; WX 278 ; N quoteleft ; B 67 469 202 729 ; C 97 ; WX 556 ; N a ; B 27 -24 524 551 ; C 98 ; WX 611 ; N b ; B 59 -23 575 729 ; C 99 ; WX 556 ; N c ; B 34 -23 522 551 ; C 100 ; WX 611 ; N d ; B 29 -23 545 729 ; C 101 ; WX 556 ; N e ; B 22 -23 525 551 ; C 102 ; WX 333 ; N f ; B 14 0 313 729 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B 34 -220 541 551 ; C 104 ; WX 611 ; N h ; B 67 0 541 729 ; C 105 ; WX 278 ; N i ; B 67 0 207 729 ; C 106 ; WX 278 ; N j ; B 4 -219 210 729 ; C 107 ; WX 556 ; N k ; B 59 0 548 729 ; C 108 ; WX 278 ; N l ; B 67 0 207 729 ; C 109 ; WX 889 ; N m ; B 60 0 824 553 ; C 110 ; WX 611 ; N n ; B 63 0 546 551 ; C 111 ; WX 611 ; N o ; B 35 -23 569 551 ; C 112 ; WX 611 ; N p ; B 58 -219 574 551 ; C 113 ; WX 611 ; N q ; B 28 -219 544 551 ; C 114 ; WX 389 ; N r ; B 63 0 370 553 ; C 115 ; WX 556 ; N s ; B 29 -23 520 551 ; C 116 ; WX 333 ; N t ; B 14 -23 301 678 ; C 117 ; WX 611 ; N u ; B 58 -23 541 542 ; C 118 ; WX 556 ; N v ; B 14 0 536 542 ; C 119 ; WX 778 ; N w ; B 5 0 766 542 ; C 120 ; WX 556 ; N x ; B 16 0 535 542 ; C 121 ; WX 556 ; N y ; B 9 -219 538 542 ; C 122 ; WX 500 ; N z ; B 21 0 468 542 ; C 123 ; WX 389 ; N braceleft ; B 37 -202 317 729 ; C 124 ; WX 280 ; N bar ; B 100 -202 180 729 ; C 125 ; WX 389 ; N braceright ; B 72 -202 352 729 ; C 126 ; WX 584 ; N asciitilde ; B 60 144 519 322 ; C 161 ; WX 333 ; N exclamdown ; B 66 -187 216 542 ; C 162 ; WX 556 ; N cent ; B 37 -122 522 637 ; C 163 ; WX 556 ; N sterling ; B 31 -20 537 717 ; C 164 ; WX 167 ; N fraction ; B -173 -20 337 715 ; C 165 ; WX 556 ; N yen ; B 5 0 552 705 ; C 166 ; WX 556 ; N florin ; B 21 -221 535 745 ; C 167 ; WX 556 ; N section ; B 33 -201 518 728 ; C 168 ; WX 556 ; N currency ; B 26 105 530 604 ; C 169 ; WX 238 ; N quotesingle ; B 50 469 188 729 ; C 170 ; WX 500 ; N quotedblleft ; B 71 469 433 729 ; C 171 ; WX 556 ; N guillemotleft ; B 88 71 468 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 83 73 250 476 ; C 173 ; WX 333 ; N guilsinglright ; B 80 73 247 476 ; C 174 ; WX 611 ; N fi ; B 9 0 548 729 ; C 175 ; WX 611 ; N fl ; B 12 0 546 729 ; C 177 ; WX 556 ; N endash ; B -9 208 557 313 ; C 178 ; WX 556 ; N dagger ; B 31 -195 523 708 ; C 179 ; WX 556 ; N daggerdbl ; B 28 -195 520 708 ; C 180 ; WX 278 ; N periodcentered ; B 64 318 188 442 ; C 182 ; WX 556 ; N paragraph ; B 20 -195 529 729 ; C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; C 184 ; WX 278 ; N quotesinglbase ; B 66 -135 201 125 ; C 185 ; WX 500 ; N quotedblbase ; B 72 -164 432 141 ; C 186 ; WX 500 ; N quotedblright ; B 73 469 440 729 ; C 187 ; WX 556 ; N guillemotright ; B 88 71 462 482 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; C 189 ; WX 1000 ; N perthousand ; B 11 -20 990 745 ; C 191 ; WX 611 ; N questiondown ; B 51 -192 544 542 ; C 193 ; WX 333 ; N grave ; B 17 595 213 745 ; C 194 ; WX 333 ; N acute ; B 121 595 317 745 ; C 195 ; WX 333 ; N circumflex ; B 8 598 326 745 ; C 196 ; WX 333 ; N tilde ; B -9 595 345 729 ; C 197 ; WX 333 ; N macron ; B 16 629 315 717 ; C 198 ; WX 333 ; N breve ; B 35 593 299 736 ; C 199 ; WX 333 ; N dotaccent ; B 112 607 222 729 ; C 200 ; WX 333 ; N dieresis ; B 18 609 314 731 ; C 202 ; WX 333 ; N ring ; B 77 565 257 745 ; C 203 ; WX 333 ; N cedilla ; B 27 -220 294 -9 ; C 205 ; WX 333 ; N hungarumlaut ; B -44 595 340 745 ; C 206 ; WX 333 ; N ogonek ; B 45 -195 268 38 ; C 207 ; WX 333 ; N caron ; B 9 598 327 745 ; C 208 ; WX 1000 ; N emdash ; B -7 208 1003 313 ; C 225 ; WX 1000 ; N AE ; B 1 0 966 729 ; C 227 ; WX 370 ; N ordfeminine ; B 31 277 329 746 ; C 232 ; WX 611 ; N Lslash ; B 0 0 597 729 ; C 233 ; WX 778 ; N Oslash ; B 31 -34 755 754 ; C 234 ; WX 1000 ; N OE ; B 28 -20 970 741 ; C 235 ; WX 365 ; N ordmasculine ; B 23 276 343 745 ; C 241 ; WX 889 ; N ae ; B 27 -20 857 555 ; C 245 ; WX 278 ; N dotlessi ; B 67 0 207 542 ; C 248 ; WX 278 ; N lslash ; B 0 0 252 729 ; C 249 ; WX 611 ; N oslash ; B 11 -34 598 561 ; C 250 ; WX 944 ; N oe ; B 23 -21 920 554 ; C 251 ; WX 611 ; N germandbls ; B 67 -16 575 730 ; C -1 ; WX 722 ; N Aacute ; B 26 0 703 936 ; C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; C -1 ; WX 722 ; N Adieresis ; B 26 0 703 922 ; C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; C -1 ; WX 722 ; N Aring ; B 26 0 703 936 ; C -1 ; WX 722 ; N Atilde ; B 26 0 703 920 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -220 685 741 ; C -1 ; WX 667 ; N Eacute ; B 79 0 624 936 ; C -1 ; WX 667 ; N Ecircumflex ; B 79 0 624 936 ; C -1 ; WX 667 ; N Edieresis ; B 79 0 624 922 ; C -1 ; WX 667 ; N Egrave ; B 79 0 624 936 ; C -1 ; WX 722 ; N Eth ; B -18 0 681 729 ; C -1 ; WX 278 ; N Iacute ; B 63 0 290 936 ; C -1 ; WX 278 ; N Icircumflex ; B -19 0 299 936 ; C -1 ; WX 278 ; N Idieresis ; B -9 0 287 922 ; C -1 ; WX 278 ; N Igrave ; B -10 0 213 936 ; C -1 ; WX 722 ; N Ntilde ; B 68 0 661 920 ; C -1 ; WX 778 ; N Oacute ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Ocircumflex ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Odieresis ; B 40 -23 742 922 ; C -1 ; WX 778 ; N Ograve ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Otilde ; B 40 -23 742 920 ; C -1 ; WX 667 ; N Scaron ; B 32 -23 633 936 ; C -1 ; WX 667 ; N Thorn ; B 76 0 633 729 ; C -1 ; WX 722 ; N Uacute ; B 76 -23 654 936 ; C -1 ; WX 722 ; N Ucircumflex ; B 76 -23 654 936 ; C -1 ; WX 722 ; N Udieresis ; B 76 -23 654 922 ; C -1 ; WX 722 ; N Ugrave ; B 76 -23 654 936 ; C -1 ; WX 667 ; N Yacute ; B 27 0 650 932 ; C -1 ; WX 667 ; N Ydieresis ; B 27 0 650 922 ; C -1 ; WX 611 ; N Zcaron ; B 30 0 578 936 ; C -1 ; WX 556 ; N aacute ; B 27 -24 524 745 ; C -1 ; WX 556 ; N acircumflex ; B 27 -24 524 745 ; C -1 ; WX 556 ; N adieresis ; B 27 -24 524 731 ; C -1 ; WX 556 ; N agrave ; B 27 -24 524 745 ; C -1 ; WX 556 ; N aring ; B 27 -24 524 745 ; C -1 ; WX 556 ; N atilde ; B 27 -24 524 729 ; C -1 ; WX 280 ; N brokenbar ; B 100 -202 180 729 ; C -1 ; WX 556 ; N ccedilla ; B 34 -220 522 551 ; C -1 ; WX 737 ; N copyright ; B -14 -20 751 745 ; C -1 ; WX 400 ; N degree ; B 50 425 350 725 ; C -1 ; WX 584 ; N divide ; B 50 -10 534 474 ; C -1 ; WX 556 ; N eacute ; B 22 -23 525 745 ; C -1 ; WX 556 ; N ecircumflex ; B 22 -23 525 745 ; C -1 ; WX 556 ; N edieresis ; B 22 -23 525 731 ; C -1 ; WX 556 ; N egrave ; B 22 -23 525 745 ; C -1 ; WX 611 ; N eth ; B 35 -23 569 730 ; C -1 ; WX 278 ; N iacute ; B 67 0 290 745 ; C -1 ; WX 278 ; N icircumflex ; B -19 0 299 745 ; C -1 ; WX 278 ; N idieresis ; B -9 0 287 731 ; C -1 ; WX 278 ; N igrave ; B -10 0 207 745 ; C -1 ; WX 584 ; N logicalnot ; B 40 121 544 412 ; C -1 ; WX 584 ; N minus ; B 40 174 544 290 ; C -1 ; WX 611 ; N mu ; B 58 -219 541 542 ; C -1 ; WX 584 ; N multiply ; B 50 -10 534 474 ; C -1 ; WX 611 ; N ntilde ; B 63 0 546 729 ; C -1 ; WX 611 ; N oacute ; B 35 -23 569 745 ; C -1 ; WX 611 ; N ocircumflex ; B 35 -23 569 745 ; C -1 ; WX 611 ; N odieresis ; B 35 -23 569 731 ; C -1 ; WX 611 ; N ograve ; B 35 -23 569 745 ; C -1 ; WX 834 ; N onehalf ; B 30 -20 803 715 ; C -1 ; WX 834 ; N onequarter ; B 30 -20 804 715 ; C -1 ; WX 333 ; N onesuperior ; B 46 284 247 709 ; C -1 ; WX 611 ; N otilde ; B 35 -23 569 729 ; C -1 ; WX 584 ; N plusminus ; B 40 0 544 674 ; C -1 ; WX 737 ; N registered ; B -14 -20 751 745 ; C -1 ; WX 556 ; N scaron ; B 29 -23 520 745 ; C -1 ; WX 611 ; N thorn ; B 58 -219 574 729 ; C -1 ; WX 834 ; N threequarters ; B 30 -20 804 725 ; C -1 ; WX 333 ; N threesuperior ; B 8 271 325 720 ; C -1 ; WX 1000 ; N trademark ; B 71 341 929 745 ; C -1 ; WX 333 ; N twosuperior ; B 9 284 324 719 ; C -1 ; WX 611 ; N uacute ; B 58 -23 541 745 ; C -1 ; WX 611 ; N ucircumflex ; B 58 -23 541 745 ; C -1 ; WX 611 ; N udieresis ; B 58 -23 541 731 ; C -1 ; WX 611 ; N ugrave ; B 58 -23 541 745 ; C -1 ; WX 556 ; N yacute ; B 9 -219 538 745 ; C -1 ; WX 556 ; N ydieresis ; B 9 -219 538 731 ; C -1 ; WX 500 ; N zcaron ; B 21 0 468 745 ; EndCharMetrics StartKernData StartKernPairs 101 KPX A y -37 KPX A w -18 KPX A v -37 KPX A space -37 KPX A quoteright -55 KPX A Y -92 KPX A W -55 KPX A V -74 KPX A T -74 KPX F period -111 KPX F comma -111 KPX F A -55 KPX L y -37 KPX L space -18 KPX L quoteright -55 KPX L Y -92 KPX L W -55 KPX L V -74 KPX L T -74 KPX P space -18 KPX P period -129 KPX P comma -129 KPX P A -74 KPX R Y -37 KPX R W -18 KPX R V -18 KPX T y -74 KPX T w -74 KPX T u -74 KPX T semicolon -111 KPX T s -74 KPX T r -55 KPX T period -111 KPX T o -74 KPX T i -18 KPX T hyphen -55 KPX T e -74 KPX T comma -111 KPX T colon -111 KPX T c -74 KPX T a -74 KPX T O -18 KPX T A -74 KPX V y -37 KPX V u -37 KPX V semicolon -55 KPX V r -55 KPX V period -92 KPX V o -74 KPX V i -18 KPX V hyphen -55 KPX V e -55 KPX V comma -92 KPX V colon -55 KPX V a -55 KPX V A -74 KPX W y -18 KPX W u -18 KPX W semicolon -18 KPX W r -18 KPX W period -55 KPX W o -18 KPX W i -9 KPX W hyphen -20 KPX W e -18 KPX W comma -55 KPX W colon -18 KPX W a -37 KPX W A -55 KPX Y v -55 KPX Y u -55 KPX Y space -18 KPX Y semicolon -74 KPX Y q -74 KPX Y period -111 KPX Y p -55 KPX Y o -74 KPX Y i -37 KPX Y hyphen -55 KPX Y e -55 KPX Y comma -111 KPX Y colon -74 KPX Y a -55 KPX Y A -92 KPX f quoteright 18 KPX one one -55 KPX quoteleft quoteleft -37 KPX quoteright space -55 KPX quoteright s -37 KPX quoteright quoteright -37 KPX r quoteright 37 KPX r period -55 KPX r comma -55 KPX space Y -18 KPX space A -37 KPX v period -74 KPX v comma -74 KPX w period -37 KPX w comma -37 KPX y period -74 KPX y comma -74 EndKernPairs EndKernData StartComposites 58 CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 191 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 191 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 111 0 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 207 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 117 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 187 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 111 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 191 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 197 191 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 197 191 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 197 191 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 197 191 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 191 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 191 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 191 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 191 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 188 191 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 188 191 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 188 191 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 188 191 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 197 191 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 197 191 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 197 191 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 197 191 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 191 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 191 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 191 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 191 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 197 191 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 200 191 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 146 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 191 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 197 191 ; CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; EndComposites EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvbo-c.afm��������������������������������������������������������������������0000644�0000000�0000000�00000005361�14251171641�013221� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 FontName Helvetica-BoldOblique-Comp StartComposites 57 CC abreve 2 ; PCC a 0 0 ; PCC breve 111 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 236 202 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 270 0 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 440 0 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 111 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 235 193 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 122 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 257 187 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 383 298 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 553 73 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 234 190 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 207 190 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 102 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 215 187 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 150 0 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 290 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 139 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 222 187 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 27 187 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek -35 0 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek -48 0 ; CC lacute 2 ; PCC l 0 0 ; PCC acute 37 193 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute 180 193 ; CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 215 73 ; CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 221 73 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 162 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 278 193 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 234 190 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 139 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 222 187 ; CC racute 2 ; PCC r 0 0 ; PCC acute 51 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 278 193 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 234 190 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 111 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 208 193 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 111 0 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 167 0 ; CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 267 0 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 179 190 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 94 0 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 200 0 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 139 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 194 187 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 135 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 242 187 ; CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 234 190 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 283 0 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 257 0 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 106 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 180 193 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 83 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 182 206 ; EndComposites EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvbo-o.afm��������������������������������������������������������������������0000644�0000000�0000000�00000032253�14415562571�013245� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Helvetica-BoldOblique-Ogonki EncodingScheme StandardEncoding FullName Helvetica-BoldOblique-Ogonki Composite font FontBBox -177 -221 1107 936 StartCharMetrics 285 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 112 0 417 729 ; C 34 ; WX 474 ; N quotedbl ; B 177 470 579 729 ; C 35 ; WX 556 ; N numbersign ; B 33 -30 660 696 ; C 36 ; WX 556 ; N dollar ; B 59 -125 628 765 ; C 37 ; WX 889 ; N percent ; B 129 -18 903 708 ; C 38 ; WX 722 ; N ampersand ; B 89 -20 720 729 ; C 39 ; WX 278 ; N quoteright ; B 166 469 356 729 ; C 40 ; WX 333 ; N parenleft ; B 84 -202 458 729 ; C 41 ; WX 333 ; N parenright ; B -21 -202 356 729 ; C 42 ; WX 389 ; N asterisk ; B 145 385 478 730 ; C 43 ; WX 584 ; N plus ; B 87 -10 596 474 ; C 44 ; WX 278 ; N comma ; B 27 -174 245 146 ; C 45 ; WX 333 ; N hyphen ; B 70 208 371 344 ; C 46 ; WX 278 ; N period ; B 64 0 245 146 ; C 47 ; WX 278 ; N slash ; B -1 -14 427 715 ; C 48 ; WX 556 ; N zero ; B 81 -23 614 725 ; C 49 ; WX 556 ; N one ; B 172 0 529 709 ; C 50 ; WX 556 ; N two ; B 30 0 628 726 ; C 51 ; WX 556 ; N three ; B 67 -23 613 726 ; C 52 ; WX 556 ; N four ; B 57 0 599 709 ; C 53 ; WX 556 ; N five ; B 59 -24 641 709 ; C 54 ; WX 556 ; N six ; B 85 -23 625 727 ; C 55 ; WX 556 ; N seven ; B 131 0 679 709 ; C 56 ; WX 556 ; N eight ; B 60 -23 620 726 ; C 57 ; WX 556 ; N nine ; B 68 -23 611 728 ; C 58 ; WX 333 ; N colon ; B 113 0 374 521 ; C 59 ; WX 333 ; N semicolon ; B 76 -174 374 521 ; C 60 ; WX 584 ; N less ; B 77 -10 630 474 ; C 61 ; WX 584 ; N equal ; B 61 52 622 412 ; C 62 ; WX 584 ; N greater ; B 38 -10 591 474 ; C 63 ; WX 611 ; N question ; B 168 0 672 744 ; C 64 ; WX 975 ; N at ; B 73 -136 1032 746 ; C 65 ; WX 722 ; N A ; B 26 0 703 729 ; C 66 ; WX 722 ; N B ; B 82 0 762 729 ; C 67 ; WX 722 ; N C ; B 107 -23 793 741 ; C 68 ; WX 722 ; N D ; B 77 0 776 729 ; C 69 ; WX 667 ; N E ; B 79 0 762 729 ; C 70 ; WX 611 ; N F ; B 74 0 741 729 ; C 71 ; WX 778 ; N G ; B 107 -24 819 741 ; C 72 ; WX 722 ; N H ; B 68 0 812 729 ; C 73 ; WX 278 ; N I ; B 63 0 368 729 ; C 74 ; WX 556 ; N J ; B 59 -23 641 729 ; C 75 ; WX 722 ; N K ; B 74 0 843 729 ; C 76 ; WX 611 ; N L ; B 80 0 606 729 ; C 77 ; WX 833 ; N M ; B 66 0 931 729 ; C 78 ; WX 722 ; N N ; B 68 0 816 729 ; C 79 ; WX 778 ; N O ; B 106 -23 828 741 ; C 80 ; WX 667 ; N P ; B 76 0 747 729 ; C 81 ; WX 778 ; N Q ; B 109 -54 831 741 ; C 82 ; WX 722 ; N R ; B 80 0 785 729 ; C 83 ; WX 667 ; N S ; B 76 -23 725 741 ; C 84 ; WX 611 ; N T ; B 142 0 753 729 ; C 85 ; WX 722 ; N U ; B 119 -23 809 729 ; C 86 ; WX 667 ; N V ; B 179 0 802 729 ; C 87 ; WX 944 ; N W ; B 168 0 1087 729 ; C 88 ; WX 667 ; N X ; B 22 0 802 729 ; C 89 ; WX 667 ; N Y ; B 182 0 805 729 ; C 90 ; WX 611 ; N Z ; B 30 0 733 729 ; C 91 ; WX 333 ; N bracketleft ; B 23 -202 463 729 ; C 92 ; WX 278 ; N backslash ; B 138 -21 285 708 ; C 93 ; WX 333 ; N bracketright ; B -25 -202 415 729 ; C 94 ; WX 584 ; N asciicircum ; B 119 271 580 696 ; C 95 ; WX 556 ; N underscore ; B -65 -200 550 -130 ; C 96 ; WX 278 ; N quoteleft ; B 167 469 357 729 ; C 97 ; WX 556 ; N a ; B 50 -24 578 551 ; C 98 ; WX 611 ; N b ; B 59 -23 640 729 ; C 99 ; WX 556 ; N c ; B 77 -23 597 551 ; C 100 ; WX 611 ; N d ; B 79 -23 700 729 ; C 101 ; WX 556 ; N e ; B 64 -23 591 551 ; C 102 ; WX 333 ; N f ; B 90 0 464 729 ; C 103 ; WX 611 ; N g ; B 26 -220 656 551 ; C 104 ; WX 611 ; N h ; B 67 0 629 729 ; C 105 ; WX 278 ; N i ; B 67 0 362 729 ; C 106 ; WX 278 ; N j ; B -43 -219 365 729 ; C 107 ; WX 556 ; N k ; B 59 0 651 729 ; C 108 ; WX 278 ; N l ; B 67 0 362 729 ; C 109 ; WX 889 ; N m ; B 60 0 911 553 ; C 110 ; WX 611 ; N n ; B 63 0 629 551 ; C 111 ; WX 611 ; N o ; B 82 -23 634 551 ; C 112 ; WX 611 ; N p ; B 11 -219 637 551 ; C 113 ; WX 611 ; N q ; B 72 -219 659 551 ; C 114 ; WX 389 ; N r ; B 63 0 487 553 ; C 115 ; WX 556 ; N s ; B 60 -23 589 551 ; C 116 ; WX 333 ; N t ; B 101 -23 414 678 ; C 117 ; WX 611 ; N u ; B 88 -23 656 542 ; C 118 ; WX 556 ; N v ; B 129 0 651 542 ; C 119 ; WX 778 ; N w ; B 120 0 881 542 ; C 120 ; WX 556 ; N x ; B 16 0 648 542 ; C 121 ; WX 556 ; N y ; B 37 -219 653 542 ; C 122 ; WX 500 ; N z ; B 21 0 575 542 ; C 123 ; WX 389 ; N braceleft ; B 84 -202 472 729 ; C 124 ; WX 280 ; N bar ; B 57 -202 335 729 ; C 125 ; WX 389 ; N braceright ; B 29 -202 419 729 ; C 126 ; WX 584 ; N asciitilde ; B 97 144 581 322 ; C 161 ; WX 333 ; N exclamdown ; B 26 -187 331 542 ; C 162 ; WX 556 ; N cent ; B 79 -122 598 637 ; C 163 ; WX 556 ; N sterling ; B 49 -20 629 717 ; C 164 ; WX 167 ; N fraction ; B -177 -20 489 715 ; C 165 ; WX 556 ; N yen ; B 107 0 702 705 ; C 166 ; WX 556 ; N florin ; B -21 -221 690 745 ; C 167 ; WX 556 ; N section ; B 56 -201 596 728 ; C 168 ; WX 556 ; N currency ; B 66 105 644 604 ; C 169 ; WX 238 ; N quotesingle ; B 177 469 343 729 ; C 170 ; WX 500 ; N quotedblleft ; B 171 469 588 729 ; C 171 ; WX 556 ; N guillemotleft ; B 135 71 571 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 128 73 351 476 ; C 173 ; WX 333 ; N guilsinglright ; B 96 73 319 476 ; C 174 ; WX 611 ; N fi ; B 85 0 703 729 ; C 175 ; WX 611 ; N fl ; B 88 0 701 729 ; C 177 ; WX 556 ; N endash ; B 35 208 624 313 ; C 178 ; WX 556 ; N dagger ; B 109 -195 626 708 ; C 179 ; WX 556 ; N daggerdbl ; B 35 -195 623 708 ; C 180 ; WX 278 ; N periodcentered ; B 143 318 270 442 ; C 182 ; WX 556 ; N paragraph ; B 121 -195 684 729 ; C 183 ; WX 350 ; N bullet ; B 111 175 367 425 ; C 184 ; WX 278 ; N quotesinglbase ; B 37 -135 228 125 ; C 185 ; WX 500 ; N quotedblbase ; B 37 -164 462 141 ; C 186 ; WX 500 ; N quotedblright ; B 173 469 595 729 ; C 187 ; WX 556 ; N guillemotright ; B 103 71 533 482 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; C 189 ; WX 1000 ; N perthousand ; B 72 -20 1021 745 ; C 191 ; WX 611 ; N questiondown ; B 52 -192 556 542 ; C 193 ; WX 333 ; N grave ; B 175 595 339 745 ; C 194 ; WX 333 ; N acute ; B 247 595 475 745 ; C 195 ; WX 333 ; N circumflex ; B 135 598 453 745 ; C 196 ; WX 333 ; N tilde ; B 117 595 500 729 ; C 197 ; WX 333 ; N macron ; B 150 629 467 717 ; C 198 ; WX 333 ; N breve ; B 188 593 455 736 ; C 199 ; WX 333 ; N dotaccent ; B 241 607 377 729 ; C 200 ; WX 333 ; N dieresis ; B 147 609 469 731 ; C 202 ; WX 333 ; N ring ; B 214 565 398 745 ; C 203 ; WX 333 ; N cedilla ; B -13 -220 270 -9 ; C 205 ; WX 333 ; N hungarumlaut ; B 82 595 498 745 ; C 206 ; WX 333 ; N ogonek ; B 23 -195 248 38 ; C 207 ; WX 333 ; N caron ; B 167 598 485 745 ; C 208 ; WX 1000 ; N emdash ; B 37 208 1070 313 ; C 225 ; WX 1000 ; N AE ; B 1 0 1104 729 ; C 227 ; WX 370 ; N ordfeminine ; B 96 277 451 746 ; C 232 ; WX 611 ; N Lslash ; B 54 0 624 729 ; C 233 ; WX 778 ; N Oslash ; B 34 -34 906 754 ; C 234 ; WX 1000 ; N OE ; B 90 -20 1107 741 ; C 235 ; WX 365 ; N ordmasculine ; B 92 276 471 745 ; C 241 ; WX 889 ; N ae ; B 54 -20 927 555 ; C 245 ; WX 278 ; N dotlessi ; B 67 0 322 542 ; C 248 ; WX 278 ; N lslash ; B 50 0 372 729 ; C 249 ; WX 611 ; N oslash ; B 12 -34 709 561 ; C 250 ; WX 944 ; N oe ; B 71 -21 986 554 ; C 251 ; WX 611 ; N germandbls ; B 67 -16 654 730 ; C -1 ; WX 722 ; N Aacute ; B 26 0 714 936 ; C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; C -1 ; WX 722 ; N Adieresis ; B 26 0 708 922 ; C -1 ; WX 722 ; N Agrave ; B 26 0 703 932 ; C -1 ; WX 722 ; N Aring ; B 26 0 703 932 ; C -1 ; WX 722 ; N Atilde ; B 26 0 703 916 ; C -1 ; WX 722 ; N Ccedilla ; B 107 -220 793 741 ; C -1 ; WX 667 ; N Eacute ; B 79 0 762 936 ; C -1 ; WX 667 ; N Ecircumflex ; B 79 0 762 932 ; C -1 ; WX 667 ; N Edieresis ; B 79 0 762 922 ; C -1 ; WX 667 ; N Egrave ; B 79 0 762 932 ; C -1 ; WX 722 ; N Eth ; B 53 0 776 729 ; C -1 ; WX 278 ; N Iacute ; B 63 0 489 936 ; C -1 ; WX 278 ; N Icircumflex ; B 63 0 467 936 ; C -1 ; WX 278 ; N Idieresis ; B 63 0 442 918 ; C -1 ; WX 278 ; N Igrave ; B 63 0 368 932 ; C -1 ; WX 722 ; N Ntilde ; B 68 0 816 916 ; C -1 ; WX 778 ; N Oacute ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Ocircumflex ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Odieresis ; B 106 -23 828 922 ; C -1 ; WX 778 ; N Ograve ; B 106 -23 828 932 ; C -1 ; WX 778 ; N Otilde ; B 106 -23 828 916 ; C -1 ; WX 667 ; N Scaron ; B 76 -23 725 936 ; C -1 ; WX 667 ; N Thorn ; B 76 0 730 729 ; C -1 ; WX 722 ; N Uacute ; B 119 -23 809 936 ; C -1 ; WX 722 ; N Ucircumflex ; B 119 -23 809 932 ; C -1 ; WX 722 ; N Udieresis ; B 119 -23 809 922 ; C -1 ; WX 722 ; N Ugrave ; B 119 -23 809 932 ; C -1 ; WX 667 ; N Yacute ; B 182 0 805 932 ; C -1 ; WX 667 ; N Ydieresis ; B 182 0 805 918 ; C -1 ; WX 611 ; N Zcaron ; B 30 0 733 936 ; C -1 ; WX 556 ; N aacute ; B 50 -24 587 745 ; C -1 ; WX 556 ; N acircumflex ; B 50 -24 578 745 ; C -1 ; WX 556 ; N adieresis ; B 50 -24 581 731 ; C -1 ; WX 556 ; N agrave ; B 50 -24 578 745 ; C -1 ; WX 556 ; N aring ; B 50 -24 578 745 ; C -1 ; WX 556 ; N atilde ; B 50 -24 611 729 ; C -1 ; WX 280 ; N brokenbar ; B 57 -202 335 729 ; C -1 ; WX 556 ; N ccedilla ; B 77 -220 597 551 ; C -1 ; WX 737 ; N copyright ; B 54 -20 837 745 ; C -1 ; WX 400 ; N degree ; B 169 425 476 725 ; C -1 ; WX 584 ; N divide ; B 87 -10 596 474 ; C -1 ; WX 556 ; N eacute ; B 64 -23 591 745 ; C -1 ; WX 556 ; N ecircumflex ; B 64 -23 591 745 ; C -1 ; WX 556 ; N edieresis ; B 64 -23 591 731 ; C -1 ; WX 556 ; N egrave ; B 64 -23 591 745 ; C -1 ; WX 611 ; N eth ; B 82 -23 633 730 ; C -1 ; WX 278 ; N iacute ; B 67 0 448 745 ; C -1 ; WX 278 ; N icircumflex ; B 67 0 426 745 ; C -1 ; WX 278 ; N idieresis ; B 67 0 442 731 ; C -1 ; WX 278 ; N igrave ; B 67 0 322 745 ; C -1 ; WX 584 ; N logicalnot ; B 103 121 632 412 ; C -1 ; WX 584 ; N minus ; B 77 174 606 290 ; C -1 ; WX 611 ; N mu ; B 11 -219 656 542 ; C -1 ; WX 584 ; N multiply ; B 66 -10 617 474 ; C -1 ; WX 611 ; N ntilde ; B 63 0 639 729 ; C -1 ; WX 611 ; N oacute ; B 82 -23 634 745 ; C -1 ; WX 611 ; N ocircumflex ; B 82 -23 634 745 ; C -1 ; WX 611 ; N odieresis ; B 82 -23 634 731 ; C -1 ; WX 611 ; N ograve ; B 82 -23 634 745 ; C -1 ; WX 834 ; N onehalf ; B 120 -20 871 715 ; C -1 ; WX 834 ; N onequarter ; B 151 -20 846 715 ; C -1 ; WX 333 ; N onesuperior ; B 169 284 398 709 ; C -1 ; WX 611 ; N otilde ; B 82 -23 639 729 ; C -1 ; WX 584 ; N plusminus ; B 40 0 639 674 ; C -1 ; WX 737 ; N registered ; B 55 -20 837 745 ; C -1 ; WX 556 ; N scaron ; B 60 -23 597 745 ; C -1 ; WX 611 ; N thorn ; B 11 -219 641 729 ; C -1 ; WX 834 ; N threequarters ; B 116 -20 863 725 ; C -1 ; WX 333 ; N threesuperior ; B 92 271 442 720 ; C -1 ; WX 1000 ; N trademark ; B 213 341 1087 745 ; C -1 ; WX 333 ; N twosuperior ; B 69 284 452 719 ; C -1 ; WX 611 ; N uacute ; B 88 -23 656 745 ; C -1 ; WX 611 ; N ucircumflex ; B 88 -23 656 745 ; C -1 ; WX 611 ; N udieresis ; B 88 -23 656 731 ; C -1 ; WX 611 ; N ugrave ; B 88 -23 656 745 ; C -1 ; WX 556 ; N yacute ; B 37 -219 653 745 ; C -1 ; WX 556 ; N ydieresis ; B 37 -219 653 731 ; C -1 ; WX 500 ; N zcaron ; B 21 0 575 745 ; C -1 ; WX 556 ; N abreve ; B 50 -24 578 736 ; C -1 ; WX 722 ; N Abreve ; B 26 0 703 938 ; C -1 ; WX 556 ; N aogonek ; B 50 -195 578 551 ; C -1 ; WX 722 ; N Aogonek ; B 26 -195 703 729 ; C -1 ; WX 556 ; N cacute ; B 77 -23 597 745 ; C -1 ; WX 722 ; N Cacute ; B 107 -23 793 938 ; C -1 ; WX 556 ; N ccaron ; B 77 -23 607 745 ; C -1 ; WX 722 ; N Ccaron ; B 107 -23 793 932 ; C -1 ; WX 611 ; N dbar ; B 79 -23 754 729 ; C -1 ; WX 722 ; N Dbar ; B 0 0 776 729 ; C -1 ; WX 611 ; N dcaron ; B 79 -23 909 802 ; C -1 ; WX 722 ; N Dcaron ; B 77 0 776 935 ; C -1 ; WX 556 ; N ecaron ; B 64 -23 596 745 ; C -1 ; WX 667 ; N Ecaron ; B 79 0 762 935 ; C -1 ; WX 556 ; N edotaccent ; B 64 -23 591 729 ; C -1 ; WX 667 ; N Edotaccent ; B 79 0 762 916 ; C -1 ; WX 556 ; N eogonek ; B 64 -195 591 551 ; C -1 ; WX 667 ; N Eogonek ; B 79 -195 762 729 ; C -1 ; WX 611 ; N gbreve ; B 26 -220 656 736 ; C -1 ; WX 778 ; N Gbreve ; B 107 -24 819 923 ; C -1 ; WX 278 ; N Idotaccent ; B 63 0 404 916 ; C -1 ; WX 278 ; N Iogonek ; B -12 -195 368 729 ; C -1 ; WX 278 ; N iogonek ; B -25 -195 362 729 ; C -1 ; WX 278 ; N lacute ; B 67 0 512 938 ; C -1 ; WX 611 ; N Lacute ; B 80 0 655 938 ; C -1 ; WX 278 ; N lcaron ; B 67 0 571 802 ; C -1 ; WX 611 ; N Lcaron ; B 80 0 606 802 ; C -1 ; WX 611 ; N nacute ; B 63 0 637 745 ; C -1 ; WX 722 ; N Nacute ; B 68 0 816 938 ; C -1 ; WX 611 ; N ncaron ; B 63 0 629 745 ; C -1 ; WX 722 ; N Ncaron ; B 68 0 816 935 ; C -1 ; WX 611 ; N ohungarumlaut ; B 82 -23 637 745 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 106 -23 828 932 ; C -1 ; WX 389 ; N racute ; B 63 0 526 745 ; C -1 ; WX 722 ; N Racute ; B 80 0 785 938 ; C -1 ; WX 389 ; N rcaron ; B 63 0 513 745 ; C -1 ; WX 722 ; N Rcaron ; B 80 0 785 935 ; C -1 ; WX 556 ; N sacute ; B 60 -23 589 745 ; C -1 ; WX 667 ; N Sacute ; B 76 -23 725 938 ; C -1 ; WX 556 ; N scedilla ; B 60 -220 589 551 ; C -1 ; WX 667 ; N Scedilla ; B 76 -220 725 741 ; C -1 ; WX 333 ; N tcaron ; B 101 -23 623 729 ; C -1 ; WX 611 ; N Tcaron ; B 142 0 753 935 ; C -1 ; WX 333 ; N tcedilla ; B 81 -220 414 678 ; C -1 ; WX 611 ; N Tcedilla ; B 142 -220 753 729 ; C -1 ; WX 611 ; N uhungarumlaut ; B 88 -23 656 745 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 119 -23 809 932 ; C -1 ; WX 611 ; N umacron ; B 88 -23 656 717 ; C -1 ; WX 722 ; N Umacron ; B 119 -23 809 904 ; C -1 ; WX 611 ; N uring ; B 88 -23 656 745 ; C -1 ; WX 722 ; N Uring ; B 119 -23 809 935 ; C -1 ; WX 611 ; N uogonek ; B 88 -195 656 542 ; C -1 ; WX 722 ; N Uogonek ; B 119 -195 809 729 ; C -1 ; WX 500 ; N zacute ; B 21 0 581 745 ; C -1 ; WX 611 ; N Zacute ; B 30 0 733 938 ; C -1 ; WX 500 ; N zdotaccent ; B 21 0 575 729 ; C -1 ; WX 611 ; N Zdotaccent ; B 30 0 733 935 ; EndCharMetrics EndFontMetrics �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvbo-o.ps���������������������������������������������������������������������0000644�0000000�0000000�00000005700�14415562571�013121� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Helvetica-BoldOblique-Ogonki /Helvetica-BoldOblique /Helvetica-BoldOblique-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Ydieresis [89 167 187 168] put dup /ydieresis [121 111 0 168] put dup /Ucircumflex [85 194 187 28] put dup /Ugrave [85 194 187 27] put dup /ucircumflex [117 139 0 28] put dup /ugrave [117 139 0 27] put dup /Idieresis [73 -27 187 168] put dup /Igrave [73 -27 187 27] put dup /idieresis [136 -27 0 168] put dup /igrave [136 -27 0 27] put dup /Ecircumflex [69 167 187 28] put dup /Egrave [69 167 187 27] put dup /ecircumflex [101 111 0 28] put dup /egrave [101 111 0 27] put dup /Agrave [65 194 187 27] put dup /agrave [97 111 0 27] put dup /Ograve [79 222 187 27] put dup /ograve [111 139 0 27] put dup /Atilde [65 194 187 29] put dup /atilde [97 111 0 29] put dup /Ntilde [78 194 187 29] put dup /ntilde [110 139 0 29] put dup /Otilde [79 222 187 29] put dup /otilde [111 139 0 29] put dup /Aring [65 194 187 31] put dup /aring [97 111 0 31] put dup /abreve [97 111 0 162] put dup /Abreve [65 236 202 162] put dup /aogonek [97 270 0 178] put dup /Aogonek [65 440 0 178] put dup /cacute [99 111 0 180] put dup /Cacute [67 235 193 180] put dup /ccaron [99 122 0 183] put dup /Ccaron [67 257 187 183] put dup /dbar [100 383 298 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 553 73 39] put dup /Dcaron [68 234 190 183] put dup /ecaron [101 111 0 183] put dup /Ecaron [69 207 190 183] put dup /edotaccent [101 102 0 255] put dup /Edotaccent [69 215 187 255] put dup /eogonek [101 150 0 178] put dup /Eogonek [69 290 0 178] put dup /gbreve [103 139 0 162] put dup /Gbreve [71 222 187 162] put dup /Idotaccent [73 27 187 255] put dup /Iogonek [73 -35 0 178] put dup /iogonek [105 -48 0 178] put dup /lacute [108 37 193 180] put dup /Lacute [76 180 193 180] put dup /lcaron [108 215 73 39] put dup /Lcaron [76 221 73 39] put dup /nacute [110 162 0 180] put dup /Nacute [78 278 193 180] put dup /ncaron [110 139 0 183] put dup /Ncaron [78 234 190 183] put dup /ohungarumlaut [111 139 0 189] put dup /Ohungarumlaut [79 222 187 189] put dup /racute [114 51 0 180] put dup /Racute [82 278 193 180] put dup /rcaron [114 28 0 183] put dup /Rcaron [82 234 190 183] put dup /sacute [115 111 0 180] put dup /Sacute [83 208 193 180] put dup /scedilla [115 111 0 184] put dup /Scedilla [83 167 0 184] put dup /tcaron [116 267 0 39] put dup /Tcaron [84 179 190 183] put dup /tcedilla [116 94 0 184] put dup /Tcedilla [84 200 0 184] put dup /uhungarumlaut [117 139 0 189] put dup /Uhungarumlaut [85 194 187 189] put dup /umacron [117 135 0 30] put dup /Umacron [85 242 187 30] put dup /uring [117 139 0 31] put dup /Uring [85 234 190 31] put dup /uogonek [117 283 0 178] put dup /Uogonek [85 257 0 178] put dup /zacute [122 106 0 180] put dup /Zacute [90 180 193 180] put dup /zdotaccent [122 83 0 255] put dup /Zdotaccent [90 182 206 255] put makeComposite %%EndResource ����������������������������������������������������������������a2ps-4.15.5/ogonkify/phvbo.afm����������������������������������������������������������������������0000644�0000000�0000000�00000036227�14233473143�013010� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date:Sun Feb 8 20:39:16 PST 1987 FontName Helvetica-BoldOblique EncodingScheme AdobeStandardEncoding FullName Helvetica Bold Oblique FamilyName Helvetica Weight Bold ItalicAngle -12.0 IsFixedPitch false UnderlinePosition -106 UnderlineThickness 105 Version 001.002 Notice Helvetica is a registered trademark of Allied Corporation FontBBox -177 -221 1107 936 CapHeight 729 XHeight 542 Descender -219 Ascender 729 StartCharMetrics 228 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 112 0 417 729 ; C 34 ; WX 474 ; N quotedbl ; B 177 470 579 729 ; C 35 ; WX 556 ; N numbersign ; B 33 -30 660 696 ; C 36 ; WX 556 ; N dollar ; B 59 -125 628 765 ; C 37 ; WX 889 ; N percent ; B 129 -18 903 708 ; C 38 ; WX 722 ; N ampersand ; B 89 -20 720 729 ; C 39 ; WX 278 ; N quoteright ; B 166 469 356 729 ; C 40 ; WX 333 ; N parenleft ; B 84 -202 458 729 ; C 41 ; WX 333 ; N parenright ; B -21 -202 356 729 ; C 42 ; WX 389 ; N asterisk ; B 145 385 478 730 ; C 43 ; WX 584 ; N plus ; B 87 -10 596 474 ; C 44 ; WX 278 ; N comma ; B 27 -174 245 146 ; C 45 ; WX 333 ; N hyphen ; B 70 208 371 344 ; C 46 ; WX 278 ; N period ; B 64 0 245 146 ; C 47 ; WX 278 ; N slash ; B -1 -14 427 715 ; C 48 ; WX 556 ; N zero ; B 81 -23 614 725 ; C 49 ; WX 556 ; N one ; B 172 0 529 709 ; C 50 ; WX 556 ; N two ; B 30 0 628 726 ; C 51 ; WX 556 ; N three ; B 67 -23 613 726 ; C 52 ; WX 556 ; N four ; B 57 0 599 709 ; C 53 ; WX 556 ; N five ; B 59 -24 641 709 ; C 54 ; WX 556 ; N six ; B 85 -23 625 727 ; C 55 ; WX 556 ; N seven ; B 131 0 679 709 ; C 56 ; WX 556 ; N eight ; B 60 -23 620 726 ; C 57 ; WX 556 ; N nine ; B 68 -23 611 728 ; C 58 ; WX 333 ; N colon ; B 113 0 374 521 ; C 59 ; WX 333 ; N semicolon ; B 76 -174 374 521 ; C 60 ; WX 584 ; N less ; B 77 -10 630 474 ; C 61 ; WX 584 ; N equal ; B 61 52 622 412 ; C 62 ; WX 584 ; N greater ; B 38 -10 591 474 ; C 63 ; WX 611 ; N question ; B 168 0 672 744 ; C 64 ; WX 975 ; N at ; B 73 -136 1032 746 ; C 65 ; WX 722 ; N A ; B 26 0 703 729 ; C 66 ; WX 722 ; N B ; B 82 0 762 729 ; C 67 ; WX 722 ; N C ; B 107 -23 793 741 ; C 68 ; WX 722 ; N D ; B 77 0 776 729 ; C 69 ; WX 667 ; N E ; B 79 0 762 729 ; C 70 ; WX 611 ; N F ; B 74 0 741 729 ; C 71 ; WX 778 ; N G ; B 107 -24 819 741 ; C 72 ; WX 722 ; N H ; B 68 0 812 729 ; C 73 ; WX 278 ; N I ; B 63 0 368 729 ; C 74 ; WX 556 ; N J ; B 59 -23 641 729 ; C 75 ; WX 722 ; N K ; B 74 0 843 729 ; C 76 ; WX 611 ; N L ; B 80 0 606 729 ; C 77 ; WX 833 ; N M ; B 66 0 931 729 ; C 78 ; WX 722 ; N N ; B 68 0 816 729 ; C 79 ; WX 778 ; N O ; B 106 -23 828 741 ; C 80 ; WX 667 ; N P ; B 76 0 747 729 ; C 81 ; WX 778 ; N Q ; B 109 -54 831 741 ; C 82 ; WX 722 ; N R ; B 80 0 785 729 ; C 83 ; WX 667 ; N S ; B 76 -23 725 741 ; C 84 ; WX 611 ; N T ; B 142 0 753 729 ; C 85 ; WX 722 ; N U ; B 119 -23 809 729 ; C 86 ; WX 667 ; N V ; B 179 0 802 729 ; C 87 ; WX 944 ; N W ; B 168 0 1087 729 ; C 88 ; WX 667 ; N X ; B 22 0 802 729 ; C 89 ; WX 667 ; N Y ; B 182 0 805 729 ; C 90 ; WX 611 ; N Z ; B 30 0 733 729 ; C 91 ; WX 333 ; N bracketleft ; B 23 -202 463 729 ; C 92 ; WX 278 ; N backslash ; B 138 -21 285 708 ; C 93 ; WX 333 ; N bracketright ; B -25 -202 415 729 ; C 94 ; WX 584 ; N asciicircum ; B 119 271 580 696 ; C 95 ; WX 556 ; N underscore ; B -65 -200 550 -130 ; C 96 ; WX 278 ; N quoteleft ; B 167 469 357 729 ; C 97 ; WX 556 ; N a ; B 50 -24 578 551 ; C 98 ; WX 611 ; N b ; B 59 -23 640 729 ; C 99 ; WX 556 ; N c ; B 77 -23 597 551 ; C 100 ; WX 611 ; N d ; B 79 -23 700 729 ; C 101 ; WX 556 ; N e ; B 64 -23 591 551 ; C 102 ; WX 333 ; N f ; B 90 0 464 729 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B 26 -220 656 551 ; C 104 ; WX 611 ; N h ; B 67 0 629 729 ; C 105 ; WX 278 ; N i ; B 67 0 362 729 ; C 106 ; WX 278 ; N j ; B -43 -219 365 729 ; C 107 ; WX 556 ; N k ; B 59 0 651 729 ; C 108 ; WX 278 ; N l ; B 67 0 362 729 ; C 109 ; WX 889 ; N m ; B 60 0 911 553 ; C 110 ; WX 611 ; N n ; B 63 0 629 551 ; C 111 ; WX 611 ; N o ; B 82 -23 634 551 ; C 112 ; WX 611 ; N p ; B 11 -219 637 551 ; C 113 ; WX 611 ; N q ; B 72 -219 659 551 ; C 114 ; WX 389 ; N r ; B 63 0 487 553 ; C 115 ; WX 556 ; N s ; B 60 -23 589 551 ; C 116 ; WX 333 ; N t ; B 101 -23 414 678 ; C 117 ; WX 611 ; N u ; B 88 -23 656 542 ; C 118 ; WX 556 ; N v ; B 129 0 651 542 ; C 119 ; WX 778 ; N w ; B 120 0 881 542 ; C 120 ; WX 556 ; N x ; B 16 0 648 542 ; C 121 ; WX 556 ; N y ; B 37 -219 653 542 ; C 122 ; WX 500 ; N z ; B 21 0 575 542 ; C 123 ; WX 389 ; N braceleft ; B 84 -202 472 729 ; C 124 ; WX 280 ; N bar ; B 57 -202 335 729 ; C 125 ; WX 389 ; N braceright ; B 29 -202 419 729 ; C 126 ; WX 584 ; N asciitilde ; B 97 144 581 322 ; C 161 ; WX 333 ; N exclamdown ; B 26 -187 331 542 ; C 162 ; WX 556 ; N cent ; B 79 -122 598 637 ; C 163 ; WX 556 ; N sterling ; B 49 -20 629 717 ; C 164 ; WX 167 ; N fraction ; B -177 -20 489 715 ; C 165 ; WX 556 ; N yen ; B 107 0 702 705 ; C 166 ; WX 556 ; N florin ; B -21 -221 690 745 ; C 167 ; WX 556 ; N section ; B 56 -201 596 728 ; C 168 ; WX 556 ; N currency ; B 66 105 644 604 ; C 169 ; WX 238 ; N quotesingle ; B 177 469 343 729 ; C 170 ; WX 500 ; N quotedblleft ; B 171 469 588 729 ; C 171 ; WX 556 ; N guillemotleft ; B 135 71 571 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 128 73 351 476 ; C 173 ; WX 333 ; N guilsinglright ; B 96 73 319 476 ; C 174 ; WX 611 ; N fi ; B 85 0 703 729 ; C 175 ; WX 611 ; N fl ; B 88 0 701 729 ; C 177 ; WX 556 ; N endash ; B 35 208 624 313 ; C 178 ; WX 556 ; N dagger ; B 109 -195 626 708 ; C 179 ; WX 556 ; N daggerdbl ; B 35 -195 623 708 ; C 180 ; WX 278 ; N periodcentered ; B 143 318 270 442 ; C 182 ; WX 556 ; N paragraph ; B 121 -195 684 729 ; C 183 ; WX 350 ; N bullet ; B 111 175 367 425 ; C 184 ; WX 278 ; N quotesinglbase ; B 37 -135 228 125 ; C 185 ; WX 500 ; N quotedblbase ; B 37 -164 462 141 ; C 186 ; WX 500 ; N quotedblright ; B 173 469 595 729 ; C 187 ; WX 556 ; N guillemotright ; B 103 71 533 482 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; C 189 ; WX 1000 ; N perthousand ; B 72 -20 1021 745 ; C 191 ; WX 611 ; N questiondown ; B 52 -192 556 542 ; C 193 ; WX 333 ; N grave ; B 175 595 339 745 ; C 194 ; WX 333 ; N acute ; B 247 595 475 745 ; C 195 ; WX 333 ; N circumflex ; B 135 598 453 745 ; C 196 ; WX 333 ; N tilde ; B 117 595 500 729 ; C 197 ; WX 333 ; N macron ; B 150 629 467 717 ; C 198 ; WX 333 ; N breve ; B 188 593 455 736 ; C 199 ; WX 333 ; N dotaccent ; B 241 607 377 729 ; C 200 ; WX 333 ; N dieresis ; B 147 609 469 731 ; C 202 ; WX 333 ; N ring ; B 214 565 398 745 ; C 203 ; WX 333 ; N cedilla ; B -13 -220 270 -9 ; C 205 ; WX 333 ; N hungarumlaut ; B 82 595 498 745 ; C 206 ; WX 333 ; N ogonek ; B 23 -195 248 38 ; C 207 ; WX 333 ; N caron ; B 167 598 485 745 ; C 208 ; WX 1000 ; N emdash ; B 37 208 1070 313 ; C 225 ; WX 1000 ; N AE ; B 1 0 1104 729 ; C 227 ; WX 370 ; N ordfeminine ; B 96 277 451 746 ; C 232 ; WX 611 ; N Lslash ; B 54 0 624 729 ; C 233 ; WX 778 ; N Oslash ; B 34 -34 906 754 ; C 234 ; WX 1000 ; N OE ; B 90 -20 1107 741 ; C 235 ; WX 365 ; N ordmasculine ; B 92 276 471 745 ; C 241 ; WX 889 ; N ae ; B 54 -20 927 555 ; C 245 ; WX 278 ; N dotlessi ; B 67 0 322 542 ; C 248 ; WX 278 ; N lslash ; B 50 0 372 729 ; C 249 ; WX 611 ; N oslash ; B 12 -34 709 561 ; C 250 ; WX 944 ; N oe ; B 71 -21 986 554 ; C 251 ; WX 611 ; N germandbls ; B 67 -16 654 730 ; C -1 ; WX 722 ; N Aacute ; B 26 0 714 936 ; C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; C -1 ; WX 722 ; N Adieresis ; B 26 0 708 922 ; C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; C -1 ; WX 722 ; N Aring ; B 26 0 703 936 ; C -1 ; WX 722 ; N Atilde ; B 26 0 739 920 ; C -1 ; WX 722 ; N Ccedilla ; B 107 -220 793 741 ; C -1 ; WX 667 ; N Eacute ; B 79 0 762 936 ; C -1 ; WX 667 ; N Ecircumflex ; B 79 0 762 936 ; C -1 ; WX 667 ; N Edieresis ; B 79 0 762 922 ; C -1 ; WX 667 ; N Egrave ; B 79 0 762 936 ; C -1 ; WX 722 ; N Eth ; B 53 0 776 729 ; C -1 ; WX 278 ; N Iacute ; B 63 0 489 936 ; C -1 ; WX 278 ; N Icircumflex ; B 63 0 467 936 ; C -1 ; WX 278 ; N Idieresis ; B 63 0 483 922 ; C -1 ; WX 278 ; N Igrave ; B 63 0 368 936 ; C -1 ; WX 722 ; N Ntilde ; B 68 0 816 920 ; C -1 ; WX 778 ; N Oacute ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Ocircumflex ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Odieresis ; B 106 -23 828 922 ; C -1 ; WX 778 ; N Ograve ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Otilde ; B 106 -23 828 920 ; C -1 ; WX 667 ; N Scaron ; B 76 -23 725 936 ; C -1 ; WX 667 ; N Thorn ; B 76 0 730 729 ; C -1 ; WX 722 ; N Uacute ; B 119 -23 809 936 ; C -1 ; WX 722 ; N Ucircumflex ; B 119 -23 809 936 ; C -1 ; WX 722 ; N Udieresis ; B 119 -23 809 922 ; C -1 ; WX 722 ; N Ugrave ; B 119 -23 809 936 ; C -1 ; WX 667 ; N Yacute ; B 182 0 805 932 ; C -1 ; WX 667 ; N Ydieresis ; B 182 0 805 922 ; C -1 ; WX 611 ; N Zcaron ; B 30 0 733 936 ; C -1 ; WX 556 ; N aacute ; B 50 -24 587 745 ; C -1 ; WX 556 ; N acircumflex ; B 50 -24 578 745 ; C -1 ; WX 556 ; N adieresis ; B 50 -24 581 731 ; C -1 ; WX 556 ; N agrave ; B 50 -24 578 745 ; C -1 ; WX 556 ; N aring ; B 50 -24 578 745 ; C -1 ; WX 556 ; N atilde ; B 50 -24 612 729 ; C -1 ; WX 280 ; N brokenbar ; B 57 -202 335 729 ; C -1 ; WX 556 ; N ccedilla ; B 77 -220 597 551 ; C -1 ; WX 737 ; N copyright ; B 54 -20 837 745 ; C -1 ; WX 400 ; N degree ; B 169 425 476 725 ; C -1 ; WX 584 ; N divide ; B 87 -10 596 474 ; C -1 ; WX 556 ; N eacute ; B 64 -23 591 745 ; C -1 ; WX 556 ; N ecircumflex ; B 64 -23 591 745 ; C -1 ; WX 556 ; N edieresis ; B 64 -23 591 731 ; C -1 ; WX 556 ; N egrave ; B 64 -23 591 745 ; C -1 ; WX 611 ; N eth ; B 82 -23 633 730 ; C -1 ; WX 278 ; N iacute ; B 67 0 448 745 ; C -1 ; WX 278 ; N icircumflex ; B 67 0 426 745 ; C -1 ; WX 278 ; N idieresis ; B 67 0 442 731 ; C -1 ; WX 278 ; N igrave ; B 67 0 322 745 ; C -1 ; WX 584 ; N logicalnot ; B 103 121 632 412 ; C -1 ; WX 584 ; N minus ; B 77 174 606 290 ; C -1 ; WX 611 ; N mu ; B 11 -219 656 542 ; C -1 ; WX 584 ; N multiply ; B 66 -10 617 474 ; C -1 ; WX 611 ; N ntilde ; B 63 0 646 729 ; C -1 ; WX 611 ; N oacute ; B 82 -23 634 745 ; C -1 ; WX 611 ; N ocircumflex ; B 82 -23 634 745 ; C -1 ; WX 611 ; N odieresis ; B 82 -23 634 731 ; C -1 ; WX 611 ; N ograve ; B 82 -23 634 745 ; C -1 ; WX 834 ; N onehalf ; B 120 -20 871 715 ; C -1 ; WX 834 ; N onequarter ; B 151 -20 846 715 ; C -1 ; WX 333 ; N onesuperior ; B 169 284 398 709 ; C -1 ; WX 611 ; N otilde ; B 82 -23 639 729 ; C -1 ; WX 584 ; N plusminus ; B 40 0 639 674 ; C -1 ; WX 737 ; N registered ; B 55 -20 837 745 ; C -1 ; WX 556 ; N scaron ; B 60 -23 597 745 ; C -1 ; WX 611 ; N thorn ; B 11 -219 641 729 ; C -1 ; WX 834 ; N threequarters ; B 116 -20 863 725 ; C -1 ; WX 333 ; N threesuperior ; B 92 271 442 720 ; C -1 ; WX 1000 ; N trademark ; B 213 341 1087 745 ; C -1 ; WX 333 ; N twosuperior ; B 69 284 452 719 ; C -1 ; WX 611 ; N uacute ; B 88 -23 656 745 ; C -1 ; WX 611 ; N ucircumflex ; B 88 -23 656 745 ; C -1 ; WX 611 ; N udieresis ; B 88 -23 656 731 ; C -1 ; WX 611 ; N ugrave ; B 88 -23 656 745 ; C -1 ; WX 556 ; N yacute ; B 37 -219 653 745 ; C -1 ; WX 556 ; N ydieresis ; B 37 -219 653 731 ; C -1 ; WX 500 ; N zcaron ; B 21 0 575 745 ; EndCharMetrics StartKernData StartKernPairs 99 KPX A space -37 KPX A quoteright -55 KPX A Y -74 KPX A W -55 KPX A V -74 KPX A T -74 KPX F period -111 KPX F comma -111 KPX F A -55 KPX L space -18 KPX L quoteright -74 KPX L Y -74 KPX L W -55 KPX L V -55 KPX L T -74 KPX P space -37 KPX P period -129 KPX P comma -129 KPX P A -74 KPX R Y -18 KPX R W -18 KPX R T -18 KPX T y -37 KPX T w -37 KPX T u -18 KPX T semicolon -74 KPX T s -37 KPX T r -18 KPX T period -74 KPX T o -37 KPX T i -18 KPX T hyphen -55 KPX T e -37 KPX T comma -74 KPX T colon -74 KPX T c -37 KPX T a -37 KPX T O -18 KPX T A -74 KPX V y -18 KPX V u -18 KPX V semicolon -37 KPX V r -18 KPX V period -92 KPX V o -37 KPX V i -37 KPX V hyphen -37 KPX V e -37 KPX V comma -92 KPX V colon -37 KPX V a -37 KPX V A -74 KPX W y -18 KPX W u -18 KPX W semicolon -37 KPX W r -18 KPX W period -74 KPX W o -18 KPX W i -9 KPX W hyphen -37 KPX W e -18 KPX W comma -74 KPX W colon -37 KPX W a -18 KPX W A -55 KPX Y v -37 KPX Y u -37 KPX Y space -18 KPX Y semicolon -55 KPX Y q -37 KPX Y period -92 KPX Y p -37 KPX Y i -37 KPX Y o -37 KPX Y hyphen -74 KPX Y e -37 KPX Y comma -92 KPX Y colon -55 KPX Y a -37 KPX Y A -74 KPX f quoteright 18 KPX f f -18 KPX one one -74 KPX quoteleft quoteleft -37 KPX quoteright t 18 KPX quoteright space -37 KPX quoteright s -18 KPX quoteright quoteright -37 KPX r quoteright 37 KPX r period -55 KPX r comma -55 KPX space Y -18 KPX space A -37 KPX v period -55 KPX v comma -55 KPX w period -37 KPX w comma -37 KPX y period -37 KPX y comma -37 EndKernPairs EndKernData StartComposites 58 CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 187 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 187 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 111 0 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 194 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 111 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 187 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 111 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 187 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 187 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 187 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 187 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 187 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 187 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 187 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 187 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 187 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 187 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 187 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 187 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 187 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 194 187 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 194 187 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 194 187 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 194 187 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 187 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 187 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 187 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 187 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 194 187 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 187 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 187 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 194 187 ; CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; EndComposites EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvr-c.afm���������������������������������������������������������������������0000644�0000000�0000000�00000006045�14233473143�013064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Composite characters for Croatian, Czech, Hungarian, Polish, Comment Romanian, Slovak and Slovenian glyphs. Comment Primoz Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si> Comment This is not strictly a conforming AFM file. Comment For use with Juliusz Chroboczek's ogonkify package. Comment Updated by J. Chroboczek FontName Helvetica-Comp StartComposites 57 CC abreve 2 ; PCC a 0 0 ; PCC breve 96 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 174 195 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 270 0 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 424 0 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 84 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 196 195 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 84 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 196 195 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 270 330 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 523 0 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 102 195 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 93 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 102 195 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 111 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 188 199 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 150 0 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 290 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 111 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 222 199 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent -21 199 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek -75 0 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek -30 0 ; CC lacute 2 ; PCC l 0 0 ; PCC acute -27 195 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute -27 195 ; CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 169 0 ; CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 276 0 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 160 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 220 195 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 70 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 160 195 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 112 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 223 195 ; CC racute 2 ; PCC r 0 0 ; PCC acute 25 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 200 195 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 100 195 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 84 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 167 195 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 83 0 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 167 0 ; CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 291 0 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 165 195 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 84 0 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 185 0 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 112 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 195 195 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 111 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 194 199 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 255 0 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 288 5 ; CC uring 2 ; PCC u 0 0 ; PCC ring 112 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 195 195 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 84 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 139 195 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 84 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 139 195 ; EndComposites EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvr-o.afm���������������������������������������������������������������������0000644�0000000�0000000�00000032107�14415562571�013104� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Helvetica-Ogonki EncodingScheme StandardEncoding FullName Helvetica-Ogonki Composite font FontBBox -174 -220 1001 944 StartCharMetrics 285 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 124 0 208 729 ; C 34 ; WX 355 ; N quotedbl ; B 52 462 305 708 ; C 35 ; WX 556 ; N numbersign ; B 14 -20 542 698 ; C 36 ; WX 556 ; N dollar ; B 33 -125 518 770 ; C 37 ; WX 889 ; N percent ; B 29 -20 859 708 ; C 38 ; WX 667 ; N ampersand ; B 52 -23 637 710 ; C 39 ; WX 222 ; N quoteright ; B 64 476 158 708 ; C 40 ; WX 333 ; N parenleft ; B 73 -213 291 729 ; C 41 ; WX 333 ; N parenright ; B 38 -213 256 729 ; C 42 ; WX 389 ; N asterisk ; B 40 452 343 740 ; C 43 ; WX 584 ; N plus ; B 50 -10 534 474 ; C 44 ; WX 278 ; N comma ; B 87 -150 192 104 ; C 45 ; WX 333 ; N hyphen ; B 46 240 284 313 ; C 46 ; WX 278 ; N period ; B 87 0 191 104 ; C 47 ; WX 278 ; N slash ; B -8 -21 284 708 ; C 48 ; WX 556 ; N zero ; B 43 -23 507 709 ; C 49 ; WX 556 ; N one ; B 102 0 347 709 ; C 50 ; WX 556 ; N two ; B 34 0 511 710 ; C 51 ; WX 556 ; N three ; B 32 -23 506 709 ; C 52 ; WX 556 ; N four ; B 28 0 520 709 ; C 53 ; WX 556 ; N five ; B 35 -23 513 709 ; C 54 ; WX 556 ; N six ; B 43 -23 513 709 ; C 55 ; WX 556 ; N seven ; B 46 0 520 709 ; C 56 ; WX 556 ; N eight ; B 37 -23 513 709 ; C 57 ; WX 556 ; N nine ; B 38 -23 509 709 ; C 58 ; WX 278 ; N colon ; B 110 0 214 525 ; C 59 ; WX 278 ; N semicolon ; B 110 -150 215 516 ; C 60 ; WX 584 ; N less ; B 45 -10 534 474 ; C 61 ; WX 584 ; N equal ; B 50 112 534 352 ; C 62 ; WX 584 ; N greater ; B 50 -10 539 474 ; C 63 ; WX 556 ; N question ; B 77 0 509 738 ; C 64 ; WX 1015 ; N at ; B 34 -146 951 737 ; C 65 ; WX 667 ; N A ; B 17 0 653 729 ; C 66 ; WX 667 ; N B ; B 79 0 623 729 ; C 67 ; WX 722 ; N C ; B 48 -23 677 741 ; C 68 ; WX 722 ; N D ; B 89 0 667 729 ; C 69 ; WX 667 ; N E ; B 90 0 613 729 ; C 70 ; WX 611 ; N F ; B 90 0 579 729 ; C 71 ; WX 778 ; N G ; B 44 -23 709 741 ; C 72 ; WX 722 ; N H ; B 83 0 644 729 ; C 73 ; WX 278 ; N I ; B 100 0 194 729 ; C 74 ; WX 500 ; N J ; B 17 -26 426 729 ; C 75 ; WX 667 ; N K ; B 79 0 658 729 ; C 76 ; WX 556 ; N L ; B 80 0 533 729 ; C 77 ; WX 833 ; N M ; B 75 0 761 729 ; C 78 ; WX 722 ; N N ; B 76 0 646 729 ; C 79 ; WX 778 ; N O ; B 38 -23 742 741 ; C 80 ; WX 667 ; N P ; B 91 0 617 730 ; C 81 ; WX 778 ; N Q ; B 38 -59 742 741 ; C 82 ; WX 722 ; N R ; B 93 0 679 729 ; C 83 ; WX 667 ; N S ; B 48 -23 621 741 ; C 84 ; WX 611 ; N T ; B 21 0 593 729 ; C 85 ; WX 722 ; N U ; B 85 -23 645 729 ; C 86 ; WX 667 ; N V ; B 30 0 645 729 ; C 87 ; WX 944 ; N W ; B 22 0 929 729 ; C 88 ; WX 667 ; N X ; B 22 0 649 729 ; C 89 ; WX 667 ; N Y ; B 13 0 661 729 ; C 90 ; WX 611 ; N Z ; B 28 0 583 729 ; C 91 ; WX 278 ; N bracketleft ; B 64 -214 250 729 ; C 92 ; WX 278 ; N backslash ; B -8 -20 284 729 ; C 93 ; WX 278 ; N bracketright ; B 23 -215 209 729 ; C 94 ; WX 469 ; N asciicircum ; B 44 333 425 713 ; C 95 ; WX 556 ; N underscore ; B -22 -175 578 -125 ; C 96 ; WX 222 ; N quoteleft ; B 65 459 158 708 ; C 97 ; WX 556 ; N a ; B 42 -23 535 540 ; C 98 ; WX 556 ; N b ; B 54 -23 523 729 ; C 99 ; WX 500 ; N c ; B 31 -23 477 540 ; C 100 ; WX 556 ; N d ; B 26 -23 495 729 ; C 101 ; WX 556 ; N e ; B 40 -23 513 541 ; C 102 ; WX 278 ; N f ; B 18 0 258 733 ; C 103 ; WX 556 ; N g ; B 29 -220 489 540 ; C 104 ; WX 556 ; N h ; B 70 0 486 729 ; C 105 ; WX 222 ; N i ; B 66 0 150 729 ; C 106 ; WX 222 ; N j ; B -18 -220 153 729 ; C 107 ; WX 500 ; N k ; B 58 0 502 729 ; C 108 ; WX 222 ; N l ; B 68 0 152 729 ; C 109 ; WX 833 ; N m ; B 71 0 763 540 ; C 110 ; WX 556 ; N n ; B 70 0 487 540 ; C 111 ; WX 556 ; N o ; B 36 -23 510 540 ; C 112 ; WX 556 ; N p ; B 54 -219 523 540 ; C 113 ; WX 556 ; N q ; B 26 -219 495 540 ; C 114 ; WX 333 ; N r ; B 69 0 321 540 ; C 115 ; WX 500 ; N s ; B 34 -24 459 540 ; C 116 ; WX 278 ; N t ; B 14 -24 254 667 ; C 117 ; WX 556 ; N u ; B 65 -23 482 525 ; C 118 ; WX 500 ; N v ; B 10 0 486 525 ; C 119 ; WX 722 ; N w ; B 6 0 708 525 ; C 120 ; WX 500 ; N x ; B 17 0 473 525 ; C 121 ; WX 500 ; N y ; B 20 -219 478 525 ; C 122 ; WX 500 ; N z ; B 31 0 457 525 ; C 123 ; WX 334 ; N braceleft ; B 43 -214 276 731 ; C 124 ; WX 260 ; N bar ; B 100 -215 160 729 ; C 125 ; WX 334 ; N braceright ; B 29 -214 262 731 ; C 126 ; WX 584 ; N asciitilde ; B 75 267 508 438 ; C 161 ; WX 333 ; N exclamdown ; B 121 -214 205 525 ; C 162 ; WX 556 ; N cent ; B 52 -120 510 628 ; C 163 ; WX 556 ; N sterling ; B 26 -21 535 726 ; C 164 ; WX 167 ; N fraction ; B -174 -21 336 708 ; C 165 ; WX 556 ; N yen ; B 11 0 545 710 ; C 166 ; WX 556 ; N florin ; B 11 -214 542 742 ; C 167 ; WX 556 ; N section ; B 44 -215 506 729 ; C 168 ; WX 556 ; N currency ; B 67 126 489 554 ; C 169 ; WX 191 ; N quotesingle ; B 48 462 142 708 ; C 170 ; WX 333 ; N quotedblleft ; B 48 459 299 708 ; C 171 ; WX 556 ; N guillemotleft ; B 98 106 455 438 ; C 172 ; WX 333 ; N guilsinglleft ; B 91 112 243 436 ; C 173 ; WX 333 ; N guilsinglright ; B 85 112 239 436 ; C 174 ; WX 500 ; N fi ; B 12 0 436 733 ; C 175 ; WX 500 ; N fl ; B 17 0 430 733 ; C 177 ; WX 556 ; N endash ; B -5 240 561 313 ; C 178 ; WX 556 ; N dagger ; B 38 -178 513 710 ; C 179 ; WX 556 ; N daggerdbl ; B 38 -178 513 710 ; C 180 ; WX 278 ; N periodcentered ; B 87 318 211 442 ; C 182 ; WX 537 ; N paragraph ; B 48 -178 522 729 ; C 183 ; WX 350 ; N bullet ; B 50 220 300 470 ; C 184 ; WX 222 ; N quotesinglbase ; B 64 -129 158 103 ; C 185 ; WX 333 ; N quotedblbase ; B 47 -129 300 103 ; C 186 ; WX 333 ; N quotedblright ; B 49 476 302 708 ; C 187 ; WX 556 ; N guillemotright ; B 98 106 451 438 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 104 ; C 189 ; WX 1000 ; N perthousand ; B 9 -20 993 740 ; C 191 ; WX 611 ; N questiondown ; B 95 -213 528 525 ; C 193 ; WX 333 ; N grave ; B 22 592 231 740 ; C 194 ; WX 333 ; N acute ; B 92 592 301 740 ; C 195 ; WX 333 ; N circumflex ; B 20 591 307 741 ; C 196 ; WX 333 ; N tilde ; B 5 589 319 716 ; C 197 ; WX 333 ; N macron ; B 28 621 302 694 ; C 198 ; WX 333 ; N breve ; B 15 594 316 729 ; C 199 ; WX 333 ; N dotaccent ; B 115 605 219 709 ; C 200 ; WX 333 ; N dieresis ; B 30 605 296 708 ; C 202 ; WX 333 ; N ring ; B 79 566 255 741 ; C 203 ; WX 333 ; N cedilla ; B 39 -214 287 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -35 592 348 740 ; C 206 ; WX 333 ; N ogonek ; B 57 -189 265 15 ; C 207 ; WX 333 ; N caron ; B 19 590 306 740 ; C 208 ; WX 1000 ; N emdash ; B -9 240 1001 313 ; C 225 ; WX 1000 ; N AE ; B 11 0 950 729 ; C 227 ; WX 370 ; N ordfeminine ; B 37 301 333 740 ; C 232 ; WX 556 ; N Lslash ; B 0 0 552 729 ; C 233 ; WX 778 ; N Oslash ; B 30 -23 744 742 ; C 234 ; WX 1000 ; N OE ; B 43 -20 959 739 ; C 235 ; WX 365 ; N ordmasculine ; B 40 301 324 741 ; C 241 ; WX 889 ; N ae ; B 34 -20 845 546 ; C 245 ; WX 278 ; N dotlessi ; B 94 0 178 525 ; C 248 ; WX 222 ; N lslash ; B 0 0 212 729 ; C 249 ; WX 611 ; N oslash ; B 18 -27 529 548 ; C 250 ; WX 944 ; N oe ; B 40 -22 899 540 ; C 251 ; WX 611 ; N germandbls ; B 126 -20 566 729 ; C -1 ; WX 667 ; N Aacute ; B 17 0 653 939 ; C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; C -1 ; WX 667 ; N Adieresis ; B 17 0 653 907 ; C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ; C -1 ; WX 667 ; N Aring ; B 17 0 653 940 ; C -1 ; WX 667 ; N Atilde ; B 17 0 653 915 ; C -1 ; WX 722 ; N Ccedilla ; B 48 -214 677 741 ; C -1 ; WX 667 ; N Eacute ; B 90 0 613 939 ; C -1 ; WX 667 ; N Ecircumflex ; B 90 0 613 940 ; C -1 ; WX 667 ; N Edieresis ; B 90 0 613 907 ; C -1 ; WX 667 ; N Egrave ; B 90 0 613 939 ; C -1 ; WX 722 ; N Eth ; B 0 0 667 729 ; C -1 ; WX 278 ; N Iacute ; B 71 0 280 939 ; C -1 ; WX 278 ; N Icircumflex ; B -1 0 286 940 ; C -1 ; WX 278 ; N Idieresis ; B 9 0 275 907 ; C -1 ; WX 278 ; N Igrave ; B 1 0 210 939 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 646 915 ; C -1 ; WX 778 ; N Oacute ; B 38 -23 742 939 ; C -1 ; WX 778 ; N Ocircumflex ; B 38 -23 742 940 ; C -1 ; WX 778 ; N Odieresis ; B 38 -23 742 907 ; C -1 ; WX 778 ; N Ograve ; B 38 -23 742 939 ; C -1 ; WX 778 ; N Otilde ; B 38 -23 742 915 ; C -1 ; WX 667 ; N Scaron ; B 48 -23 621 939 ; C -1 ; WX 667 ; N Thorn ; B 91 0 617 729 ; C -1 ; WX 722 ; N Uacute ; B 85 -23 645 939 ; C -1 ; WX 722 ; N Ucircumflex ; B 85 -23 645 940 ; C -1 ; WX 722 ; N Udieresis ; B 85 -23 645 907 ; C -1 ; WX 722 ; N Ugrave ; B 85 -23 645 939 ; C -1 ; WX 667 ; N Yacute ; B 13 0 661 944 ; C -1 ; WX 667 ; N Ydieresis ; B 13 0 661 907 ; C -1 ; WX 611 ; N Zcaron ; B 28 0 583 939 ; C -1 ; WX 556 ; N aacute ; B 42 -23 535 740 ; C -1 ; WX 556 ; N acircumflex ; B 42 -23 535 741 ; C -1 ; WX 556 ; N adieresis ; B 42 -23 535 708 ; C -1 ; WX 556 ; N agrave ; B 42 -23 535 740 ; C -1 ; WX 556 ; N aring ; B 42 -23 535 741 ; C -1 ; WX 556 ; N atilde ; B 42 -23 535 716 ; C -1 ; WX 260 ; N brokenbar ; B 100 -215 160 729 ; C -1 ; WX 500 ; N ccedilla ; B 31 -214 477 540 ; C -1 ; WX 737 ; N copyright ; B -13 -23 751 741 ; C -1 ; WX 400 ; N degree ; B 50 409 350 709 ; C -1 ; WX 584 ; N divide ; B 50 -10 534 474 ; C -1 ; WX 556 ; N eacute ; B 40 -23 513 740 ; C -1 ; WX 556 ; N ecircumflex ; B 40 -23 513 741 ; C -1 ; WX 556 ; N edieresis ; B 40 -23 513 708 ; C -1 ; WX 556 ; N egrave ; B 40 -23 513 740 ; C -1 ; WX 556 ; N eth ; B 36 -23 510 729 ; C -1 ; WX 278 ; N iacute ; B 65 0 274 740 ; C -1 ; WX 278 ; N icircumflex ; B -7 0 280 741 ; C -1 ; WX 278 ; N idieresis ; B 3 0 269 708 ; C -1 ; WX 278 ; N igrave ; B -5 0 204 740 ; C -1 ; WX 584 ; N logicalnot ; B 40 82 544 352 ; C -1 ; WX 584 ; N minus ; B 40 194 544 270 ; C -1 ; WX 556 ; N mu ; B 65 -219 482 525 ; C -1 ; WX 584 ; N multiply ; B 50 -10 534 476 ; C -1 ; WX 556 ; N ntilde ; B 70 0 487 716 ; C -1 ; WX 556 ; N oacute ; B 36 -23 510 740 ; C -1 ; WX 556 ; N ocircumflex ; B 36 -23 510 741 ; C -1 ; WX 556 ; N odieresis ; B 36 -23 510 708 ; C -1 ; WX 556 ; N ograve ; B 36 -23 510 740 ; C -1 ; WX 834 ; N onehalf ; B 30 -21 804 709 ; C -1 ; WX 834 ; N onequarter ; B 30 -21 804 709 ; C -1 ; WX 333 ; N onesuperior ; B 60 284 219 709 ; C -1 ; WX 556 ; N otilde ; B 36 -23 510 716 ; C -1 ; WX 584 ; N plusminus ; B 40 0 544 618 ; C -1 ; WX 737 ; N registered ; B -13 -23 751 741 ; C -1 ; WX 500 ; N scaron ; B 34 -24 459 740 ; C -1 ; WX 556 ; N thorn ; B 54 -219 523 729 ; C -1 ; WX 834 ; N threequarters ; B 30 -21 804 709 ; C -1 ; WX 333 ; N threesuperior ; B 12 270 320 709 ; C -1 ; WX 1000 ; N trademark ; B 63 320 938 741 ; C -1 ; WX 333 ; N twosuperior ; B 11 284 321 710 ; C -1 ; WX 556 ; N uacute ; B 65 -23 482 740 ; C -1 ; WX 556 ; N ucircumflex ; B 65 -23 482 741 ; C -1 ; WX 556 ; N udieresis ; B 65 -23 482 708 ; C -1 ; WX 556 ; N ugrave ; B 65 -23 482 740 ; C -1 ; WX 500 ; N yacute ; B 20 -219 478 740 ; C -1 ; WX 500 ; N ydieresis ; B 20 -219 478 708 ; C -1 ; WX 500 ; N zcaron ; B 31 0 457 740 ; C -1 ; WX 556 ; N abreve ; B 42 -23 535 729 ; C -1 ; WX 667 ; N Abreve ; B 17 0 653 924 ; C -1 ; WX 556 ; N aogonek ; B 42 -189 535 540 ; C -1 ; WX 667 ; N Aogonek ; B 17 -189 689 729 ; C -1 ; WX 500 ; N cacute ; B 31 -23 477 740 ; C -1 ; WX 722 ; N Cacute ; B 48 -23 677 935 ; C -1 ; WX 500 ; N ccaron ; B 31 -23 477 740 ; C -1 ; WX 722 ; N Ccaron ; B 48 -23 677 935 ; C -1 ; WX 556 ; N dbar ; B 26 -23 554 729 ; C -1 ; WX 722 ; N Dbar ; B 0 0 667 729 ; C -1 ; WX 556 ; N dcaron ; B 26 -23 681 729 ; C -1 ; WX 722 ; N Dcaron ; B 89 0 667 935 ; C -1 ; WX 556 ; N ecaron ; B 40 -23 513 740 ; C -1 ; WX 667 ; N Ecaron ; B 90 0 613 935 ; C -1 ; WX 556 ; N edotaccent ; B 40 -23 513 709 ; C -1 ; WX 667 ; N Edotaccent ; B 90 0 613 908 ; C -1 ; WX 556 ; N eogonek ; B 40 -189 513 541 ; C -1 ; WX 667 ; N Eogonek ; B 90 -189 613 729 ; C -1 ; WX 556 ; N gbreve ; B 29 -220 489 729 ; C -1 ; WX 778 ; N Gbreve ; B 44 -23 709 928 ; C -1 ; WX 278 ; N Idotaccent ; B 94 0 198 908 ; C -1 ; WX 222 ; N iogonek ; B -18 -189 190 729 ; C -1 ; WX 278 ; N Iogonek ; B 27 -189 235 729 ; C -1 ; WX 222 ; N lacute ; B 65 0 274 935 ; C -1 ; WX 556 ; N Lacute ; B 65 0 533 935 ; C -1 ; WX 222 ; N lcaron ; B 68 0 327 729 ; C -1 ; WX 556 ; N Lcaron ; B 80 0 533 729 ; C -1 ; WX 556 ; N nacute ; B 70 0 487 740 ; C -1 ; WX 722 ; N Nacute ; B 76 0 646 935 ; C -1 ; WX 556 ; N ncaron ; B 70 0 487 740 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 646 935 ; C -1 ; WX 556 ; N ohungarumlaut ; B 36 -23 510 740 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 38 -23 742 935 ; C -1 ; WX 333 ; N racute ; B 69 0 326 740 ; C -1 ; WX 722 ; N Racute ; B 93 0 679 935 ; C -1 ; WX 333 ; N rcaron ; B 19 0 321 740 ; C -1 ; WX 722 ; N Rcaron ; B 93 0 679 935 ; C -1 ; WX 500 ; N sacute ; B 34 -24 459 740 ; C -1 ; WX 667 ; N Sacute ; B 48 -23 621 935 ; C -1 ; WX 500 ; N scedilla ; B 34 -214 459 540 ; C -1 ; WX 667 ; N Scedilla ; B 48 -214 621 741 ; C -1 ; WX 278 ; N tcaron ; B 14 -24 449 708 ; C -1 ; WX 611 ; N Tcaron ; B 21 0 593 935 ; C -1 ; WX 278 ; N tcedilla ; B 14 -214 371 667 ; C -1 ; WX 611 ; N Tcedilla ; B 21 -214 593 729 ; C -1 ; WX 556 ; N uhungarumlaut ; B 65 -23 482 740 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 85 -23 645 935 ; C -1 ; WX 556 ; N umacron ; B 65 -23 482 694 ; C -1 ; WX 722 ; N Umacron ; B 85 -23 645 893 ; C -1 ; WX 556 ; N uogonek ; B 65 -189 520 525 ; C -1 ; WX 722 ; N Uogonek ; B 85 -184 645 729 ; C -1 ; WX 556 ; N uring ; B 65 -23 482 741 ; C -1 ; WX 722 ; N Uring ; B 85 -23 645 936 ; C -1 ; WX 500 ; N zacute ; B 31 0 457 740 ; C -1 ; WX 611 ; N Zacute ; B 28 0 583 935 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 457 709 ; C -1 ; WX 611 ; N Zdotaccent ; B 28 0 583 904 ; EndCharMetrics EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvr-o.ps����������������������������������������������������������������������0000644�0000000�0000000�00000005621�14415562571�012764� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Helvetica-Ogonki /Helvetica /Helvetica-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Ydieresis [89 167 199 168] put dup /ydieresis [121 83 0 168] put dup /Ucircumflex [85 194 199 28] put dup /Ugrave [85 194 199 27] put dup /ucircumflex [117 111 0 28] put dup /ugrave [117 111 0 27] put dup /Idieresis [73 -21 199 168] put dup /Igrave [73 -21 199 27] put dup /idieresis [136 -27 0 168] put dup /igrave [136 -27 0 27] put dup /Ecircumflex [69 188 199 28] put dup /Egrave [69 188 199 27] put dup /ecircumflex [101 117 0 28] put dup /egrave [101 117 0 27] put dup /Agrave [65 167 199 27] put dup /agrave [97 111 0 27] put dup /Ograve [79 222 199 27] put dup /ograve [111 111 0 27] put dup /Atilde [65 167 199 29] put dup /atilde [97 111 0 29] put dup /Ntilde [78 200 199 29] put dup /ntilde [110 117 0 29] put dup /Otilde [79 222 199 29] put dup /otilde [111 111 0 29] put dup /Aring [65 167 199 31] put dup /aring [97 111 0 31] put dup /abreve [97 96 0 162] put dup /Abreve [65 174 195 162] put dup /aogonek [97 270 0 178] put dup /Aogonek [65 424 0 178] put dup /cacute [99 84 0 180] put dup /Cacute [67 196 195 180] put dup /ccaron [99 84 0 183] put dup /Ccaron [67 196 195 183] put dup /dbar [100 270 330 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 523 0 39] put dup /Dcaron [68 102 195 183] put dup /ecaron [101 93 0 183] put dup /Ecaron [69 102 195 183] put dup /edotaccent [101 111 0 255] put dup /Edotaccent [69 188 199 255] put dup /eogonek [101 150 0 178] put dup /Eogonek [69 290 0 178] put dup /gbreve [103 111 0 162] put dup /Gbreve [71 222 199 162] put dup /Idotaccent [73 -21 199 255] put dup /iogonek [105 -75 0 178] put dup /Iogonek [73 -30 0 178] put dup /lacute [108 -27 195 180] put dup /Lacute [76 -27 195 180] put dup /lcaron [108 169 0 39] put dup /Lcaron [76 276 0 39] put dup /nacute [110 160 0 180] put dup /Nacute [78 220 195 180] put dup /ncaron [110 70 0 183] put dup /Ncaron [78 160 195 183] put dup /ohungarumlaut [111 112 0 189] put dup /Ohungarumlaut [79 223 195 189] put dup /racute [114 25 0 180] put dup /Racute [82 200 195 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 100 195 183] put dup /sacute [115 84 0 180] put dup /Sacute [83 167 195 180] put dup /scedilla [115 83 0 184] put dup /Scedilla [83 167 0 184] put dup /tcaron [116 291 0 39] put dup /Tcaron [84 165 195 183] put dup /tcedilla [116 84 0 184] put dup /Tcedilla [84 185 0 184] put dup /uhungarumlaut [117 112 0 189] put dup /Uhungarumlaut [85 195 195 189] put dup /umacron [117 111 0 30] put dup /Umacron [85 194 199 30] put dup /uogonek [117 255 0 178] put dup /Uogonek [85 288 5 178] put dup /uring [117 112 0 31] put dup /Uring [85 195 195 31] put dup /zacute [122 84 0 180] put dup /Zacute [90 139 195 180] put dup /zdotaccent [122 84 0 255] put dup /Zdotaccent [90 139 195 255] put makeComposite %%EndResource ���������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvr.afm�����������������������������������������������������������������������0000644�0000000�0000000�00000036213�14233473143�012644� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date:Sun Feb 8 18:48:01 PST 1987 FontName Helvetica EncodingScheme AdobeStandardEncoding FullName Helvetica FamilyName Helvetica Weight Medium ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -97 UnderlineThickness 73 Version 001.002 Notice Helvetica is a registered trademark of Allied Corporation. FontBBox -174 -220 1001 944 CapHeight 729 XHeight 525 Descender -219 Ascender 729 StartCharMetrics 228 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 124 0 208 729 ; C 34 ; WX 355 ; N quotedbl ; B 52 462 305 708 ; C 35 ; WX 556 ; N numbersign ; B 14 -20 542 698 ; C 36 ; WX 556 ; N dollar ; B 33 -125 518 770 ; C 37 ; WX 889 ; N percent ; B 29 -20 859 708 ; C 38 ; WX 667 ; N ampersand ; B 52 -23 637 710 ; C 39 ; WX 222 ; N quoteright ; B 64 476 158 708 ; C 40 ; WX 333 ; N parenleft ; B 73 -213 291 729 ; C 41 ; WX 333 ; N parenright ; B 38 -213 256 729 ; C 42 ; WX 389 ; N asterisk ; B 40 452 343 740 ; C 43 ; WX 584 ; N plus ; B 50 -10 534 474 ; C 44 ; WX 278 ; N comma ; B 87 -150 192 104 ; C 45 ; WX 333 ; N hyphen ; B 46 240 284 313 ; C 46 ; WX 278 ; N period ; B 87 0 191 104 ; C 47 ; WX 278 ; N slash ; B -8 -21 284 708 ; C 48 ; WX 556 ; N zero ; B 43 -23 507 709 ; C 49 ; WX 556 ; N one ; B 102 0 347 709 ; C 50 ; WX 556 ; N two ; B 34 0 511 710 ; C 51 ; WX 556 ; N three ; B 32 -23 506 709 ; C 52 ; WX 556 ; N four ; B 28 0 520 709 ; C 53 ; WX 556 ; N five ; B 35 -23 513 709 ; C 54 ; WX 556 ; N six ; B 43 -23 513 709 ; C 55 ; WX 556 ; N seven ; B 46 0 520 709 ; C 56 ; WX 556 ; N eight ; B 37 -23 513 709 ; C 57 ; WX 556 ; N nine ; B 38 -23 509 709 ; C 58 ; WX 278 ; N colon ; B 110 0 214 525 ; C 59 ; WX 278 ; N semicolon ; B 110 -150 215 516 ; C 60 ; WX 584 ; N less ; B 45 -10 534 474 ; C 61 ; WX 584 ; N equal ; B 50 112 534 352 ; C 62 ; WX 584 ; N greater ; B 50 -10 539 474 ; C 63 ; WX 556 ; N question ; B 77 0 509 738 ; C 64 ; WX 1015 ; N at ; B 34 -146 951 737 ; C 65 ; WX 667 ; N A ; B 17 0 653 729 ; C 66 ; WX 667 ; N B ; B 79 0 623 729 ; C 67 ; WX 722 ; N C ; B 48 -23 677 741 ; C 68 ; WX 722 ; N D ; B 89 0 667 729 ; C 69 ; WX 667 ; N E ; B 90 0 613 729 ; C 70 ; WX 611 ; N F ; B 90 0 579 729 ; C 71 ; WX 778 ; N G ; B 44 -23 709 741 ; C 72 ; WX 722 ; N H ; B 83 0 644 729 ; C 73 ; WX 278 ; N I ; B 100 0 194 729 ; C 74 ; WX 500 ; N J ; B 17 -26 426 729 ; C 75 ; WX 667 ; N K ; B 79 0 658 729 ; C 76 ; WX 556 ; N L ; B 80 0 533 729 ; C 77 ; WX 833 ; N M ; B 75 0 761 729 ; C 78 ; WX 722 ; N N ; B 76 0 646 729 ; C 79 ; WX 778 ; N O ; B 38 -23 742 741 ; C 80 ; WX 667 ; N P ; B 91 0 617 730 ; C 81 ; WX 778 ; N Q ; B 38 -59 742 741 ; C 82 ; WX 722 ; N R ; B 93 0 679 729 ; C 83 ; WX 667 ; N S ; B 48 -23 621 741 ; C 84 ; WX 611 ; N T ; B 21 0 593 729 ; C 85 ; WX 722 ; N U ; B 85 -23 645 729 ; C 86 ; WX 667 ; N V ; B 30 0 645 729 ; C 87 ; WX 944 ; N W ; B 22 0 929 729 ; C 88 ; WX 667 ; N X ; B 22 0 649 729 ; C 89 ; WX 667 ; N Y ; B 13 0 661 729 ; C 90 ; WX 611 ; N Z ; B 28 0 583 729 ; C 91 ; WX 278 ; N bracketleft ; B 64 -214 250 729 ; C 92 ; WX 278 ; N backslash ; B -8 -20 284 729 ; C 93 ; WX 278 ; N bracketright ; B 23 -215 209 729 ; C 94 ; WX 469 ; N asciicircum ; B 44 333 425 713 ; C 95 ; WX 556 ; N underscore ; B -22 -175 578 -125 ; C 96 ; WX 222 ; N quoteleft ; B 65 459 158 708 ; C 97 ; WX 556 ; N a ; B 42 -23 535 540 ; C 98 ; WX 556 ; N b ; B 54 -23 523 729 ; C 99 ; WX 500 ; N c ; B 31 -23 477 540 ; C 100 ; WX 556 ; N d ; B 26 -23 495 729 ; C 101 ; WX 556 ; N e ; B 40 -23 513 541 ; C 102 ; WX 278 ; N f ; B 18 0 258 733 ; L i fi ; L l fl ; C 103 ; WX 556 ; N g ; B 29 -220 489 540 ; C 104 ; WX 556 ; N h ; B 70 0 486 729 ; C 105 ; WX 222 ; N i ; B 66 0 150 729 ; C 106 ; WX 222 ; N j ; B -18 -220 153 729 ; C 107 ; WX 500 ; N k ; B 58 0 502 729 ; C 108 ; WX 222 ; N l ; B 68 0 152 729 ; C 109 ; WX 833 ; N m ; B 71 0 763 540 ; C 110 ; WX 556 ; N n ; B 70 0 487 540 ; C 111 ; WX 556 ; N o ; B 36 -23 510 540 ; C 112 ; WX 556 ; N p ; B 54 -219 523 540 ; C 113 ; WX 556 ; N q ; B 26 -219 495 540 ; C 114 ; WX 333 ; N r ; B 69 0 321 540 ; C 115 ; WX 500 ; N s ; B 34 -24 459 540 ; C 116 ; WX 278 ; N t ; B 14 -24 254 667 ; C 117 ; WX 556 ; N u ; B 65 -23 482 525 ; C 118 ; WX 500 ; N v ; B 10 0 486 525 ; C 119 ; WX 722 ; N w ; B 6 0 708 525 ; C 120 ; WX 500 ; N x ; B 17 0 473 525 ; C 121 ; WX 500 ; N y ; B 20 -219 478 525 ; C 122 ; WX 500 ; N z ; B 31 0 457 525 ; C 123 ; WX 334 ; N braceleft ; B 43 -214 276 731 ; C 124 ; WX 260 ; N bar ; B 100 -215 160 729 ; C 125 ; WX 334 ; N braceright ; B 29 -214 262 731 ; C 126 ; WX 584 ; N asciitilde ; B 75 267 508 438 ; C 161 ; WX 333 ; N exclamdown ; B 121 -214 205 525 ; C 162 ; WX 556 ; N cent ; B 52 -120 510 628 ; C 163 ; WX 556 ; N sterling ; B 26 -21 535 726 ; C 164 ; WX 167 ; N fraction ; B -174 -21 336 708 ; C 165 ; WX 556 ; N yen ; B 11 0 545 710 ; C 166 ; WX 556 ; N florin ; B 11 -214 542 742 ; C 167 ; WX 556 ; N section ; B 44 -215 506 729 ; C 168 ; WX 556 ; N currency ; B 67 126 489 554 ; C 169 ; WX 191 ; N quotesingle ; B 48 462 142 708 ; C 170 ; WX 333 ; N quotedblleft ; B 48 459 299 708 ; C 171 ; WX 556 ; N guillemotleft ; B 98 106 455 438 ; C 172 ; WX 333 ; N guilsinglleft ; B 91 112 243 436 ; C 173 ; WX 333 ; N guilsinglright ; B 85 112 239 436 ; C 174 ; WX 500 ; N fi ; B 12 0 436 733 ; C 175 ; WX 500 ; N fl ; B 17 0 430 733 ; C 177 ; WX 556 ; N endash ; B -5 240 561 313 ; C 178 ; WX 556 ; N dagger ; B 38 -178 513 710 ; C 179 ; WX 556 ; N daggerdbl ; B 38 -178 513 710 ; C 180 ; WX 278 ; N periodcentered ; B 87 318 211 442 ; C 182 ; WX 537 ; N paragraph ; B 48 -178 522 729 ; C 183 ; WX 350 ; N bullet ; B 50 220 300 470 ; C 184 ; WX 222 ; N quotesinglbase ; B 64 -129 158 103 ; C 185 ; WX 333 ; N quotedblbase ; B 47 -129 300 103 ; C 186 ; WX 333 ; N quotedblright ; B 49 476 302 708 ; C 187 ; WX 556 ; N guillemotright ; B 98 106 451 438 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 104 ; C 189 ; WX 1000 ; N perthousand ; B 9 -20 993 740 ; C 191 ; WX 611 ; N questiondown ; B 95 -213 528 525 ; C 193 ; WX 333 ; N grave ; B 22 592 231 740 ; C 194 ; WX 333 ; N acute ; B 92 592 301 740 ; C 195 ; WX 333 ; N circumflex ; B 20 591 307 741 ; C 196 ; WX 333 ; N tilde ; B 5 589 319 716 ; C 197 ; WX 333 ; N macron ; B 28 621 302 694 ; C 198 ; WX 333 ; N breve ; B 15 594 316 729 ; C 199 ; WX 333 ; N dotaccent ; B 115 605 219 709 ; C 200 ; WX 333 ; N dieresis ; B 30 605 296 708 ; C 202 ; WX 333 ; N ring ; B 79 566 255 741 ; C 203 ; WX 333 ; N cedilla ; B 39 -214 287 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -35 592 348 740 ; C 206 ; WX 333 ; N ogonek ; B 57 -189 265 15 ; C 207 ; WX 333 ; N caron ; B 19 590 306 740 ; C 208 ; WX 1000 ; N emdash ; B -9 240 1001 313 ; C 225 ; WX 1000 ; N AE ; B 11 0 950 729 ; C 227 ; WX 370 ; N ordfeminine ; B 37 301 333 740 ; C 232 ; WX 556 ; N Lslash ; B 0 0 552 729 ; C 233 ; WX 778 ; N Oslash ; B 30 -23 744 742 ; C 234 ; WX 1000 ; N OE ; B 43 -20 959 739 ; C 235 ; WX 365 ; N ordmasculine ; B 40 301 324 741 ; C 241 ; WX 889 ; N ae ; B 34 -20 845 546 ; C 245 ; WX 278 ; N dotlessi ; B 94 0 178 525 ; C 248 ; WX 222 ; N lslash ; B 0 0 212 729 ; C 249 ; WX 611 ; N oslash ; B 18 -27 529 548 ; C 250 ; WX 944 ; N oe ; B 40 -22 899 540 ; C 251 ; WX 611 ; N germandbls ; B 126 -20 566 729 ; C -1 ; WX 667 ; N Aacute ; B 17 0 653 939 ; C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; C -1 ; WX 667 ; N Adieresis ; B 17 0 653 907 ; C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ; C -1 ; WX 667 ; N Aring ; B 17 0 653 940 ; C -1 ; WX 667 ; N Atilde ; B 17 0 653 915 ; C -1 ; WX 722 ; N Ccedilla ; B 48 -214 677 741 ; C -1 ; WX 667 ; N Eacute ; B 90 0 613 939 ; C -1 ; WX 667 ; N Ecircumflex ; B 90 0 613 940 ; C -1 ; WX 667 ; N Edieresis ; B 90 0 613 907 ; C -1 ; WX 667 ; N Egrave ; B 90 0 613 939 ; C -1 ; WX 722 ; N Eth ; B 0 0 667 729 ; C -1 ; WX 278 ; N Iacute ; B 71 0 280 939 ; C -1 ; WX 278 ; N Icircumflex ; B -1 0 286 940 ; C -1 ; WX 278 ; N Idieresis ; B 9 0 275 907 ; C -1 ; WX 278 ; N Igrave ; B 1 0 210 939 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 646 915 ; C -1 ; WX 778 ; N Oacute ; B 38 -23 742 939 ; C -1 ; WX 778 ; N Ocircumflex ; B 38 -23 742 940 ; C -1 ; WX 778 ; N Odieresis ; B 38 -23 742 907 ; C -1 ; WX 778 ; N Ograve ; B 38 -23 742 939 ; C -1 ; WX 778 ; N Otilde ; B 38 -23 742 915 ; C -1 ; WX 667 ; N Scaron ; B 48 -23 621 939 ; C -1 ; WX 667 ; N Thorn ; B 91 0 617 729 ; C -1 ; WX 722 ; N Uacute ; B 85 -23 645 939 ; C -1 ; WX 722 ; N Ucircumflex ; B 85 -23 645 940 ; C -1 ; WX 722 ; N Udieresis ; B 85 -23 645 907 ; C -1 ; WX 722 ; N Ugrave ; B 85 -23 645 939 ; C -1 ; WX 667 ; N Yacute ; B 13 0 661 944 ; C -1 ; WX 667 ; N Ydieresis ; B 13 0 661 907 ; C -1 ; WX 611 ; N Zcaron ; B 28 0 583 939 ; C -1 ; WX 556 ; N aacute ; B 42 -23 535 740 ; C -1 ; WX 556 ; N acircumflex ; B 42 -23 535 741 ; C -1 ; WX 556 ; N adieresis ; B 42 -23 535 708 ; C -1 ; WX 556 ; N agrave ; B 42 -23 535 740 ; C -1 ; WX 556 ; N aring ; B 42 -23 535 741 ; C -1 ; WX 556 ; N atilde ; B 42 -23 535 716 ; C -1 ; WX 260 ; N brokenbar ; B 100 -215 160 729 ; C -1 ; WX 500 ; N ccedilla ; B 31 -214 477 540 ; C -1 ; WX 737 ; N copyright ; B -13 -23 751 741 ; C -1 ; WX 400 ; N degree ; B 50 409 350 709 ; C -1 ; WX 584 ; N divide ; B 50 -10 534 474 ; C -1 ; WX 556 ; N eacute ; B 40 -23 513 740 ; C -1 ; WX 556 ; N ecircumflex ; B 40 -23 513 741 ; C -1 ; WX 556 ; N edieresis ; B 40 -23 513 708 ; C -1 ; WX 556 ; N egrave ; B 40 -23 513 740 ; C -1 ; WX 556 ; N eth ; B 36 -23 510 729 ; C -1 ; WX 278 ; N iacute ; B 65 0 274 740 ; C -1 ; WX 278 ; N icircumflex ; B -7 0 280 741 ; C -1 ; WX 278 ; N idieresis ; B 3 0 269 708 ; C -1 ; WX 278 ; N igrave ; B -5 0 204 740 ; C -1 ; WX 584 ; N logicalnot ; B 40 82 544 352 ; C -1 ; WX 584 ; N minus ; B 40 194 544 270 ; C -1 ; WX 556 ; N mu ; B 65 -219 482 525 ; C -1 ; WX 584 ; N multiply ; B 50 -10 534 476 ; C -1 ; WX 556 ; N ntilde ; B 70 0 487 716 ; C -1 ; WX 556 ; N oacute ; B 36 -23 510 740 ; C -1 ; WX 556 ; N ocircumflex ; B 36 -23 510 741 ; C -1 ; WX 556 ; N odieresis ; B 36 -23 510 708 ; C -1 ; WX 556 ; N ograve ; B 36 -23 510 740 ; C -1 ; WX 834 ; N onehalf ; B 30 -21 804 709 ; C -1 ; WX 834 ; N onequarter ; B 30 -21 804 709 ; C -1 ; WX 333 ; N onesuperior ; B 60 284 219 709 ; C -1 ; WX 556 ; N otilde ; B 36 -23 510 716 ; C -1 ; WX 584 ; N plusminus ; B 40 0 544 618 ; C -1 ; WX 737 ; N registered ; B -13 -23 751 741 ; C -1 ; WX 500 ; N scaron ; B 34 -24 459 740 ; C -1 ; WX 556 ; N thorn ; B 54 -219 523 729 ; C -1 ; WX 834 ; N threequarters ; B 30 -21 804 709 ; C -1 ; WX 333 ; N threesuperior ; B 12 270 320 709 ; C -1 ; WX 1000 ; N trademark ; B 63 320 938 741 ; C -1 ; WX 333 ; N twosuperior ; B 11 284 321 710 ; C -1 ; WX 556 ; N uacute ; B 65 -23 482 740 ; C -1 ; WX 556 ; N ucircumflex ; B 65 -23 482 741 ; C -1 ; WX 556 ; N udieresis ; B 65 -23 482 708 ; C -1 ; WX 556 ; N ugrave ; B 65 -23 482 740 ; C -1 ; WX 500 ; N yacute ; B 20 -219 478 740 ; C -1 ; WX 500 ; N ydieresis ; B 20 -219 478 708 ; C -1 ; WX 500 ; N zcaron ; B 31 0 457 740 ; EndCharMetrics StartKernData StartKernPairs 105 KPX A y -18 KPX A w -18 KPX A v -18 KPX A space -55 KPX A quoteright -74 KPX A Y -74 KPX A W -37 KPX A V -74 KPX A T -74 KPX F period -111 KPX F comma -111 KPX F A -55 KPX L y -37 KPX L space -37 KPX L quoteright -55 KPX L Y -74 KPX L W -74 KPX L V -74 KPX L T -74 KPX P space -18 KPX P period -129 KPX P comma -129 KPX P A -74 KPX R Y -18 KPX R W -18 KPX R V -18 KPX R T -18 KPX T y -55 KPX T w -55 KPX T u -37 KPX T space -18 KPX T semicolon -111 KPX T s -111 KPX T r -37 KPX T period -111 KPX T o -111 KPX T i -37 KPX T hyphen -55 KPX T e -111 KPX T comma -111 KPX T colon -111 KPX T c -111 KPX T a -111 KPX T O -18 KPX T A -74 KPX V y -37 KPX V u -37 KPX V semicolon -37 KPX V r -37 KPX V period -92 KPX V o -55 KPX V i -18 KPX V hyphen -55 KPX V e -55 KPX V comma -92 KPX V colon -37 KPX V a -74 KPX V A -74 KPX W y -9 KPX W u -18 KPX W semicolon -18 KPX W r -18 KPX W period -55 KPX W o -18 KPX W i 0 KPX W hyphen -18 KPX W e -18 KPX W comma -55 KPX W colon -18 KPX W a -37 KPX W A -37 KPX Y v -55 KPX Y u -55 KPX Y space -18 KPX Y semicolon -65 KPX Y q -92 KPX Y period -129 KPX Y p -74 KPX Y o -92 KPX Y i -37 KPX Y hyphen -92 KPX Y e -92 KPX Y comma -129 KPX Y colon -55 KPX Y a -74 KPX Y A -74 KPX f quoteright 18 KPX f f -18 KPX one one -74 KPX quoteleft quoteleft -18 KPX quoteright space -37 KPX quoteright s -18 KPX quoteright quoteright -18 KPX r quoteright 37 KPX r period -55 KPX r comma -55 KPX space Y -18 KPX space T -18 KPX space A -55 KPX v period -74 KPX v comma -74 KPX w period -55 KPX w comma -55 KPX y period -74 KPX y comma -74 EndKernPairs EndKernData StartComposites 58 CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 199 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 199 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 83 0 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 207 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 96 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 204 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 83 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 199 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 199 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 199 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 199 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 199 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -21 199 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -21 199 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -21 199 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -21 199 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 188 199 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 188 199 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 188 199 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 188 199 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 117 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 117 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 117 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 117 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 199 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 199 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 199 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 199 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 199 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 199 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 199 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 199 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 199 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 200 199 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 117 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 199 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 167 199 ; CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; EndComposites EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvro-c.afm��������������������������������������������������������������������0000644�0000000�0000000�00000005350�14251171650�013237� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 FontName Helvetica-Oblique-Comp StartComposites 57 CC abreve 2 ; PCC a 0 0 ; PCC breve 111 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 210 207 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 270 0 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 424 0 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 83 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 235 196 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 111 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 257 204 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 332 329 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 499 94 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 236 198 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 209 198 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 111 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 215 204 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 150 0 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 290 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 111 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 222 204; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 27 204 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek -35 0 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek -75 0 ; CC lacute 2 ; PCC l 0 0 ; PCC acute 10 196 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute 152 196 ; CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 156 94 ; CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 198 94 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 135 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 281 196 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 236 198 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 111 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 222 204 ; CC racute 2 ; PCC r 0 0 ; PCC acute 24 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 281 196 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 236 198 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 83 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 208 196 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 83 0 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 167 0 ; CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 215 0 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 181 198 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 54 0 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 198 0 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 111 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 194 204 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 111 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 242 204 ; CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 235 197 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 255 0 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 250 0 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 107 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 180 196 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 83 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 187 229 ; EndComposites EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvro-o.afm��������������������������������������������������������������������0000644�0000000�0000000�00000032254�14415562571�013266� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Helvetica-Oblique-Ogonki EncodingScheme StandardEncoding FullName Helvetica-Oblique-Ogonki Composite font FontBBox -178 -220 1108 944 StartCharMetrics 285 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 124 0 363 729 ; C 34 ; WX 355 ; N quotedbl ; B 177 462 455 708 ; C 35 ; WX 556 ; N numbersign ; B 54 -20 649 698 ; C 36 ; WX 556 ; N dollar ; B 69 -125 613 770 ; C 37 ; WX 889 ; N percent ; B 134 -20 895 708 ; C 38 ; WX 667 ; N ampersand ; B 83 -23 644 710 ; C 39 ; WX 222 ; N quoteright ; B 165 476 308 708 ; C 40 ; WX 333 ; N parenleft ; B 113 -213 446 729 ; C 41 ; WX 333 ; N parenright ; B -7 -213 325 729 ; C 42 ; WX 389 ; N asterisk ; B 169 452 471 740 ; C 43 ; WX 584 ; N plus ; B 92 -10 591 474 ; C 44 ; WX 278 ; N comma ; B 55 -150 214 104 ; C 45 ; WX 333 ; N hyphen ; B 97 240 351 313 ; C 46 ; WX 278 ; N period ; B 87 0 213 104 ; C 47 ; WX 278 ; N slash ; B -12 -21 434 708 ; C 48 ; WX 556 ; N zero ; B 98 -23 598 709 ; C 49 ; WX 556 ; N one ; B 208 0 498 709 ; C 50 ; WX 556 ; N two ; B 34 0 620 710 ; C 51 ; WX 556 ; N three ; B 71 -23 599 709 ; C 52 ; WX 556 ; N four ; B 63 0 573 709 ; C 53 ; WX 556 ; N five ; B 70 -23 629 709 ; C 54 ; WX 556 ; N six ; B 93 -23 611 709 ; C 55 ; WX 556 ; N seven ; B 137 0 671 709 ; C 56 ; WX 556 ; N eight ; B 74 -23 604 709 ; C 57 ; WX 556 ; N nine ; B 83 -23 599 709 ; C 58 ; WX 278 ; N colon ; B 110 0 326 525 ; C 59 ; WX 278 ; N semicolon ; B 78 -150 325 516 ; C 60 ; WX 584 ; N less ; B 87 -10 635 474 ; C 61 ; WX 584 ; N equal ; B 74 112 609 352 ; C 62 ; WX 584 ; N greater ; B 48 -10 596 474 ; C 63 ; WX 556 ; N question ; B 184 0 630 738 ; C 64 ; WX 1015 ; N at ; B 80 -146 1036 737 ; C 65 ; WX 667 ; N A ; B 17 0 653 729 ; C 66 ; WX 667 ; N B ; B 79 0 711 729 ; C 67 ; WX 722 ; N C ; B 112 -23 770 741 ; C 68 ; WX 722 ; N D ; B 89 0 759 729 ; C 69 ; WX 667 ; N E ; B 90 0 751 729 ; C 70 ; WX 611 ; N F ; B 90 0 734 729 ; C 71 ; WX 778 ; N G ; B 109 -23 809 741 ; C 72 ; WX 722 ; N H ; B 83 0 799 729 ; C 73 ; WX 278 ; N I ; B 100 0 349 729 ; C 74 ; WX 500 ; N J ; B 47 -26 581 729 ; C 75 ; WX 667 ; N K ; B 79 0 813 729 ; C 76 ; WX 556 ; N L ; B 80 0 551 729 ; C 77 ; WX 833 ; N M ; B 75 0 916 729 ; C 78 ; WX 722 ; N N ; B 76 0 801 729 ; C 79 ; WX 778 ; N O ; B 104 -23 828 741 ; C 80 ; WX 667 ; N P ; B 91 0 733 730 ; C 81 ; WX 778 ; N Q ; B 104 -59 828 741 ; C 82 ; WX 722 ; N R ; B 93 0 770 729 ; C 83 ; WX 667 ; N S ; B 89 -23 714 741 ; C 84 ; WX 611 ; N T ; B 158 0 748 729 ; C 85 ; WX 722 ; N U ; B 124 -23 800 729 ; C 86 ; WX 667 ; N V ; B 185 0 800 729 ; C 87 ; WX 944 ; N W ; B 177 0 1084 729 ; C 88 ; WX 667 ; N X ; B 22 0 794 729 ; C 89 ; WX 667 ; N Y ; B 168 0 816 729 ; C 90 ; WX 611 ; N Z ; B 28 0 737 729 ; C 91 ; WX 278 ; N bracketleft ; B 19 -214 405 729 ; C 92 ; WX 278 ; N backslash ; B 147 -20 280 729 ; C 93 ; WX 278 ; N bracketright ; B -23 -215 364 729 ; C 94 ; WX 469 ; N asciicircum ; B 115 333 496 713 ; C 95 ; WX 556 ; N underscore ; B -59 -175 551 -125 ; C 96 ; WX 222 ; N quoteleft ; B 163 459 308 708 ; C 97 ; WX 556 ; N a ; B 65 -23 568 540 ; C 98 ; WX 556 ; N b ; B 54 -23 588 729 ; C 99 ; WX 500 ; N c ; B 76 -23 554 540 ; C 100 ; WX 556 ; N d ; B 73 -23 650 729 ; C 101 ; WX 556 ; N e ; B 84 -23 580 541 ; C 102 ; WX 278 ; N f ; B 89 0 413 733 ; C 103 ; WX 556 ; N g ; B 32 -220 601 540 ; C 104 ; WX 556 ; N h ; B 70 0 574 729 ; C 105 ; WX 222 ; N i ; B 66 0 305 729 ; C 106 ; WX 222 ; N j ; B -65 -220 308 729 ; C 107 ; WX 500 ; N k ; B 58 0 584 729 ; C 108 ; WX 222 ; N l ; B 68 0 307 729 ; C 109 ; WX 833 ; N m ; B 71 0 852 540 ; C 110 ; WX 556 ; N n ; B 70 0 574 540 ; C 111 ; WX 556 ; N o ; B 80 -23 576 540 ; C 112 ; WX 556 ; N p ; B 7 -219 586 540 ; C 113 ; WX 556 ; N q ; B 71 -219 607 540 ; C 114 ; WX 333 ; N r ; B 69 0 436 540 ; C 115 ; WX 500 ; N s ; B 61 -24 520 540 ; C 116 ; WX 278 ; N t ; B 97 -24 366 667 ; C 117 ; WX 556 ; N u ; B 88 -23 594 525 ; C 118 ; WX 500 ; N v ; B 122 0 598 525 ; C 119 ; WX 722 ; N w ; B 118 0 820 525 ; C 120 ; WX 500 ; N x ; B 17 0 583 525 ; C 121 ; WX 500 ; N y ; B 8 -219 590 525 ; C 122 ; WX 500 ; N z ; B 31 0 557 525 ; C 123 ; WX 334 ; N braceleft ; B 91 -214 431 731 ; C 124 ; WX 260 ; N bar ; B 54 -215 315 729 ; C 125 ; WX 334 ; N braceright ; B -16 -214 324 731 ; C 126 ; WX 584 ; N asciitilde ; B 137 267 594 438 ; C 161 ; WX 333 ; N exclamdown ; B 76 -214 317 525 ; C 162 ; WX 556 ; N cent ; B 96 -120 585 628 ; C 163 ; WX 556 ; N sterling ; B 44 -21 628 726 ; C 164 ; WX 167 ; N fraction ; B -178 -21 486 708 ; C 165 ; WX 556 ; N yen ; B 100 0 696 710 ; C 166 ; WX 556 ; N florin ; B -32 -214 696 742 ; C 167 ; WX 556 ; N section ; B 63 -215 589 729 ; C 168 ; WX 556 ; N currency ; B 110 126 593 554 ; C 169 ; WX 191 ; N quotesingle ; B 173 462 292 708 ; C 170 ; WX 333 ; N quotedblleft ; B 146 459 449 708 ; C 171 ; WX 556 ; N guillemotleft ; B 147 106 548 438 ; C 172 ; WX 333 ; N guilsinglleft ; B 140 112 336 436 ; C 173 ; WX 333 ; N guilsinglright ; B 109 112 307 436 ; C 174 ; WX 500 ; N fi ; B 83 0 591 733 ; C 175 ; WX 500 ; N fl ; B 88 0 585 733 ; C 177 ; WX 556 ; N endash ; B 46 240 628 313 ; C 178 ; WX 556 ; N dagger ; B 127 -178 620 710 ; C 179 ; WX 556 ; N daggerdbl ; B 51 -178 620 710 ; C 180 ; WX 278 ; N periodcentered ; B 166 318 293 442 ; C 182 ; WX 537 ; N paragraph ; B 145 -178 677 729 ; C 183 ; WX 350 ; N bullet ; B 120 220 376 470 ; C 184 ; WX 222 ; N quotesinglbase ; B 37 -129 180 103 ; C 185 ; WX 333 ; N quotedblbase ; B 20 -129 322 103 ; C 186 ; WX 333 ; N quotedblright ; B 150 476 452 708 ; C 187 ; WX 556 ; N guillemotright ; B 121 106 518 438 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 907 104 ; C 189 ; WX 1000 ; N perthousand ; B 93 -20 1024 740 ; C 191 ; WX 611 ; N questiondown ; B 86 -213 531 525 ; C 193 ; WX 333 ; N grave ; B 179 592 357 740 ; C 194 ; WX 333 ; N acute ; B 218 592 458 740 ; C 195 ; WX 333 ; N circumflex ; B 146 591 433 741 ; C 196 ; WX 333 ; N tilde ; B 130 589 471 716 ; C 197 ; WX 333 ; N macron ; B 160 621 450 694 ; C 198 ; WX 333 ; N breve ; B 165 594 471 729 ; C 199 ; WX 333 ; N dotaccent ; B 244 605 370 709 ; C 200 ; WX 333 ; N dieresis ; B 159 605 446 708 ; C 202 ; WX 333 ; N ring ; B 216 566 396 741 ; C 203 ; WX 333 ; N cedilla ; B 1 -214 264 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 91 592 505 740 ; C 206 ; WX 333 ; N ogonek ; B 35 -189 246 15 ; C 207 ; WX 333 ; N caron ; B 176 590 463 740 ; C 208 ; WX 1000 ; N emdash ; B 42 240 1068 313 ; C 225 ; WX 1000 ; N AE ; B 11 0 1087 729 ; C 227 ; WX 370 ; N ordfeminine ; B 107 301 441 740 ; C 232 ; WX 556 ; N Lslash ; B 61 0 570 729 ; C 233 ; WX 778 ; N Oslash ; B 32 -23 867 742 ; C 234 ; WX 1000 ; N OE ; B 101 -20 1108 739 ; C 235 ; WX 365 ; N ordmasculine ; B 114 301 452 741 ; C 241 ; WX 889 ; N ae ; B 59 -20 915 546 ; C 245 ; WX 278 ; N dotlessi ; B 94 0 290 525 ; C 248 ; WX 222 ; N lslash ; B 62 0 312 729 ; C 249 ; WX 611 ; N oslash ; B 19 -27 639 548 ; C 250 ; WX 944 ; N oe ; B 85 -22 966 540 ; C 251 ; WX 611 ; N germandbls ; B 126 -20 655 729 ; C -1 ; WX 667 ; N Aacute ; B 17 0 667 939 ; C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; C -1 ; WX 667 ; N Adieresis ; B 17 0 655 907 ; C -1 ; WX 667 ; N Agrave ; B 17 0 653 944 ; C -1 ; WX 667 ; N Aring ; B 17 0 653 945 ; C -1 ; WX 667 ; N Atilde ; B 17 0 653 920 ; C -1 ; WX 722 ; N Ccedilla ; B 112 -214 770 741 ; C -1 ; WX 667 ; N Eacute ; B 90 0 751 939 ; C -1 ; WX 667 ; N Ecircumflex ; B 90 0 751 945 ; C -1 ; WX 667 ; N Edieresis ; B 90 0 751 907 ; C -1 ; WX 667 ; N Egrave ; B 90 0 751 944 ; C -1 ; WX 722 ; N Eth ; B 73 0 759 729 ; C -1 ; WX 278 ; N Iacute ; B 100 0 479 939 ; C -1 ; WX 278 ; N Icircumflex ; B 100 0 454 940 ; C -1 ; WX 278 ; N Idieresis ; B 100 0 419 912 ; C -1 ; WX 278 ; N Igrave ; B 100 0 349 944 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 801 920 ; C -1 ; WX 778 ; N Oacute ; B 104 -23 828 939 ; C -1 ; WX 778 ; N Ocircumflex ; B 104 -23 828 940 ; C -1 ; WX 778 ; N Odieresis ; B 104 -23 828 907 ; C -1 ; WX 778 ; N Ograve ; B 104 -23 828 944 ; C -1 ; WX 778 ; N Otilde ; B 104 -23 828 920 ; C -1 ; WX 667 ; N Scaron ; B 89 -23 714 939 ; C -1 ; WX 667 ; N Thorn ; B 91 0 707 729 ; C -1 ; WX 722 ; N Uacute ; B 124 -23 800 939 ; C -1 ; WX 722 ; N Ucircumflex ; B 124 -23 800 945 ; C -1 ; WX 722 ; N Udieresis ; B 124 -23 800 907 ; C -1 ; WX 722 ; N Ugrave ; B 124 -23 800 944 ; C -1 ; WX 667 ; N Yacute ; B 168 0 816 944 ; C -1 ; WX 667 ; N Ydieresis ; B 168 0 816 912 ; C -1 ; WX 611 ; N Zcaron ; B 28 0 737 939 ; C -1 ; WX 556 ; N aacute ; B 65 -23 570 740 ; C -1 ; WX 556 ; N acircumflex ; B 65 -23 568 741 ; C -1 ; WX 556 ; N adieresis ; B 65 -23 568 708 ; C -1 ; WX 556 ; N agrave ; B 65 -23 568 740 ; C -1 ; WX 556 ; N aring ; B 65 -23 568 741 ; C -1 ; WX 556 ; N atilde ; B 65 -23 582 716 ; C -1 ; WX 260 ; N brokenbar ; B 54 -215 315 729 ; C -1 ; WX 500 ; N ccedilla ; B 76 -214 554 540 ; C -1 ; WX 737 ; N copyright ; B 55 -23 836 741 ; C -1 ; WX 400 ; N degree ; B 165 409 472 709 ; C -1 ; WX 584 ; N divide ; B 92 -10 591 474 ; C -1 ; WX 556 ; N eacute ; B 84 -23 580 740 ; C -1 ; WX 556 ; N ecircumflex ; B 84 -23 580 741 ; C -1 ; WX 556 ; N edieresis ; B 84 -23 580 708 ; C -1 ; WX 556 ; N egrave ; B 84 -23 580 740 ; C -1 ; WX 556 ; N eth ; B 80 -23 572 729 ; C -1 ; WX 278 ; N iacute ; B 94 0 431 740 ; C -1 ; WX 278 ; N icircumflex ; B 94 0 406 741 ; C -1 ; WX 278 ; N idieresis ; B 94 0 419 708 ; C -1 ; WX 278 ; N igrave ; B 94 0 330 740 ; C -1 ; WX 584 ; N logicalnot ; B 99 82 619 352 ; C -1 ; WX 584 ; N minus ; B 81 194 601 270 ; C -1 ; WX 556 ; N mu ; B 18 -219 594 525 ; C -1 ; WX 584 ; N multiply ; B 59 -10 625 476 ; C -1 ; WX 556 ; N ntilde ; B 70 0 582 716 ; C -1 ; WX 556 ; N oacute ; B 80 -23 576 740 ; C -1 ; WX 556 ; N ocircumflex ; B 80 -23 576 741 ; C -1 ; WX 556 ; N odieresis ; B 80 -23 576 708 ; C -1 ; WX 556 ; N ograve ; B 80 -23 576 740 ; C -1 ; WX 834 ; N onehalf ; B 116 -21 869 709 ; C -1 ; WX 834 ; N onequarter ; B 147 -21 836 709 ; C -1 ; WX 333 ; N onesuperior ; B 184 284 370 709 ; C -1 ; WX 556 ; N otilde ; B 80 -23 582 716 ; C -1 ; WX 584 ; N plusminus ; B 40 0 621 618 ; C -1 ; WX 737 ; N registered ; B 55 -23 836 741 ; C -1 ; WX 500 ; N scaron ; B 61 -24 547 740 ; C -1 ; WX 556 ; N thorn ; B 7 -219 588 729 ; C -1 ; WX 834 ; N threequarters ; B 114 -21 868 709 ; C -1 ; WX 333 ; N threesuperior ; B 96 270 435 709 ; C -1 ; WX 1000 ; N trademark ; B 208 320 1096 741 ; C -1 ; WX 333 ; N twosuperior ; B 71 284 447 710 ; C -1 ; WX 556 ; N uacute ; B 88 -23 594 740 ; C -1 ; WX 556 ; N ucircumflex ; B 88 -23 594 741 ; C -1 ; WX 556 ; N udieresis ; B 88 -23 594 708 ; C -1 ; WX 556 ; N ugrave ; B 88 -23 594 740 ; C -1 ; WX 500 ; N yacute ; B 8 -219 590 740 ; C -1 ; WX 500 ; N ydieresis ; B 8 -219 590 708 ; C -1 ; WX 500 ; N zcaron ; B 31 0 557 740 ; C -1 ; WX 556 ; N abreve ; B 65 -23 582 729 ; C -1 ; WX 667 ; N Abreve ; B 17 0 681 936 ; C -1 ; WX 556 ; N aogonek ; B 65 -189 568 540 ; C -1 ; WX 667 ; N Aogonek ; B 17 -189 670 729 ; C -1 ; WX 500 ; N cacute ; B 76 -23 554 740 ; C -1 ; WX 722 ; N Cacute ; B 112 -23 770 936 ; C -1 ; WX 500 ; N ccaron ; B 76 -23 574 740 ; C -1 ; WX 722 ; N Ccaron ; B 112 -23 770 944 ; C -1 ; WX 556 ; N dbar ; B 73 -23 683 729 ; C -1 ; WX 722 ; N Dbar ; B 0 0 759 729 ; C -1 ; WX 556 ; N dcaron ; B 73 -23 807 802 ; C -1 ; WX 722 ; N Dcaron ; B 89 0 759 938 ; C -1 ; WX 556 ; N ecaron ; B 84 -23 580 740 ; C -1 ; WX 667 ; N Ecaron ; B 90 0 751 938 ; C -1 ; WX 556 ; N edotaccent ; B 84 -23 580 709 ; C -1 ; WX 667 ; N Edotaccent ; B 90 0 751 913 ; C -1 ; WX 556 ; N eogonek ; B 84 -189 580 541 ; C -1 ; WX 667 ; N Eogonek ; B 90 -189 751 729 ; C -1 ; WX 556 ; N gbreve ; B 32 -220 601 729 ; C -1 ; WX 778 ; N Gbreve ; B 109 -23 809 933 ; C -1 ; WX 278 ; N Idotaccent ; B 100 0 397 913 ; C -1 ; WX 278 ; N Iogonek ; B 0 -189 349 729 ; C -1 ; WX 222 ; N iogonek ; B -40 -189 305 729 ; C -1 ; WX 222 ; N lacute ; B 68 0 468 936 ; C -1 ; WX 556 ; N Lacute ; B 80 0 610 936 ; C -1 ; WX 222 ; N lcaron ; B 68 0 464 802 ; C -1 ; WX 556 ; N Lcaron ; B 80 0 551 802 ; C -1 ; WX 556 ; N nacute ; B 70 0 593 740 ; C -1 ; WX 722 ; N Nacute ; B 76 0 801 936 ; C -1 ; WX 556 ; N ncaron ; B 70 0 574 740 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 801 938 ; C -1 ; WX 556 ; N ohungarumlaut ; B 80 -23 616 740 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 104 -23 828 944 ; C -1 ; WX 333 ; N racute ; B 69 0 482 740 ; C -1 ; WX 722 ; N Racute ; B 93 0 770 936 ; C -1 ; WX 333 ; N rcaron ; B 69 0 463 740 ; C -1 ; WX 722 ; N Rcaron ; B 93 0 770 938 ; C -1 ; WX 500 ; N sacute ; B 61 -24 541 740 ; C -1 ; WX 667 ; N Sacute ; B 89 -23 714 936 ; C -1 ; WX 500 ; N scedilla ; B 61 -214 520 540 ; C -1 ; WX 667 ; N Scedilla ; B 89 -214 714 741 ; C -1 ; WX 278 ; N tcaron ; B 97 -24 523 708 ; C -1 ; WX 611 ; N Tcaron ; B 158 0 748 938 ; C -1 ; WX 278 ; N tcedilla ; B 55 -214 366 667 ; C -1 ; WX 611 ; N Tcedilla ; B 158 -214 748 729 ; C -1 ; WX 556 ; N uhungarumlaut ; B 88 -23 616 740 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 124 -23 800 944 ; C -1 ; WX 556 ; N umacron ; B 88 -23 594 694 ; C -1 ; WX 722 ; N Umacron ; B 124 -23 800 898 ; C -1 ; WX 556 ; N uring ; B 88 -23 594 741 ; C -1 ; WX 722 ; N Uring ; B 124 -23 800 938 ; C -1 ; WX 556 ; N uogonek ; B 88 -189 594 525 ; C -1 ; WX 722 ; N Uogonek ; B 124 -189 800 729 ; C -1 ; WX 500 ; N zacute ; B 31 0 565 740 ; C -1 ; WX 611 ; N Zacute ; B 28 0 737 936 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 557 709 ; C -1 ; WX 611 ; N Zdotaccent ; B 28 0 737 938 ; EndCharMetrics EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvro-o.ps���������������������������������������������������������������������0000644�0000000�0000000�00000005657�14415562571�013154� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Helvetica-Oblique-Ogonki /Helvetica-Oblique /Helvetica-Oblique-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Ydieresis [89 167 204 168] put dup /ydieresis [121 83 0 168] put dup /Ucircumflex [85 194 204 28] put dup /Ugrave [85 194 204 27] put dup /ucircumflex [117 111 0 28] put dup /ugrave [117 111 0 27] put dup /Idieresis [73 -27 204 168] put dup /Igrave [73 -27 204 27] put dup /idieresis [136 -27 0 168] put dup /igrave [136 -27 0 27] put dup /Ecircumflex [69 167 204 28] put dup /Egrave [69 167 204 27] put dup /ecircumflex [101 111 0 28] put dup /egrave [101 111 0 27] put dup /Agrave [65 167 204 27] put dup /agrave [97 111 0 27] put dup /Ograve [79 222 204 27] put dup /ograve [111 111 0 27] put dup /Atilde [65 167 204 29] put dup /atilde [97 111 0 29] put dup /Ntilde [78 194 204 29] put dup /ntilde [110 111 0 29] put dup /Otilde [79 222 204 29] put dup /otilde [111 111 0 29] put dup /Aring [65 167 204 31] put dup /aring [97 111 0 31] put dup /abreve [97 111 0 162] put dup /Abreve [65 210 207 162] put dup /aogonek [97 270 0 178] put dup /Aogonek [65 424 0 178] put dup /cacute [99 83 0 180] put dup /Cacute [67 235 196 180] put dup /ccaron [99 111 0 183] put dup /Ccaron [67 257 204 183] put dup /dbar [100 332 329 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 499 94 39] put dup /Dcaron [68 236 198 183] put dup /ecaron [101 111 0 183] put dup /Ecaron [69 209 198 183] put dup /edotaccent [101 111 0 255] put dup /Edotaccent [69 215 204 255] put dup /eogonek [101 150 0 178] put dup /Eogonek [69 290 0 178] put dup /gbreve [103 111 0 162] put dup /Gbreve [71 222 204 162] put dup /Idotaccent [73 27 204 255] put dup /Iogonek [73 -35 0 178] put dup /iogonek [105 -75 0 178] put dup /lacute [108 10 196 180] put dup /Lacute [76 152 196 180] put dup /lcaron [108 156 94 39] put dup /Lcaron [76 198 94 39] put dup /nacute [110 135 0 180] put dup /Nacute [78 281 196 180] put dup /ncaron [110 111 0 183] put dup /Ncaron [78 236 198 183] put dup /ohungarumlaut [111 111 0 189] put dup /Ohungarumlaut [79 222 204 189] put dup /racute [114 24 0 180] put dup /Racute [82 281 196 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 236 198 183] put dup /sacute [115 83 0 180] put dup /Sacute [83 208 196 180] put dup /scedilla [115 83 0 184] put dup /Scedilla [83 167 0 184] put dup /tcaron [116 215 0 39] put dup /Tcaron [84 181 198 183] put dup /tcedilla [116 54 0 184] put dup /Tcedilla [84 198 0 184] put dup /uhungarumlaut [117 111 0 189] put dup /Uhungarumlaut [85 194 204 189] put dup /umacron [117 111 0 30] put dup /Umacron [85 242 204 30] put dup /uring [117 111 0 31] put dup /Uring [85 235 197 31] put dup /uogonek [117 255 0 178] put dup /Uogonek [85 250 0 178] put dup /zacute [122 107 0 180] put dup /Zacute [90 180 196 180] put dup /zdotaccent [122 83 0 255] put dup /Zdotaccent [90 187 229 255] put makeComposite %%EndResource ���������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/phvro.afm����������������������������������������������������������������������0000644�0000000�0000000�00000036176�14233473143�013033� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date:Sun Feb 8 20:00:37 PST 1987 FontName Helvetica-Oblique EncodingScheme AdobeStandardEncoding FullName Helvetica Oblique FamilyName Helvetica Weight Medium ItalicAngle -12.0 IsFixedPitch false UnderlinePosition -106 UnderlineThickness 73 Version 001.002 Notice Helvetica is a registered trademark of Allied Corporation. FontBBox -178 -220 1108 944 CapHeight 729 XHeight 525 Descender -219 Ascender 729 StartCharMetrics 228 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 124 0 363 729 ; C 34 ; WX 355 ; N quotedbl ; B 177 462 455 708 ; C 35 ; WX 556 ; N numbersign ; B 54 -20 649 698 ; C 36 ; WX 556 ; N dollar ; B 69 -125 613 770 ; C 37 ; WX 889 ; N percent ; B 134 -20 895 708 ; C 38 ; WX 667 ; N ampersand ; B 83 -23 644 710 ; C 39 ; WX 222 ; N quoteright ; B 165 476 308 708 ; C 40 ; WX 333 ; N parenleft ; B 113 -213 446 729 ; C 41 ; WX 333 ; N parenright ; B -7 -213 325 729 ; C 42 ; WX 389 ; N asterisk ; B 169 452 471 740 ; C 43 ; WX 584 ; N plus ; B 92 -10 591 474 ; C 44 ; WX 278 ; N comma ; B 55 -150 214 104 ; C 45 ; WX 333 ; N hyphen ; B 97 240 351 313 ; C 46 ; WX 278 ; N period ; B 87 0 213 104 ; C 47 ; WX 278 ; N slash ; B -12 -21 434 708 ; C 48 ; WX 556 ; N zero ; B 98 -23 598 709 ; C 49 ; WX 556 ; N one ; B 208 0 498 709 ; C 50 ; WX 556 ; N two ; B 34 0 620 710 ; C 51 ; WX 556 ; N three ; B 71 -23 599 709 ; C 52 ; WX 556 ; N four ; B 63 0 573 709 ; C 53 ; WX 556 ; N five ; B 70 -23 629 709 ; C 54 ; WX 556 ; N six ; B 93 -23 611 709 ; C 55 ; WX 556 ; N seven ; B 137 0 671 709 ; C 56 ; WX 556 ; N eight ; B 74 -23 604 709 ; C 57 ; WX 556 ; N nine ; B 83 -23 599 709 ; C 58 ; WX 278 ; N colon ; B 110 0 326 525 ; C 59 ; WX 278 ; N semicolon ; B 78 -150 325 516 ; C 60 ; WX 584 ; N less ; B 87 -10 635 474 ; C 61 ; WX 584 ; N equal ; B 74 112 609 352 ; C 62 ; WX 584 ; N greater ; B 48 -10 596 474 ; C 63 ; WX 556 ; N question ; B 184 0 630 738 ; C 64 ; WX 1015 ; N at ; B 80 -146 1036 737 ; C 65 ; WX 667 ; N A ; B 17 0 653 729 ; C 66 ; WX 667 ; N B ; B 79 0 711 729 ; C 67 ; WX 722 ; N C ; B 112 -23 770 741 ; C 68 ; WX 722 ; N D ; B 89 0 759 729 ; C 69 ; WX 667 ; N E ; B 90 0 751 729 ; C 70 ; WX 611 ; N F ; B 90 0 734 729 ; C 71 ; WX 778 ; N G ; B 109 -23 809 741 ; C 72 ; WX 722 ; N H ; B 83 0 799 729 ; C 73 ; WX 278 ; N I ; B 100 0 349 729 ; C 74 ; WX 500 ; N J ; B 47 -26 581 729 ; C 75 ; WX 667 ; N K ; B 79 0 813 729 ; C 76 ; WX 556 ; N L ; B 80 0 551 729 ; C 77 ; WX 833 ; N M ; B 75 0 916 729 ; C 78 ; WX 722 ; N N ; B 76 0 801 729 ; C 79 ; WX 778 ; N O ; B 104 -23 828 741 ; C 80 ; WX 667 ; N P ; B 91 0 733 730 ; C 81 ; WX 778 ; N Q ; B 104 -59 828 741 ; C 82 ; WX 722 ; N R ; B 93 0 770 729 ; C 83 ; WX 667 ; N S ; B 89 -23 714 741 ; C 84 ; WX 611 ; N T ; B 158 0 748 729 ; C 85 ; WX 722 ; N U ; B 124 -23 800 729 ; C 86 ; WX 667 ; N V ; B 185 0 800 729 ; C 87 ; WX 944 ; N W ; B 177 0 1084 729 ; C 88 ; WX 667 ; N X ; B 22 0 794 729 ; C 89 ; WX 667 ; N Y ; B 168 0 816 729 ; C 90 ; WX 611 ; N Z ; B 28 0 737 729 ; C 91 ; WX 278 ; N bracketleft ; B 19 -214 405 729 ; C 92 ; WX 278 ; N backslash ; B 147 -20 280 729 ; C 93 ; WX 278 ; N bracketright ; B -23 -215 364 729 ; C 94 ; WX 469 ; N asciicircum ; B 115 333 496 713 ; C 95 ; WX 556 ; N underscore ; B -59 -175 551 -125 ; C 96 ; WX 222 ; N quoteleft ; B 163 459 308 708 ; C 97 ; WX 556 ; N a ; B 65 -23 568 540 ; C 98 ; WX 556 ; N b ; B 54 -23 588 729 ; C 99 ; WX 500 ; N c ; B 76 -23 554 540 ; C 100 ; WX 556 ; N d ; B 73 -23 650 729 ; C 101 ; WX 556 ; N e ; B 84 -23 580 541 ; C 102 ; WX 278 ; N f ; B 89 0 413 733 ; L i fi ; L l fl ; C 103 ; WX 556 ; N g ; B 32 -220 601 540 ; C 104 ; WX 556 ; N h ; B 70 0 574 729 ; C 105 ; WX 222 ; N i ; B 66 0 305 729 ; C 106 ; WX 222 ; N j ; B -65 -220 308 729 ; C 107 ; WX 500 ; N k ; B 58 0 584 729 ; C 108 ; WX 222 ; N l ; B 68 0 307 729 ; C 109 ; WX 833 ; N m ; B 71 0 852 540 ; C 110 ; WX 556 ; N n ; B 70 0 574 540 ; C 111 ; WX 556 ; N o ; B 80 -23 576 540 ; C 112 ; WX 556 ; N p ; B 7 -219 586 540 ; C 113 ; WX 556 ; N q ; B 71 -219 607 540 ; C 114 ; WX 333 ; N r ; B 69 0 436 540 ; C 115 ; WX 500 ; N s ; B 61 -24 520 540 ; C 116 ; WX 278 ; N t ; B 97 -24 366 667 ; C 117 ; WX 556 ; N u ; B 88 -23 594 525 ; C 118 ; WX 500 ; N v ; B 122 0 598 525 ; C 119 ; WX 722 ; N w ; B 118 0 820 525 ; C 120 ; WX 500 ; N x ; B 17 0 583 525 ; C 121 ; WX 500 ; N y ; B 8 -219 590 525 ; C 122 ; WX 500 ; N z ; B 31 0 557 525 ; C 123 ; WX 334 ; N braceleft ; B 91 -214 431 731 ; C 124 ; WX 260 ; N bar ; B 54 -215 315 729 ; C 125 ; WX 334 ; N braceright ; B -16 -214 324 731 ; C 126 ; WX 584 ; N asciitilde ; B 137 267 594 438 ; C 161 ; WX 333 ; N exclamdown ; B 76 -214 317 525 ; C 162 ; WX 556 ; N cent ; B 96 -120 585 628 ; C 163 ; WX 556 ; N sterling ; B 44 -21 628 726 ; C 164 ; WX 167 ; N fraction ; B -178 -21 486 708 ; C 165 ; WX 556 ; N yen ; B 100 0 696 710 ; C 166 ; WX 556 ; N florin ; B -32 -214 696 742 ; C 167 ; WX 556 ; N section ; B 63 -215 589 729 ; C 168 ; WX 556 ; N currency ; B 110 126 593 554 ; C 169 ; WX 191 ; N quotesingle ; B 173 462 292 708 ; C 170 ; WX 333 ; N quotedblleft ; B 146 459 449 708 ; C 171 ; WX 556 ; N guillemotleft ; B 147 106 548 438 ; C 172 ; WX 333 ; N guilsinglleft ; B 140 112 336 436 ; C 173 ; WX 333 ; N guilsinglright ; B 109 112 307 436 ; C 174 ; WX 500 ; N fi ; B 83 0 591 733 ; C 175 ; WX 500 ; N fl ; B 88 0 585 733 ; C 177 ; WX 556 ; N endash ; B 46 240 628 313 ; C 178 ; WX 556 ; N dagger ; B 127 -178 620 710 ; C 179 ; WX 556 ; N daggerdbl ; B 51 -178 620 710 ; C 180 ; WX 278 ; N periodcentered ; B 166 318 293 442 ; C 182 ; WX 537 ; N paragraph ; B 145 -178 677 729 ; C 183 ; WX 350 ; N bullet ; B 120 220 376 470 ; C 184 ; WX 222 ; N quotesinglbase ; B 37 -129 180 103 ; C 185 ; WX 333 ; N quotedblbase ; B 20 -129 322 103 ; C 186 ; WX 333 ; N quotedblright ; B 150 476 452 708 ; C 187 ; WX 556 ; N guillemotright ; B 121 106 518 438 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 907 104 ; C 189 ; WX 1000 ; N perthousand ; B 93 -20 1024 740 ; C 191 ; WX 611 ; N questiondown ; B 86 -213 531 525 ; C 193 ; WX 333 ; N grave ; B 179 592 357 740 ; C 194 ; WX 333 ; N acute ; B 218 592 458 740 ; C 195 ; WX 333 ; N circumflex ; B 146 591 433 741 ; C 196 ; WX 333 ; N tilde ; B 130 589 471 716 ; C 197 ; WX 333 ; N macron ; B 160 621 450 694 ; C 198 ; WX 333 ; N breve ; B 165 594 471 729 ; C 199 ; WX 333 ; N dotaccent ; B 244 605 370 709 ; C 200 ; WX 333 ; N dieresis ; B 159 605 446 708 ; C 202 ; WX 333 ; N ring ; B 216 566 396 741 ; C 203 ; WX 333 ; N cedilla ; B 1 -214 264 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 91 592 505 740 ; C 206 ; WX 333 ; N ogonek ; B 35 -189 246 15 ; C 207 ; WX 333 ; N caron ; B 176 590 463 740 ; C 208 ; WX 1000 ; N emdash ; B 42 240 1068 313 ; C 225 ; WX 1000 ; N AE ; B 11 0 1087 729 ; C 227 ; WX 370 ; N ordfeminine ; B 107 301 441 740 ; C 232 ; WX 556 ; N Lslash ; B 61 0 570 729 ; C 233 ; WX 778 ; N Oslash ; B 32 -23 867 742 ; C 234 ; WX 1000 ; N OE ; B 101 -20 1108 739 ; C 235 ; WX 365 ; N ordmasculine ; B 114 301 452 741 ; C 241 ; WX 889 ; N ae ; B 59 -20 915 546 ; C 245 ; WX 278 ; N dotlessi ; B 94 0 290 525 ; C 248 ; WX 222 ; N lslash ; B 62 0 312 729 ; C 249 ; WX 611 ; N oslash ; B 19 -27 639 548 ; C 250 ; WX 944 ; N oe ; B 85 -22 966 540 ; C 251 ; WX 611 ; N germandbls ; B 126 -20 655 729 ; C -1 ; WX 667 ; N Aacute ; B 17 0 667 939 ; C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; C -1 ; WX 667 ; N Adieresis ; B 17 0 655 907 ; C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ; C -1 ; WX 667 ; N Aring ; B 17 0 653 940 ; C -1 ; WX 667 ; N Atilde ; B 17 0 680 915 ; C -1 ; WX 722 ; N Ccedilla ; B 112 -214 770 741 ; C -1 ; WX 667 ; N Eacute ; B 90 0 751 939 ; C -1 ; WX 667 ; N Ecircumflex ; B 90 0 751 940 ; C -1 ; WX 667 ; N Edieresis ; B 90 0 751 907 ; C -1 ; WX 667 ; N Egrave ; B 90 0 751 939 ; C -1 ; WX 722 ; N Eth ; B 73 0 759 729 ; C -1 ; WX 278 ; N Iacute ; B 100 0 479 939 ; C -1 ; WX 278 ; N Icircumflex ; B 100 0 454 940 ; C -1 ; WX 278 ; N Idieresis ; B 100 0 467 907 ; C -1 ; WX 278 ; N Igrave ; B 100 0 378 939 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 801 915 ; C -1 ; WX 778 ; N Oacute ; B 104 -23 828 939 ; C -1 ; WX 778 ; N Ocircumflex ; B 104 -23 828 940 ; C -1 ; WX 778 ; N Odieresis ; B 104 -23 828 907 ; C -1 ; WX 778 ; N Ograve ; B 104 -23 828 939 ; C -1 ; WX 778 ; N Otilde ; B 104 -23 828 915 ; C -1 ; WX 667 ; N Scaron ; B 89 -23 714 939 ; C -1 ; WX 667 ; N Thorn ; B 91 0 707 729 ; C -1 ; WX 722 ; N Uacute ; B 124 -23 800 939 ; C -1 ; WX 722 ; N Ucircumflex ; B 124 -23 800 940 ; C -1 ; WX 722 ; N Udieresis ; B 124 -23 800 907 ; C -1 ; WX 722 ; N Ugrave ; B 124 -23 800 939 ; C -1 ; WX 667 ; N Yacute ; B 168 0 816 944 ; C -1 ; WX 667 ; N Ydieresis ; B 168 0 816 907 ; C -1 ; WX 611 ; N Zcaron ; B 28 0 737 939 ; C -1 ; WX 556 ; N aacute ; B 65 -23 570 740 ; C -1 ; WX 556 ; N acircumflex ; B 65 -23 568 741 ; C -1 ; WX 556 ; N adieresis ; B 65 -23 568 708 ; C -1 ; WX 556 ; N agrave ; B 65 -23 568 740 ; C -1 ; WX 556 ; N aring ; B 65 -23 568 741 ; C -1 ; WX 556 ; N atilde ; B 65 -23 583 716 ; C -1 ; WX 260 ; N brokenbar ; B 54 -215 315 729 ; C -1 ; WX 500 ; N ccedilla ; B 76 -214 554 540 ; C -1 ; WX 737 ; N copyright ; B 55 -23 836 741 ; C -1 ; WX 400 ; N degree ; B 165 409 472 709 ; C -1 ; WX 584 ; N divide ; B 92 -10 591 474 ; C -1 ; WX 556 ; N eacute ; B 84 -23 580 740 ; C -1 ; WX 556 ; N ecircumflex ; B 84 -23 580 741 ; C -1 ; WX 556 ; N edieresis ; B 84 -23 580 708 ; C -1 ; WX 556 ; N egrave ; B 84 -23 580 740 ; C -1 ; WX 556 ; N eth ; B 80 -23 572 729 ; C -1 ; WX 278 ; N iacute ; B 94 0 431 740 ; C -1 ; WX 278 ; N icircumflex ; B 94 0 406 741 ; C -1 ; WX 278 ; N idieresis ; B 94 0 419 708 ; C -1 ; WX 278 ; N igrave ; B 94 0 330 740 ; C -1 ; WX 584 ; N logicalnot ; B 99 82 619 352 ; C -1 ; WX 584 ; N minus ; B 81 194 601 270 ; C -1 ; WX 556 ; N mu ; B 18 -219 594 525 ; C -1 ; WX 584 ; N multiply ; B 59 -10 625 476 ; C -1 ; WX 556 ; N ntilde ; B 70 0 589 716 ; C -1 ; WX 556 ; N oacute ; B 80 -23 576 740 ; C -1 ; WX 556 ; N ocircumflex ; B 80 -23 576 741 ; C -1 ; WX 556 ; N odieresis ; B 80 -23 576 708 ; C -1 ; WX 556 ; N ograve ; B 80 -23 576 740 ; C -1 ; WX 834 ; N onehalf ; B 116 -21 869 709 ; C -1 ; WX 834 ; N onequarter ; B 147 -21 836 709 ; C -1 ; WX 333 ; N onesuperior ; B 184 284 370 709 ; C -1 ; WX 556 ; N otilde ; B 80 -23 583 716 ; C -1 ; WX 584 ; N plusminus ; B 40 0 621 618 ; C -1 ; WX 737 ; N registered ; B 55 -23 836 741 ; C -1 ; WX 500 ; N scaron ; B 61 -24 547 740 ; C -1 ; WX 556 ; N thorn ; B 7 -219 588 729 ; C -1 ; WX 834 ; N threequarters ; B 114 -21 868 709 ; C -1 ; WX 333 ; N threesuperior ; B 96 270 435 709 ; C -1 ; WX 1000 ; N trademark ; B 208 320 1096 741 ; C -1 ; WX 333 ; N twosuperior ; B 71 284 447 710 ; C -1 ; WX 556 ; N uacute ; B 88 -23 594 740 ; C -1 ; WX 556 ; N ucircumflex ; B 88 -23 594 741 ; C -1 ; WX 556 ; N udieresis ; B 88 -23 594 708 ; C -1 ; WX 556 ; N ugrave ; B 88 -23 594 740 ; C -1 ; WX 500 ; N yacute ; B 8 -219 590 740 ; C -1 ; WX 500 ; N ydieresis ; B 8 -219 590 708 ; C -1 ; WX 500 ; N zcaron ; B 31 0 557 740 ; EndCharMetrics StartKernData StartKernPairs 98 KPX A y -9 KPX A w -18 KPX A v -18 KPX A space -37 KPX A quoteright -37 KPX A Y -74 KPX A W -18 KPX A V -55 KPX A T -74 KPX F space -18 KPX F period -129 KPX F comma -129 KPX F A -74 KPX L y -18 KPX L space -18 KPX L quoteright -55 KPX L Y -92 KPX L W -37 KPX L V -55 KPX L T -74 KPX P space -37 KPX P period -129 KPX P comma -129 KPX P A -74 KPX R Y -37 KPX R W -18 KPX R V -18 KPX R T -18 KPX T y -74 KPX T w -74 KPX T u -74 KPX T semicolon -74 KPX T s -92 KPX T r -74 KPX T period -92 KPX T o -92 KPX T i -9 KPX T hyphen -92 KPX T e -92 KPX T comma -92 KPX T colon -74 KPX T c -92 KPX T a -92 KPX T O -18 KPX T A -74 KPX V y -18 KPX V u -18 KPX V semicolon -18 KPX V r -18 KPX V period -74 KPX V o -37 KPX V i -18 KPX V hyphen -37 KPX V e -37 KPX V comma -74 KPX V colon -18 KPX V a -37 KPX V A -55 KPX W period -37 KPX W i -9 KPX W hyphen -18 KPX W e -18 KPX W comma -37 KPX W a -18 KPX W A -18 KPX Y v -37 KPX Y u -37 KPX Y space -18 KPX Y semicolon -37 KPX Y q -55 KPX Y period -92 KPX Y p -55 KPX Y o -55 KPX Y i -18 KPX Y hyphen -74 KPX Y e -55 KPX Y comma -92 KPX Y colon -37 KPX Y a -74 KPX Y A -55 KPX f quoteright 37 KPX one one -74 KPX quoteleft quoteleft -37 KPX quoteright space -55 KPX quoteright s -18 KPX quoteright quoteright -37 KPX r quoteright 37 KPX r period -37 KPX r hyphen -18 KPX r comma -55 KPX space Y -18 KPX space A -37 KPX v period -74 KPX v comma -74 KPX w period -55 KPX w comma -55 KPX y period -74 KPX y comma -74 EndKernPairs EndKernData StartComposites 58 CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 204 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 204 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 83 0 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 194 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 83 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 204 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 83 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 204 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 204 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 204 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 204 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 204 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 204 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 204 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 204 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 204 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 204 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 204 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 204 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 204 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 204 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 204 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 204 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 204 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 204 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 204 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 204 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 204 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 204 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 204 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 204 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 167 204 ; CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; EndComposites EndFontMetrics ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/printenc.ps��������������������������������������������������������������������0000644�0000000�0000000�00000000165�14233473143�013363� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! /printenc { 0 1 255 { (C) = dup = (; N) = 1 index 1 index get = () = pop } for } def �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmb-c.afm���������������������������������������������������������������������0000644�0000000�0000000�00000005650�14233473143�013050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment More composite characters for Times-Roman. Comment by J. Chroboczek <jec@dcs.ed.ac.uk> Comment This is not strictly a conforming AFM file. FontName Times-Bold-Comp StartComposites 57 CC abreve 2 ; PCC a 0 0 ; PCC breve 83 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 194 240 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 175 -30 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 384 -30 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 70 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 210 219 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 84 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 232 219 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 240 300 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 473 53 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 210 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 61 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 174 219 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 61 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 187 219 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 114 -30 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 295 -30 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 83 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 222 219 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 28 219 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek -50 -30 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek 63 -30 ; CC lacute 2 ; PCC l 0 0 ; PCC acute -3 210 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute 167 210 ; CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 194 53 ; CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 309 53 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 90 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 190 219 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 210 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 83 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 222 219 ; CC racute 2 ; PCC r 0 0 ; PCC acute 79 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 239 210 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 210 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 20 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 100 219 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 12 0 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 94 0 ; CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 271 0 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 167 210 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 89 0 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 227 0 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 104 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 215 219 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 104 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 221 219 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 236 -25 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 299 -25 ; CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 194 174 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 80 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 160 219 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 70 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 200 219 ; EndComposites EndFontMetrics ����������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmb-o.afm���������������������������������������������������������������������0000644�0000000�0000000�00000032125�14415562571�013067� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Times-Bold-Ogonki EncodingScheme StandardEncoding FullName Times-Bold-Ogonki Composite font FontBBox -172 -256 1008 965 StartCharMetrics 285 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 84 -18 248 690 ; C 34 ; WX 555 ; N quotedbl ; B 67 371 425 690 ; C 35 ; WX 500 ; N numbersign ; B -13 -17 514 684 ; C 36 ; WX 500 ; N dollar ; B 28 -116 474 732 ; C 37 ; WX 1000 ; N percent ; B 122 -11 881 692 ; C 38 ; WX 833 ; N ampersand ; B 54 -17 773 690 ; C 39 ; WX 333 ; N quoteright ; B 77 347 257 680 ; C 40 ; WX 333 ; N parenleft ; B 49 -169 301 699 ; C 41 ; WX 333 ; N parenright ; B 26 -169 278 699 ; C 42 ; WX 500 ; N asterisk ; B 57 262 445 690 ; C 43 ; WX 570 ; N plus ; B 50 -10 520 460 ; C 44 ; WX 250 ; N comma ; B 37 -181 214 157 ; C 45 ; WX 333 ; N hyphen ; B 48 170 283 285 ; C 46 ; WX 250 ; N period ; B 43 -19 207 145 ; C 47 ; WX 278 ; N slash ; B 1 -17 279 750 ; C 48 ; WX 500 ; N zero ; B 26 -18 472 690 ; C 49 ; WX 500 ; N one ; B 61 0 448 690 ; C 50 ; WX 500 ; N two ; B 18 0 473 683 ; C 51 ; WX 500 ; N three ; B 17 -19 463 683 ; C 52 ; WX 500 ; N four ; B 23 0 472 681 ; C 53 ; WX 500 ; N five ; B 23 -17 465 681 ; C 54 ; WX 500 ; N six ; B 30 -18 470 684 ; C 55 ; WX 500 ; N seven ; B 23 0 468 679 ; C 56 ; WX 500 ; N eight ; B 22 -17 470 685 ; C 57 ; WX 500 ; N nine ; B 26 -18 468 684 ; C 58 ; WX 333 ; N colon ; B 83 -18 247 473 ; C 59 ; WX 333 ; N semicolon ; B 85 -181 262 472 ; C 60 ; WX 570 ; N less ; B 45 -10 520 460 ; C 61 ; WX 570 ; N equal ; B 50 91 520 375 ; C 62 ; WX 570 ; N greater ; B 50 -10 525 460 ; C 63 ; WX 500 ; N question ; B 57 -17 438 681 ; C 64 ; WX 930 ; N at ; B 50 -147 889 677 ; C 65 ; WX 722 ; N A ; B 22 0 696 681 ; C 66 ; WX 667 ; N B ; B 24 0 609 681 ; C 67 ; WX 722 ; N C ; B 42 -17 669 690 ; C 68 ; WX 722 ; N D ; B 22 0 684 681 ; C 69 ; WX 667 ; N E ; B 21 0 637 681 ; C 70 ; WX 611 ; N F ; B 17 0 582 681 ; C 71 ; WX 778 ; N G ; B 41 -17 748 690 ; C 72 ; WX 778 ; N H ; B 26 0 748 681 ; C 73 ; WX 389 ; N I ; B 17 0 366 680 ; C 74 ; WX 500 ; N J ; B 9 -89 475 681 ; C 75 ; WX 778 ; N K ; B 29 0 761 681 ; C 76 ; WX 667 ; N L ; B 21 0 633 681 ; C 77 ; WX 944 ; N M ; B 21 0 914 681 ; C 78 ; WX 722 ; N N ; B 20 -10 697 681 ; C 79 ; WX 778 ; N O ; B 43 -18 733 690 ; C 80 ; WX 611 ; N P ; B 24 0 593 681 ; C 81 ; WX 778 ; N Q ; B 24 -182 751 690 ; C 82 ; WX 722 ; N R ; B 26 0 695 681 ; C 83 ; WX 556 ; N S ; B 43 -19 506 690 ; C 84 ; WX 667 ; N T ; B 30 0 629 681 ; C 85 ; WX 722 ; N U ; B 20 -19 700 681 ; C 86 ; WX 722 ; N V ; B 22 -18 696 681 ; C 87 ; WX 1000 ; N W ; B 19 -18 979 680 ; C 88 ; WX 722 ; N X ; B 23 0 695 681 ; C 89 ; WX 722 ; N Y ; B 19 0 697 680 ; C 90 ; WX 667 ; N Z ; B 37 0 624 681 ; C 91 ; WX 333 ; N bracketleft ; B 73 -142 296 674 ; C 92 ; WX 278 ; N backslash ; B 1 -17 279 750 ; C 93 ; WX 333 ; N bracketright ; B 38 -142 261 674 ; C 94 ; WX 581 ; N asciicircum ; B 102 290 486 690 ; C 95 ; WX 500 ; N underscore ; B -2 -256 502 -182 ; C 96 ; WX 333 ; N quoteleft ; B 72 357 252 691 ; C 97 ; WX 500 ; N a ; B 25 -19 484 472 ; C 98 ; WX 556 ; N b ; B 29 -18 512 670 ; C 99 ; WX 444 ; N c ; B 24 -17 423 472 ; C 100 ; WX 556 ; N d ; B 31 -17 523 670 ; C 101 ; WX 444 ; N e ; B 25 -18 415 474 ; C 102 ; WX 333 ; N f ; B 20 0 386 690 ; C 103 ; WX 500 ; N g ; B 25 -210 474 472 ; C 104 ; WX 556 ; N h ; B 29 0 523 670 ; C 105 ; WX 278 ; N i ; B 27 0 249 690 ; C 106 ; WX 333 ; N j ; B -57 -212 256 690 ; C 107 ; WX 556 ; N k ; B 24 0 528 670 ; C 108 ; WX 278 ; N l ; B 25 0 247 670 ; C 109 ; WX 833 ; N m ; B 28 0 804 471 ; C 110 ; WX 556 ; N n ; B 28 0 523 473 ; C 111 ; WX 500 ; N o ; B 25 -18 473 472 ; C 112 ; WX 556 ; N p ; B 30 -210 513 473 ; C 113 ; WX 556 ; N q ; B 32 -210 535 472 ; C 114 ; WX 444 ; N r ; B 29 0 417 473 ; C 115 ; WX 389 ; N s ; B 29 -17 359 472 ; C 116 ; WX 333 ; N t ; B 22 -19 320 627 ; C 117 ; WX 556 ; N u ; B 23 -17 524 460 ; C 118 ; WX 500 ; N v ; B 20 -14 479 460 ; C 119 ; WX 722 ; N w ; B 10 -14 709 460 ; C 120 ; WX 500 ; N x ; B 11 0 488 460 ; C 121 ; WX 500 ; N y ; B 19 -212 475 460 ; C 122 ; WX 444 ; N z ; B 25 0 414 460 ; C 123 ; WX 394 ; N braceleft ; B 44 -142 342 674 ; C 124 ; WX 220 ; N bar ; B 77 -195 151 720 ; C 125 ; WX 394 ; N braceright ; B 38 -142 336 674 ; C 126 ; WX 520 ; N asciitilde ; B 19 237 493 461 ; C 161 ; WX 333 ; N exclamdown ; B 85 -210 249 498 ; C 162 ; WX 500 ; N cent ; B 44 -148 460 586 ; C 163 ; WX 500 ; N sterling ; B 25 -17 471 682 ; C 164 ; WX 167 ; N fraction ; B -172 -17 335 690 ; C 165 ; WX 500 ; N yen ; B -20 0 521 681 ; C 166 ; WX 500 ; N florin ; B 2 -157 496 713 ; C 167 ; WX 500 ; N section ; B 63 -148 438 677 ; C 168 ; WX 500 ; N currency ; B 3 105 498 604 ; C 169 ; WX 278 ; N quotesingle ; B 69 371 205 690 ; C 170 ; WX 500 ; N quotedblleft ; B 33 346 479 679 ; C 171 ; WX 500 ; N guillemotleft ; B 25 44 471 436 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 44 302 436 ; C 173 ; WX 333 ; N guilsinglright ; B 26 44 277 436 ; C 174 ; WX 556 ; N fi ; B 24 0 532 690 ; C 175 ; WX 556 ; N fl ; B 25 0 529 691 ; C 177 ; WX 500 ; N endash ; B -4 179 500 270 ; C 178 ; WX 500 ; N dagger ; B 52 -141 446 690 ; C 179 ; WX 500 ; N daggerdbl ; B 57 -138 451 681 ; C 180 ; WX 250 ; N periodcentered ; B 43 270 167 394 ; C 182 ; WX 540 ; N paragraph ; B 30 -190 533 681 ; C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; C 184 ; WX 333 ; N quotesinglbase ; B 77 -179 257 154 ; C 185 ; WX 500 ; N quotedblbase ; B 31 -179 477 154 ; C 186 ; WX 500 ; N quotedblright ; B 31 347 477 680 ; C 187 ; WX 500 ; N guillemotright ; B 24 44 470 436 ; C 188 ; WX 1000 ; N ellipsis ; B 85 -18 915 146 ; C 189 ; WX 1000 ; N perthousand ; B 1 -55 993 718 ; C 191 ; WX 500 ; N questiondown ; B 56 -210 437 488 ; C 193 ; WX 333 ; N grave ; B 26 523 242 695 ; C 194 ; WX 333 ; N acute ; B 83 523 299 695 ; C 195 ; WX 333 ; N circumflex ; B 28 520 304 690 ; C 196 ; WX 333 ; N tilde ; B 34 559 298 671 ; C 197 ; WX 333 ; N macron ; B 34 543 297 600 ; C 198 ; WX 333 ; N breve ; B 32 529 300 667 ; C 199 ; WX 333 ; N dotaccent ; B 112 515 222 625 ; C 200 ; WX 333 ; N dieresis ; B 33 556 297 652 ; C 202 ; WX 333 ; N ring ; B 55 522 279 746 ; C 203 ; WX 333 ; N cedilla ; B 42 -211 293 -10 ; C 205 ; WX 333 ; N hungarumlaut ; B 32 539 320 753 ; C 206 ; WX 333 ; N ogonek ; B 60 -179 277 70 ; C 207 ; WX 333 ; N caron ; B 32 520 298 690 ; C 208 ; WX 1000 ; N emdash ; B -2 185 1008 280 ; C 225 ; WX 1000 ; N AE ; B 19 0 954 681 ; C 227 ; WX 300 ; N ordfeminine ; B 12 286 288 685 ; C 232 ; WX 667 ; N Lslash ; B 0 0 612 681 ; C 233 ; WX 778 ; N Oslash ; B 45 -75 735 740 ; C 234 ; WX 1000 ; N OE ; B 24 -7 979 683 ; C 235 ; WX 330 ; N ordmasculine ; B 31 286 299 685 ; C 241 ; WX 722 ; N ae ; B 30 -17 691 474 ; C 245 ; WX 278 ; N dotlessi ; B 28 0 250 460 ; C 248 ; WX 278 ; N lslash ; B 0 0 326 670 ; C 249 ; WX 500 ; N oslash ; B 27 -95 474 550 ; C 250 ; WX 722 ; N oe ; B 26 -17 689 473 ; C 251 ; WX 556 ; N germandbls ; B 22 -18 513 689 ; C -1 ; WX 722 ; N Aacute ; B 22 0 696 914 ; C -1 ; WX 722 ; N Acircumflex ; B 22 0 696 909 ; C -1 ; WX 722 ; N Adieresis ; B 22 0 696 871 ; C -1 ; WX 722 ; N Agrave ; B 22 0 696 914 ; C -1 ; WX 722 ; N Aring ; B 22 0 696 965 ; C -1 ; WX 722 ; N Atilde ; B 22 0 696 890 ; C -1 ; WX 722 ; N Ccedilla ; B 42 -211 669 690 ; C -1 ; WX 667 ; N Eacute ; B 21 0 637 914 ; C -1 ; WX 667 ; N Ecircumflex ; B 21 0 637 909 ; C -1 ; WX 667 ; N Edieresis ; B 21 0 637 871 ; C -1 ; WX 667 ; N Egrave ; B 21 0 637 914 ; C -1 ; WX 722 ; N Eth ; B 22 0 685 681 ; C -1 ; WX 389 ; N Iacute ; B 17 0 366 914 ; C -1 ; WX 389 ; N Icircumflex ; B 17 0 366 909 ; C -1 ; WX 389 ; N Idieresis ; B 17 0 366 871 ; C -1 ; WX 389 ; N Igrave ; B 17 0 366 914 ; C -1 ; WX 722 ; N Ntilde ; B 20 -10 697 890 ; C -1 ; WX 778 ; N Oacute ; B 43 -18 733 914 ; C -1 ; WX 778 ; N Ocircumflex ; B 43 -18 733 909 ; C -1 ; WX 778 ; N Odieresis ; B 43 -18 733 871 ; C -1 ; WX 778 ; N Ograve ; B 43 -18 733 914 ; C -1 ; WX 778 ; N Otilde ; B 43 -18 733 890 ; C -1 ; WX 556 ; N Scaron ; B 43 -19 506 909 ; C -1 ; WX 611 ; N Thorn ; B 24 0 594 681 ; C -1 ; WX 722 ; N Uacute ; B 20 -19 700 914 ; C -1 ; WX 722 ; N Ucircumflex ; B 20 -19 700 909 ; C -1 ; WX 722 ; N Udieresis ; B 20 -19 700 871 ; C -1 ; WX 722 ; N Ugrave ; B 20 -19 700 914 ; C -1 ; WX 722 ; N Yacute ; B 19 0 697 916 ; C -1 ; WX 722 ; N Ydieresis ; B 19 0 697 871 ; C -1 ; WX 667 ; N Zcaron ; B 37 0 624 909 ; C -1 ; WX 500 ; N aacute ; B 25 -19 484 695 ; C -1 ; WX 500 ; N acircumflex ; B 25 -19 484 690 ; C -1 ; WX 500 ; N adieresis ; B 25 -19 484 652 ; C -1 ; WX 500 ; N agrave ; B 25 -19 484 695 ; C -1 ; WX 500 ; N aring ; B 25 -19 484 746 ; C -1 ; WX 500 ; N atilde ; B 25 -19 484 671 ; C -1 ; WX 220 ; N brokenbar ; B 77 -195 151 720 ; C -1 ; WX 444 ; N ccedilla ; B 24 -211 423 472 ; C -1 ; WX 747 ; N copyright ; B 16 -17 730 690 ; C -1 ; WX 400 ; N degree ; B 50 390 350 690 ; C -1 ; WX 570 ; N divide ; B 50 -10 520 460 ; C -1 ; WX 444 ; N eacute ; B 25 -18 415 695 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -18 415 690 ; C -1 ; WX 444 ; N edieresis ; B 25 -18 415 652 ; C -1 ; WX 444 ; N egrave ; B 25 -18 415 695 ; C -1 ; WX 500 ; N eth ; B 26 -17 474 670 ; C -1 ; WX 278 ; N iacute ; B 28 0 265 695 ; C -1 ; WX 278 ; N icircumflex ; B -6 0 270 690 ; C -1 ; WX 278 ; N idieresis ; B -1 0 263 652 ; C -1 ; WX 278 ; N igrave ; B -8 0 250 695 ; C -1 ; WX 570 ; N logicalnot ; B 50 94 520 375 ; C -1 ; WX 570 ; N minus ; B 50 188 520 262 ; C -1 ; WX 556 ; N mu ; B 23 -210 524 460 ; C -1 ; WX 570 ; N multiply ; B 50 -10 520 460 ; C -1 ; WX 556 ; N ntilde ; B 28 0 523 671 ; C -1 ; WX 500 ; N oacute ; B 25 -18 473 695 ; C -1 ; WX 500 ; N ocircumflex ; B 25 -18 473 690 ; C -1 ; WX 500 ; N odieresis ; B 25 -18 473 652 ; C -1 ; WX 500 ; N ograve ; B 25 -18 473 695 ; C -1 ; WX 750 ; N onehalf ; B 30 -18 720 690 ; C -1 ; WX 750 ; N onequarter ; B 30 -18 720 690 ; C -1 ; WX 300 ; N onesuperior ; B 24 276 275 690 ; C -1 ; WX 500 ; N otilde ; B 25 -18 473 671 ; C -1 ; WX 570 ; N plusminus ; B 50 0 520 600 ; C -1 ; WX 747 ; N registered ; B 16 -17 730 690 ; C -1 ; WX 389 ; N scaron ; B 29 -17 359 690 ; C -1 ; WX 556 ; N thorn ; B 30 -210 513 670 ; C -1 ; WX 750 ; N threequarters ; B 30 -18 720 690 ; C -1 ; WX 300 ; N threesuperior ; B 5 269 294 690 ; C -1 ; WX 1000 ; N trademark ; B 30 277 970 681 ; C -1 ; WX 300 ; N twosuperior ; B 2 276 298 686 ; C -1 ; WX 556 ; N uacute ; B 23 -17 524 695 ; C -1 ; WX 556 ; N ucircumflex ; B 23 -17 524 690 ; C -1 ; WX 556 ; N udieresis ; B 23 -17 524 652 ; C -1 ; WX 556 ; N ugrave ; B 23 -17 524 695 ; C -1 ; WX 500 ; N yacute ; B 19 -212 475 695 ; C -1 ; WX 500 ; N ydieresis ; B 19 -212 475 652 ; C -1 ; WX 444 ; N zcaron ; B 25 0 414 690 ; C -1 ; WX 500 ; N abreve ; B 25 -19 484 667 ; C -1 ; WX 722 ; N Abreve ; B 22 0 696 907 ; C -1 ; WX 500 ; N aogonek ; B 25 -209 484 472 ; C -1 ; WX 722 ; N Aogonek ; B 22 -209 696 681 ; C -1 ; WX 444 ; N cacute ; B 24 -17 423 695 ; C -1 ; WX 722 ; N Cacute ; B 42 -17 669 914 ; C -1 ; WX 444 ; N ccaron ; B 24 -17 423 690 ; C -1 ; WX 722 ; N Ccaron ; B 42 -17 669 909 ; C -1 ; WX 556 ; N dbar ; B 31 -17 523 670 ; C -1 ; WX 722 ; N Dbar ; B 0 0 685 681 ; C -1 ; WX 556 ; N dcaron ; B 31 -17 730 733 ; C -1 ; WX 722 ; N Dcaron ; B 22 0 684 900 ; C -1 ; WX 444 ; N ecaron ; B 25 -18 415 690 ; C -1 ; WX 667 ; N Ecaron ; B 21 0 637 909 ; C -1 ; WX 444 ; N edotaccent ; B 25 -18 415 625 ; C -1 ; WX 667 ; N Edotaccent ; B 21 0 637 844 ; C -1 ; WX 444 ; N eogonek ; B 25 -209 415 474 ; C -1 ; WX 667 ; N Eogonek ; B 21 -209 637 681 ; C -1 ; WX 500 ; N gbreve ; B 25 -210 474 667 ; C -1 ; WX 778 ; N Gbreve ; B 41 -17 748 886 ; C -1 ; WX 389 ; N Idotaccent ; B 17 0 366 844 ; C -1 ; WX 278 ; N iogonek ; B 10 -209 249 690 ; C -1 ; WX 389 ; N Iogonek ; B 17 -209 366 680 ; C -1 ; WX 278 ; N lacute ; B 25 0 296 905 ; C -1 ; WX 667 ; N Lacute ; B 21 0 633 905 ; C -1 ; WX 278 ; N lcaron ; B 25 0 451 733 ; C -1 ; WX 667 ; N Lcaron ; B 21 0 633 733 ; C -1 ; WX 556 ; N nacute ; B 28 0 523 695 ; C -1 ; WX 722 ; N Nacute ; B 20 -10 697 914 ; C -1 ; WX 556 ; N ncaron ; B 28 0 523 690 ; C -1 ; WX 722 ; N Ncaron ; B 20 -10 697 900 ; C -1 ; WX 500 ; N ohungarumlaut ; B 25 -18 473 753 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 43 -18 733 972 ; C -1 ; WX 444 ; N racute ; B 29 0 417 695 ; C -1 ; WX 722 ; N Racute ; B 26 0 695 905 ; C -1 ; WX 444 ; N rcaron ; B 29 0 417 690 ; C -1 ; WX 722 ; N Rcaron ; B 26 0 695 900 ; C -1 ; WX 389 ; N sacute ; B 29 -17 359 695 ; C -1 ; WX 556 ; N Sacute ; B 43 -19 506 914 ; C -1 ; WX 389 ; N scedilla ; B 29 -211 359 472 ; C -1 ; WX 556 ; N Scedilla ; B 43 -211 506 690 ; C -1 ; WX 333 ; N tcaron ; B 22 -19 528 680 ; C -1 ; WX 667 ; N Tcaron ; B 30 0 629 900 ; C -1 ; WX 333 ; N tcedilla ; B 22 -211 382 627 ; C -1 ; WX 667 ; N Tcedilla ; B 30 -211 629 681 ; C -1 ; WX 556 ; N umacron ; B 23 -17 524 600 ; C -1 ; WX 722 ; N Umacron ; B 20 -19 700 819 ; C -1 ; WX 556 ; N uhungarumlaut ; B 23 -17 524 753 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 20 -19 700 972 ; C -1 ; WX 556 ; N uogonek ; B 23 -204 524 460 ; C -1 ; WX 722 ; N Uogonek ; B 20 -204 700 681 ; C -1 ; WX 556 ; N uring ; B 23 -17 524 746 ; C -1 ; WX 722 ; N Uring ; B 20 -19 700 920 ; C -1 ; WX 444 ; N zacute ; B 25 0 414 695 ; C -1 ; WX 667 ; N Zacute ; B 37 0 624 914 ; C -1 ; WX 444 ; N zdotaccent ; B 25 0 414 625 ; C -1 ; WX 667 ; N Zdotaccent ; B 37 0 624 844 ; EndCharMetrics EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmb-o.ps����������������������������������������������������������������������0000644�0000000�0000000�00000005630�14415562571�012747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Times-Bold-Ogonki /Times-Bold /Times-Bold-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Ydieresis [89 194 219 168] put dup /ydieresis [121 83 0 168] put dup /Ucircumflex [85 221 219 28] put dup /Ugrave [85 221 219 27] put dup /ucircumflex [117 104 0 28] put dup /ugrave [117 104 0 27] put dup /Idieresis [73 28 219 168] put dup /Igrave [73 28 219 27] put dup /idieresis [136 -34 0 168] put dup /igrave [136 -34 0 27] put dup /Ecircumflex [69 174 219 28] put dup /Egrave [69 174 219 27] put dup /ecircumflex [101 61 0 28] put dup /egrave [101 61 0 27] put dup /Agrave [65 187 219 27] put dup /agrave [97 76 0 27] put dup /Ograve [79 222 219 27] put dup /ograve [111 83 0 27] put dup /Atilde [65 187 219 29] put dup /atilde [97 76 0 29] put dup /Ntilde [78 194 219 29] put dup /ntilde [110 111 0 29] put dup /Otilde [79 222 219 29] put dup /otilde [111 83 0 29] put dup /Aring [65 187 219 31] put dup /aring [97 76 0 31] put dup /abreve [97 83 0 162] put dup /Abreve [65 194 240 162] put dup /aogonek [97 175 -30 178] put dup /Aogonek [65 384 -30 178] put dup /cacute [99 70 0 180] put dup /Cacute [67 210 219 180] put dup /ccaron [99 84 0 183] put dup /Ccaron [67 232 219 183] put dup /dbar [100 240 300 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 473 53 39] put dup /Dcaron [68 194 210 183] put dup /ecaron [101 61 0 183] put dup /Ecaron [69 174 219 183] put dup /edotaccent [101 61 0 255] put dup /Edotaccent [69 187 219 255] put dup /eogonek [101 114 -30 178] put dup /Eogonek [69 295 -30 178] put dup /gbreve [103 83 0 162] put dup /Gbreve [71 222 219 162] put dup /Idotaccent [73 28 219 255] put dup /iogonek [105 -50 -30 178] put dup /Iogonek [73 63 -30 178] put dup /lacute [108 -3 210 180] put dup /Lacute [76 167 210 180] put dup /lcaron [108 194 53 39] put dup /Lcaron [76 309 53 39] put dup /nacute [110 90 0 180] put dup /Nacute [78 190 219 180] put dup /ncaron [110 111 0 183] put dup /Ncaron [78 194 210 183] put dup /ohungarumlaut [111 83 0 189] put dup /Ohungarumlaut [79 222 219 189] put dup /racute [114 79 0 180] put dup /Racute [82 239 210 180] put dup /rcaron [114 55 0 183] put dup /Rcaron [82 194 210 183] put dup /sacute [115 20 0 180] put dup /Sacute [83 100 219 180] put dup /scedilla [115 12 0 184] put dup /Scedilla [83 94 0 184] put dup /tcaron [116 271 0 39] put dup /Tcaron [84 167 210 183] put dup /tcedilla [116 89 0 184] put dup /Tcedilla [84 227 0 184] put dup /umacron [117 104 0 30] put dup /Umacron [85 215 219 30] put dup /uhungarumlaut [117 104 0 189] put dup /Uhungarumlaut [85 221 219 189] put dup /uogonek [117 236 -25 178] put dup /Uogonek [85 299 -25 178] put dup /uring [117 111 0 31] put dup /Uring [85 194 174 31] put dup /zacute [122 80 0 180] put dup /Zacute [90 160 219 180] put dup /zdotaccent [122 70 0 255] put dup /Zdotaccent [90 200 219 255] put makeComposite %%EndResource ��������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmb.afm�����������������������������������������������������������������������0000644�0000000�0000000�00000036540�14233473143�012632� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date:Sun Feb 8 02:56:11 PST 1987 FontName Times-Bold EncodingScheme AdobeStandardEncoding FullName Times Bold FamilyName Times Weight Bold ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -99 UnderlineThickness 95 Version 001.002 Notice Times is a trademark of Allied Corporation. FontBBox -172 -256 1008 965 CapHeight 681 XHeight 460 Descender -210 Ascender 670 StartCharMetrics 228 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 84 -18 248 690 ; C 34 ; WX 555 ; N quotedbl ; B 67 371 425 690 ; C 35 ; WX 500 ; N numbersign ; B -13 -17 514 684 ; C 36 ; WX 500 ; N dollar ; B 28 -116 474 732 ; C 37 ; WX 1000 ; N percent ; B 122 -11 881 692 ; C 38 ; WX 833 ; N ampersand ; B 54 -17 773 690 ; C 39 ; WX 333 ; N quoteright ; B 77 347 257 680 ; C 40 ; WX 333 ; N parenleft ; B 49 -169 301 699 ; C 41 ; WX 333 ; N parenright ; B 26 -169 278 699 ; C 42 ; WX 500 ; N asterisk ; B 57 262 445 690 ; C 43 ; WX 570 ; N plus ; B 50 -10 520 460 ; C 44 ; WX 250 ; N comma ; B 37 -181 214 157 ; C 45 ; WX 333 ; N hyphen ; B 48 170 283 285 ; C 46 ; WX 250 ; N period ; B 43 -19 207 145 ; C 47 ; WX 278 ; N slash ; B 1 -17 279 750 ; C 48 ; WX 500 ; N zero ; B 26 -18 472 690 ; C 49 ; WX 500 ; N one ; B 61 0 448 690 ; C 50 ; WX 500 ; N two ; B 18 0 473 683 ; C 51 ; WX 500 ; N three ; B 17 -19 463 683 ; C 52 ; WX 500 ; N four ; B 23 0 472 681 ; C 53 ; WX 500 ; N five ; B 23 -17 465 681 ; C 54 ; WX 500 ; N six ; B 30 -18 470 684 ; C 55 ; WX 500 ; N seven ; B 23 0 468 679 ; C 56 ; WX 500 ; N eight ; B 22 -17 470 685 ; C 57 ; WX 500 ; N nine ; B 26 -18 468 684 ; C 58 ; WX 333 ; N colon ; B 83 -18 247 473 ; C 59 ; WX 333 ; N semicolon ; B 85 -181 262 472 ; C 60 ; WX 570 ; N less ; B 45 -10 520 460 ; C 61 ; WX 570 ; N equal ; B 50 91 520 375 ; C 62 ; WX 570 ; N greater ; B 50 -10 525 460 ; C 63 ; WX 500 ; N question ; B 57 -17 438 681 ; C 64 ; WX 930 ; N at ; B 50 -147 889 677 ; C 65 ; WX 722 ; N A ; B 22 0 696 681 ; C 66 ; WX 667 ; N B ; B 24 0 609 681 ; C 67 ; WX 722 ; N C ; B 42 -17 669 690 ; C 68 ; WX 722 ; N D ; B 22 0 684 681 ; C 69 ; WX 667 ; N E ; B 21 0 637 681 ; C 70 ; WX 611 ; N F ; B 17 0 582 681 ; C 71 ; WX 778 ; N G ; B 41 -17 748 690 ; C 72 ; WX 778 ; N H ; B 26 0 748 681 ; C 73 ; WX 389 ; N I ; B 17 0 366 680 ; C 74 ; WX 500 ; N J ; B 9 -89 475 681 ; C 75 ; WX 778 ; N K ; B 29 0 761 681 ; C 76 ; WX 667 ; N L ; B 21 0 633 681 ; C 77 ; WX 944 ; N M ; B 21 0 914 681 ; C 78 ; WX 722 ; N N ; B 20 -10 697 681 ; C 79 ; WX 778 ; N O ; B 43 -18 733 690 ; C 80 ; WX 611 ; N P ; B 24 0 593 681 ; C 81 ; WX 778 ; N Q ; B 24 -182 751 690 ; C 82 ; WX 722 ; N R ; B 26 0 695 681 ; C 83 ; WX 556 ; N S ; B 43 -19 506 690 ; C 84 ; WX 667 ; N T ; B 30 0 629 681 ; C 85 ; WX 722 ; N U ; B 20 -19 700 681 ; C 86 ; WX 722 ; N V ; B 22 -18 696 681 ; C 87 ; WX 1000 ; N W ; B 19 -18 979 680 ; C 88 ; WX 722 ; N X ; B 23 0 695 681 ; C 89 ; WX 722 ; N Y ; B 19 0 697 680 ; C 90 ; WX 667 ; N Z ; B 37 0 624 681 ; C 91 ; WX 333 ; N bracketleft ; B 73 -142 296 674 ; C 92 ; WX 278 ; N backslash ; B 1 -17 279 750 ; C 93 ; WX 333 ; N bracketright ; B 38 -142 261 674 ; C 94 ; WX 581 ; N asciicircum ; B 102 290 486 690 ; C 95 ; WX 500 ; N underscore ; B -2 -256 502 -182 ; C 96 ; WX 333 ; N quoteleft ; B 72 357 252 691 ; C 97 ; WX 500 ; N a ; B 25 -19 484 472 ; C 98 ; WX 556 ; N b ; B 29 -18 512 670 ; C 99 ; WX 444 ; N c ; B 24 -17 423 472 ; C 100 ; WX 556 ; N d ; B 31 -17 523 670 ; C 101 ; WX 444 ; N e ; B 25 -18 415 474 ; C 102 ; WX 333 ; N f ; B 20 0 386 690 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 25 -210 474 472 ; C 104 ; WX 556 ; N h ; B 29 0 523 670 ; C 105 ; WX 278 ; N i ; B 27 0 249 690 ; C 106 ; WX 333 ; N j ; B -57 -212 256 690 ; C 107 ; WX 556 ; N k ; B 24 0 528 670 ; C 108 ; WX 278 ; N l ; B 25 0 247 670 ; C 109 ; WX 833 ; N m ; B 28 0 804 471 ; C 110 ; WX 556 ; N n ; B 28 0 523 473 ; C 111 ; WX 500 ; N o ; B 25 -18 473 472 ; C 112 ; WX 556 ; N p ; B 30 -210 513 473 ; C 113 ; WX 556 ; N q ; B 32 -210 535 472 ; C 114 ; WX 444 ; N r ; B 29 0 417 473 ; C 115 ; WX 389 ; N s ; B 29 -17 359 472 ; C 116 ; WX 333 ; N t ; B 22 -19 320 627 ; C 117 ; WX 556 ; N u ; B 23 -17 524 460 ; C 118 ; WX 500 ; N v ; B 20 -14 479 460 ; C 119 ; WX 722 ; N w ; B 10 -14 709 460 ; C 120 ; WX 500 ; N x ; B 11 0 488 460 ; C 121 ; WX 500 ; N y ; B 19 -212 475 460 ; C 122 ; WX 444 ; N z ; B 25 0 414 460 ; C 123 ; WX 394 ; N braceleft ; B 44 -142 342 674 ; C 124 ; WX 220 ; N bar ; B 77 -195 151 720 ; C 125 ; WX 394 ; N braceright ; B 38 -142 336 674 ; C 126 ; WX 520 ; N asciitilde ; B 19 237 493 461 ; C 161 ; WX 333 ; N exclamdown ; B 85 -210 249 498 ; C 162 ; WX 500 ; N cent ; B 44 -148 460 586 ; C 163 ; WX 500 ; N sterling ; B 25 -17 471 682 ; C 164 ; WX 167 ; N fraction ; B -172 -17 335 690 ; C 165 ; WX 500 ; N yen ; B -20 0 521 681 ; C 166 ; WX 500 ; N florin ; B 2 -157 496 713 ; C 167 ; WX 500 ; N section ; B 63 -148 438 677 ; C 168 ; WX 500 ; N currency ; B 3 105 498 604 ; C 169 ; WX 278 ; N quotesingle ; B 69 371 205 690 ; C 170 ; WX 500 ; N quotedblleft ; B 33 346 479 679 ; C 171 ; WX 500 ; N guillemotleft ; B 25 44 471 436 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 44 302 436 ; C 173 ; WX 333 ; N guilsinglright ; B 26 44 277 436 ; C 174 ; WX 556 ; N fi ; B 24 0 532 690 ; C 175 ; WX 556 ; N fl ; B 25 0 529 691 ; C 177 ; WX 500 ; N endash ; B -4 179 500 270 ; C 178 ; WX 500 ; N dagger ; B 52 -141 446 690 ; C 179 ; WX 500 ; N daggerdbl ; B 57 -138 451 681 ; C 180 ; WX 250 ; N periodcentered ; B 43 270 167 394 ; C 182 ; WX 540 ; N paragraph ; B 30 -190 533 681 ; C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; C 184 ; WX 333 ; N quotesinglbase ; B 77 -179 257 154 ; C 185 ; WX 500 ; N quotedblbase ; B 31 -179 477 154 ; C 186 ; WX 500 ; N quotedblright ; B 31 347 477 680 ; C 187 ; WX 500 ; N guillemotright ; B 24 44 470 436 ; C 188 ; WX 1000 ; N ellipsis ; B 85 -18 915 146 ; C 189 ; WX 1000 ; N perthousand ; B 1 -55 993 718 ; C 191 ; WX 500 ; N questiondown ; B 56 -210 437 488 ; C 193 ; WX 333 ; N grave ; B 26 523 242 695 ; C 194 ; WX 333 ; N acute ; B 83 523 299 695 ; C 195 ; WX 333 ; N circumflex ; B 28 520 304 690 ; C 196 ; WX 333 ; N tilde ; B 34 559 298 671 ; C 197 ; WX 333 ; N macron ; B 34 543 297 600 ; C 198 ; WX 333 ; N breve ; B 32 529 300 667 ; C 199 ; WX 333 ; N dotaccent ; B 112 515 222 625 ; C 200 ; WX 333 ; N dieresis ; B 33 556 297 652 ; C 202 ; WX 333 ; N ring ; B 55 522 279 746 ; C 203 ; WX 333 ; N cedilla ; B 42 -211 293 -10 ; C 205 ; WX 333 ; N hungarumlaut ; B 32 539 320 753 ; C 206 ; WX 333 ; N ogonek ; B 60 -179 277 70 ; C 207 ; WX 333 ; N caron ; B 32 520 298 690 ; C 208 ; WX 1000 ; N emdash ; B -2 185 1008 280 ; C 225 ; WX 1000 ; N AE ; B 19 0 954 681 ; C 227 ; WX 300 ; N ordfeminine ; B 12 286 288 685 ; C 232 ; WX 667 ; N Lslash ; B 0 0 612 681 ; C 233 ; WX 778 ; N Oslash ; B 45 -75 735 740 ; C 234 ; WX 1000 ; N OE ; B 24 -7 979 683 ; C 235 ; WX 330 ; N ordmasculine ; B 31 286 299 685 ; C 241 ; WX 722 ; N ae ; B 30 -17 691 474 ; C 245 ; WX 278 ; N dotlessi ; B 28 0 250 460 ; C 248 ; WX 278 ; N lslash ; B 0 0 326 670 ; C 249 ; WX 500 ; N oslash ; B 27 -95 474 550 ; C 250 ; WX 722 ; N oe ; B 26 -17 689 473 ; C 251 ; WX 556 ; N germandbls ; B 22 -18 513 689 ; C -1 ; WX 722 ; N Aacute ; B 22 0 696 914 ; C -1 ; WX 722 ; N Acircumflex ; B 22 0 696 909 ; C -1 ; WX 722 ; N Adieresis ; B 22 0 696 871 ; C -1 ; WX 722 ; N Agrave ; B 22 0 696 914 ; C -1 ; WX 722 ; N Aring ; B 22 0 696 965 ; C -1 ; WX 722 ; N Atilde ; B 22 0 696 890 ; C -1 ; WX 722 ; N Ccedilla ; B 42 -211 669 690 ; C -1 ; WX 667 ; N Eacute ; B 21 0 637 914 ; C -1 ; WX 667 ; N Ecircumflex ; B 21 0 637 909 ; C -1 ; WX 667 ; N Edieresis ; B 21 0 637 871 ; C -1 ; WX 667 ; N Egrave ; B 21 0 637 914 ; C -1 ; WX 722 ; N Eth ; B 22 0 685 681 ; C -1 ; WX 389 ; N Iacute ; B 17 0 366 914 ; C -1 ; WX 389 ; N Icircumflex ; B 17 0 366 909 ; C -1 ; WX 389 ; N Idieresis ; B 17 0 366 871 ; C -1 ; WX 389 ; N Igrave ; B 17 0 366 914 ; C -1 ; WX 722 ; N Ntilde ; B 20 -10 697 890 ; C -1 ; WX 778 ; N Oacute ; B 43 -18 733 914 ; C -1 ; WX 778 ; N Ocircumflex ; B 43 -18 733 909 ; C -1 ; WX 778 ; N Odieresis ; B 43 -18 733 871 ; C -1 ; WX 778 ; N Ograve ; B 43 -18 733 914 ; C -1 ; WX 778 ; N Otilde ; B 43 -18 733 890 ; C -1 ; WX 556 ; N Scaron ; B 43 -19 506 909 ; C -1 ; WX 611 ; N Thorn ; B 24 0 594 681 ; C -1 ; WX 722 ; N Uacute ; B 20 -19 700 914 ; C -1 ; WX 722 ; N Ucircumflex ; B 20 -19 700 909 ; C -1 ; WX 722 ; N Udieresis ; B 20 -19 700 871 ; C -1 ; WX 722 ; N Ugrave ; B 20 -19 700 914 ; C -1 ; WX 722 ; N Yacute ; B 19 0 697 916 ; C -1 ; WX 722 ; N Ydieresis ; B 19 0 697 871 ; C -1 ; WX 667 ; N Zcaron ; B 37 0 624 909 ; C -1 ; WX 500 ; N aacute ; B 25 -19 484 695 ; C -1 ; WX 500 ; N acircumflex ; B 25 -19 484 690 ; C -1 ; WX 500 ; N adieresis ; B 25 -19 484 652 ; C -1 ; WX 500 ; N agrave ; B 25 -19 484 695 ; C -1 ; WX 500 ; N aring ; B 25 -19 484 746 ; C -1 ; WX 500 ; N atilde ; B 25 -19 484 671 ; C -1 ; WX 220 ; N brokenbar ; B 77 -195 151 720 ; C -1 ; WX 444 ; N ccedilla ; B 24 -211 423 472 ; C -1 ; WX 747 ; N copyright ; B 16 -17 730 690 ; C -1 ; WX 400 ; N degree ; B 50 390 350 690 ; C -1 ; WX 570 ; N divide ; B 50 -10 520 460 ; C -1 ; WX 444 ; N eacute ; B 25 -18 415 695 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -18 415 690 ; C -1 ; WX 444 ; N edieresis ; B 25 -18 415 652 ; C -1 ; WX 444 ; N egrave ; B 25 -18 415 695 ; C -1 ; WX 500 ; N eth ; B 26 -17 474 670 ; C -1 ; WX 278 ; N iacute ; B 28 0 265 695 ; C -1 ; WX 278 ; N icircumflex ; B -6 0 270 690 ; C -1 ; WX 278 ; N idieresis ; B -1 0 263 652 ; C -1 ; WX 278 ; N igrave ; B -8 0 250 695 ; C -1 ; WX 570 ; N logicalnot ; B 50 94 520 375 ; C -1 ; WX 570 ; N minus ; B 50 188 520 262 ; C -1 ; WX 556 ; N mu ; B 23 -210 524 460 ; C -1 ; WX 570 ; N multiply ; B 50 -10 520 460 ; C -1 ; WX 556 ; N ntilde ; B 28 0 523 671 ; C -1 ; WX 500 ; N oacute ; B 25 -18 473 695 ; C -1 ; WX 500 ; N ocircumflex ; B 25 -18 473 690 ; C -1 ; WX 500 ; N odieresis ; B 25 -18 473 652 ; C -1 ; WX 500 ; N ograve ; B 25 -18 473 695 ; C -1 ; WX 750 ; N onehalf ; B 30 -18 720 690 ; C -1 ; WX 750 ; N onequarter ; B 30 -18 720 690 ; C -1 ; WX 300 ; N onesuperior ; B 24 276 275 690 ; C -1 ; WX 500 ; N otilde ; B 25 -18 473 671 ; C -1 ; WX 570 ; N plusminus ; B 50 0 520 600 ; C -1 ; WX 747 ; N registered ; B 16 -17 730 690 ; C -1 ; WX 389 ; N scaron ; B 29 -17 359 690 ; C -1 ; WX 556 ; N thorn ; B 30 -210 513 670 ; C -1 ; WX 750 ; N threequarters ; B 30 -18 720 690 ; C -1 ; WX 300 ; N threesuperior ; B 5 269 294 690 ; C -1 ; WX 1000 ; N trademark ; B 30 277 970 681 ; C -1 ; WX 300 ; N twosuperior ; B 2 276 298 686 ; C -1 ; WX 556 ; N uacute ; B 23 -17 524 695 ; C -1 ; WX 556 ; N ucircumflex ; B 23 -17 524 690 ; C -1 ; WX 556 ; N udieresis ; B 23 -17 524 652 ; C -1 ; WX 556 ; N ugrave ; B 23 -17 524 695 ; C -1 ; WX 500 ; N yacute ; B 19 -212 475 695 ; C -1 ; WX 500 ; N ydieresis ; B 19 -212 475 652 ; C -1 ; WX 444 ; N zcaron ; B 25 0 414 690 ; EndCharMetrics StartKernData StartKernPairs 124 KPX A y -74 KPX A w -74 KPX A v -74 KPX A space -55 KPX A quoteright -74 KPX A Y -92 KPX A W -111 KPX A V -129 KPX A T -74 KPX F space -37 KPX F period -92 KPX F comma -92 KPX F A -74 KPX L y -55 KPX L space -55 KPX L quoteright -92 KPX L Y -92 KPX L W -92 KPX L V -92 KPX L T -92 KPX P space -55 KPX P period -92 KPX P comma -92 KPX P A -74 KPX R y -35 KPX R Y -35 KPX R W -35 KPX R V -35 KPX R T -35 KPX T y -74 KPX T w -74 KPX T u -92 KPX T space -18 KPX T semicolon -74 KPX T s -92 KPX T r -74 KPX T period -74 KPX T o -92 KPX T i -18 KPX T hyphen -92 KPX T e -92 KPX T comma -74 KPX T colon -74 KPX T c -92 KPX T a -92 KPX T O -18 KPX T A -74 KPX V y -92 KPX V u -92 KPX V space -18 KPX V semicolon -92 KPX V r -74 KPX V period -129 KPX V o -92 KPX V i -37 KPX V hyphen -74 KPX V e -92 KPX V comma -129 KPX V colon -92 KPX V a -92 KPX V O -20 KPX V A -129 KPX W y -37 KPX W u -18 KPX W space -18 KPX W semicolon -55 KPX W r -18 KPX W period -92 KPX W o -55 KPX W i -18 KPX W hyphen -37 KPX W e -55 KPX W comma -92 KPX W colon -55 KPX W a -55 KPX W A -111 KPX Y v -111 KPX Y u -92 KPX Y space -37 KPX Y semicolon -92 KPX Y q -111 KPX Y period -92 KPX Y p -92 KPX Y o -111 KPX Y i -37 KPX Y hyphen -92 KPX Y e -111 KPX Y comma -92 KPX Y colon -92 KPX Y a -111 KPX Y A -92 KPX f quoteright 55 KPX f f 0 KPX one one -55 KPX quoteleft quoteleft -74 KPX quoteright space -74 KPX quoteright s -37 KPX quoteright quoteright -74 KPX r z 0 KPX r y 0 KPX r x 0 KPX r w 0 KPX r t 0 KPX r space -18 KPX r quoteright 18 KPX r q -18 KPX r period -92 KPX r o -18 KPX r hyphen -37 KPX r h 0 KPX r e -18 KPX r comma -92 KPX r c -18 KPX space Y -37 KPX space W -18 KPX space V -18 KPX space T -18 KPX space A -55 KPX v period -55 KPX v comma -55 KPX w period -55 KPX w comma -55 KPX y period -55 KPX y comma -55 EndKernPairs EndKernData StartComposites 58 CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 219 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 55 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 111 219 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 207 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 68 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 194 221 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 83 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 194 219 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 221 219 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 221 219 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 221 219 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 221 219 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 104 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 104 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 104 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 104 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 219 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 219 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 219 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 219 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -34 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -34 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -34 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -34 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 174 219 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 174 219 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 174 219 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 174 219 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 61 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 61 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 61 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 61 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 187 219 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 187 219 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 187 219 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 187 219 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 76 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 76 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 76 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 76 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 219 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 219 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 219 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 219 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 83 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 83 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 83 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 83 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 187 219 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 76 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 219 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 219 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 83 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 187 219 ; CC aring 2 ; PCC a 0 0 ; PCC ring 76 0 ; EndComposites EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmbi-c.afm��������������������������������������������������������������������0000644�0000000�0000000�00000005657�14233473143�013230� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment More composite characters for Times-Roman. Comment by J. Chroboczek <jec@dcs.ed.ac.uk> Comment This is not strictly a conforming AFM file. FontName Times-BoldItalic-Comp StartComposites 57 CC abreve 2 ; PCC a 0 0 ; PCC breve 83 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 227 224 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 255 -30 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 410 -30 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 30 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 190 212 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 84 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 248 212 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 240 320 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 439 84 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 251 214 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 167 204 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 84 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 220 212 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 145 -30 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 358 -30 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 83 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 204 212 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 44 212 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek 12 -30 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek 33 -30 ; CC lacute 2 ; PCC l 0 0 ; PCC acute 54 214 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute 196 214 ; CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 212 84 ; CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 328 51 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 60 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 190 212 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 251 214 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 83 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 194 204 ; CC racute 2 ; PCC r 0 0 ; PCC acute 52 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 270 214 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 224 214 ; CC sacute 2 ; PCC s 0 0 ; PCC acute -50 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 70 212 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 28 0 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 111 0 ; CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 203 0 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 196 214 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 60 0 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 198 0 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 111 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 194 204 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 108 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 253 212 ; CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 240 175 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 242 -30 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 287 -30 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 30 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 130 212 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent -20 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 130 212 ; EndComposites EndFontMetrics ���������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmbi-o.afm��������������������������������������������������������������������0000644�0000000�0000000�00000032312�14415562571�013236� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Times-BoldItalic-Ogonki EncodingScheme StandardEncoding FullName Times-BoldItalic-Ogonki Composite font FontBBox -168 -232 1014 894 StartCharMetrics 285 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 389 ; N exclam ; B 66 -13 367 676 ; C 34 ; WX 555 ; N quotedbl ; B 142 367 549 693 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 662 ; C 36 ; WX 500 ; N dollar ; B -20 -101 492 723 ; C 37 ; WX 833 ; N percent ; B 39 -8 784 685 ; C 38 ; WX 778 ; N ampersand ; B 41 -19 727 676 ; C 39 ; WX 333 ; N quoteright ; B 80 362 282 675 ; C 40 ; WX 333 ; N parenleft ; B 28 -179 340 676 ; C 41 ; WX 333 ; N parenright ; B -44 -179 268 676 ; C 42 ; WX 500 ; N asterisk ; B 56 244 445 676 ; C 43 ; WX 570 ; N plus ; B 33 0 537 505 ; C 44 ; WX 250 ; N comma ; B -10 -181 192 132 ; C 45 ; WX 333 ; N hyphen ; B 33 167 299 282 ; C 46 ; WX 250 ; N period ; B 23 -13 170 133 ; C 47 ; WX 278 ; N slash ; B -11 -18 289 682 ; C 48 ; WX 500 ; N zero ; B 17 -13 472 676 ; C 49 ; WX 500 ; N one ; B 5 0 415 676 ; C 50 ; WX 500 ; N two ; B -27 0 441 676 ; C 51 ; WX 500 ; N three ; B -15 -13 445 676 ; C 52 ; WX 500 ; N four ; B -15 0 498 676 ; C 53 ; WX 500 ; N five ; B -11 -13 482 662 ; C 54 ; WX 500 ; N six ; B 23 -13 504 676 ; C 55 ; WX 500 ; N seven ; B 51 0 519 662 ; C 56 ; WX 500 ; N eight ; B 3 -13 471 676 ; C 57 ; WX 500 ; N nine ; B -12 -13 470 676 ; C 58 ; WX 333 ; N colon ; B 52 -13 291 458 ; C 59 ; WX 333 ; N semicolon ; B 13 -181 291 458 ; C 60 ; WX 570 ; N less ; B 31 -14 540 524 ; C 61 ; WX 570 ; N equal ; B 33 116 537 401 ; C 62 ; WX 570 ; N greater ; B 31 -14 540 524 ; C 63 ; WX 500 ; N question ; B 78 -13 465 676 ; C 64 ; WX 832 ; N at ; B -9 -150 838 691 ; C 65 ; WX 667 ; N A ; B -51 0 602 676 ; C 66 ; WX 667 ; N B ; B -24 0 618 662 ; C 67 ; WX 667 ; N C ; B 22 -18 660 677 ; C 68 ; WX 722 ; N D ; B -31 0 693 662 ; C 69 ; WX 667 ; N E ; B -27 0 646 662 ; C 70 ; WX 667 ; N F ; B -20 0 646 662 ; C 71 ; WX 722 ; N G ; B 21 -18 699 676 ; C 72 ; WX 778 ; N H ; B -24 0 791 662 ; C 73 ; WX 389 ; N I ; B -22 0 412 662 ; C 74 ; WX 500 ; N J ; B -45 -98 519 662 ; C 75 ; WX 667 ; N K ; B -31 0 685 662 ; C 76 ; WX 611 ; N L ; B -22 0 584 662 ; C 77 ; WX 889 ; N M ; B -29 -12 907 662 ; C 78 ; WX 722 ; N N ; B -27 -18 740 662 ; C 79 ; WX 722 ; N O ; B 27 -18 684 676 ; C 80 ; WX 611 ; N P ; B -27 0 608 662 ; C 81 ; WX 722 ; N Q ; B 27 -203 684 676 ; C 82 ; WX 667 ; N R ; B -29 0 616 662 ; C 83 ; WX 556 ; N S ; B 6 -18 524 676 ; C 84 ; WX 611 ; N T ; B 39 0 632 662 ; C 85 ; WX 722 ; N U ; B 66 -18 736 662 ; C 86 ; WX 667 ; N V ; B 48 -18 692 662 ; C 87 ; WX 889 ; N W ; B 48 -18 914 662 ; C 88 ; WX 667 ; N X ; B -24 0 687 662 ; C 89 ; WX 611 ; N Y ; B 46 0 625 662 ; C 90 ; WX 611 ; N Z ; B -1 0 594 662 ; C 91 ; WX 333 ; N bracketleft ; B -7 -157 388 682 ; C 92 ; WX 278 ; N backslash ; B 1 0 465 682 ; C 93 ; WX 333 ; N bracketright ; B -65 -157 330 682 ; C 94 ; WX 570 ; N asciicircum ; B 34 259 536 662 ; C 95 ; WX 500 ; N underscore ; B 0 -127 500 -89 ; C 96 ; WX 333 ; N quoteleft ; B 117 363 319 676 ; C 97 ; WX 500 ; N a ; B 9 -14 480 458 ; C 98 ; WX 500 ; N b ; B 20 -13 473 682 ; C 99 ; WX 444 ; N c ; B 25 -13 418 458 ; C 100 ; WX 500 ; N d ; B 9 -13 541 682 ; C 101 ; WX 444 ; N e ; B 25 -13 413 458 ; C 102 ; WX 333 ; N f ; B -146 -203 460 682 ; C 103 ; WX 500 ; N g ; B -27 -203 498 458 ; C 104 ; WX 556 ; N h ; B 12 -13 518 682 ; C 105 ; WX 278 ; N i ; B 24 -13 283 676 ; C 106 ; WX 278 ; N j ; B -152 -203 311 676 ; C 107 ; WX 500 ; N k ; B 10 -13 511 682 ; C 108 ; WX 278 ; N l ; B 30 -13 311 682 ; C 109 ; WX 778 ; N m ; B 16 -13 744 458 ; C 110 ; WX 556 ; N n ; B 24 -13 518 458 ; C 111 ; WX 500 ; N o ; B 27 -13 467 458 ; C 112 ; WX 500 ; N p ; B -79 -203 481 458 ; C 113 ; WX 500 ; N q ; B 21 -203 486 459 ; C 114 ; WX 389 ; N r ; B 9 0 415 458 ; C 115 ; WX 389 ; N s ; B 16 -13 364 459 ; C 116 ; WX 278 ; N t ; B 15 -14 304 592 ; C 117 ; WX 556 ; N u ; B 47 -13 520 458 ; C 118 ; WX 444 ; N v ; B 50 -13 432 458 ; C 119 ; WX 667 ; N w ; B 50 -13 642 458 ; C 120 ; WX 500 ; N x ; B -5 -13 498 458 ; C 121 ; WX 444 ; N y ; B -60 -203 423 458 ; C 122 ; WX 389 ; N z ; B -24 -58 394 448 ; C 123 ; WX 348 ; N braceleft ; B 30 -154 380 686 ; C 124 ; WX 220 ; N bar ; B 70 0 151 682 ; C 125 ; WX 348 ; N braceright ; B -31 -161 319 679 ; C 126 ; WX 570 ; N asciitilde ; B 33 158 537 353 ; C 161 ; WX 389 ; N exclamdown ; B 20 -232 320 458 ; C 162 ; WX 500 ; N cent ; B 50 -142 443 570 ; C 163 ; WX 500 ; N sterling ; B -32 -13 505 676 ; C 164 ; WX 167 ; N fraction ; B -161 0 327 662 ; C 165 ; WX 500 ; N yen ; B -15 0 565 662 ; C 166 ; WX 500 ; N florin ; B -86 -154 530 682 ; C 167 ; WX 500 ; N section ; B 36 -143 454 676 ; C 168 ; WX 500 ; N currency ; B -3 110 503 612 ; C 169 ; WX 278 ; N quotesingle ; B 126 367 295 693 ; C 170 ; WX 500 ; N quotedblleft ; B 57 363 513 676 ; C 171 ; WX 500 ; N guillemotleft ; B 21 33 474 416 ; C 172 ; WX 333 ; N guilsinglleft ; B 42 33 310 416 ; C 173 ; WX 333 ; N guilsinglright ; B 22 38 290 421 ; C 174 ; WX 556 ; N fi ; B -157 -203 538 682 ; C 175 ; WX 556 ; N fl ; B -149 -203 577 682 ; C 177 ; WX 500 ; N endash ; B -11 176 511 266 ; C 178 ; WX 500 ; N dagger ; B 90 -146 489 676 ; C 179 ; WX 500 ; N daggerdbl ; B 11 -143 487 675 ; C 180 ; WX 250 ; N periodcentered ; B 51 179 200 328 ; C 182 ; WX 500 ; N paragraph ; B 61 -189 592 682 ; C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; C 184 ; WX 333 ; N quotesinglbase ; B 66 -181 268 132 ; C 185 ; WX 500 ; N quotedblbase ; B -57 -181 398 132 ; C 186 ; WX 500 ; N quotedblright ; B 56 362 509 675 ; C 187 ; WX 500 ; N guillemotright ; B 20 38 473 421 ; C 188 ; WX 1000 ; N ellipsis ; B 93 -13 906 133 ; C 189 ; WX 1000 ; N perthousand ; B 7 -49 985 699 ; C 191 ; WX 500 ; N questiondown ; B 30 -203 417 487 ; C 193 ; WX 333 ; N grave ; B 115 511 325 690 ; C 194 ; WX 333 ; N acute ; B 168 511 405 690 ; C 195 ; WX 333 ; N circumflex ; B 70 510 394 682 ; C 196 ; WX 333 ; N tilde ; B 69 530 424 648 ; C 197 ; WX 333 ; N macron ; B 81 547 420 616 ; C 198 ; WX 333 ; N breve ; B 98 511 413 671 ; C 199 ; WX 333 ; N dotaccent ; B 180 519 308 648 ; C 200 ; WX 333 ; N dieresis ; B 85 519 424 648 ; C 202 ; WX 333 ; N ring ; B 141 466 352 676 ; C 203 ; WX 333 ; N cedilla ; B 32 -216 264 5 ; C 205 ; WX 333 ; N hungarumlaut ; B 28 538 339 750 ; C 206 ; WX 333 ; N ogonek ; B -36 -173 193 44 ; C 207 ; WX 333 ; N caron ; B 109 511 437 683 ; C 208 ; WX 1000 ; N emdash ; B -14 176 1014 266 ; C 225 ; WX 944 ; N AE ; B -41 0 931 662 ; C 227 ; WX 266 ; N ordfeminine ; B -24 286 291 676 ; C 232 ; WX 611 ; N Lslash ; B -22 0 584 662 ; C 233 ; WX 722 ; N Oslash ; B 27 -124 684 754 ; C 234 ; WX 944 ; N OE ; B 23 -8 936 670 ; C 235 ; WX 300 ; N ordmasculine ; B 1 286 300 676 ; C 241 ; WX 722 ; N ae ; B 15 -13 685 458 ; C 245 ; WX 278 ; N dotlessi ; B 27 -13 260 458 ; C 248 ; WX 278 ; N lslash ; B 12 -13 326 682 ; C 249 ; WX 500 ; N oslash ; B 27 -118 467 556 ; C 250 ; WX 722 ; N oe ; B 26 -13 687 458 ; C 251 ; WX 500 ; N germandbls ; B -168 -203 497 682 ; C -1 ; WX 667 ; N Aacute ; B -51 0 602 894 ; C -1 ; WX 667 ; N Acircumflex ; B -51 0 602 886 ; C -1 ; WX 667 ; N Adieresis ; B -51 0 602 852 ; C -1 ; WX 667 ; N Agrave ; B -51 0 602 894 ; C -1 ; WX 667 ; N Aring ; B -51 0 602 880 ; C -1 ; WX 667 ; N Atilde ; B -51 0 602 852 ; C -1 ; WX 667 ; N Ccedilla ; B 22 -216 660 677 ; C -1 ; WX 667 ; N Eacute ; B -27 0 646 894 ; C -1 ; WX 667 ; N Ecircumflex ; B -27 0 646 886 ; C -1 ; WX 667 ; N Edieresis ; B -27 0 646 852 ; C -1 ; WX 667 ; N Egrave ; B -27 0 646 894 ; C -1 ; WX 722 ; N Eth ; B -31 0 693 662 ; C -1 ; WX 389 ; N Iacute ; B -22 0 433 894 ; C -1 ; WX 389 ; N Icircumflex ; B -22 0 422 886 ; C -1 ; WX 389 ; N Idieresis ; B -22 0 452 852 ; C -1 ; WX 389 ; N Igrave ; B -22 0 412 894 ; C -1 ; WX 722 ; N Ntilde ; B -27 -18 740 852 ; C -1 ; WX 722 ; N Oacute ; B 27 -18 684 894 ; C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 684 886 ; C -1 ; WX 722 ; N Odieresis ; B 27 -18 684 852 ; C -1 ; WX 722 ; N Ograve ; B 27 -18 684 894 ; C -1 ; WX 722 ; N Otilde ; B 27 -18 684 852 ; C -1 ; WX 556 ; N Scaron ; B 6 -18 549 887 ; C -1 ; WX 611 ; N Thorn ; B -27 0 572 662 ; C -1 ; WX 722 ; N Uacute ; B 66 -18 736 894 ; C -1 ; WX 722 ; N Ucircumflex ; B 66 -18 736 886 ; C -1 ; WX 722 ; N Udieresis ; B 66 -18 736 852 ; C -1 ; WX 722 ; N Ugrave ; B 66 -18 736 894 ; C -1 ; WX 611 ; N Yacute ; B 46 0 625 894 ; C -1 ; WX 611 ; N Ydieresis ; B 46 0 625 852 ; C -1 ; WX 611 ; N Zcaron ; B -1 0 594 887 ; C -1 ; WX 500 ; N aacute ; B 9 -14 489 690 ; C -1 ; WX 500 ; N acircumflex ; B 9 -14 480 682 ; C -1 ; WX 500 ; N adieresis ; B 9 -14 508 648 ; C -1 ; WX 500 ; N agrave ; B 9 -14 480 690 ; C -1 ; WX 500 ; N aring ; B 9 -14 480 676 ; C -1 ; WX 500 ; N atilde ; B 9 -14 507 648 ; C -1 ; WX 220 ; N brokenbar ; B 70 0 151 682 ; C -1 ; WX 444 ; N ccedilla ; B 25 -216 418 458 ; C -1 ; WX 747 ; N copyright ; B 23 -18 723 676 ; C -1 ; WX 400 ; N degree ; B 70 376 370 676 ; C -1 ; WX 570 ; N divide ; B 33 0 537 505 ; C -1 ; WX 444 ; N eacute ; B 25 -13 461 690 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -13 449 682 ; C -1 ; WX 444 ; N edieresis ; B 25 -13 480 648 ; C -1 ; WX 444 ; N egrave ; B 25 -13 413 690 ; C -1 ; WX 500 ; N eth ; B 27 -13 498 682 ; C -1 ; WX 278 ; N iacute ; B 27 -13 378 690 ; C -1 ; WX 278 ; N icircumflex ; B 27 -13 367 682 ; C -1 ; WX 278 ; N idieresis ; B 27 -13 397 648 ; C -1 ; WX 278 ; N igrave ; B 27 -13 298 690 ; C -1 ; WX 606 ; N logicalnot ; B 51 120 555 401 ; C -1 ; WX 606 ; N minus ; B 51 210 555 300 ; C -1 ; WX 576 ; N mu ; B -62 -210 522 458 ; C -1 ; WX 570 ; N multiply ; B 33 0 537 504 ; C -1 ; WX 556 ; N ntilde ; B 24 -13 535 648 ; C -1 ; WX 500 ; N oacute ; B 27 -13 489 690 ; C -1 ; WX 500 ; N ocircumflex ; B 27 -13 478 682 ; C -1 ; WX 500 ; N odieresis ; B 27 -13 508 648 ; C -1 ; WX 500 ; N ograve ; B 27 -13 467 690 ; C -1 ; WX 750 ; N onehalf ; B 30 0 720 676 ; C -1 ; WX 750 ; N onequarter ; B 30 0 720 676 ; C -1 ; WX 300 ; N onesuperior ; B 17 270 283 676 ; C -1 ; WX 500 ; N otilde ; B 27 -13 507 648 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 665 ; C -1 ; WX 747 ; N registered ; B 23 -18 723 676 ; C -1 ; WX 389 ; N scaron ; B 16 -13 465 683 ; C -1 ; WX 500 ; N thorn ; B -79 -203 474 682 ; C -1 ; WX 750 ; N threequarters ; B 30 0 720 676 ; C -1 ; WX 300 ; N threesuperior ; B 0 263 299 676 ; C -1 ; WX 1000 ; N trademark ; B 40 272 980 676 ; C -1 ; WX 300 ; N twosuperior ; B -2 270 302 676 ; C -1 ; WX 556 ; N uacute ; B 47 -13 520 690 ; C -1 ; WX 556 ; N ucircumflex ; B 47 -13 520 682 ; C -1 ; WX 556 ; N udieresis ; B 47 -13 536 648 ; C -1 ; WX 556 ; N ugrave ; B 47 -13 520 690 ; C -1 ; WX 444 ; N yacute ; B -60 -203 461 690 ; C -1 ; WX 444 ; N ydieresis ; B -60 -203 479 648 ; C -1 ; WX 389 ; N zcaron ; B -24 -58 465 683 ; C -1 ; WX 500 ; N abreve ; B 9 -14 496 671 ; C -1 ; WX 667 ; N Abreve ; B -51 0 640 895 ; C -1 ; WX 500 ; N aogonek ; B 9 -203 480 458 ; C -1 ; WX 667 ; N Aogonek ; B -51 -203 603 676 ; C -1 ; WX 444 ; N cacute ; B 25 -13 435 690 ; C -1 ; WX 667 ; N Cacute ; B 22 -18 660 902 ; C -1 ; WX 444 ; N ccaron ; B 25 -13 521 683 ; C -1 ; WX 667 ; N Ccaron ; B 22 -18 685 895 ; C -1 ; WX 500 ; N dbar ; B 9 -13 541 682 ; C -1 ; WX 722 ; N Dbar ; B -31 0 693 662 ; C -1 ; WX 500 ; N dcaron ; B 9 -13 721 759 ; C -1 ; WX 722 ; N Dcaron ; B -31 0 693 897 ; C -1 ; WX 444 ; N ecaron ; B 25 -13 492 683 ; C -1 ; WX 667 ; N Ecaron ; B -27 0 646 887 ; C -1 ; WX 444 ; N edotaccent ; B 25 -13 413 648 ; C -1 ; WX 667 ; N Edotaccent ; B -27 0 646 860 ; C -1 ; WX 444 ; N eogonek ; B 25 -203 413 458 ; C -1 ; WX 667 ; N Eogonek ; B -27 -203 646 662 ; C -1 ; WX 500 ; N gbreve ; B -27 -203 498 671 ; C -1 ; WX 722 ; N Gbreve ; B 21 -18 699 883 ; C -1 ; WX 389 ; N Idotaccent ; B -22 0 412 860 ; C -1 ; WX 278 ; N iogonek ; B -24 -203 283 676 ; C -1 ; WX 389 ; N Iogonek ; B -22 -203 412 662 ; C -1 ; WX 278 ; N lacute ; B 30 -13 459 904 ; C -1 ; WX 611 ; N Lacute ; B -22 0 601 904 ; C -1 ; WX 278 ; N lcaron ; B 30 -13 494 759 ; C -1 ; WX 611 ; N Lcaron ; B -22 0 610 726 ; C -1 ; WX 556 ; N nacute ; B 24 -13 518 690 ; C -1 ; WX 722 ; N Nacute ; B -27 -18 740 902 ; C -1 ; WX 556 ; N ncaron ; B 24 -13 548 683 ; C -1 ; WX 722 ; N Ncaron ; B -27 -18 740 897 ; C -1 ; WX 500 ; N ohungarumlaut ; B 27 -13 467 750 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 27 -18 684 954 ; C -1 ; WX 389 ; N racute ; B 9 0 457 690 ; C -1 ; WX 667 ; N Racute ; B -29 0 675 904 ; C -1 ; WX 389 ; N rcaron ; B 9 0 465 683 ; C -1 ; WX 667 ; N Rcaron ; B -29 0 661 897 ; C -1 ; WX 389 ; N sacute ; B 16 -13 364 690 ; C -1 ; WX 556 ; N Sacute ; B 6 -18 524 902 ; C -1 ; WX 389 ; N scedilla ; B 16 -216 364 459 ; C -1 ; WX 556 ; N Scedilla ; B 6 -216 524 676 ; C -1 ; WX 278 ; N tcaron ; B 15 -14 485 675 ; C -1 ; WX 611 ; N Tcaron ; B 39 0 633 897 ; C -1 ; WX 278 ; N tcedilla ; B 15 -216 324 592 ; C -1 ; WX 611 ; N Tcedilla ; B 39 -216 632 662 ; C -1 ; WX 556 ; N uhungarumlaut ; B 47 -13 520 750 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 66 -18 736 954 ; C -1 ; WX 556 ; N umacron ; B 47 -13 528 616 ; C -1 ; WX 722 ; N Umacron ; B 66 -18 736 828 ; C -1 ; WX 556 ; N uring ; B 47 -13 520 676 ; C -1 ; WX 722 ; N Uring ; B 66 -18 736 851 ; C -1 ; WX 556 ; N uogonek ; B 47 -203 520 458 ; C -1 ; WX 722 ; N Uogonek ; B 66 -203 736 662 ; C -1 ; WX 389 ; N zacute ; B -24 -58 435 690 ; C -1 ; WX 611 ; N Zacute ; B -1 0 594 902 ; C -1 ; WX 389 ; N zdotaccent ; B -24 -58 394 648 ; C -1 ; WX 611 ; N Zdotaccent ; B -1 0 594 860 ; EndCharMetrics EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmbi-o.ps���������������������������������������������������������������������0000644�0000000�0000000�00000005653�14415562571�013125� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Times-BoldItalic-Ogonki /Times-BoldItalic /Times-BoldItalic-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Ydieresis [89 139 204 168] put dup /ydieresis [121 55 0 168] put dup /Ucircumflex [85 194 204 28] put dup /Ugrave [85 194 204 27] put dup /ucircumflex [117 111 0 28] put dup /ugrave [117 111 0 27] put dup /Idieresis [73 28 204 168] put dup /Igrave [73 28 204 27] put dup /idieresis [136 -27 0 168] put dup /igrave [136 -27 0 27] put dup /Ecircumflex [69 167 204 28] put dup /Egrave [69 167 204 27] put dup /ecircumflex [101 55 0 28] put dup /egrave [101 55 0 27] put dup /Agrave [65 167 204 27] put dup /agrave [97 83 0 27] put dup /Ograve [79 194 204 27] put dup /ograve [111 83 0 27] put dup /Atilde [65 167 204 29] put dup /atilde [97 83 0 29] put dup /Ntilde [78 194 204 29] put dup /ntilde [110 111 0 29] put dup /Otilde [79 194 204 29] put dup /otilde [111 83 0 29] put dup /Aring [65 167 204 31] put dup /aring [97 83 0 31] put dup /abreve [97 83 0 162] put dup /Abreve [65 227 224 162] put dup /aogonek [97 255 -30 178] put dup /Aogonek [65 410 -30 178] put dup /cacute [99 30 0 180] put dup /Cacute [67 190 212 180] put dup /ccaron [99 84 0 183] put dup /Ccaron [67 248 212 183] put dup /dbar [100 240 320 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 439 84 39] put dup /Dcaron [68 251 214 183] put dup /ecaron [101 55 0 183] put dup /Ecaron [69 167 204 183] put dup /edotaccent [101 84 0 255] put dup /Edotaccent [69 220 212 255] put dup /eogonek [101 145 -30 178] put dup /Eogonek [69 358 -30 178] put dup /gbreve [103 83 0 162] put dup /Gbreve [71 204 212 162] put dup /Idotaccent [73 44 212 255] put dup /iogonek [105 12 -30 178] put dup /Iogonek [73 33 -30 178] put dup /lacute [108 54 214 180] put dup /Lacute [76 196 214 180] put dup /lcaron [108 212 84 39] put dup /Lcaron [76 328 51 39] put dup /nacute [110 60 0 180] put dup /Nacute [78 190 212 180] put dup /ncaron [110 111 0 183] put dup /Ncaron [78 251 214 183] put dup /ohungarumlaut [111 83 0 189] put dup /Ohungarumlaut [79 194 204 189] put dup /racute [114 52 0 180] put dup /Racute [82 270 214 180] put dup /rcaron [114 28 0 183] put dup /Rcaron [82 224 214 183] put dup /sacute [115 -50 0 180] put dup /Sacute [83 70 212 180] put dup /scedilla [115 28 0 184] put dup /Scedilla [83 111 0 184] put dup /tcaron [116 203 0 39] put dup /Tcaron [84 196 214 183] put dup /tcedilla [116 60 0 184] put dup /Tcedilla [84 198 0 184] put dup /uhungarumlaut [117 111 0 189] put dup /Uhungarumlaut [85 194 204 189] put dup /umacron [117 108 0 30] put dup /Umacron [85 253 212 30] put dup /uring [117 111 0 31] put dup /Uring [85 240 175 31] put dup /uogonek [117 242 -30 178] put dup /Uogonek [85 287 -30 178] put dup /zacute [122 30 0 180] put dup /Zacute [90 130 212 180] put dup /zdotaccent [122 -20 0 255] put dup /Zdotaccent [90 130 212 255] put makeComposite %%EndResource �������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmbi.afm����������������������������������������������������������������������0000644�0000000�0000000�00000036417�14233473143�013006� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date:Wed May 27 16:42:35 PDT 1987 FontName Times-BoldItalic EncodingScheme AdobeStandardEncoding FullName Times Bold Italic FamilyName Times Weight Bold ItalicAngle -15.0 IsFixedPitch false UnderlinePosition -98 UnderlineThickness 54 Version 001.004 Notice Times is a registered trademark of Allied Corporation. FontBBox -168 -232 1014 894 CapHeight 662 XHeight 458 Descender -203 Ascender 682 StartCharMetrics 228 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 389 ; N exclam ; B 66 -13 367 676 ; C 34 ; WX 555 ; N quotedbl ; B 142 367 549 693 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 662 ; C 36 ; WX 500 ; N dollar ; B -20 -101 492 723 ; C 37 ; WX 833 ; N percent ; B 39 -8 784 685 ; C 38 ; WX 778 ; N ampersand ; B 41 -19 727 676 ; C 39 ; WX 333 ; N quoteright ; B 80 362 282 675 ; C 40 ; WX 333 ; N parenleft ; B 28 -179 340 676 ; C 41 ; WX 333 ; N parenright ; B -44 -179 268 676 ; C 42 ; WX 500 ; N asterisk ; B 56 244 445 676 ; C 43 ; WX 570 ; N plus ; B 33 0 537 505 ; C 44 ; WX 250 ; N comma ; B -10 -181 192 132 ; C 45 ; WX 333 ; N hyphen ; B 33 167 299 282 ; C 46 ; WX 250 ; N period ; B 23 -13 170 133 ; C 47 ; WX 278 ; N slash ; B -11 -18 289 682 ; C 48 ; WX 500 ; N zero ; B 17 -13 472 676 ; C 49 ; WX 500 ; N one ; B 5 0 415 676 ; C 50 ; WX 500 ; N two ; B -27 0 441 676 ; C 51 ; WX 500 ; N three ; B -15 -13 445 676 ; C 52 ; WX 500 ; N four ; B -15 0 498 676 ; C 53 ; WX 500 ; N five ; B -11 -13 482 662 ; C 54 ; WX 500 ; N six ; B 23 -13 504 676 ; C 55 ; WX 500 ; N seven ; B 51 0 519 662 ; C 56 ; WX 500 ; N eight ; B 3 -13 471 676 ; C 57 ; WX 500 ; N nine ; B -12 -13 470 676 ; C 58 ; WX 333 ; N colon ; B 52 -13 291 458 ; C 59 ; WX 333 ; N semicolon ; B 13 -181 291 458 ; C 60 ; WX 570 ; N less ; B 31 -14 540 524 ; C 61 ; WX 570 ; N equal ; B 33 116 537 401 ; C 62 ; WX 570 ; N greater ; B 31 -14 540 524 ; C 63 ; WX 500 ; N question ; B 78 -13 465 676 ; C 64 ; WX 832 ; N at ; B -9 -150 838 691 ; C 65 ; WX 667 ; N A ; B -51 0 602 676 ; C 66 ; WX 667 ; N B ; B -24 0 618 662 ; C 67 ; WX 667 ; N C ; B 22 -18 660 677 ; C 68 ; WX 722 ; N D ; B -31 0 693 662 ; C 69 ; WX 667 ; N E ; B -27 0 646 662 ; C 70 ; WX 667 ; N F ; B -20 0 646 662 ; C 71 ; WX 722 ; N G ; B 21 -18 699 676 ; C 72 ; WX 778 ; N H ; B -24 0 791 662 ; C 73 ; WX 389 ; N I ; B -22 0 412 662 ; C 74 ; WX 500 ; N J ; B -45 -98 519 662 ; C 75 ; WX 667 ; N K ; B -31 0 685 662 ; C 76 ; WX 611 ; N L ; B -22 0 584 662 ; C 77 ; WX 889 ; N M ; B -29 -12 907 662 ; C 78 ; WX 722 ; N N ; B -27 -18 740 662 ; C 79 ; WX 722 ; N O ; B 27 -18 684 676 ; C 80 ; WX 611 ; N P ; B -27 0 608 662 ; C 81 ; WX 722 ; N Q ; B 27 -203 684 676 ; C 82 ; WX 667 ; N R ; B -29 0 616 662 ; C 83 ; WX 556 ; N S ; B 6 -18 524 676 ; C 84 ; WX 611 ; N T ; B 39 0 632 662 ; C 85 ; WX 722 ; N U ; B 66 -18 736 662 ; C 86 ; WX 667 ; N V ; B 48 -18 692 662 ; C 87 ; WX 889 ; N W ; B 48 -18 914 662 ; C 88 ; WX 667 ; N X ; B -24 0 687 662 ; C 89 ; WX 611 ; N Y ; B 46 0 625 662 ; C 90 ; WX 611 ; N Z ; B -1 0 594 662 ; C 91 ; WX 333 ; N bracketleft ; B -7 -157 388 682 ; C 92 ; WX 278 ; N backslash ; B 1 0 465 682 ; C 93 ; WX 333 ; N bracketright ; B -65 -157 330 682 ; C 94 ; WX 570 ; N asciicircum ; B 34 259 536 662 ; C 95 ; WX 500 ; N underscore ; B 0 -127 500 -89 ; C 96 ; WX 333 ; N quoteleft ; B 117 363 319 676 ; C 97 ; WX 500 ; N a ; B 9 -14 480 458 ; C 98 ; WX 500 ; N b ; B 20 -13 473 682 ; C 99 ; WX 444 ; N c ; B 25 -13 418 458 ; C 100 ; WX 500 ; N d ; B 9 -13 541 682 ; C 101 ; WX 444 ; N e ; B 25 -13 413 458 ; C 102 ; WX 333 ; N f ; B -146 -203 460 682 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B -27 -203 498 458 ; C 104 ; WX 556 ; N h ; B 12 -13 518 682 ; C 105 ; WX 278 ; N i ; B 24 -13 283 676 ; C 106 ; WX 278 ; N j ; B -152 -203 311 676 ; C 107 ; WX 500 ; N k ; B 10 -13 511 682 ; C 108 ; WX 278 ; N l ; B 30 -13 311 682 ; C 109 ; WX 778 ; N m ; B 16 -13 744 458 ; C 110 ; WX 556 ; N n ; B 24 -13 518 458 ; C 111 ; WX 500 ; N o ; B 27 -13 467 458 ; C 112 ; WX 500 ; N p ; B -79 -203 481 458 ; C 113 ; WX 500 ; N q ; B 21 -203 486 459 ; C 114 ; WX 389 ; N r ; B 9 0 415 458 ; C 115 ; WX 389 ; N s ; B 16 -13 364 459 ; C 116 ; WX 278 ; N t ; B 15 -14 304 592 ; C 117 ; WX 556 ; N u ; B 47 -13 520 458 ; C 118 ; WX 444 ; N v ; B 50 -13 432 458 ; C 119 ; WX 667 ; N w ; B 50 -13 642 458 ; C 120 ; WX 500 ; N x ; B -5 -13 498 458 ; C 121 ; WX 444 ; N y ; B -60 -203 423 458 ; C 122 ; WX 389 ; N z ; B -24 -58 394 448 ; C 123 ; WX 348 ; N braceleft ; B 30 -154 380 686 ; C 124 ; WX 220 ; N bar ; B 70 0 151 682 ; C 125 ; WX 348 ; N braceright ; B -31 -161 319 679 ; C 126 ; WX 570 ; N asciitilde ; B 33 158 537 353 ; C 161 ; WX 389 ; N exclamdown ; B 20 -232 320 458 ; C 162 ; WX 500 ; N cent ; B 50 -142 443 570 ; C 163 ; WX 500 ; N sterling ; B -32 -13 505 676 ; C 164 ; WX 167 ; N fraction ; B -161 0 327 662 ; C 165 ; WX 500 ; N yen ; B -15 0 565 662 ; C 166 ; WX 500 ; N florin ; B -86 -154 530 682 ; C 167 ; WX 500 ; N section ; B 36 -143 454 676 ; C 168 ; WX 500 ; N currency ; B -3 110 503 612 ; C 169 ; WX 278 ; N quotesingle ; B 126 367 295 693 ; C 170 ; WX 500 ; N quotedblleft ; B 57 363 513 676 ; C 171 ; WX 500 ; N guillemotleft ; B 21 33 474 416 ; C 172 ; WX 333 ; N guilsinglleft ; B 42 33 310 416 ; C 173 ; WX 333 ; N guilsinglright ; B 22 38 290 421 ; C 174 ; WX 556 ; N fi ; B -157 -203 538 682 ; C 175 ; WX 556 ; N fl ; B -149 -203 577 682 ; C 177 ; WX 500 ; N endash ; B -11 176 511 266 ; C 178 ; WX 500 ; N dagger ; B 90 -146 489 676 ; C 179 ; WX 500 ; N daggerdbl ; B 11 -143 487 675 ; C 180 ; WX 250 ; N periodcentered ; B 51 179 200 328 ; C 182 ; WX 500 ; N paragraph ; B 61 -189 592 682 ; C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; C 184 ; WX 333 ; N quotesinglbase ; B 66 -181 268 132 ; C 185 ; WX 500 ; N quotedblbase ; B -57 -181 398 132 ; C 186 ; WX 500 ; N quotedblright ; B 56 362 509 675 ; C 187 ; WX 500 ; N guillemotright ; B 20 38 473 421 ; C 188 ; WX 1000 ; N ellipsis ; B 93 -13 906 133 ; C 189 ; WX 1000 ; N perthousand ; B 7 -49 985 699 ; C 191 ; WX 500 ; N questiondown ; B 30 -203 417 487 ; C 193 ; WX 333 ; N grave ; B 115 511 325 690 ; C 194 ; WX 333 ; N acute ; B 168 511 405 690 ; C 195 ; WX 333 ; N circumflex ; B 70 510 394 682 ; C 196 ; WX 333 ; N tilde ; B 69 530 424 648 ; C 197 ; WX 333 ; N macron ; B 81 547 420 616 ; C 198 ; WX 333 ; N breve ; B 98 511 413 671 ; C 199 ; WX 333 ; N dotaccent ; B 180 519 308 648 ; C 200 ; WX 333 ; N dieresis ; B 85 519 424 648 ; C 202 ; WX 333 ; N ring ; B 141 466 352 676 ; C 203 ; WX 333 ; N cedilla ; B 32 -216 264 5 ; C 205 ; WX 333 ; N hungarumlaut ; B 28 538 339 750 ; C 206 ; WX 333 ; N ogonek ; B -36 -173 193 44 ; C 207 ; WX 333 ; N caron ; B 109 511 437 683 ; C 208 ; WX 1000 ; N emdash ; B -14 176 1014 266 ; C 225 ; WX 944 ; N AE ; B -41 0 931 662 ; C 227 ; WX 266 ; N ordfeminine ; B -24 286 291 676 ; C 232 ; WX 611 ; N Lslash ; B -22 0 584 662 ; C 233 ; WX 722 ; N Oslash ; B 27 -124 684 754 ; C 234 ; WX 944 ; N OE ; B 23 -8 936 670 ; C 235 ; WX 300 ; N ordmasculine ; B 1 286 300 676 ; C 241 ; WX 722 ; N ae ; B 15 -13 685 458 ; C 245 ; WX 278 ; N dotlessi ; B 27 -13 260 458 ; C 248 ; WX 278 ; N lslash ; B 12 -13 326 682 ; C 249 ; WX 500 ; N oslash ; B 27 -118 467 556 ; C 250 ; WX 722 ; N oe ; B 26 -13 687 458 ; C 251 ; WX 500 ; N germandbls ; B -168 -203 497 682 ; C -1 ; WX 667 ; N Aacute ; B -51 0 602 894 ; C -1 ; WX 667 ; N Acircumflex ; B -51 0 602 886 ; C -1 ; WX 667 ; N Adieresis ; B -51 0 602 852 ; C -1 ; WX 667 ; N Agrave ; B -51 0 602 894 ; C -1 ; WX 667 ; N Aring ; B -51 0 602 880 ; C -1 ; WX 667 ; N Atilde ; B -51 0 602 852 ; C -1 ; WX 667 ; N Ccedilla ; B 22 -216 660 677 ; C -1 ; WX 667 ; N Eacute ; B -27 0 646 894 ; C -1 ; WX 667 ; N Ecircumflex ; B -27 0 646 886 ; C -1 ; WX 667 ; N Edieresis ; B -27 0 646 852 ; C -1 ; WX 667 ; N Egrave ; B -27 0 646 894 ; C -1 ; WX 722 ; N Eth ; B -31 0 693 662 ; C -1 ; WX 389 ; N Iacute ; B -22 0 433 894 ; C -1 ; WX 389 ; N Icircumflex ; B -22 0 422 886 ; C -1 ; WX 389 ; N Idieresis ; B -22 0 452 852 ; C -1 ; WX 389 ; N Igrave ; B -22 0 412 894 ; C -1 ; WX 722 ; N Ntilde ; B -27 -18 740 852 ; C -1 ; WX 722 ; N Oacute ; B 27 -18 684 894 ; C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 684 886 ; C -1 ; WX 722 ; N Odieresis ; B 27 -18 684 852 ; C -1 ; WX 722 ; N Ograve ; B 27 -18 684 894 ; C -1 ; WX 722 ; N Otilde ; B 27 -18 684 852 ; C -1 ; WX 556 ; N Scaron ; B 6 -18 549 887 ; C -1 ; WX 611 ; N Thorn ; B -27 0 572 662 ; C -1 ; WX 722 ; N Uacute ; B 66 -18 736 894 ; C -1 ; WX 722 ; N Ucircumflex ; B 66 -18 736 886 ; C -1 ; WX 722 ; N Udieresis ; B 66 -18 736 852 ; C -1 ; WX 722 ; N Ugrave ; B 66 -18 736 894 ; C -1 ; WX 611 ; N Yacute ; B 46 0 625 894 ; C -1 ; WX 611 ; N Ydieresis ; B 46 0 625 852 ; C -1 ; WX 611 ; N Zcaron ; B -1 0 594 887 ; C -1 ; WX 500 ; N aacute ; B 9 -14 489 690 ; C -1 ; WX 500 ; N acircumflex ; B 9 -14 480 682 ; C -1 ; WX 500 ; N adieresis ; B 9 -14 508 648 ; C -1 ; WX 500 ; N agrave ; B 9 -14 480 690 ; C -1 ; WX 500 ; N aring ; B 9 -14 480 676 ; C -1 ; WX 500 ; N atilde ; B 9 -14 508 648 ; C -1 ; WX 220 ; N brokenbar ; B 70 0 151 682 ; C -1 ; WX 444 ; N ccedilla ; B 25 -216 418 458 ; C -1 ; WX 747 ; N copyright ; B 23 -18 723 676 ; C -1 ; WX 400 ; N degree ; B 70 376 370 676 ; C -1 ; WX 570 ; N divide ; B 33 0 537 505 ; C -1 ; WX 444 ; N eacute ; B 25 -13 461 690 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -13 450 682 ; C -1 ; WX 444 ; N edieresis ; B 25 -13 480 648 ; C -1 ; WX 444 ; N egrave ; B 25 -13 413 690 ; C -1 ; WX 500 ; N eth ; B 27 -13 498 682 ; C -1 ; WX 278 ; N iacute ; B 27 -13 378 690 ; C -1 ; WX 278 ; N icircumflex ; B 27 -13 367 682 ; C -1 ; WX 278 ; N idieresis ; B 27 -13 397 648 ; C -1 ; WX 278 ; N igrave ; B 27 -13 298 690 ; C -1 ; WX 606 ; N logicalnot ; B 51 120 555 401 ; C -1 ; WX 606 ; N minus ; B 51 210 555 300 ; C -1 ; WX 576 ; N mu ; B -62 -210 522 458 ; C -1 ; WX 570 ; N multiply ; B 33 0 537 504 ; C -1 ; WX 556 ; N ntilde ; B 24 -13 536 648 ; C -1 ; WX 500 ; N oacute ; B 27 -13 489 690 ; C -1 ; WX 500 ; N ocircumflex ; B 27 -13 478 682 ; C -1 ; WX 500 ; N odieresis ; B 27 -13 508 648 ; C -1 ; WX 500 ; N ograve ; B 27 -13 467 690 ; C -1 ; WX 750 ; N onehalf ; B 30 0 720 676 ; C -1 ; WX 750 ; N onequarter ; B 30 0 720 676 ; C -1 ; WX 300 ; N onesuperior ; B 17 270 283 676 ; C -1 ; WX 500 ; N otilde ; B 27 -13 508 648 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 665 ; C -1 ; WX 747 ; N registered ; B 23 -18 723 676 ; C -1 ; WX 389 ; N scaron ; B 16 -13 465 683 ; C -1 ; WX 500 ; N thorn ; B -79 -203 474 682 ; C -1 ; WX 750 ; N threequarters ; B 30 0 720 676 ; C -1 ; WX 300 ; N threesuperior ; B 0 263 299 676 ; C -1 ; WX 1000 ; N trademark ; B 40 272 980 676 ; C -1 ; WX 300 ; N twosuperior ; B -2 270 302 676 ; C -1 ; WX 556 ; N uacute ; B 47 -13 520 690 ; C -1 ; WX 556 ; N ucircumflex ; B 47 -13 520 682 ; C -1 ; WX 556 ; N udieresis ; B 47 -13 536 648 ; C -1 ; WX 556 ; N ugrave ; B 47 -13 520 690 ; C -1 ; WX 444 ; N yacute ; B -60 -203 461 690 ; C -1 ; WX 444 ; N ydieresis ; B -60 -203 480 648 ; C -1 ; WX 389 ; N zcaron ; B -24 -58 465 683 ; EndCharMetrics StartKernData StartKernPairs 108 KPX A y -74 KPX A w -74 KPX A v -74 KPX A space -55 KPX A quoteright -74 KPX A Y -55 KPX A W -92 KPX A V -74 KPX A T -55 KPX F space -18 KPX F period -129 KPX F comma -129 KPX F A -92 KPX L y -37 KPX L space -37 KPX L quoteright -55 KPX L Y -37 KPX L W -37 KPX L V -37 KPX L T -18 KPX P space -37 KPX P period -129 KPX P comma -129 KPX P A -74 KPX R y -18 KPX R Y -18 KPX R W -18 KPX R V -18 KPX T y -37 KPX T w -37 KPX T u -37 KPX T semicolon -74 KPX T s -92 KPX T r -37 KPX T period -92 KPX T o -92 KPX T i -37 KPX T hyphen -92 KPX T e -92 KPX T comma -92 KPX T colon -74 KPX T c -92 KPX T a -92 KPX T O -18 KPX T A -55 KPX V y -74 KPX V u -55 KPX V space -18 KPX V semicolon -74 KPX V r -55 KPX V period -129 KPX V o -111 KPX V i -55 KPX V hyphen -55 KPX V e -111 KPX V comma -129 KPX V colon -74 KPX V a -111 KPX V A -74 KPX W y -55 KPX W u -55 KPX W space -18 KPX W semicolon -55 KPX W r -74 KPX W period -74 KPX W o -74 KPX W i -37 KPX W hyphen -37 KPX W e -74 KPX W comma -74 KPX W colon -55 KPX W a -74 KPX W A -74 KPX Y v -92 KPX Y u -92 KPX Y space -37 KPX Y semicolon -92 KPX Y q -111 KPX Y period -74 KPX Y p -74 KPX Y o -111 KPX Y i -55 KPX Y hyphen -92 KPX Y e -111 KPX Y comma -92 KPX Y colon -92 KPX Y a -92 KPX Y A -74 KPX f quoteright 55 KPX f f -18 KPX one one -55 KPX quoteleft quoteleft -74 KPX quoteright t -37 KPX quoteright space -74 KPX quoteright s -74 KPX quoteright quoteright -74 KPX r quoteright 37 KPX r period -55 KPX r comma -55 KPX space Y -18 KPX space W -18 KPX space A -37 KPX v period -37 KPX v comma -37 KPX w period -37 KPX w comma -37 KPX y period -37 KPX y comma -37 EndKernPairs EndKernData StartComposites 58 CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 204 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 0 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 111 204 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 55 0 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 139 204 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 55 0 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 204 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 55 0 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 204 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 204 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 204 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 204 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 204 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 204 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 204 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 204 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 204 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 204 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 204 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 204 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 55 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 55 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 55 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 55 0 ; CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 204 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 204 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 204 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 204 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 83 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 83 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 83 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 83 0 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 194 204 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 194 204 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 194 204 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 194 204 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 83 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 83 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 83 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 83 0 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 204 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 83 0 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 204 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 194 204 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 83 0 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 167 204 ; CC aring 2 ; PCC a 0 0 ; PCC ring 83 0 ; EndComposites EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmr-c.afm���������������������������������������������������������������������0000644�0000000�0000000�00000005615�14233473143�013071� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment More composite characters for Times-Roman. Comment by J. Chroboczek <jec@dcs.ed.ac.uk> Comment This is not strictly a conforming AFM file. FontName Times-Roman-Comp StartComposites 57 CC abreve 2 ; PCC a 0 0 ; PCC breve 55 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 194 223 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 209 0 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 465 0 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 70 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 212 212 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 69 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 196 212 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 200 300 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 426 75 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 216 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 214 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 61 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 154 212 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 142 9 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 320 0 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 84 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 195 212 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 0 212 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek 12 0 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek 67 0 ; CC lacute 2 ; PCC l 0 0 ; PCC acute -5 216 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 216 ; CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 192 75 ; CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 250 52 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 90 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 190 212 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 214 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 83 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 194 214 ; CC racute 2 ; PCC r 0 0 ; PCC acute 22 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 210 216 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 216 ; CC sacute 2 ; PCC s 0 0 ; PCC acute 20 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 100 212 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 28 0 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 112 0 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 53 0 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 197 0 ; CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 214 0 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 139 216 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 83 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 194 214 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 81 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 205 212 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 236 5 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 287 5 ; CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 194 179 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 60 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 120 212 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent 50 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 140 212 ; EndComposites EndFontMetrics �������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmr-o.afm���������������������������������������������������������������������0000644�0000000�0000000�00000032061�14415562571�013106� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Times-Roman-Ogonki EncodingScheme StandardEncoding FullName Times-Roman-Ogonki Composite font FontBBox -168 -218 1000 898 StartCharMetrics 285 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 130 -9 238 676 ; C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ; C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ; C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ; C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ; C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ; C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ; C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ; C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ; C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ; C 43 ; WX 564 ; N plus ; B 30 0 534 506 ; C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ; C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ; C 46 ; WX 250 ; N period ; B 70 -11 181 100 ; C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ; C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ; C 49 ; WX 500 ; N one ; B 111 0 394 676 ; C 50 ; WX 500 ; N two ; B 30 0 475 676 ; C 51 ; WX 500 ; N three ; B 43 -14 431 676 ; C 52 ; WX 500 ; N four ; B 12 0 472 676 ; C 53 ; WX 500 ; N five ; B 32 -14 438 688 ; C 54 ; WX 500 ; N six ; B 34 -14 468 684 ; C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ; C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ; C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ; C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ; C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ; C 60 ; WX 564 ; N less ; B 28 -8 536 514 ; C 61 ; WX 564 ; N equal ; B 30 120 534 386 ; C 62 ; WX 564 ; N greater ; B 28 -8 536 514 ; C 63 ; WX 444 ; N question ; B 68 -8 414 676 ; C 64 ; WX 921 ; N at ; B 116 -14 809 676 ; C 65 ; WX 722 ; N A ; B 15 0 706 674 ; C 66 ; WX 667 ; N B ; B 17 0 593 662 ; C 67 ; WX 667 ; N C ; B 28 -14 633 676 ; C 68 ; WX 722 ; N D ; B 16 0 685 662 ; C 69 ; WX 611 ; N E ; B 12 0 597 662 ; C 70 ; WX 556 ; N F ; B 12 0 546 662 ; C 71 ; WX 722 ; N G ; B 32 -14 709 676 ; C 72 ; WX 722 ; N H ; B 19 0 702 662 ; C 73 ; WX 333 ; N I ; B 18 0 315 662 ; C 74 ; WX 389 ; N J ; B 10 -14 370 662 ; C 75 ; WX 722 ; N K ; B 34 0 723 662 ; C 76 ; WX 611 ; N L ; B 12 0 598 662 ; C 77 ; WX 889 ; N M ; B 12 0 863 662 ; C 78 ; WX 722 ; N N ; B 12 -11 707 662 ; C 79 ; WX 722 ; N O ; B 34 -14 688 676 ; C 80 ; WX 556 ; N P ; B 16 0 542 662 ; C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ; C 82 ; WX 667 ; N R ; B 17 0 659 662 ; C 83 ; WX 556 ; N S ; B 42 -14 491 676 ; C 84 ; WX 611 ; N T ; B 17 0 593 662 ; C 85 ; WX 722 ; N U ; B 14 -14 705 662 ; C 86 ; WX 722 ; N V ; B 16 -11 697 662 ; C 87 ; WX 944 ; N W ; B 5 -11 932 662 ; C 88 ; WX 722 ; N X ; B 10 0 704 662 ; C 89 ; WX 722 ; N Y ; B 22 0 703 662 ; C 90 ; WX 611 ; N Z ; B 9 0 597 662 ; C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ; C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ; C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ; C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ; C 97 ; WX 444 ; N a ; B 37 -10 442 460 ; C 98 ; WX 500 ; N b ; B 3 -10 468 683 ; C 99 ; WX 444 ; N c ; B 25 -10 412 460 ; C 100 ; WX 500 ; N d ; B 27 -10 491 683 ; C 101 ; WX 444 ; N e ; B 25 -10 424 460 ; C 102 ; WX 333 ; N f ; B 20 0 383 683 ; C 103 ; WX 500 ; N g ; B 28 -218 470 460 ; C 104 ; WX 500 ; N h ; B 9 0 487 683 ; C 105 ; WX 278 ; N i ; B 16 0 253 683 ; C 106 ; WX 278 ; N j ; B -70 -218 194 683 ; C 107 ; WX 500 ; N k ; B 7 0 505 683 ; C 108 ; WX 278 ; N l ; B 19 0 257 683 ; C 109 ; WX 778 ; N m ; B 16 0 775 460 ; C 110 ; WX 500 ; N n ; B 16 0 485 460 ; C 111 ; WX 500 ; N o ; B 29 -10 470 460 ; C 112 ; WX 500 ; N p ; B 5 -217 470 460 ; C 113 ; WX 500 ; N q ; B 24 -217 488 460 ; C 114 ; WX 333 ; N r ; B 5 0 335 460 ; C 115 ; WX 389 ; N s ; B 51 -10 348 460 ; C 116 ; WX 278 ; N t ; B 13 -10 279 579 ; C 117 ; WX 500 ; N u ; B 9 -10 479 450 ; C 118 ; WX 500 ; N v ; B 19 -14 477 450 ; C 119 ; WX 722 ; N w ; B 21 -14 694 450 ; C 120 ; WX 500 ; N x ; B 17 0 479 450 ; C 121 ; WX 500 ; N y ; B 14 -218 475 450 ; C 122 ; WX 444 ; N z ; B 27 0 418 450 ; C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ; C 124 ; WX 200 ; N bar ; B 67 -14 133 676 ; C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ; C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; C 161 ; WX 333 ; N exclamdown ; B 97 -218 205 467 ; C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ; C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ; C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ; C 165 ; WX 500 ; N yen ; B -53 0 512 662 ; C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ; C 167 ; WX 500 ; N section ; B 70 -148 426 676 ; C 168 ; WX 500 ; N currency ; B -22 58 522 602 ; C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ; C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ; C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ; C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ; C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ; C 174 ; WX 556 ; N fi ; B 31 0 521 683 ; C 175 ; WX 556 ; N fl ; B 32 0 521 683 ; C 177 ; WX 500 ; N endash ; B 0 201 500 250 ; C 178 ; WX 500 ; N dagger ; B 59 -149 442 676 ; C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ; C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ; C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ; C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ; C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ; C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ; C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ; C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ; C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ; C 191 ; WX 444 ; N questiondown ; B 30 -218 376 466 ; C 193 ; WX 333 ; N grave ; B 19 507 242 678 ; C 194 ; WX 333 ; N acute ; B 93 507 317 678 ; C 195 ; WX 333 ; N circumflex ; B 11 507 322 674 ; C 196 ; WX 333 ; N tilde ; B 1 532 331 638 ; C 197 ; WX 333 ; N macron ; B 11 547 322 601 ; C 198 ; WX 333 ; N breve ; B 26 507 307 664 ; C 199 ; WX 333 ; N dotaccent ; B 118 523 216 623 ; C 200 ; WX 333 ; N dieresis ; B 18 523 315 623 ; C 202 ; WX 333 ; N ring ; B 67 512 266 711 ; C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ; C 206 ; WX 333 ; N ogonek ; B 64 -165 249 0 ; C 207 ; WX 333 ; N caron ; B 11 507 322 674 ; C 208 ; WX 1000 ; N emdash ; B 0 201 1000 250 ; C 225 ; WX 889 ; N AE ; B 0 0 863 662 ; C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ; C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ; C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ; C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ; C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ; C 241 ; WX 667 ; N ae ; B 38 -10 632 460 ; C 245 ; WX 278 ; N dotlessi ; B 16 0 253 460 ; C 248 ; WX 278 ; N lslash ; B 19 0 259 683 ; C 249 ; WX 500 ; N oslash ; B 29 -112 470 551 ; C 250 ; WX 722 ; N oe ; B 30 -10 690 460 ; C 251 ; WX 500 ; N germandbls ; B 12 -9 468 683 ; C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ; C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ; C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 623 ; C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ; C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ; C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ; C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ; C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ; C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ; C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ; C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ; C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ; C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ; C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ; C -1 ; WX 500 ; N udieresis ; B 9 -10 479 623 ; C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ; C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ; C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ; C -1 ; WX 444 ; N edieresis ; B 25 -10 424 623 ; C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ; C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ; C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ; C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ; C -1 ; WX 333 ; N Idieresis ; B 18 0 315 835 ; C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ; C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ; C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ; C -1 ; WX 444 ; N aring ; B 37 -10 442 711 ; C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ; C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ; C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ; C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ; C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ; C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ; C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ; C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ; C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ; C -1 ; WX 611 ; N Edieresis ; B 12 0 597 835 ; C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ; C -1 ; WX 444 ; N adieresis ; B 37 -10 442 623 ; C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ; C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ; C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ; C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ; C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ; C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ; C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ; C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ; C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ; C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ; C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ; C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ; C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ; C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ; C -1 ; WX 722 ; N Aring ; B 15 0 706 898 ; C -1 ; WX 278 ; N idieresis ; B -9 0 288 623 ; C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ; C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ; C -1 ; WX 564 ; N plusminus ; B 30 0 534 506 ; C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ; C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ; C -1 ; WX 564 ; N minus ; B 30 220 534 286 ; C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ; C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ; C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ; C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ; C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ; C -1 ; WX 500 ; N odieresis ; B 29 -10 470 623 ; C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ; C -1 ; WX 400 ; N degree ; B 57 390 343 676 ; C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ; C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ; C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ; C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ; C -1 ; WX 722 ; N Adieresis ; B 15 0 706 835 ; C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ; C -1 ; WX 200 ; N brokenbar ; B 67 -14 133 676 ; C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ; C -1 ; WX 444 ; N abreve ; B 37 -10 442 664 ; C -1 ; WX 722 ; N Abreve ; B 15 0 706 887 ; C -1 ; WX 444 ; N aogonek ; B 37 -165 458 460 ; C -1 ; WX 722 ; N Aogonek ; B 15 -165 714 674 ; C -1 ; WX 444 ; N cacute ; B 25 -10 412 678 ; C -1 ; WX 667 ; N Cacute ; B 28 -14 633 890 ; C -1 ; WX 444 ; N ccaron ; B 25 -10 412 674 ; C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 886 ; C -1 ; WX 500 ; N dbar ; B 27 -10 491 683 ; C -1 ; WX 722 ; N Dbar ; B 0 0 685 662 ; C -1 ; WX 500 ; N dcaron ; B 27 -10 644 751 ; C -1 ; WX 722 ; N Dcaron ; B 16 0 685 890 ; C -1 ; WX 444 ; N ecaron ; B 25 -10 424 674 ; C -1 ; WX 611 ; N Ecaron ; B 12 0 597 888 ; C -1 ; WX 444 ; N edotaccent ; B 25 -10 424 623 ; C -1 ; WX 611 ; N Edotaccent ; B 12 0 597 835 ; C -1 ; WX 444 ; N eogonek ; B 25 -156 424 460 ; C -1 ; WX 611 ; N Eogonek ; B 12 -165 597 662 ; C -1 ; WX 500 ; N gbreve ; B 28 -218 470 664 ; C -1 ; WX 722 ; N Gbreve ; B 32 -14 709 876 ; C -1 ; WX 333 ; N Idotaccent ; B 18 0 315 835 ; C -1 ; WX 278 ; N iogonek ; B 16 -165 261 683 ; C -1 ; WX 333 ; N Iogonek ; B 18 -165 316 662 ; C -1 ; WX 278 ; N lacute ; B 19 0 312 894 ; C -1 ; WX 611 ; N Lacute ; B 12 0 598 894 ; C -1 ; WX 278 ; N lcaron ; B 19 0 410 751 ; C -1 ; WX 611 ; N Lcaron ; B 12 0 598 728 ; C -1 ; WX 500 ; N nacute ; B 16 0 485 678 ; C -1 ; WX 722 ; N Nacute ; B 12 -11 707 890 ; C -1 ; WX 500 ; N ncaron ; B 16 0 485 674 ; C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 888 ; C -1 ; WX 500 ; N ohungarumlaut ; B 29 -10 470 678 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 34 -14 688 892 ; C -1 ; WX 333 ; N racute ; B 5 0 339 678 ; C -1 ; WX 667 ; N Racute ; B 17 0 659 894 ; C -1 ; WX 333 ; N rcaron ; B 5 0 335 674 ; C -1 ; WX 667 ; N Rcaron ; B 17 0 659 890 ; C -1 ; WX 389 ; N sacute ; B 51 -10 348 678 ; C -1 ; WX 556 ; N Sacute ; B 42 -14 491 890 ; C -1 ; WX 389 ; N scedilla ; B 51 -215 348 460 ; C -1 ; WX 556 ; N Scedilla ; B 42 -215 491 676 ; C -1 ; WX 278 ; N tcedilla ; B 13 -215 314 579 ; C -1 ; WX 611 ; N Tcedilla ; B 17 -215 593 662 ; C -1 ; WX 278 ; N tcaron ; B 13 -10 432 676 ; C -1 ; WX 611 ; N Tcaron ; B 17 0 593 890 ; C -1 ; WX 500 ; N uhungarumlaut ; B 9 -10 479 678 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 14 -14 705 892 ; C -1 ; WX 500 ; N umacron ; B 9 -10 479 601 ; C -1 ; WX 722 ; N Umacron ; B 14 -14 705 813 ; C -1 ; WX 500 ; N uogonek ; B 9 -160 485 450 ; C -1 ; WX 722 ; N Uogonek ; B 14 -160 705 662 ; C -1 ; WX 500 ; N uring ; B 9 -10 479 711 ; C -1 ; WX 722 ; N Uring ; B 14 -14 705 890 ; C -1 ; WX 444 ; N zacute ; B 27 0 418 678 ; C -1 ; WX 611 ; N Zacute ; B 9 0 597 890 ; C -1 ; WX 444 ; N zdotaccent ; B 27 0 418 623 ; C -1 ; WX 611 ; N Zdotaccent ; B 9 0 597 835 ; EndCharMetrics EndFontMetrics �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmr-o.ps����������������������������������������������������������������������0000644�0000000�0000000�00000005600�14415562571�012764� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Times-Roman-Ogonki /Times-Roman /Times-Roman-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Agrave [65 195 212 27] put dup /Aring [65 185 187 31] put dup /Atilde [65 195 212 29] put dup /Ecircumflex [69 139 212 28] put dup /Egrave [69 139 212 27] put dup /Idieresis [73 0 212 168] put dup /Igrave [73 0 212 27] put dup /Ntilde [78 195 212 29] put dup /Ograve [79 195 212 27] put dup /Otilde [79 195 212 29] put dup /Ucircumflex [85 195 212 28] put dup /Ugrave [85 195 212 27] put dup /Ydieresis [89 195 212 168] put dup /agrave [97 56 0 27] put dup /aring [97 56 0 31] put dup /atilde [97 56 0 29] put dup /ecircumflex [101 56 0 28] put dup /egrave [101 56 0 27] put dup /idieresis [136 -27 0 168] put dup /igrave [136 -27 0 27] put dup /ntilde [110 84 0 29] put dup /ograve [111 84 0 27] put dup /otilde [111 84 0 29] put dup /ucircumflex [117 84 0 28] put dup /ugrave [117 84 0 27] put dup /ydieresis [121 84 0 168] put dup /abreve [97 55 0 162] put dup /Abreve [65 194 223 162] put dup /aogonek [97 209 0 178] put dup /Aogonek [65 465 0 178] put dup /cacute [99 70 0 180] put dup /Cacute [67 212 212 180] put dup /ccaron [99 69 0 183] put dup /Ccaron [67 196 212 183] put dup /dbar [100 200 300 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 426 75 39] put dup /Dcaron [68 194 216 183] put dup /ecaron [101 55 0 183] put dup /Ecaron [69 139 214 183] put dup /edotaccent [101 61 0 255] put dup /Edotaccent [69 154 212 255] put dup /eogonek [101 142 9 178] put dup /Eogonek [69 320 0 178] put dup /gbreve [103 84 0 162] put dup /Gbreve [71 195 212 162] put dup /Idotaccent [73 0 212 255] put dup /iogonek [105 12 0 178] put dup /Iogonek [73 67 0 178] put dup /lacute [108 -5 216 180] put dup /Lacute [76 139 216 180] put dup /lcaron [108 192 75 39] put dup /Lcaron [76 250 52 39] put dup /nacute [110 90 0 180] put dup /Nacute [78 190 212 180] put dup /ncaron [110 83 0 183] put dup /Ncaron [78 194 214 183] put dup /ohungarumlaut [111 83 0 189] put dup /Ohungarumlaut [79 194 214 189] put dup /racute [114 22 0 180] put dup /Racute [82 210 216 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 167 216 183] put dup /sacute [115 20 0 180] put dup /Sacute [83 100 212 180] put dup /scedilla [115 28 0 184] put dup /Scedilla [83 112 0 184] put dup /tcedilla [116 53 0 184] put dup /Tcedilla [84 197 0 184] put dup /tcaron [116 214 0 39] put dup /Tcaron [84 139 216 183] put dup /uhungarumlaut [117 83 0 189] put dup /Uhungarumlaut [85 194 214 189] put dup /umacron [117 81 0 30] put dup /Umacron [85 205 212 30] put dup /uogonek [117 236 5 178] put dup /Uogonek [85 287 5 178] put dup /uring [117 83 0 31] put dup /Uring [85 194 179 31] put dup /zacute [122 60 0 180] put dup /Zacute [90 120 212 180] put dup /zdotaccent [122 50 0 255] put dup /Zdotaccent [90 140 212 255] put makeComposite %%EndResource ��������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmr.afm�����������������������������������������������������������������������0000644�0000000�0000000�00000043026�14233473143�012647� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue Mar 20 12:15:44 1990 Comment UniqueID 28416 Comment VMusage 30487 37379 FontName Times-Roman FullName Times Roman FamilyName Times Weight Roman ItalicAngle 0 IsFixedPitch false FontBBox -168 -218 1000 898 UnderlinePosition -100 UnderlineThickness 50 Version 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 662 XHeight 450 Ascender 683 Descender -217 StartCharMetrics 228 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 130 -9 238 676 ; C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ; C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ; C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ; C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ; C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ; C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ; C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ; C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ; C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ; C 43 ; WX 564 ; N plus ; B 30 0 534 506 ; C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ; C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ; C 46 ; WX 250 ; N period ; B 70 -11 181 100 ; C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ; C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ; C 49 ; WX 500 ; N one ; B 111 0 394 676 ; C 50 ; WX 500 ; N two ; B 30 0 475 676 ; C 51 ; WX 500 ; N three ; B 43 -14 431 676 ; C 52 ; WX 500 ; N four ; B 12 0 472 676 ; C 53 ; WX 500 ; N five ; B 32 -14 438 688 ; C 54 ; WX 500 ; N six ; B 34 -14 468 684 ; C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ; C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ; C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ; C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ; C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ; C 60 ; WX 564 ; N less ; B 28 -8 536 514 ; C 61 ; WX 564 ; N equal ; B 30 120 534 386 ; C 62 ; WX 564 ; N greater ; B 28 -8 536 514 ; C 63 ; WX 444 ; N question ; B 68 -8 414 676 ; C 64 ; WX 921 ; N at ; B 116 -14 809 676 ; C 65 ; WX 722 ; N A ; B 15 0 706 674 ; C 66 ; WX 667 ; N B ; B 17 0 593 662 ; C 67 ; WX 667 ; N C ; B 28 -14 633 676 ; C 68 ; WX 722 ; N D ; B 16 0 685 662 ; C 69 ; WX 611 ; N E ; B 12 0 597 662 ; C 70 ; WX 556 ; N F ; B 12 0 546 662 ; C 71 ; WX 722 ; N G ; B 32 -14 709 676 ; C 72 ; WX 722 ; N H ; B 19 0 702 662 ; C 73 ; WX 333 ; N I ; B 18 0 315 662 ; C 74 ; WX 389 ; N J ; B 10 -14 370 662 ; C 75 ; WX 722 ; N K ; B 34 0 723 662 ; C 76 ; WX 611 ; N L ; B 12 0 598 662 ; C 77 ; WX 889 ; N M ; B 12 0 863 662 ; C 78 ; WX 722 ; N N ; B 12 -11 707 662 ; C 79 ; WX 722 ; N O ; B 34 -14 688 676 ; C 80 ; WX 556 ; N P ; B 16 0 542 662 ; C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ; C 82 ; WX 667 ; N R ; B 17 0 659 662 ; C 83 ; WX 556 ; N S ; B 42 -14 491 676 ; C 84 ; WX 611 ; N T ; B 17 0 593 662 ; C 85 ; WX 722 ; N U ; B 14 -14 705 662 ; C 86 ; WX 722 ; N V ; B 16 -11 697 662 ; C 87 ; WX 944 ; N W ; B 5 -11 932 662 ; C 88 ; WX 722 ; N X ; B 10 0 704 662 ; C 89 ; WX 722 ; N Y ; B 22 0 703 662 ; C 90 ; WX 611 ; N Z ; B 9 0 597 662 ; C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ; C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ; C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ; C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ; C 97 ; WX 444 ; N a ; B 37 -10 442 460 ; C 98 ; WX 500 ; N b ; B 3 -10 468 683 ; C 99 ; WX 444 ; N c ; B 25 -10 412 460 ; C 100 ; WX 500 ; N d ; B 27 -10 491 683 ; C 101 ; WX 444 ; N e ; B 25 -10 424 460 ; C 102 ; WX 333 ; N f ; B 20 0 383 683 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 28 -218 470 460 ; C 104 ; WX 500 ; N h ; B 9 0 487 683 ; C 105 ; WX 278 ; N i ; B 16 0 253 683 ; C 106 ; WX 278 ; N j ; B -70 -218 194 683 ; C 107 ; WX 500 ; N k ; B 7 0 505 683 ; C 108 ; WX 278 ; N l ; B 19 0 257 683 ; C 109 ; WX 778 ; N m ; B 16 0 775 460 ; C 110 ; WX 500 ; N n ; B 16 0 485 460 ; C 111 ; WX 500 ; N o ; B 29 -10 470 460 ; C 112 ; WX 500 ; N p ; B 5 -217 470 460 ; C 113 ; WX 500 ; N q ; B 24 -217 488 460 ; C 114 ; WX 333 ; N r ; B 5 0 335 460 ; C 115 ; WX 389 ; N s ; B 51 -10 348 460 ; C 116 ; WX 278 ; N t ; B 13 -10 279 579 ; C 117 ; WX 500 ; N u ; B 9 -10 479 450 ; C 118 ; WX 500 ; N v ; B 19 -14 477 450 ; C 119 ; WX 722 ; N w ; B 21 -14 694 450 ; C 120 ; WX 500 ; N x ; B 17 0 479 450 ; C 121 ; WX 500 ; N y ; B 14 -218 475 450 ; C 122 ; WX 444 ; N z ; B 27 0 418 450 ; C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ; C 124 ; WX 200 ; N bar ; B 67 -14 133 676 ; C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ; C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; C 161 ; WX 333 ; N exclamdown ; B 97 -218 205 467 ; C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ; C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ; C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ; C 165 ; WX 500 ; N yen ; B -53 0 512 662 ; C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ; C 167 ; WX 500 ; N section ; B 70 -148 426 676 ; C 168 ; WX 500 ; N currency ; B -22 58 522 602 ; C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ; C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ; C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ; C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ; C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ; C 174 ; WX 556 ; N fi ; B 31 0 521 683 ; C 175 ; WX 556 ; N fl ; B 32 0 521 683 ; C 177 ; WX 500 ; N endash ; B 0 201 500 250 ; C 178 ; WX 500 ; N dagger ; B 59 -149 442 676 ; C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ; C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ; C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ; C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ; C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ; C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ; C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ; C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ; C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ; C 191 ; WX 444 ; N questiondown ; B 30 -218 376 466 ; C 193 ; WX 333 ; N grave ; B 19 507 242 678 ; C 194 ; WX 333 ; N acute ; B 93 507 317 678 ; C 195 ; WX 333 ; N circumflex ; B 11 507 322 674 ; C 196 ; WX 333 ; N tilde ; B 1 532 331 638 ; C 197 ; WX 333 ; N macron ; B 11 547 322 601 ; C 198 ; WX 333 ; N breve ; B 26 507 307 664 ; C 199 ; WX 333 ; N dotaccent ; B 118 523 216 623 ; C 200 ; WX 333 ; N dieresis ; B 18 523 315 623 ; C 202 ; WX 333 ; N ring ; B 67 512 266 711 ; C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ; C 206 ; WX 333 ; N ogonek ; B 64 -165 249 0 ; C 207 ; WX 333 ; N caron ; B 11 507 322 674 ; C 208 ; WX 1000 ; N emdash ; B 0 201 1000 250 ; C 225 ; WX 889 ; N AE ; B 0 0 863 662 ; C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ; C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ; C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ; C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ; C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ; C 241 ; WX 667 ; N ae ; B 38 -10 632 460 ; C 245 ; WX 278 ; N dotlessi ; B 16 0 253 460 ; C 248 ; WX 278 ; N lslash ; B 19 0 259 683 ; C 249 ; WX 500 ; N oslash ; B 29 -112 470 551 ; C 250 ; WX 722 ; N oe ; B 30 -10 690 460 ; C 251 ; WX 500 ; N germandbls ; B 12 -9 468 683 ; C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ; C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ; C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 623 ; C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ; C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ; C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ; C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ; C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ; C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ; C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ; C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ; C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ; C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ; C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ; C -1 ; WX 500 ; N udieresis ; B 9 -10 479 623 ; C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ; C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ; C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ; C -1 ; WX 444 ; N edieresis ; B 25 -10 424 623 ; C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ; C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ; C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ; C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ; C -1 ; WX 333 ; N Idieresis ; B 18 0 315 835 ; C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ; C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ; C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ; C -1 ; WX 444 ; N aring ; B 37 -10 442 711 ; C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ; C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ; C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ; C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ; C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ; C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ; C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ; C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ; C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ; C -1 ; WX 611 ; N Edieresis ; B 12 0 597 835 ; C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ; C -1 ; WX 444 ; N adieresis ; B 37 -10 442 623 ; C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ; C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ; C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ; C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ; C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ; C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ; C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ; C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ; C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ; C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ; C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ; C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ; C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ; C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ; C -1 ; WX 722 ; N Aring ; B 15 0 706 898 ; C -1 ; WX 278 ; N idieresis ; B -9 0 288 623 ; C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ; C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ; C -1 ; WX 564 ; N plusminus ; B 30 0 534 506 ; C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ; C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ; C -1 ; WX 564 ; N minus ; B 30 220 534 286 ; C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ; C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ; C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ; C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ; C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ; C -1 ; WX 500 ; N odieresis ; B 29 -10 470 623 ; C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ; C -1 ; WX 400 ; N degree ; B 57 390 343 676 ; C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ; C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ; C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ; C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ; C -1 ; WX 722 ; N Adieresis ; B 15 0 706 835 ; C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ; C -1 ; WX 200 ; N brokenbar ; B 67 -14 133 676 ; C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ; EndCharMetrics StartKernData StartKernPairs 283 KPX A y -92 KPX A w -92 KPX A v -74 KPX A u 0 KPX A quoteright -111 KPX A quotedblright 0 KPX A p 0 KPX A Y -105 KPX A W -90 KPX A V -135 KPX A U -55 KPX A T -111 KPX A Q -55 KPX A O -55 KPX A G -40 KPX A C -40 KPX B period 0 KPX B comma 0 KPX B U -10 KPX B A -35 KPX D period 0 KPX D comma 0 KPX D Y -55 KPX D W -30 KPX D V -40 KPX D A -40 KPX F r 0 KPX F period -80 KPX F o -15 KPX F i 0 KPX F e 0 KPX F comma -80 KPX F a -15 KPX F A -74 KPX G period 0 KPX G comma 0 KPX J u 0 KPX J period 0 KPX J o 0 KPX J e 0 KPX J comma 0 KPX J a 0 KPX J A -60 KPX K y -25 KPX K u -15 KPX K o -35 KPX K e -25 KPX K O -30 KPX L y -55 KPX L quoteright -92 KPX L quotedblright 0 KPX L Y -100 KPX L W -74 KPX L V -100 KPX L T -92 KPX N period 0 KPX N comma 0 KPX N A -35 KPX O period 0 KPX O comma 0 KPX O Y -50 KPX O X -40 KPX O W -35 KPX O V -50 KPX O T -40 KPX O A -35 KPX P period -111 KPX P o 0 KPX P e 0 KPX P comma -111 KPX P a -15 KPX P A -92 KPX Q period 0 KPX Q comma 0 KPX Q U -10 KPX R Y -65 KPX R W -55 KPX R V -80 KPX R U -40 KPX R T -60 KPX R O -40 KPX S period 0 KPX S comma 0 KPX T y -80 KPX T w -80 KPX T u -45 KPX T semicolon -55 KPX T r -35 KPX T period -74 KPX T o -80 KPX T i -35 KPX T hyphen -92 KPX T h 0 KPX T e -70 KPX T comma -74 KPX T colon -50 KPX T a -80 KPX T O -18 KPX T A -93 KPX U period 0 KPX U comma 0 KPX U A -40 KPX V u -75 KPX V semicolon -74 KPX V period -129 KPX V o -129 KPX V i -60 KPX V hyphen -100 KPX V e -111 KPX V comma -129 KPX V colon -74 KPX V a -111 KPX V O -40 KPX V G -15 KPX V A -135 KPX W y -73 KPX W u -50 KPX W semicolon -37 KPX W period -92 KPX W o -80 KPX W i -40 KPX W hyphen -65 KPX W h 0 KPX W e -80 KPX W comma -92 KPX W colon -37 KPX W a -80 KPX W O -10 KPX W A -120 KPX Y u -111 KPX Y semicolon -92 KPX Y period -129 KPX Y o -110 KPX Y i -55 KPX Y hyphen -111 KPX Y e -100 KPX Y comma -129 KPX Y colon -92 KPX Y a -100 KPX Y O -30 KPX Y A -120 KPX a y 0 KPX a w -15 KPX a v -20 KPX a t 0 KPX a p 0 KPX a g 0 KPX a b 0 KPX b y 0 KPX b v -15 KPX b u -20 KPX b period -40 KPX b l 0 KPX b comma 0 KPX b b 0 KPX c y -15 KPX c period 0 KPX c l 0 KPX c k 0 KPX c h 0 KPX c comma 0 KPX colon space 0 KPX comma space 0 KPX comma quoteright -70 KPX comma quotedblright -70 KPX d y 0 KPX d w 0 KPX d v 0 KPX d period 0 KPX d d 0 KPX d comma 0 KPX e y -15 KPX e x -15 KPX e w -25 KPX e v -25 KPX e period 0 KPX e p 0 KPX e g -15 KPX e comma 0 KPX e b 0 KPX f quoteright 55 KPX f quotedblright 0 KPX f period 0 KPX f o 0 KPX f l 0 KPX f i -20 KPX f f -25 KPX f e 0 KPX f dotlessi -50 KPX f comma 0 KPX f a -10 KPX g y 0 KPX g r 0 KPX g period 0 KPX g o 0 KPX g i 0 KPX g g 0 KPX g e 0 KPX g comma 0 KPX g a -5 KPX h y -5 KPX i v -25 KPX k y -15 KPX k o -10 KPX k e -10 KPX l y 0 KPX l w -10 KPX m y 0 KPX m u 0 KPX n y -15 KPX n v -40 KPX n u 0 KPX o y -10 KPX o x 0 KPX o w -25 KPX o v -15 KPX o g 0 KPX p y -10 KPX period quoteright -70 KPX period quotedblright -70 KPX quotedblleft quoteleft 0 KPX quotedblleft A -80 KPX quotedblright space 0 KPX quoteleft quoteleft -74 KPX quoteleft A -80 KPX quoteright v -50 KPX quoteright t -18 KPX quoteright space -74 KPX quoteright s -55 KPX quoteright r -50 KPX quoteright quoteright -74 KPX quoteright quotedblright 0 KPX quoteright l -10 KPX quoteright d -50 KPX r y 0 KPX r v 0 KPX r u 0 KPX r t 0 KPX r s 0 KPX r r 0 KPX r q 0 KPX r period -55 KPX r p 0 KPX r o 0 KPX r n 0 KPX r m 0 KPX r l 0 KPX r k 0 KPX r i 0 KPX r hyphen -20 KPX r g -18 KPX r e 0 KPX r d 0 KPX r comma -40 KPX r c 0 KPX r a 0 KPX s w 0 KPX space quoteleft 0 KPX space quotedblleft 0 KPX space Y -90 KPX space W -30 KPX space V -50 KPX space T -18 KPX space A -55 KPX v period -65 KPX v o -20 KPX v e -15 KPX v comma -65 KPX v a -25 KPX w period -65 KPX w o -10 KPX w h 0 KPX w e 0 KPX w comma -65 KPX w a -10 KPX x e -15 KPX y period -65 KPX y o 0 KPX y e 0 KPX y comma -65 KPX y a 0 KPX z o 0 KPX z e 0 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 212 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 212 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 212 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 212 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 185 187 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 212 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 212 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 212 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 212 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 212 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 212 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 212 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 212 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 212 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 212 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 212 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 195 212 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 195 212 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 195 212 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 195 212 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 212 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 212 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 212 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 212 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 212 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 195 212 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 195 212 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 212 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 56 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 56 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 56 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 56 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 56 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 56 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 56 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 56 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 84 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 84 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 84 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 84 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 56 0 ; EndComposites EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmri-c.afm��������������������������������������������������������������������0000644�0000000�0000000�00000005646�14233473143�013246� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 4.0 Comment More composite characters for Times-Roman. Comment by J. Chroboczek <jec@dcs.ed.ac.uk> Comment This is not strictly a conforming AFM file. FontName Times-Italic-Comp StartComposites 57 CC abreve 2 ; PCC a 0 0 ; PCC breve 83 0 ; CC Abreve 2 ; PCC A 0 0 ; PCC breve 199 226 ; CC aogonek 2 ; PCC a 0 0 ; PCC ogonek 240 -40 ; CC Aogonek 2 ; PCC A 0 0 ; PCC ogonek 360 -40 ; CC cacute 2 ; PCC c 0 0 ; PCC acute 30 0 ; CC Cacute 2 ; PCC C 0 0 ; PCC acute 210 212 ; CC ccaron 2 ; PCC c 0 0 ; PCC caron 80 0 ; CC Ccaron 2 ; PCC C 0 0 ; PCC caron 248 214 ; CC dbar 2 ; PCC d 0 0 ; PCC hyphen 240 320 ; CC Dbar 2 ; PCC Eth 0 0 ; PCC space 0 0 ; CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 390 85 ; CC Dcaron 2 ; PCC D 0 0 ; PCC caron 253 221 ; CC ecaron 2 ; PCC e 0 0 ; PCC caron 68 0 ; CC Ecaron 2 ; PCC E 0 0 ; PCC caron 160 214 ; CC edotaccent 2 ; PCC e 0 0 ; PCC dotaccent 92 0 ; CC Edotaccent 2 ; PCC E 0 0 ; PCC dotaccent 197 212 ; CC eogonek 2 ; PCC e 0 0 ; PCC ogonek 150 -40 ; CC Eogonek 2 ; PCC E 0 0 ; PCC ogonek 312 -40 ; CC gbreve 2 ; PCC g 0 0 ; PCC breve 84 0 ; CC Gbreve 2 ; PCC G 0 0 ; PCC breve 205 212 ; CC Idotaccent 2 ; PCC I 0 0 ; PCC dotaccent 45 212 ; CC iogonek 2 ; PCC i 0 0 ; PCC ogonek 12 -40 ; CC Iogonek 2 ; PCC I 0 0 ; PCC ogonek 33 -40 ; CC lacute 2 ; PCC l 0 0 ; PCC acute 53 219 ; CC Lacute 2 ; PCC L 0 0 ; PCC acute 169 219 ; CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 142 85 ; CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 247 52 ; CC nacute 2 ; PCC n 0 0 ; PCC acute 60 0 ; CC Nacute 2 ; PCC N 0 0 ; PCC acute 190 212 ; CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; CC Ncaron 2 ; PCC N 0 0 ; PCC caron 226 221 ; CC ohungarumlaut 2 ; PCC o 0 0 ; PCC hungarumlaut 89 0 ; CC Ohungarumlaut 2 ; PCC O 0 0 ; PCC hungarumlaut 221 227 ; CC racute 2 ; PCC r 0 0 ; PCC acute 50 0 ; CC Racute 2 ; PCC R 0 0 ; PCC acute 239 219 ; CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; CC Rcaron 2 ; PCC R 0 0 ; PCC caron 198 221 ; CC sacute 2 ; PCC s 0 0 ; PCC acute -20 0 ; CC Sacute 2 ; PCC S 0 0 ; PCC acute 30 210 ; CC scedilla 2 ; PCC s 0 0 ; PCC cedilla 28 0 ; CC Scedilla 2 ; PCC S 0 0 ; PCC cedilla 94 0 ; CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 159 0 ; CC Tcaron 2 ; PCC T 0 0 ; PCC caron 170 221 ; CC tcedilla 2 ; PCC t 0 0 ; PCC cedilla 51 0 ; CC Tcedilla 2 ; PCC T 0 0 ; PCC cedilla 168 0 ; CC uhungarumlaut 2 ; PCC u 0 0 ; PCC hungarumlaut 83 0 ; CC Uhungarumlaut 2 ; PCC U 0 0 ; PCC hungarumlaut 228 227 ; CC umacron 2 ; PCC u 0 0 ; PCC macron 81 0 ; CC Umacron 2 ; PCC U 0 0 ; PCC macron 240 212 ; CC uogonek 2 ; PCC u 0 0 ; PCC ogonek 236 -40 ; CC Uogonek 2 ; PCC U 0 0 ; PCC ogonek 287 -40 ; CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; CC Uring 2 ; PCC U 0 0 ; PCC ring 245 191 ; CC zacute 2 ; PCC z 0 0 ; PCC acute 30 0 ; CC Zacute 2 ; PCC Z 0 0 ; PCC acute 100 212 ; CC zdotaccent 2 ; PCC z 0 0 ; PCC dotaccent -20 0 ; CC Zdotaccent 2 ; PCC Z 0 0 ; PCC dotaccent 100 212 ; EndComposites EndFontMetrics ������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmri-o.afm��������������������������������������������������������������������0000644�0000000�0000000�00000032263�14415562571�013263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 3.0 Comment Automatically generated by the Ogonkify package Comment Do not modify FontName Times-Italic-Ogonki EncodingScheme StandardEncoding FullName Times-Italic-Ogonki Composite font FontBBox -169 -217 1010 883 StartCharMetrics 285 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ; C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ; C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ; C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ; C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ; C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ; C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ; C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ; C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ; C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ; C 43 ; WX 675 ; N plus ; B 86 0 590 506 ; C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ; C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ; C 46 ; WX 250 ; N period ; B 27 -11 138 100 ; C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ; C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ; C 49 ; WX 500 ; N one ; B 49 0 409 676 ; C 50 ; WX 500 ; N two ; B 12 0 452 676 ; C 51 ; WX 500 ; N three ; B 15 -7 465 676 ; C 52 ; WX 500 ; N four ; B 1 0 479 676 ; C 53 ; WX 500 ; N five ; B 15 -7 491 666 ; C 54 ; WX 500 ; N six ; B 30 -7 521 686 ; C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ; C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ; C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ; C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ; C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ; C 60 ; WX 675 ; N less ; B 84 -8 592 514 ; C 61 ; WX 675 ; N equal ; B 86 120 590 386 ; C 62 ; WX 675 ; N greater ; B 84 -8 592 514 ; C 63 ; WX 500 ; N question ; B 132 -12 472 664 ; C 64 ; WX 920 ; N at ; B 118 -18 806 666 ; C 65 ; WX 611 ; N A ; B -51 0 564 668 ; C 66 ; WX 611 ; N B ; B -8 0 588 653 ; C 67 ; WX 667 ; N C ; B 66 -18 689 666 ; C 68 ; WX 722 ; N D ; B -8 0 700 653 ; C 69 ; WX 611 ; N E ; B -1 0 634 653 ; C 70 ; WX 611 ; N F ; B 8 0 645 653 ; C 71 ; WX 722 ; N G ; B 52 -18 722 666 ; C 72 ; WX 722 ; N H ; B -8 0 767 653 ; C 73 ; WX 333 ; N I ; B -8 0 384 653 ; C 74 ; WX 444 ; N J ; B -6 -18 491 653 ; C 75 ; WX 667 ; N K ; B 7 0 722 653 ; C 76 ; WX 556 ; N L ; B -8 0 559 653 ; C 77 ; WX 833 ; N M ; B -18 0 873 653 ; C 78 ; WX 667 ; N N ; B -20 -15 727 653 ; C 79 ; WX 722 ; N O ; B 60 -18 699 666 ; C 80 ; WX 611 ; N P ; B 0 0 605 653 ; C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ; C 82 ; WX 611 ; N R ; B -13 0 588 653 ; C 83 ; WX 500 ; N S ; B 17 -18 508 667 ; C 84 ; WX 556 ; N T ; B 59 0 633 653 ; C 85 ; WX 722 ; N U ; B 102 -18 765 653 ; C 86 ; WX 611 ; N V ; B 76 -18 688 653 ; C 87 ; WX 833 ; N W ; B 71 -18 906 653 ; C 88 ; WX 611 ; N X ; B -29 0 655 653 ; C 89 ; WX 556 ; N Y ; B 78 0 633 653 ; C 90 ; WX 556 ; N Z ; B -6 0 606 653 ; C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ; C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ; C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ; C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ; C 97 ; WX 500 ; N a ; B 17 -11 476 441 ; C 98 ; WX 500 ; N b ; B 23 -11 473 683 ; C 99 ; WX 444 ; N c ; B 30 -11 425 441 ; C 100 ; WX 500 ; N d ; B 15 -13 527 683 ; C 101 ; WX 444 ; N e ; B 31 -11 412 441 ; C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; C 103 ; WX 500 ; N g ; B 8 -206 472 441 ; C 104 ; WX 500 ; N h ; B 19 -9 478 683 ; C 105 ; WX 278 ; N i ; B 49 -11 264 654 ; C 106 ; WX 278 ; N j ; B -124 -207 276 654 ; C 107 ; WX 444 ; N k ; B 14 -11 461 683 ; C 108 ; WX 278 ; N l ; B 41 -11 279 683 ; C 109 ; WX 722 ; N m ; B 12 -9 704 441 ; C 110 ; WX 500 ; N n ; B 14 -9 474 441 ; C 111 ; WX 500 ; N o ; B 27 -11 468 441 ; C 112 ; WX 500 ; N p ; B -75 -205 469 441 ; C 113 ; WX 500 ; N q ; B 25 -209 483 441 ; C 114 ; WX 389 ; N r ; B 45 0 412 441 ; C 115 ; WX 389 ; N s ; B 16 -13 366 442 ; C 116 ; WX 278 ; N t ; B 37 -11 296 546 ; C 117 ; WX 500 ; N u ; B 42 -11 475 441 ; C 118 ; WX 444 ; N v ; B 21 -18 426 441 ; C 119 ; WX 667 ; N w ; B 16 -18 648 441 ; C 120 ; WX 444 ; N x ; B -27 -11 447 441 ; C 121 ; WX 444 ; N y ; B -24 -206 426 441 ; C 122 ; WX 389 ; N z ; B -2 -81 380 428 ; C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ; C 124 ; WX 275 ; N bar ; B 105 -18 171 666 ; C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ; C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; C 161 ; WX 389 ; N exclamdown ; B 59 -205 322 473 ; C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ; C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ; C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ; C 165 ; WX 500 ; N yen ; B 27 0 603 653 ; C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ; C 167 ; WX 500 ; N section ; B 53 -162 461 666 ; C 168 ; WX 500 ; N currency ; B -22 53 522 597 ; C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ; C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ; C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ; C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ; C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ; C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ; C 177 ; WX 500 ; N endash ; B -6 197 505 243 ; C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ; C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ; C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ; C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ; C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ; C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ; C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ; C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ; C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ; C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ; C 191 ; WX 500 ; N questiondown ; B 28 -205 368 471 ; C 193 ; WX 333 ; N grave ; B 121 492 311 664 ; C 194 ; WX 333 ; N acute ; B 180 494 403 664 ; C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ; C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ; C 197 ; WX 333 ; N macron ; B 99 532 411 583 ; C 198 ; WX 333 ; N breve ; B 117 492 418 650 ; C 199 ; WX 333 ; N dotaccent ; B 207 508 305 606 ; C 200 ; WX 333 ; N dieresis ; B 107 508 405 606 ; C 202 ; WX 333 ; N ring ; B 155 492 355 691 ; C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ; C 206 ; WX 333 ; N ogonek ; B -20 -169 200 40 ; C 207 ; WX 333 ; N caron ; B 121 492 426 661 ; C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ; C 225 ; WX 889 ; N AE ; B -27 0 911 653 ; C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ; C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ; C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ; C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ; C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ; C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ; C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ; C 248 ; WX 278 ; N lslash ; B 37 -11 307 683 ; C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ; C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ; C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ; C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; C -1 ; WX 444 ; N ccedilla ; B 26 -217 425 441 ; C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ; C -1 ; WX 278 ; N icircumflex ; B 34 -11 328 661 ; C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ; C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ; C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ; C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ; C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ; C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ; C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ; C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ; C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ; C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ; C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ; C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ; C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ; C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; C -1 ; WX 500 ; N aring ; B 17 -11 476 691 ; C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; C -1 ; WX 333 ; N Iacute ; B -8 0 413 876 ; C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; C -1 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ; C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ; C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; C -1 ; WX 722 ; N Ograve ; B 60 -18 699 876 ; C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ; C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ; C -1 ; WX 722 ; N Otilde ; B 60 -18 699 836 ; C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ; C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ; C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ; C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ; C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; C -1 ; WX 611 ; N Aring ; B -51 0 564 883 ; C -1 ; WX 278 ; N idieresis ; B 49 -11 353 606 ; C -1 ; WX 278 ; N iacute ; B 49 -11 356 664 ; C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ; C -1 ; WX 675 ; N plusminus ; B 86 0 590 506 ; C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ; C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ; C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ; C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ; C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ; C -1 ; WX 400 ; N degree ; B 101 390 387 676 ; C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ; C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ; C -1 ; WX 722 ; N Oacute ; B 60 -18 699 876 ; C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ; C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ; C -1 ; WX 275 ; N brokenbar ; B 105 -18 171 666 ; C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; C -1 ; WX 500 ; N abreve ; B 17 -11 501 650 ; C -1 ; WX 611 ; N Abreve ; B -51 0 617 876 ; C -1 ; WX 500 ; N aogonek ; B 17 -209 476 441 ; C -1 ; WX 611 ; N Aogonek ; B -51 -209 564 668 ; C -1 ; WX 444 ; N cacute ; B 30 -11 433 664 ; C -1 ; WX 667 ; N Cacute ; B 66 -18 689 876 ; C -1 ; WX 444 ; N ccaron ; B 30 -11 506 661 ; C -1 ; WX 667 ; N Ccaron ; B 66 -18 689 875 ; C -1 ; WX 500 ; N dbar ; B 15 -13 527 683 ; C -1 ; WX 722 ; N Dbar ; B -8 0 700 653 ; C -1 ; WX 500 ; N dcaron ; B 15 -13 680 751 ; C -1 ; WX 722 ; N Dcaron ; B -8 0 700 882 ; C -1 ; WX 444 ; N ecaron ; B 31 -11 494 661 ; C -1 ; WX 611 ; N Ecaron ; B -1 0 634 875 ; C -1 ; WX 444 ; N edotaccent ; B 31 -11 412 606 ; C -1 ; WX 611 ; N Edotaccent ; B -1 0 634 818 ; C -1 ; WX 444 ; N eogonek ; B 31 -209 412 441 ; C -1 ; WX 611 ; N Eogonek ; B -1 -209 634 653 ; C -1 ; WX 500 ; N gbreve ; B 8 -206 502 650 ; C -1 ; WX 722 ; N Gbreve ; B 52 -18 722 862 ; C -1 ; WX 333 ; N Idotaccent ; B -8 0 384 818 ; C -1 ; WX 278 ; N iogonek ; B -8 -209 264 654 ; C -1 ; WX 333 ; N Iogonek ; B -8 -209 384 653 ; C -1 ; WX 278 ; N lacute ; B 41 -11 456 883 ; C -1 ; WX 556 ; N Lacute ; B -8 0 572 883 ; C -1 ; WX 278 ; N lcaron ; B 41 -11 432 751 ; C -1 ; WX 556 ; N Lcaron ; B -8 0 559 718 ; C -1 ; WX 500 ; N nacute ; B 14 -9 474 664 ; C -1 ; WX 667 ; N Nacute ; B -20 -15 727 876 ; C -1 ; WX 500 ; N ncaron ; B 14 -9 509 661 ; C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 882 ; C -1 ; WX 500 ; N ohungarumlaut ; B 27 -11 575 664 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 60 -18 707 891 ; C -1 ; WX 389 ; N racute ; B 45 0 453 664 ; C -1 ; WX 611 ; N Racute ; B -13 0 642 883 ; C -1 ; WX 389 ; N rcaron ; B 45 0 454 661 ; C -1 ; WX 611 ; N Rcaron ; B -13 0 624 882 ; C -1 ; WX 389 ; N sacute ; B 16 -13 383 664 ; C -1 ; WX 500 ; N Sacute ; B 17 -18 508 874 ; C -1 ; WX 389 ; N scedilla ; B -2 -217 366 442 ; C -1 ; WX 500 ; N Scedilla ; B 17 -217 508 667 ; C -1 ; WX 278 ; N tcaron ; B 37 -11 449 666 ; C -1 ; WX 556 ; N Tcaron ; B 59 0 633 882 ; C -1 ; WX 278 ; N tcedilla ; B 21 -217 296 546 ; C -1 ; WX 556 ; N Tcedilla ; B 59 -217 633 653 ; C -1 ; WX 500 ; N uhungarumlaut ; B 42 -11 569 664 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 102 -18 765 891 ; C -1 ; WX 500 ; N umacron ; B 42 -11 492 583 ; C -1 ; WX 722 ; N Umacron ; B 102 -18 765 795 ; C -1 ; WX 500 ; N uogonek ; B 42 -209 475 441 ; C -1 ; WX 722 ; N Uogonek ; B 102 -209 765 653 ; C -1 ; WX 500 ; N uring ; B 42 -11 475 691 ; C -1 ; WX 722 ; N Uring ; B 102 -18 765 882 ; C -1 ; WX 389 ; N zacute ; B -2 -81 433 664 ; C -1 ; WX 556 ; N Zacute ; B -6 0 606 876 ; C -1 ; WX 389 ; N zdotaccent ; B -2 -81 380 606 ; C -1 ; WX 556 ; N Zdotaccent ; B -6 0 606 818 ; EndCharMetrics EndFontMetrics ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmri-o.ps���������������������������������������������������������������������0000644�0000000�0000000�00000005627�14415562571�013146� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Times-Italic-Ogonki /Times-Italic /Times-Italic-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Agrave [65 149 212 27] put dup /Aring [65 129 192 31] put dup /Atilde [65 139 212 29] put dup /Ecircumflex [69 169 212 28] put dup /Egrave [69 149 212 27] put dup /Idieresis [73 30 212 168] put dup /Igrave [73 10 212 27] put dup /Ntilde [78 177 212 29] put dup /Ograve [79 205 212 27] put dup /Otilde [79 215 212 29] put dup /Ucircumflex [85 215 212 28] put dup /Ugrave [85 215 212 27] put dup /Ydieresis [89 142 212 168] put dup /agrave [97 84 0 27] put dup /aring [97 84 0 31] put dup /atilde [97 84 0 29] put dup /ecircumflex [101 56 0 28] put dup /egrave [101 56 0 27] put dup /idieresis [136 -52 0 168] put dup /igrave [136 -27 0 27] put dup /ntilde [110 49 0 29] put dup /ograve [111 84 0 27] put dup /otilde [111 69 0 29] put dup /ucircumflex [117 74 0 28] put dup /ugrave [117 84 0 27] put dup /ydieresis [121 36 0 168] put dup /abreve [97 83 0 162] put dup /Abreve [65 199 226 162] put dup /aogonek [97 240 -40 178] put dup /Aogonek [65 360 -40 178] put dup /cacute [99 30 0 180] put dup /Cacute [67 210 212 180] put dup /ccaron [99 80 0 183] put dup /Ccaron [67 248 214 183] put dup /dbar [100 240 320 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 390 85 39] put dup /Dcaron [68 253 221 183] put dup /ecaron [101 68 0 183] put dup /Ecaron [69 160 214 183] put dup /edotaccent [101 92 0 255] put dup /Edotaccent [69 197 212 255] put dup /eogonek [101 150 -40 178] put dup /Eogonek [69 312 -40 178] put dup /gbreve [103 84 0 162] put dup /Gbreve [71 205 212 162] put dup /Idotaccent [73 45 212 255] put dup /iogonek [105 12 -40 178] put dup /Iogonek [73 33 -40 178] put dup /lacute [108 53 219 180] put dup /Lacute [76 169 219 180] put dup /lcaron [108 142 85 39] put dup /Lcaron [76 247 52 39] put dup /nacute [110 60 0 180] put dup /Nacute [78 190 212 180] put dup /ncaron [110 83 0 183] put dup /Ncaron [78 226 221 183] put dup /ohungarumlaut [111 89 0 189] put dup /Ohungarumlaut [79 221 227 189] put dup /racute [114 50 0 180] put dup /Racute [82 239 219 180] put dup /rcaron [114 28 0 183] put dup /Rcaron [82 198 221 183] put dup /sacute [115 -20 0 180] put dup /Sacute [83 30 210 180] put dup /scedilla [115 28 0 184] put dup /Scedilla [83 94 0 184] put dup /tcaron [116 159 0 39] put dup /Tcaron [84 170 221 183] put dup /tcedilla [116 51 0 184] put dup /Tcedilla [84 168 0 184] put dup /uhungarumlaut [117 83 0 189] put dup /Uhungarumlaut [85 228 227 189] put dup /umacron [117 81 0 30] put dup /Umacron [85 240 212 30] put dup /uogonek [117 236 -40 178] put dup /Uogonek [85 287 -40 178] put dup /uring [117 83 0 31] put dup /Uring [85 245 191 31] put dup /zacute [122 30 0 180] put dup /Zacute [90 100 212 180] put dup /zdotaccent [122 -20 0 255] put dup /Zdotaccent [90 100 212 255] put makeComposite %%EndResource ���������������������������������������������������������������������������������������������������������a2ps-4.15.5/ogonkify/ptmri.afm����������������������������������������������������������������������0000644�0000000�0000000�00000043224�14233473143�013020� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue Mar 20 13:14:56 1990 Comment UniqueID 28427 Comment VMusage 32912 39804 FontName Times-Italic FullName Times Italic FamilyName Times Weight Medium ItalicAngle -15.5 IsFixedPitch false FontBBox -169 -217 1010 883 UnderlinePosition -100 UnderlineThickness 50 Version 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 653 XHeight 441 Ascender 683 Descender -205 StartCharMetrics 228 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ; C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ; C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ; C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ; C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ; C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ; C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ; C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ; C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ; C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ; C 43 ; WX 675 ; N plus ; B 86 0 590 506 ; C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ; C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ; C 46 ; WX 250 ; N period ; B 27 -11 138 100 ; C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ; C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ; C 49 ; WX 500 ; N one ; B 49 0 409 676 ; C 50 ; WX 500 ; N two ; B 12 0 452 676 ; C 51 ; WX 500 ; N three ; B 15 -7 465 676 ; C 52 ; WX 500 ; N four ; B 1 0 479 676 ; C 53 ; WX 500 ; N five ; B 15 -7 491 666 ; C 54 ; WX 500 ; N six ; B 30 -7 521 686 ; C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ; C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ; C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ; C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ; C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ; C 60 ; WX 675 ; N less ; B 84 -8 592 514 ; C 61 ; WX 675 ; N equal ; B 86 120 590 386 ; C 62 ; WX 675 ; N greater ; B 84 -8 592 514 ; C 63 ; WX 500 ; N question ; B 132 -12 472 664 ; C 64 ; WX 920 ; N at ; B 118 -18 806 666 ; C 65 ; WX 611 ; N A ; B -51 0 564 668 ; C 66 ; WX 611 ; N B ; B -8 0 588 653 ; C 67 ; WX 667 ; N C ; B 66 -18 689 666 ; C 68 ; WX 722 ; N D ; B -8 0 700 653 ; C 69 ; WX 611 ; N E ; B -1 0 634 653 ; C 70 ; WX 611 ; N F ; B 8 0 645 653 ; C 71 ; WX 722 ; N G ; B 52 -18 722 666 ; C 72 ; WX 722 ; N H ; B -8 0 767 653 ; C 73 ; WX 333 ; N I ; B -8 0 384 653 ; C 74 ; WX 444 ; N J ; B -6 -18 491 653 ; C 75 ; WX 667 ; N K ; B 7 0 722 653 ; C 76 ; WX 556 ; N L ; B -8 0 559 653 ; C 77 ; WX 833 ; N M ; B -18 0 873 653 ; C 78 ; WX 667 ; N N ; B -20 -15 727 653 ; C 79 ; WX 722 ; N O ; B 60 -18 699 666 ; C 80 ; WX 611 ; N P ; B 0 0 605 653 ; C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ; C 82 ; WX 611 ; N R ; B -13 0 588 653 ; C 83 ; WX 500 ; N S ; B 17 -18 508 667 ; C 84 ; WX 556 ; N T ; B 59 0 633 653 ; C 85 ; WX 722 ; N U ; B 102 -18 765 653 ; C 86 ; WX 611 ; N V ; B 76 -18 688 653 ; C 87 ; WX 833 ; N W ; B 71 -18 906 653 ; C 88 ; WX 611 ; N X ; B -29 0 655 653 ; C 89 ; WX 556 ; N Y ; B 78 0 633 653 ; C 90 ; WX 556 ; N Z ; B -6 0 606 653 ; C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ; C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ; C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ; C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ; C 97 ; WX 500 ; N a ; B 17 -11 476 441 ; C 98 ; WX 500 ; N b ; B 23 -11 473 683 ; C 99 ; WX 444 ; N c ; B 30 -11 425 441 ; C 100 ; WX 500 ; N d ; B 15 -13 527 683 ; C 101 ; WX 444 ; N e ; B 31 -11 412 441 ; C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 8 -206 472 441 ; C 104 ; WX 500 ; N h ; B 19 -9 478 683 ; C 105 ; WX 278 ; N i ; B 49 -11 264 654 ; C 106 ; WX 278 ; N j ; B -124 -207 276 654 ; C 107 ; WX 444 ; N k ; B 14 -11 461 683 ; C 108 ; WX 278 ; N l ; B 41 -11 279 683 ; C 109 ; WX 722 ; N m ; B 12 -9 704 441 ; C 110 ; WX 500 ; N n ; B 14 -9 474 441 ; C 111 ; WX 500 ; N o ; B 27 -11 468 441 ; C 112 ; WX 500 ; N p ; B -75 -205 469 441 ; C 113 ; WX 500 ; N q ; B 25 -209 483 441 ; C 114 ; WX 389 ; N r ; B 45 0 412 441 ; C 115 ; WX 389 ; N s ; B 16 -13 366 442 ; C 116 ; WX 278 ; N t ; B 37 -11 296 546 ; C 117 ; WX 500 ; N u ; B 42 -11 475 441 ; C 118 ; WX 444 ; N v ; B 21 -18 426 441 ; C 119 ; WX 667 ; N w ; B 16 -18 648 441 ; C 120 ; WX 444 ; N x ; B -27 -11 447 441 ; C 121 ; WX 444 ; N y ; B -24 -206 426 441 ; C 122 ; WX 389 ; N z ; B -2 -81 380 428 ; C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ; C 124 ; WX 275 ; N bar ; B 105 -18 171 666 ; C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ; C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; C 161 ; WX 389 ; N exclamdown ; B 59 -205 322 473 ; C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ; C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ; C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ; C 165 ; WX 500 ; N yen ; B 27 0 603 653 ; C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ; C 167 ; WX 500 ; N section ; B 53 -162 461 666 ; C 168 ; WX 500 ; N currency ; B -22 53 522 597 ; C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ; C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ; C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ; C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ; C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ; C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ; C 177 ; WX 500 ; N endash ; B -6 197 505 243 ; C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ; C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ; C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ; C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ; C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ; C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ; C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ; C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ; C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ; C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ; C 191 ; WX 500 ; N questiondown ; B 28 -205 368 471 ; C 193 ; WX 333 ; N grave ; B 121 492 311 664 ; C 194 ; WX 333 ; N acute ; B 180 494 403 664 ; C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ; C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ; C 197 ; WX 333 ; N macron ; B 99 532 411 583 ; C 198 ; WX 333 ; N breve ; B 117 492 418 650 ; C 199 ; WX 333 ; N dotaccent ; B 207 508 305 606 ; C 200 ; WX 333 ; N dieresis ; B 107 508 405 606 ; C 202 ; WX 333 ; N ring ; B 155 492 355 691 ; C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ; C 206 ; WX 333 ; N ogonek ; B -20 -169 200 40 ; C 207 ; WX 333 ; N caron ; B 121 492 426 661 ; C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ; C 225 ; WX 889 ; N AE ; B -27 0 911 653 ; C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ; C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ; C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ; C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ; C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ; C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ; C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ; C 248 ; WX 278 ; N lslash ; B 37 -11 307 683 ; C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ; C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ; C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ; C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; C -1 ; WX 444 ; N ccedilla ; B 26 -217 425 441 ; C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ; C -1 ; WX 278 ; N icircumflex ; B 34 -11 328 661 ; C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ; C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ; C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ; C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ; C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ; C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ; C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ; C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ; C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ; C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ; C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ; C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ; C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ; C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; C -1 ; WX 500 ; N aring ; B 17 -11 476 691 ; C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; C -1 ; WX 333 ; N Iacute ; B -8 0 413 876 ; C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; C -1 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ; C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ; C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; C -1 ; WX 722 ; N Ograve ; B 60 -18 699 876 ; C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ; C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ; C -1 ; WX 722 ; N Otilde ; B 60 -18 699 836 ; C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ; C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ; C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ; C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ; C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; C -1 ; WX 611 ; N Aring ; B -51 0 564 883 ; C -1 ; WX 278 ; N idieresis ; B 49 -11 353 606 ; C -1 ; WX 278 ; N iacute ; B 49 -11 356 664 ; C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ; C -1 ; WX 675 ; N plusminus ; B 86 0 590 506 ; C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ; C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ; C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ; C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ; C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ; C -1 ; WX 400 ; N degree ; B 101 390 387 676 ; C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ; C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ; C -1 ; WX 722 ; N Oacute ; B 60 -18 699 876 ; C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ; C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ; C -1 ; WX 275 ; N brokenbar ; B 105 -18 171 666 ; C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; EndCharMetrics StartKernData StartKernPairs 283 KPX A y -55 KPX A w -55 KPX A v -55 KPX A u -20 KPX A quoteright -37 KPX A quotedblright 0 KPX A p 0 KPX A Y -55 KPX A W -95 KPX A V -105 KPX A U -50 KPX A T -37 KPX A Q -40 KPX A O -40 KPX A G -35 KPX A C -30 KPX B period 0 KPX B comma 0 KPX B U -10 KPX B A -25 KPX D period 0 KPX D comma 0 KPX D Y -40 KPX D W -40 KPX D V -40 KPX D A -35 KPX F r -55 KPX F period -135 KPX F o -105 KPX F i -45 KPX F e -75 KPX F comma -135 KPX F a -75 KPX F A -115 KPX G period 0 KPX G comma 0 KPX J u -35 KPX J period -25 KPX J o -25 KPX J e -25 KPX J comma -25 KPX J a -35 KPX J A -40 KPX K y -40 KPX K u -40 KPX K o -40 KPX K e -35 KPX K O -50 KPX L y -30 KPX L quoteright -37 KPX L quotedblright 0 KPX L Y -20 KPX L W -55 KPX L V -55 KPX L T -20 KPX N period 0 KPX N comma 0 KPX N A -27 KPX O period 0 KPX O comma 0 KPX O Y -50 KPX O X -40 KPX O W -50 KPX O V -50 KPX O T -40 KPX O A -55 KPX P period -135 KPX P o -80 KPX P e -80 KPX P comma -135 KPX P a -80 KPX P A -90 KPX Q period 0 KPX Q comma 0 KPX Q U -10 KPX R Y -18 KPX R W -18 KPX R V -18 KPX R U -40 KPX R T 0 KPX R O -40 KPX S period 0 KPX S comma 0 KPX T y -74 KPX T w -74 KPX T u -55 KPX T semicolon -65 KPX T r -55 KPX T period -74 KPX T o -92 KPX T i -55 KPX T hyphen -74 KPX T h 0 KPX T e -92 KPX T comma -74 KPX T colon -55 KPX T a -92 KPX T O -18 KPX T A -50 KPX U period -25 KPX U comma -25 KPX U A -40 KPX V u -74 KPX V semicolon -74 KPX V period -129 KPX V o -111 KPX V i -74 KPX V hyphen -55 KPX V e -111 KPX V comma -129 KPX V colon -65 KPX V a -111 KPX V O -30 KPX V G 0 KPX V A -60 KPX W y -70 KPX W u -55 KPX W semicolon -65 KPX W period -92 KPX W o -92 KPX W i -55 KPX W hyphen -37 KPX W h 0 KPX W e -92 KPX W comma -92 KPX W colon -65 KPX W a -92 KPX W O -25 KPX W A -60 KPX Y u -92 KPX Y semicolon -65 KPX Y period -92 KPX Y o -92 KPX Y i -74 KPX Y hyphen -74 KPX Y e -92 KPX Y comma -92 KPX Y colon -65 KPX Y a -92 KPX Y O -15 KPX Y A -50 KPX a y 0 KPX a w 0 KPX a v 0 KPX a t 0 KPX a p 0 KPX a g -10 KPX a b 0 KPX b y 0 KPX b v 0 KPX b u -20 KPX b period -40 KPX b l 0 KPX b comma 0 KPX b b 0 KPX c y 0 KPX c period 0 KPX c l 0 KPX c k -20 KPX c h -15 KPX c comma 0 KPX colon space 0 KPX comma space 0 KPX comma quoteright -140 KPX comma quotedblright -140 KPX d y 0 KPX d w 0 KPX d v 0 KPX d period 0 KPX d d 0 KPX d comma 0 KPX e y -30 KPX e x -20 KPX e w -15 KPX e v -15 KPX e period -15 KPX e p 0 KPX e g -40 KPX e comma -10 KPX e b 0 KPX f quoteright 92 KPX f quotedblright 0 KPX f period -15 KPX f o 0 KPX f l 0 KPX f i -20 KPX f f -18 KPX f e 0 KPX f dotlessi -60 KPX f comma -10 KPX f a 0 KPX g y 0 KPX g r 0 KPX g period -15 KPX g o 0 KPX g i 0 KPX g g -10 KPX g e -10 KPX g comma -10 KPX g a 0 KPX h y 0 KPX i v 0 KPX k y -10 KPX k o -10 KPX k e -10 KPX l y 0 KPX l w 0 KPX m y 0 KPX m u 0 KPX n y 0 KPX n v -40 KPX n u 0 KPX o y 0 KPX o x 0 KPX o w 0 KPX o v -10 KPX o g -10 KPX p y 0 KPX period quoteright -140 KPX period quotedblright -140 KPX quotedblleft quoteleft 0 KPX quotedblleft A 0 KPX quotedblright space 0 KPX quoteleft quoteleft -111 KPX quoteleft A 0 KPX quoteright v -10 KPX quoteright t -30 KPX quoteright space -111 KPX quoteright s -40 KPX quoteright r -25 KPX quoteright quoteright -111 KPX quoteright quotedblright 0 KPX quoteright l 0 KPX quoteright d -25 KPX r y 0 KPX r v 0 KPX r u 0 KPX r t 0 KPX r s -10 KPX r r 0 KPX r q -37 KPX r period -111 KPX r p 0 KPX r o -45 KPX r n 0 KPX r m 0 KPX r l 0 KPX r k 0 KPX r i 0 KPX r hyphen -20 KPX r g -37 KPX r e -37 KPX r d -37 KPX r comma -111 KPX r c -37 KPX r a -15 KPX s w 0 KPX space quoteleft 0 KPX space quotedblleft 0 KPX space Y -75 KPX space W -40 KPX space V -35 KPX space T -18 KPX space A -18 KPX v period -74 KPX v o 0 KPX v e 0 KPX v comma -74 KPX v a 0 KPX w period -74 KPX w o 0 KPX w h 0 KPX w e 0 KPX w comma -74 KPX w a 0 KPX x e 0 KPX y period -55 KPX y o 0 KPX y e 0 KPX y comma -55 KPX y a 0 KPX z o 0 KPX z e 0 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 139 212 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 144 212 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 139 212 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 149 212 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 129 192 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 139 212 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 149 212 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 169 212 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 159 212 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 149 212 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 10 212 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 40 212 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 30 212 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 10 212 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 177 212 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 212 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 230 212 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 230 212 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 205 212 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 212 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 94 212 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 212 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 215 212 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 225 212 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 215 212 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 132 212 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 142 212 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 112 212 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 84 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 84 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 46 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 56 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -47 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -57 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -52 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 49 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 74 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 69 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 74 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 74 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 74 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 36 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 8 0 ; EndComposites EndFontMetrics ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/�������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132371�010044� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/LINGUAS������������������������������������������������������������������������������0000644�0000000�0000000�00000000157�14424520512�011007� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������be ca cs da de el en_GB eo es et fi fr gl hr id it ja ko ms nb nl pl pt pt_BR ro ru sl sr sv th tr uk vi zh_CN �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/Makefile.in.in�����������������������������������������������������������������������0000644�0000000�0000000�00000045347�14415562264�012460� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu> # Copyright (C) 2000-2020 Free Software Foundation, Inc. # # 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. This file is offered as-is, # without any warranty. # # Origin: gettext-0.20.2 GETTEXT_MACRO_VERSION = 0.20 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SED = @SED@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ # When building gettext-tools, we prefer to use the built programs # rather than installed programs. However, we can't do that when we # are cross compiling. CROSS_COMPILING = @CROSS_COMPILING@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = @MSGMERGE@ MSGMERGE_UPDATE = @MSGMERGE@ --update MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot POFILESDEPS_yes = $(POFILESDEPS_) POFILESDEPS_no = POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) DISTFILESDEPS_ = update-po DISTFILESDEPS_yes = $(DISTFILESDEPS_) DISTFILESDEPS_no = DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) # Makevars gets inserted here. (Don't remove this line!) all: all-@USE_NLS@ .SUFFIXES: .SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update # The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. # The GNU Coding Standards say in # <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>: # "GNU distributions usually contain some files which are not source files # ... . Since these files normally appear in the source directory, they # should always appear in the source directory, not in the build directory. # So Makefile rules to update them should put the updated files in the # source directory." # Therefore we put these files in the source directory, not the build directory. # During .po -> .gmo conversion, take into account the most recent changes to # the .pot file. This eliminates the need to update the .po files when the # .pot file has changed, which would be troublesome if the .po files are put # under version control. $(GMOFILES): $(srcdir)/$(DOMAIN).pot .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ cd $(srcdir) && \ rm -f $${lang}.gmo && \ $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ mv t-$${lang}.gmo $${lang}.gmo && \ rm -f $${lang}.1po .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all-yes: $(srcdir)/stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. CHECK_MACRO_VERSION = \ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). # $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS # have been loosely updated. Its purpose is that when a developer or translator # checks out the package from a version control system, and the $(DOMAIN).pot # file is not under version control, "make" will update the $(DOMAIN).pot and # the $(CATALOGS), but subsequent invocations of "make" will do nothing. This # timestamp would not be necessary if updating the $(CATALOGS) would always # touch them; however, the rule for $(POFILES) has been designed to not touch # files that don't need to be changed. $(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot @$(CHECK_MACRO_VERSION) test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch $(srcdir)/stamp-po" && \ echo timestamp > $(srcdir)/stamp-poT && \ mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. # The determination of whether the package xyz is a GNU one is based on the # heuristic whether some file in the top level directory mentions "GNU xyz". # If GNU 'find' is available, we avoid grepping through monster files. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed package_gnu="$(PACKAGE_GNU)"; \ test -n "$$package_gnu" || { \ if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \ else \ LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ fi; \ } | grep -v 'libtool:' >/dev/null; then \ package_gnu=yes; \ else \ package_gnu=no; \ fi; \ }; \ if test "$$package_gnu" = "yes"; then \ package_prefix='GNU '; \ else \ package_prefix=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_prefix}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot-header; then \ sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ rm -f $(DOMAIN).1po \ || exit 1; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(POFILESDEPS) @test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ 0.1[6-7] | 0.1[6-7].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: install-dvi install-ps install-pdf install-html: mostlyclean: rm -f remove-potcdate.sed rm -f $(srcdir)/stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(srcdir)/$(DOMAIN).pot $(srcdir)/stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS) @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: $(srcdir)/stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ 0.1[6-7] | 0.1[6-7].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: # Recreate Makefile by invoking config.status. Explicitly invoke the shell, # because execution permission bits may not work on the current file system. # Use @SHELL@, which is the shell determined by autoconf for the use by its # scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && @SHELL@ ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/Makevars�����������������������������������������������������������������������������0000644�0000000�0000000�00000007175�14424520614�011470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile variables for PO directory in any package using GNU gettext. # # Copyright (C) 2003-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation gives # unlimited permission to use, copy, distribute, and modify it. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ \ --flag=_:1:pass-c-format \ --flag=N_:1:pass-c-format \ $${end_of_xgettext_options+} # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This tells whether or not to prepend "GNU " prefix to the package # name that gets inserted into the header of the $(DOMAIN).pot file. # Possible values are "yes", "no", or empty. If it is empty, try to # detect it automatically by scanning the files in $(top_srcdir) for # "GNU packagename" string. PACKAGE_GNU = # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = bug-a2ps@gnu.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' # context. Possible values are "yes" and "no". Set this to yes if the # package uses functions taking also a message context, like pgettext(), or # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. USE_MSGCTXT = no # These options get passed to msgmerge. # Useful options are in particular: # --previous to keep previous msgids of translated messages, # --quiet to reduce the verbosity. MSGMERGE_OPTIONS = # These options get passed to msginit. # If you want to disable line wrapping when writing PO files, add # --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and # MSGINIT_OPTIONS. MSGINIT_OPTIONS = # This tells whether or not to regenerate a PO file when $(DOMAIN).pot # has changed. Possible values are "yes" and "no". Set this to no if # the POT file is checked in the repository and the version control # program ignores timestamps. PO_DEPENDS_ON_POT = yes # This tells whether or not to forcibly update $(DOMAIN).pot and # regenerate PO files on "make dist". Possible values are "yes" and # "no". Set this to no if the POT file and PO files are maintained # externally. DIST_DEPENDS_ON_UPDATE_PO = yes ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/POTFILES.in��������������������������������������������������������������������������0000644�0000000�0000000�00000001357�14273153406�011550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# List of files which containing translatable strings. -*- ksh -*- # # Copyright (c) 1988-2017 Free Software Foundation, Inc. # Package source files src/delegate.c src/generate.c src/lexssh.l src/main.c src/parsessh.y src/sheets-map.l src/select.c src/ssheet.c src/versions.c # a2ps’s own files liba2ps/caret.c liba2ps/darray.c liba2ps/dstring.c liba2ps/encoding.c liba2ps/faces.c liba2ps/filtdir.c liba2ps/fonts.l liba2ps/getnum.c liba2ps/jobs.c liba2ps/lexppd.l liba2ps/madir.c liba2ps/media.c liba2ps/metaseq.c liba2ps/options.c liba2ps/output.c liba2ps/pair_ht.c liba2ps/pathwalk.c liba2ps/ppd.c liba2ps/prange.c liba2ps/printers.c liba2ps/prolog.c liba2ps/psgen.c liba2ps/routines.c liba2ps/userdata.c liba2ps/useropt.c liba2ps/xbackupfile.c ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/Rules-quot���������������������������������������������������������������������������0000644�0000000�0000000�00000004533�14415562264�012001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Special Makefile rules for English message catalogs with quotation marks. # # Copyright (C) 2001-2017 Free Software Foundation, Inc. # This file, Rules-quot, and its auxiliary files (listed under # DISTFILES.common.extra1) are free software; the Free Software Foundation # gives unlimited permission to use, copy, distribute, and modify them. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \ | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \ { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \ $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \ ;; \ *) \ $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \ ;; \ esac } 2>/dev/null > $$tmpdir/$$lang.new.po \ ; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header ���������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/a2ps.pot�����������������������������������������������������������������������������0000644�0000000�0000000�00000051222�14445132164�011357� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the GNU a2ps package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: GNU a2ps 4.15.5\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "" #: src/generate.c:350 msgid "plain" msgstr "" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "" #: src/main.c:235 msgid "heavy" msgstr "" #: src/main.c:239 msgid "normal" msgstr "" #: src/main.c:243 msgid "none" msgstr "" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" #: src/main.c:339 msgid "portrait" msgstr "" #: src/main.c:339 msgid "landscape" msgstr "" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "" #: src/main.c:363 msgid "each line" msgstr "" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" #: src/main.c:382 msgid "Headers:\n" msgstr "" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" #: src/main.c:452 msgid "never make backups" msgstr "" #: src/main.c:456 msgid "simple backups of every file" msgstr "" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" #: src/main.c:466 msgid "numbered backups of every file" msgstr "" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr "" #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr "" #: src/main.c:516 msgid "Internals:\n" msgstr "" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" #: src/main.c:655 msgid "Tasks:\n" msgstr "" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" #: src/main.c:678 msgid "Global:\n" msgstr "" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" #: src/main.c:721 msgid "Headings:\n" msgstr "" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" #: src/main.c:1146 msgid "Table of Content" msgstr "" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "" #: liba2ps/madir.c:51 msgid "rows first" msgstr "" #: liba2ps/madir.c:54 msgid "columns first" msgstr "" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "" #: liba2ps/media.c:189 msgid "Name" msgstr "" #: liba2ps/media.c:190 msgid "dimensions" msgstr "" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "" #: liba2ps/userdata.c:104 msgid "user" msgstr "" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/be.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000032436�14445132165�011067� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�������~�����F����:�����+�����z���C��O���� ����������F���:��O�����6�����@�����2���I��L���|��,�����!�����*��� �����C �����Z �����o ����� ��%��� ��#��� ����� ����� ��H���!��;���d!��*���!��(���!��<���!��#���1"�����U"�� ���\"�� ���i"�����v"�����"��!���"�����"�� ���"�����"��P���"����B#��U���$��#���H%��)���l%��a���%��S���%��)���L&��!��v&��2���'��6���'��4���(��@���7(�� ���x(��9���(��:���(��E���)�����T)��'���k)��O���)��5���)��R���*��1���l*��1���*��W���*��_���(+��I���+��C���+��/���,��Z���F,��C���,��<���,�����"-�� ���@-�����M-��(���c-��%���-��>���-�����-�����.�� ���0.��<���=.��K���z.��:���.��5���/��,���7/��0���d/��K���/��3���/�����0��3���&0��D���Z0�����0��*���0��,���0�� ���0�����1��G���1�����b1��8��� 2�����E2�� ���a2�����n2��+���2�� ���2�����2��!���2��%��� 3��5���23��)���h3��1���3��C���3�����4��#���#4�����G4��,���f4��$���4��E���4�����4�����5�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.13b Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2003-04-07 07:22+0300 Last-Translator: Ales Nyakhaychyk <nab@mail.by> Language-Team: Belarusian <i18n@mova.org> Language: be MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: KBabel 0.9.6 � Ніякіх. � атрымальнік = %s кантроль вэрсій = %s суфікс рэзэрваваньня = %s � верхі калянтытул = %s левы ніжні = %s ніжні калянтытул = %s правы ніжні = %s левы загаловак = %s асноўны загаловак = %s правы загаловак = %s падстаронкавы тэкст = %s � папярэдняя падача старонкі = %s � вызначэньні statusdict = � тып стылю = %s узровень вылучэньня = %s узровень згорткі = %d � згорнутыя радкі = %s інтэрпрэтаваньне = %s канец радка = %s кадзіроўка = %s загаловак дакуманта = %s уводная частка = %s усё адно надрукаваць = %s накіраваньне = %s �%A %d %B %Y�%s накіраваны да %s�%s: няправільны парамэтар у пазьбегу %s%c�%s: няправільны падзельнік `%s%c' у пазьбегу `%s'�%s: адсутнічае `%c' у пазьбегу %s%c�%s: задоўгі парамэтар для пазьбегу %s�%s: невядомы `%s' пазьбег `%c' (%d)�Дастасаваньні, выбраныя для накіраваньня�Статус канфігурацыі %s %s �Даўнятая друкарка�Накіраваньне `%s' з %s у %s �Глабальныя: �Загалоўкі: �Загалоўкі: �Крыніца: �Нутраныя парамэтры: �Вядомыя Знаказборы�Вядомыя шрыфты�Нядомыя носьбіты�Вядомыя Прылады Вываду (друкаркі, і г.д.)�Вядомыя апсаньні друкаркі PostScript�Вядомыя Ўводныя Часткі�Вядомыя наборы стыляў�Вядомыя Можнасьці Карыстальніка�Вядомыя пераменныя�Імя�Выхад: �PostScript: �Гожы друк: �Надрукавана %s�Надрукавана %s ад %s�Аркушы: �Зьмест�Задачы: �ТЭКСТы могуць ужываць адмысловыя пазьбегі. �Можнасьці -1 .. -9 уплываюць на некаторыя базавыя парамэтры, каб устанавіць прадвызначаны фармат з 80 знакамі на старонцы. Т.ч., важны парадак: `-R -f40 -2' адпавядае `-2'. Каб зьмяніць фарматы ўжывай `-2Rf40', ці базавыя можнасьці (`--columns', `--font-size' і г.д.) �Паспрабуй `%s --help', каб атрымаць болей зьвестак. �Невядомая друкарка�Невядомы карыстальнік�Правільныя пармэтры -- рацыянальныя лікі n, такія як %s �Правільныя пармэтры -- цэлыя лікі n, такія як %s �Віртуальныя старонкі: �Калі задзейнічанае накіраваньне a2ps можа ўжываць іншыя дастасаваньні, каб апрацоўваць файлы, якія нельга друкаваць простым тэкстам, прыкладам HTML, PostScript, PDF etc. �[%s (%s): 1 старонка на 1 аркушы] �[%s (%s): памылка. Праігнаравана] �[%s (двайковы): праігнаравана] �[%s (недрукавальнае): праігнаравана] �[1 радок згорнуты] �[Нічога не атрымана на выхадзе] �[Агулам: 1 старонка на 1 аркушы] %s �двайковы файл `%s', друкаваньне спынена�`%s' -- каталёг�`%s' без адпаведнага `%s'�аўтаматычнае вызначэньне стылю скасаванае�немагчыма закрыць каталёг `%s'�немагчыма скампіляваць рэгулярны выраз `%s': %s�Немагчыма стварыць файл `%s'�немагчыма знайсьці файл `%s'�немагчыма знайсьці стыль `%s': ужыты просты стыль�немагчыма атрымаць імя бягучай працоўнага каталёгу�Немагчыма атрымаць зьвесткі аб файле `%s'�Немагчыма стварыць канал абмену з `%s'�Немагчыма адкрыць файл `%s'�немагчыма апрацаваць `%s', які патрабуе a2ps вэрсіі %s�немагчыма перайменаваць файл `%s' у `%s'�кіроўныя знакі, г.зн. `^C', `M-^C' і г.д.�слупкі спачатку�памеры�кожны радок�emacs, г.зн. `C-c', `M-C-c' і г.д.�канец радка ўнутры %s�'канец радка' ў радковай канстанце�завялікі шрыфт %f�памер шрыфта -- %gpt�вялікі�шаснаццаткавы лік, г.зн. `\x0a' і г.д.�недастатковае веданьне выглядаў шрыфтоў�няправільны парамэтар `%s' для `%s'�няправільны выгляд шрыфта `%s'�Няправільны інтэрвал `%s'�няправільная можнасьць `%s'�няправільны ідэнтэфікатар пераманнае `%s'�няправільны нумар вэрсіі `%s'�альбомны�адсутнічае парамэтар для `%s'�ніколі не захоўваць рэзэрвовую копію�не�няма каманды для `%s' (%s%s)�ня вызначаны ключ для `%s'�ніякі�нармальны�нумараваныя рэзэрваньні кожнага файла�нумараваныя копіі для ўжо пранумараваныя файлаў, у простае рэзэрваваньне для іншых�васьмярковы лік, г.зн. `\001' і г.д.�каманда вываду�просты�партрэтны�знак пытальніка, г.зн. `?'�адноўлены файл `%s'�радкі спачатку�захавана ў файл `%s'�выбрана аўтаматычна�даслана да даўнятай друкаркі�даслана да друкаркі `%s'�даслана ў стандартны выхад�простыя рэзэрваваньні кожнага файла�прабел, г.зн. ` '�зашмат уключэньняў�Нечаканы знак `%c'�невядомая кадзіроўка `%s'�невядомы носьбіт `%s'�невядомая можнасьць карыстальніка `%s'�карыстальнік�так�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/be.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000140466�14445132164�010725� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE # Copyright (C) 2003 Free Software Foundation, Inc. # Hleb Valoska <el_globus@tut.by>, 2003. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.13b\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2003-04-07 07:22+0300\n" "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n" "Language-Team: Belarusian <i18n@mova.org>\n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: KBabel 0.9.6\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "адсутнічае парамэтар для `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "Немагчыма стварыць файл `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "Немагчыма стварыць канал абмену з `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Накіраваньне `%s' з %s у %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Дастасаваньні, выбраныя для накіраваньня" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' -- каталёг" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "Немагчыма адкрыць файл `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "Немагчыма атрымаць зьвесткі аб файле `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 старонка на 1 аркушы]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d старон(ак/кі) на 1 аркушы]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d старон(ак/кі) на %d аркушах]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Агулам: 1 старонка на 1 аркушы] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Агулам: %d старон(ак/кі) на 1 аркушы] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Агулам: %d старон(ак/кі) на %d аркушах] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 радок згорнуты]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d зрадк(оў/і) згорнутыя]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Нічога не атрымана на выхадзе]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s накіраваны да %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): памылка. Праігнаравана]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (недрукавальнае): праігнаравана]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (двайковы): праігнаравана]\n" #: src/generate.c:350 msgid "plain" msgstr "просты" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "'канец радка' ў радковай канстанце" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "канец радка ўнутры %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "атрыманы сыгнал %d: %s" #: src/main.c:235 msgid "heavy" msgstr "вялікі" #: src/main.c:239 msgid "normal" msgstr "нармальны" #: src/main.c:243 msgid "none" msgstr "ніякі" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "так" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "не" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Статус канфігурацыі %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Аркушы:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " даўнятая папера = %s%s, %s\n" " фармат старонкі = %d x %d, %s\n" " межы = %s\n" " выраўніваньне файла = %s\n" " нутраныя палі = %d\n" #: src/main.c:339 msgid "portrait" msgstr "партрэтны" #: src/main.c:339 msgid "landscape" msgstr "альбомны" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d знакаў на радок" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d радкоў на старонку" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "памер шрыфта -- %gpt" #: src/main.c:363 msgid "each line" msgstr "кожны радок" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "кожныя %d радк(оў/і)" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Віртуальныя старонкі:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " нумары радкоў = %s\n" " фармат = %s\n" " памер табуляцыі = %d\n" " недрукавальны фармат = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Загалоўкі:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " верхі калянтытул = %s\n" " левы ніжні = %s\n" " ніжні калянтытул = %s\n" " правы ніжні = %s\n" " левы загаловак = %s\n" " асноўны загаловак = %s\n" " правы загаловак = %s\n" " падстаронкавы тэкст = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Крыніца:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " згорнутыя радкі = %s\n" " інтэрпрэтаваньне = %s\n" " канец радка = %s\n" " кадзіроўка = %s\n" " загаловак дакуманта = %s\n" " уводная частка = %s\n" " усё адно надрукаваць = %s\n" " накіраваньне = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "выбрана аўтаматычна" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Гожы друк:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " тып стылю = %s\n" " узровень вылучэньня = %s\n" " узровень згорткі = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "ніколі не захоўваць рэзэрвовую копію" #: src/main.c:456 msgid "simple backups of every file" msgstr "простыя рэзэрваваньні кожнага файла" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "нумараваныя копіі для ўжо пранумараваныя файлаў,\n" " у простае рэзэрваваньне для іншых" #: src/main.c:466 msgid "numbered backups of every file" msgstr "нумараваныя рэзэрваньні кожнага файла" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Выхад:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " атрымальнік = %s\n" " кантроль вэрсій = %s\n" " суфікс рэзэрваваньня = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " ідэнтэфікатар = %s\n" " апісаньне друкаркі (АД) = %s\n" " даўнятае АД = %s\n" " фармат меткі старонкі = %s\n" " колькасьць копій = %d\n" " колькасьць бакоў на аркушы = %s\n" " вызначэньне прылады паперы = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " вызначэньні statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " папярэдняя падача старонкі = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Нутраныя парамэтры:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " узровень падрабязнасьці = %d\n" " каманда file = %s\n" " шлях да бібліятэк = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Ужывай: %s [МОЖНАСЬЦІ] ... [ФАЙЛ]...\n" "\n" "Пераўтварае ФАЙЛ(ы) ці стандартны ўваход у PostScript.\n" "\n" "Парамэтры, абавязковыя для доўгіх можнасьцяў, абавязковыя й для кароткіх.\n" "Доўгія можнасьці, пазначаныя *, патрабуюць парамэтар yes ці no, адпаведныя\n" "кароткія можнасьці адпавядаюць `yes'\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Задачы:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version паказаць вэрсію\n" " --help паказаць гэтую даведку\n" " --guess паведаміць тыпы ФАЙЛАЎ, якія ўгадвае a2ps\n" " --which паведаміць поўны шлях бібліятэчных файлаў, названых\n" " ФАЙЛАМІ\n" " --glob паведаміць поўны шлях бібліятэчных файлаў, адпаведных\n" " ФАЙЛАМ\n" " --list=defaults паказаць даўнятыў ўсталёўкі й парамэтры \n" " --list=ТЭМА падрабязны сьпіс па тэме (delegations, encodings, " "features,\n" " variables, media, ppd, printers, prologues, style-" "sheets,\n" " user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Па выкананьні задачы пасьпяхова скончыцца. Падрабязны сьпіс можа даць\n" "дадатковую дапамогу па канкрэтных магчымасьцях.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Глабальныя:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent нічога не паведамляць\n" " -v, --verbose[=УЗРОВЕНЬ] падрабязныя паведамленьні, ці ўстанавіць\n" " узровень падрабязнасьці\n" " -=, --user-option=МОЖНАСЬЦЬ ужываць карыстальніцкі скарот МОЖНАСЬЦІ\n" " --debug задзейнічаць рэжым адладжваньня\n" " -D, --define=КЛЮЧ[:ЗНАЧЭНЬНЕ] зьнішчыць КЛЮЧ ці надаць яму ЗНАЧЭНЬНЕ\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=ІМЯ ужываць паперу, названую ІМЯ\n" " -r, --landscape друкаваць з альбомнай арыентацыяй\n" " -R, --portrait друкаваць з партрэтнай арыентацыяй\n" " --columns=КОЛЬК колькасьць слупкоў на старонцы\n" " --rows=NUM колькасьць радкоў на старонцы\n" " --major=НАПРАМАК спачатку запаўняць (НАПРАМАК=) радкоў (rows),\n" " ці слупкоў (columns)\n" " -1, -2, ..., -9 прадвызначаныя памеры шрыфтоў і разьмяшчэньні\n" " старонак для 1.. 9 віртуалаў\n" " -A, --file-align=РЭЖЫМ выраўняць асобныя файлы адпаведна РЭЖЫМУ (fill, " "rank\n" " page, sheet, ці лік)\n" " -j, --borders* друкаваць граніцы вакол слупкоў\n" " --margin[=ЛІК] вызначыць нутраныя палі роўныя ЛІКУ\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Можнасьці -1 .. -9 уплываюць на некаторыя базавыя парамэтры, каб устанавіць\n" "прадвызначаны фармат з 80 знакамі на старонцы. Т.ч., важны парадак:\n" "`-R -f40 -2' адпавядае `-2'. Каб зьмяніць фарматы ўжывай `-2Rf40', ці\n" "базавыя можнасьці (`--columns', `--font-size' і г.д.)\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=N зьмяшчаць нумар радка праз кожныя N радкоў\n" " -C скарот для --line-numbers=5\n" " -f, --font-size=ПАМЕР ужываць шрыфт зададзенага ПАМЕРУ для друку " "тэксту\n" " -L, --lines-per-page=N маштабаваць шрыфт, каб друкаваць N радкоў на\n" " віртуальнай старонцы\n" " -l, --chars-per-line=N маштабаваць шрыфт, каб друкаваць N слупкоў на\n" " віртуальнай старонцы\n" " -m, --catman апрацаваць ФАЙЛ як старонку man (роўнае -L66)\n" " -T, --tabsize=N устанавіць памер табулятара, роўным N\n" " --non-printable-format=ФМТ вызначае фармат друку г.зв. недрукаваных " "знакаў\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Загалоўкі:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header увогуле без загалоўкаў на старонцы\n" " -b, --header[=ТЭКСТ] вызначае загаловак старонкі\n" " -u, --underlay[=ТЭКСТ] друкуе ТЭКСТ пад кожнай старонкай\n" " --center-title[=ТЭКСТ] вызначае верхні калянтытул старонкі\n" " --left-title[=ТЭКСТ] вызначае левы верхні калянтытул\n" " --right-title[=ТЭКСТ] вызначае правы верхні калянтытул\n" " --left-footer[=ТЭКСТ] вызначае ніжні калянтытул старонкі\n" " --footer[=ТЭКСТ] вызначае левы ніжні калянтытул\n" " --right-footer[=ТЭКСТ] вызначае правы ніжні калянтытул\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "ТЭКСТы могуць ужываць адмысловыя пазьбегі.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ДЫЯПАЗОН] выбірае старонкі для друку\n" " -c, --truncate-lines* згортвае доўгія радкі\n" " -i, --interpret* інтэрпрэтаваць tab, bs і ff знакі\n" " --end-of-line=TYPE вызначае знак канца радка (r, n, nr, rn, any)\n" " -X, --encoding=ЗНАКАЗБОР вызначае ўваходны ЗНАКАЗБОР\n" " -t, --title=ІМЯ вызначае ІМЯ працы\n" " --stdin=ІМЯ вызначае імя ўваходнага файла `stdin'\n" " --print-anyway* прымусовы двайковы друк\n" " -Z, --delegate* накіраваць файлы да іншага дастасаваньня\n" " --toc[=ТЭКСТ] пабудаваць зьмест\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Калі задзейнічанае накіраваньне a2ps можа ўжываць іншыя дастасаваньні, каб\n" "апрацоўваць файлы, якія нельга друкаваць простым тэкстам, прыкладам HTML,\n" "PostScript, PDF etc.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=СТЫЛЬ] гожы друк (устанаўлівае СТЫЛЬ)\n" " --highlight-level=УЗРОВЕНЬ вызначыць УЗРОВЕНЬ вылучэньня пры\n" " гожым друку. УЗРОВЕНЬ можа быць:\n" " none, normal or heavy\n" " -g скарот для --highlight-level=heavy\n" " --strip-level=N узровень абрэзкі камэнтароў\n" #: src/main.c:767 #, fuzzy msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=ФАЙЛ друкаваць у ФАЙЛ. Калі ФАЙЛ `-', то \n" " друкаваць у стандартны выхад.\n" " --version-control=СЛОВА перавызначае вэрсію\n" " --suffix=СУФІКС перавызначае звычайны суфікс рэзэрвовых\n" " копій\n" " -P, --printer=ДРУКАРКА накіраваць атрыманае да ДРУКАРКІ\n" " -d накіраваць атрыманае да даўнятай друкаркі\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=ФАЙЛ улучыць ФАЙЛ.pro як уводзіны PostScript\n" " --ppd[=КЛЮЧ] аўтаматычны выбар АД ці ўстанавіць у КЛЮЧ\n" " -n, --copies=КОЛЬКАСЬЦЬ друкаваць КОЛЬКАСЬЦЬ копій кожнае старонкі\n" " -s, --sides=РЭЖЫМ устанавіць РЭЖЫМ друку (`1' ці `simplex',\n" " `2' ці `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] перадаць апісаньне прылады старонкі на выхад\n" " --statusdict=K[:[:]V] перадаць апісаньне statusdict на выхад\n" " -k, --page-prefeed дазволіць папярэднюю падачу старонкі\n" " -K, --no-page-prefeed забараніць папярэднюю падачу старонкі\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Даўнята a2ps наладжана рабіць тое, што табе патрэбна, таму даверся ёй. Каб\n" "гожа надрукаваць зьмесьціва каталёгу `src' і зьмест, а потым даслаць вынік\n" "да друкаркі `lw':\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Каб апрацаваць файлы `sample.ps' і `sample.html' і адлюстраваць вынік:\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "Каб апрацаваць паштовую сктрынку, зьмесьціўшы 4 старонкі на аркуш:\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Каб надрукаваць кніжкай на даўнятай друкарцы, якая падтрымлівае двухбаковы\n" "друк:\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Зьмест" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "немагчыма апрацаваць `%s', які патрабуе a2ps вэрсіі %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "Нечаканы знак `%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "зашмат уключэньняў" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "ня вызначаны ключ для `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "немагчыма знайсьці файл `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "аўтаматычнае вызначэньне стылю скасаванае" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "немагчыма скампіляваць рэгулярны выраз `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Вядомыя наборы стыляў" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "немагчыма знайсьці стыль `%s': ужыты просты стыль" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "няправільны нумар вэрсіі `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "прабел, г.зн. ` '" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "васьмярковы лік, г.зн. `\\001' і г.д." #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "шаснаццаткавы лік, г.зн. `\\x0a' і г.д." #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "кіроўныя знакі, г.зн. `^C', `M-^C' і г.д." #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs, г.зн. `C-c', `M-C-c' і г.д." #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "знак пытальніка, г.зн. `?'" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "няправільная можнасьць `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Вядомыя Знаказборы" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "недастатковае веданьне выглядаў шрыфтоў" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "немагчыма закрыць каталёг `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "няправільны парамэтар `%s' для `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Правільныя пармэтры -- цэлыя лікі n, такія як %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Правільныя пармэтры -- рацыянальныя лікі n, такія як %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "невядомая кадзіроўка `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "радкі спачатку" #: liba2ps/madir.c:54 msgid "columns first" msgstr "слупкі спачатку" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "невядомы носьбіт `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Нядомыя носьбіты" #: liba2ps/media.c:189 msgid "Name" msgstr "Імя" #: liba2ps/media.c:190 msgid "dimensions" msgstr "памеры" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Вядомыя пераменныя" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: адсутнічае `%c' у пазьбегу %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Надрукавана %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Надрукавана %s ад %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "немагчыма атрымаць імя бягучай працоўнага каталёгу" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: задоўгі парамэтар для пазьбегу %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%d %b %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: невядомы `%s' пазьбег `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Старонка %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Старонка %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: няправільны падзельнік `%s%c' у пазьбегу `%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: няправільны парамэтар у пазьбегу %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Старонка %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "каманда вываду" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Паспрабуй `%s --help', каб атрымаць болей зьвестак.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "няправільны ідэнтэфікатар пераманнае `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "няправільны выгляд шрыфта `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' без адпаведнага `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Вядомыя шрыфты" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Ніякіх.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Вядомыя апсаньні друкаркі PostScript" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "Няправільны інтэрвал `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Даўнятая друкарка" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Невядомая друкарка" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "няма каманды для `%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "даслана ў стандартны выхад" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "даслана да даўнятай друкаркі" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "захавана ў файл `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "даслана да друкаркі `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Вядомыя Прылады Вываду (друкаркі, і г.д.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Вядомыя Ўводныя Часткі" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "завялікі шрыфт %f" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "двайковы файл `%s', друкаваньне спынена" #: liba2ps/userdata.c:104 msgid "user" msgstr "карыстальнік" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Невядомы карыстальнік" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "невядомая можнасьць карыстальніка `%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Вядомыя Можнасьці Карыстальніка" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Не стае памяці" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "немагчыма перайменаваць файл `%s' у `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "адноўлены файл `%s'" #~ msgid "any type" #~ msgstr "любога тыпу" #, fuzzy #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Навіны, абнаўленьні і дакумэнтацыя знаходзяцца тут: http://www.inf.enst." #~ "fr/~demaille/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Паведамляй пра памылкі на адрас <bug-a2ps@gnu.org>.\n" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "невядомая кадзіроўка `%s', праігнараваная" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Напісанае %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Гэта вольнае праграмовае забесьпячэньне, глядзі ўмовы капіяваньня ў\n" #~ "зыходным кодзе. Няма НІЯКАЕ гарантыі, нават гарантыі КАШТОЎНАСЬЦІ ці\n" #~ "ПРЫДАТНАСЬЦІ ДЛЯ КАНКРЭТНАЕ МЭТЫ.\n" #~ msgid "write error" #~ msgstr "памылка запісу" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "няправільнае вызначэньне друкаркі `%s': %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "састарэлы запіс `%s'. Праігнараваны" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Старонка %d/%d" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "няправільны парамэтар %s для `%s'" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "неадназначны парамэтар %s для `%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Правільныя пармэтры:" #~ msgid "Unknown system error" #~ msgstr "Невядомая сыстэмная памылка" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: двухсэнсоўная можнасьць `%s'\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: можнасьць `--%s' ня мусіць мець парамэтараў\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: можнасьць `%c%s' ня мусіць мець парамэтараў\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: можнасьць `%s' патрабуе парамэтар\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: нераспазнаная можнасьць `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: нераспазнаная можнасьць `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: няправільная можнасьць -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: няправільная можнасьць -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: можнасьць патрабуе парамэтар -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: двухсэнсоўная можнасьць `-W %s'\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: можнасьць `-W %s' ня мусіць мець парамэтраў\n" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/boldquot.sed�������������������������������������������������������������������������0000644�0000000�0000000�00000000331�14415562264�012314� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ca.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000022676�14445132165�011071� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������r�����������<������ �� ��� ��E��� ����� ��!��� ����� ��E��� �����) �� ��� ����� ��$��� ��,��� �� ���M ��#���n ��!��� ��&��� ����� ����� ����� �����* �����? �����P �� ���Y �� ���c �����n �� ���v ����� �� ��� �� ��� ����� ��%��� ����� ����� ����������%�����5�����:�� ���C�����P�� ���b�����p������������&���������� �����+�����-��������>�����N�����l����������������������'�������������/��#���J�����n��*���������������/�����$�����$���8�����]�����x��2��������������� ����� ����� �����!���$�����F�����e�����u������������������������������������� ���&�����G�� ���c�����m���������������������������\��������%�����?�����N�����T�����]�����w�� ��������������������������������������3�����E�����[�����o���������������������i��� �������!����������`��������%�� ���&�����2��:���C��B���~��3�����;�����2���1��+���d��"���������������������������� ����������&�� ���7�����A�����S�����k�������%�����/�����������������������,�����@�����D�� ���M�����Z�� ���l�����z������������(���������������-������/���.�����^�����q����������������������������0��� �����Q�����f��'�����"�����/������������� ��=���= ��(���{ ��,��� ��$��� ����� ��5���!��)���L!�����v!�����!�� ���!�� ���!�����!��(���!��#���!��%���""�����H"�����N"��.���g"��!���"�����"�����"�����"��'���"�����!#�����@#�����H#�����b#�����~#�����#�����#��,���#��g���#�����!$�����4$�� ���C$�����M$�����V$�����q$�� ���$�����$�����$�� ���$�����$�����%��*���%�� ���J%��&���V%�����}%�����%�����%�����%��������1���.������F���l���:�����������O������D�������S���f���Y���p�������3������� ���M��� ���Q������B��������������� ����������>������N���a�������A���i��������������������0���J���8���K���6������Z������^���E����������-������� ���I�����������!���%������e����������r���������������n���;���U���m���j������=������_�������������?���<�������b���'���C���W���g���k���7�������&�������������/���+��� ���\�������o�����������V���#���"���X�������c���L����������4�����������H�������`������ �����������)������G���h���5���9���d���@�����������$�������������������R���P���[���]�������(������*���2�������q���,����������T���� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.7.21 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 1999-01-11 15:57+01:00 Last-Translator: Miquel ngel Var i Giner <mvaro@dlsi.ua.es> Language-Team: Catalan <mvaro@dlsi.ua.es> Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. � Cap. � destinaci = %s versi de control = %s sufix de les cpies = %s � encapalament = %s peu de pgina esquerre = %s peu de pgina = %s peu de pgina dret = %s ttol esquerre = %s ttol central = %s ttol dret = %s marca d'aigua = %s � precrrega del paper = %s � definicions statusdict = � full d'estil = %s nivell de color = %s supressi de comentaris = %d � truncar les lnies = %s interpretar tab, ff i bs = %s final de lnia = %s codificaci = %s ttol del document = %s prleg = %s imprimir els binaris = %s delegacions = %s �%A %d %B %Y�%s, delegat a %s�%s: argument no vlid per a la seqncia d'escapament %s%c�%s: separador no vlid `%s%c' per a la seqncia d'escapament `%s'�%s: falta `%c' per a la seqncia d'escapament %s%c�%s: argument massa llarg per a la seqncia d'escapament %s�%s: seqncia d'escapament "%s%c" (%d) desconeguda�Aplicacions configurades per a la delegaci�Estat de la configuraci de %s %s �Impressora Implcita�Delegaci `%s', de %s a %s �Vector dinmic '%s': �Cadena dinmica: �Global: �Encapalaments: �Encapalaments: �Entrada: �Detalls interns: �Codificacions Conegudes�Tipus de Lletra Coneguts�Suport Conegut�Eixides Conegudes (Impressores, etc.)�Descripcions d'Impressores PostScript Conegudes�Prlegs Coneguts�Fulls d'Estil Coneguts�Opcions d'Usuari Conegudes�Variables Conegudes�Nom�Eixida: �PostScript: �Pretty-printing: �Imprs per %s�Imprs per %s des de %s�Fulls: �Taula de Continguts�Prova `%s --help' per a ms informaci. �Impressora Desconeguda�Usuari Desconegut�Els arguments vlids son reals f tal com: %s �Els arguments vlids son sensers n tal com: %s �Pgines virtuals: �[%s (%s): 1 pgina en 1 full] �[%s (%s): ha fallat. Ignorat] �[%s (binari): ignorat] �[%s (no imprimible): ignorat] �[No s'ha produit eixida] �[Total: 1 pgina en 1 full] %s �`%s' s un fitxer binari, impressi interrompuda�`%s' es un directori�`%s' sense corresponent `%s'�cancel.lada selecci d'estil automtica�no es pot tancar el directori `%s'�no es pot compilar l'expressi regular `%s': %s�no es pot crear el fitxer `%s'�no es pot trobar el fitxer `%s'�no es pot trobar el full d'estil `%s': usant l'estil implcit�no es pot determinar el directori actual�no es pot obtenir informaci del fitxer `%s'�no es pot obrir una canonada en `%s'�impossible obrir el fitxer '%s'�no es pot processar `%s' que requereix a2ps versi %s�no es pot renombrar el fitxer `%s' com %s�circumflex (`^C', `M-^C',...)�columnes primer�dimensions�cada lnia�emacs (`C-c', `M-C-c',...)�final-de-lnia en una constant de cadena�el tipus de lletra %f s massa gran�la grandria de la lletra es %g punts�mxim�hexadecimal (`\x0a',...)�coneiximent incomplet dels estils de carcters�argument no vlid `%s' per a `%s'�opci no vlida `%s'�interval `%s' no vlid�opci no vlida `%s'�identificador de variable `%s' no vlid�nmero de versi `%s' no vlid�apasat�falta argument per a `%s'�mai fer cpies de seguretat�no�cap�normal�cpies de seguretat numerades de cada fitxer�cpies de seguretat numerades de fitxers ja numerats, i simples dels altres�octal (`\001',...)�ordre d'eixida�estndard�vertical�signe d'interrogaci (`?')�fitxer restaurat `%s'�files primer�guardat al fitxer `%s'�seleccionat automticament�enviat a la impressora implcita�enviat a la impressora `%s'�enviat a l'eixida estndard�cpies de seguretat simples de cada fitxer�espai (` ')�codificaci desconeguda `%s', ignorada�suport `%s' desconegut�opci d'usuari `%s' desconeguda�usuari�s�������������������������������������������������������������������a2ps-4.15.5/po/ca.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000142637�14445132164�010724� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Missatges en catal per a a2ps. # Copyright (c) 1997, 98 Miquel ngel Var i Giner # Miquel ngel Var i Giner <mvaro@dlsi.ua.es>, 1998. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.7.21\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 1999-01-11 15:57+01:00\n" "Last-Translator: Miquel ngel Var i Giner <mvaro@dlsi.ua.es>\n" "Language-Team: Catalan <mvaro@dlsi.ua.es>\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "falta argument per a `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "no es pot crear el fitxer `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "no es pot obrir una canonada en `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegaci `%s', de %s a %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplicacions configurades per a la delegaci" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' es un directori" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "impossible obrir el fitxer '%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "no es pot obtenir informaci del fitxer `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 pgina en 1 full]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d pgines en 1 full]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d pgines en %d fulls]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 pgina en 1 full] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Total: %d pgines en 1 full] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Total: %d pgines en %d fulls] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:221 #, fuzzy, c-format msgid "[%zu lines wrapped]\n" msgstr "%d lnies per pgina" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[No s'ha produit eixida]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegat a %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ha fallat. Ignorat]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (no imprimible): ignorat]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binari): ignorat]\n" #: src/generate.c:350 msgid "plain" msgstr "estndard" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "final-de-lnia en una constant de cadena" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "final-de-lnia en una expressi regular" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "" #: src/main.c:235 msgid "heavy" msgstr "mxim" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "cap" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "s" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "no" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Estat de la configuraci de %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Fulls:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " suport = %s%s, %s\n" " disposici de pgines = %d x %d, %s\n" " vores = %s\n" " alineament de fitxers = %s\n" " marge interior = %d\n" #: src/main.c:339 msgid "portrait" msgstr "vertical" #: src/main.c:339 msgid "landscape" msgstr "apasat" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d carcters per lnia" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d lnies per pgina" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "la grandria de la lletra es %g punts" #: src/main.c:363 msgid "each line" msgstr "cada lnia" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "cada %d lnies" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Pgines virtuals:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " numeraci de lnies = %s\n" " format = %s\n" " longitud de tabulaci = %d\n" " carcters no imprimibles = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Encapalaments:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " encapalament = %s\n" " peu de pgina esquerre = %s\n" " peu de pgina = %s\n" " peu de pgina dret = %s\n" " ttol esquerre = %s\n" " ttol central = %s\n" " ttol dret = %s\n" " marca d'aigua = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Entrada:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " truncar les lnies = %s\n" " interpretar tab, ff i bs = %s\n" " final de lnia = %s\n" " codificaci = %s\n" " ttol del document = %s\n" " prleg = %s\n" " imprimir els binaris = %s\n" " delegacions = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "seleccionat automticament" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Pretty-printing:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " full d'estil = %s\n" " nivell de color = %s\n" " supressi de comentaris = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "mai fer cpies de seguretat" #: src/main.c:456 msgid "simple backups of every file" msgstr "cpies de seguretat simples de cada fitxer" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "cpies de seguretat numerades de fitxers ja numerats,\n" " i simples dels altres" #: src/main.c:466 msgid "numbered backups of every file" msgstr "cpies de seguretat numerades de cada fitxer" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Eixida:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destinaci = %s\n" " versi de control = %s\n" " sufix de les cpies = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magic number = %s\n" " Descripci d'Impressora (PPD) = %s\n" " PPD implcita = %s\n" " format del nmero de pgina = %s\n" " nombre de cpies = %d\n" " cares per full = %s\n" " def. pgina del dispositiu = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definicions statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " precrrega del paper = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Detalls interns:\n" #: src/main.c:517 #, fuzzy, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " nivell de comentaris = %d\n" " ordre de fitxer = %s\n" " directori temporal = %s\n" " accs a les llibreries = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "s: %s [OPCIONS]... [FITXERS]...\n" " o: %s [OPCIONS]...\n" "Per a imprimir FITXERS, o imprimir per l'eixida estndard.\n" "Els arguments obligatoris per a opcions llargues ho son tamb per\n" "a les curtes. Les opcions llargues marcades amb * requereixen un\n" "argument s/no; les corresponents opcions curtes suposen un 's'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "" #: src/main.c:656 #, fuzzy msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " -V, --version mostra versi i acaba\n" " --help mostra aquesta ajuda i acaba\n" " --copyright mostra els drets i condicions de cpia\n" " --guess mostra els FITXERS del tipus elegit\n" " --list=CATEGORIA mostra opcions de configuraci (i valor)\n" "\n" "CATEGORIA pot ser una abreviatura no ambigua de:\n" " * `defaults': configuraci i valors implcits,\n" " * `features': llista curta de fulls d'estil, suports, etc.,\n" " * `delegations', `encodings', `variables', `media',\n" " `ppd', `printers', `prologues', `style-sheets', `user-options': \n" " llista detallada.\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent no mostrar cap missatge\n" " -v, --verbose[=NIVELL] activar l'aparici de missatges, o posar-ho\n" " a un cert NIVELL\n" " -=, --user-option=OPCI emprar l'OPCI abreujada de l'usuari\n" " --debug activar l'opci de depuraci\n" " -D, --define=CLAU[:VALOR] posar o llevar un VALOR a la CLAU\n" #: src/main.c:688 #, fuzzy msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NOM utilitza el suport d'eixida NOM\n" " -r, --landscape imprimeix en apasat\n" " -R, --portrait imprimeix en vertical\n" " --columns=NOMBRE NOMBRE de columnes per full (NOMBRE > 0)\n" " --rows=NOMBRE NOMBRE de lnies per full (NOMBRE > 0)\n" " --major=DIRECCI ompli primer files(row)/columnes(column)\n" " -1, -2, ..., -9 disposicions predef. de pgines virtuals\n" " -A, --file-align=MODE alinea diversos fitxers segons el MODE\n" " (fill, rank, sheet, o un nmero)\n" " -j, --borders* imprimeix les vores de les columnes\n" " --margin[=GRAND] defineix marge interior de grandria GRAND\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NOM numera una de cada NOM lnies\n" " -C igual que --line-numbers=5\n" " -f, --fontsize=GRANDRIA utilitza el tipus de lletra GRANDRIA (real)\n" " -L, --lines-per-page=NOM indica les lnies per pgina\n" " -l, --chars-per-line=NOM indica les columnes per pgina\n" " -m, --catman processa el fitxer com una pgina\n" " d'ajuda (igual que -L66)\n" " -T, --tabsize=NOM longitud de tabulaci = NOM\n" " --non-printable-format=FMT indica com s'imprimeixen els carcters\n" " no visibles\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Encapalaments:\n" #: src/main.c:723 #, fuzzy, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header sense encapalaments\n" " -b, --header[=TEXT] posa encapalament\n" " -u, --underlay[=TEXT] imprimeix TEXT davall de cada pgina\n" " --center-title[=TEXT] posa TEXT com a ttol de pgina\n" " --left-title[=TEXT] ttols esquerre i dret\n" " --right-title[=TEXT] \n" " --left-footer[=TEXT] peu de pgina\n" " --footer[=TEXT] permet usar seqncies d'escapament $ i %\n" " --right-footer[=TEXT]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=RANGE] selecciona les pgines a imprimir\n" " -c, --truncate-lines* trunca les lnies llarges\n" " -i, --interpret* interpreta els tab, bs i ff\n" " --end-of-line=TIPUS especifica el carcter de final de lnia\n" " (r, n, nr, rn, any)\n" " -X, --encoding=NOM utilitza la codif. d'entrada NOM\n" " -t, --title=NOM posa el NOM del treball\n" " --stdin=NOM posa el NOM de l'entrada estndard\n" " --print-anyway fora la impressi binria\n" " -Z, --delegate* delega fitxers a altres aplicacions\n" " --toc[=TEXT] genera una taula de continguts\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LLENG] activa pretty-printing (posa l'estil LLENG)\n" " --highlight-level=NIVELL posa el NIVELL de color (none, normal, heavy)\n" " -g igual que --highlight-level=heavy\n" " --strip-level=NOM nivell de supressi de comentaris\n" #: src/main.c:767 #, fuzzy msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FITX guarda l'eixida en el fitxer FITX.\n" " Si FITX s '-', enviar-la a l'eixida\n" " estndard.\n" " --version-control=PARAULA sobrescriu el control de versi usual\n" " --suffix=SUFIX sobrescriu el sufix de cpies usual\n" " -P, --printer=NOM envia l'eixida a la impressora NOM\n" " -d envia l'eixida a la impressora implcita\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FITXER posa FITXER.pro com a prleg PostScript\n" " --ppd[=CLAU] selecci automtica del PPD o el posa a CLAU\n" " -n, --copies=NOM imprimeix NOM cpies de cada pgina\n" " -s, --sides=MODE imprimeix en MODE `simplex' (o `1'), `duplex'\n" " (o `2'), o `tumble'\n" " -S, --setpagedevice=K[:V] passa definici de dispositiu de pgina\n" " a l'eixida\n" " --statusdict=K[:[:]V] passa la definici statusdict a l'eixida\n" " -k, --page-prefeed activa la precrrega de paper\n" " -K, --no-page-prefeed desactiva la precrrega de paper\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" #: src/main.c:1146 msgid "Table of Content" msgstr "Taula de Continguts" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "no es pot processar `%s' que requereix a2ps versi %s" #: src/sheets-map.l:117 #, fuzzy, c-format msgid "unexpected character `%c'" msgstr "opci desconeguda: `%c' (%d)" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "" #: src/sheets-map.l:301 src/sheets-map.l:308 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "no es pot trobar el fitxer `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "no es pot trobar el fitxer `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "cancel.lada selecci d'estil automtica" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "no es pot compilar l'expressi regular `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Fulls d'Estil Coneguts" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "no es pot trobar el full d'estil `%s': usant l'estil implcit" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "nmero de versi `%s' no vlid" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "espai (` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (`\\001',...)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (`\\x0a',...)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "circumflex (`^C', `M-^C',...)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (`C-c', `M-C-c',...)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "signe d'interrogaci (`?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Vector dinmic '%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, fuzzy, c-format #| msgid "\tload: %d/%d (%2.1f%%)\n" msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tcrrega: %d/%d (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Cadena dinmica:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "opci no vlida `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Codificacions Conegudes" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "coneiximent incomplet dels estils de carcters" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "no es pot tancar el directori `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argument no vlid `%s' per a `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Els arguments vlids son sensers n tal com: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Els arguments vlids son reals f tal com: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "codificaci desconeguda `%s', ignorada" #: liba2ps/madir.c:51 msgid "rows first" msgstr "files primer" #: liba2ps/madir.c:54 msgid "columns first" msgstr "columnes primer" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "suport `%s' desconegut" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Suport Conegut" #: liba2ps/media.c:189 msgid "Name" msgstr "Nom" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensions" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variables Conegudes" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: falta `%c' per a la seqncia d'escapament %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Imprs per %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Imprs per %s des de %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "no es pot determinar el directori actual" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argument massa llarg per a la seqncia d'escapament %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%d %b %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: seqncia d'escapament \"%s%c\" (%d) desconeguda" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Pgina %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Pgina %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separador no vlid `%s%c' per a la seqncia d'escapament `%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argument no vlid per a la seqncia d'escapament %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Pgina %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "ordre d'eixida" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prova `%s --help' per a ms informaci.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificador de variable `%s' no vlid" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "opci no vlida `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' sense corresponent `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Tipus de Lletra Coneguts" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Cap.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Descripcions d'Impressores PostScript Conegudes" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "interval `%s' no vlid" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Impressora Implcita" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Impressora Desconeguda" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr "no hi ha ordre implcita per a la impressora desconeguda `%s'" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "enviat a l'eixida estndard" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "enviat a la impressora implcita" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "guardat al fitxer `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "enviat a la impressora `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Eixides Conegudes (Impressores, etc.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Prlegs Coneguts" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "el tipus de lletra %f s massa gran" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' s un fitxer binari, impressi interrompuda" #: liba2ps/userdata.c:104 msgid "user" msgstr "usuari" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Usuari Desconegut" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "opci d'usuari `%s' desconeguda" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Opcions d'Usuari Conegudes" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Memria esgotada" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "no es pot renombrar el fitxer `%s' com %s" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "fitxer restaurat `%s'" #~ msgid "any type" #~ msgstr "qualsevol" #, fuzzy #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Notcies, actualizacions documentaci: visiteu http://www.inf.enst.fr/" #~ "~demaille/a2ps/\n" #~ "Envieu comentaris sobre la traducci a <mvaro@dlsi.ua.es>\n" #, fuzzy #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Informes d'error a <bug-a2ps@gnu.org>\n" #~ "Informes sobre la traducci a <mvaro@dlsi.ua.es>\n" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "\n" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana\n" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "codificaci desconeguda `%s', ignorada" #, fuzzy, c-format #~ msgid "Written by %s.\n" #~ msgstr "Imprs per %s" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "definici no vlida per a la impressora `%s': %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "entrada obsoleta '%s'. Ignorada" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Pgina %d/%d" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "argument no vlid %s per a `%s'" #, fuzzy, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argument ambigu `%s' per a `%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Els arguments vlids sn:" #~ msgid "Unknown system error" #~ msgstr "Error de sistema desconegut" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: l'opci `%s' s ambigua\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: l'opci `--%s' no permet un argument\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: l'opci `%c%s' no permet un argument\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: l'opci `%s' necessita un argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: opci desconeguda `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: opci desconeguda `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opci il.legal -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: opci no vlida -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: l'opci necessita un argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: l'opci `-W %s' s ambigua\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: l'opci `-W %s' no permet un argument\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "final-de-lnia en una expressi regular" #~ msgid "end-of-line in regular expression" #~ msgstr "final-de-lnia en una expressi regular" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "\n" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana\n" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "Tarees (acaben amb xit):\n" #~ msgid "" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 3, or (at your option)\n" #~ "any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License\n" #~ "along with this program; if not, write to the Free Software Foundation,\n" #~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ msgstr "" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 3, or (at your option)\n" #~ "any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License\n" #~ "along with this program; if not, write to the Free Software Foundation,\n" #~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ msgid "" #~ "Written by <Akim.Demaille@inf.enst.fr> and <Miguel.Santana@st.com>.\n" #~ msgstr "Escrit pet <Akim.Demaille@inf.enst.fr> i <Miguel.Santana@st.com>\n" #~ msgid "no default command for option `-d'" #~ msgstr "no hi ha ordre implcita per a l'opci `-d'" #~ msgid "pipe in %s\n" #~ msgstr "canonada en %s\n" #~ msgid "save in %s\n" #~ msgstr "guardat en %s\n" #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "%s: argument no vlid `%s' per a `%s'\n" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "interval senser `%s' no vlid" #~ msgid "illegal integer interval: %s" #~ msgstr "interval senser il.legal: %s" #~ msgid "cannot find file %s" #~ msgstr "no es pot trobar el fitxer %s" #, fuzzy #~ msgid "unrecognized font `%s'" #~ msgstr "tipus de lletra %s desconegut" #, fuzzy #~ msgid "unrecognized face `%s'" #~ msgstr "estil de carcter %s desconegut" #~ msgid "missing argument for %s" #~ msgstr "falta argument per a %s" #~ msgid "invalid variable identifier %s" #~ msgstr "identificador de variable %s no vlid" #~ msgid "cannot create file %s" #~ msgstr "no es pot crear el fitxer %s" #~ msgid "cannot open a pipe on %s" #~ msgstr "no es pot obrir una canonada en %s" #~ msgid "cannot open file %s" #~ msgstr "no es pot obrir el fitxer %s" #~ msgid "cannot open configuration file %s" #~ msgstr "no es pot obrir el fitxer de configuraci %s" #~ msgid "encoding %s unknown" #~ msgstr "codificaci %s desconeguda" #~ msgid "user option `%s' not defined" #~ msgstr "l'opci d'usuari `%s' no est definida" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "opci il.legal: `%s'" #~ msgid "illegal option: `%s'" #~ msgstr "opci il.legal: `%s'" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "error de sintaxi en la cadena d'opci '%s':\n" #~ "falta el tancament: %c" #, fuzzy #~ msgid "cannot backup and create file `%s'" #~ msgstr "no s pot crear el fitxer d'eixida `%s'" #~ msgid "wrong value for option %s: `%s'" #~ msgstr "valor erroni per a l'opci %s: `%s'" #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "Els arguments vlids son sensers entre %d i %d\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Els arguments vlids son sensers majors que %d\n" #, fuzzy #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "Els arguments vlids son sensers entre %d i %d\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "no s pot trobar el fitxer de configuraci `%s'" #~ msgid "steady" #~ msgstr "fix" #~ msgid "linear" #~ msgstr "lineal" #~ msgid "geometrical" #~ msgstr "geomtric" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "\tcreixement: %s, increment: %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "" #~ "no s poden reservar %ld octets per a la taula de dispersi: memria " #~ "esgotada" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Crrega=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "2a dispersi=%d, " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "Col.lisions=%ld/%ld=%.0f%%" #, fuzzy #~ msgid "Document title" #~ msgstr "ttol central" #, fuzzy #~ msgid "Valid arguments are floats greater than %.1f\n" #~ msgstr "Els arguments vlids son sensers majors que %d\n" #~ msgid "free" #~ msgstr "lliure" #, fuzzy #~ msgid " %-10s = save in %s\n" #~ msgstr " %-20s = guarda en %s\n" #~ msgid "delegating command" #~ msgstr "delegant ordre" #~ msgid "water mark" #~ msgstr "marca d'aigua" #~ msgid "right header" #~ msgstr "encapalament dret" #~ msgid "center footer" #~ msgstr "peu de pgina central" #~ msgid "right footer" #~ msgstr "peu de pgina dret" #~ msgid "left footer" #~ msgstr "peu de pgina esquerre" #~ msgid "center title" #~ msgstr "ttol central" #~ msgid "right title" #~ msgstr "ttol dret" #~ msgid "left title" #~ msgstr "ttol esquerre" #, fuzzy #~ msgid "General information on %s:\n" #~ msgstr "no s pot obtindre informaci del fitxer `%s'" #~ msgid "found following options (argc=%d):\n" #~ msgstr "trobades les segents opcions (argc=%d):\n" #~ msgid "failure\n" #~ msgstr "error\n" #~ msgid "Walk through path\n" #~ msgstr "Caminant per el cam\n" #, fuzzy #~ msgid "Unkown Printer" #~ msgstr "Impressora desconeguda" #~ msgid "syntax error in fonts(s) `%s'" #~ msgstr "Error de sintaxi en tipus de lletra '%s'" #~ msgid "cannot launch `%s' (delegation `%s')" #~ msgstr "impossible enviar '%s' (delegaci '%s')" #~ msgid "delegation %s did not create the file" #~ msgstr "la delegaci %s no ha creat el fitxer" #~ msgid "delegation %s failed and exited with status %d" #~ msgstr "la delegaci %s ha fallat i ha eixit amb el estat %d" #~ msgid "delegation %s failed" #~ msgstr "la delegaci %s ha fallat" #~ msgid "%s: no closing ')' for %s escape" #~ msgstr "%s: falta ')' per a la seqncia d'escapament %s" #~ msgid "%s: too long variable name for %s escape" #~ msgstr "%s: nom de variable massa llarg per a la seqncia d'escapament %s" #, fuzzy #~ msgid "file_lookup(%s%c%s%s) = " #~ msgstr "file_lookup(%s%c%s%s) = " #~ msgid "suffix_lookup(): %s%c*.%s\n" #~ msgstr "suffix_lookup(): %s%c*.%s\n" #, fuzzy #~ msgid "" #~ " -P, --printer=NAME send output to printer NAME\n" #~ " -d send output to the default printer\n" #~ " -s, --sides=NUM number of sheet sides (recto/recto-verso)\n" #~ msgstr "" #~ " -P, --printer[=NOM] imprimeix a la impressora NOM\n" #~ " -d imprimeix per la impressora estndard\n" #~ " -s --sides=NOM nombre de cares per full (1 o 2)\n" #, fuzzy #~ msgid "In the style %s, the keyword `%s' uses upper chars" #~ msgstr "En el estil %s, la paraula clau '%s' utilitza majscules" #, fuzzy #~ msgid "In the style %s, the sequence `%s-%s' uses upper chars" #~ msgstr "En el estil %s, la seqncia '%s-%s' utilitza majscules" #~ msgid "in style %s, keyword `%s' is defined twice" #~ msgstr "en l'estil %s, la paraula clau `%s' est definida dues vegades" #, fuzzy #~ msgid "in style %s, operator `%s' is defined twice" #~ msgstr "en l'estil %s, la paraula clau `%s' est definida dues vegades" #~ msgid "can't get current working directory" #~ msgstr "no s pot determinar el directori actual" #, fuzzy #~ msgid "expansion of %s user string (`%s') is `%s'\n" #~ msgstr "l'expansi de la cadena d'usuari %s (\"%s\") s \"%s\"\n" #, fuzzy #~ msgid "cannot open `%s'" #~ msgstr "impossible obrir el fitxer \"%s\"" #~ msgid "error opening `%s'" #~ msgstr "error en obrir `%s'" #, fuzzy #~ msgid "error getting file `%s' modification time" #~ msgstr "error en obtenir la data de modificaci del fitxer \"%s\"" #, fuzzy #~ msgid "cannot find file \"%s%s\"" #~ msgstr "no s pot trobar el fitxer \"%s\"" #, fuzzy #~ msgid "couldn't find system's configuration file `%s%c%s'" #~ msgstr "no s pot obrir el fitxer de configuraci `%s%c%s'" #, fuzzy #~ msgid "unable to fork" #~ msgstr "impossible obrir una canonada" #~ msgid "error starting `/bin/sh -c %s'" #~ msgstr "error a l'iniciar `/bin/sh -c %s'" #~ msgid "[Total: %d page on " #~ msgstr "[Total: %d pgina en " #~ msgid "sheet" #~ msgstr "full" #~ msgid "space" #~ msgstr "espai" #~ msgid "caret" #~ msgstr "circumflex" #, fuzzy #~ msgid "Known Media\n" #~ msgstr "Suports coneguts (%d)\n" #~ msgid "Known languages (%d)" #~ msgstr "Llenguatges coneguts (%d)" #~ msgid "" #~ " In %s:\n" #~ "\t" #~ msgstr "" #~ " En %s:\n" #~ "\t" #~ msgid "rows" #~ msgstr "files" #~ msgid "columns" #~ msgstr "columnes" #~ msgid "path_walk() on path %s\n" #~ msgstr "path_walk() en la trajectria %s\n" #~ msgid "In the style %s, the symbol '%s' uses upper chars" #~ msgstr "En el estil %s, el smbol '%s' utilitza majscules" #, fuzzy #~ msgid "in style %s, symbol `%s' is defined twice" #~ msgstr "en l'estil %s, el smbol regular `%s' est definit dues vegades" #~ msgid "in style %s, regular symbol `%s' is defined twice" #~ msgstr "en l'estil %s, el smbol regular `%s' est definit dues vegades" #~ msgid "in style %s, special symbol `%s' is defined twice" #~ msgstr "en l'estil %s, el smbol especial `%s' est definit dues vegades" #~ msgid "not enough \\verb delimiters (%s) to print %s" #~ msgstr "insuficients delimitadors \\verb (%s) per a imprimir %s" #~ msgid "unknown" #~ msgstr "desconegut" #~ msgid "couldn't find prolog \"%s\"" #~ msgstr "no s pot trobar el prleg \"%s\"" #~ msgid "language %s unknown" #~ msgstr "llenguatge %s desconegut" #~ msgid "illegal language: `%s'" #~ msgstr "llenguatge il.legal: `%s'" #~ msgid "Bold" #~ msgstr "Negreta" #~ msgid "fnmatch failed on file \"%s\" and pattern \"%s\": %s" #~ msgstr "fnmatch fall en el fitxer \"%s\" y en el patr \"%s\": %s" #~ msgid "couldn't find requested file \"%s\"" #~ msgstr "no s pot trobar el fitxer \"%s\"" #~ msgid "illegal language: %s in line %d of configuration file `%s'" #~ msgstr "llenguatge il.legal: %s, lnia %d del fitxer de configuraci `%s'" #~ msgid "illegal option: %s in line %d of configuration file `%s'" #~ msgstr "opci il.legal: %s, lnia %d del fitxer de configuraci `%s'" #~ msgid "Print service\n" #~ msgstr "Servei d'impressi\n" #~ msgid "" #~ " lpr command = %s\n" #~ " option = %s\n" #~ " option for printer = %s\n" #~ " default = %s\n" #~ msgstr "" #~ " ordre lpr = %s\n" #~ " opci = %s\n" #~ " opci d'impressora = %s\n" #~ " per defecte = %s\n" #~ msgid "2-sided" #~ msgstr "a 2 cares" #~ msgid "1-sided" #~ msgstr "a 1 cara" #~ msgid " print services not compiled in\n" #~ msgstr " serveis d'impressi no compilats en\n" #~ msgid "page" #~ msgstr "pgina" #~ msgid "pages" #~ msgstr "pgines" �������������������������������������������������������������������������������������������������a2ps-4.15.5/po/cs.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000065362�14445132165�011112� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�� ���7��.���8�� ���18����?8����;;�� ��>����+A��~��B��h��xD����G����J����L��}���-N��G��N�� ��O�����Q�����Q��,���R��&���R�����R��L��sS�����T�� ���AU�� ���NU�� ���YU��/���zU��A���U��,���U��5���V��?���OV�����V�����V��k���V��'���*W����RW�����NY�����kY��!���Y�����Y�����Y�� ���Y�� ���Y�� ���Y�����Y������Z�����Z�����/Z�����CZ��/���WZ��!���Z�����Z�����Z��-���Z�����[�����[�� ���"[�� ���,[�����9[�����I[�� ���Z[�� ���g[�� ���u[�����[�����[�����[�����[��5���[��L��[��7���*]�����b]�����v]����]��B���Z_��?���_�����_�����_��(���`��&���`��$���a��"���,a��#���Oa��#���sa�����a�����a��#���a��*���a��(���b��&���>b��+���eb�����b��'���b��!���b�����b��1���c�����Ac�����ac��8���~c��)���c��*���c��!��� d�����.d��:���Nd��.���d��)���d�����d�����d�����d�����e��*���"e�����Me��#���de��!���e�����e�����e�����e��(���e�����f��4���9f�����nf�����f�����f��,���f�� ���f�� ���g�����g�����4g�����Qg�����og��%���rg��-���g�����g�����g��-���g��j���h��$���h�����h�� ���h�� ���h�����h�����h�����i�����i�����.i�����Ki�����`i�����i�����i��.���i�����i��$���j��-���+j�����Yj�����vj�����j��3���j�� ���j�����j�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-03-08 21:32+01:00 Last-Translator: Petr Pisar <petr.pisar@atlas.cz> Language-Team: Czech <translation-team-cs@lists.sourceforge.net> Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; � načteno: %zu/%zu (%2.1f %%) � původní velikost: %zu, zvětšení: %s %zu � Žádná. � --line-numbers=ČÍSLO předřadí každému ČÍSLO. řádku jeho číslo -C to stejné jako --line-numbers=5 -f, --font-size=VELIKOST VELIKOST (reálné číslo) písma pro hlavní text -L, --lines-per-page=POČET přepočítá písmo, aby se tiskl POČET řádků na stránku -l, --chars-per-line=POČET přepočítá písmo, aby se tiskl POČET sloupců na stránku -m, --catman zpracuje SOUBOR jako man (stejné jako -L66) -T, --tabsize=VELIKOST nastaví VELIKOST tabulátoru --non-printable-format=FORMÁT nastaví způsob zpracování netisknutelných znaků � --prologue=SOUBOR vložit SOUBOR.pro jako postscriptový prolog --ppd[=KLÍČ] automatická volba PPD nebo nastavit na KLÍČ -n, --copies=POČET vytisknout POČET kopií každé stránky -s, --sides=REŽIM počet stran papíru („1“ nebo „simplex“, „2“ nebo „duplex“, „tumble“) -S, --setpagedevice=K[:V] poslat na výstup nastavení stránkového zařízení --statusdict=K[:[:]V] poslat na výstup nastavení stavového slovníku -k, --page-prefeed zapnout průběžný posun stránky -K, --no-page-prefeed vypnout průběžný posun stránky � --version vypsat označení verze programu --help vypsat tuto nápovědu --guess vypsat předpokládaný typ SOUBORŮ --which vypsat úplnou cestu k zadaným knihovním SOUBORŮM --glob vypsat úplnou cestu ke knihovním SOUBORŮM vyhovujícím vzoru --list=defaults vypsat výchozí nastavení a parametry --list=TÉMA vypsat informace o TÉMATU (delegations, encodings, features, variables, media, ppd printers, prologues, style-sheets, user-options) � -B, --no-header stránky bez hlaviček -b, --header[=TEXT] nastaví hlavičky na TEXT -u, --underlay[=TEXT] nastaví patičky na TEXT --center-title[=TEXT] nastaví titulek stránek na TEXT --left-title[=TEXT] nastaví levý a pravý titulek stránek na TEXT --right-title[=TEXT] --left-footer[=TEXT] nastaví odrážky na TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=STYL] zapnout tisk stylů (nastavit na STYL) --highlight-level=ÚROVEŇ nastavit ÚROVEŇ zvýrazňování při tisku stylů ÚROVEŇ může být none, normal nebo heavy -g to stejné jako --highlight-level=heavy --strip-level=ÚROVEŇ ÚROVEŇ ořezávání komentářů � -M, --medium=NÁZEV použít výstupní médium NÁZEV -r, --landscape tisknout stránky na šířku -R, --portrait tisknout stránky na výšku --columns=POČET POČET (>0) sloupců na list --rows=POČET POČET (>0) řádků na list --major=SMĚR nejprve vyplní (SMĚR=) „rows“ (řádky) nebo „columns“ (sloupce) -1, -2, ..., -9 předdefinované rozvržení stránek a velikost písma -A, --file-align=ZPŮSOB nastavit ZPŮSOB (fill, rank, page, sheet nebo number) tisku oddělených souborů -j, --borders* tisknout rámečky kolem sloupců --margin[=VELIKOST] nastavit VELIKOST vnitřních okrajů � -a, --pages[=ROZSAH] zvolit stránky k vytisknutí -c, --truncate-lines* ořezávat dlouhé řádky -i, --interpret* interpretace znaků tabulátor, backspace a form feed (zlom stránky) --end-of-line=TYP nastavit zakončení řádku (TYP: r, n, nr, rn, any [kterýkoliv]) -X, --encoding=NÁZEV použít vstupní kódování NÁZEV -t, --title=NÁZEV nastavit NÁZEV úlohy --stdin=SOUBOR číst SOUBOR ze standardního vstupu --print-anyway* tisknout i binární data -Z, --delegate* předat soubory ke zpracování jiné aplikaci --toc[=TEXT] vygenerovat obsah � -o, --output=SOUBOR výstup do SOUBORu, pokud je SOUBOR „-“, pak na standardní výstup --version-control=ZPŮSOB nastaví ZPŮSOB zálohování --suffix=PŘÍPONA nastaví příponu záložních kopií na PŘÍPONA -P, --printer=NÁZEV výstup na tiskárnu NÁZEV -d výstup na výchozí tiskárnu � -q, --quiet, --silent minimální informace o běhu programu -v, --verbose[=ÚROVEŇ] nastavit podrobný výpis na zapnuto nebo na ÚROVEŇ -=, --user-option=ZKRATKA použít uživatelem definovanou ZKRATKU --debug použít ladicí funkce -D, --define=KLÍČ[:HODNOTA] zrušit nebo nastavit proměnnou KLÍČ na HODNOTA � cíl = %s kontrola verzí = %s přípona záložních kopií = %s � hlavička = %s levá odrážka = %s odrážka = %s pravá odrážka = %s levý titulek = %s centrální titulek = %s pravý titulek = %s zápatí = %s � magické číslo = %s popis tiskárny (PPD) = %s výchozí PPD = %s formát čísla stránky = %s počet kopií = %u stran na list = %s nastavení stránkového zařízení = � médium = %s, %s rozvržení stránky = %zu × %zu, %s rámečky = %s tisk oddělených souborů = %s vnitřní okraj = %u � číslování řádků = %s formát = %s velikost tabulátoru = %u netisknutelné znaky = %s � průběžný posun stránky = %s � definice stavového slovníku = � styl = %s úroveň zvýrazňování = %s úroveň ořezávání komentářů = %d � ořezávání řádků = %s interpret = %s konec řádku = %s kódování = %s název dokumentu = %s prolog = %s tisk binárních dat = %s předávání úloh = %s � podrobnost výpisu hlášek = %u řádkový příkaz „file“ = %s cesta ke knihovnám = �%A %d. %B %Y�%d. %m. %Y�%s, předáno ke zpracování %s�%s: neplatný argument pro řídící znak %s%c�%s: neplatný oddělovač „%s%c“ pro řídící znak „%s“�%s: chybí „%c“ pro řídící znak %s%c�%s: příliš dlouhý argument pro řídící znak %s�%s: pro „%s“ není řídící znak „%c“ (%d) definován�znaků na řádek: %u�řádků na stránku: %u�Po provedení úlohy úspěšně skončí. Nápovědu ke konkrétním tématům poskytne podrobný výpis. �Aplikace určené k předávání úloh�Standardně je a2ps vyladěn tak, aby udělal přesně to, co chcete. Obsah složky „src“ spolu s obsahem za pomoci stylů vytisknete na tiskárně „lw“ pomocí: a2ps -P lw --toc src/* Soubory „sample.ps“ a „sample.html“ zpracujete a výsledek zobrazíte pomocí: a2ps -P display sample.ps sample.html Poštovní schránku zpracujete pomocí: a2ps -=mail -4 mailbox Knihu na výchozí tiskárně s oboustranným tiskem vytisknete pomocí: a2ps -=book paper.dvi.gz -d�Aktuální nastavení %s %s �Výchozí tiskárna�Předání „%s“, od %s do %s �Dynamické pole „%s“: �Dynamický řetězec: �Globální: �Hlavičky: �Hlavičky: �Vstup: �Interní nastavení: �Připravená kódování�Připravená písma�Připravená média�Připravené výstupní cíle (tiskárny apod.)�Připravené popisy tiskáren PPD�Připravené prology�Připravené stylopisy�Připravené uživatelsky definované zkratky�Připravené proměnné�Název�Výstup: �Stránka %zu�Stránka %zu/%c�Stránka %zu/%zu�PostScript: �Tisk stylů: �Vytiskl %s�Vytiskl %s z %s�Listy: �Obsah�Úlohy: �TEXTy mohou využívat speciální řídící znaky. �Přepínače -1…-9 ovlivňují několik základních parametrů tím, že nastaví předdefinované rozvržení s 80 sloupci. Proto je také „-R -f40 -2“ v tomto pořadí to stejné jako „-2“. Pro změnu rozvržení použijte „-2Rf40“ nebo sestavu základních přepínačů („--columns“, „--font-size“ atd.). �Více informací získáte příkazem „%s --help“. �Neznámá tiskárna�Neznámý uživatel�Použití: %s [PŘEPÍNAČ]… [SOUBOR]… Převádí SOUBOR(Y) nebo standardní vstup do PostScriptu. Jako výchozí je výstup posílán na výchozí tiskárnu. Místo toho je možné pomocí -o určit výstupní soubor. Povinné argumenty dlouhých přepínačů jsou povinné i pro odpovídající krátké přepínače. Dlouhé přepínače označené „*“ vyžadují argument typu ano/ne, odpovídající krátké přepínače mají význam „ano“. �Platnými argumenty jsou reálná čísla f, pro něž platí: %s �Platnými argumenty jsou celá čísla n, pro něž platí: %s �Virtuální stránky: �Pokud je zapnuto předávání úloh, pak a2ps může pro zpracování souborů, které nemají být vytištěny v přímém formátu (např. HTML, PostScript či PDF), použít jiné aplikace. �[%s (%s): počet stran/listů: %zu/%zu] �[%s (%s): počet stran/listů: %zu/1] �[%s (%s): počet stran/listů: 1/1] �[%s (%s): neuspělo. Ignorováno] �[%s (binární data): ignorováno] �[%s (netisknutelné): ignorováno] �[zalomeno řádků: %zu] �[1 řádek zalomen] �[Žádný výstup nebyl vytvořen] �[Celkem: počet stran/listů: %zu/%zu] %s �[Celkem: počet stran/listů: %zu/1] %s �[Celkem: počet stran/listů: 1/1] %s �„%s“ je binární soubor, tisk ukončen�„%s“ je složka�„%s“ bez odpovídajícího „%s“�automatická volba stylů vypnuta�nelze zavřít složku „%s“�regulární výraz „%s“ nelze zkompilovat: %s�soubor „%s“ nelze vytvořit�nelze najít soubor „%s“�stylopis „%s“ nelze najít: použije se prostý styl�nelze určit současnou pracovní složku�informace o souboru „%s“ nelze získat�rouru do „%s“ nelze otevřít�soubor „%s“ nelze otevřít�nelze zpracovat „%s“, protože vyžaduje a2ps verze %s�soubor „%s“ nelze přejmenovat na „%s“�kurzor (např. „^C“, „M-^C“ atd.)�nejdříve sloupce�rozměry�každý %u. řádek�každý řádek�emacs (např. „C-c“, „M-C-c“ atd.)�neukončený výraz %s�neukončená řetězcová konstanta�chyba při běhu programu file(1)�písmo %f je příliš veliké�velikost písma je %g pt�maximální (heavy)�šestnáctkově (např. „\x0a“ atd.)�neúplná znalost vzhledu�neplatný argument „%s“ pro přepínač „%s“�neplatný vzhled „%s“�nepovolený interval „%s“�neplatný přepínač „%s“�neplatný identifikátor proměnné „%s“�neplatné číslo verze „%s“�na šířku�není volná paměť�chybí argument pro „%s“�nevytvářet záložní kopie�ne�žádný příkaz pro „%s“ (%s%s)�pro „%s“ není definován žádný klíč�žádná (none)�běžná (normal)�číslované záložní kopie všech souborů�číslované záložní kopie číslovaných souborů a jednoduché ostatních�osmičkově (např. „\001“ atd.)�výstupní příkaz�prostý text�na výšku�otazník (např. „?“)�obdržen signál SIG%s�soubor „%s“ obnoven�nejdříve řádky�uloženo do souboru „%s“�automatický výběr�posláno na výchozí tiskárnu�posláno na tiskárnu „%s“�posláno na standardní výstup�jednoduché záložní kopie každého souboru�mezera (např. „ “)�příliš mnoho vložených souborů�příliš mnoho skloněných fontů: „%s“�neočekávaný znak „%c“�neznámé kódování „%s“�neznámé médium „%s“�neznámá uživatelsky definovaná zkratka „%s“�uživatel�ano�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/cs.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000113360�14445132164�010735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# The Czech translation of the GNU a2ps. # Copyright (C) 1998 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # # Jiří Pavlovský <pavlovsk@ff.cuni.cz>, 1998. # Marek Černocký <marek@manet.cz>, 2011. # Petr Pisar <petr.pisar@atlas.cz>, 2023. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-03-08 21:32+01:00\n" "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n" "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "chybí argument pro „%s“" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "soubor „%s“ nelze vytvořit" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "rouru do „%s“ nelze otevřít" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Předání „%s“, od %s do %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplikace určené k předávání úloh" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "„%s“ je složka" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "soubor „%s“ nelze otevřít" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "informace o souboru „%s“ nelze získat" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): počet stran/listů: 1/1]\n" # TODO: Pluralize #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): počet stran/listů: %zu/1]\n" # TODO: Pluralize #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): počet stran/listů: %zu/%zu]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Celkem: počet stran/listů: 1/1] %s\n" # TODO: Pluralize #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Celkem: počet stran/listů: %zu/1] %s\n" # TODO: Pluralize #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Celkem: počet stran/listů: %zu/%zu] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 řádek zalomen]\n" # TODO: Pluralize #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[zalomeno řádků: %zu]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Žádný výstup nebyl vytvořen]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, předáno ke zpracování %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): neuspělo. Ignorováno]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (netisknutelné): ignorováno]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binární data): ignorováno]\n" #: src/generate.c:350 msgid "plain" msgstr "prostý text" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "neukončená řetězcová konstanta" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "neukončený výraz %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "obdržen signál SIG%s" #: src/main.c:235 msgid "heavy" msgstr "maximální (heavy)" #: src/main.c:239 msgid "normal" msgstr "běžná (normal)" #: src/main.c:243 msgid "none" msgstr "žádná (none)" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ano" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ne" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Aktuální nastavení %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Listy:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " médium = %s, %s\n" " rozvržení stránky = %zu × %zu, %s\n" " rámečky = %s\n" " tisk oddělených souborů = %s\n" " vnitřní okraj = %u\n" #: src/main.c:339 msgid "portrait" msgstr "na výšku" #: src/main.c:339 msgid "landscape" msgstr "na šířku" # TODO: Pluralize #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "znaků na řádek: %u" # TODO: Pluralize #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "řádků na stránku: %u" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "velikost písma je %g pt" #: src/main.c:363 msgid "each line" msgstr "každý řádek" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "každý %u. řádek" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtuální stránky:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " číslování řádků = %s\n" " formát = %s\n" " velikost tabulátoru = %u\n" " netisknutelné znaky = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Hlavičky:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " hlavička = %s\n" " levá odrážka = %s\n" " odrážka = %s\n" " pravá odrážka = %s\n" " levý titulek = %s\n" " centrální titulek = %s\n" " pravý titulek = %s\n" " zápatí = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Vstup:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " ořezávání řádků = %s\n" " interpret = %s\n" " konec řádku = %s\n" " kódování = %s\n" " název dokumentu = %s\n" " prolog = %s\n" " tisk binárních dat = %s\n" " předávání úloh = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "automatický výběr" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Tisk stylů:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " styl = %s\n" " úroveň zvýrazňování = %s\n" " úroveň ořezávání komentářů = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "nevytvářet záložní kopie" #: src/main.c:456 msgid "simple backups of every file" msgstr "jednoduché záložní kopie každého souboru" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "číslované záložní kopie číslovaných souborů\n" " a jednoduché ostatních" #: src/main.c:466 msgid "numbered backups of every file" msgstr "číslované záložní kopie všech souborů" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Výstup:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " cíl = %s\n" " kontrola verzí = %s\n" " přípona záložních kopií = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magické číslo = %s\n" " popis tiskárny (PPD) = %s\n" " výchozí PPD = %s\n" " formát čísla stránky = %s\n" " počet kopií = %u\n" " stran na list = %s\n" " nastavení stránkového zařízení = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definice stavového slovníku = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " průběžný posun stránky = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Interní nastavení:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " podrobnost výpisu hlášek = %u\n" " řádkový příkaz „file“ = %s\n" " cesta ke knihovnám = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Použití: %s [PŘEPÍNAČ]… [SOUBOR]…\n" "\n" "Převádí SOUBOR(Y) nebo standardní vstup do PostScriptu. Jako výchozí je\n" "výstup posílán na výchozí tiskárnu. Místo toho je možné pomocí -o určit\n" "výstupní soubor.\n" "\n" "Povinné argumenty dlouhých přepínačů jsou povinné i pro odpovídající krátké\n" "přepínače. Dlouhé přepínače označené „*“ vyžadují argument typu ano/ne,\n" "odpovídající krátké přepínače mají význam „ano“.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Úlohy:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version vypsat označení verze programu\n" " --help vypsat tuto nápovědu\n" " --guess vypsat předpokládaný typ SOUBORŮ\n" " --which vypsat úplnou cestu k zadaným knihovním\n" " SOUBORŮM\n" " --glob vypsat úplnou cestu ke knihovním SOUBORŮM\n" " vyhovujícím vzoru\n" " --list=defaults vypsat výchozí nastavení a parametry\n" " --list=TÉMA vypsat informace o TÉMATU (delegations,\n" " encodings, features, variables, media, ppd\n" " printers, prologues, style-sheets,\n" " user-options)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Po provedení úlohy úspěšně skončí. Nápovědu ke konkrétním tématům poskytne\n" "podrobný výpis.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Globální:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent minimální informace o běhu programu\n" " -v, --verbose[=ÚROVEŇ] nastavit podrobný výpis na zapnuto nebo na\n" " ÚROVEŇ\n" " -=, --user-option=ZKRATKA použít uživatelem definovanou ZKRATKU\n" " --debug použít ladicí funkce\n" " -D, --define=KLÍČ[:HODNOTA] zrušit nebo nastavit proměnnou KLÍČ na " "HODNOTA\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NÁZEV použít výstupní médium NÁZEV\n" " -r, --landscape tisknout stránky na šířku\n" " -R, --portrait tisknout stránky na výšku\n" " --columns=POČET POČET (>0) sloupců na list\n" " --rows=POČET POČET (>0) řádků na list\n" " --major=SMĚR nejprve vyplní (SMĚR=) „rows“ (řádky) nebo\n" " „columns“ (sloupce)\n" " -1, -2, ..., -9 předdefinované rozvržení stránek a " "velikost\n" " písma\n" " -A, --file-align=ZPŮSOB nastavit ZPŮSOB (fill, rank, page, sheet " "nebo\n" " number) tisku oddělených souborů\n" " -j, --borders* tisknout rámečky kolem sloupců\n" " --margin[=VELIKOST] nastavit VELIKOST vnitřních okrajů\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Přepínače -1…-9 ovlivňují několik základních parametrů tím, že nastaví\n" "předdefinované rozvržení s 80 sloupci. Proto je také „-R -f40 -2“ v tomto " "pořadí\n" "to stejné jako „-2“. Pro změnu rozvržení použijte „-2Rf40“ nebo sestavu\n" "základních přepínačů („--columns“, „--font-size“ atd.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=ČÍSLO předřadí každému ČÍSLO. řádku jeho číslo\n" " -C to stejné jako --line-numbers=5\n" " -f, --font-size=VELIKOST VELIKOST (reálné číslo) písma pro hlavní " "text\n" " -L, --lines-per-page=POČET přepočítá písmo, aby se tiskl POČET řádků " "na\n" " stránku\n" " -l, --chars-per-line=POČET přepočítá písmo, aby se tiskl POČET sloupců " "na\n" " stránku\n" " -m, --catman zpracuje SOUBOR jako man (stejné jako -" "L66)\n" " -T, --tabsize=VELIKOST nastaví VELIKOST tabulátoru\n" " --non-printable-format=FORMÁT\n" " nastaví způsob zpracování netisknutelných " "znaků\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Hlavičky:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header stránky bez hlaviček\n" " -b, --header[=TEXT] nastaví hlavičky na TEXT\n" " -u, --underlay[=TEXT] nastaví patičky na TEXT\n" " --center-title[=TEXT] nastaví titulek stránek na TEXT\n" " --left-title[=TEXT] nastaví levý a pravý titulek stránek na " "TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] nastaví odrážky na TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEXTy mohou využívat speciální řídící znaky.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ROZSAH] zvolit stránky k vytisknutí\n" " -c, --truncate-lines* ořezávat dlouhé řádky\n" " -i, --interpret* interpretace znaků tabulátor, backspace\n" " a form feed (zlom stránky)\n" " --end-of-line=TYP nastavit zakončení řádku (TYP: r, n, nr, " "rn,\n" " any [kterýkoliv])\n" " -X, --encoding=NÁZEV použít vstupní kódování NÁZEV\n" " -t, --title=NÁZEV nastavit NÁZEV úlohy\n" " --stdin=SOUBOR číst SOUBOR ze standardního vstupu\n" " --print-anyway* tisknout i binární data\n" " -Z, --delegate* předat soubory ke zpracování jiné aplikaci\n" " --toc[=TEXT] vygenerovat obsah\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Pokud je zapnuto předávání úloh, pak a2ps může pro zpracování souborů,\n" "které nemají být vytištěny v přímém formátu (např. HTML, PostScript či " "PDF),\n" "použít jiné aplikace.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=STYL] zapnout tisk stylů (nastavit na STYL)\n" " --highlight-level=ÚROVEŇ nastavit ÚROVEŇ zvýrazňování při tisku " "stylů\n" " ÚROVEŇ může být none, normal nebo heavy\n" " -g to stejné jako --highlight-level=heavy\n" " --strip-level=ÚROVEŇ ÚROVEŇ ořezávání komentářů\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=SOUBOR výstup do SOUBORu, pokud je SOUBOR „-“, " "pak\n" " na standardní výstup\n" " --version-control=ZPŮSOB nastaví ZPŮSOB zálohování\n" " --suffix=PŘÍPONA nastaví příponu záložních kopií na PŘÍPONA\n" " -P, --printer=NÁZEV výstup na tiskárnu NÁZEV\n" " -d výstup na výchozí tiskárnu\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=SOUBOR vložit SOUBOR.pro jako postscriptový " "prolog\n" " --ppd[=KLÍČ] automatická volba PPD nebo nastavit na " "KLÍČ\n" " -n, --copies=POČET vytisknout POČET kopií každé stránky\n" " -s, --sides=REŽIM počet stran papíru („1“ nebo „simplex“,\n" " „2“ nebo „duplex“, „tumble“)\n" " -S, --setpagedevice=K[:V] poslat na výstup nastavení stránkového\n" " zařízení\n" " --statusdict=K[:[:]V] poslat na výstup nastavení stavového " "slovníku\n" " -k, --page-prefeed zapnout průběžný posun stránky\n" " -K, --no-page-prefeed vypnout průběžný posun stránky\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Standardně je a2ps vyladěn tak, aby udělal přesně to, co chcete. Obsah " "složky\n" "„src“ spolu s obsahem za pomoci stylů vytisknete na tiskárně „lw“ pomocí:\n" "\n" " a2ps -P lw --toc src/*\n" "\n" "Soubory „sample.ps“ a „sample.html“ zpracujete a výsledek zobrazíte pomocí:\n" "\n" " a2ps -P display sample.ps sample.html\n" "\n" "Poštovní schránku zpracujete pomocí:\n" "\n" " a2ps -=mail -4 mailbox\n" "\n" "Knihu na výchozí tiskárně s oboustranným tiskem vytisknete pomocí:\n" "\n" " a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Obsah" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "nelze zpracovat „%s“, protože vyžaduje a2ps verze %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "neočekávaný znak „%c“" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "příliš mnoho vložených souborů" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "pro „%s“ není definován žádný klíč" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "nelze najít soubor „%s“" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automatická volba stylů vypnuta" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "chyba při běhu programu file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "regulární výraz „%s“ nelze zkompilovat: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Připravené stylopisy" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "stylopis „%s“ nelze najít: použije se prostý styl" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "neplatné číslo verze „%s“" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "mezera (např. „ “)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "osmičkově (např. „\\001“ atd.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "šestnáctkově (např. „\\x0a“ atd.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "kurzor (např. „^C“, „M-^C“ atd.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (např. „C-c“, „M-C-c“ atd.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "otazník (např. „?“)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Dynamické pole „%s“:\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tnačteno: %zu/%zu (%2.1f %%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\tpůvodní velikost: %zu, zvětšení: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Dynamický řetězec:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "příliš mnoho skloněných fontů: „%s“" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "neplatný přepínač „%s“" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Připravená kódování" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "neúplná znalost vzhledu" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "nelze zavřít složku „%s“" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "neplatný argument „%s“ pro přepínač „%s“" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Platnými argumenty jsou celá čísla n, pro něž platí: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Platnými argumenty jsou reálná čísla f, pro něž platí: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "neznámé kódování „%s“" #: liba2ps/madir.c:51 msgid "rows first" msgstr "nejdříve řádky" #: liba2ps/madir.c:54 msgid "columns first" msgstr "nejdříve sloupce" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "neznámé médium „%s“" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Připravená média" #: liba2ps/media.c:189 msgid "Name" msgstr "Název" #: liba2ps/media.c:190 msgid "dimensions" msgstr "rozměry" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Připravené proměnné" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: chybí „%c“ pro řídící znak %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Vytiskl %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Vytiskl %s z %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "nelze určit současnou pracovní složku" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: příliš dlouhý argument pro řídící znak %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%d. %m. %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %d. %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: pro „%s“ není řídící znak „%c“ (%d) definován" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Stránka %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Stránka %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: neplatný oddělovač „%s%c“ pro řídící znak „%s“" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: neplatný argument pro řídící znak %s%c" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Stránka %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "výstupní příkaz" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Více informací získáte příkazem „%s --help“.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "neplatný identifikátor proměnné „%s“" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "neplatný vzhled „%s“" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "„%s“ bez odpovídajícího „%s“" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Připravená písma" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Žádná.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Připravené popisy tiskáren PPD" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "nepovolený interval „%s“" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Výchozí tiskárna" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Neznámá tiskárna" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "žádný příkaz pro „%s“ (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "posláno na standardní výstup" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "posláno na výchozí tiskárnu" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "uloženo do souboru „%s“" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "posláno na tiskárnu „%s“" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Připravené výstupní cíle (tiskárny apod.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Připravené prology" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "písmo %f je příliš veliké" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "„%s“ je binární soubor, tisk ukončen" #: liba2ps/userdata.c:104 msgid "user" msgstr "uživatel" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Neznámý uživatel" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "neznámá uživatelsky definovaná zkratka „%s“" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Připravené uživatelsky definované zkratky" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "není volná paměť" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "soubor „%s“ nelze přejmenovat na „%s“" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "soubor „%s“ obnoven" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright © 1999−2017 Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "jakýkoliv typ" # / #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Novinky, aktualizace a dokumentace: http://www.inf.enst.fr/~demaille/" #~ "a2ps/ (v angličtině)\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Chyby v programu hlaste na <bug-a2ps@gnu.org> (pouze anglicky).\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright © 1988 – 93 Miguel Santana\n" #~ "Copyright © 1995 – 99 Akim Demaille, Miguel Santana\n" #~ "Copyright © 2007 – Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "neznámé kódování „%s“, ignorováno" #~ msgid "Written by %s.\n" #~ msgstr "Napsal %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Toto je svobodný software. Podmínky kopírování a rozšiřování naleznete " #~ "ve\n" #~ "zdrojových textech. Tento program je BEZ JAKÉKOLIV ZÁRUKY; a to i bez\n" #~ "záruky PRODEJNOSTI nebo VHODNOSTI PRO NĚJAKÝ KONKRÉTNÍ ÚČEL.\n" #~ msgid "write error" #~ msgstr "chyba zápisu" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "neplatná definice pro tiskárnu „%s“: %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "zastaralá volba „%s“. Ignorováno." #~ msgid "Page %d/%d" #~ msgstr "Stránka %d/%d" #~ msgid "`" #~ msgstr "„" #~ msgid "'" #~ msgstr "“" #~ msgid "invalid argument %s for `%s'" #~ msgstr "neplatný argument „%s“ pro přepínač „%s“" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "nejednoznačný argument „%s“ pro přepínač „%s“" #~ msgid "Valid arguments are:" #~ msgstr "Platné argumenty jsou:" #~ msgid "Unknown system error" #~ msgstr "Neznámá systémová chyba" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: přepínač „%s“ není jednoznačný\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: přepínač „--%s“ musí být zadán bez argumentu\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: přepínač „%c%s“ musí být zadán bez argumentu\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: přepínač „%s“ vyžaduje argument\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: neznámý přepínač „--%s“\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: neznámý přepínač „%c%s“\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: nedovolený přepínač -- %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: neplatný přepínač -- %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: přepínač vyžaduje argument -- %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: přepínač „-W %s“ není jednoznačný\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: přepínač „-W %s“ musí být zadán bez argumentu\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/da.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000025003�14445132165�011055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�� ���9��]���D�������!���{�������]��������������������*���(��3���S��%�����/�����%�����)��������-�����M�����^�����~������������ �������������������� �����/�����+���"�����N�����^�����u����������������� ������������������������������ ��� ��+��� ����< ��'���V!�����~!�� ���!��+���!��)���!�����!�����"�����"��"���"�����"��#���"�����#�����/#�����M#��%���k#�����#�����#�����#�����#��+���#�����)$�����E$��/���_$��3���$��+���$�����$�����%��2���(%��!���[%�����}%�����%�� ���%�� ���%�����%�����%�����%�����&�����+&�����I&�����Q&��%���p&�����&�����&�����&�����&��#���&�����!'�����>'�����R'�����n'�����'�����'�����'�����'�����'��%���'�����'�����(�� ���(�����(�����(�����(�����(�� ���(�����(�����)�����)�����1)�����J)��!���`)�� ���)�����)�����)�����)�����)�����)�����)������*�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps-4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2008-08-01 15:15+0200 Last-Translator: Keld Simonsen <keld@dkuug.dk> Language-Team: Danish <dansk@dansk-gruppen.dk> Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: KBabel 1.11.4 Plural-Forms: nplurals=2; plural=(n != 1); � Ingen. � destination = %s versionskontrol = %s sikkerhedskopi-endelse = %s � toplinje = %s venstre bundlinje = %s bundlinje = %s hjre bundlinje = %s venstre titel = %s centreret titel = %s hjre titel = %s tekstbaggrund = %s � formating af sider = %s � "statusdict" definitioner =� stil-ark = %s fremhvelses-niveau = %s strip-niveau = %d � beskr linjer = %s fortolk = %s linjeslut = %s indkodning = %s dokumenttitel = %s prolog = %s print alligevel = %s delegering = %s �%A den %e. %B %Y�%s, delegeret til %s�%s: ugyldigt argument for %s%c undvigetegn�%s: ugyldigt skilletegn '%s%c' for '%s' undvigetegn�%s: mangler '%c' for %s%c undvigetegn�%s: er et for langt argument til %s undvigetegn�%s: ukendt '%s' undvigetegn '%c' (%d)�Applikationer konfigureret for delegering�Konfigurationsstatus for %s %s �Standard-skriver�Delegering '%s', fra %s til %s �Global: �Overskrifter: �Overskrifter: �Inddata: �Interne detaljer: �Kendte kodninger�Kendte skrifttyper�Kendt medie�Kendte destinationer for uddata (skrivere osv.)�Kendte PostScript skriverbeskrivelser (PPD)�Kendte prologer�Kendte stilark (sprog)�Kendte brugertilvalg�Kendte variabler�Navn�Uddata: �PostScript: �Pn udskrift: �Udskrevet af %s�Udskrevet af %s fra %s�Ark: �Indholdsfortegnelse�Opgaver: �TEKSTerne kan bruge specielle undvigetegn. �Flagene -1.. -9 pvirker flere primitive parametre til at opstte fordefinerede formater med 80 tegn. Derfor spiller ordningen en rolle: "-R -f40 -2" er det samme som "-2". Fr at ndre formatet bruger du "-2Rf40" eller brug flere primitive flag ("--columns", "--font-size" osv.). �Brug '%s --help' for mere information. �Ukendt skriver�Ukendt bruger�Gyldige argumenter er kommatal f, hvor: %s �Gyldige argumenter er heltal n, hvor: %s �Virtuelle sider: �Nr delegeringer er aktiveret kan a2ps bruge andre programmer til at behandle filer, som ikke br udskrives som r information, fx HTML, PostScript og PDF. �[%s (%s): 1 side p 1 ark] �[%s (%s): mislykkedes. ignoreret] �[%s (binr): ignoreret] �[%s (ikke udskrivelig): ignoreret] �[1 linje ombrudt] �[Ikke nogen data produceret] �[Totalt: 1 side p 1 ark] %s �'%s' er en binrfil, udskrift afbrudt�'%s' er et katalog�'%s' uden tilsvarende '%s'�automatisk stil-valg annulleret�kan ikke lukke kataloget '%s'�kan ikke tolke det regulre udtryk '%s': %s�kan ikke oprette filen '%s'�kan ikke finde filen '%s'�kan ikke finde stilark '%s': bruger simpel stil�kan ikke finde ud hvilket katalog du str i ('pwd')�kan ikke indhente information om filen '%s'�kan ikke oprette et rr p '%s'�kan ikke bne filen '%s'�kan ikke behandle '%s' som behver a2ps version %s�kan ikke omdbe fil '%s' til '%s'�hat (fx '^C', 'M-^C' osv.)�kolonner frst�dimensioner�hver linje�emacs (fx 'C-c', 'M-C-c' etc.)�Linjeslut inden i en %s�linieslut i strengkonstant�skrifttypen %f er for stor�skriftstrrelse er %g punkter�kraftig�heksadecimalt (fx '\x0a' osv.)�ufuldstndigt kendskab til skriftsnit�ugyldigt argument '%s' for '%s'�ugyldigt skriftsnit '%s'�ugyldigt interval: '%s'�ugyldigt tilvalg '%s'�ugyldig variabel-identifikator '%s'�ugyldigt versionsnummer '%s'�liggende (landskab)�mangler argument efter '%s'�tag aldrig sikkerhedskopi�nej�ingen kommando for '%s' (%s%s)�ingen ngle defineret for '%s'�ingen�normal�nummereret sikkerhedskopi af hver fil�nummereret sikkerhedskopi af filer som allerede er nummereret, og simpel sikkerhedskopi af de vrige filer�oktalt (fx '\001' osv.)�udkommando�enkel�stende (portrt)�sprgsmlstegn ('?')�reddede filen '%s'�rkker frst�gemt til fil '%s'�valgt automatisk�sent til standard skriver�sendt til skriveren '%s'�sendt til standard ud�simpel sikkerhedskopi af hver fil�blank (' ')�For mange 'includes'�uventet tegn '%c'�ukendt tegnkodning '%s'�ukendt medie '%s'�ukendt brugertilvalg '%s'�bruger�ja������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/da.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000125140�14445132164�010713� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of a2ps-4.14.po to Danish # Danish Messages for a2ps # This file is distributed under the same license as the a2ps package. # Copyright (C) 2001, 2008 Free Software Foundation, Inc. # Reviewed 2001-09-15 byrial@image.dk # # Keld Simonsen <keld@dkuug.dk>, 2001, 2008. msgid "" msgstr "" "Project-Id-Version: a2ps-4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2008-08-01 15:15+0200\n" "Last-Translator: Keld Simonsen <keld@dkuug.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "mangler argument efter '%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "kan ikke oprette filen '%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "kan ikke oprette et rr p '%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegering '%s', fra %s til %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Applikationer konfigureret for delegering" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "'%s' er et katalog" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "kan ikke bne filen '%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "kan ikke indhente information om filen '%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 side p 1 ark]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d sider p 1 ark]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d sider p %d ark]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totalt: 1 side p 1 ark] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Totalt: %d sider p 1 ark] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Totalt: %d sider p %d ark] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 linje ombrudt]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d linjer ombrudt]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Ikke nogen data produceret]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegeret til %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): mislykkedes. ignoreret]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (ikke udskrivelig): ignoreret]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binr): ignoreret]\n" #: src/generate.c:350 msgid "plain" msgstr "enkel" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "linieslut i strengkonstant" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "Linjeslut inden i en %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "modtog signal %d: %s" #: src/main.c:235 msgid "heavy" msgstr "kraftig" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "ingen" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ja" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "nej" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Konfigurationsstatus for %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Ark:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " medie = %s%s, %s\n" " sidelayout = %d x %d %s\n" " kanter = %s\n" " filafgrnsning = %s\n" " indvendig marg = %d\n" #: src/main.c:339 msgid "portrait" msgstr "stende (portrt)" #: src/main.c:339 msgid "landscape" msgstr "liggende (landskab)" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d tegn per linje" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d linjer per side" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "skriftstrrelse er %g punkter" #: src/main.c:363 msgid "each line" msgstr "hver linje" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "hver %d linjer" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtuelle sider:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " antal linjer = %s\n" " format = %s\n" " tabulatorstrrelse = %d\n" " format for ikke-skrivbare tegn = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Overskrifter:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " toplinje = %s\n" " venstre bundlinje = %s\n" " bundlinje = %s\n" " hjre bundlinje = %s\n" " venstre titel = %s\n" " centreret titel = %s\n" " hjre titel = %s\n" " tekstbaggrund = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Inddata:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " beskr linjer = %s\n" " fortolk = %s\n" " linjeslut = %s\n" " indkodning = %s\n" " dokumenttitel = %s\n" " prolog = %s\n" " print alligevel = %s\n" " delegering = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "valgt automatisk" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Pn udskrift:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " stil-ark = %s\n" " fremhvelses-niveau = %s\n" " strip-niveau = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "tag aldrig sikkerhedskopi" #: src/main.c:456 msgid "simple backups of every file" msgstr "simpel sikkerhedskopi af hver fil" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "nummereret sikkerhedskopi af filer som allerede er nummereret,\n" " og simpel sikkerhedskopi af de vrige filer" #: src/main.c:466 msgid "numbered backups of every file" msgstr "nummereret sikkerhedskopi af hver fil" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Uddata:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destination = %s\n" " versionskontrol = %s\n" " sikkerhedskopi-endelse = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magisk tal = %s\n" " skriverbeskrivelse (PPD) = %s\n" " standard PPD = %s\n" " sidemrkningsformat = %s\n" " antal kopier = %d\n" " sider per ark = %s\n" " \"page device\" definitioner = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " \"statusdict\" definitioner =" #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " formating af sider = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Interne detaljer:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " snakkesaligheds-niveau = %d\n" " fil-kommando = %s\n" " sti til bibliotek = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Brug: %s [TILVALG]... FILER...\n" "\n" "Konvertr FILER eller standard ind til PostScript. Som standard sendes " "uddata\n" "til standard-printeren. En uddatafil kan angives med -o\n" "\n" "Obligatoriske argumenter til lange tilvalg er ogs obligatoriske for korte.\n" "Lange tilvalg mrket med * skal have \"yes\" eller \"no\" som argument,\n" "tilsvarende korte tilvalg betyder 'yes'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Opgaver:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version vis version\n" " --help vis denne hjlpetekst\n" " --guess vis gt for filtyper af FILER\n" " --which rapportr den fulde sti til biblioteksfiler med navnet " "FILER\n" " --glob rapporter den fulde sti til biblioteksfiler som svarer " "til FILER\n" " --list=defaults vis standardindstillinger og -parametre\n" " --list=EMNE vis detaljeret liste om EMNE (delegations, encodings,\n" " features, variables, media, ppd, printers, prologues,\n" " style-sheets, user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Afslut med succes efter udfrsel af opgaven. Detaljerede lister kan\n" "indeholde yderligere hjlp om srlige faciliteter.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent vr rigtig stille\n" " -v, --verbose[=NIVEAU] snakkesalig, eller snakkesalighed til NIVEAU\n" " -=, --user-option=TILVALG brug den brugerdefinerede forkortelse TILVALG\n" " --debug aktivr fejlfindings-funktioner\n" " --define=KEY[:VRDI] deaktivr variablen KEY eller st den til " "VRDI\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAVN anvend udmedie NAVN\n" " -r, --landscape skriv p liggende ark\n" " -R, --portrait skriv p stende ark\n" " --columns=ANT antal spalter per ark\n" " --rows=ANT antal linjer per ark\n" " --major=RETNING primr retning at fylde i (RETNING=rows\n" " eller columns for linjer respektive spalter)\n" " -1, -2, ..., -9 fordefinerede tegnstrrelser og former for\n" " 1, .., 9 virtuelle sider\n" " -A, --file-align=TILSTAND justr separate filer iflge TILSTAND\n" " (fill, rank, page, sheet eller et tal)\n" " -j, --borders* skriv kanter omkring spalter\n" " --margin[=NUM] definr en indre margen af strrelse NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Flagene -1.. -9 pvirker flere primitive parametre til at opstte\n" "fordefinerede formater med 80 tegn. Derfor spiller ordningen en rolle:\n" "\"-R -f40 -2\" er det samme som \"-2\". Fr at ndre formatet bruger\n" "du \"-2Rf40\" eller brug flere primitive flag (\"--columns\",\n" "\"--font-size\" osv.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM skriv linjenummer foran hver NUM-te linje\n" " -C en anden mde at skrive --line-numbers=5\n" " -f, --font-size=STRRELSE brug tegnstrrelse STRRELSE (flydende tal)\n" " -L, --lines-per-page==NUM angiv antal linjer p en side (tegnstrrelsen\n" " tilpasses)\n" " --l, --chars-per-line=NUM angiv hvordan mange spalter som skrives ud per " "side\n" " (tegnstrrelsen tilpasses)\n" " -m, --catman behandl filen som en man-fil (samme som -L66)\n" " -T, --tab-size=NUM st tabulatorafstanden til NUM\n" " --non-printable-format=FMT angiv hvordan ikke-skrivbare tegn skal skrives\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Overskrifter:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header ingen sideoverskrift overhovedet\n" " -b, --header[=TEKST] angiv sideoverskrift\n" " -u, --underlay[=TEKST] skriv TEKST som baggrund p hver side\n" " --center-title[=TEKST] angiv titel p hver side\n" " --left-title[=TEKST] angiv venstrestillet titel\n" " --right-title[=TEKST] angiv hjrestillet titel\n" " --left-footer[=TEKST] st sidefod til TEKST p hver ark.\n" " --footer[=TEKST]\n" " --right-footer[=TEKST]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEKSTerne kan bruge specielle undvigetegn.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=OMRDE] angiv sider at udskrive\n" " -c, --truncate-lines* afkort lange linjer\n" " -i, --interpret fortolk tegn for tab, tilbage og sideskift\n" " --end-of-line=TYPE angiv type af linjeslut (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAVN brug tegnkodning NAVN for inddata\n" " -t, --title=NAVN angiv titel p udskriftsjobbet\n" " --stdin=NAVN angiv navn p standard ind\n" " --print-anyway* tving a2ps til at udskrive binre filer\n" " -Z, --delegate* delegr filer til et andet program\n" " --toc=TEXT lav indholdsfortegnelse\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Nr delegeringer er aktiveret kan a2ps bruge andre programmer til at " "behandle\n" "filer, som ikke br udskrives som r information, fx HTML, PostScript og " "PDF.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=SPROG] aktivr pn udskrift (st stil til SPROG)\n" " --highlight-level=NIVEAU st niveauet p fremhvelse ved pne\n" " udskrifter. NIVEAU kan vre \"none\", " "\"normal\"\n" " eller \"heavy\"\n" " -g samme som --highlight-level=heavy\n" " --strip-level=NIVEAU niveau p fjernelse af kommentarer\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FIL send uddata til filen FIL. Hvis FIL er \"-\",\n" " sendes uddata til standard ud\n" " --version-control=ORD vlg anden versionshndtering end den normale\n" " --suffix=ORD vlg andet suffix for sikkerhedskopier end det\n" " normale\n" " -P, --printer=NAVN send uddata til printeren NAVN\n" " -d send uddata til standardprinteren\n" " (dette er den normale opfrsel)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FIL medtag FIL.pro som PostScript-prolog\n" " --ppd[=NGLE] automatisk valg af PPD, eller brug NGLE\n" " -n, --copies=ANTAL skriv ANTAL kopier af hver side\n" " -s, --sides=TILSTAND st duplex til TILSTAND (\"1\" eller " "\"simplex\",\n" " \"2\" eller \"duplex\", \"tumble\")\n" " -S, --setpagedevice=N[:V] udskriv en page device-definition\n" " --statusdict=N[:[:]V] udskriv en statusdict-definition\n" " -k, --page-prefeed aktivr forhndsfdning af papir\n" " -K, --no-page-prefeed deaktivr forhndsfdning af papir\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "a2ps er lavet s det normalt gr hvad du nsker, s stol p det.\n" "For at udskrive indholdet i kataloget \"src\" pnt med \n" "indholdsfortegnelse og sende resultatet til printeren \"lw\",\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "For at bearbejde filerne \"sample.ps\" og \"sample.html\" og vise\n" "resultatet,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "For at bearbejde en brevkasse med fire sider per ark,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "For at udskrive som en bog p standard-printeren, som klarer dobbeltsidig\n" "udskrift,\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Indholdsfortegnelse" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "kan ikke behandle '%s' som behver a2ps version %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "uventet tegn '%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "For mange 'includes'" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "ingen ngle defineret for '%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "kan ikke finde filen '%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automatisk stil-valg annulleret" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "kan ikke tolke det regulre udtryk '%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Kendte stilark (sprog)" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "kan ikke finde stilark '%s': bruger simpel stil" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "ugyldigt versionsnummer '%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "blank (' ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "oktalt (fx '\\001' osv.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "heksadecimalt (fx '\\x0a' osv.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "hat (fx '^C', 'M-^C' osv.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (fx 'C-c', 'M-C-c' etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "sprgsmlstegn ('?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "ugyldigt tilvalg '%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Kendte kodninger" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "ufuldstndigt kendskab til skriftsnit" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "kan ikke lukke kataloget '%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "ugyldigt argument '%s' for '%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Gyldige argumenter er heltal n, hvor: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Gyldige argumenter er kommatal f, hvor: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "ukendt tegnkodning '%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "rkker frst" #: liba2ps/madir.c:54 msgid "columns first" msgstr "kolonner frst" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "ukendt medie '%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Kendt medie" #: liba2ps/media.c:189 msgid "Name" msgstr "Navn" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensioner" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Kendte variabler" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: mangler '%c' for %s%c undvigetegn" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Udskrevet af %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Udskrevet af %s fra %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "kan ikke finde ud hvilket katalog du str i ('pwd')" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: er et for langt argument til %s undvigetegn" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%Y-%m-%d" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A den %e. %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: ukendt '%s' undvigetegn '%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Side %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Side %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: ugyldigt skilletegn '%s%c' for '%s' undvigetegn" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: ugyldigt argument for %s%c undvigetegn" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Side %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "udkommando" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Brug '%s --help' for mere information.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "ugyldig variabel-identifikator '%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "ugyldigt skriftsnit '%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "'%s' uden tilsvarende '%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Kendte skrifttyper" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Ingen.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Kendte PostScript skriverbeskrivelser (PPD)" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "ugyldigt interval: '%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Standard-skriver" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Ukendt skriver" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "ingen kommando for '%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "sendt til standard ud" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "sent til standard skriver" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "gemt til fil '%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "sendt til skriveren '%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Kendte destinationer for uddata (skrivere osv.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Kendte prologer" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "skrifttypen %f er for stor" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "'%s' er en binrfil, udskrift afbrudt" #: liba2ps/userdata.c:104 msgid "user" msgstr "bruger" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Ukendt bruger" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "ukendt brugertilvalg '%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Kendte brugertilvalg" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Al hukommelse opbrugt" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "kan ikke omdbe fil '%s' til '%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "reddede filen '%s'" #~ msgid "any type" #~ msgstr "alle typer" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Nyheder, opdateringer og dokumentation: besg http://www.gnu.org/" #~ "software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Rapportr fejl til <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Ophavsret (c) 1988-1993 Miguel Santana\n" #~ "Ophavsret (c) 1995-2000 Akim Demaille og Miguel Santana Copyright (c) " #~ "2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "ukendt tegnkodning: '%s', ignoreret" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Ophavsret (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Skrevet af %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Dette program er frit programmel; se kildeteksten for " #~ "kopieringsbetingelser.\n" #~ "Der er IKKE NOGEN GARANTI; end ikke for SALGBARHED eller ANVENDELIGHED\n" #~ "TIL ET GIVET FORML.\n" #~ msgid "write error" #~ msgstr "skrivefejl" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "ugyldig printerdefinition '%s': %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "Ignorerer indgangen '%s' fordi den er forldet" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Side %d/%d" #~ msgid "`" #~ msgstr "'" #~ msgid "'" #~ msgstr "'" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "ugyldigt argument %s for '%s'" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "flertydigt argument %s for '%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Gyldige argumenter er:" #~ msgid "Unknown system error" #~ msgstr "Ukendt systemfejl" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: tilvalget '%s' er ikke entydigt\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: tilvalget '--%s' tillader ikke argumenter\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: tilvalget '%c%s' tillader ikke argument\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: tilvalget '%s' skal have et argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: ukendt tilvalg '--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: ukendt tilvalg '%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ugyldigt tilvalg -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: ugyldigt tilvalg -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: tilvalget skal have et argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: tilvalget '-W %s' er ikke entydigt\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: tilvalget '-W %s' tillader ikke argument\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/de.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000063430�14445132165�011067� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�����7��(���7�� ���&8��l��18����:��[��%=����?��p��VA��.��B����E��x��H��b��J��N���fK�����K�����L�����M�����N�����N�����N��@����O��!��AO��_���cP�� ���P�����P�����P��)���P��<���Q��'���YQ��%���Q��6���Q�����Q�����Q�����R��4���R����R�����GU�����gU��1���wU�����U�����U�����U�� ���U�� ���U�� ���V�� ��� V�����V�����.V�����AV��&���XV��*���V�����V�����V�����V�����V�����W�� ��� W�� ���W�� ���W�� ���+W�� ���9W�����FW�����]W�����mW�� ���W�����W�� ���W��8���W��K��W��/���2Y�����bY�����vY����Y��-���{[��,���[�����[�����[��(���\��&���]��#���)]��%���M]�����s]��'���]�����]�����]�����]��-���]��+���)^��(���U^��3���~^�����^��!���^��'���^��+���_��7���E_��)���}_��!���_��S���_��1���`��:���O`��$���`��"���`��9���`��1��� a��&���>a�����ea�� ���ta�����a�� ���a��$���a�����a�����a��"���a�����b�����/b�����Gb�����Pb��0���nb��+���b�����b�����b�����c��(���#c��"���Lc�� ���oc�����zc�� ���c�����c�����c��"���c��'���c�� ���d�����'d��*���.d��t���Yd�����d�� ���d�� ���d�� ���e����� e�����(e��!���?e�� ���ae��!���oe�����e��&���e�����e��!���e��%���f�����7f�����Rf��%���df�����f�� ���f�����f��"���f����� g�����g�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-01-28 08:12+0100 Last-Translator: Roland Illig <roland.illig@gmx.de> Language-Team: German <translation-team-de@lists.sourceforge.net> Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 3.2.2 � Laden: %zu/%zu (%2.1f%%) � Originalgröße: %zu, Wachstum: %s %zu � Keine. � --line-numbers=NUM Vor jeder NUMten Zeile die Zeilennummer ausgeben -C Wie „--line-numbers=5“ -f, --fontsize=GRÖSSE Schriftgröße GRÖSSE für den Text benutzen -L, --lines-per-page=NUM Anzahl Zeilen pro Seite -l, --chars-per-line=NUM Anzahl Spalten pro Seite -m, --catman Datei als Hilfe-Seite (manpage) behandeln, entspricht -L66 -T, --tabsize=NUM Tabulatorabstand auf NUM einstellen --non-printable-format=FMT Ausgabe für nicht-druckbare Zeichen festlegen � --prologue=DATEI DATEI.pro als PostScript-Prolog verwenden --ppd[=SCHLÜSSEL] PPD automatisch auswählen oder auf SCHLÜSSEL festlegen -n, --copies=NUM NUM Kopien von jeder Seite drucken -s, --sides=NUM Duplex-Modus („1“ oder „simplex“, „2“ oder „duplex“, „tumble“) -S, --setpagedevice=K[:V] Eine „page device“-Definition an die Ausgabe übergeben --statusdict=K[:[:]V] Eine „statusdict“-Defintion an die Ausgabe übergeben -k, --page-prefeed Seitenpositionierung an -K, --no-page-prefeed Seitenpositionierung aus � --version Versionsnummer ausgeben --help Diese Hilfe anzeigen und beenden --guess Geratenen Dateityp der DATEIEN ausgeben --which Pfad der Bibliotheks-Dateien mit den Namen DATEIEN ausgeben --glob Pfad der Bibliotheks-Dateien, die zu DATEIEN passen, ausgeben --list=defaults Standardeinstellungen und -parameter ausgeben --list=THEMA Liste zu THEMA (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) anzeigen � -B, --no-header Keine Kopfzeilen -b, --header[=TEXT] Kopfzeilen -u, --underlay[=TEXT] Wasserzeichen auf jede Seite drucken --center-title[=TEXT] Zentrierten Titel ausgeben --left-title[=TEXT] Linken Titel ausgeben --right-title[=TEXT] Rechten Titel ausgeben --left-footer[=TEXT] Linke Fußzeile ausgeben --footer[=TEXT] Fußzeile ausgeben --right-footer[=TEXT] Rechte Fußzeile ausgeben � -E, --pretty-print[=SPRACHE] Formatierte Ausgabe einschalten (Format für SPRACHE benutzen) --highlight-level=LEVEL Grad der Hervorhebungen im Text -g, --graphic-symbols* Graphische Symbole ausgeben --strip-level=NUM Grad der Kommentar-Entfernung (0 = nichts, 3 = alle) � -M, --medium=NAME Ausgabeformat NAME benutzen -r, --landscape Im Querformat (landscape) drucken -R, --portrait In Hochformat (portrait) drucken --columns=NUM Anzahl der Spalten pro Blatt (NUM > 0) --rows=NUM Anzahl der Zeilen pro Blatt (NUM > 0) --major=DIRECTION Zuerst Reihen (DIRECTIONS=rows) oder Spalten (DIRECTIONS=columns) füllen -1, -2, ..., -9 Vordefinierte Schriften und Layouts für 1 bis 9 virtuelle Seiten -A, --file-align=MODE Mehrere Dateien gemäß MODE ausrichten („fill“, „rank“, „page“, „sheet“, order eine Zahl) -j, --borders* Rahmen um die Spalten zeichnen --margin[=NUM] Inneren Rand der Breite NUM festlegen � -a, --pages[=BEREICH] Zu druckende Seiten auswählen -c, --truncate-lines* Lange Zeilen abschneiden -i, --interpret Tabulator, Backspace und Formfeed interpretieren --end-of-line=ART Zeilenende-Zeichen festlegen (ART kann sein: r, n, nr, rn, any) -X, --encoding=NAME Zeichensatz NAME benutzen -t, --title=NAME Name des Druckauftrags festlegen --stdin=NAME Name der Standardeingabe (stdin) festlegen --print-anyway* Drucken von binären Zeichen erzwingen -Z, --delegate* Datei zu einer anderen Anwendung weiterleiten --toc[=TEXT] Inhaltsverzeichnis erzeugen � -o, --output=DATEI Ausgabe in DATEI. Wenn DATEI „-“ ist, auf Standardausgabe drucken --version-control=WORT Versionskontrolle festlegen --suffix=ENDUNG SUFFIX als Backup-Endung benutzen -P, --printer=NAME Ausgabe zum Drucker NAME -d Ausgabe zum Standarddrucker (Standard) � -q, --quiet, --silent Still arbeiten -v, --verbose[=GRAD] Gesprächigkeit anschalten oder Grad festlegen -=, --user-option=OPTION Angegebene Benutzeroption verwenden --debug Fehlersuche-Features einschalten -D, --define=VAR[:WERT] Variable VAR löschen oder auf den Wert WERT festlegen � Ziel = %s Versions-Kontrolle = %s Backup-Dateiendung = %s � Kopfzeile = %s Linke Fußzeile = %s Fußzeile = %s Rechte Fußzeile = %s Linker Titel = %s Mittlerer Titel = %s Rechter Titel = %s Wasserzeichen = %s � Kennung = %s Druckerbeschreibung (PPD) = %s Standard PPD = %s Format der Seiten-Titel = %s Anzahl Kopien = %u Seiten pro Blatt = %s Seiten-Definitionen = � Papierformat = %s, %s Seitenlayout = %zu x %zu, %s Rahmen = %s Dateiausrichtung = %s Innenrand = %u � Zeilen nummerieren = %s Format = %s Tabulatorabstand = %u Format für nicht druckbare Zeichen = %s � Seitenvorschub = %s � „statusdict“-Angaben = � Formatvorlage = %s Hervorhebung = %s Kürzungsgrad = %d � Zeilen abschneiden = %s Sonderzeichen interpretieren = %s Zeilenende = %s Zeichensatz = %s Dokumenten-Titel = %s Prolog = %s Binäre Daten drucken = %s Weiterleiten = %s � Gesprächigkeitsgrad = %u Datei-Befehl = %s Bibliotheken-Verzeichnis = �%A, %d.%m.%Y�%d.%m.%Y�%s, weitergeleitet an %s�%s: Ungültiges Argument für %s%c-Escape�%s: Ungültiges Trennzeichen „%s%c“ für „%s“-Escape�%s: Fehlendes „%c“ für %s%c-Escape�%s: Zu langes Argument für %s-Escape�%s: Unbekanntes „%s“ Escape-Zeichen „%c“ (%d).�%u Zeichen pro Zeile�%u Zeilen pro Seite�Nachdem die Aufgabe erfüllt wurde, erfolgreich beenden. Ausführliche Listen können zusätzliche Hilfe zu bestimmten Features bieten. �Anwendungen, die als Weiterleitung konfiguriert sind�Standardmäßig ist a2ps darauf ausgelegt, das zu tun, was Sie erwarten; vertrauen Sie a2ps. Um den Inhalt des Verzeichnisses „src“ zu drucken, ein Inhaltsverzeichnis zu generieren und die Ausgabe auf dem Drucker „lw“ auszugeben: a2ps -P lw --toc src/* Um die Dateien „beispiel.ps“ und „beispiel.html“ zu verarbeiten und die Ergebnisse darzustellen: a2ps -P display beispiel.ps beispiel.html Um ein Email-Postfach (mailbox) mit vier Seiten pro Blatt Papier zu verarbeiten: a2ps -=mail -4 mailbox Um eine Datei als Büchlein auf dem duplexfähigen Standarddrucker zu drucken: a2ps -=book paper.dvi.gz -d�Konfigurationsstatus von %s %s �Standarddrucker�Weiterleitung „%s“, von „%s“ an „%s“ �Dynamisches Array „%s“: �Dynamische Zeichenkette: �Global: �Kopfzeilen: �Kopfzeilen: �Eingabe: �Interna: �Bekannte Zeichensätze�Bekannte Schriften�Bekannte Papierformate�Bekannte Ausgabegeräte (Drucker usw.)�Bekannte PostScript-Drucker-Beschreibungen�Bekannte Prologe�Bekannte Vorlagen (Sprachen)�Bekannte Benutzeroptionen�Bekannte Variablen�Name�Ausgabe: �Seite %zu�Seite %zu/%c�Seite %zu/%zu�PostScript: �Formatiertes Drucken: �Gedruckt von %s�Gedruckt von %s auf %s�Blätter: �Inhaltsverzeichnis�Aufgaben: �Die TEXTe dürfen Steuerzeichen ($, %, etc.) enthalten. �Die Optionen -1 bis -9 verändern mehrere grundlegende Parameter, um vordefinierte Layouts mit 80 Spalten einzurichten. Daher ist die Reihenfolge wichtig: „-R -f40 -2“ ist äquivalent zu „-2“. Um das Layout zu ändern, geben Sie „-2Rf40“ an oder verwenden Sie lange Optionen („--columns“, „--font-size“ etc.). �„%s --help“ gibt Ihnen mehr Informationen. �Unbekannter Drucker�Unbekannter Benutzer�Aufruf: %s [OPTION]... [DATEI]... Konvertiere DATEIen oder die Standardeingabe in das PostScript-Format. Normalerweise wird die Ausgabe direkt an den Standarddrucker gesendet, sie kann aber auch mit „-o DATEI“ in eine Datei umgeleitet werden. Zwingend geforderte Argumente für lange Optionen sind für kurze Optionen ebenfalls erforderlich. Lange Optionen, die mit „*“ markiert sind, erfordern „yes“ oder „no“ als Argument; die entsprechende kurze Option steht für „yes“ �Gültige Argumente sind Reelle Zahlen mit %s �Gültige Argumente sind Ganze Zahlen mit %s �Virtuelle Seiten: �Wenn Delegieren (delegations) eingeschaltet sind, dann kann a2ps andere Anwendungen verwenden, um Dateien zu verarbeiten. Das ist sinnvoll, wenn der Inhalt erst formatiert werden sollte, wie beispielsweise für HTML, PostScript, PDF, etc. �[%s (%s): %zu Seiten auf %zu Blättern] �[%s (%s): %zu Seiten auf einem Blatt] �[%s (%s): 1 Seite auf einem Blatt] �[%s (%s): fehlgeschlagen. Ignoriert] �[%s (binär): ignoriert] �[„%s“ (nicht druckbar): ignoriert] �[%zu Zeilen umbrochen] �[1 Zeile umbrochen] �[Keine Ausgabe erzeugt] �[Insgesamt: %zu Seiten auf %zu Blättern] %s �[Insgesamt: %zu Seiten auf einem Blatt] %s �[Insgesamt: 1 Seite auf einem Blatt] %s �„%s“ ist eine Binär-Datei, Drucken abgebrochen�„%s“ ist ein Verzeichnis�„%s“ ohne passendes „%s“.�Automatische Format-Auswahl abgebrochen�Kann Verzeichnis „%s“ nicht schließen.�Kann regulären Ausdruck „%s“ nicht übersetzen: %s�Kann Ausgabedatei „%s“ nicht anlegen.�Kann Datei „%s“ nicht finden.�Kann automatisches Format „%s“ nicht finden, daher ist die Ausgabe unformatiert�Kann aktuelles Arbeitsverzeichnis nicht ermitteln�Kann keine Informationen über die Datei „%s“ bekommen�Kann Pipe auf „%s“ nicht öffnen�Kann Datei „%s“ nicht öffnen.�Kann „%s“ nicht bearbeiten, benötigt a2ps Version %s�Kann Datei „%s“ nicht umbenennen in „%s“.�Circumflex (z.B. „^C“, „M-^C“)�Spalten zuerst�Abmessungen�alle %u Zeilen�jede Zeile�Emacs (z.B., „C-c“, „M-C-c“)�Zeilenende in einem %s�Zeilenende in Stringkonstante�Fehler beim Ausführen von file(1)�Schrift %f ist zu groß�Schriftgröße ist %gpt�intensiv�Hexadezimal (z.B. „\x0a“)�Nicht genügend Information über die Schriftart�Ungültiges Argument „%s“ für „%s“�Ungültige Schrift „%s“.�Ungültiges Intervall „%s“�Ungültige Option „%s“.�Ungültiger Variablenbezeichner „%s“�ungültige Versionsnummer „%s“�Querformat�Kein Speicher mehr�Fehlendes Argument für „%s“�Niemals backup-Dateien anlegen�nein�Kein Kommando für „%s“ (%s%s)�Kein Schlüssel definiert für „%s“�gar nicht�normal�Nummerierte Backup-Dateien für jede Datei�Nummerierte Backup-Dateien für bereits numerierte Dateien, ansonsten einfaches Backup�Oktal (z.B. „\001“)�Ausgabebefehl�unformatiert�Hochformat�Fragezeichen (z.B. „?“)�Signal SIG%s empfangen�Datei „%s“ wiederhergestellt.�Zeilen zuerst�in die Datei „%s“ geschrieben�automatisch ausgewählt�zum voreingestellten Drucker geschickt�zum Drucker „%s“ geschickt�auf die Standardausgabe geschickt�Einfache Backup-Datei für jede Datei�Leerzeichen (z.B. „ “)�Zu viele includes�Zu viele geneigte Schriften: „%s“�Unerwartetes Zeichen „%c“�Unbekannter Zeichensatz „%s“�Papierformat „%s“ unbekannt�Unbekannte Benutzeroption „%s“�Benutzer�ja�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/de.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000111255�14445132164�010721� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# German messages for a2ps # Copyright (C) 2000 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Erwin Dieterich <bamse@gmx.de>, 2000. # Michael Wiedmann <mw@miwie.in-berlin.de> # Christian Kirsch <ck@held.mind.de> # Roland Illig <roland.illig@gmx.de>, 2008-2023. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-01-28 08:12+0100\n" "Last-Translator: Roland Illig <roland.illig@gmx.de>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 3.2.2\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "Fehlendes Argument für „%s“" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "Kann Ausgabedatei „%s“ nicht anlegen." #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "Kann Pipe auf „%s“ nicht öffnen" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Weiterleitung „%s“, von „%s“ an „%s“\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Anwendungen, die als Weiterleitung konfiguriert sind" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "„%s“ ist ein Verzeichnis" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "Kann Datei „%s“ nicht öffnen." #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "Kann keine Informationen über die Datei „%s“ bekommen" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 Seite auf einem Blatt]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu Seiten auf einem Blatt]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu Seiten auf %zu Blättern]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Insgesamt: 1 Seite auf einem Blatt] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Insgesamt: %zu Seiten auf einem Blatt] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Insgesamt: %zu Seiten auf %zu Blättern] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 Zeile umbrochen]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu Zeilen umbrochen]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Keine Ausgabe erzeugt]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, weitergeleitet an %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): fehlgeschlagen. Ignoriert]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[„%s“ (nicht druckbar): ignoriert]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binär): ignoriert]\n" # meaning unclear #: src/generate.c:350 msgid "plain" msgstr "unformatiert" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "Zeilenende in Stringkonstante" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "Zeilenende in einem %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "Signal SIG%s empfangen" #: src/main.c:235 msgid "heavy" msgstr "intensiv" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "gar nicht" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ja" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "nein" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Konfigurationsstatus von %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Blätter:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " Papierformat = %s, %s\n" " Seitenlayout = %zu x %zu, %s\n" " Rahmen = %s\n" " Dateiausrichtung = %s\n" " Innenrand = %u\n" #: src/main.c:339 msgid "portrait" msgstr "Hochformat" #: src/main.c:339 msgid "landscape" msgstr "Querformat" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u Zeichen pro Zeile" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u Zeilen pro Seite" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "Schriftgröße ist %gpt" #: src/main.c:363 msgid "each line" msgstr "jede Zeile" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "alle %u Zeilen" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtuelle Seiten:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " Zeilen nummerieren = %s\n" " Format = %s\n" " Tabulatorabstand = %u\n" " Format für nicht druckbare Zeichen = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Kopfzeilen:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " Kopfzeile = %s\n" " Linke Fußzeile = %s\n" " Fußzeile = %s\n" " Rechte Fußzeile = %s\n" " Linker Titel = %s\n" " Mittlerer Titel = %s\n" " Rechter Titel = %s\n" " Wasserzeichen = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Eingabe:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " Zeilen abschneiden = %s\n" " Sonderzeichen interpretieren = %s\n" " Zeilenende = %s\n" " Zeichensatz = %s\n" " Dokumenten-Titel = %s\n" " Prolog = %s\n" " Binäre Daten drucken = %s\n" " Weiterleiten = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "automatisch ausgewählt" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Formatiertes Drucken:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " Formatvorlage = %s\n" " Hervorhebung = %s\n" " Kürzungsgrad = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "Niemals backup-Dateien anlegen" #: src/main.c:456 msgid "simple backups of every file" msgstr "Einfache Backup-Datei für jede Datei" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "Nummerierte Backup-Dateien für bereits numerierte Dateien,\n" " ansonsten einfaches Backup" #: src/main.c:466 msgid "numbered backups of every file" msgstr "Nummerierte Backup-Dateien für jede Datei" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Ausgabe:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " Ziel = %s\n" " Versions-Kontrolle = %s\n" " Backup-Dateiendung = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " Kennung = %s\n" " Druckerbeschreibung (PPD) = %s\n" " Standard PPD = %s\n" " Format der Seiten-Titel = %s\n" " Anzahl Kopien = %u\n" " Seiten pro Blatt = %s\n" " Seiten-Definitionen = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " „statusdict“-Angaben = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " Seitenvorschub = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Interna:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " Gesprächigkeitsgrad = %u\n" " Datei-Befehl = %s\n" " Bibliotheken-Verzeichnis = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Aufruf: %s [OPTION]... [DATEI]...\n" "\n" "Konvertiere DATEIen oder die Standardeingabe in das PostScript-Format.\n" "Normalerweise wird die Ausgabe direkt an den Standarddrucker gesendet,\n" "sie kann aber auch mit „-o DATEI“ in eine Datei umgeleitet werden.\n" "\n" "Zwingend geforderte Argumente für lange Optionen sind für kurze Optionen\n" "ebenfalls erforderlich.\n" "Lange Optionen, die mit „*“ markiert sind, erfordern „yes“ oder „no“\n" "als Argument; die entsprechende kurze Option steht für „yes“\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Aufgaben:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version Versionsnummer ausgeben\n" " --help Diese Hilfe anzeigen und beenden\n" " --guess Geratenen Dateityp der DATEIEN ausgeben\n" " --which Pfad der Bibliotheks-Dateien mit den Namen DATEIEN " "ausgeben\n" " --glob Pfad der Bibliotheks-Dateien, die zu DATEIEN passen, " "ausgeben\n" " --list=defaults Standardeinstellungen und -parameter ausgeben\n" " --list=THEMA Liste zu THEMA (delegations, encodings,\n" " features, variables, media, ppd, printers, " "prologues,\n" " style-sheets, user-options) anzeigen\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Nachdem die Aufgabe erfüllt wurde, erfolgreich beenden. Ausführliche\n" "Listen können zusätzliche Hilfe zu bestimmten Features bieten.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent Still arbeiten\n" " -v, --verbose[=GRAD] Gesprächigkeit anschalten oder Grad festlegen\n" " -=, --user-option=OPTION Angegebene Benutzeroption verwenden\n" " --debug Fehlersuche-Features einschalten\n" " -D, --define=VAR[:WERT] Variable VAR löschen oder auf den Wert WERT\n" " festlegen\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAME Ausgabeformat NAME benutzen\n" " -r, --landscape Im Querformat (landscape) drucken\n" " -R, --portrait In Hochformat (portrait) drucken\n" " --columns=NUM Anzahl der Spalten pro Blatt (NUM > 0)\n" " --rows=NUM Anzahl der Zeilen pro Blatt (NUM > 0)\n" " --major=DIRECTION Zuerst Reihen (DIRECTIONS=rows) oder \n" " Spalten (DIRECTIONS=columns) füllen\n" " -1, -2, ..., -9 Vordefinierte Schriften und Layouts für 1 bis 9\n" " virtuelle Seiten\n" " -A, --file-align=MODE Mehrere Dateien gemäß MODE ausrichten („fill“,\n" " „rank“, „page“, „sheet“, order eine Zahl)\n" " -j, --borders* Rahmen um die Spalten zeichnen\n" " --margin[=NUM] Inneren Rand der Breite NUM festlegen\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Die Optionen -1 bis -9 verändern mehrere grundlegende Parameter, um\n" "vordefinierte Layouts mit 80 Spalten einzurichten. Daher ist die\n" "Reihenfolge wichtig: „-R -f40 -2“ ist äquivalent zu „-2“. Um das\n" "Layout zu ändern, geben Sie „-2Rf40“ an oder verwenden Sie lange\n" "Optionen („--columns“, „--font-size“ etc.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM Vor jeder NUMten Zeile die Zeilennummer " "ausgeben\n" " -C Wie „--line-numbers=5“\n" " -f, --fontsize=GRÖSSE Schriftgröße GRÖSSE für den Text benutzen\n" " -L, --lines-per-page=NUM Anzahl Zeilen pro Seite\n" " -l, --chars-per-line=NUM Anzahl Spalten pro Seite\n" " -m, --catman Datei als Hilfe-Seite (manpage) " "behandeln,\n" " entspricht -L66\n" " -T, --tabsize=NUM Tabulatorabstand auf NUM einstellen\n" " --non-printable-format=FMT Ausgabe für nicht-druckbare Zeichen " "festlegen\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Kopfzeilen:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header Keine Kopfzeilen\n" " -b, --header[=TEXT] Kopfzeilen\n" " -u, --underlay[=TEXT] Wasserzeichen auf jede Seite drucken\n" " --center-title[=TEXT] Zentrierten Titel ausgeben\n" " --left-title[=TEXT] Linken Titel ausgeben\n" " --right-title[=TEXT] Rechten Titel ausgeben\n" " --left-footer[=TEXT] Linke Fußzeile ausgeben\n" " --footer[=TEXT] Fußzeile ausgeben\n" " --right-footer[=TEXT] Rechte Fußzeile ausgeben\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "Die TEXTe dürfen Steuerzeichen ($, %, etc.) enthalten.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=BEREICH] Zu druckende Seiten auswählen\n" " -c, --truncate-lines* Lange Zeilen abschneiden\n" " -i, --interpret Tabulator, Backspace und Formfeed interpretieren\n" " --end-of-line=ART Zeilenende-Zeichen festlegen\n" " (ART kann sein: r, n, nr, rn, any)\n" " -X, --encoding=NAME Zeichensatz NAME benutzen\n" " -t, --title=NAME Name des Druckauftrags festlegen\n" " --stdin=NAME Name der Standardeingabe (stdin) festlegen\n" " --print-anyway* Drucken von binären Zeichen erzwingen\n" " -Z, --delegate* Datei zu einer anderen Anwendung weiterleiten\n" " --toc[=TEXT] Inhaltsverzeichnis erzeugen\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Wenn Delegieren (delegations) eingeschaltet sind, dann kann a2ps andere\n" "Anwendungen verwenden, um Dateien zu verarbeiten. Das ist sinnvoll,\n" "wenn der Inhalt erst formatiert werden sollte, wie beispielsweise für\n" "HTML, PostScript, PDF, etc.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=SPRACHE] Formatierte Ausgabe einschalten\n" " (Format für SPRACHE benutzen)\n" " --highlight-level=LEVEL Grad der Hervorhebungen im Text\n" " -g, --graphic-symbols* Graphische Symbole ausgeben\n" " --strip-level=NUM Grad der Kommentar-Entfernung\n" " (0 = nichts, 3 = alle)\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=DATEI Ausgabe in DATEI. Wenn DATEI „-“ ist,\n" " auf Standardausgabe drucken\n" " --version-control=WORT Versionskontrolle festlegen\n" " --suffix=ENDUNG SUFFIX als Backup-Endung benutzen\n" " -P, --printer=NAME Ausgabe zum Drucker NAME\n" " -d Ausgabe zum Standarddrucker (Standard)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=DATEI DATEI.pro als PostScript-Prolog verwenden\n" " --ppd[=SCHLÜSSEL] PPD automatisch auswählen oder auf SCHLÜSSEL " "festlegen\n" " -n, --copies=NUM NUM Kopien von jeder Seite drucken\n" " -s, --sides=NUM Duplex-Modus („1“ oder „simplex“,\n" " „2“ oder „duplex“, „tumble“)\n" " -S, --setpagedevice=K[:V] Eine „page device“-Definition an die Ausgabe " "übergeben\n" " --statusdict=K[:[:]V] Eine „statusdict“-Defintion an die Ausgabe " "übergeben\n" " -k, --page-prefeed Seitenpositionierung an\n" " -K, --no-page-prefeed Seitenpositionierung aus\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Standardmäßig ist a2ps darauf ausgelegt, das zu tun, was Sie erwarten;\n" "vertrauen Sie a2ps. Um den Inhalt des Verzeichnisses „src“ zu drucken,\n" "ein Inhaltsverzeichnis zu generieren und die Ausgabe auf dem Drucker\n" "„lw“ auszugeben:\n" "\n" " a2ps -P lw --toc src/*\n" "\n" "Um die Dateien „beispiel.ps“ und „beispiel.html“ zu verarbeiten und die\n" "Ergebnisse darzustellen:\n" "\n" " a2ps -P display beispiel.ps beispiel.html\n" "\n" "Um ein Email-Postfach (mailbox) mit vier Seiten pro Blatt Papier zu " "verarbeiten:\n" "\n" " a2ps -=mail -4 mailbox\n" "\n" "Um eine Datei als Büchlein auf dem duplexfähigen Standarddrucker zu " "drucken:\n" "\n" " a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Inhaltsverzeichnis" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "Kann „%s“ nicht bearbeiten, benötigt a2ps Version %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "Unerwartetes Zeichen „%c“" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "Zu viele includes" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "Kein Schlüssel definiert für „%s“" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "Kann Datei „%s“ nicht finden." #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "Automatische Format-Auswahl abgebrochen" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "Fehler beim Ausführen von file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "Kann regulären Ausdruck „%s“ nicht übersetzen: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Bekannte Vorlagen (Sprachen)" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" "Kann automatisches Format „%s“ nicht finden, daher ist die Ausgabe " "unformatiert" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "ungültige Versionsnummer „%s“" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "Leerzeichen (z.B. „ “)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "Oktal (z.B. „\\001“)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "Hexadezimal (z.B. „\\x0a“)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "Circumflex (z.B. „^C“, „M-^C“)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "Emacs (z.B., „C-c“, „M-C-c“)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "Fragezeichen (z.B. „?“)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Dynamisches Array „%s“:\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tLaden: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\tOriginalgröße: %zu, Wachstum: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Dynamische Zeichenkette:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "Zu viele geneigte Schriften: „%s“" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "Ungültige Option „%s“." #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Bekannte Zeichensätze" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "Nicht genügend Information über die Schriftart" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "Kann Verzeichnis „%s“ nicht schließen." #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "Ungültiges Argument „%s“ für „%s“" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Gültige Argumente sind Ganze Zahlen mit %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Gültige Argumente sind Reelle Zahlen mit %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "Unbekannter Zeichensatz „%s“" #: liba2ps/madir.c:51 msgid "rows first" msgstr "Zeilen zuerst" #: liba2ps/madir.c:54 msgid "columns first" msgstr "Spalten zuerst" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "Papierformat „%s“ unbekannt" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Bekannte Papierformate" #: liba2ps/media.c:189 msgid "Name" msgstr "Name" #: liba2ps/media.c:190 msgid "dimensions" msgstr "Abmessungen" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Bekannte Variablen" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: Fehlendes „%c“ für %s%c-Escape" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Gedruckt von %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Gedruckt von %s auf %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "Kann aktuelles Arbeitsverzeichnis nicht ermitteln" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: Zu langes Argument für %s-Escape" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%d.%m.%Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A, %d.%m.%Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: Unbekanntes „%s“ Escape-Zeichen „%c“ (%d)." #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Seite %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Seite %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: Ungültiges Trennzeichen „%s%c“ für „%s“-Escape" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: Ungültiges Argument für %s%c-Escape" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Seite %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "Ausgabebefehl" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "„%s --help“ gibt Ihnen mehr Informationen.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "Ungültiger Variablenbezeichner „%s“" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "Ungültige Schrift „%s“." #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "„%s“ ohne passendes „%s“." #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Bekannte Schriften" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Keine.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Bekannte PostScript-Drucker-Beschreibungen" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "Ungültiges Intervall „%s“" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Standarddrucker" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Unbekannter Drucker" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "Kein Kommando für „%s“ (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "auf die Standardausgabe geschickt" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "zum voreingestellten Drucker geschickt" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "in die Datei „%s“ geschrieben" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "zum Drucker „%s“ geschickt" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Bekannte Ausgabegeräte (Drucker usw.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Bekannte Prologe" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "Schrift %f ist zu groß" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "„%s“ ist eine Binär-Datei, Drucken abgebrochen" #: liba2ps/userdata.c:104 msgid "user" msgstr "Benutzer" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Unbekannter Benutzer" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "Unbekannte Benutzeroption „%s“" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Bekannte Benutzeroptionen" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "Kein Speicher mehr" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "Kann Datei „%s“ nicht umbenennen in „%s“." #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "Datei „%s“ wiederhergestellt." #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "alle" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Neuigkeiten, Updates and Dokumentation unter http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Fehlermeldungen und Kommentare an <bug-a2ps@gnu.org>\n" #~ "Kommentare zur deutschen Übersetzung an <roland.illig@gmx.de>\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "Unbekannter Zeichensatz „%s“, wird ignoriert" #~ msgid "Written by %s.\n" #~ msgstr "Geschrieben von %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Dieses Program ist freie Software; Angaben zu den Bedingungen, unter\n" #~ "denen das Programm kopiert werden darf, stehen im Quelltext.\n" #~ "Es gibt keine Gewährleistung, das schließt auch MARKTFÄHIGKEIT oder\n" #~ "die ERFÜLLUNG EINES BESTIMMTEN ZWECKES ein.\n" #~ msgid "write error" #~ msgstr "Fehler beim Schreiben" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "Ungültiges Kommando für Drucker „%s“: %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "Obsoleter Eintrag „%s“. Ignoriert" #~ msgid "Page %d/%d" #~ msgstr "Seite %d/%d" #~ msgid "`" #~ msgstr "„" #~ msgid "'" #~ msgstr "“" #~ msgid "invalid argument %s for `%s'" #~ msgstr "Ungültiges Argument „%s“ für „%s“" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "Mehrdeutiges Argument „%s“ für „%s“" #~ msgid "Valid arguments are:" #~ msgstr "Gültige Argumente sind:" #~ msgid "Unknown system error" #~ msgstr "Unbekannter Systemfehler" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: Option „%s“ ist mehrdeutig.\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: Option „--%s“ erlaubt keinen Parameter.\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: Option „%c%s“ erlaubt keinen Parameter.\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: Option „%s“ erfordert einen Parameter.\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: Nicht erkannte Option „--%s“.\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: Nicht erkannte Option „%c%s“.\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: Ungültige Option -- %c.\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: Ungültige Option -- %c.\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: Option benötigt ein Argument -- %c.\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: Option „-W %s“ ist mehrdeutig.\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: Option „-W %s“ erlaubt keinen Parameter.\n" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/el.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000076516�14445132165�011110� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�����7��8���7�����7����8��$��;����>����B�� ��TE����`G����NK����N��(��Q�����S��:��T��h��U�����GW�����X��6���X��&���X�����Y��Q��Y�����Z�����[�� ���[�����[��S���[��d��� \��N���r\��Z���\��:���]��+���W]��%���]����]��E���^����_��9���b��/���b��)���b�����'c�����<c�����Mc�����bc��G���wc�����c��/���c��+����d��+���,d��(���Xd��9���d��G���d�����e�� ���#e��<���De��#���e�� ���e�����e�����e�����e�����e�� ���e��%���f�����,f��(���Kf�� ���tf��'���f�����f��t���f����&g��A���h��#���?i�����ci����i��T���Il��N���l��#���l�� ��m��2���n��0���Qn��,���n��/���n��*���n��5��� o��7���@o��1���xo�����o��:���o��8���p��4���=p��S���rp��'���p��)���p��;���q��?���Tq��a���q��A���q��3���8r��d���lr��Q���r��O���#s��A���ss��=���s��[���s��C���Ot�����t�����t�����t�����t�����t��!���u��1���3u��-���eu�����u��3���u��@���u�����v�����-v��&���Mv��0���tv��D���v��'���v��%���w��F���8w��6���w�����w��!���w��%���w��(���x�����:x��X���Ax��H���x�� ���x�����x��L���y�����Ny�����y�����y�����z�����'z�����<z�����Vz��.���jz�����z��)���z�����z��E���z��/���A{��3���q{��@���{�����{��;���{��H���4|��.���}|��,���|�����|��?���|�����8}�����G}�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps-4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-04-11 17:57+0300 Last-Translator: Lefteris Dimitroulakis <ledimitro@gmail.com> Language-Team: Greek <team@lists.gnome.gr> Language: el MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 2.3 � load: %zu/%zu (%2.1f%%) � αρχικό μέγεθος: %zu, αύξηση: %s %zu � Ουδεμία � --line-numbers=ΑΡ αρίθμιση των γραμμών από ΑΡ έως ΑΡ -C συνόνημο του --line-numbers=5 -f, --font-size=ΜΕΓΕΘΟΣ χρήση γραμ/σειράς ΜΕΓΕΘΟΣ για κείμενο -L, --lines-per-page=ΑΡ κλιμάκωση γραμ/σειράς γιά ΑΡ γραμμές ανά εικονική σελίδα -l, --chars-per-line=ΑΡ κλιμάκωση γραμ/σειράς γιά ΑΡ στήλες κειμένου ανά εικονική σελίδα -m, --catman μορφοποίηση αρχείου όπως μιά σελίδα εγχειριδίου (συνώνυμο της -L66) -T, --tabsize=ΑΡ ρύθμιση μήκους στίχου σε ΑΡ --non-printable-format=FMT καθορίζει πώς εκτυπώνονται οι μη εκτυπώσιμοι χαρακτήρες � --prologue=ΑΡΧΕΙΟ χρήση ΑΡΧΕΙΟ.pro ως PostScript προλόγου --ppd[=ΚΛΕΙΔΙ] αυτόματη επιλογή, ή επιλογή του PPD ΚΛΕΙΔΙ -n, --copies=NUM αριθμός αντιγράφων κάθε σελίδας -s, --sides=MODE εκτύπωση σε ΚΑΤΑΣΤΑΣΗ `simplex' (ή `1'), `dublex'(ή `2'), ή`tumble') -S, --setpagedevice=K[:V] ορισμός `page device' στην έξοδο --statusdict=K[:[:]V] ορισμός `statusdict' στην έξοδο -k, --page-prefeed ενεργοποίηση προτροφοδότησης σελίδας -K, --no-page-prefeed απενεργοποίηση προτροφοδότησης σελίδας � --version εμφάνιση έκδοσης --help εμφάνιση αυτής της βοήθειας --guess αναφορά εκτίμησης τύπου ΑΡΧΕΊΩΝ --which αναφορά της πλήρους διαδρομής αρχείων βιβλιοθήκης με όνομα ΑΡΧΕΙΑ --glob αναφορά της πλήρους διαδρομής αρχείων βιβλιοθήκης που ταιριάζουν με ΑΡΧΕΙΑ --list=defaults εμφάνιση προεπιλεγμένων ρυθμίσεων και παραμέτρων --list=ΘΈΜΑ λεπτομερής αναφορά γιά ΘΈΜΑ (ανάθεση, κωδ/ση, χαρακτηριστικά, μεταβλητές, χαρτί, ppd, εκτυπωτές, πρόλογοι, φύλλα στύλ, επιλογές-χρήστη) � -B, -no-header χωρίς επικεφαλίδα σελίδων -b, --header[=TEXT] επικεφαλίδα σελίδων -u, --underlay[=TEXT] υδατογράφημα σελίδων --center-title[=TEXT] τίτλος εικονικών σελίδων --left-title[=TEXT] αριστερός τίτλος εικονικών σελίδων --right-title[=TEXT] δεξιός τίτλος εικονικών σελίδων --left-footer[=TEXT] αριστερό πόδι σελίδων --footer[=TEXT] κεντρικό πόδι σελίδων --right-footer[=TEXT] δεξιό πόδι σελίδων � -E, --pretty-print[=ΓΛΩΣΣΑ] περίτεχνη εκτύπωση (ρύθμιση στύλ σέ ΓΛΩΣΣΑ) --highlight-level=ΕΠΙΠΕΔΟ ρύθμιση επιφωτισμού γιά περίτεχνη εκτύπωση ΕΠΙΠΕΔΟ μπορεί νά είναι κανένα, κανονικό, μέγιστο -g συνώνυμο γιά --highlight-level=heavy --strip-level=ΑΡ επίπεδο απάλειψης μηνυμάτων � -M, --medium=ΟΝ/ΜΑ χρήση χαρτιού ΟΝΟΜΑ -r, --landscape εκτύπωση οριζόντια -R, --portrait εκτύπωση κατακόρυφα --columns=ΑΡΙΘΜ. αριθμός στηλών ανά σελίδα --rows=ΑΡΙΘΜ. αριθμός σειρών ανά σελίδα --major=ΚΑΤ/ΝΣΗ συμπλ/ση πρώτα (ΚΑΤ/ΝΣΗ=) σειρών, ή στηλών -1, -2..., -9 προεπιλεγμένα μεγέθη γραμμ/σειράς και διευθετήσεις για 1..9 εικονικές σελίδες -A, --file-align=MODE διάταξη διακεκριμένων αρχείων κατά MODE (fill,rank page,sheet, ή ένα αριθμό) -j, --borders* εκτύπωση ορίου εικονικών σελίδων --margin[=ΑΡΙΘΜ.] καθορίζει το εσωτερικό περιθώριο σε ΑΡΙΘΜ. � -a, --pages[=ΕΠΙΛΟΓΗ] επιλογή σελίδων πρός εκτύπωση -c, --truncate-lines* αποκοπή πολύ μεγάλων γραμμών -i, --interpret* ερμηνεία χαρακτήρων tab, bs καί ff --end-of-line=TYPE ορίζει τους χαρακτήρες τέλους γραμμής (TYPE: r, n, nr, rn, any) -X, --encoding=ΟΝΟΜΑ κωδικ/ση ΟΝΟΜΑ -t, --title=ΟΝΟΜΑ ΟΝΟΜΑ εγγράφου --stdin=ΟΝΟΜΑ δώστε ένα ΟΝΟΜΑ αρχείου στην πρότυπη είσοδο --print-anyway* εκτύπωση καί δυαδικών -Z, --delegate* ανάθεση επεξ/σίας αρχείων σε άλλη εφαρμογή --toc[=ΚΕΙΜΕΝΟ] δημιουργεία πίνακα περιεχομένων � -o, --output=ΑΡΧΕΙΟ διάσωση εξόδου στο ΑΡΧΕΙΟ. Αν ΑΡΧΕΙΟ είναι `-', τότε παραμένει στην πρότυπη έξοδο. --version-control=ΛΕΞΗ παράκαμψη του συνηθισμένου ελέγχου εκδόσεως --suffix=ΠΡΟΕΚΤΑΣΗ παράκαμψη της συνηθισμένης προέκτασης αρχείου ασφαλείας -P, --printer=ΟΝ/ΜΑ αποστολή εξόδου στον εκτυπωτή ΟΝ/ΜΑ -d αποστολή εξόδου στον προεπιλεγμένο εκτυπωτή (προεπιλεγμένη συμπεριφορά) � -q, --quiet, --silent κανένα μήνυμα -v, --verbose[=ΕΠΊΠΕΔΟ] ενεργοποίηση περιφραστικότητας ή ρύθμιση στο ΕΠΙΠΕΔΟ -=, --user-option=ΕΠΊΛΟΓΗ χρήση συν/γραφίας ορισμένης από το χρήστη ΕΠΙΛΟΓΉ --debug ενεργοποίηση χαρακτηριστικών αποσφαλμάτωσης -D, --define=ΚΛΕΙΔΊ[:ΤΙΜΉ] αφαίρεση μεταβλητής ΚΛΕΙΔΊ ή απόδοση ΤΙΜΗΣ � προορισμός = %s έλεγχος εκδόσεως = %s προέκταση ονόματος αρχείου ασφαλείας = %s � επικεφαλίδα = %s αριστερό πόδι = %s πόδι = %s δεξιό πόδι = %s αριστερός τίτλος = %s κεντρικός τίτλος = %s δεξιός τίτλος = %s υδατογράφημα = %s � μαγικός αριθμός = %s Περιγραφή Εκτυπωτή (PPD) = %s προεπιλογή PPD = %s μορφή χαρακτηρισμού σελίδων = %s αριθμός αντιγράφων = %u όψεις ανά φύλλο = %s ορισμοί συσκευής σελίδας = � χαρτί = %s, %s διευθέτηση σελίδων = %zu x %zu, %s όρια = %s στοίχιση αρχείων = %s εσωτερικό περιθώριο = %u � αρίθμηση γραμμών = %s μορφή = %s μήκος στίχου = %u μή εκτυπώσημη μορφή = %s � προτροφοδότηση σελίδας = %s � ορισμοί statusdict = � φύλλο στυλ = %s επίπεδο επιφωτισμού = %s αφαίρεση επιπέδου = %d � αποκοπή γραμμών = %s διερμήνευση = %s τέλος γραμμής = %s κωδικοποίηση = %s τίτλος εγγράφου = %s πρόλογος = %s εκτύπωση ούτως ή άλλως = %s ανάθεση = %s � περιφραστικότητα μηνυμάτων = %u εντολή αρχείου = %s διαδρομή βιβλιοθήκης = �%Α %d %Β %Υ�%b %d, %Y�%s, ανετέθη στό %s�%s: μη έγκυρο όρισμα γιά την μετά ακολουθία `%s%c'�%s: μη έγκυρος διαχωριστής `%s%c' γιά την μετά ακολουθία `%s'�%s: `%c' απουσιάζουν γιά την μετά ακολουθία %s%c�%s: όρισμα πάρα πολύ μακρύ γιά την μετά ακολουθία %s�%s: μετά ακολουθία `%s%c' (%d) άγνωστη�%u χαρακτήρες ανά γραμμή�%u γραμμές ανά σελίδα�Μετά την εκπλήρωση της αποστολής, επιτυχής έξοδος. Οι λεπτομερείς λίστες μπορούν να προσφέρουν συμπληρωματική βοήθεια σε συγκεκριμένα χαρακτηριστικά. �Εφαρμογές διαμορφωμένες προς ανάθεση�Το a2ps είναι ρυθμισμένο νά κάνει αυτό πού επιθυμείτε, γι' αυτό εμπιστευτείτε το. Γιά νά εκτυπώσετε τό περιεχόμενο τού καταλόγου `src' μαζί μέ ένα πίνακα περιεχομένων μέσω τού εκτυπωτή `lw', $ a2ps -P lw --toc src/* Γιά νά επεξ/στείτε τό αρχείο `sample.ps' και `sample.html' καί νά εμφανιστεί τό αποτέλεσμα, $a2ps -P display sample.ps sample.html Γιά νά επεξ/στείτε ένα γραμματοκιβώτιο σέ 4 μινισελίδες, $a2ps -=mail -4 mailbox Γιά νά εκτυπώσετε υπό μορφή booklet στόν προεπιλεγμένο εκτυπωτή, πού είναι ικανός γιά εκτύπωση δύο όψεων $a2ps -book paper.dvi.gz -d�Παράμετροι διαμόρφωσης τών %s %s �Προεπιλεγμένος εκτυπωτής�Ανάθεση `%s', από %s στο %s �Dynamic array `%s': �Dynamic string: �Καθολικές: �Κεφαλίδες: �Σήμανση σελίδων καί εικονικών σελίδων �Είσοδος: �Εσωτερικές λεπτομέρειες: �Γνωστές κωδικοποιήσεις�Γνωστές γραμματοσειρές�Γνωστά μεγέθη χαρτιού�Γνωστές έξοδοι (εκτυπωτές, κλπ.)�Γνωστές περιγραφές εκτυπωτών PostScript (PPD)�Γνωστοί Πρόλογοι�Γνωστά φύλλα στύλ�Γνωστές Συντομογραφίες Επιλογών�Γνωστές Μεταβλητές�Όνομα�Εξοδος: �Σελίδα %zu�Σελίδα %zu/%c�Σελίδα %zu/%zu�PostScript: �Περίτεχνη εκτύπωση: �Εκτυπώθηκε από %s�Εκτυπώθηκε από %s τήν %s�Φύλλα: �Πίνακας περιεχομένων�Tasks: �Τά ΚΕΙΜΕΝΑ μπορούν να χρησιμοποιήσουν τις ακολουθίες διαφυγής �Οι επιλογές -1.. -9 επηρεάζουν μερικές αρχιπαραμέτρους ώστε νά ρυθμιστούν προεπιλεγμένες διευθετήσεις μέ στήλες 80 γραμμών. Ως εκ τούτου, η σειρά μετράει: `-R -f40 -2' ισοδυναμεί μέ `-2'. Γιά μετατροπή διευθέτησης, χρησιμοποιείστε`-2Rf40', ή επιλογές (`--columns', `--font-size' κλπ.). �Πληκτρολογείστε `%s--help' γιά βοήθεια. �Άγνωστος εκτυπωτής�Άγνωστος χρήστης�Χρήση: %s [ΕΠΙΛΟΓΗ]... [ΑΡΧΕΙΟ]... Μετατροπή ΑΡΧΕΊΟΥ(ΩΝ) ή κανονικής εισόδου σε PostScript. Εκ προεπιλογής, η έξοδος στέλνεται στον προεπιλεγμένο εκτυπωτή. Ένα αρχείο εξόδου μπορεί να οριστεί με -o. Υποχρεωτικά ορίσματα για μακρές επιλογές είναι υποχρεωτικά και για κοντές επιλογές επίσης. Μακρές επιλογές με το σημάδι * απαιτούν ένα όρισμα ναι/όχι, στις αντίστοιχες κοντές επιλογές, σημαίνει `ναί'. �Εγκυρα ορίσματα είναι οι πραγματικοί f όπως: %s �Εγκυρα ορίσματα είναι οι ακέραιοι n όπως: %s �Εικονικές σελίδες: �Μέ την ενεργοποίηση των αναθέσεων,το a2ps μπορεί νά κάνει χρήση άλλων εφαρμογών γιά την διεκπεραίωση της επεξεργασίας αρχείων όπως HTML, PostScript, PDF κλπ. �[%s (%s): %zu σελίδες σε %zu φύλλα] �[%s (%s): %zu σελίδες σε 1 φύλλο] �[%s (%s): 1 σελίδα σε 1 φύλλο] �[%s (%s): απέτυχε. Αγνοήθηκε] �[%s (δυαδικό): αγνοήθηκε] �[%s (μή εκτυπώσιμο): αγνοήθηκε] �[έχουν αναδιπλωθεί %zu γραμμές] �[έχει αναδιπλωθεί 1 γραμμή] �[Ουδεμία έξοδος] �[Σύνολο: %zu σελίδες σε %zu φύλλα] %s �[Σύνολο: %zu σελίδες σε 1 φύλλο] %s �[Σύνολο: 1 σελίδα σε 1 φύλλο] %s �`%s' είναι δυαδικό αρχείο : εκτύπωση ματαιώθηκε�το `%s' είναι κατάλογος�`%s' χωρίς αντίστοιχο `%s'�αυτόματη επιλογή στύλ ακυρώθηκε�αδύνατον νά κλείσω τόν καταλογο `%s'�αδύνατη η μεταγλώττιση τής κανονικής εκφράσεως `%s': %s�αδύνατη η δημιουργία του αρχείου `%s'�αδύνατον νά βρώ τό αρχείο `%s'�αδύνατη η ανεύρεση φύλλου στύλ`%s': επιλογή τυπικού στύλ�αύνατον νά προσδιορίσω τό τρέχοντα κατάλογο�αδύνατη η λήψη πληροφοριών για το αρχείο `%s'�αδύνατο το άνοιγμα σωλήνωσης στο `%s'�αδύνατο το άνοιγμα του αρχείου `%s'�επεξεργασία τού `%s' αδύνατη.Απαιτείται a2ps έκδοση %s�αδύνατη μετονομασία αρχείου `%s' σέ `%s'�caret (i.e., `^C', `M-^C' etc.)�πρώτα στήλες�διαστάσεις�κάθε %u γραμμές�κάθε γραμμή�emacs (i.e., `C-c', `M-C-c' etc.)�τέλος γραμμής μέσα σέ ένα %s�τέλος γραμμής σε σταθερά�error running file(1)�γραμματοσειρά %f πολύ μεγάλη�το μέγεθος γραμματοσειράς είναι %gpt�μέγιστο�hexadecimal (i.e., `\x0a' etc.)�ελλιπής γνώση μορφών�μη έγκυρο όρισμα `%s' γιά `%s'�μη έγκυρη εικονική `γραμματοσειρά' `%s'�μη έγκυρο διάστημα `%s'�μη έγκυρη επιλογή `%s'�μη έγκυρο αναγνωριστικό μεταβλητής `%s'�μη έγκυρος αριθμός έκδοσης `%s'�οριζόντια�μνήμη εξαντλημένη�λείπει όρισμα γιά `%s'�ποτέ αρχεία ασφαλείας�όχι�δέν έχει οριστεί διαταγή γιά τόν εκτυπωτή `%s' (%s%s)�δέν έχει προσδιοριστεί κλειδί γιά τό `%s'�κανένα�κανονικό�αριθμημένα αρχεία ασφαλείας κάθε αρχείου�αριθμημένα αρχεία ασφαλείας των ήδη αριθμημένων αρχείων, και απλά των υπολοίπων�octal (i.e., `\001' etc.)�εντολή εξόδου�κανονικό�κατακόρυφα�question-mark (i.e., `?')�ελήφθη SIG %s�αρχείο `%s' αποκαταστάθηκε�πρώτα σειρές�γράφτηκε στό αρχείο `%s'�αυτόματη επιλογή�στάλθηκε στόν προεπιλεγμενο εκτυπωτή�στάλθηκε στόν εκτυπωτή `%s'�στάλθηκε στήν πρότυπη έξοδο�απλό αρχείο ασφαλείας κάθε αρχείου�space (i.e., ` ')�πάρα πολλά ενσωματούμενα αρχεία�πάρα πολλές γραμματοσειρές με κλίση: `%s'�απρόσμενος `%c' χαρακτήρας�κωδικοποίηση `%s' άγνωστη�χαρτί `%s' άγνωστο�συντομογραφία επιλογής `%s' άγνωστη�χρήστης�ναι�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/el.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000115661�14445132164�010736� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of a2ps to Greek # Copyright (C) 2002, 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Lefteris Dimitroulakis <edimitro@tee.gr>, 2008. # Lefteris Dimitroulakis <ledimitro@gmail.com>, 2022,2023. msgid "" msgstr "" "Project-Id-Version: a2ps-4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-04-11 17:57+0300\n" "Last-Translator: Lefteris Dimitroulakis <ledimitro@gmail.com>\n" "Language-Team: Greek <team@lists.gnome.gr>\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 2.3\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "λείπει όρισμα γιά `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "αδύνατη η δημιουργία του αρχείου `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "αδύνατο το άνοιγμα σωλήνωσης στο `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Ανάθεση `%s', από %s στο %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Εφαρμογές διαμορφωμένες προς ανάθεση" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "το `%s' είναι κατάλογος" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "αδύνατο το άνοιγμα του αρχείου `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "αδύνατη η λήψη πληροφοριών για το αρχείο `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 σελίδα σε 1 φύλλο]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu σελίδες σε 1 φύλλο]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu σελίδες σε %zu φύλλα]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Σύνολο: 1 σελίδα σε 1 φύλλο] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Σύνολο: %zu σελίδες σε 1 φύλλο] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Σύνολο: %zu σελίδες σε %zu φύλλα] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[έχει αναδιπλωθεί 1 γραμμή]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[έχουν αναδιπλωθεί %zu γραμμές]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Ουδεμία έξοδος]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, ανετέθη στό %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): απέτυχε. Αγνοήθηκε]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (μή εκτυπώσιμο): αγνοήθηκε]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (δυαδικό): αγνοήθηκε]\n" #: src/generate.c:350 msgid "plain" msgstr "κανονικό" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "τέλος γραμμής σε σταθερά" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "τέλος γραμμής μέσα σέ ένα %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "ελήφθη SIG %s" #: src/main.c:235 msgid "heavy" msgstr "μέγιστο" #: src/main.c:239 msgid "normal" msgstr "κανονικό" #: src/main.c:243 msgid "none" msgstr "κανένα" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ναι" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "όχι" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Παράμετροι διαμόρφωσης τών %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Φύλλα:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " χαρτί = %s, %s\n" " διευθέτηση σελίδων = %zu x %zu, %s\n" " όρια = %s\n" " στοίχιση αρχείων = %s\n" " εσωτερικό περιθώριο = %u\n" #: src/main.c:339 msgid "portrait" msgstr "κατακόρυφα" #: src/main.c:339 msgid "landscape" msgstr "οριζόντια" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u χαρακτήρες ανά γραμμή" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u γραμμές ανά σελίδα" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "το μέγεθος γραμματοσειράς είναι %gpt" #: src/main.c:363 msgid "each line" msgstr "κάθε γραμμή" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "κάθε %u γραμμές" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Εικονικές σελίδες:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " αρίθμηση γραμμών = %s\n" " μορφή = %s\n" " μήκος στίχου = %u\n" " μή εκτυπώσημη μορφή = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Κεφαλίδες:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " επικεφαλίδα = %s\n" " αριστερό πόδι = %s\n" " πόδι = %s\n" " δεξιό πόδι = %s\n" " αριστερός τίτλος = %s\n" " κεντρικός τίτλος = %s\n" " δεξιός τίτλος = %s\n" " υδατογράφημα = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Είσοδος:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " αποκοπή γραμμών = %s\n" " διερμήνευση = %s\n" " τέλος γραμμής = %s\n" " κωδικοποίηση = %s\n" " τίτλος εγγράφου = %s\n" " πρόλογος = %s\n" " εκτύπωση ούτως ή άλλως = %s\n" " ανάθεση = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "αυτόματη επιλογή" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Περίτεχνη εκτύπωση:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " φύλλο στυλ = %s\n" " επίπεδο επιφωτισμού = %s\n" " αφαίρεση επιπέδου = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "ποτέ αρχεία ασφαλείας" #: src/main.c:456 msgid "simple backups of every file" msgstr "απλό αρχείο ασφαλείας κάθε αρχείου" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "αριθμημένα αρχεία ασφαλείας των ήδη αριθμημένων αρχείων,\n" "και απλά των υπολοίπων" #: src/main.c:466 msgid "numbered backups of every file" msgstr "αριθμημένα αρχεία ασφαλείας κάθε αρχείου" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Εξοδος:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " προορισμός = %s\n" " έλεγχος εκδόσεως = %s\n" " προέκταση ονόματος αρχείου ασφαλείας = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " μαγικός αριθμός = %s\n" " Περιγραφή Εκτυπωτή (PPD) = %s\n" " προεπιλογή PPD = %s\n" " μορφή χαρακτηρισμού σελίδων = %s\n" " αριθμός αντιγράφων = %u\n" " όψεις ανά φύλλο = %s\n" " ορισμοί συσκευής σελίδας = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " ορισμοί statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " προτροφοδότηση σελίδας = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Εσωτερικές λεπτομέρειες:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " περιφραστικότητα μηνυμάτων = %u\n" " εντολή αρχείου = %s\n" " διαδρομή βιβλιοθήκης = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Χρήση: %s [ΕΠΙΛΟΓΗ]... [ΑΡΧΕΙΟ]...\n" "\n" "Μετατροπή ΑΡΧΕΊΟΥ(ΩΝ) ή κανονικής εισόδου σε PostScript. Εκ προεπιλογής, η " "έξοδος\n" "στέλνεται στον προεπιλεγμένο εκτυπωτή. Ένα αρχείο εξόδου μπορεί να οριστεί " "με -o. \n" "\n" "Υποχρεωτικά ορίσματα για μακρές επιλογές είναι υποχρεωτικά και για κοντές " "επιλογές επίσης.\n" "Μακρές επιλογές με το σημάδι * απαιτούν ένα όρισμα ναι/όχι,\n" "στις αντίστοιχες κοντές επιλογές, σημαίνει `ναί'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tasks:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version εμφάνιση έκδοσης\n" " --help εμφάνιση αυτής της βοήθειας\n" " --guess αναφορά εκτίμησης τύπου ΑΡΧΕΊΩΝ\n" " --which αναφορά της πλήρους διαδρομής αρχείων βιβλιοθήκης με " "όνομα \n" " ΑΡΧΕΙΑ\n" " --glob αναφορά της πλήρους διαδρομής αρχείων βιβλιοθήκης που " "ταιριάζουν με \n" " ΑΡΧΕΙΑ\n" " --list=defaults εμφάνιση προεπιλεγμένων ρυθμίσεων και παραμέτρων\n" " --list=ΘΈΜΑ λεπτομερής αναφορά γιά ΘΈΜΑ (ανάθεση, κωδ/ση,\n" " χαρακτηριστικά, μεταβλητές, χαρτί, ppd, εκτυπωτές,\n" " πρόλογοι, φύλλα στύλ,\n" " επιλογές-χρήστη)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Μετά την εκπλήρωση της αποστολής, επιτυχής έξοδος. Οι λεπτομερείς λίστες " "μπορούν να προσφέρουν\n" "συμπληρωματική βοήθεια σε συγκεκριμένα χαρακτηριστικά.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Καθολικές:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent κανένα μήνυμα\n" " -v, --verbose[=ΕΠΊΠΕΔΟ] ενεργοποίηση περιφραστικότητας ή ρύθμιση στο " "ΕΠΙΠΕΔΟ\n" " -=, --user-option=ΕΠΊΛΟΓΗ χρήση συν/γραφίας ορισμένης από το χρήστη " "ΕΠΙΛΟΓΉ\n" " --debug ενεργοποίηση χαρακτηριστικών αποσφαλμάτωσης\n" " -D, --define=ΚΛΕΙΔΊ[:ΤΙΜΉ] αφαίρεση μεταβλητής ΚΛΕΙΔΊ ή απόδοση ΤΙΜΗΣ\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=ΟΝ/ΜΑ χρήση χαρτιού ΟΝΟΜΑ\n" " -r, --landscape εκτύπωση οριζόντια\n" " -R, --portrait εκτύπωση κατακόρυφα\n" " --columns=ΑΡΙΘΜ. αριθμός στηλών ανά σελίδα\n" " --rows=ΑΡΙΘΜ. αριθμός σειρών ανά σελίδα\n" " --major=ΚΑΤ/ΝΣΗ συμπλ/ση πρώτα (ΚΑΤ/ΝΣΗ=) σειρών, ή στηλών\n" " -1, -2..., -9 προεπιλεγμένα μεγέθη γραμμ/σειράς και διευθετήσεις " "για 1..9\n" " εικονικές σελίδες\n" " -A, --file-align=MODE διάταξη διακεκριμένων αρχείων κατά MODE\n" " (fill,rank page,sheet, ή ένα αριθμό)\n" " -j, --borders* εκτύπωση ορίου εικονικών σελίδων\n" " --margin[=ΑΡΙΘΜ.] καθορίζει το εσωτερικό περιθώριο σε ΑΡΙΘΜ.\n" "\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Οι επιλογές -1.. -9 επηρεάζουν μερικές αρχιπαραμέτρους ώστε νά\n" "ρυθμιστούν προεπιλεγμένες διευθετήσεις μέ στήλες 80 γραμμών.\n" "Ως εκ τούτου, η σειρά μετράει: `-R -f40 -2' ισοδυναμεί μέ `-2'.\n" "Γιά μετατροπή διευθέτησης, χρησιμοποιείστε`-2Rf40',\n" "ή επιλογές (`--columns', `--font-size' κλπ.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=ΑΡ αρίθμιση των γραμμών από ΑΡ έως ΑΡ\n" " -C συνόνημο του --line-numbers=5\n" " -f, --font-size=ΜΕΓΕΘΟΣ χρήση γραμ/σειράς ΜΕΓΕΘΟΣ για κείμενο\n" " -L, --lines-per-page=ΑΡ κλιμάκωση γραμ/σειράς γιά ΑΡ γραμμές ανά " "εικονική σελίδα\n" " -l, --chars-per-line=ΑΡ κλιμάκωση γραμ/σειράς γιά ΑΡ στήλες κειμένου " "ανά εικονική σελίδα\n" " -m, --catman μορφοποίηση αρχείου όπως μιά σελίδα " "εγχειριδίου (συνώνυμο της -L66)\n" " -T, --tabsize=ΑΡ ρύθμιση μήκους στίχου σε ΑΡ\n" " --non-printable-format=FMT καθορίζει πώς εκτυπώνονται οι μη εκτυπώσιμοι " "χαρακτήρες\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Σήμανση σελίδων καί εικονικών σελίδων\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, -no-header χωρίς επικεφαλίδα σελίδων\n" " -b, --header[=TEXT] επικεφαλίδα σελίδων\n" " -u, --underlay[=TEXT] υδατογράφημα σελίδων\n" " --center-title[=TEXT] τίτλος εικονικών σελίδων\n" " --left-title[=TEXT] αριστερός τίτλος εικονικών σελίδων\n" " --right-title[=TEXT] δεξιός τίτλος εικονικών σελίδων\n" " --left-footer[=TEXT] αριστερό πόδι σελίδων\n" " --footer[=TEXT] κεντρικό πόδι σελίδων\n" " --right-footer[=TEXT] δεξιό πόδι σελίδων\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "Τά ΚΕΙΜΕΝΑ μπορούν να χρησιμοποιήσουν τις ακολουθίες διαφυγής\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ΕΠΙΛΟΓΗ] επιλογή σελίδων πρός εκτύπωση\n" " -c, --truncate-lines* αποκοπή πολύ μεγάλων γραμμών\n" " -i, --interpret* ερμηνεία χαρακτήρων tab, bs καί ff\n" " --end-of-line=TYPE ορίζει τους χαρακτήρες τέλους γραμμής (TYPE: r, n, " "nr, rn, any)\n" " -X, --encoding=ΟΝΟΜΑ κωδικ/ση ΟΝΟΜΑ\n" " -t, --title=ΟΝΟΜΑ ΟΝΟΜΑ εγγράφου \n" " --stdin=ΟΝΟΜΑ δώστε ένα ΟΝΟΜΑ αρχείου στην πρότυπη είσοδο\n" " --print-anyway* εκτύπωση καί δυαδικών\n" " -Z, --delegate* ανάθεση επεξ/σίας αρχείων σε άλλη εφαρμογή\n" " --toc[=ΚΕΙΜΕΝΟ] δημιουργεία πίνακα περιεχομένων\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Μέ την ενεργοποίηση των αναθέσεων,το a2ps μπορεί νά κάνει χρήση\n" "άλλων εφαρμογών γιά την διεκπεραίωση της επεξεργασίας αρχείων\n" "όπως HTML, PostScript, PDF κλπ.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=ΓΛΩΣΣΑ] περίτεχνη εκτύπωση (ρύθμιση στύλ σέ ΓΛΩΣΣΑ)\n" " --highlight-level=ΕΠΙΠΕΔΟ ρύθμιση επιφωτισμού γιά περίτεχνη εκτύπωση\n" " ΕΠΙΠΕΔΟ μπορεί νά είναι κανένα, κανονικό, " "μέγιστο\n" " -g συνώνυμο γιά --highlight-level=heavy\n" " --strip-level=ΑΡ επίπεδο απάλειψης μηνυμάτων\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=ΑΡΧΕΙΟ διάσωση εξόδου στο ΑΡΧΕΙΟ. Αν ΑΡΧΕΙΟ είναι `-',\n" " τότε παραμένει στην πρότυπη έξοδο.\n" " --version-control=ΛΕΞΗ παράκαμψη του συνηθισμένου ελέγχου εκδόσεως\n" " --suffix=ΠΡΟΕΚΤΑΣΗ παράκαμψη της συνηθισμένης προέκτασης αρχείου " "ασφαλείας\n" " -P, --printer=ΟΝ/ΜΑ αποστολή εξόδου στον εκτυπωτή ΟΝ/ΜΑ\n" " -d αποστολή εξόδου στον προεπιλεγμένο εκτυπωτή\n" " (προεπιλεγμένη συμπεριφορά)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=ΑΡΧΕΙΟ χρήση ΑΡΧΕΙΟ.pro ως PostScript προλόγου\n" " --ppd[=ΚΛΕΙΔΙ] αυτόματη επιλογή, ή επιλογή του PPD ΚΛΕΙΔΙ\n" " -n, --copies=NUM αριθμός αντιγράφων κάθε σελίδας\n" " -s, --sides=MODE εκτύπωση σε ΚΑΤΑΣΤΑΣΗ `simplex' (ή `1'),\n" " `dublex'(ή `2'), ή`tumble')\n" " -S, --setpagedevice=K[:V] ορισμός `page device' στην έξοδο\n" " --statusdict=K[:[:]V] ορισμός `statusdict' στην έξοδο\n" " -k, --page-prefeed ενεργοποίηση προτροφοδότησης σελίδας\n" " -K, --no-page-prefeed απενεργοποίηση προτροφοδότησης σελίδας\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Το a2ps είναι ρυθμισμένο νά κάνει αυτό πού επιθυμείτε, γι' αυτό " "εμπιστευτείτε το.\n" "Γιά νά εκτυπώσετε τό περιεχόμενο τού καταλόγου `src' μαζί μέ ένα\n" "πίνακα περιεχομένων μέσω τού εκτυπωτή `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Γιά νά επεξ/στείτε τό αρχείο `sample.ps' και `sample.html'\n" "καί νά εμφανιστεί τό αποτέλεσμα,\n" "\n" " $a2ps -P display sample.ps sample.html\n" "\n" "Γιά νά επεξ/στείτε ένα γραμματοκιβώτιο σέ 4 μινισελίδες,\n" "\n" " $a2ps -=mail -4 mailbox\n" "\n" "Γιά νά εκτυπώσετε υπό μορφή booklet στόν προεπιλεγμένο εκτυπωτή,\n" "πού είναι ικανός γιά εκτύπωση δύο όψεων\n" "\n" " $a2ps -book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Πίνακας περιεχομένων" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "επεξεργασία τού `%s' αδύνατη.Απαιτείται a2ps έκδοση %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "απρόσμενος `%c' χαρακτήρας" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "πάρα πολλά ενσωματούμενα αρχεία" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "δέν έχει προσδιοριστεί κλειδί γιά τό `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "αδύνατον νά βρώ τό αρχείο `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "αυτόματη επιλογή στύλ ακυρώθηκε" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "error running file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "αδύνατη η μεταγλώττιση τής κανονικής εκφράσεως `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Γνωστά φύλλα στύλ" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "αδύνατη η ανεύρεση φύλλου στύλ`%s': επιλογή τυπικού στύλ" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "μη έγκυρος αριθμός έκδοσης `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "space (i.e., ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (i.e., `\\001' etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (i.e., `\\x0a' etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (i.e., `^C', `M-^C' etc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e., `C-c', `M-C-c' etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "question-mark (i.e., `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Dynamic array `%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tload: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\tαρχικό μέγεθος: %zu, αύξηση: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Dynamic string:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "πάρα πολλές γραμματοσειρές με κλίση: `%s'" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "μη έγκυρη επιλογή `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Γνωστές κωδικοποιήσεις" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "ελλιπής γνώση μορφών" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "αδύνατον νά κλείσω τόν καταλογο `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "μη έγκυρο όρισμα `%s' γιά `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Εγκυρα ορίσματα είναι οι ακέραιοι n όπως: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Εγκυρα ορίσματα είναι οι πραγματικοί f όπως: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "κωδικοποίηση `%s' άγνωστη" #: liba2ps/madir.c:51 msgid "rows first" msgstr "πρώτα σειρές" #: liba2ps/madir.c:54 msgid "columns first" msgstr "πρώτα στήλες" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "χαρτί `%s' άγνωστο" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Γνωστά μεγέθη χαρτιού" #: liba2ps/media.c:189 msgid "Name" msgstr "Όνομα" #: liba2ps/media.c:190 msgid "dimensions" msgstr "διαστάσεις" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Γνωστές Μεταβλητές" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: `%c' απουσιάζουν γιά την μετά ακολουθία %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Εκτυπώθηκε από %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Εκτυπώθηκε από %s τήν %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "αύνατον νά προσδιορίσω τό τρέχοντα κατάλογο" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: όρισμα πάρα πολύ μακρύ γιά την μετά ακολουθία %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%b %d, %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%Α %d %Β %Υ" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: μετά ακολουθία `%s%c' (%d) άγνωστη" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Σελίδα %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Σελίδα %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: μη έγκυρος διαχωριστής `%s%c' γιά την μετά ακολουθία `%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: μη έγκυρο όρισμα γιά την μετά ακολουθία `%s%c'" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Σελίδα %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "εντολή εξόδου" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Πληκτρολογείστε `%s--help' γιά βοήθεια.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "μη έγκυρο αναγνωριστικό μεταβλητής `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "μη έγκυρη εικονική `γραμματοσειρά' `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' χωρίς αντίστοιχο `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Γνωστές γραμματοσειρές" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Ουδεμία\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Γνωστές περιγραφές εκτυπωτών PostScript (PPD)" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "μη έγκυρο διάστημα `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Προεπιλεγμένος εκτυπωτής" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Άγνωστος εκτυπωτής" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "δέν έχει οριστεί διαταγή γιά τόν εκτυπωτή `%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "στάλθηκε στήν πρότυπη έξοδο" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "στάλθηκε στόν προεπιλεγμενο εκτυπωτή" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "γράφτηκε στό αρχείο `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "στάλθηκε στόν εκτυπωτή `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Γνωστές έξοδοι (εκτυπωτές, κλπ.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Γνωστοί Πρόλογοι" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "γραμματοσειρά %f πολύ μεγάλη" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' είναι δυαδικό αρχείο : εκτύπωση ματαιώθηκε" #: liba2ps/userdata.c:104 msgid "user" msgstr "χρήστης" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Άγνωστος χρήστης" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "συντομογραφία επιλογής `%s' άγνωστη" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Γνωστές Συντομογραφίες Επιλογών" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "μνήμη εξαντλημένη" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "αδύνατη μετονομασία αρχείου `%s' σέ `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "αρχείο `%s' αποκαταστάθηκε" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1988-2017 Free Software Foundation, Inc." �������������������������������������������������������������������������������a2ps-4.15.5/po/en@boldquot.header�������������������������������������������������������������������0000644�0000000�0000000�00000002472�14415562264�013424� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/en@quot.header�����������������������������������������������������������������������0000644�0000000�0000000�00000002264�14415562264�012562� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/en_GB.gmo����������������������������������������������������������������������������0000644�0000000�0000000�00000024046�14445132165�011451� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v��z��z�� �����E��������E��!����������E���'�����m�� ��������+��$���?��,���d�� �����#�����!�����&�������������>�����N�����n�� ���w�� ���������� ���������� ����� ����������%�������� ����������0�����C�����S�����X�� ���a�����n�� �������������������������#����� ����&�������� �� ���/ ��+���< ��-���h ����� ����� �����V!�����t!�����!�����!�����!�����!�����!��'��� "�����5"�����I"��#���d"�����"��*���"�����"�����"��/���"��$���-#��$���R#�����w#�����#��2���#�����#�����#�� ���$�� ���)$�� ���4$��!���>$�����`$�����x$�����$�����$�����$�����$�����$�����$�����%�����.%�����D%�� ���X%�����y%�� ���%�����%�����%�����%�����%�����%�����&����� &�����&��\���1&�����&�����&�����&�����&�����&�����&�� ���&�����&�����'�����.'�����J'�����c'�����'�����'�����'�����'�����'�����'�����(�����(�����"(�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.13b Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2004-05-02 20:51-0400 Last-Translator: Gareth Owen <gowen72@yahoo.com> Language-Team: English (British) <en_gb@li.org> Language: en_GB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. � None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s centre title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %d %B, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/en_GB.po�����������������������������������������������������������������������������0000644�0000000�0000000�00000120150�14445132164�011275� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# English (British) translation. # Copyright (C) 2004 Free Software Foundation, Inc. # Gareth Owen <gowen72@yahoo.com>, 2004. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.13b\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2004-05-02 20:51-0400\n" "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n" "Language-Team: English (British) <en_gb@li.org>\n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "missing argument for `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "cannot create file `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "cannot open a pipe on `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegation `%s', from %s to %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Applications configured for delegation" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' is a directory" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "cannot open file `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "cannot get informations on file `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 page on 1 sheet]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d pages on 1 sheet]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d pages on %d sheets]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 page on 1 sheet] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Total: %d pages on 1 sheet] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Total: %d pages on %d sheets] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 line wrapped]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d lines wrapped]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[No output produced]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegated to %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): failed. Ignored]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (unprintable): ignored]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binary): ignored]\n" #: src/generate.c:350 msgid "plain" msgstr "plain" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "end-of-line in string constant" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "end of line inside a %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "received signal %d: %s" #: src/main.c:235 msgid "heavy" msgstr "heavy" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "none" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "yes" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "no" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Configuration status of %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Sheets:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " medium = %s%s, %s\n" " page layout = %d x %d, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %d\n" #: src/main.c:339 msgid "portrait" msgstr "portrait" #: src/main.c:339 msgid "landscape" msgstr "landscape" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d characters per line" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d lines per page" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "font size is %gpt" #: src/main.c:363 msgid "each line" msgstr "each line" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "each %d lines" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtual pages:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Headers:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " centre title = %s\n" " right title = %s\n" " under lay = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Input:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "selected automatically" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Pretty-printing:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "never make backups" #: src/main.c:456 msgid "simple backups of every file" msgstr "simple backups of every file" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "numbered backups of files already numbered,\n" " and simple of others" #: src/main.c:466 msgid "numbered backups of every file" msgstr "numbered backups of every file" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Output:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %d\n" " sides per sheet = %s\n" " page device definitions = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " statusdict definitions = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " page prefeed = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Internals:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with * require a yes/no argument, corresponding\n" "short options stand for `yes'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tasks:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files named FILES\n" " --glob report the full path of library files matching FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations, encodings, " "features,\n" " variables, media, ppd, printers, prologues, style-" "sheets,\n" " user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " "virtuals\n" " -A, --file-align=MODE align separate files according to MODE (fill, rank\n" " page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM precede each NUM lines with its line number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Headings:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --centre-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "The TEXTs may use special escapes.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" #: src/main.c:767 #, fuzzy msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" "print the content of the `src' directory and a table of content, and send " "the\n" "result to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is Duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Table of Content" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "cannot process `%s' which requires a2ps version %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "unexpected character `%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "too many includes" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "no key defined for `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "cannot find file `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automatic style selection cancelled" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "cannot compile regular expression `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Known Style Sheets" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "cannot find style sheet `%s': using plain style" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "invalid version number `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "space (i.e., ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (i.e., `\\001' etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (i.e., `\\x0a' etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (i.e., `^C', `M-^C' etc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e., `C-c', `M-C-c' etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "question-mark (i.e., `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "invalid option `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Known Encodings" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "incomplete knowledge of faces" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "cannot close directory `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "invalid argument `%s' for `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Valid arguments are integers n such that: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Valid arguments are floats f such that: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "unknown encoding `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "rows first" #: liba2ps/madir.c:54 msgid "columns first" msgstr "columns first" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "unknown medium `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Known Media" #: liba2ps/media.c:189 msgid "Name" msgstr "Name" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensions" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Known Variables" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: missing `%c' for %s%c escape" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Printed by %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Printed by %s from %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "cannot get current working directory" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: too long argument for %s escape" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%d %b, %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %d %B, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: unknown `%s' escape `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Page %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Page %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: invalid separator `%s%c' for `%s' escape" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: invalid argument for %s%c escape" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Page %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "output command" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Try `%s --help' for more information.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "invalid variable identifier `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "invalid face `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' with no matching `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Known Fonts" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " None.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Known PostScript Printer Descriptions" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "invalid interval `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Default Printer" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Unknown Printer" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "no command for the `%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "sent to the standard output" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "sent to the default printer" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "saved into the file `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "sent to the printer `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Known Outputs (Printers, etc.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Known Prologues" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "font %f too big" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' is a binary file, printing aborted" #: liba2ps/userdata.c:104 msgid "user" msgstr "user" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Unknown User" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "unknown user option `%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Known User Options" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Memory exhausted" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "cannot rename file `%s' as `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "restored file `%s'" #~ msgid "any type" #~ msgstr "any type" #, fuzzy #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "News, updates and documentation: visit http://www.inf.enst.fr/~demaille/" #~ "a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Report bugs to <bug-a2ps@gnu.org>.\n" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "unknown encoding `%s', ignored" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Written by %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgid "write error" #~ msgstr "write error" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "invalid definition for printer `%s': %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "obsolete `%s' entry. Ignored" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Page %d/%d" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "invalid argument %s for `%s'" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "ambiguous argument %s for `%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Valid arguments are:" #~ msgid "Unknown system error" #~ msgstr "Unknown system error" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: option `%s' is ambiguous\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: option `--%s' doesn't allow an argument\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: option `%c%s' doesn't allow an argument\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: option `%s' requires an argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: unrecognised option `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: unrecognised option `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: illegal option -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: invalid option -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: option requires an argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: option `-W %s' is ambiguous\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: option `-W %s' doesn't allow an argument\n" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/eo.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000024572�14445132165�011106� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�� �����N��������`��#���)�����M��H���l������� ���p�����}��'�����/����������%�����$���.��!���S�����u������������ ����� ����� ���������� �������������������� ���%��(���F�����o��������������������������� ���������������������������������"��*���+����V��(���s ����� ����� ��.��� ��0��� �����!�����1!�����!��"���"�����+"��!���J"�����l"�����"�� ���"��/���"�����"�����"��#���#�����?#��+���^#�����#�����#��5���#��(���#��)���"$��!���L$�����n$��6���$��'���$��.���$�� ���%�� ���*%�� ���4%��!���?%�����a%��!���y%�����%�����%�����%�����%�����%��!���&�����)&�����?&�����X&��"���p&�����&�����&�����&�����&�����&�� ���&�� ���'�����0'�����6'��#���>'��f���b'�����'�� ���'�����'�����'������(�����(�� ���3(�����?(�����^(�� ���q(�����(�����(��!���(�����(�����(�����)�����&)�����=)�����R)�����o)�����v)�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2012-01-15 14:23-0300 Last-Translator: Felipe Castro <fefcas@gmail.com> Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net> Language: eo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. � Nenio. � celo = %s versi-kontrolo = %s sekurkopia sufikso = %s � kaplinio = %s maldekstra piedo = %s piedo = %s dekstra piedo = %s maldekstra titolo = %s centra titolo = %s dekstra titolo = %s suba tavolo = %s � antaŭmeto de paĝo = %s � difinoj de statusdict = � stil-folio = %s reliefiga nivelo = %s apartiga nivelo = %d � tranĉi liniojn = %s interpreti = %s lini-fino = %s enkodigo = %s dokument-titolo = %s antaŭparolo = %s printi tamen = %s delegado = %s �%A %B %d, %Y�%s, delegite al %s�%s: malvalida argumento por eskapo %s%c�%s: malvalida apartigilo '%s%c' por eskapo '%s'�%s: mankas '%c' por eskapo %s%c�%s: tro longa argumento por eskapo %s�%s: nekonata '%s'-a eskapo '%c' (%d)�Aplikaĵoj agorditaj por delegado�Agorda stato de %s %s �Apriora Printilo�Delegado '%s', de %s al %s �Ĝenerale: �Kaplinioj: �Kaplinioj: �Enigo: �Internaĵoj: �Konataj enkodigoj�Konataj tiparoj�Konataj periloj�Konataj eligoj (printiloj, ktp.)�Konataj printil-priskriboj de PostScript�Konataj antaŭparoloj�Konataj stil-folioj�Konataj uzant-elektiloj�Konataj variabloj�Nomo�Eligo: �PostScript: �Ornam-printado: �Printite de %s�Printite de %s el %s�Folioj: �Enhavo�Taskoj: �La TEKSTOj povas uzi specialajn eskapojn. �La elektiloj -1.. -9 influas plurajn primitivajn parametrojn por agordi antaŭdifinitajn aranĝojn kun 80 kolumnoj. Tial la ordo gravas: '-R -f40 -2' estas same efika ol '-2'. Por modifi la aranĝon, uzu '2Rf40', aŭ kombinu primitivajn elektilojn ('--columns', --font-size' ktp.). �Provu '%s --help' por pli da informado. �Nekonata printilo�Nekonata uzanto�Validaj argumentoj estas reeloj f tiel ke: %s �Validaj argumentoj estas entjeroj n tiel ke: %s �Virtualaj paĝoj: �Kiam delegado estas ebligata, a2ps povas uzi aliajn aplikaĵojn por trakti la procezadon de dosieroj kiuj ne devos esti printataj kiel kruda informaro, t.e. HTML PostScript, PDF ktp. �[%s (%s): 1 paĝo en 1 folio] �[%s (%s): fiaskis. Preterpasite] �[%s (cifereca): preterpasite] �[%s (neprinteble): preterpasite] �[1 linio faldita] �[Neniu eligo produktite] �[Totalo: 1 paĝo en 1 folio] %s �'%s' estas cifereca dosiero, printado ĉesigita�'%s' estas dosierujo�'%s' kun neniu kongrua '%s'�aŭtomata elekto de stilo ĉesigite�ne eblas fermi dosierujon '%s'�ne eblas komplili regulan esprimon '%s': %s�ne eblas krei dosieron '%s'�ne eblas trovi dosieron '%s'�ne eblas trovi stil-folio '%s': ni uzas platan stilon�ne eblas akiri nunan aktualan dosierujon�ne eblas preni informojn pri dosiero '%s'�ne eblas malfermi dukton ĉe '%s'�ne eblas malfermi dosieron '%s'�ne eblas procezi '%s', kiu postulas version %s de a2ps�ne eblas renomigi dosieron '%s' al '%s'�tajpmontrile (caret) (t.e., '^C', 'M-^C' ktp.)�kolumnoj unue�dimensioj�ĉiu linio�emacs (i.e., 'C-c', 'M-C-c' ktp.)�lini-fino interne de %s�lini-fino en signoĉena konstanto�tiparo %f tro larĝas�tipar-grando estas %gpt�peza�deksesume (t.e., '\x0a' ktp.)�nekompleta kono de fasonoj�malvalida argumento '%s' por '%s'�malvalida fasono '%s'�malvalida intervalo '%s'�malvalida elektilo '%s'�malvalida variabla identigilo '%s'�malvalida versi-numero '%s'�pejzaĝo�mankas argumento por '%s'�neniam fari sekurkopiojn�ne�neniu komando por la '%s' (%s%s)�neniu ŝlosilo difinita por '%s'�nenia�normala�numerita sekurkopio de ĉiu dosiero�numeritaj sekurkopioj de dosieroj jam numerigitaj, kaj simpla por la aliaj�okume (t.e., '\001' ktp.)�eliga komando�plate�portreto�demando-signo (t.e., '?')�restarigis dosieron '%s'�linioj unue�konservite en la dosieron '%s'�elektita aŭtomate�sendite al la implicita printilo�sendite al la printilo '%s'�sendite al la ordinara eligo�simpla sekurkopio de ĉiu dosiero�spaco (t.e., ' ')�troaj inkluzivoj�neatendita signo '%c'�nekonata enkodigo '%s'�nekonata perilo '%s'�nekonata uzant-elektilo '%s'�uzanto�jes���������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/eo.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000124202�14445132164�010730� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Esperanto translation # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Felipe Castro <fefcas@gmail.com>, 2012. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2012-01-15 14:23-0300\n" "Last-Translator: Felipe Castro <fefcas@gmail.com>\n" "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "mankas argumento por '%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "ne eblas krei dosieron '%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "ne eblas malfermi dukton ĉe '%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegado '%s', de %s al %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplikaĵoj agorditaj por delegado" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "'%s' estas dosierujo" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "ne eblas malfermi dosieron '%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "ne eblas preni informojn pri dosiero '%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 paĝo en 1 folio]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d paĝoj en 1 folio]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d paĝoj en %d folioj]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totalo: 1 paĝo en 1 folio] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Totalo: %d paĝoj en 1 folio] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Totalo: %d paĝoj en %d folioj] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 linio faldita]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d linioj falditaj]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Neniu eligo produktite]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegite al %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): fiaskis. Preterpasite]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (neprinteble): preterpasite]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (cifereca): preterpasite]\n" #: src/generate.c:350 msgid "plain" msgstr "plate" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "lini-fino en signoĉena konstanto" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "lini-fino interne de %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "ricevis signalon %d: %s" #: src/main.c:235 msgid "heavy" msgstr "peza" #: src/main.c:239 msgid "normal" msgstr "normala" #: src/main.c:243 msgid "none" msgstr "nenia" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "jes" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ne" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Agorda stato de %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Folioj:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " perilo = %s%s, %s\n" " paĝa aranĝo = %d x %d, %s\n" " randoj = %s\n" " dosier-alliniigo = %s\n" " interna marĝeno = %d\n" #: src/main.c:339 msgid "portrait" msgstr "portreto" #: src/main.c:339 msgid "landscape" msgstr "pejzaĝo" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "po %d signoj por linio" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "po %d linioj por paĝo" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "tipar-grando estas %gpt" #: src/main.c:363 msgid "each line" msgstr "ĉiu linio" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "ĉiu %d linioj" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtualaj paĝoj:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " numerigi liniojn = %s\n" " formo = %s\n" " tabo-grando = %d\n" " neprintebla formo = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Kaplinioj:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " kaplinio = %s\n" " maldekstra piedo = %s\n" " piedo = %s\n" " dekstra piedo = %s\n" " maldekstra titolo = %s\n" " centra titolo = %s\n" " dekstra titolo = %s\n" " suba tavolo = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Enigo:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " tranĉi liniojn = %s\n" " interpreti = %s\n" " lini-fino = %s\n" " enkodigo = %s\n" " dokument-titolo = %s\n" " antaŭparolo = %s\n" " printi tamen = %s\n" " delegado = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "elektita aŭtomate" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Ornam-printado:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " stil-folio = %s\n" " reliefiga nivelo = %s\n" " apartiga nivelo = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "neniam fari sekurkopiojn" #: src/main.c:456 msgid "simple backups of every file" msgstr "simpla sekurkopio de ĉiu dosiero" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "numeritaj sekurkopioj de dosieroj jam numerigitaj,\n" " kaj simpla por la aliaj" #: src/main.c:466 msgid "numbered backups of every file" msgstr "numerita sekurkopio de ĉiu dosiero" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Eligo:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " celo = %s\n" " versi-kontrolo = %s\n" " sekurkopia sufikso = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magia numero = %s\n" " Printila Priskribo (PPD) = %s\n" " apriora PPD = %s\n" " formo de paĝ-etikedo = %s\n" " nombro da kopioj = %d\n" " flankoj por folio = %s\n" " paĝ-difinoj de aparato = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " difinoj de statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " antaŭmeto de paĝo = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Internaĵoj:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " informada nivelo = %d\n" " dosier-komando = %s\n" " vojo de biblioteko = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Usage: %s [ELEKTILO]... [DOSIERO]...\n" "\n" "Konverti DOSIERO(j)n aŭ ordinaran enigon al PostScript. Apriore, la eligo\n" "estas sendata al la implicita printilo. Eliga dosiero povas esti indikata " "per -o.\n" "\n" "Nepraj argumentoj por longaj elektiloj estas ankaŭ estas nepraj por " "mallongaj.\n" "Longaj elektiloj markitaj per * bezonas argumenton yes/no (jes/ne), rilataj\n" "mallongaj elektiloj funkcias kiel 'yes'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Taskoj:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version montrigi version\n" " --help montrigi tiun ĉi helpon\n" " --guess informi diveneblaj tipoj de DOSIEROJ\n" " --which informi la tutan vojon de bibliotek-dosieroj nomitaj " "DOSIEROJ\n" " --glob informi la tutam vojon de bibliotek-dosieroj kongruaj al " "DOSIEROJ\n" " --list=defaults montrigi apriorajn agordojn kaj parametrojn\n" " --list=TEMO detaliga listo pri TEMO (delegadoj, enkodigoj, trajtoj,\n" " variabloj, periloj, ppd, printiloj, antaŭparoloj, stil-" "folioj,\n" " uzant-elektiloj)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Post plenumo de la tasko, eliri plensukcese. Detaligaj listoj povas\n" "aldoni helpon pri specifaj trajtoj.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Ĝenerale:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent esti vere silenta\n" " -v, --verbose[=NIVELO] difini informadon al NIVELO\n" " -=, --user-option=ELEK uzi la uzant-difinitan tujkomandon ELEK\n" " --debug ebligi rafinigajn trajtojn\n" " -D, --define=ŜLO[:VALORO] maldifini variablon ŜLO aŭ difini ĝin kiel " "VALOROn\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NOMO uzi elig-perilon NOMO\n" " -r, --landscape printi laŭ pejẑaĝa reĝimo\n" " -R, --portrait printi laŭ portreta reĝimo\n" " --columns=NOMBRO nombro da kolumnoj por folio\n" " --rows=NOMBRO nombro da linioj por folio\n" " --major=DIREKTO unue plenigi (DIREKTO=) liniojn, aŭ kolumnojn\n" " -1, -2, ..., -9 antaŭdifinitaj tipar-grandoj kaj aranĝoj por 1.. 9 " "virtualoj\n" " -A, --file-align=REĜIMO allinigi apartajn dosierojn laŭ REĜIMO (fill: " "plenigi, rank: klasifiki\n" " page: paĝo, sheet: folio, aŭ numero)\n" " -j, --borders* printi borderojn ĉirkaŭ kolumnoj\n" " --margin[=NUM] difini internan marĝenon de grandeco NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "La elektiloj -1.. -9 influas plurajn primitivajn parametrojn por agordi " "antaŭdifinitajn\n" "aranĝojn kun 80 kolumnoj. Tial la ordo gravas: '-R -f40 -2' estas\n" "same efika ol '-2'. Por modifi la aranĝon, uzu '2Rf40', aŭ kombinu " "primitivajn\n" "elektilojn ('--columns', --font-size' ktp.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM prefiksi post ĉiu NUM linioj per ĝia lini-" "numero\n" " -C kromnomo por --line-numbers=5\n" " -f, --font-size=GRANDO uzi tipar-GRANDOn (reelo) por la ĉefa teksto\n" " -L, --lines-per-page=NUM skali la tiparon por printi po NUM linioj por " "virtualo\n" " -l, --chars-per-line=NUM skali la tiparon por printi po NUM kolumnoj por " "virtualo\n" " -m, --catman procezi DOSIERON kiel man-paĝo (same ol -L66)\n" " -T, --tabsize=NUM igi tabig-grandon al NUM\n" " --non-printable-format=FMT indiki kiel ne-printeblaj signoj estos " "printataj\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Kaplinioj:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header neniu ajn paĝkapo\n" " -b, --header[=TEKSTO] difini paĝkapon\n" " -u, --underlay[=TEKSTO] printi TEKSTOn je ĉiu paĝo\n" " --center-title[=TEKSTO] difini paĝtitolon al TEKSTO\n" " --rigth-title[=TEKSTO] difini dekstran kaj malan paĝtitolojn al TEKSTO\n" " --left-title[=TEKSTO]\n" " --right-footer[=TEKSTO] difini foli-piedojn al TEKSTO\n" " --footer[=TEKSTO]\n" " --left-footer[=TEKSTO]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "La TEKSTOj povas uzi specialajn eskapojn.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=RANGO] elekti la paĝojn por printi\n" " -c, --truncate-lines* tranĉi longajn liniojn\n" " -i, --interpret* interpreti tabon, bs kaj ff signojn\n" " --end-of-line=TIPO inidiki la signon eol (TIPO: r, n, nr, rn, " "any)\n" " -X, --encoding=NOMO uzi enigan enkodigon NOMO\n" " -t, --title=NOMO difini la nomon de la laboron\n" " --stdin=NOMO difini la nomon de la enigan dosieron stdin\n" " --print-anyway* devigi ciferecan printadon\n" " -Z, --delegate* delegi dosierojn al alia aplikaĵo\n" " --toc[=TEKSTO] generi enhavon\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Kiam delegado estas ebligata, a2ps povas uzi aliajn aplikaĵojn por trakti " "la\n" "procezadon de dosieroj kiuj ne devos esti printataj kiel kruda informaro, t." "e. HTML\n" "PostScript, PDF ktp.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LING] ebligi adorn-printadon (difini stilon al LING)\n" " --highlight-level=NIVELO difini NIVELOn de adorn-printada reliefigo\n" " NIVELO povas esti 'none' (nenia), 'normal' aŭ " "'heavy' (peza)\n" " -g kromnomo por --highlight-level=heavy\n" " --strip-level=NUM nivelo de forigo de komentoj\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=DOSI konduki eligon al dosiero DOSI. Se DOSI estos " "'-',\n" " konduki eligon al stdout.\n" " --version-control=VORTO preterpasi la kutiman versi-kontrolon\n" " --suffix=SUFIKSO preterpasi la kutiman sekurkopian sufikson\n" " -P, --printer=NAME konduki eligon al printilon NOMo\n" " -d konduki eligon al la implicita printilo\n" " (tio ĉi estas la apriora konduto)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=DOSI inkluzivi DOSI.pro kiel antaŭparolo de " "PostScript\n" " --ppd[=ŜLO] aŭtomata elekto de PPD aŭ difini kiel ŜLO\n" " -n, --copies=NUM printi NUM kopiojn de ĉiu paĝo\n" " -s, --sides=MODE difini la REĜIMOn duplex ('1' aŭ 'simplex',\n" " '2' aŭ 'duplex', 'tumble')\n" " -S, --setpagedevice=K[:V] pasi paĝ-aparatan difinon al eligo\n" " --statusdict=K[:[:]V] pasi difinon 'statusdict' al la eligo\n" " -k, --page-prefeed ebligi antaŭmeton de paĝo\n" " -K, --no-page-prefeed malebligi antaŭmeton de paĝo\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Apriore a2ps estas agordita por fari kion vi volas, do fidu ĝin. Por\n" "adorn-printi la enhavon de dosierujo 'src' kaj enhav-tabelon, kaj sendi la\n" "rezulton al la printilo 'lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Por procezi la dosierojn 'specimeno.ps' kaj `specimeno.html' kaj montrigi la " "rezulton,\n" "\n" " $ a2ps -P display specimeno.ps specimeno.html\n" "\n" "Por procezi mailbox po 4 paĝe,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Por printi as kiel libreto en la implicita printilo, kiu estu kapabla pri " "Duplex,\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Enhavo" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "ne eblas procezi '%s', kiu postulas version %s de a2ps" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "neatendita signo '%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "troaj inkluzivoj" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "neniu ŝlosilo difinita por '%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "ne eblas trovi dosieron '%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "aŭtomata elekto de stilo ĉesigite" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "ne eblas komplili regulan esprimon '%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Konataj stil-folioj" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "ne eblas trovi stil-folio '%s': ni uzas platan stilon" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "malvalida versi-numero '%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "spaco (t.e., ' ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "okume (t.e., '\\001' ktp.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "deksesume (t.e., '\\x0a' ktp.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "tajpmontrile (caret) (t.e., '^C', 'M-^C' ktp.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e., 'C-c', 'M-C-c' ktp.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "demando-signo (t.e., '?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "malvalida elektilo '%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Konataj enkodigoj" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "nekompleta kono de fasonoj" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "ne eblas fermi dosierujon '%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "malvalida argumento '%s' por '%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Validaj argumentoj estas entjeroj n tiel ke: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Validaj argumentoj estas reeloj f tiel ke: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "nekonata enkodigo '%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "linioj unue" #: liba2ps/madir.c:54 msgid "columns first" msgstr "kolumnoj unue" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "nekonata perilo '%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Konataj periloj" #: liba2ps/media.c:189 msgid "Name" msgstr "Nomo" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensioj" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Konataj variabloj" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: mankas '%c' por eskapo %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Printite de %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Printite de %s el %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "ne eblas akiri nunan aktualan dosierujon" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: tro longa argumento por eskapo %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%b %d, %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: nekonata '%s'-a eskapo '%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Paĝo %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Paĝo %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: malvalida apartigilo '%s%c' por eskapo '%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: malvalida argumento por eskapo %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Paĝo %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "eliga komando" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Provu '%s --help' por pli da informado.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "malvalida variabla identigilo '%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "malvalida fasono '%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "'%s' kun neniu kongrua '%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Konataj tiparoj" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Nenio.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Konataj printil-priskriboj de PostScript" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "malvalida intervalo '%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Apriora Printilo" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Nekonata printilo" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "neniu komando por la '%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "sendite al la ordinara eligo" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "sendite al la implicita printilo" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "konservite en la dosieron '%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "sendite al la printilo '%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Konataj eligoj (printiloj, ktp.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Konataj antaŭparoloj" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "tiparo %f tro larĝas" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "'%s' estas cifereca dosiero, printado ĉesigita" #: liba2ps/userdata.c:104 msgid "user" msgstr "uzanto" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Nekonata uzanto" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "nekonata uzant-elektilo '%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Konataj uzant-elektiloj" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Memoro eluzita" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "ne eblas renomigi dosieron '%s' al '%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "restarigis dosieron '%s'" #~ msgid "any type" #~ msgstr "iu ajn tipo" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Novaĵoj, ĝisdatigoj kaj dokumentado: vizitu http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Informu misojn al <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Kopirajto (c) 1988-1993 Miguel Santana\n" #~ "Kopirajto (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Kopirajto (c) 2007- Akim Demaille, Miguel Santana kaj Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "ne konata enkodigo '%s', preterpasite" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Kopyrajto (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Verkite de %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Tio ĉi estas libera programaro; vidu la kodumaĵon por kopi-kondiĉoj. " #~ "Ekzistas NENIU\n" #~ "garantio; eĉ ne por MERKATIGO aŭ TAŬGO POR PRIVATA CELO.\n" #~ msgid "write error" #~ msgstr "skriba eraro" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "malvalida difino por printilo '%s': %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "malaktuala kampon '%s'. Preteratentite" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Paĝo %d/%d" #~ msgid "`" #~ msgstr "'" #~ msgid "'" #~ msgstr "'" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "malvalida argumento %s por '%s'" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "dusenca argumento %s por '%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Validaj argumentoj estas:" #~ msgid "Unknown system error" #~ msgstr "Nekonata sistema eraro" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: elektilo '%s' estas dusenca\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: elektilo '--%s' ne permesas argumenton\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: elektilo '%c%s' ne permesas argumenton\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: elektilo '%s' postulas argumenton\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: ne rekonita elektilo '--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: ne rekonita elektilo '%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: malpermesata elektilo -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: malvalida elektilo -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: elektilo postulas argumenton -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: elektilo '-W %s' estas dusenca\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: elektilo '-W %s' ne permesas argumenton\n" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/es.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000065213�14445132165�011107� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�����7��,���7�� ���7��H�� 8����R;��Z��=��*��TA����C����E����H��X��3K��_��M��|���N����iO��#��nP�����Q�����?R��!���R�����R��a��� S����kS��X���qT�� ���T�����T�����T��8���T��C���*U��/���nU��<���U��6���U�����V�����+V�����BV��-���V��J��W��"���LY�����oY�����Y�����Y�����Y�����Y�� ���Y�����Y�� ���Y�����Z�����Z�����.Z�����GZ��/���ZZ��/���Z�����Z�����Z�����Z�����[�����[�����![�� ���*[�����6[�����E[�� ���U[�����b[�����x[�����[�����[�����[�����[��;���[��+���\��+���,]�����X]�����n]����]��3���?_��4���s_�����_�����_��%���`��"���`�����`�� ���`�����a�����*a�����Ja�����ca�����xa��&���a��#���a�� ���a��5���b�����7b��!���Ob��-���qb��'���b��5���b��#���b��'���!c��K���Ic��+���c��3���c��*���c��#��� d��9���Dd��3���~d��(���d�����d�� ���d�����d�� ���e��$���e�����9e��%���We�����}e��'���e��#���e�����e��"���e��4���f��&���Cf�����jf�����f�����f��*���f��$���f�����g�����g����� g�����<g�����[g��#���^g��"���g�����g�����g��-���g��n���g�����Qh�����nh�� ���~h�����h�����h�����h�����h�� ���h�����h�����i��"���!i�����Di�����bi��-���i�����i�����i��#���i�����j�� ���j�����>j��%���Wj�����}j�����j�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-01-28 13:55+0100 Last-Translator: Antonio Ceballos Roa <aceballos@gmail.com> Language-Team: Spanish <es@tp.org.es> Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); � carga: %zu/%zu (%2.1f%%) � tamaño original: %zu, crecimiento: %s %zu � Ninguna. � --line-numbers=NUM numera una de cada NUM líneas -C igual que --line-numbers=5 -f, --font-size=TAMAÑO usa TAMAÑO (real) de letra para el texto principal -L, --lines-per-page=NUM cambia a escala el tamaño de letra para imprimir NUM líneas por página -l, --chars-per-page=NUM cambia a escala el tamaño de letra para imprimir NUM columnas por página -m, --catman procesa FICHERO como una página de manual (igual que -L66) -T, --tabsize=NUM establece el tamaño de tabulación a NUM --non-printable-format=FMT indica cómo imprimir los caracteres no visibles � --prologue=FICH incluye FICH.pro como prólogo PostScript --ppd[=CLAVE] selección automática de PPD o puesta a CLAVE -n, --copies=NUM imprime NUM copias de cada página -s, --sides=MODO Establece el MODO dúplex (`1' o `simplex', `2' o `duplex', `tumble') -S, --setpagedevice=K[:V] pasa definición de dispositivo de página a la salida --statusdict=K[:[:]V] pasa definición statusdict a la salida -k, --page-prefeed activa la precarga de papel -K, --no-page-prefeed desactiva la precarga de papel � --version muestra la versión --help muestra esta ayuda --guess informa de los tipos de FICHEROS adivinados --which informa de la ruta completa de los ficheros de biblioteca llamados FICHEROS --glob informa de la ruta completa de los ficheros de biblioteca coincidentes con FICHEROS --list=defaults muestra los ajustes y los parámetros predefinidos --list=CATEGORÍA lista destallada sobre CATEGORÍA (delegaciones, codificaciones, características, vaiables, medios, ppd, impresoras, prólogos, hojas de estilo, opciones de usuario) � -B, --no-header sin encabezamientos de página -b, --header[=TEXTO] establece el encabezamiento de página -u, --underlay[=TEXTO] imprime TEXTO debajo de cada página --center-title[=TEXTO] establece TEXTO como título de página --left-title[=TEXTO] establece TEXTO como título de página izquierdo o derecho --right-title[=TEXTO] --left-footer[=TEXTO] establece TEXTO como pie de página --footer[=TEXTO] --right-footer[=TEXTO] � -E, --pretty-print[=LENG] activa la impresión estilosa (con el estilo LENG) --highlight-level=NIVEL indica el NIVEL de color para impresión estilosa (none, normal, heavy) -g alias para --highlight-level=heavy --strip-level=NUM nivel de supresión de comentarios � -M, --medium=NOMBRE utiliza el soporte de salida NOMBRE -r, --landscape imprime en apaisado -R, --portrait imprime en vertical --columns=NUM número de columnas por hoja --rows=NUM número de líneas por hoja --major=DIRECCIÓN rellena primero (DIRECCIÓN=) filas(row) o columnas(column) -1, -2, ..., -9 tamaños de letra y diseños predef. para los virtuales 1.. 9 -A, --file-align=MODO alinea distintos ficheros según el MODO (relleno(fill), página de categoría(rank page), hoja(sheet) o un número) -j, --borders* imprime bordes alrededor de las columnas --margin[=NUM] define un margen interior de tamaño NUM � -a, --pages[=RANGO] selecciona las páginas a imprimir -c, --truncate-lines* trunca las líneas largas -i, --interpret* interpreta los tab, bs y ff --end-of-line=TIPO especifica el fin de línea (r, n, nr, rn, any) -X, --encoding=NOMBRE utiliza la codif. de entrada NOMBRE -t, --title=NOMBRE pone el NOMBRE al trabajo --stdin=NOMBRE pone el NOMBRE a la entrada estándar --print-anyway* fuerza impresión binaria -Z, --delegate* delega ficheros a otras aplicaciones --toc[=TEXTO] genera una tabla de contenidos � -o, --output=FICHERO guarda la salida en el FICHERO. Si FICHERO es '-', la redirige a la salida estándar. --version-control=PALABRA sobrescribe el control de versión actual --suffix=SUFIJO sobrescribe el sufijo de copia de seguridad actual -P, --printer=NOMBRE envía la salida a la impresora NOMBRE -d envía la salida a la impresora por defecto (este es el comportamiento predefinido) � -q, --quiet, --silent no muestra ningún mensaje -v, --verbose[=NIVEL] activa la verbosidad, o ponerla al NIVEL -=, --user-option=OPCIÓN emplea la OPCIÓN abreviada del usuario --debug activa las funciones de depuración -D, --define=CLAVE[:VALOR] quita CLAVE de variable o le poner VALOR � destino = %s control de versión = %s sufijo de las copias de seguridad = %s � encabezamiento = %s pie de página izquierdo = %s pie de página = %s pie de página derecho = %s tí­tulo izquierdo = %s tí­tulo centrado = %s tí­tulo derecho = %s marca de agua = %s � número mágico = %s Descripción de la Impresora (PPD) = %s PPD por defecto = %s formato del rótulo de página = %s número de copias = %u caras por hoja = %s definiciones dispositivo página = � soporte = %s, %s diseño de página = %zu x %zu, %s bordes = %s alineamiento de fichero = %s margen interior = %u � numeración de líneas = %s formato = %s tamaño de tabulación = %u caracteres no imprimibles = %s � precarga del papel = %s � definiciones statusdict = � hoja de estilo = %s nivel de color = %s supresión de comentarios = %d � truncar las líneas = %s interpretar tab, ff y bs = %s fin de línea = %s codificación = %s título del documento = %s prólogo = %s imprimir los binarios = %s delegando = %s � nivel de verbosidad = %u orden de fichero = %s ruta a biblioteca = �%A %d %B %Y�%d %b %Y�%s, delegado a %s�%s: argumento inválido para la secuencia de escape %s%c�%s: separador inválido «%s%c» para la secuencia de escape «%s»�%s: falta `%c' para la secuencia de escape %s%c�%s: argumento demasiado largo para la secuencia de escape %s�%s: secuencia de escape «%s» «%c» (%d) desconocida�%u caracteres por línea�%u líneas por página�Tras haber realizado la tarea, sale correctamente. Las listas detalladas pueden proporcionar ayuda adicional sobre características concretas. �Aplicaciones configuradas para la delegación�Por defecto a2ps está ajustado para hacer lo que usted necesita, fíese. Para impresión estilosa del contenido del directorio «src» y de un índice de materias, y envío del resultado a la impresora 'lw', $ a2ps -P lw --toc src/* Para procesar los ficheros `muestra.ps' y `muestra.html' y mostrar el resultado, $ a2ps -P display muestra.ps muestra.html Para procesar un buzón de correo a 4 páginas por hoja, $ a2ps -=mail -4 mailbox Para escribir como un folleto en la impresora predeterminada, la cual tiene capacidad dúplex, $ a2ps -=book paper.dvi.gz -d�Estado de configuración de %s %s �Impresora por defecto�Delegación «%s», de %s a %s �Matriz dinámica `%s': �Cadena dinámica: �Global: �Cabeceras: �Encabezamientos: �Entrada: �Detalles internos: �Codificaciones conocidas�Tipos de letra Conocidos�Soportes Conocidos�Destinos de salida conocidos (impresoras, etc.)�Descripciones de Impresora Postscript Conocidas�Prólogos conocidos�Hojas de Estilo Conocidas�Opciones de Usuario Conocidas�Variables Conocidas�Nombre�Salida: �Página %zu�Página %zu/%c�Página %zu/%zu�PostScript: �Impresión estilosa: �Impreso por %s�Impreso por %s desde %s�Hojas: �Tabla de Contenidos�Tareas: �Los TEXTos pueden emplear caracteres de escape especiales. �Las opciones -1..-9 afectan a varios parámetros primitivos para configurar diseños predefinidos con 80 columnas. Por lo tanto el orden importa: «-R -f40 -2» es equivalente a «-2». Para modificar el diseño, emplee `-2Rf40', o componga opciones primitivas (`--columns', `--font-size', etc.). �Pruebe `%s --help' para más información. �Impresora Desconocida�Usuario Desconocido�Modo de empleo: %s [OPCIÓN]... [FICHERO]... Convierte los FICHERO(s) o la entrada estándar a PostScript. Por defecto, la salida se envía a la impresora predeterminada. Se puede especificar un fichero de salida con -o. Los argumentos obligatorios para las opciones largas también son obligatorios para las cortas. Las opciones largas marcadas con `*' requieren un argumento sí/no; las correspondientes opciones cortas suponen un `sí'. �Los argumentos válidos son reales f tales que: %s �Los argumentos válidos son enteros n tales que: %s �Páginas virtuales: �Cuando las delegaciones están activadas, a2ps puede encargar a otras aplicaciones el procesamiento de ficheros que no deben imprimirse como información en bruto, p. ej., HTML, PostScript, PDF, etc. �[%s (%s): %zu páginas en %zu hojas] �[%s (%s): %zu páginas en 1 hoja] �[%s (%s): 1 página en 1 hoja] �[%s (%s): ha fallado. Ignorado] �[%s (binario): ignorado] �[%s (no imprimible): ignorado] �[%zu líneas envueltas] �[1 línea envuelta] �[No se ha producido salida] �[Total: %zu páginas en %zu hojas] %s �[Total: %zu páginas en 1 hoja] %s �[Total: 1 página en 1 hoja] %s �«%s» es un fichero binario, impresión interrumpida�«%s» es un directorio�«%s» sin correspondiente «%s»�cancelada la selección automática de estilo�no se puede cerrar el directorio «%s»�no se puede compilar la expresión regular «%s»: %s�no se puede crear el fichero «%s»�no se puede encontrar el fichero «%s»�no se puede encontrar la hoja de estilo «%s»: utilizando estilo estándar�no se puede determinar el directorio actual�no se puede obtener información del fichero «%s»�no se puede abrir una tuberí­a en «%s»�no se puede abrir el fichero «%s»�no se puede procesar «%s» que requiere a2ps versión %s�no se puede renombrar el fichero «%s» como «%s»�circunflejo (p. ej., `^C', `M-^C', etc.)�primero columnas�dimensiones�cada %u líneas�cada línea�emacs (p. ej., `C-c', `M-C-c', etc.)�fin de línea dentro de un %s�fin de línea en una cadena constante�error ejecutando file(1)�el tipo de letra %f es demasiado grande�el tamaño de la letra es %g puntos�máximo�hexadecimal (p. ej., `\x0a', etc.)�conocimiento incompleto de los estilos de caracteres�argumento inválido «%s» para «%s»�opción inválida «%s»�intervalo inválido «%s»�opción inválida «%s»�identificador de variable «%s» inválido�número de versión inválido «%s»�apaisado�memoria agotada�falta argumento para «%s»�nunca hace copias de seguridad�no�ninguna orden para el «%s» (%s%s)�ninguna clave definida para «%s»�ninguno�normal�copias de seguridad numeradas de cada fichero�copias de seguridad numeradas de los ficheros ya numerados, y simples de los otros�octal (p. ej., `\001', etc.)�orden de salida�estándar�vertical�interrogación (p. ej., `?')�recibida SIG%s�fichero restaurado «%s»�primero filas�guardado en el fichero «%s»�seleccionado automáticamente�enviado a la impresora por defecto�enviado a la impresora «%s»�enviado a la salida estándar�copias de seguridad simples para cada fichero�espacio (p. ej., « »)�demasiados inclusiones�demasiadas fuentes inclinadas: `%s'�carácter inesperado «%c»�codificación desconocida «%s»�medio desconocido «%s»�opción de usuario desconocida «%s»�usuario�sí­��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/es.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000112616�14445132164�010742� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mensajes en español para a2ps. # Copyright (C) 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Miguel Ángel Varó Giner <mvaro@dlsi.ua.es>, 1998. # Francisco Javier Serrador <fserrador@gmail.com>, 2018. # Antonio Ceballos Roa <aceballos@gmail.com>, 2018, 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-01-28 13:55+0100\n" "Last-Translator: Antonio Ceballos Roa <aceballos@gmail.com>\n" "Language-Team: Spanish <es@tp.org.es>\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "falta argumento para «%s»" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "no se puede crear el fichero «%s»" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "no se puede abrir una tuberí­a en «%s»" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegación «%s», de %s a %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplicaciones configuradas para la delegación" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "«%s» es un directorio" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "no se puede abrir el fichero «%s»" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "no se puede obtener información del fichero «%s»" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 página en 1 hoja]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu páginas en 1 hoja]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu páginas en %zu hojas]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 página en 1 hoja] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Total: %zu páginas en 1 hoja] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Total: %zu páginas en %zu hojas] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 línea envuelta]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu líneas envueltas]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[No se ha producido salida]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegado a %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ha fallado. Ignorado]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (no imprimible): ignorado]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binario): ignorado]\n" #: src/generate.c:350 msgid "plain" msgstr "estándar" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "fin de línea en una cadena constante" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "fin de línea dentro de un %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "recibida SIG%s" #: src/main.c:235 msgid "heavy" msgstr "máximo" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "ninguno" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "sí­" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "no" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Estado de configuración de %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Hojas:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " soporte = %s, %s\n" " diseño de página = %zu x %zu, %s\n" " bordes = %s\n" " alineamiento de fichero = %s\n" " margen interior = %u\n" #: src/main.c:339 msgid "portrait" msgstr "vertical" #: src/main.c:339 msgid "landscape" msgstr "apaisado" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u caracteres por línea" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u líneas por página" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "el tamaño de la letra es %g puntos" #: src/main.c:363 msgid "each line" msgstr "cada línea" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "cada %u líneas" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Páginas virtuales:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " numeración de líneas = %s\n" " formato = %s\n" " tamaño de tabulación = %u\n" " caracteres no imprimibles = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Cabeceras:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " encabezamiento = %s\n" " pie de página izquierdo = %s\n" " pie de página = %s\n" " pie de página derecho = %s\n" " tí­tulo izquierdo = %s\n" " tí­tulo centrado = %s\n" " tí­tulo derecho = %s\n" " marca de agua = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Entrada:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " truncar las líneas = %s\n" " interpretar tab, ff y bs = %s\n" " fin de línea = %s\n" " codificación = %s\n" " título del documento = %s\n" " prólogo = %s\n" " imprimir los binarios = %s\n" " delegando = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "seleccionado automáticamente" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Impresión estilosa:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " hoja de estilo = %s\n" " nivel de color = %s\n" " supresión de comentarios = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "nunca hace copias de seguridad" #: src/main.c:456 msgid "simple backups of every file" msgstr "copias de seguridad simples para cada fichero" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "copias de seguridad numeradas de los ficheros ya numerados,\n" " y simples de los otros" #: src/main.c:466 msgid "numbered backups of every file" msgstr "copias de seguridad numeradas de cada fichero" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Salida:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destino = %s\n" " control de versión = %s\n" " sufijo de las copias de seguridad = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " número mágico = %s\n" " Descripción de la Impresora (PPD) = %s\n" " PPD por defecto = %s\n" " formato del rótulo de página = %s\n" " número de copias = %u\n" " caras por hoja = %s\n" " definiciones dispositivo página = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definiciones statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " precarga del papel = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Detalles internos:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " nivel de verbosidad = %u\n" " orden de fichero = %s\n" " ruta a biblioteca = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Modo de empleo: %s [OPCIÓN]... [FICHERO]...\n" "\n" "Convierte los FICHERO(s) o la entrada estándar a PostScript. Por defecto,\n" "la salida se envía a la impresora predeterminada. Se puede especificar un\n" "fichero de salida con -o.\n" "\n" "Los argumentos obligatorios para las opciones largas también son " "obligatorios\n" "para las cortas. Las opciones largas marcadas con `*' requieren un " "argumento\n" "sí/no; las correspondientes opciones cortas suponen un `sí'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tareas:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version muestra la versión\n" " --help muestra esta ayuda\n" " --guess informa de los tipos de FICHEROS " "adivinados\n" " --which informa de la ruta completa de los " "ficheros\n" " de biblioteca llamados FICHEROS\n" " --glob informa de la ruta completa de los " "ficheros\n" " de biblioteca coincidentes con FICHEROS\n" " --list=defaults muestra los ajustes y los parámetros " "predefinidos\n" " --list=CATEGORÍA lista destallada sobre CATEGORÍA " "(delegaciones,\n" " codificaciones, características, vaiables, " "medios,\n" " ppd, impresoras, prólogos, hojas de " "estilo,\n" " opciones de usuario)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Tras haber realizado la tarea, sale correctamente. Las listas detalladas\n" "pueden proporcionar ayuda adicional sobre características concretas.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent no muestra ningún mensaje\n" " -v, --verbose[=NIVEL] activa la verbosidad, o ponerla al NIVEL\n" " -=, --user-option=OPCIÓN emplea la OPCIÓN abreviada del usuario\n" " --debug activa las funciones de depuración\n" " -D, --define=CLAVE[:VALOR] quita CLAVE de variable o le poner VALOR\n" #  TODO review: fill, rank #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NOMBRE utiliza el soporte de salida NOMBRE\n" " -r, --landscape imprime en apaisado\n" " -R, --portrait imprime en vertical\n" " --columns=NUM número de columnas por hoja\n" " --rows=NUM número de líneas por hoja\n" " --major=DIRECCIÓN rellena primero (DIRECCIÓN=) filas(row)\n" " o columnas(column)\n" " -1, -2, ..., -9 tamaños de letra y diseños predef.\n" " para los virtuales 1.. 9\n" " -A, --file-align=MODO alinea distintos ficheros según el MODO\n" " (relleno(fill), página de categoría(rank " "page),\n" " hoja(sheet) o un número)\n" " -j, --borders* imprime bordes alrededor de las columnas\n" " --margin[=NUM] define un margen interior de tamaño NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Las opciones -1..-9 afectan a varios parámetros primitivos para configurar\n" "diseños predefinidos con 80 columnas. Por lo tanto el orden importa:\n" "«-R -f40 -2» es equivalente a «-2». Para modificar el diseño, emplee\n" "`-2Rf40', o componga opciones primitivas (`--columns', `--font-size', " "etc.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM numera una de cada NUM líneas\n" " -C igual que --line-numbers=5\n" " -f, --font-size=TAMAÑO usa TAMAÑO (real) de letra para el texto\n" " principal\n" " -L, --lines-per-page=NUM cambia a escala el tamaño de letra para\n" " imprimir NUM líneas por página\n" " -l, --chars-per-page=NUM cambia a escala el tamaño de letra para\n" " imprimir NUM columnas por página\n" " -m, --catman procesa FICHERO como una página de manual\n" " (igual que -L66)\n" " -T, --tabsize=NUM establece el tamaño de tabulación a NUM\n" " --non-printable-format=FMT indica cómo imprimir los caracteres\n" " no visibles\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Encabezamientos:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header sin encabezamientos de página\n" " -b, --header[=TEXTO] establece el encabezamiento de página\n" " -u, --underlay[=TEXTO] imprime TEXTO debajo de cada página\n" " --center-title[=TEXTO] establece TEXTO como título de página\n" " --left-title[=TEXTO] establece TEXTO como título de página\n" " izquierdo o derecho\n" " --right-title[=TEXTO]\n" " --left-footer[=TEXTO] establece TEXTO como pie de página\n" " --footer[=TEXTO]\n" " --right-footer[=TEXTO]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "Los TEXTos pueden emplear caracteres de escape especiales.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=RANGO] selecciona las páginas a imprimir\n" " -c, --truncate-lines* trunca las líneas largas\n" " -i, --interpret* interpreta los tab, bs y ff\n" " --end-of-line=TIPO especifica el fin de línea (r, n, nr, rn, " "any)\n" " -X, --encoding=NOMBRE utiliza la codif. de entrada NOMBRE\n" " -t, --title=NOMBRE pone el NOMBRE al trabajo\n" " --stdin=NOMBRE pone el NOMBRE a la entrada estándar\n" " --print-anyway* fuerza impresión binaria\n" " -Z, --delegate* delega ficheros a otras aplicaciones\n" " --toc[=TEXTO] genera una tabla de contenidos\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Cuando las delegaciones están activadas, a2ps puede encargar a otras\n" "aplicaciones el procesamiento de ficheros que no deben imprimirse como\n" "información en bruto, p. ej., HTML, PostScript, PDF, etc.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LENG] activa la impresión estilosa (con el\n" " estilo LENG)\n" " --highlight-level=NIVEL indica el NIVEL de color para impresión\n" " estilosa (none, normal, heavy)\n" " -g alias para --highlight-level=heavy\n" " --strip-level=NUM nivel de supresión de comentarios\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FICHERO guarda la salida en el FICHERO.\n" " Si FICHERO es '-', la redirige a la\n" " salida estándar.\n" " --version-control=PALABRA sobrescribe el control de versión actual\n" " --suffix=SUFIJO sobrescribe el sufijo de copia de\n" " seguridad actual \n" " -P, --printer=NOMBRE envía la salida a la impresora NOMBRE\n" " -d envía la salida a la impresora por defecto\n" " (este es el comportamiento predefinido)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FICH incluye FICH.pro como prólogo PostScript\n" " --ppd[=CLAVE] selección automática de PPD o puesta a " "CLAVE\n" " -n, --copies=NUM imprime NUM copias de cada página\n" " -s, --sides=MODO Establece el MODO dúplex (`1' o `simplex',\n" " `2' o `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pasa definición de dispositivo de página\n" " a la salida\n" " --statusdict=K[:[:]V] pasa definición statusdict a la salida\n" " -k, --page-prefeed activa la precarga de papel\n" " -K, --no-page-prefeed desactiva la precarga de papel\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Por defecto a2ps está ajustado para hacer lo que usted necesita, fíese. " "Para\n" "impresión estilosa del contenido del directorio «src» y de un índice de\n" "materias, y envío del resultado a la impresora 'lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Para procesar los ficheros `muestra.ps' y `muestra.html' y mostrar el " "resultado,\n" "\n" " $ a2ps -P display muestra.ps muestra.html\n" "\n" "Para procesar un buzón de correo a 4 páginas por hoja,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Para escribir como un folleto en la impresora predeterminada, la cual tiene\n" "capacidad dúplex,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Tabla de Contenidos" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "no se puede procesar «%s» que requiere a2ps versión %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "carácter inesperado «%c»" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "demasiados inclusiones" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "ninguna clave definida para «%s»" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "no se puede encontrar el fichero «%s»" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "cancelada la selección automática de estilo" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "error ejecutando file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "no se puede compilar la expresión regular «%s»: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Hojas de Estilo Conocidas" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" "no se puede encontrar la hoja de estilo «%s»: utilizando estilo estándar" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "número de versión inválido «%s»" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "espacio (p. ej., « »)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (p. ej., `\\001', etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (p. ej., `\\x0a', etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "circunflejo (p. ej., `^C', `M-^C', etc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (p. ej., `C-c', `M-C-c', etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "interrogación (p. ej., `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Matriz dinámica `%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tcarga: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\ttamaño original: %zu, crecimiento: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Cadena dinámica:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "demasiadas fuentes inclinadas: `%s'" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "opción inválida «%s»" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Codificaciones conocidas" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "conocimiento incompleto de los estilos de caracteres" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "no se puede cerrar el directorio «%s»" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argumento inválido «%s» para «%s»" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Los argumentos válidos son enteros n tales que: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Los argumentos válidos son reales f tales que: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "codificación desconocida «%s»" #: liba2ps/madir.c:51 msgid "rows first" msgstr "primero filas" #: liba2ps/madir.c:54 msgid "columns first" msgstr "primero columnas" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "medio desconocido «%s»" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Soportes Conocidos" #: liba2ps/media.c:189 msgid "Name" msgstr "Nombre" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensiones" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variables Conocidas" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: falta `%c' para la secuencia de escape %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Impreso por %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Impreso por %s desde %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "no se puede determinar el directorio actual" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argumento demasiado largo para la secuencia de escape %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%d %b %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: secuencia de escape «%s» «%c» (%d) desconocida" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Página %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Página %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separador inválido «%s%c» para la secuencia de escape «%s»" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argumento inválido para la secuencia de escape %s%c" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Página %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "orden de salida" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pruebe `%s --help' para más información.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificador de variable «%s» inválido" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "opción inválida «%s»" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "«%s» sin correspondiente «%s»" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Tipos de letra Conocidos" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Ninguna.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Descripciones de Impresora Postscript Conocidas" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "intervalo inválido «%s»" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Impresora por defecto" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Impresora Desconocida" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "ninguna orden para el «%s» (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "enviado a la salida estándar" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "enviado a la impresora por defecto" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "guardado en el fichero «%s»" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "enviado a la impresora «%s»" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Destinos de salida conocidos (impresoras, etc.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Prólogos conocidos" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "el tipo de letra %f es demasiado grande" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "«%s» es un fichero binario, impresión interrumpida" #: liba2ps/userdata.c:104 msgid "user" msgstr "usuario" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Usuario Desconocido" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "opción de usuario desconocida «%s»" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Opciones de Usuario Conocidas" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "memoria agotada" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "no se puede renombrar el fichero «%s» como «%s»" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "fichero restaurado «%s»" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "cualquiera" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Noticias, actualizaciones y documentación: visite http://www.gnu.org/" #~ "software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Informar de defectos a <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana y Masayuki Hatta" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "codificación desconocida «%s», ignorada" #~ msgid "Written by %s.\n" #~ msgstr "Escrito por %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Esto es software libre; vea el código fuente para las condiciones de " #~ "copia.\n" #~ "No hay NINGUNA garantí­a; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA " #~ "UN\n" #~ "FIN DETERMINADO.\n" #~ msgid "write error" #~ msgstr "error de escritura" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "definición inválida para la impresora «%s»: %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "entrada «%s» obsoleta. Ignorada" #~ msgid "Page %d/%d" #~ msgstr "Página %d/%d" #~ msgid "`" #~ msgstr "«" #~ msgid "'" #~ msgstr "»" #~ msgid "invalid argument %s for `%s'" #~ msgstr "argumento inválido %s para «%s»" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argumento %s ambiguo para «%s»" #~ msgid "Valid arguments are:" #~ msgstr "Los argumentos válidos son:" #~ msgid "Unknown system error" #~ msgstr "Error de sistema desconocido" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: la opción «%s» es ambigua\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: la opción «--%s» no permite un argumento\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: la opción `%c%s' no permite un argumento\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: la opción «%s» precisa un argumento\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: opción desconocida «--%s»\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: opción desconocida `%c%s'\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opción ilegal -- %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: opción inválida -- %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: la opción precisa un argumento -- %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: la opción `-W %s' es ambigua\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: la opción `-W %s' no permite un argumento\n" ������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/et.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000031453�14445132165�011107� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������< ������P �����Q ��$���k �� ��� ��E��� ����� ����� �����f��p�����!���Z�����|��E����������O����� ����� ����������$��� ��,���2�� ���_��#�����!���������������&�������������5�����E�����e�����z������� ����� ���������� ���������� ����� ����������%��������*�����:�����M�����`�����p�����u�����~�� ����� ����� ���������� �������������������������#����� ��)��&���7�����^�� ���n��+���{��-���������������#����� �����������������������-�����J�����_�����q��$�����!����������'�������������)��#���D�����h��*���������������/�����$��� ��$���2�����W�����r��2��������������� ����� ��� �� ����� ���"��!���,�����N�����f���������������������������������������� �����2�����H�� ���\�����}�� ������������������������������������������� �����'��\���F������������������������������������� ��������"�����;�����R�����n����������������������������������������/�����C�����\�����a��x��e������������ ��� ��M���& �����t �����/!�����"��u���"��!���#�����>#��I���]#�����#��S���k$�� ���$�� ���$�����$��"���$��(���%�����8%��$���V%��#���{%�����%�� ���%��&���%�����%�����%����� &�����(&�����D&�� ���Y&�� ���f&�� ���p&�����z&�� ���&�����&�� ���&�� ���&��#���&��)���&����� '�����'�����/'�����F'�����V'�� ���['�� ���f'�����t'�����'�� ���'�� ���'�� ���'�����'�����'�����'�����'��0���'��9��(��%���R)�����x)�����)��5���)��6���)����� *�����#*��$���*��&���*��&���+��$���8+�����]+��"���|+�����+�����+�����+��%���+��'���,��'���/,��)���W,�����,��'���,��"���,��"���,��2����-�����3-�����O-��,���b-�����-��,���-�����-�����-��0���.��+���@.�����l.�� ���.�� ���.�����.�����.��!���.�����.�����.����� /�����$/�����:/�����O/��+���U/�����/��!���/�����/�����/�����/��"���/�����0�� ���30�����A0�����P0�����m0�����0�����0�����0�����0�� ���0��!���0��P���0��#���@1�� ���d1�� ���r1�� ���|1�����1�����1�����1�� ���1�����1�����1������2�����2�����92�����W2�����u2�����2��!���2�����2�����2�����2�����3�����3�����'3���������Z���b���<����������4��������������A���U����������������������W���������� ���E�������������v�������.��� ���F������"���*���������������������[�����������������D���Q��������������,������`���+���z������������|���j���o���P���)���:���������c���6���0����������7����������s���T����������-������5���=���1���]��� �����������@������8����������������V���N���q����������9���G�������������������\���������������������2���m���>������_���{���f������S���?�������������������a������l���������������������H�������}���u���$���i���^������C�������y���'���O�������Y���t���e�������#���M���������k�����������x��� ���L������ ���I�����������J������� ���w�������!���p������&���%���(���d���g������B���h�������������������K���3���X���r���/������~���;�������n���R���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.92 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2022-08-12 19:26+0300 Last-Translator: Toomas Soome <tsoome@me.com> Language-Team: Estonian <linux-ee@lists.eenet.ee> Language: et MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. � kasutatud: %zu/%zu (%2.1f%%) � algsuurus: %zu, kasv: %s %zu � Pole. � sihtpunkt = %s versioonikontroll = %s varukoopia sufiks = %s � päis = %s vasak jalus = %s jalus = %s parem jalus = %s vasak tiitel = %s keskmine tiitel = %s parem tiitel = %s vesimärk = %s � maagiline number = %s printeri kirjeldus (PPD) = %s vaikimisi PPD = %s paberi märgendi formaat = %s koopiate arv = %u külgi lehel = %s seadmedefinitsioonid = � meedia = %s, %s lehekülje suurus = %zu x %zu, %s piirid = %s faili asetus = %s sisemine piir = %u � nummerdada read = %s formaat = %s tabulaatori suurus = %u mittetrükitav formaat = %s � eelleht = %s � statusdict definitsioonid = � stiilileht = %s esiletõste tase = %s puhastamise tase = %d � lühenda ridu = %s interpreteeri = %s realõpp = %s kodeering = %s dokumendi tiitel = %s proloog = %s trüki igal juhul = %s delegeerimine = %s � infotase = %u käsk `file' = %s teekide otsingutee = �%A, %d. %B %Y�%d. %b %Y�%s, delegeeritud: %s�%s: vigane argument paojadale %s%c�%s: vigane eraldaja `%s%c' paojadas `%s'�%s: `%c' puudub paojadas %s%c�%s: liiga pikk argument paojadale %s�%s: tundmatu `%s' paojada `%c' (%d)�%u sümbolit real�%u rida lehel�Delegeerimiseks seadistatud rakendused�%s %s seadete olek �Vaikimisi trükkal�Delegeerin `%s', %s -> %s �Dünaamiline massiiv `%s': �Dünaamiline sõne: �Globaalsed: �Päised: �Päised: �Sisend: �Siseinfo: �Tuntud kodeeringud�Tuntud kirjad�Tuntud meedia�Tuntud väljundid (trükkalid jne.)�Tuntud postskript trükkalite kirjeldused�Tuntud proloogid�Tuntud stiililehed�Tuntud kasutajavõtmed�Tuntud muutujad�Nimi�Väljund: �Lehekülg %zu�Lehekülg %zu/%c�Lehekülg %zu/%zu�Postskript: �Ilutrükk: �Trükkis %s�Trükkis %s @ %s�Lehed: �Sisukord�Tööd: �TEKST võib sisaldada spetsiaalseid paojadasid. �Võtmed -1.. -9 mõjutavad mitmeid võtmeid, et seada ettedefineeritud 80 veeruline lehekülje paigutus. Seetõttu on oluline ka võtmete järjestus: `-R -f40 -2' annab sama tulemuse, kui `-2'. Et paigutust muuta, tuleks kasutada kas `-2Rf40', või kasutada üksikuid võtmeid (`--columns', `--font-size' jne.). �Info saamiseks proovige `%s --help'. �Tundmatu trükkal�Tundmatu kasutaja�Lubatud argumendid on murdarvud f, nagu näiteks: %s �Lubatud argumendid on täisarvud n, nagu näiteks: %s �Virtuaalsed leheküljed: �Kui delegeerimine on lubatud, võib a2ps kasutada teisi rakendusi, et käsitleda faile, mida ei peaks otse trükkima, näiteks HTML, postskript, PDF jne. faile. �[%s (%s): %zu lehekülge %zu lehel] �[%s (%s): %zu lehekülge ühel lehel] �[%s (%s): üks lehekülg ühel lehel] �[%s (%s): ebaõnnestus. Ignoreerin] �[%s (kahendfail): ignoreerin] �[%s (mittetrükitav): ignoreerin] �[%zu rida poolitatud] �[üks rida poolitatud] �[Väljundit pole] �[Kokku: %zu lehekülge %zu lehel] %s �[Kokku: %zu lehekülge ühel lehel] %s �[Kokku: üks lehekülg ühel lehel] %s �`%s' on kahendfail, katkestan trükkimise�`%s' on kataloog�leidsin `%s', millel puudub vastav `%s'�automaatne stiilivalik katkestatud�ei õnnestu sulgeda kataloogi `%s'�ei õnnestu kompileerida regulaaravaldist `%s': %s�faili `%s' ei õnnestu luua�ei leia faili `%s'�ei leia stiililehte `%s': kasutan lihtstiili�ei leia jooksvat töökataloogi�faili `%s' atribuutide lugemine ebaõnnestus�ei õnnestu luua toru `%s'�ei saa avada faili `%s'�`%s' ei saa töödelda, nõuab a2ps versiooni %s�failile `%s' ei õnnestu anda uut nime `%s'�katus (s.t., `^C', `M-^C' jne.)�veerud enne�mõõtmed�iga %u rea järel�iga rida�emacs (s.t., `C-c', `M-C-c' jne.)�realõpp %s sees�realõpp sõnekonstandis�viga file(1) käivitamisel�kiri %f on liiga suur�kirja suurus on %gpt�tugev�kuueteistkümnendnumber (s.t., `\x0a' jne.)�puudulik info kirjadest�vigane argument `%s' võtmel `%s'�vigane kiri `%s'�vigane intervall `%s'�vigane võti `%s'�vigane muutuja identifikaator `%s'�vigane versiooninumber `%s'�rõhtpaigutus�mälu on otsas�võtmel `%s' puudub argument�ära tee varukoopiaid�ei�`%s' (%s%s) tarvis puudub käsk�`%s' jaoks puudub võti�pole�normaalne�nummerdatud koopiad igast failist�nummerdatud koopiad failidest, mis on juba nummerdatud ja lihtne koopia teistest�kaheksandnumber (s.t., `\001' jne.)�väljundkäsk�lihttekst�püstpaigutus�küsimärk (s.t., `?')�sain signaali SIG%s�taastasin faili `%s'�read enne�salvestatud faili `%s'�automaatselt valitud�saadetud vaikimisi trükkalile�saadetud trükkalile `%s'�saadetud standardväljundisse�lihtsad koopiad igast failist�tühik (s.t., ` ')�liiga palju lisasid�liiga palju kaldkirja fonte: `%s'�ootamatu sümbol `%c'�tundmatu kodeering `%s'�tundmatu meedium `%s'�tundmatu kasutajavõti `%s'�kasutaja�jah����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/et.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000112777�14445132164�010753� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is distributed under the same license as the a2ps package. # Estonian translations for a2ps. # Copyright (C) 2000 Free Software Foundation, Inc. # Toomas Soome <Toomas.Soome@microlink.ee>, 2022. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.92\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2022-08-12 19:26+0300\n" "Last-Translator: Toomas Soome <tsoome@me.com>\n" "Language-Team: Estonian <linux-ee@lists.eenet.ee>\n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "võtmel `%s' puudub argument" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "faili `%s' ei õnnestu luua" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "ei õnnestu luua toru `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegeerin `%s', %s -> %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Delegeerimiseks seadistatud rakendused" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' on kataloog" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "ei saa avada faili `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "faili `%s' atribuutide lugemine ebaõnnestus" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): üks lehekülg ühel lehel]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu lehekülge ühel lehel]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu lehekülge %zu lehel]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Kokku: üks lehekülg ühel lehel] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Kokku: %zu lehekülge ühel lehel] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Kokku: %zu lehekülge %zu lehel] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[üks rida poolitatud]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu rida poolitatud]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Väljundit pole]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegeeritud: %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ebaõnnestus. Ignoreerin]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (mittetrükitav): ignoreerin]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (kahendfail): ignoreerin]\n" #: src/generate.c:350 msgid "plain" msgstr "lihttekst" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "realõpp sõnekonstandis" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "realõpp %s sees" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "sain signaali SIG%s" #: src/main.c:235 msgid "heavy" msgstr "tugev" #: src/main.c:239 msgid "normal" msgstr "normaalne" #: src/main.c:243 msgid "none" msgstr "pole" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "jah" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ei" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "%s %s seadete olek\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Lehed:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " meedia = %s, %s\n" " lehekülje suurus = %zu x %zu, %s\n" " piirid = %s\n" " faili asetus = %s\n" " sisemine piir = %u\n" #: src/main.c:339 msgid "portrait" msgstr "püstpaigutus" #: src/main.c:339 msgid "landscape" msgstr "rõhtpaigutus" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u sümbolit real" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u rida lehel" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "kirja suurus on %gpt" #: src/main.c:363 msgid "each line" msgstr "iga rida" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "iga %u rea järel" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtuaalsed leheküljed:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " nummerdada read = %s\n" " formaat = %s\n" " tabulaatori suurus = %u\n" " mittetrükitav formaat = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Päised:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " päis = %s\n" " vasak jalus = %s\n" " jalus = %s\n" " parem jalus = %s\n" " vasak tiitel = %s\n" " keskmine tiitel = %s\n" " parem tiitel = %s\n" " vesimärk = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Sisend:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " lühenda ridu = %s\n" " interpreteeri = %s\n" " realõpp = %s\n" " kodeering = %s\n" " dokumendi tiitel = %s\n" " proloog = %s\n" " trüki igal juhul = %s\n" " delegeerimine = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "automaatselt valitud" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Ilutrükk:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " stiilileht = %s\n" " esiletõste tase = %s\n" " puhastamise tase = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "ära tee varukoopiaid" #: src/main.c:456 msgid "simple backups of every file" msgstr "lihtsad koopiad igast failist" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "nummerdatud koopiad failidest, mis on juba nummerdatud\n" "ja lihtne koopia teistest" #: src/main.c:466 msgid "numbered backups of every file" msgstr "nummerdatud koopiad igast failist" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Väljund:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " sihtpunkt = %s\n" " versioonikontroll = %s\n" " varukoopia sufiks = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "Postskript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " maagiline number = %s\n" " printeri kirjeldus (PPD) = %s\n" " vaikimisi PPD = %s\n" " paberi märgendi formaat = %s\n" " koopiate arv = %u\n" " külgi lehel = %s\n" " seadmedefinitsioonid = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " statusdict definitsioonid = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " eelleht = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Siseinfo:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " infotase = %u\n" " käsk `file' = %s\n" " teekide otsingutee = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with `*' require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Kasuta: %s [VÕTI]... [FAIL]...\n" "\n" "Teisenda FAIL(id) või standardsisend postskripti. Vaikimisi saadetakse " "väljund\n" "vaikimisi printerisse. Väljundfaili saab määrata võtmega -o.\n" "\n" "Pikkade võtmete kohustuslikud argumendid on kohustuslikud ka lühikestele\n" "võtmetele. `*' sümboliga märgitud pikad võtmed nõuavad jah/ei argumenti,\n" "vastavad lühikesed võtmed kasutavad argumenti `jah'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tööd:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version näita versiooni\n" " --help abiinfo\n" " --guess näita FAILide arvatavad tüübid\n" " --which näita FAILide nimega teekide täistee\n" " --glob näita FAILide nimega sobivate teekide täistee\n" " --list=defaults näita vaikimisi seaded ja parameetrid\n" " --list=TEEMA TEEMA detailne info (delegeerimised, kodeeringud, " "omadused\n" " muutujad, meedia, ppd, trükkalid, proloogid, stiililehed\n" " kasutajavõtmed)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Peale soovitud töö lõpetamist lõpetab programm edukalt töö. Detailsed\n" "listingud võivad anda teile lisainfot programmi omaduste kohta.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Globaalsed:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet. --silent ole vaikne\n" " -v. --verbose[=TASE] luba info esitus, sea infoedastuse TASE\n" " -=, --user-option=VÕTI kasuta kasutaja defineeritud VÕTIt\n" " --debug luba silumisteated\n" " -D, --define=VÕTI[:VÄÄRTUS] kustuta muutuja VÕTI või sea tema VÄÄRTUS\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NIMI kasuta väljundmeediumina NIMI\n" " -r, --landscape trüki rõhtpaigutuses\n" " -R, --portrait trüki püstpaigutuses\n" " --columns=NUMBER veerge lehele\n" " --rows=NUMBER ridu lehele\n" " --major=SUUND esiteks täida (SUUND=) read või veerud\n" " -1, -2, ..., -9 defineeritud kirja suurused ja asetused 1.. 9 " "virtualile\n" " -A, --file-align=MOOD paiguta erinevad failid vastavalt MOODile (fill, " "rank\n" " page, sheet või number)\n" " -j, --borders* trüki veergude ümber raamid\n" " --margin[=NUMBER] devineeri sisemine raam suurusega NUMBER\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Võtmed -1.. -9 mõjutavad mitmeid võtmeid, et seada ettedefineeritud 80\n" "veeruline lehekülje paigutus. Seetõttu on oluline ka võtmete järjestus:\n" "`-R -f40 -2' annab sama tulemuse, kui `-2'. Et paigutust muuta, tuleks\n" "kasutada kas `-2Rf40', või kasutada üksikuid võtmeid (`--columns', \n" "`--font-size' jne.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM kirjuta iga NUM rea algusse selle rea number\n" " -C lühivorm võtmele --line-numbers=5\n" " -f, --font-size=SUURUS kasuta teksti kehas kirja SUURUSt (murdarv)\n" " -L, --lines-per-page=NUM skaleeri kirja trükkimaks NUM rida virtualile\n" " -l, --chars-per-line=NUM skaleeri kirja trükkimaks NUM veergu " "virtualile\n" " -m, --catman töötle FAILi kui manuali (sama kui -L66)\n" " -T, --tabsize=NUM sea tabulaatori suurus\n" " --non-printable-format=FMT määra, kuidas trükkida mitte-trükitavaid " "sümboleid\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Päised:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header ära kasuta päiseid\n" " -b, --header[=TEKST] sea lehe päis\n" " -u, --underlay[=TEKST] trüki TEKST vesimärgina (s.t. iga lehe alla)\n" " --center-title[=TEKST] sea lehe tiitel\n" " --left-title[=TEKST] sea lehe vasak ja parem tiitel\n" " --right-title[=TEKST]\n" " --left-footer[=TEKST] sea lehe jalustekstid\n" " --footer[=TEKST]\n" " --right-footer[=TEKST]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEKST võib sisaldada spetsiaalseid paojadasid.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=VAHEMIK] vali trükkimiseks lehed\n" " -c, --truncate-lines* lühenda pikad read\n" " -i, --interpret* interpreteeri tab, bs ja ff sümboleid\n" " --end-of-line=TÜÜP määra realõpu sümbol (TÜÜP: r, n, nr, rn, " "muud)\n" " -X, --encoding=NIMI kasuta sisendi kodeeringuna NIMI\n" " -t, --title=NIMI sea töö nimi\n" " --stdin=NIMI sea standardsisendi mini\n" " --print-anyway* trüki ka kahendfailid\n" " -Z, --delegate* delegeeri failid teistele rakendustele\n" " --toc[=TEKST] genereeri sisukord\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Kui delegeerimine on lubatud, võib a2ps kasutada teisi rakendusi, et " "käsitleda\n" "faile, mida ei peaks otse trükkima, näiteks HTML, postskript, PDF jne. " "faile.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=KEEL] luba ilutrükk (määra kasutatav stiil)\n" " --highlight-level=TASE sea ilutrüki märksõnade esiletõste tase\n" " TASE võib olla none, normal või heavy\n" " -g sünonüüm võtmele --highlight-level=heavy\n" " --strip-level=NUMBER kommentaaride eemaldamise tase\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FAIL jäta väljund faili FAIL. Kui FAIL on `-',\n" " jäta väljund standardväljundisse.\n" " --version-control=SÕNA defineeri uus versioonikontroll\n" " --suffix=SUFIKS defineeri uus varukoopia sufiks\n" " -P, --printer=NIMI saada väljund trükkalisse NIMI\n" " -d saada väljund vaikimisi trükkalisse\n" " (see on vaikimisi seaistus)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FAIL kasuta FAIL.pro PostScript proloogina\n" " --ppd[=VÕTI] automaatne PPD valik või vali VÕTI\n" " -n, --copies=NUMBER trüki igast lehest NUMBER koopiat\n" " -s, --sides=MOOD sea dupleksmood (`1' või `simplex',\n" " `2' või `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] saada väljundisse lehe seadme definitsioon\n" " --statusdict=K[:[:]V] saada väljundisse statusdict definitsioon\n" " -k, --page-prefeed luba eelleht\n" " -K, --no-page-prefeed keela eelleht\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "a2ps on vaikimisi seatud töötama nii, nagu te seda soovite, usaldage teda.\n" "\n" "Kui on vaja ilutrükki kasutades trükkida kataloog `src' koos sisukorraga \n" "trükkalile `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Et töödelda failid `sample.ps' ja `sample.html' ning näidata tulemust,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "Töödelda kirjakast 4 lehte ühele,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Trüki voldik vaikimisi printerile, mis on võimeline trükkima lehe mõlemale\n" "poolele,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Sisukord" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "`%s' ei saa töödelda, nõuab a2ps versiooni %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "ootamatu sümbol `%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "liiga palju lisasid" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "`%s' jaoks puudub võti" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "ei leia faili `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automaatne stiilivalik katkestatud" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "viga file(1) käivitamisel" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "ei õnnestu kompileerida regulaaravaldist `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Tuntud stiililehed" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "ei leia stiililehte `%s': kasutan lihtstiili" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "vigane versiooninumber `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "tühik (s.t., ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "kaheksandnumber (s.t., `\\001' jne.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "kuueteistkümnendnumber (s.t., `\\x0a' jne.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "katus (s.t., `^C', `M-^C' jne.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (s.t., `C-c', `M-C-c' jne.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "küsimärk (s.t., `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Dünaamiline massiiv `%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tkasutatud: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\talgsuurus: %zu, kasv: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Dünaamiline sõne:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "liiga palju kaldkirja fonte: `%s'" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "vigane võti `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Tuntud kodeeringud" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "puudulik info kirjadest" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "ei õnnestu sulgeda kataloogi `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "vigane argument `%s' võtmel `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Lubatud argumendid on täisarvud n, nagu näiteks: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Lubatud argumendid on murdarvud f, nagu näiteks: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "tundmatu kodeering `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "read enne" #: liba2ps/madir.c:54 msgid "columns first" msgstr "veerud enne" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "tundmatu meedium `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Tuntud meedia" #: liba2ps/media.c:189 msgid "Name" msgstr "Nimi" #: liba2ps/media.c:190 msgid "dimensions" msgstr "mõõtmed" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Tuntud muutujad" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: `%c' puudub paojadas %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Trükkis %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Trükkis %s @ %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "ei leia jooksvat töökataloogi" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: liiga pikk argument paojadale %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%d. %b %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A, %d. %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: tundmatu `%s' paojada `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Lehekülg %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Lehekülg %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: vigane eraldaja `%s%c' paojadas `%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: vigane argument paojadale %s%c" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Lehekülg %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "väljundkäsk" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Info saamiseks proovige `%s --help'.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "vigane muutuja identifikaator `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "vigane kiri `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "leidsin `%s', millel puudub vastav `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Tuntud kirjad" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Pole.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Tuntud postskript trükkalite kirjeldused" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "vigane intervall `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Vaikimisi trükkal" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Tundmatu trükkal" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "`%s' (%s%s) tarvis puudub käsk" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "saadetud standardväljundisse" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "saadetud vaikimisi trükkalile" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "salvestatud faili `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "saadetud trükkalile `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Tuntud väljundid (trükkalid jne.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Tuntud proloogid" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "kiri %f on liiga suur" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' on kahendfail, katkestan trükkimise" #: liba2ps/userdata.c:104 msgid "user" msgstr "kasutaja" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Tundmatu kasutaja" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "tundmatu kasutajavõti `%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Tuntud kasutajavõtmed" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "mälu on otsas" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "failile `%s' ei õnnestu anda uut nime `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "taastasin faili `%s'" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Autoriõigus (C) 1988-2017 Free Software Foundation, Inc." �a2ps-4.15.5/po/fi.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000025745�14445132165�011104� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�������f��������y��#���I�� ���m��O��������������������+�����7�����)���>��-���h��3�����&������������� ��#����� ���?�� ���I�� ���S�����`�� ���i�����u������������$�����-��������������� ���3�����T�����g�� ���l�� ���v������� �������������������� �����,�����P�� ��9���[!�����!�����!��:���!��=���!�����9"�����K"�����"��,���#��(���D#��,���m#�����#�����#��!���#��3���#�����$��$���)$��'���N$��)���v$��<���$��$���$�����%��Z���%�����z%��.���%��/���%��'���%��D��� &��>���e&��&���&�����&�����&�� ���&�� ���&����� '�����''�����F'�����_'�����t'��(���{'��%���'��,���'�����'�����(�����+(��%���G(�����m(�� ���(�����(�����(�����(�����(��(���(�� ���)�� ���!)��)���,)��t���V)��!���)�� ���)�����)�� ��� *�����*�����5*�� ���R*�����^*�����}*�����*�� ���*�����*��,���*�����+�����:+�����U+�����m+�����+��)���+�� ���+�����+�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2009-02-24 21:37+02:00 Last-Translator: Lauri Nurmi <lanurmi@iki.fi> Language-Team: Finnish <translation-team-fi@lists.sourceforge.net> Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. � Ei mitään. � määränpää = %s versiokontrolli = %s varmuuskopion jälkiliite = %s � otsikko = %s vasen alatunniste = %s alatunniste = %s oikea alatunniste = %s vasen ylätunniste = %s keskiylätunniste = %s oikea ylätunniste = %s ”vesileima” = %s � sivun esisyöttö = %s � statusdict-määritteet = � tyylisäännöstö = %s korostustaso = %s kommenttienkarsintataso = %d � rivien katkaisu = %s tulkitse = %s rivinvaihtotyyppi = %s koodaus = %s asiakirjan otsikko = %s prologi = %s tulosta joka tapauksessa = %s delegointi = %s �%A, %e. %Bta %Y�%s, delegoitu %s:lle�%s: epäkelpo parametri ohjausmerkille %s%c�%s: epäkelpo erotin ”%s%c” ohjausmerkille ”%s”�%s: puuttuva ”%c” ohjausmerkille %s%c�%s: liian pitkä paramteri %s -ohjausmerkille�%s: tuntematon ”%s” -ohjausmerkki ”%c” (%d)�Delegointiin konfiguroidut sovellukset�%s:n konfiguraatiotila %s �Oletustulostin�Delegointi ”%s”, %s:sta %s:ksi �Yleiset: �Otsikot: �Tunnisteet: �Syöte: �Sisäiset: �Tunnetut koodaukset�Tunnetut kirjasimet�Tunnetut paperikoot�Tunnetut tulosteet (tulostimet jne.)�Tunnetut PostScript-tulostinten määritykset�Tunnetut prologit�Tunnetut tyylisäännöstöt�Tunnetut käyttäjän valitsimet�Tunnetut muuttujat�Nimi�Tuloste: �PostScript: �Kaunotulostus: �Tulostanut %s�Tulostanut %s %s:sta�Arkit: �Sisällysluettelo�Tehtävät: �TEKSTIssä voi käyttää erikoismerkkejä. �Valitsimet -1.. -9 vaikuttavat useisiin primitiivisiin parametreihin esiasetetun 80 kolumnin asemoinnin alustamiseksi. Tämän vuoksi järjestyksellä on väliä: ”-R -f40 -2” on sama kuin ”-2”. Muokataksesi asemointia vaihda järjestykseksi ”-2Rf40” tai käytä primitiivisiä valitsimia (`--columns', `--font-size' jne.). �Kokeile komentoa ”%s --help” lisätiedon saamiseksi. �Tuntematon tulostin�Tuntematon käyttäjä�Kelvollisia parametrejä ovat liukuluvut f niin että: %s �Kelvollisia parametrejä ovat kokonaisluvut n niin että: %s �Näennäissivut: �Kun delegointi on käytössä, a2ps voi käyttää muita ohjelmia sellaisten tiedostojen käsittelyyn, joita ei tulisi tulostaa sellaisenaan, esim. HTML PostScript, PDF jne. �[%s (%s): 1 sivu 1 arkilla] �[%s (%s): epäonnistui. Jätetty huomiotta] �[%s (binäärinen): jätetty huomiotta] �[%s (tulostuskelvoton): jätetty huomiotta] �[1 rivi rivitetty] �[Ei vastetta] �[Yhteensä: 1 sivu 1 arkilla] %s �”%s” on binääritiedosto, tulostus keskeytetty�”%s” on hakemisto�Pariton ”%s” (puuttuva ”%s”)�automaattinen tyylin valinta peruutettu�hakemiston ”%s” sulkeminen ei onnistu�kännnös ei onnistu säännölliselle lausekkeelle `%s': %s�tiedoston ”%s” luonti ei onnistu�tiedostoa ”%s” ei löydy�tyylisäännöstöä ”%s” ei löydy: käytetään tyylittelemätöntä säännöstöä�työhakemiston luku ei onnistu�tietojen keruu tiedostosta ”%s” ei onnistu�Putken avaaminen kohteeseen ”%s” ei onnistu�Tiedoston ”%s” avaaminen ei onnistu�”%s”:n käsittely ei onnistu, sillä se vaatii a2ps:n version %s�Ei voida uudelleennimetä tiedostoa ”%s” nimellä ”%s”�caret (siis ”^C”, ”M-^C” jne.)�sarakkeet ensin�mitat�joka rivi�emacs (siis `C-c', `M-C-c' jne.)�rivin loppu %s:n sisällä�rivin loppu merkkijonovakiossa�kirjasin %f on liian iso�kirjasinkoko on %gpt�raskas�heksadesimaalinen (siis ”\x0a” jne.)�epätäydellinen ulkoasujen tietämys�”%s” on epäkelpo parametri ”%s”:lle�epäkelpo ulkoasu ”%s”�Epäkelpo väli ”%s”�epäkelpo valitsin ”%s”�epäkelpo muuttujan tunniste ”%s”�epäkelpo versionumero ”%s”�vaakatulostus�”%s” vaatii parametrin�ei varmuuskopioita�ei�ei komentoa ”%s”:lle (%s%s)�”%s”:lle ei ole määritelty avainta�ei_mitään�tavallinen�numeroidut varmuuskopiot joka tiedostosta�numeroidut varmuuskopiot ennestään numeroiduista tiedostoista ja yksinkertaiset muista�oktaalinen (siis ”\001” jne.)�tulostekäsky�pelkkä teksti�pystytulostus�kysymysmerkki (siis ”?”)�palautettu tiedosto ”%s”�rivit ensin�talletettu tiedostoon ”%s”�valittu automaattisesti�lähetetty oletustulosimelle�lähetetty tulostimelle ”%s”�lähetetty oletustulosteeseen�yksinkertainen varmuuskopio joka tiedostosta�välilyönti (siis ” ”)�liian monta sisällytystä�odottamaton merkki `%c'�tuntematon koodaus ”%s”�tuntematon paperikoko ”%s”�tuntematon käyttäjän valitsin ”%s”�käyttäjä�kyllä����������������������������a2ps-4.15.5/po/fi.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000126432�14445132164�010732� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Finnish translation of a2ps. # This file is distributed under the same license as the a2ps package. # Copyright © 2002, 2009 Free Software Foundation, Inc. # Matti Koskimies <matti@apulanta.fi>, 2002. # Lauri Nurmi <lanurmi@iki.fi>, 2009. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2009-02-24 21:37+02:00\n" "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n" "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "”%s” vaatii parametrin" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "tiedoston ”%s” luonti ei onnistu" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "Putken avaaminen kohteeseen ”%s” ei onnistu" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegointi ”%s”, %s:sta %s:ksi\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Delegointiin konfiguroidut sovellukset" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "”%s” on hakemisto" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "Tiedoston ”%s” avaaminen ei onnistu" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "tietojen keruu tiedostosta ”%s” ei onnistu" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 sivu 1 arkilla]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d sivua 1 arkilla]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d sivua %d arkilla]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Yhteensä: 1 sivu 1 arkilla] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Yhteensä: %d sivua 1 arkilla] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Yhteensä: %d sivua %d arkilla] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 rivi rivitetty]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d riviä rivitetty]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Ei vastetta]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegoitu %s:lle" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): epäonnistui. Jätetty huomiotta]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (tulostuskelvoton): jätetty huomiotta]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binäärinen): jätetty huomiotta]\n" #: src/generate.c:350 msgid "plain" msgstr "pelkkä teksti" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "rivin loppu merkkijonovakiossa" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "rivin loppu %s:n sisällä" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "Vastaantotettiin signaali %d: %s" #: src/main.c:235 msgid "heavy" msgstr "raskas" #: src/main.c:239 msgid "normal" msgstr "tavallinen" #: src/main.c:243 msgid "none" msgstr "ei_mitään" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "kyllä" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ei" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "%s:n konfiguraatiotila %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Arkit:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " media = %s%s, %s\n" " sivun asettelu = %d x %d, %s\n" " reunukset = %s\n" " tiedoston kohdistus = %s\n" " sisempi marginaali = %d\n" #: src/main.c:339 msgid "portrait" msgstr "pystytulostus" #: src/main.c:339 msgid "landscape" msgstr "vaakatulostus" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d merkkiä joka rivillä" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d riviä joka sivulla" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "kirjasinkoko on %gpt" #: src/main.c:363 msgid "each line" msgstr "joka rivi" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "joka %d. rivi" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Näennäissivut:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " rivien numerointi = %s\n" " muotoilu = %s\n" " sarkaimen koko = %d\n" " tulostuskelvoton muotoilu = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Otsikot:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " otsikko = %s\n" " vasen alatunniste = %s\n" " alatunniste = %s\n" " oikea alatunniste = %s\n" " vasen ylätunniste = %s\n" " keskiylätunniste = %s\n" " oikea ylätunniste = %s\n" " ”vesileima” = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Syöte:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " rivien katkaisu = %s\n" " tulkitse = %s\n" " rivinvaihtotyyppi = %s\n" " koodaus = %s\n" " asiakirjan otsikko = %s\n" " prologi = %s\n" " tulosta joka tapauksessa = %s\n" " delegointi = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "valittu automaattisesti" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Kaunotulostus:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " tyylisäännöstö = %s\n" " korostustaso = %s\n" " kommenttienkarsintataso = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "ei varmuuskopioita" #: src/main.c:456 msgid "simple backups of every file" msgstr "yksinkertainen varmuuskopio joka tiedostosta" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "numeroidut varmuuskopiot ennestään numeroiduista tiedostoista\n" " ja yksinkertaiset muista" #: src/main.c:466 msgid "numbered backups of every file" msgstr "numeroidut varmuuskopiot joka tiedostosta" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Tuloste:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " määränpää = %s\n" " versiokontrolli = %s\n" " varmuuskopion jälkiliite = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " maaginen numero = %s\n" " Printer Description (PPD) = %s\n" " oletus-PPD = %s\n" " sivun merkin muoto = %s\n" " kopioiden määrä = %d\n" " yksi-/kaksipuolisuus = %s\n" " laitemääritteet = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " statusdict-määritteet = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " sivun esisyöttö = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Sisäiset:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " monisanaisuustaso = %d\n" " file-komento = %s\n" " kirjastopolku = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Käyttö: %s [VALITSIN]... [TIEDOSTO]...\n" "\n" "Muunna TIEDOSTO(t) tai oletussyöte PostScript-muotoon. Tuloste lähetetään\n" "oletuksena oletustulostimelle. Tulostiedoston voi antaa valitsimella -o.\n" "\n" "Pitkien valitsinten pakolliset määritteet ovat pakollisia myös lyhyille\n" "valitsimille. *:lla merkityt pitkät valitsimet vaativat yes/no -määritteen,\n" "näitä vastaavat lyhyet valitsimet tulkitaan kuin ”yes”.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tehtävät:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version näytä versio\n" " --help näytä tämä aputeksti\n" " --guess kerro TIEDOSTOJEN arvatut tyypit\n" " --which kerro TIEDOSTO-nimisten kirjastotiedostojen täydet polut\n" " --glob kerro TIEDOSTO-nimiin täsmäävien kirjastotiedostojen " "polut\n" " --list=defaults näytä oletusasetukset ja -parametrit\n" "\n" " --list=AIHE yksityiskohtainen lista AIHEesta (delegations, " "encodings,\n" " features, variables, media, ppd, printers, prologues,\n" " style-sheets, user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Tehtävän suorituksen jälkeen poistutaan onnistuneesti. Yksityiskohtaiset\n" "listat saattavat tarjota lisäapua tiettyihin ominaisuuksiin.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Yleiset:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent ollaan todella hiljaa\n" " -v, --verbose[=TASO] monisanaisuus päälle tai tasolle TASO\n" " -=, --user-option=VALITSIN käytä käyttäjäkohtaista valitsinta VALITSIN\n" " --debug käytä virheenkorjausominaisuuksia\n" " -D, --define=AVAIN[:ARVO] aseta muuttujalle AVAIN tyhjä arvo tai arvo " "ARVO \n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NIMI käytä paperikokoa NIMI\n" " -r, --landscape vaakatulostus\n" " -R, --portrait pystytulostus\n" " --columns=NUM sivujen sarakemäärä\n" " --rows=NUM sivujen rivimäärä\n" " --major=SUUNTA täyttösuunta, ”rows” tai ”columns”\n" " -1, -2, ..., -9 esiasetetut kirjasinkoot ja asemoinnit 1-9 " "näennäissivulle\n" " -A, --file-align=TILA kohdista erilliset tiedostot TILAn mukaan (fill, " "rank\n" " page, sheet, tai numero)\n" " -j, --borders* tulosta näennäissivuille kehykset\n" " --margin[=NUM] aseta sisäpuolisen marginaalin kooksi NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Valitsimet -1.. -9 vaikuttavat useisiin primitiivisiin parametreihin\n" "esiasetetun 80 kolumnin asemoinnin alustamiseksi. Tämän vuoksi\n" "järjestyksellä on väliä: ”-R -f40 -2” on sama kuin ”-2”. Muokataksesi\n" "asemointia vaihda järjestykseksi ”-2Rf40” tai käytä primitiivisiä\n" "valitsimia (`--columns', `--font-size' jne.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM aseta joka NUM:nnen rivin eteen rivinumero\n" " -C sama kuin --line-numbers=5\n" " -f, --font-size=KOKO käytä kirjasinkokoa KOKO (liukuluku) tekstissä\n" " -L, --lines-per-page=NUM skaalaa kirjasinta tulostaaksesi NUM riviä " "joka\n" " näennäissivulle\n" " -l, --chars-per-line=NUM skaalaa kirjasinta tulostaaksesi NUM saraketta\n" " joka näennäissivulle\n" " -m, --catman käsittele TIEDOSTO kuin man-sivu (sama kuin -" "L66)\n" " -T, --tabsize=NUM aseta sarkaimen kooksi NUM\n" " --non-printable-format=FMT määritä tulostuskelvottomien merkkien " "tulostustapa\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Tunnisteet:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header ei tunnisteita ollenkaan\n" " -b, --header[=TEKSTI] aseta otsikko\n" " -u, --underlay[=TEKSTI] tulosta TEKSTI joka sivun alle (”vesileima”)\n" " --center-title[=TEKSTI] aseta TEKSTI ylätunnusteeksi\n" " --left-title[=TEKSTI] aseta TEKSTI vasemmaksi ylätunnusteeksi\n" " --right-title[=TEKSTI] aseta TEKSTI oikeaksi ylätunnusteeksi\n" " --left-footer[=TEKSTI] aseta TEKSTI alatunnisteiksi\n" " --footer[=TEKSTI]\n" " --right-footer[=TEKSTI]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEKSTIssä voi käyttää erikoismerkkejä.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ALUE] valitse tulostettavat sivut\n" " -c, --truncate-lines* katkaise pitkät rivit\n" " -i, --interpret* tulkkaa tab, bs ja ff -merkit\n" " --end-of-line=TYYPPI määrittele rivinlopetusmerkki\n" " (TYYPPI: r, n, nr, rn, any)\n" " -X, --encoding=NIMI käytä syötteelle koodausta NIMI\n" " -t, --title=NIMI aseta työn nimi\n" " --stdin=NIMI aseta oletussyötetiedoston nimi\n" " --print-anyway* tulosta myös binääritiedostot\n" " -Z, --delegate* delegoi tiedostit toiselle ohjelmalle\n" " --toc[=TEKSTI] luo sisällysluettelo\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Kun delegointi on käytössä, a2ps voi käyttää muita ohjelmia sellaisten\n" "tiedostojen käsittelyyn, joita ei tulisi tulostaa sellaisenaan, esim. HTML\n" "PostScript, PDF jne.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=KIELI] ota kaunotulostus käyttöön (aseta tyyliksi " "KIELI)\n" " --highlight-level=TASO aseta kaunotulostuksen korstuksen TASO\n" " TASO voi olla ei_mitään, tavallinen tai " "raskas\n" " -g alias valinnalle --highlight-level=raskas\n" " --strip-level=NUM kommenttienkarsintataso\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=TIEDOSTO ohjaa tuloste TIEDOSTOon. Jos TIEDOSTO on " "”-”,\n" " ohjaa tuloste vakiotulosteeseen.\n" " --version-control=SANA kumoa versionhallinnan oletusarvo\n" " --suffix=JÄLKILIITE kumoa varmuuskopion jälkiliitteen oletusarvo\n" " -P, --printer=NIMI lähetä tuloste tulostimelle NIMI\n" " -d lähetä tuloste oletustulostimelle\n" " (tämä on oletustoimintatapa)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=TIEDOSTO sisällytä TIEDOSTO.pro PostScript-prologiksi\n" " --ppd[=AVAIN] automaattinen PPD:n valinta tai asetus arvoon " "AVAIN\n" " -n, --copies=NUM tulosta NUM kopiota joka sivusta\n" " -s, --sides=TILA aseta kaksipuolisuuden TILA (`1' tai " "`simplex',\n" " `2' tai `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] ohjaa laitemäärite tulosteeseen\n" " --statusdict=K[:[:]V] ohjaa statusdict-määrite tulosteeseen\n" " -k, --page-prefeed ota sivun esisyöttö käyttöön\n" " -K, --no-page-prefeed poista sivun esisyöttö käytöstä\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Oletuksena a2ps on säädetty tekemään mitä halutaan, joten luota siihen.\n" "Tulostaaksesi ”src”-hakemiston sisällysluetteloineen kaunotulostuksena\n" "tulostimelle ”lw”:\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Käsittele tiedostot ”sample.ps” ja ”sample.html” ja ohjaa tulos näytölle:\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "Käsittele meililaatikko nelisivuisena:\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Tulosta kirjanen oletustulostimelle, joka osaa tulostaa kaksipuolista:\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Sisällysluettelo" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "”%s”:n käsittely ei onnistu, sillä se vaatii a2ps:n version %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "odottamaton merkki `%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "liian monta sisällytystä" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "”%s”:lle ei ole määritelty avainta" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "tiedostoa ”%s” ei löydy" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automaattinen tyylin valinta peruutettu" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "kännnös ei onnistu säännölliselle lausekkeelle `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Tunnetut tyylisäännöstöt" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "tyylisäännöstöä ”%s” ei löydy: käytetään tyylittelemätöntä säännöstöä" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "epäkelpo versionumero ”%s”" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "välilyönti (siis ” ”)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "oktaalinen (siis ”\\001” jne.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "heksadesimaalinen (siis ”\\x0a” jne.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (siis ”^C”, ”M-^C” jne.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (siis `C-c', `M-C-c' jne.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "kysymysmerkki (siis ”?”)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "epäkelpo valitsin ”%s”" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Tunnetut koodaukset" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "epätäydellinen ulkoasujen tietämys" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "hakemiston ”%s” sulkeminen ei onnistu" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "”%s” on epäkelpo parametri ”%s”:lle" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Kelvollisia parametrejä ovat kokonaisluvut n niin että: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Kelvollisia parametrejä ovat liukuluvut f niin että: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "tuntematon koodaus ”%s”" #: liba2ps/madir.c:51 msgid "rows first" msgstr "rivit ensin" #: liba2ps/madir.c:54 msgid "columns first" msgstr "sarakkeet ensin" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "tuntematon paperikoko ”%s”" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Tunnetut paperikoot" #: liba2ps/media.c:189 msgid "Name" msgstr "Nimi" #: liba2ps/media.c:190 msgid "dimensions" msgstr "mitat" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Tunnetut muuttujat" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: puuttuva ”%c” ohjausmerkille %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Tulostanut %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Tulostanut %s %s:sta" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "työhakemiston luku ei onnistu" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: liian pitkä paramteri %s -ohjausmerkille" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%-d.%-m.%Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A, %e. %Bta %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: tuntematon ”%s” -ohjausmerkki ”%c” (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Sivu %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Sivu %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: epäkelpo erotin ”%s%c” ohjausmerkille ”%s”" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: epäkelpo parametri ohjausmerkille %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Sivu %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "tulostekäsky" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Kokeile komentoa ”%s --help” lisätiedon saamiseksi.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "epäkelpo muuttujan tunniste ”%s”" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "epäkelpo ulkoasu ”%s”" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "Pariton ”%s” (puuttuva ”%s”)" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Tunnetut kirjasimet" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Ei mitään.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Tunnetut PostScript-tulostinten määritykset" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "Epäkelpo väli ”%s”" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Oletustulostin" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Tuntematon tulostin" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "ei komentoa ”%s”:lle (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "lähetetty oletustulosteeseen" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "lähetetty oletustulosimelle" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "talletettu tiedostoon ”%s”" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "lähetetty tulostimelle ”%s”" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Tunnetut tulosteet (tulostimet jne.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Tunnetut prologit" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "kirjasin %f on liian iso" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "”%s” on binääritiedosto, tulostus keskeytetty" #: liba2ps/userdata.c:104 msgid "user" msgstr "käyttäjä" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Tuntematon käyttäjä" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "tuntematon käyttäjän valitsin ”%s”" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Tunnetut käyttäjän valitsimet" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Muisti loppu" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "Ei voida uudelleennimetä tiedostoa ”%s” nimellä ”%s”" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "palautettu tiedosto ”%s”" #~ msgid "any type" #~ msgstr "mikä tahansa" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Uutiset, päivitykset ja dokumentaatio: http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Lähetä vikailmoitukset (englanniksi) osoitteeseen <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel SantanaCopyright (c) 2007- " #~ "Akim Demaille, Miguel Santana ja Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "tuntematon koodaus ”%s”, jätetty huomiotta" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright © 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Kirjoittanut %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Tätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen,\n" #~ "mutta ilman mitään takuuta; ilman edes hiljaista takuuta kaupallisesti\n" #~ "hyväksyttävästä laadusta tai soveltuvuudesta tiettyyn tarkoitukseen.\n" #~ "Katso GPL-lisenssistä lisää yksityiskohtia.\n" #~ msgid "write error" #~ msgstr "kirjoituksenaikainen virhe" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "epäkelpo tulostimen ”%s” määrittely: %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "käytöstä poistunut ”%s”-merkintä. Jätetty huomiotta." #, c-format #~ msgid "Page %d/%d" #~ msgstr "Sivu %d/%d" #~ msgid "`" #~ msgstr "”" #~ msgid "'" #~ msgstr "”" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "%s on epäkelpo parametri ”%s”:lle" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "Monitulkintainen parametri %s ”%s”:lle" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Kelvolliset parametrit ovat:" #~ msgid "Unknown system error" #~ msgstr "Tuntematon järjestemävirhe" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: valitsin ”%s” on monitulkintainen\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: valitsin ”--%s” ei salli argumenttia\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: valitsin ”%c%s” ei hyväksy parametriä\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: valitsin ”%s” vaatii parametrin\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: tunnistamaton valitsin ”--%s”\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: tunnistamaton valitsin ”%c%s”\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: kielletty valitsin -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: epäkelpo valitsin -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: valitsin vaatii parametrin -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: valitsin ”-W %s” on monitulkintainen\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: valitsin ”-W %s” ei salli parametriä\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/fr.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000026310�14445132165�011102� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�� �����R���#�����v��#���P�����t��R���������� ����������>�����P���0��:�����<�����=�����.���7��#���f�������%����� ����� ����� ����� ����� ���������������� ���0��"���=��-���`��������������������������� ����� ����� ��� ����� �����! �� ���; �����G �� ���[ ��D���f ��T�� ��4����"�����5"�����I"��J���]"��=���"�����"�����"��!���#�����#�����#�� ���$�����($�����<$��"���V$��7���y$�����$��'���$��(���$��,���%��=���K%��(���%��)���%��J���%��8���'&��=���`&��(���&��'���&��9���&��8���)'��-���b'�����'�� ���'�� ���'��!���'��"���'��'���(��$���)(�����N(�����i(�� ���o(��"���(��*���(�����(�����(�����)��-���/)��&���])�����)�����)�����)�����)��$���)��$���)�����*�����*��,���%*��k���R*�����*�����*�����*�����*��!���*�����+�����8+��$���J+��!���o+��#���+��"���+�����+��%���+�����,�����0,�����B,�����`,�����z,��$���,�� ���,�����,�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2015-04-11 16:18+0200 Last-Translator: Stéphane Aulery <lkppo@free.fr> Language-Team: French <traduc@traduc.org> Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n > 1); � Aucun(e). � destination = %s contrôle de version = %s suffixe sauvegarde = %s � entête = %s pied de page gauche = %s pied de page = %s pied de page droit = %s titre de gauche = %s titre central = %s titre de droite = %s fond de page = %s � page pré-alimentée = %s � définitions statusdict = � feuille de style = %s niveau de brillance = %s niveau de découpage = %d � troncage de lignes = %s interprète = %s fin de ligne = %s encodage = %s titre du document = %s prologue = %s imprimer malgré tout = %s délégation = %s �%A %B %d, %Y�%s, délégué(e) à %s�%s : argument non valide pour la séquence d'échappement %s%c�%s : séparateur non valide « %s%c » pour la séquence d'échappement « %s »�%s : manque « %c » pour la séquence d'échappement %s%c�%s : argument trop long pour une séquence d'échappement %s�%s : séquence d'échappement « %s » inconnue « %c » (%d)�Applications configurées pour la délégation�État de la configuration de %s %s �Imprimante par défaut�Délégation « %s », de %s vers %s �Global : �Entêtes : �En-têtes: �Entrée : �Internes : �Encodages connus�Polices de caractères connues�Média connu�Sorties connues (imprimantes, etc)�Descriptions d'imprimantes Postscript connues�Prologues connus�Feuilles de style connues�Options utilisateur connues�Variables connues�Nom�Sortie : �Postscript : �Beau rendu : �Imprimé par %s�Imprimé par %s depuis %s�Feuilles : �Table des matières�Tâches : �Les TEXTEs peuvent utiliser une séquence d'échappement spéciale. �Les options -1.. -9 affectent plusieurs paramètres primitifs pour initialiser les dispositions prédéfinies sur 80 colonnes. Dès lors l'ordonnancement compte: « -R -f40 -2 » est équivalent à « -2 ». Pour modifier la disposition, utiliser « -2Rf40 », ou utiliser des options primitives (« --columns », « --font-size » etc.). �Pour en savoir davantage, faites : « %s --help ». �Imprimante inconnue�Utilisateur inconnu�Les arguments valides sont les nombres en virgule flottante tels que : %s �Les arguments valides sont les nombres entiers tels que : %s �Pages virtuelles : �Quand la délégation est permise, a2ps peut utiliser d'autres applications pour traiter les fichiers qui ne peuvent être imprimes en format brut, i.e. HTML PostScript, PDF etc. �[%s (%s) : 1 page sur 1 feuille] �[%s (%s) : échec. Ignoré] �[%s (binaire) : ignoré] �[%s (non imprimable) : ignoré] �[1 ligne scindée] �[Aucune sortie produite] �[Total : 1 page sur 1 feuille] %s �« %s » est un fichier binaire, impression interrompue�« %s » est un répertoire�« %s » sans concordance avec « %s »�sélection automatique du style annulée�impossible de fermer le répertoire « %s »�impossible de compiler l'expression régulière « %s » : %s�impossible de créer le fichier « %s »�impossible de trouver le fichier « %s »�impossible de trouver la feuille de style « %s » : style simple utilisé�impossible de repérer le répertoire de travail courant�impossible d'obtenir des informations sur le fichier « %s »�impossible d'ouvrir un pipe sur « %s »�impossible d'ouvrir le fichier « %s »�impossible de traiter « %s » : requiert a2ps version %s�impossible de renommer le fichier « %s » vers « %s »�curseur d'insertion (i.e., "^C", "M-^C" etc.)�colonnes en premier�dimensions�chaque ligne�emacs (i.e., "C-c", "M-C-c" etc.)�fin de ligne à l'intérieur de %s�fin-de-ligne dans une constante chaîne�police de caractères %f trop grande�taille de la police : %gpt�lourd�hexadécimal (i.e., "\x0a" etc.)�connaissance incomplète des faces�argument non valide « %s » pour « %s »�face invalide « %s »�intervalle non valide « %s »�option non valide « %s »�variable d'identification non valide « %s »�numéro de version non valide « %s »�paysage�argument manquant pour « %s »�ne jamais faire de sauvegarde�non�aucune commande pour « %s » (%s%s)�aucune touche définie pour « %s »�aucun�normal�sauvegardes numérotées pour chaque fichier�sauvegardes numérotées de fichiers déjà numérotés, et simples pour les autres�octal (i.e., "\001" etc.)�commande de sortie�simple�portrait�point d'interrogation (i.e., "?")�fichier restauré « %s »�lignes en premier�sauvegardé dans le fichier « %s »�sélectionné(es) automatiquement�envoyé à l'imprimante par défaut�expédié à l'imprimante « %s »�envoyé sur la sortie standard�sauvegarde simple pour chaque fichier�espace (i.e., " ")�trop d'inclusions�caractère « %c » inattendu�encodage inconnu « %s »�médium inconnu « %s »�option utilisateur inconnue « %s »�utilisateur�oui�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/fr.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000131130�14445132164�010732� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages français pour GNU concernant a2ps. # Copyright © 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996. # Nicolas Provost <nprovost@quadriv.com>, 2008. # Stéphane Aulery <lkppo@free.fr>, 2015. # # Relecture complète 09/2008 N. Provost # Réencodage ISO-8859-1 => UTF-8 et typos, S. Aulery, 2015 # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2015-04-11 16:18+0200\n" "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n" "Language-Team: French <traduc@traduc.org>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "argument manquant pour « %s »" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "impossible de créer le fichier « %s »" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "impossible d'ouvrir un pipe sur « %s »" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Délégation « %s », de %s vers %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Applications configurées pour la délégation" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "« %s » est un répertoire" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "impossible d'ouvrir le fichier « %s »" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "impossible d'obtenir des informations sur le fichier « %s »" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s) : 1 page sur 1 feuille]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s) : %d pages sur 1 feuille]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s) : %d pages sur %d feuilles]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total : 1 page sur 1 feuille] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Total : %d pages sur 1 feuille] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Total : %d pages sur %d feuilles] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 ligne scindée]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d lignes scindées]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Aucune sortie produite]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, délégué(e) à %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s) : échec. Ignoré]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (non imprimable) : ignoré]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binaire) : ignoré]\n" #: src/generate.c:350 msgid "plain" msgstr "simple" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "fin-de-ligne dans une constante chaîne" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "fin de ligne à l'intérieur de %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "signal reçu %d : %s" #: src/main.c:235 msgid "heavy" msgstr "lourd" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "aucun" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "oui" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "non" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "État de la configuration de %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Feuilles :\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " médium = %s%s, %s\n" " mise en page = %d x %d, %s\n" " bordures = %s\n" " alignement fichier = %s\n" " marges internes = %d\n" #: src/main.c:339 msgid "portrait" msgstr "portrait" #: src/main.c:339 msgid "landscape" msgstr "paysage" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d caractères par ligne" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d lignes par page" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "taille de la police : %gpt" #: src/main.c:363 msgid "each line" msgstr "chaque ligne" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "chaque %d lignes" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Pages virtuelles :\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " nombre de lignes = %s\n" " format = %s\n" " taille de tabulation = %d\n" " format non imprimable = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Entêtes :\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " entête = %s\n" " pied de page gauche = %s\n" " pied de page = %s\n" " pied de page droit = %s\n" " titre de gauche = %s\n" " titre central = %s\n" " titre de droite = %s\n" " fond de page = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Entrée :\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " troncage de lignes = %s\n" " interprète = %s\n" " fin de ligne = %s\n" " encodage = %s\n" " titre du document = %s\n" " prologue = %s\n" " imprimer malgré tout = %s\n" " délégation = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "sélectionné(es) automatiquement" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Beau rendu :\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " feuille de style = %s\n" " niveau de brillance = %s\n" " niveau de découpage = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "ne jamais faire de sauvegarde" #: src/main.c:456 msgid "simple backups of every file" msgstr "sauvegarde simple pour chaque fichier" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "sauvegardes numérotées de fichiers déjà numérotés,\n" " et simples pour les autres" #: src/main.c:466 msgid "numbered backups of every file" msgstr "sauvegardes numérotées pour chaque fichier" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Sortie :\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destination = %s\n" " contrôle de version = %s\n" " suffixe sauvegarde = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "Postscript :\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " nombre magique = %s\n" " Description d'imprimante (PPD)= %s\n" " PPD par défaut = %s\n" " format d'étiquette de page = %s\n" " nombre de copies = %d\n" " côtés par feuille = %s\n" " déf. de page de périphérique = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " définitions statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " page pré-alimentée = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Internes :\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " niveau de verbosité = %d\n" " commande fichier = %s\n" " chemin de librairie = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Utilisation : %s [OPTION]... [FICHIER]...\n" "\n" "Convertir FICHIER(s) ou l'entrée standard en PostScript.\n" "Par défaut, la sortie est envoyée à l'imprimante par défaut.\n" "Un fichier de sortie peut être spécifié par -o.\n" "\n" "Les arguments obligatoires pour les options de forme longue\n" "le sont aussi pour les options de forme courte. Les options\n" "de forme longue marquées * requièrent un argument \"oui/non\",\n" "correspondant aux options de formes courtes ayant pour\n" "valeur \"oui\".\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tâches :\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version afficher la version du logiciel\n" " --help afficher cette aide\n" " --guess afficher les types de fichiers devinés\n" " --which afficher le chemin d'accès complet des librairies\n" " nommées FICHIERS\n" " --glob afficher le chemin d'accès complet des librairies\n" " qui concordent avec FICHIERS\n" " --list=defaults afficher les paramètres par défaut\n" " --list=SUJET afficher la liste détaillés des SUJETs\n" " (delegations, encodings, features, variables\n" " media, ppd, printers, prologues, style-sheets,\n" " user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Après avoir exécuté la tâche, terminer avec succès. La liste détaillée peut\n" "fournir de l'aide additionnelle sur les options spécifiques.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global :\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent travailler en silence\n" " -v, --verbose[=NIVEAU] passer en mode bavard ou sélectionner\n" " le NIVEAU de commentaires\n" " -=, --user-option=OPTION utiliser le raccourci défini par l'utilisateur\n" " pour l'OPTION\n" " --debug passer en mode débogage\n" " -D, --define=CLEF[:VALEUR] ignorer la variable CLEF ou l'initialiser\n" " avec la VALEUR\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NOM utiliser le médium de sortie nommé NOM\n" " -r, --landscape imprimer en mode paysage\n" " -R, --portrait imprimer en mode portrait\n" " --columns=NOMBRE NOMBRE de colonnes par feuille\n" " --rows=NOMBRE NOMBRE de lignes par feuille\n" " --major=DIRECTION remplir d'abord (DIRECTION=) lignes (\"rows\"),\n" " ou colonnes (\"columns\")\n" " -1, -2, ..., -9 taille de polices de caractères prédéfinies et\n" " mise en page pour 1..9 pages virtuelles\n" " -A, --file-align=MODE aligner les différents fichiers selon le MODE\n" " (fill, rank, page, sheet, ou un nombre)\n" " -j, --borders* afficher des bordures autour des colonnes\n" " --margin[=NOMBRE] définir une marge intérieure de taille NOMBRE\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Les options -1.. -9 affectent plusieurs paramètres primitifs pour " "initialiser\n" "les dispositions prédéfinies sur 80 colonnes. Dès lors l'ordonnancement " "compte:\n" "« -R -f40 -2 » est équivalent à « -2 ». Pour modifier la disposition, " "utiliser « -2Rf40 »,\n" "ou utiliser des options primitives (« --columns », « --font-size » etc.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NOMBRE précéder chaque NOMBRE de lignes avec son " "numéro de\n" " de ligne (un alias pour --line-numbers=5)\n" " -f, --font-size=TAILLE utiliser la TAILLE (vir. flottante) de la fonte " "pour le corps du texte\n" " -L, --lines-per-page=N ramener à l'échelle la fonte pour imprimer NB " "lignes\n" " par virtuelle\n" " -l, --chars-per-line=N ramener à l'échelle la fonte pour imprimer NB " "colonnes\n" " par virtuelle\n" " -m, --catman traiter le FICHIER comme une d'aide (man) " "identique à -L66\n" " -T, --tabsize=NB initialiser la taille de tabulation à NB\n" " --non-printable-format=FMT spécifier comment les caractères non " "imprimables seront traités\n" #: src/main.c:721 msgid "Headings:\n" msgstr "En-têtes:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header ne pas générer d'en-tête\n" " -b, --header[=TEXTE] initialiser l'en-tête de la page\n" " -u, --underlay[=TEXTE] imprimer le TEXTE sur chaque page\n" " --center-title[=TEXTE] initialiser le titre de la page\n" " --left-title[=TEXTE] initialiser le titre gauche de page\n" " --right-title[=TEXTE] initialiser le titre droit de page\n" " --left-footer[=TEXTE] initialiser le pied de page gauche\n" " --footer[=TEXT] initialiser le pied de page\n" " --right-footer[=TEXT] initialiser le pied de page droit\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "Les TEXTEs peuvent utiliser une séquence d'échappement spéciale.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=GAMME] sélectionner la GAMME de pages à imprimer\n" " -c, --truncate-lines* afficher une ligne de découpe\n" " -i, --interpret* interpréter les caractères tab, bs et ff\n" " --end-of-line=TYPE spécifier le caractère de fin de ligne\n" " (TYPE: r, n, nr, rn, any)\n" " -X, --encoding=NOM utiliser l'encodage d'entrée du NOM\n" " -t, --title=NOM initialiser le NOM de la tâche\n" " --stdin=NOM utiliser le NOM du fichier passé via stdin\n" " --print-anyway* forcer une impression binaire\n" " -Z, --delegate* déléguer les fichiers à un autre logiciel\n" " --toc[=TEXTE] générer une table des matières\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Quand la délégation est permise, a2ps peut utiliser d'autres applications " "pour traiter\n" "les fichiers qui ne peuvent être imprimes en format brut, i.e. HTML\n" "PostScript, PDF etc.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LANGUE] active la belle impression (style=LANGUE)\n" " --highlight-level=NIVEAU afficher avec le NIVEAU de brillance\n" " qui peut prendre les valeurs\n" " none, normal ou heavy\n" " -g alias pour --highlight-level=heavy\n" " --strip-level=NIVEAU niveau de commentaires à élager\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FICHIER laisser la sortie dans le FICHIER.\n" " Si FICHIER vaut \"-\", produire la\n" " sortie sur stdout.\n" " --version-control=VERSION outrepasser la VERSION de contrôle usuelle\n" " --suffix=SUFFIXE outrepasser le SUFFIXE d'archive usuel\n" " -P, --printer=NOM expédier la sortie vers l'imprimante NOM\n" " -d expédier la sortie vers l'imprimante par " "défaut\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FICHIER inclure FICHIER.pro comme prologue PostScript\n" " --ppd[=CLÉ] sélection PPD automatique ou fixé à CLÉ\n" " -n, --copies=NOMBRE imprimer NOMBRE de copies de chaque page\n" " -s, --sides=MODE initialiser le MODE duplex (« 1 » ou « simplex " "»,\n" " « 2 » ou « duplex », « tumble »)\n" " -S, --setpagedevice=K[:V] transmettre une définition de page de\n" " périphérique directement à la sortie\n" " --statusdict=K[:[:]V] transmettre une définition statusdict " "directement\n" " à la sortie\n" " -k, --page-prefeed permettre la pré-alimentation de page\n" " -K, --no-page-prefeed interdire la pré-alimentation de page\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Par défaut, a2ps est configuré pour faire ce que vous désirez, vous pouvez\n" "vous y fier. Pour imprimer dans un joli format le contenu d'un répertoire\n" "source avec une table des matières et l'envoyer à l'imprimante \"lw\", " "faire :\n" "\n" " $ a2ps -P lw --toc <répertoire>/*\n" "\n" "Pour traiter les fichiers \"exemple.ps\" et \"exemple.html\" et afficher le " "résultat,\n" "\n" " $ a2ps -P display exemple.ps exemple.html\n" "\n" "Pour traiter le contenu d'une boîte aux lettres, 4 pages virtuelles,\n" "\n" " $ a2ps -=mail -4 boîte-aux-lettres\n" "\n" "Pour imprimer un livret sur l'imprimante par défaut qui supporte le mode " "Duplex,\n" "\n" " $ a2ps -=book livret.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Table des matières" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "impossible de traiter « %s » : requiert a2ps version %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "caractère « %c » inattendu" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "trop d'inclusions" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "aucune touche définie pour « %s »" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "impossible de trouver le fichier « %s »" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "sélection automatique du style annulée" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "impossible de compiler l'expression régulière « %s » : %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Feuilles de style connues" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" "impossible de trouver la feuille de style « %s » : style simple utilisé" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "numéro de version non valide « %s »" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "espace (i.e., \" \")" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (i.e., \"\\001\" etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadécimal (i.e., \"\\x0a\" etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "curseur d'insertion (i.e., \"^C\", \"M-^C\" etc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e., \"C-c\", \"M-C-c\" etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "point d'interrogation (i.e., \"?\")" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "option non valide « %s »" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Encodages connus" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "connaissance incomplète des faces" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "impossible de fermer le répertoire « %s »" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argument non valide « %s » pour « %s »" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Les arguments valides sont les nombres entiers tels que : %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" "Les arguments valides sont les nombres en virgule flottante tels que : %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "encodage inconnu « %s »" #: liba2ps/madir.c:51 msgid "rows first" msgstr "lignes en premier" #: liba2ps/madir.c:54 msgid "columns first" msgstr "colonnes en premier" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "médium inconnu « %s »" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Média connu" #: liba2ps/media.c:189 msgid "Name" msgstr "Nom" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensions" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variables connues" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s : manque « %c » pour la séquence d'échappement %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Imprimé par %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Imprimé par %s depuis %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "impossible de repérer le répertoire de travail courant" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s : argument trop long pour une séquence d'échappement %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%b %d, %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s : séquence d'échappement « %s » inconnue « %c » (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Page %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Page %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "" "%s : séparateur non valide « %s%c » pour la séquence d'échappement « %s »" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s : argument non valide pour la séquence d'échappement %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Page %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "commande de sortie" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pour en savoir davantage, faites : « %s --help ».\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "variable d'identification non valide « %s »" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "face invalide « %s »" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "« %s » sans concordance avec « %s »" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Polices de caractères connues" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Aucun(e).\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Descriptions d'imprimantes Postscript connues" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "intervalle non valide « %s »" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Imprimante par défaut" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Imprimante inconnue" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "aucune commande pour « %s » (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "envoyé sur la sortie standard" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "envoyé à l'imprimante par défaut" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "sauvegardé dans le fichier « %s »" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "expédié à l'imprimante « %s »" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Sorties connues (imprimantes, etc)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Prologues connus" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "police de caractères %f trop grande" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "« %s » est un fichier binaire, impression interrompue" #: liba2ps/userdata.c:104 msgid "user" msgstr "utilisateur" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Utilisateur inconnu" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "option utilisateur inconnue « %s »" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Options utilisateur connues" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Mémoire épuisée" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "impossible de renommer le fichier « %s » vers « %s »" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "fichier restauré « %s »" #~ msgid "any type" #~ msgstr "n'importe quel type" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Pour les nouvelles, les mises à jour et la documentation visiter http://" #~ "www.gnu.org/software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Rapporter toutes anomalies à <bugs-a2ps@gnu.org>\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "encodage inconnu « %s », ignoré" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Écrit par %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Ce logiciel est libre; vous pouvez le redistribuer selon les termes de " #~ "la\n" #~ "licence GNU General Public License. AUCUNE garantie n'est donnée.\n" #~ msgid "write error" #~ msgstr "erreur d'écriture" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "définition non valide pour l'imprimante « %s » : %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "« %s » entrée obsolète. Ignorée." #, c-format #~ msgid "Page %d/%d" #~ msgstr "Page %d/%d" #~ msgid "`" #~ msgstr "\"" #~ msgid "'" #~ msgstr "\"" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "argument non valide %s pour « %s »" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argument ambigu %s pour « %s »" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Arguments valides :" #~ msgid "Unknown system error" #~ msgstr "Erreur système inconnue" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s : l'option « %s » est ambiguë\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s : l'option « --%s » ne prend pas d'argument\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s : l'option « %c%s » ne requiert pas d'argument\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s : l'option « %s » requiert un argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s : option non reconnue « --%s »\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s : option non reconnue « %c%s »\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s : option illégale -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s : option non valide -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s : l'option requiert un argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s : l'option « -W %s » est ambiguë\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s : l'option « -W %s » ne requiert pas d'argument\n" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/gl.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000007077�14445132166�011107� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������3��������G���L������h�����i�����y�� ����� ��������������� ������������������������������ ����� ��� ����������0�����9�����J��&���R�����y�� ��������������������#����������*��������;�����S�����i������� ����� ����� ���������� ����������������������� ���������������7�����@�����Y�����r����������������������������� ����� �� ��� �� ��� �� ��� ����� ����� ����� �����# �����B �����X �����] �� ���f �����s ����� ����� ����� �� ��� ��5��� ����� ����� ����� �����+ �����K ��-���c ��+��� ��9��� ��(��� ��)��� ��(���J ��7���s ����� �� ��� �� ��� ����� �� ��� ��$��� ����� ��)���# �����M �����U ��0���\ ����� ����� ����� ����� ��!��� ��&��� �����4�����<����� ���%����������$����������� ���*������� ������&��� ����������/���������������"���-������������0��������������������������'����������!������+��� ������)����������������3����������������(���1���#����������,������������������ ���.���2�������������������������Default Printer�Global: �Headers: �Headings: �Input: �Known Encodings�Known Fonts�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �Try `%s --help' for more information. �Unknown Printer�Unknown User�Virtual pages: �[No output produced] �`%s' is a directory�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot open file `%s'�cannot rename file `%s' as `%s'�columns first�dimensions�each line�font size is %gpt�landscape�never make backups�no�no key defined for `%s'�none�normal�numbered backups of every file�portrait�saved into the file `%s'�sent to the printer `%s'�unexpected character `%c'�unknown encoding `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2014-04-02 20:43+0200 Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com> Language-Team: Galician <proxecto@trasno.net> Language: gl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Virtaal 0.7.0 �Impresora predeterminada�Global: �Cabeceiras: �Cabeceiras: �Entrada: �Codificacións coñecidas�Tipos de letra coñecidos�Follas de estilos coñecidas�Opcións de usuario coñecidas�Variábeis coñecidas�Nome�Saída: �PostScript: �Impreso por %s�Impreso por %s desde %s�Follas: �Índice�Tarefas: �Execute «%s --help» para obter máis información. �Impresora descoñecida�Usuario descoñecido�Páxinas virtuais: �[Non se xerou ningunha saída] �«%s» é un directorio�cancelouse a selección automática de estilo�non foi posíbel pechar o directorio «%s»�non foi posíbel compilar a expresión regular «%s»: %s�non foi posíbel crear o ficheiro «%s»�non foi posíbel atopar o ficheiro «%s»�non foi posíbel abrir o ficheiro «%s»�non foi posíbel renomear o ficheiro «%s» como «%s»�columnas primeiro�dimensións�cada liña�o tamaño da letra é %gpt�horizontal�non facer nunca copias de seguridade�non�non se definiu ningunha clave para «%s»�ningún�normal�número de copias de seguridade de cada ficheiro�vertical�gardouse no ficheiro «%s»�enviouse á impresora «%s»�carácter «%c» inesperado�codificación descoñecida «%s»�opción de usuario «%s» descoñecida�usuario�si������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/gl.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000056711�14445132164�010740� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Galician translation for a2ps package. # Copyright (C) 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Leandro Regueiro <leandro.regueiro@gmail.com>, 2014. # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en <http://trasno.net> msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2014-04-02 20:43+0200\n" "Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n" "Language-Team: Galician <proxecto@trasno.net>\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.7.0\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "non foi posíbel crear o ficheiro «%s»" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "«%s» é un directorio" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "non foi posíbel abrir o ficheiro «%s»" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Non se xerou ningunha saída]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "" #: src/generate.c:350 msgid "plain" msgstr "" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "recibiuse o sinal %d: %s" #: src/main.c:235 msgid "heavy" msgstr "" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "ningún" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "si" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "non" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Follas:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" #: src/main.c:339 msgid "portrait" msgstr "vertical" #: src/main.c:339 msgid "landscape" msgstr "horizontal" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d caracteres por liña" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d liñas por páxina" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "o tamaño da letra é %gpt" #: src/main.c:363 msgid "each line" msgstr "cada liña" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "cada %d liñas" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Páxinas virtuais:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" #: src/main.c:382 msgid "Headers:\n" msgstr "Cabeceiras:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Entrada:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" #: src/main.c:452 msgid "never make backups" msgstr "non facer nunca copias de seguridade" #: src/main.c:456 msgid "simple backups of every file" msgstr "" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" #: src/main.c:466 msgid "numbered backups of every file" msgstr "número de copias de seguridade de cada ficheiro" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Saída:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr "" #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr "" #: src/main.c:516 msgid "Internals:\n" msgstr "" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tarefas:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" #: src/main.c:721 msgid "Headings:\n" msgstr "Cabeceiras:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" #: src/main.c:1146 msgid "Table of Content" msgstr "Índice" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "carácter «%c» inesperado" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "non se definiu ningunha clave para «%s»" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "non foi posíbel atopar o ficheiro «%s»" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "cancelouse a selección automática de estilo" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "non foi posíbel compilar a expresión regular «%s»: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Follas de estilos coñecidas" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Codificacións coñecidas" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "non foi posíbel pechar o directorio «%s»" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "codificación descoñecida «%s»" #: liba2ps/madir.c:51 msgid "rows first" msgstr "" #: liba2ps/madir.c:54 msgid "columns first" msgstr "columnas primeiro" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "" #: liba2ps/media.c:189 msgid "Name" msgstr "Nome" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensións" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variábeis coñecidas" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Impreso por %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Impreso por %s desde %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Páxina %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Páxina %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Páxina %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Execute «%s --help» para obter máis información.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Tipos de letra coñecidos" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Impresora predeterminada" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Impresora descoñecida" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "gardouse no ficheiro «%s»" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "enviouse á impresora «%s»" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "" #: liba2ps/userdata.c:104 msgid "user" msgstr "usuario" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Usuario descoñecido" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "opción de usuario «%s» descoñecida" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Opcións de usuario coñecidas" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Memoria esgotada" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "non foi posíbel renomear o ficheiro «%s» como «%s»" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "" #~ msgid "any type" #~ msgstr "calquera tipo" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana e Masayuki Hatta" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Escrito por %s.\n" #~ msgid "write error" #~ msgstr "erro de escritura" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Páxina %d/%d" #~ msgid "`" #~ msgstr "«" #~ msgid "'" #~ msgstr "»" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Os argumentos válidos son:" #~ msgid "Unknown system error" #~ msgstr "Erro de sistema descoñecido" �������������������������������������������������������a2ps-4.15.5/po/hr.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000025435�14445132166�011114� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�� �����b����������#����� �����P��� �����\�� ��� �����-��%���H��<���n��$�����"�����)�����%��������C�� ���_��$���m�� ����� ����� ���������� ���������� ��������������� ��������4�����D�����_�����z������������ ���������� ���������� ���������������(�����-�� ��1���L!�����~!�����!��7���!��4���!����� "�����""��!���"��"���"�����#�����9#�����X#�����n#��#���#��+���#�����#��$���#�����$��%���2$��1���X$��#���$��"���$��C���$��)���%��.���?%��%���n%��"���%��9���%��1���%��&���#&�� ���J&�� ���V&�� ���`&��)���l&�����&�� ���&�����&�����&�����&��%���&�����'��(���6'�����_'�����y'�����'��+���'��!���'�� ���'����� (�����((�����B(�����E(��!���e(�����(�����(��+���(��o���(�����4)�����T)�����d)�����l)�����t)�����)�� ���)�����)�����)�����)������*�����*��,���7*�����d*�����}*�����*�����*�����*��%���*�����+�����+�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2014-08-23 12:21+0200 Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com> Language-Team: Croatian <lokalizacija@linux.hr> Language: hr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Gtranslator 2.91.6 � Nijedan. � odredište = %s kontrola inačice = %s sufiks sigurnosne kopije = %s � zaglavlje = %s lijevo podnožje = %s podnožje = %s desno podnožje = %s lijevi naslov = %s središnji naslov = %s desni naslov = %s pozadina = %s � predunos stranica = %s � statusdict definicije = � stilski predložak = %s razina označavanja = %s razina uklanjanja = %d � skraćenje redaka = %s tumačenje = %s kraj retka = %s kodiranje = %s naslov dokumenta = %s prolog = %s svejedno ispiši = %s dodjeljivanje = %s �%A %B %d, %Y�%s, dodijeljen programu %s�%s: neispravan argument za izlaz %s%c�%s: neispravan znak razdvajanja „%s%c” za izlaz „%s”�%s: nedostaje „%c” za izlaz %s%c�%s: predugačak argument %s izlaza�%s: nepoznat „%s” izlaz „%c” (%d)�Programi postavljeni za dodjeljivanje�Stanje konfiguracije %s %s �Zadani pisač�Dodjeljivanje „%s”, od %s za %s �Globalno: �Zaglavlja: �Zaglavlja: �Ulaz: �Interno: �Poznata kodiranja�Poznata pisma�Poznati mediji�Poznati izlazi (pisači itd.)�Poznati opisi PostScript pisača�Poznati prolozi�Poznati stilski predlošci�Poznate korisničke opcije�Poznate varijable�Ime�Izlaz: �PostScript: �„Uljepšan” ispis: �Ispisao %s�Ispisao %s iz %s�Listovi: �Sadržaj�Zadaci: �TEKSTOVI mogu koristiti posebne izlaze. �Opcije -1.. -9 utječu na nekoliko osnovnih parametara za postavljanje prethodno definiranih rasporeda s 80 stupaca. Zato je redoslijed važan: „-R -f40 -2” je isto kao „-2”. Za uređivanje rasporeda, koristite „-2Rf40” ili više osnovnih opcija („--columns”, „--font-size” itd.). �Pokušajte „%s --help” za više informacija. �Nepoznat pisač�Nepoznat korisnik�Ispravni argumenti su decimalni brojevi f takvi da: %s �Ispravni argumenti su cijeli brojevi n takvi da: %s �Virtualne stranice: �Kad su ovlaštenja omogućena, a2ps može koristiti druge programe za obradu datoteka koje ne bi trebale biti ispisane kao neobrađene informacije, npr., HTML, PostScript, PDF itd. �[%s (%s): 1 stranica na 1 listu] �[%s (%s): nije uspio. Zanemareno] �[%s (binarna): zanemareno] �[%s (neispisiva): zanemareno] �[1 redak prelomljen] �[Nije napravljen izlaz] �[Ukupno: 1 stranica na 1 listu] %s �„%s” je binarna datoteka, ispis otkazan�„%s” je direktorij�„%s” bez odgovarajućeg „%s”�automatski izbor stila otkazan�ne mogu zatvoriti direktorij „%s”�ne mogu kompajlirati regularni izraz „%s”: %s�ne mogu napraviti datoteku „%s”�ne mogu pronaći datoteku „%s”�ne mogu pronaći stilski predložak „%s”: koristim običan stil�ne mogu otkriti trenutni radni direktorij�ne mogu dobiti informacije o datoteci „%s”�ne mogu otvoriti cjevovod na „%s”�ne mogu otvoriti datoteku „%s”�ne mogu obraditi „%s” koji zahtijeva a2ps inačicu %s�ne mogu preimenovati datoteku „%s” u „%s”�kapa (npr., „^C”, „M-^C” itd.)�prvo stupci�dimenzije�svaki redak�emacs (npr., „C-c”, „M-C-c” itd.)�EOL u %s�EOL u konstantnom znakovnom nizu�pismo %f je preveliko�veličina pisma je %gpt�velik�heksadekadski (npr., „\x0a” itd.)�nepotpuno poznavanje pisama�neispravan argument „%s” za „%s”�neispravno pismo „%s”�neispravan interval „%s”�neispravna opcija „%s”�neispravan identifikator varijable „%s”�neispravan broj inačice „%s”�vodoravno�nedostaje argument za „%s”�ne radi sigurnosne kopije�ne�nema naredbe za „%s” (%s%s)�nije definiran ključ za „%s”�nijedan�normalno�numerirane sigurnosne kopije svake datoteke�numerirane sigurnosne kopije već numeriranih datoteka i jednostavne kopije ostalih�oktalni (npr., „\001” itd.)�izlazna naredba�običan�okomito�upitnik (npr., „?”)�obnovljena datoteka „%s”�prvo retci�spremljeno u datoteku „%s”�automatski izabrano�poslano na zadani pisač�poslano na pisač „%s”�poslano na standardni izlaz�jednostavne sigurnosne kopije svake datoteke�praznina (npr., „ ”)�previše uključenih datoteka�neočekivani znak „%c”�nepoznato kodiranje „%s”�nepoznat medij „%s”�nepoznata korisnička opcija „%s”�korisnik�da������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/hr.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000126071�14445132164�010744� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of a2ps to Croatian. # Copyright © 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Tomislav Krznar <tomislav.krznar@gmail.com>, 2012, 2014. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2014-08-23 12:21+0200\n" "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n" "Language-Team: Croatian <lokalizacija@linux.hr>\n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Gtranslator 2.91.6\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "nedostaje argument za „%s”" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "ne mogu napraviti datoteku „%s”" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "ne mogu otvoriti cjevovod na „%s”" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Dodjeljivanje „%s”, od %s za %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Programi postavljeni za dodjeljivanje" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "„%s” je direktorij" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "ne mogu otvoriti datoteku „%s”" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "ne mogu dobiti informacije o datoteci „%s”" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 stranica na 1 listu]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d stranica na 1 listu]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d stranica na %d listova]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Ukupno: 1 stranica na 1 listu] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Ukupno: %d stranica na 1 listu] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Ukupno: %d stranica na %d listova] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 redak prelomljen]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d redaka prelomljeno]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Nije napravljen izlaz]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, dodijeljen programu %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): nije uspio. Zanemareno]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (neispisiva): zanemareno]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binarna): zanemareno]\n" #: src/generate.c:350 msgid "plain" msgstr "običan" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "EOL u konstantnom znakovnom nizu" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "EOL u %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "primljen signal %d: %s" # Provjeriti! - TK #: src/main.c:235 msgid "heavy" msgstr "velik" # Provjeriti! - TK #: src/main.c:239 msgid "normal" msgstr "normalno" # Provjeriti! - TK #: src/main.c:243 msgid "none" msgstr "nijedan" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "da" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ne" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Stanje konfiguracije %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Listovi:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " medij = %s%s, %s\n" " izgled stranice = %d x %d, %s\n" " rubovi = %s\n" " poravnanje datoteke = %s\n" " unutrašnja margina = %d\n" #: src/main.c:339 msgid "portrait" msgstr "okomito" #: src/main.c:339 msgid "landscape" msgstr "vodoravno" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d znakova po retku" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d redaka po stranici" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "veličina pisma je %gpt" #: src/main.c:363 msgid "each line" msgstr "svaki redak" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "svakih %d redaka" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtualne stranice:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " broj redaka = %s\n" " oblik = %s\n" " veličina tabulatora = %d\n" " neispisiv oblik = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Zaglavlja:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " zaglavlje = %s\n" " lijevo podnožje = %s\n" " podnožje = %s\n" " desno podnožje = %s\n" " lijevi naslov = %s\n" " središnji naslov = %s\n" " desni naslov = %s\n" " pozadina = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Ulaz:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " skraćenje redaka = %s\n" " tumačenje = %s\n" " kraj retka = %s\n" " kodiranje = %s\n" " naslov dokumenta = %s\n" " prolog = %s\n" " svejedno ispiši = %s\n" " dodjeljivanje = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "automatski izabrano" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "„Uljepšan” ispis:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " stilski predložak = %s\n" " razina označavanja = %s\n" " razina uklanjanja = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "ne radi sigurnosne kopije" #: src/main.c:456 msgid "simple backups of every file" msgstr "jednostavne sigurnosne kopije svake datoteke" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "numerirane sigurnosne kopije već numeriranih datoteka\n" " i jednostavne kopije ostalih" #: src/main.c:466 msgid "numbered backups of every file" msgstr "numerirane sigurnosne kopije svake datoteke" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Izlaz:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " odredište = %s\n" " kontrola inačice = %s\n" " sufiks sigurnosne kopije = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " čarobni broj = %s\n" " opis pisača (PPD) = %s\n" " zadani PPD = %s\n" " oblik oznake stranice = %s\n" " broj kopija = %d\n" " stranica po listu = %s\n" " definicije uređaja stranice = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " statusdict definicije = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " predunos stranica = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Interno:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " razina opširnosti = %d\n" " naredba datoteke = %s\n" " putanja biblioteka = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Uporaba: %s [OPCIJA]... [DATOTEKA]...\n" "\n" "Pretvori DATOTEKE ili standardni ulaz u PostScript. Uobičajeno, izlaz\n" "se šalje na zadani pisač. Izlazna datoteka se može navesti opcijom -o.\n" "\n" "Obavezni argumenti dugačkih opcija također su obavezni za kratke opcije.\n" "Dugačke opcije označene sa * zahtijevaju argument yes/no (da/ne),\n" "odgovarajuće kratke opcije podrazumijevaju „yes”.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Zadaci:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version prikaži inačicu\n" " --help prikaži ovu pomoć\n" " --guess prijavi pretpostavljene vrste DATOTEKA\n" " --which prijavi potpunu putanju biblioteka s imenima DATOTEKA\n" " --glob prijavi potpunu putanju biblioteka koje odgovaraju " "DATOTEKAMA\n" " --list=defaults prikaži zadane postavke i parametre\n" " --list=TEMA detaljni popis TEMA: delegations (dodjeljivanja), " "encodings\n" " (kodiranja), features (mogućnosti), variables " "(varijable),\n" " media (mediji), ppd, printers (pisači), prologues " "(prolozi),\n" " style-sheets (stilski predlošci), user-options " "(korisničke\n" " opcije)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Nakon izvršavanja zadatka, uspješno izađi. Detaljni popisi mogu\n" "ponuditi dodatnu pomoć o posebnim mogućnostima.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Globalno:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent budi vrlo tih\n" " -v, --verbose[=RAZINA] uključi ili postavi opširnost na RAZINU\n" " -=, --user-option=OPCIJA koristi korisnički definiranu OPCIJU\n" " --debug omogući značajke debugiranja\n" " -D, --define=KLJUČ[:VRIJEDNOST] poništi varijablu KLJUČ ili\n" " postavi na VRIJEDNOST\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=IME koristi izlazni medij IME\n" " -r, --landscape ispiši u vodoravnom načinu\n" " -R, --portrait ispiši u okomitom načinu\n" " --columns=BR broj stupaca po listu\n" " --rows=BR broj redaka po listu\n" " --major=SMJER prvo ispiši (SMJER=) retke (rows) ili stupce " "(columns)\n" " -1, -2, ..., -9 prethodno definirane veličine pisama i rasporedi " "za\n" " stranice 1.. 9\n" " -A, --file-align=NAČIN poravnaj odvojene datoteke prema NAČINU (fill, " "rank,\n" " page, sheet ili number)\n" " -j, --borders* nacrtaj rubove oko stupaca\n" " --margin[=BR] definiraj unutrašnju marginu veličine BR\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Opcije -1.. -9 utječu na nekoliko osnovnih parametara za postavljanje\n" "prethodno definiranih rasporeda s 80 stupaca. Zato je redoslijed važan:\n" "„-R -f40 -2” je isto kao „-2”. Za uređivanje rasporeda, koristite „-2Rf40”\n" "ili više osnovnih opcija („--columns”, „--font-size” itd.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=BR svakih BR redaka označi brojem retka\n" " -C alias za --line-numbers=5\n" " -f, --font-size=VELIČINA koristi VELIČINU pisma za tijelo teksta\n" " -L, --lines-per-page=BR promijeni veličinu pisma za ispis BR redaka po " "stranici\n" " -l, --chars-per-line=BR promijeni veličinu pisma za ispis BR stupaca po " "stranici\n" " -m, --catman obradi DATOTEKU kao stranicu priručnika (isto " "kao -L66)\n" " -T, --tabsize=BR postavi veličinu tabulatora na BR\n" " --non-printable-format=OBL odredi kako se ispisuju neispisivi znakovi\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Zaglavlja:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header bez ikakvih zaglavlja\n" " -b, --header[=TEKST] postavi zaglavlje stranice\n" " -u, --underlay[=TEKST] ispiši TEKST ispod svake stranice\n" " --center-title[=TEKST] postavi naslov stranice u TEKST\n" " --left-title[=TEKST] postavi naslove lijeve i desne stranice u TEKST\n" " --right-title[=TEKST]\n" " --left-footer[=TEKST] postavi podnožja stranica u TEKST\n" " --footer[=TEKST]\n" " --right-footer[=TEKST]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEKSTOVI mogu koristiti posebne izlaze.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=RASPON] izaberi stranice za ispis\n" " -c, --truncate-lines* odreži dugačke retke\n" " -i, --interpret* tumači znakove tab, bs i ff\n" " --end-of-line=VRSTA odredi EOL znak (VRSTA: r, n, nr, rn, any)\n" " -X, --encoding=IME koristi ulazno kodiranje IME\n" " -t, --title=IME postavi ime zadatka\n" " --stdin=IME postavi ime datoteke standardnog ulaza\n" " --print-anyway* prisilno ispiši binarnu datoteku\n" " -Z, --delegate* ovlasti drugi program za rad s datotekama\n" " --toc[=TEKST] napravi sadržaj\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Kad su ovlaštenja omogućena, a2ps može koristiti druge programe za obradu\n" "datoteka koje ne bi trebale biti ispisane kao neobrađene informacije, npr., " "HTML,\n" "PostScript, PDF itd.\n" # Provjeriti kako sam preveo none, normal i heavy! - TK #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=JEZIK] omogući „uljepšan” ispis (postavi stil u " "JEZIK)\n" " --highlight-level=RAZINA izaberi RAZINU označavanja „uljepšanog” ispisa\n" " RAZINA može biti none, normal ili heavy\n" " -g alias za --highlight-level=heavy\n" " --strip-level=BR razina uklanjanja komentara\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=DATOTEKA spremi izlaz u DATOTEKU. Ako je DATOTEKA\n" " „-”, pošalji izlaz na standardni izlaz.\n" " --version-control=RIJEČ promijeni uobičajenu kontrolu inačice\n" " --suffix=SUFIKS promijeni uobičajeni sufiks sigurnosnih kopija\n" " -P, --printer=IME pošalji izlaz na pisač IME\n" " -d pošalji izlaz na zadani pisač\n" " (ovo je uobičajeno ponašanje)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=DATOTEKA uključi DATOTEKA.pro kao PostScript prolog\n" " --ppd[=KLJUČ] automatski izbor PPD-a ili postavi u KLJUČ\n" " -n, --copies=BROJ ispiši BROJ kopija svake stranice\n" " -s, --sides=NAČIN postavi „duplex” NAČIN („1” ili „simplex”,\n" " „2” ili „duplex”, „tumble”)\n" " -S, --setpagedevice=K[:V] proslijedi definiciju uređaja stranice na " "izlaz\n" " --statusdict=K[:[:]V] proslijedi statusdict definiciju na izlaz\n" " -k, --page-prefeed omogući predunos stranica\n" " -K, --no-page-prefeed onemogući predunos stranica\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Uobičajeno je a2ps namješten da radi ono što želite pa mu vjerujte. Za\n" "„uljepšan” ispis sadržaja direktorija „src” i sadržaja, uz slanje rezultata\n" "na pisač „lw” upišite\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Za obradu datoteka „primjer.ps” i „primjer.html” uz prikaz rezultata " "upišite\n" "\n" " $ a2ps -P display primjer.ps primjer.html\n" "\n" "Za obradu poštanskog sandučića u rasporedu „4” upišite\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Za ispis brošure na zadanom pisaču koji podržava Duplex upišite\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Sadržaj" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "ne mogu obraditi „%s” koji zahtijeva a2ps inačicu %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "neočekivani znak „%c”" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "previše uključenih datoteka" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "nije definiran ključ za „%s”" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "ne mogu pronaći datoteku „%s”" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automatski izbor stila otkazan" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "ne mogu kompajlirati regularni izraz „%s”: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Poznati stilski predlošci" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "ne mogu pronaći stilski predložak „%s”: koristim običan stil" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "neispravan broj inačice „%s”" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "praznina (npr., „ ”)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "oktalni (npr., „\\001” itd.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "heksadekadski (npr., „\\x0a” itd.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "kapa (npr., „^C”, „M-^C” itd.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (npr., „C-c”, „M-C-c” itd.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "upitnik (npr., „?”)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "neispravna opcija „%s”" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Poznata kodiranja" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "nepotpuno poznavanje pisama" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "ne mogu zatvoriti direktorij „%s”" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "neispravan argument „%s” za „%s”" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Ispravni argumenti su cijeli brojevi n takvi da: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Ispravni argumenti su decimalni brojevi f takvi da: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "nepoznato kodiranje „%s”" #: liba2ps/madir.c:51 msgid "rows first" msgstr "prvo retci" #: liba2ps/madir.c:54 msgid "columns first" msgstr "prvo stupci" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "nepoznat medij „%s”" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Poznati mediji" #: liba2ps/media.c:189 msgid "Name" msgstr "Ime" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimenzije" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Poznate varijable" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: nedostaje „%c” za izlaz %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Ispisao %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Ispisao %s iz %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "ne mogu otkriti trenutni radni direktorij" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: predugačak argument %s izlaza" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%b %d, %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: nepoznat „%s” izlaz „%c” (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Stranica %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Stranica %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: neispravan znak razdvajanja „%s%c” za izlaz „%s”" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: neispravan argument za izlaz %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Stranica %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "izlazna naredba" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pokušajte „%s --help” za više informacija.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "neispravan identifikator varijable „%s”" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "neispravno pismo „%s”" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "„%s” bez odgovarajućeg „%s”" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Poznata pisma" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Nijedan.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Poznati opisi PostScript pisača" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "neispravan interval „%s”" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Zadani pisač" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Nepoznat pisač" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "nema naredbe za „%s” (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "poslano na standardni izlaz" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "poslano na zadani pisač" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "spremljeno u datoteku „%s”" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "poslano na pisač „%s”" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Poznati izlazi (pisači itd.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Poznati prolozi" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "pismo %f je preveliko" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "„%s” je binarna datoteka, ispis otkazan" #: liba2ps/userdata.c:104 msgid "user" msgstr "korisnik" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Nepoznat korisnik" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "nepoznata korisnička opcija „%s”" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Poznate korisničke opcije" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Memorija iscrpljena" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "ne mogu preimenovati datoteku „%s” u „%s”" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "obnovljena datoteka „%s”" #~ msgid "any type" #~ msgstr "bilo koja vrsta" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Novosti, ažuriranja i dokumentacija: posjetite http://www.gnu.org/" #~ "software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Prijavite greške na <bug-a2ps@gnu.org>.\n" #~ "Prijavite greške prijevoda na <lokalizacija@linux.hr>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright © 1988-1993 Miguel Santana\n" #~ "Copyright © 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright © 2007- Akim Demaille, Miguel Santana i Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "nepoznato kodiranje „%s”, zanemareno" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright © 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Napisao %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Ovo je slobodan softver, pogledajte kod za upute o kopiranju. NEMA " #~ "jamstava,\n" #~ "čak ni za TRGOVINSKU PRIKLADNOST ili ODGOVARANJE ODREĐENOJ SVRSI.\n" #~ msgid "write error" #~ msgstr "greška pisanja" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "neispravna definicija pisača „%s”: %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "zastarjela stavka „%s”. Zanemareno" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Stranica %d/%d" #~ msgid "`" #~ msgstr "„" #~ msgid "'" #~ msgstr "”" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "neispravan argument %s za „%s”" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "višeznačan argument %s za „%s”" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Ispravni argumenti su:" #~ msgid "Unknown system error" #~ msgstr "Nepoznata greška sustava" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: opcija „%s” je višeznačna\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: opcija „--%s” ne dozvoljava argument\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: opcija „%c%s” ne dozvoljava argument\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: opcija „%s” zahtijeva argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: neprepoznata opcija „--%s”\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: neprepoznata opcija „%c%s”\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: nedozvoljena opcija -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: neispravna opcija -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: opcija zahtijeva argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: opcija „-W %s” je višeznačna\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: opcija „-W %s” ne dozvoljava argument\n" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/id.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000025176�14445132166�011101� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�� �����Q��������p��!��������3��E���R������� ���i�����v��)�����0�����!�����+��� ��)���7��(���a������� ��������������� ����� ����� ����� �������� �����#�����8��(���M��,���v������������������������� �� ����� ����� ���)�����7�����G�����_�� ���h�����s��)���{������/��� ����� �����!��/���!��0���K!�����|!�����!��!���D"�����f"�����"��&���"�����"�� ���"��"���"��7���#�����V#��%���s#��"���#��"���#��9���#�����$��!���9$��;���[$��/���$��/���$��'���$�����%��9���?%��2���y%�� ���%�� ���%�����%�� ���%��"���%��"���&��'���6&�����^&�����u&�����&��!���&��#���&��#���&�����&����� '�����''��*���='�����h'�� ���'�����'�����'�����'��$���'��(���'�����(�����(��$���&(��b���K(�����(�����(�����(�����(�����(�����)�� ���)�����+)�����C)�����\)�����u)�����)��#���)�����)�����)�����)�����*�����4*��"���O*�����r*�����{*�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2008-12-03 18:30+0700 Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com> Language-Team: Indonesian <translation-team-id@lists.sourceforge.net> Language: id MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. � Kosong. � tujuan = %s pengontrol versi = %s akhiran simpan jaga = %s � di kepala = %s di kaki kiri = %s di kaki = %s di kaki kanan= %s judul kiri = %s judul tengah = %s judul kanan = %s dibawah lay = %s � halaman prefeed = %s � definisi statusdict = � gaya lembar = %s highlight level = %s tingkat strip = %d � baris terpotong = %s interpretasi = %s akhir dari baris = %s pengkodean = %s judul dokumen = %s prolog = %s cetak bagaimanapun = %s mendelegasikan = %s �%A %B %d, %Y�%s, didelegasikan ke %s�%s: argumen tidak valid untuk escape %s%c�%s: pemisah `%s%c' tidak valid untuk escape `%s'�%s: hilang `%c' untuk escape %s%c�%s: argumen terlalu panjang untuk escape %s�%s: tidak diketahui `%s' escape `%c' (%d)�Aplikasi dikonfigurasikan untuk delegasi�Status konfigurasi dari %s %s �Pencetak Baku�Delegasi `%s', dari %s ke %s �Global: �Dikepala: �Headings: �Masukan: �Internal: �Pengkodean yang diketahui�Huruf yang Diketahui�Media yang diketahui�Keluaran yang Diketahui (Pencetak, dll.)�Deskripsi Pencetak PostScript yang Diketahui�Prologues yang Diketahui�Lembar Gaya yang Diketahui�Opsi Pengguna yang Diketahui�Variabel yang diketahui�Nama�Keluaran: �PostScript: �Cetak-indah: �Dicetak oleh %s�Dicetak oleh %s dari %s�Lembar: �Daftar Isi�Tugas: �TEKS mungkin menggunakan escape spesial. �Opsi -1.. -9 mengefek ke beberapa parameter primitif untuk menset up predefinisi layout dengan 80 kolom. Jadi urutan dari masalah: `-R -f40 -2' adalah sama dengan `-2'. Untuk memodifikasi layout, gunakan `-2Rf40', atau compose primitf opsi (`--columns', `--font-size' etc.). �Coba `%s --help' untuk informasi lebih lanjut. �Pencetak tidak diketahui�Pengguna Tidak Diketahui�Argumen yang valid adalah floats f seperti: %s �Argumen yang valid adalah integer n seperti: %s �Halaman maya: �Ketika delegasi aktif, a2ps mungkin menggunakan aplikasi lain untuk menangani pemrosesan berkas yang seharusnya tidak dicetak sebagai informasi mentah, e.g, HTML PostScript, PDF, dll. �[%s (%s): 1 halaman di 1 lembar] �[%s (%s): gagal. Diabaikan] �[%s (binari): diabaikan] �[%s (tidak dapat dicetak): diabaikan] �[1 baris dilingkupi] �[Tidak ada keluaran dihasilkan] �[Total: 1 halaman di 1 lembar] %s �`%s' adalah sebuah berkas binari, pencetakan dibatalkan�`%s' adalah sebuah direktori�`%s' tidak ada yang cocok dengan `%s'�pemilihan gaya otomatis dibatalkan�tidak dapat menutup direktori `%s'�tidak dapat melakukan kompilasi ekspresi regular `%s': %s�tidak dapat membuat berkas `%s'�tidak dapat menemukan berkas `%s'�tidak dapat menemukan gaya lembar `%s': mengguna gaya plain�tidak dapat memperoleh direktori kerja sekarang�tidak dapat memperoleh informasi di berkas `%s'�tidak dapat membuka sebuah pipe di `%s'�tidak dapat membuka berkas `%s'�tidak dapat memproses `%s' yang membutuhkan a2ps versi %s�tidak dapat mengubah nama berkas `%s' sebagai `%s'�caret (yaitu, `^C', `M-^C' dll.)�kolom pertama�dimensi�setiap baris�emacs (yaitu, `C-c', `M-C-c' dll.)�akhir dari baris didalam sebuah %s�akhir-dari-baris dalam konstanta string�huruf %f terlalu besar�ukuran huruf %gpt�berat�heksadesimal (yaitu, `\x0a' dll.)�pengetahuan dari muka tidak lengkap�argumen `%s' untuk `%s' tidak valid�muka `%s' tidak valid�interval `%s' tidak valid�opsi `%s' tidak valid�Pengidentifikasi variabel `%s' tidak valid�nomor versi `%s' tidak valid�landscape�hilang argumen untuk `%s'�jangan membuat simpan jaga�tidak�tidak ada perintah untuk `%s' (%s%s)�tidak ada kunci didefinisikan untuk `%s'�kosong�normal�nomor simpan jaga dari setiap berkas�jumlah dari berkas simpan jaga telah dinomori, dan sederhana dari lain�oktal (yaitu, `\001' dll.)�perintah keluaran�plain�portrait�tanda-tanya (yaitu, `?')�mengembalikan berkas `%s'�baris pertama�disimpan ke berkas `%s'�terpilih secara otomatis�dikirim ke pencetak baku�dikirim ke pencetak `%s'�dikirim ke standar keluaran�simpan jaga sederhana setiap berkas�spasi (yaitu, ` ')�terlalu banyak includes�karakter `%c' tidak diduga�pengkodean `%s' tidak diketahui�media `%s' tidak diketahui�opsi pengguna `%s' tidak diketahui�pengguna�ya���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/id.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000124644�14445132164�010733� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Pesan bahasa indonesia untuk a2ps. # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Arif E. Nugroho <arif_endro@yahoo.com>, 2008. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2008-12-03 18:30+0700\n" "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n" "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "hilang argumen untuk `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "tidak dapat membuat berkas `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "tidak dapat membuka sebuah pipe di `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegasi `%s', dari %s ke %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplikasi dikonfigurasikan untuk delegasi" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' adalah sebuah direktori" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "tidak dapat membuka berkas `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "tidak dapat memperoleh informasi di berkas `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 halaman di 1 lembar]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d halaman di 1 lembar]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d halaman di %d lembar]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 halaman di 1 lembar] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Total: %d halaman di 1 lembar] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Total: %d halaman di %d lembar] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 baris dilingkupi]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d baris dilingkupi]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Tidak ada keluaran dihasilkan]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, didelegasikan ke %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): gagal. Diabaikan]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (tidak dapat dicetak): diabaikan]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binari): diabaikan]\n" #: src/generate.c:350 msgid "plain" msgstr "plain" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "akhir-dari-baris dalam konstanta string" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "akhir dari baris didalam sebuah %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "diterima sinyal %d: %s" #: src/main.c:235 msgid "heavy" msgstr "berat" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "kosong" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ya" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "tidak" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Status konfigurasi dari %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Lembar:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " menengah = %s%s, %s\n" " layaout halaman = %d x %d, %s\n" " batas = %s\n" " alignmen berkas = %s\n" " margin interior = %d\n" #: src/main.c:339 msgid "portrait" msgstr "portrait" #: src/main.c:339 msgid "landscape" msgstr "landscape" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d karakter per baris" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d baris per halaman" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "ukuran huruf %gpt" #: src/main.c:363 msgid "each line" msgstr "setiap baris" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "setiap %d baris" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Halaman maya:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " jumlah baris = %s\n" " format = %s\n" " ukuran tabulasi = %d\n" " format tidak dapat dicetak = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Dikepala:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " di kepala = %s\n" " di kaki kiri = %s\n" " di kaki = %s\n" " di kaki kanan= %s\n" " judul kiri = %s\n" " judul tengah = %s\n" " judul kanan = %s\n" " dibawah lay = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Masukan:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " baris terpotong = %s\n" " interpretasi = %s\n" " akhir dari baris = %s\n" " pengkodean = %s\n" " judul dokumen = %s\n" " prolog = %s\n" " cetak bagaimanapun = %s\n" " mendelegasikan = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "terpilih secara otomatis" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Cetak-indah:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " gaya lembar = %s\n" " highlight level = %s\n" " tingkat strip = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "jangan membuat simpan jaga" #: src/main.c:456 msgid "simple backups of every file" msgstr "simpan jaga sederhana setiap berkas" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "jumlah dari berkas simpan jaga telah dinomori,\n" " dan sederhana dari lain" #: src/main.c:466 msgid "numbered backups of every file" msgstr "nomor simpan jaga dari setiap berkas" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Keluaran:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " tujuan = %s\n" " pengontrol versi = %s\n" " akhiran simpan jaga = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " angka ajaib = %s\n" " Deskripsi Pencetak (PPD) = %s\n" " PPD baku = %s\n" " format label halaman = %s\n" " jumlah dari salinan = %d\n" " sisi dari lembar = %s\n" " definisi halaman perangkat= " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definisi statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " halaman prefeed = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Internal:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " tingkat keramaian = %d\n" " perintah berkas = %s\n" " jalur perpustakaan = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Penggunaan: %s [OPSI]... [BERKAS]...\n" "\n" "Ubah BERKAS atau standar masukan ke PostScript. Secara baku, keluaran \n" "dikirim ke pencetak baku. Sebuah berkas keluaran mungkin dispesifikasikan \n" "dengan opsi -o.\n" "Argumen wajib untuk opsi panjang juga wajib untuk opsi pendek juga.\n" "Opsi panjang ditandai dengan * membutuhkan sebuah argumen yes/no, argumen\n" "pendek yang berhubungan berarti untuk `yes'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tugas:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version tampilkan versi\n" " --help tampilkan bantuan ini\n" " --guess laporkan penerkaan tipe dari BERKAS\n" " --which laporkan jalur penuh dari berkas perpustakaan bernama " "BERKAS\n" " --glob laporkan jalur penuh dari berkas perpustakaan cocok " "dengan BERKAS\n" " --list=baku tampilkan konfigurasi dan parameter baku\n" " --list=TOPIK daftar dari TOPIK detail (delegasi, pengkodean, " "features,\n" " variabel, media, ppd, printers, prologues, style-sheet,\n" " opsi-pengguna)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Setelah melakukan tugas, keluar secara sukses. Daftar detail mungkin\n" "memberikan tambahan bantuan di feature spesifik.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent jadi benar benar diam\n" " -v, --verbose[=TINGKAT] set keramaian on, atau ke TINGKAT\n" " -=, --user-option=OPSI gunakan shortcut OPSI yang didefinisikan " "pengguna\n" " --debug aktifkan featur debug\n" " -D, --define=KUNCI[:NILAI] unset variabel KUNCI atau set ke NILAI\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAMA gunakan keluaran medium NAMA\n" " -r, --landscape cetak dalam mode landscape\n" " -R, --portrait cetak dalam mode portrait\n" " --columns=NUM jumlah dari kolom per lembar\n" " --row=NUM jumlah dari baris per lembar\n" " --major=ARAH pertama isi (ARAH=) baris, atau kolom\n" " -1, -2, ..., -9 ukuran huruf yang telah didefinisikan dan layout " "untuk 1.. 9 maya\n" " -A, --file-align=MODE align berkas terpisah menurut MODE (fill, rank\n" " halaman, lembar, atau sebuah angka)\n" " -j, --borders* cetak batas disekitar kolom\n" " --margin[=NUM] definisikan ukuran dari margin interior\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Opsi -1.. -9 mengefek ke beberapa parameter primitif untuk menset up " "predefinisi\n" "layout dengan 80 kolom. Jadi urutan dari masalah: `-R -f40 -2' adalah\n" "sama dengan `-2'. Untuk memodifikasi layout, gunakan `-2Rf40', atau compose " "primitf\n" "opsi (`--columns', `--font-size' etc.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM awali setiap NUM baris dengan nomor barisnya\n" " -C alias untuk --line-numbers=5\n" " -f, --font-size=UKURAN gunakan UKURAN huruf (float) untuk tubuh teks\n" " -L, --lines-per-page=NUM skala huruf untuk dicetak NUM baris per maya\n" " -l, --chars-per-line=NUM skala huruf untuk dicetak NUM kolom per " "virtual\n" " -m, --catman proses BERKAS seperti sebuah halaman man (sama " "seperti -L66)\n" " -T, --tabsize=NUM set ukuran tabulator ke NUM\n" " --non-printable-format=FMT spesifikasikan bagaimana karakter tidak dapat " "dicetak untuk dicetak\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Headings:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header tidak ada halaman header apapun\n" " -b, --header[=TEKS] set halaman header\n" " -u, --underlay[=TEKS] cetak TEKS dibawah setiap halaman\n" " --center-title[=TEKS] set judul halaman ke TEKS\n" " --left-title[=TEKS] set kiri dan kanan judul halaman ke TEKS\n" " --right-title[=TEKS]\n" " --left-footer[=TEKS] set lembar footer ke TEKS\n" " --footer[=TEKS]\n" " --right-footer[=TEKS]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEKS mungkin menggunakan escape spesial.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=RANGE] pilih halaman untuk dicetak\n" " -c, --truncate-lines* potong baris panjang\n" " -i, --interpret* interpretasikan tab, bs dan ff karakter\n" " --end-of-line=TIPE spesifikasikan karakter eol (TIPE: r, n, nr, " "rn, any)\n" " -X, --encoding=NAMA gunakan pengkodean NAMA masukan\n" " -t, --title=NAMA set nama dari pekerjaan\n" " --stdin=NAMA set nama dari berkas masukan stdin\n" " --print-anyway* paksa pencetakan binari\n" " -Z, --delegate* delegasikan berkas dibawah aplikasi lain\n" " --tocl[=TEKS] hasilkan sebuah daftar isi\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Ketika delegasi aktif, a2ps mungkin menggunakan aplikasi lain untuk " "menangani\n" "pemrosesan berkas yang seharusnya tidak dicetak sebagai informasi mentah, e." "g, HTML\n" "PostScript, PDF, dll.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=BAHAS] aktifkan pretty-printing (set gaya ke BAHASA)\n" " --highligh-level=TINGAK set pretty TINGKAT printing highlight\n" " TINGKAT dapat berupa none, normal atau heavy\n" " -g alias untuk --highlight-level=heavy\n" " --strip-level=NUM tingkat dari stripping komentar\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=BERKA tinggalkan keluaran ke berkas BERKAS. Jika \n" " berkas adalah `-', tinggalkan keluaran di " "stdout.\n" " --version-control=WORD override pengontrol versi biasa\n" " --suffix=AKHIRAN override akhiran simpan jaga biasa\n" " -P, --printer=NAMA kirim keluaran ke pencetak NAMA\n" " -d kirim keluaran ke pencetak baku\n" " (ini adalah perilaku baku)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=BERKAS masukan BERKAS.pro sebagai prologue PostScript\n" " --ppd[=KUNCI] pemilihan otomatis PPD atau set ke KUNCI\n" " -n, --copies=NUM cetak NUM salinan untuk setiap halaman\n" " -s, --sides=MODE set MODE duplex (`1' atau `simplex', \n" " `2' atau `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] lewatkan sebuah definisi perangkat halaman ke " "keluaran\n" " --statusdict=K[:[:]V] lewatkan sebuah definisi statusdict ke " "keluaran\n" " -k, --page-prefeed aktifkan halaman prefeed\n" " -K, --no-page-prefeed non-aktifkan halaman prefeed\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Secara baku a2ps di sesuaikan untuk melakukan apa yang anda inginkan, jadi\n" "percayalah kepadanya. Untuk mencetak dengan indah isi dari direktori `src'\n" "dan sebuah daftar isi, dan mengirim hasil ke printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Untuk memproses bekas `sample.ps' dan `sample.html' dan menampilkan " "hasilnya,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "Untuk memproses sebuah kotak suran dalam 4 keatas,\n" " $ a2ps -=mail -4 kotak surat\n" "\n" "Untuk mencetak sebagai sebuah booklet di printer baku, dimana dapat " "mencetak\n" "Duplex,\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Daftar Isi" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "tidak dapat memproses `%s' yang membutuhkan a2ps versi %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "karakter `%c' tidak diduga" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "terlalu banyak includes" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "tidak ada kunci didefinisikan untuk `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "tidak dapat menemukan berkas `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "pemilihan gaya otomatis dibatalkan" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "tidak dapat melakukan kompilasi ekspresi regular `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Lembar Gaya yang Diketahui" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "tidak dapat menemukan gaya lembar `%s': mengguna gaya plain" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "nomor versi `%s' tidak valid" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "spasi (yaitu, ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "oktal (yaitu, `\\001' dll.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "heksadesimal (yaitu, `\\x0a' dll.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (yaitu, `^C', `M-^C' dll.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (yaitu, `C-c', `M-C-c' dll.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "tanda-tanya (yaitu, `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "opsi `%s' tidak valid" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Pengkodean yang diketahui" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "pengetahuan dari muka tidak lengkap" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "tidak dapat menutup direktori `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argumen `%s' untuk `%s' tidak valid" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Argumen yang valid adalah integer n seperti: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Argumen yang valid adalah floats f seperti: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "pengkodean `%s' tidak diketahui" #: liba2ps/madir.c:51 msgid "rows first" msgstr "baris pertama" #: liba2ps/madir.c:54 msgid "columns first" msgstr "kolom pertama" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "media `%s' tidak diketahui" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Media yang diketahui" #: liba2ps/media.c:189 msgid "Name" msgstr "Nama" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensi" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variabel yang diketahui" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: hilang `%c' untuk escape %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Dicetak oleh %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Dicetak oleh %s dari %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "tidak dapat memperoleh direktori kerja sekarang" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argumen terlalu panjang untuk escape %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%b %d, %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: tidak diketahui `%s' escape `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Halaman %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Halaman %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: pemisah `%s%c' tidak valid untuk escape `%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argumen tidak valid untuk escape %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Halaman %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "perintah keluaran" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Coba `%s --help' untuk informasi lebih lanjut.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "Pengidentifikasi variabel `%s' tidak valid" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "muka `%s' tidak valid" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' tidak ada yang cocok dengan `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Huruf yang Diketahui" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Kosong.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Deskripsi Pencetak PostScript yang Diketahui" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "interval `%s' tidak valid" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Pencetak Baku" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Pencetak tidak diketahui" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "tidak ada perintah untuk `%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "dikirim ke standar keluaran" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "dikirim ke pencetak baku" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "disimpan ke berkas `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "dikirim ke pencetak `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Keluaran yang Diketahui (Pencetak, dll.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Prologues yang Diketahui" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "huruf %f terlalu besar" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' adalah sebuah berkas binari, pencetakan dibatalkan" #: liba2ps/userdata.c:104 msgid "user" msgstr "pengguna" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Pengguna Tidak Diketahui" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "opsi pengguna `%s' tidak diketahui" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Opsi Pengguna yang Diketahui" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Kehabisan Memori" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "tidak dapat mengubah nama berkas `%s' sebagai `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "mengembalikan berkas `%s'" #~ msgid "any type" #~ msgstr "tipe apapun" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Berita, updates dan dokumentasi: kunjungi http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Laporkan bugs ke <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Hak Cipta (C) 1988-1993 Miguel Santana\n" #~ "Hak Cipta (C) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Hak Cipta (C) 2007- Akim Demaille, Miguel Santana dan Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "pengkodean`%s' tidak diketahui, diabaikan" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Hak Cipta (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Ditulis oleh %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Ini adalah aplikasi bebas; lihat kode aplikasi untuk kondisi penyalinan.\n" #~ "TIDAK ada garansi; bahkan untuk DIPERDAGANGKAN atau KECOCOKAN UNTUK " #~ "TUJUAN\n" #~ "TERTENTU.\n" #~ msgid "write error" #~ msgstr "error menulis" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "definisi untuk pencetak `%s': %s tidak valid" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "masukan `%s' ditinggalkan. Diabaikan" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Halaman %d/%d" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "argumen %s tidak valid untuk `%s'" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argumen %s ambigu untuk `%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Argumen yang valid adalah:" #~ msgid "Unknown system error" #~ msgstr "Error sistem tidak diketahui" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: opsi `%s' adalah ambigu\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: opsi `--%s' tidak mengijinkan sebuah argumen\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: opsi `%c%s' tidak mengijinkan sebuah argumen\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: opsi `%s' membutuhkan sebuah argumen\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: opsi `--%s' tidak diketahui\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: opsi `%c%s' tidak diketahui\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opsi -- %c tidak legal\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: opsi -- %c tidak valid\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: opsi membutuhkan sebuah argumen -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: opsi `-W %s' ambigu\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: opsi `-W %s' tidak mengijinkan sebuah argumen\n" ��������������������������������������������������������������������������������������������a2ps-4.15.5/po/insert-header.sin��������������������������������������������������������������������0000644�0000000�0000000�00000001612�14415562264�013236� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sed script that inserts the file called HEADER before the header entry. # # Copyright (C) 2001 Free Software Foundation, Inc. # Written by Bruno Haible <bruno@clisp.org>, 2001. # This file is free software; the Free Software Foundation gives # unlimited permission to use, copy, distribute, and modify it. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ����������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/it.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000026313�14445132166�011113� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v��x��z�� �����r���������s��%���g��"�����c���������� �������� ��6�����B���V��<�����6�����4��� ��*���B��$���m������������ �������������������� �����"��������"�����7��)���K��.���u������������������������� ����� �� ��� �����# �����? �����N �����c �����k �� ���t ��2���~ ��2�� ��/���!�����"�����*"��<���="��:���z"�����"�����"�� ���#��)���#�� ���#��'��� $�����3$��%���H$��"���n$��+���$�����$��%���$��*���$��(���&%��7���O%��!���%��"���%��P���%��7���&��1���U&��%���&��!���&��D���&��/���'��+���D'�����p'�� ���'�� ���'��'���'�����'��!���'�����'��$���(�����3(��"���;(��E���^(��6���(��,���(�����)�����%)��0���D)��*���u)�� ���)�����)�����)�����)�� ���)����� *�����,*�����4*��(���<*��b���e*�����*�����*�����*�� ����+��!��� +�����,+�����E+�����T+�����l+��"���+�����+�����+��(���+�����,�����$,�����B,��!���`,�����,��!���,�����,�����,�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps-4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2010-10-22 19:01+0100 Last-Translator: Vincenzo Campanella <vinz65@gmail.com> Language-Team: Italian <tp@lists.linux.it> Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. � Nessuno. � destinazione = %s controllo delle versioni = %s suffisso delle copie di backup = %s � intestazione = %s piè di pagina sinistro = %s piè di pagina = %s piè di pagina destro = %s titolo sinistro = %s titolo centrale = %s titolo destro = %s filigrana = %s � prealimentazione carta = %s � definizioni dello statusdict = � foglio di stile = %s livello di evidenziazione = %s livello di soppressione = %d � interrompere le righe = %s interpretare = %s fine riga = %s codifica = %s titolo del documento = %s prologo = %s stampare in ogni caso = %s incaricare = %s �%A %d %B %Y�%s, incaricato per %s�%s: argomento non valido per la sequenza speciale %s%c�%s: separatore «%s%c» non valido per la sequenza speciale «%s»�%s: manca il separatore «%c» per la sequenza speciale %s%c�%s: argomento troppo lungo per la sequenza speciale %s�%s: sequenza speciale «%s» «%c» (%d) sconosciuta�Applicazioni configurate per gli incarichi�Stato della configurazione di %s %s �Stampante predefinita�Incarico «%s», da %s a %s �Globale: �Intestazioni: �Intestazioni: �Input: �Interni: �Codifiche dei caratteri conosciute�Caratteri conosciuti�Supporti conosciuti�Destinazioni conosciute (stampanti, etc.)�Descrizioni di stampanti PostScript conosciute�File di prologo conosciuti�Fogli di stile conosciuti�Opzioni utente conosciute�Variabili conosciute�Nome�Output: �PostScript: �Evidenziazione sintattica: �Stampato da %s�Stampato da %s da %s�Fogli: �Sommario�Compiti: �Gli escape speciali sono ammessi nei campi TESTO. �Le opzioni -1.. -9 hanno influsso su diversi parametri primitivi per impostare l'aspetto predefinito con 80 colonne. Pertanto, l'ordine è importante: «-R f40 -2» equivale a «-2». Per modificare l'aspetto, utilizzare «-2Rf40», o combinare le opzioni primitive («--columns», «--font-size», ecc.). �Usare «%s --help» per ulteriori informazioni �Stampante sconosciuta�Utente sconosciuto�Gli argomenti validi sono numeri decimali f come questo: %s �Gli argomenti validi sono numeri interi n come questo: %s �Pagine virtuali: �Quando gli incarichi sono abilitati, a2ps può usare altre applicazioni per gestire l'elaborazione dei file che non dovrebbero essere stampati come informazioni grezze, quali per esempio HTML, PostScript, PDF, ecc. �[%s (%s): 1 pagina su 1 foglio] �[%s (%s): non riuscito: verrà ignorato] �[%s (binario): verrà ignorato] �[%s (non stampabile): verrà ignorato] �[1 riga interrotta] �[Non è stato prodotto alcun output] �[Totale: 1 pagina su 1 foglio] %s �«%s» è un file binario: stampa annullata�«%s» è una directory�«%s» senza il corrispondente «%s»�selezione automatica dello stile annullata�impossibile chiudere la directory «%s»�impossibile compilare l'espressione regolare «%s»: %s�impossibile creare il file «%s»�impossibile trovare il file «%s»�impossibile trovare il foglio di stile «%s»: viene utilizzato lo stile di base�impossibile determinare la directory operativa corrente�impossibile ottenere informazioni sul file «%s»�impossibile aprire una pipe su «%s»�impossibile aprire il file «%s»�impossibile elaborare «%s» perché richiede la versione %s di a2ps�impossibile rinominare il file «%s» in «%s»�circonflesso (cioè «^C», «M-^C», ecc.)�prima le colonne�dimensioni�ogni riga�emacs (cioè «C-c», «M-C-c», ecc.')�fine riga in un %s�fine riga in una costante stringa�carattere %f troppo grande�la dimensione del carattere è %g pt�elevato�esadecimale (cioè «\x0a», ecc.)�le caratteristiche dei caratteri virtuali non sono completamente note�«%s» non è un argomento valido per l'opzione «%s»�tipo di carattere virtuale «%s» non valido�intervallo «%s» non valido�l'opzione «%s» non è valida�identificatore della variabile «%s» non valido�il numero di versione «%s» non è valido�orizzontale�manca un argomento per «%s»�non creare mai copie di backup�no�nessun comando per «%s» (%s%s)�chiave non definita per «%s»�nessuno�normale�copie di backup numerate di tutti i file�copie di backup numerate dei file già numerati e semplici degli altri�ottale (cioè «\001», ecc.)�comando di stampa�normale�verticale�punto interrogativo (cioè «?»)�file «%s» ripristinato�prima le righe�salvato nel file «%s»�selezionato automaticamente�inviato alla stampante predefinita�inviato alla stampante «%s»�inviato sull'output standard�copia di backup semplice di tutti i file�spazio (cioè « »)�troppe istruzioni «include»�carattere «%c» non previsto�la codifica «%s» è sconosciuta�supporto «%s» sconosciuto�Opzione utente «%s» sconosciuta�utente�sì����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/it.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000131411�14445132164�010741� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ITALIAN TRANSLATION OF A2PS # Copyright (C) 1995, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # # "Lorenzo M. Catucci" <lorenzo@argon.roma2.infn.it>, 1997. # Vincenzo Campanella <vinz65@gmail.com>, 2008, 2010. # msgid "" msgstr "" "Project-Id-Version: a2ps-4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2010-10-22 19:01+0100\n" "Last-Translator: Vincenzo Campanella <vinz65@gmail.com>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "manca un argomento per «%s»" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "impossibile creare il file «%s»" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "impossibile aprire una pipe su «%s»" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Incarico «%s», da %s a %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Applicazioni configurate per gli incarichi" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "«%s» è una directory" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "impossibile aprire il file «%s»" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "impossibile ottenere informazioni sul file «%s»" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 pagina su 1 foglio]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d pagine su 1 foglio]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d pagine su %d fogli]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totale: 1 pagina su 1 foglio] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Totale: %d pagine su 1 foglio] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Totale: %d pagine su %d fogli] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 riga interrotta]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d righe con a capo automatico]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Non è stato prodotto alcun output]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, incaricato per %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): non riuscito: verrà ignorato]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (non stampabile): verrà ignorato]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binario): verrà ignorato]\n" #: src/generate.c:350 msgid "plain" msgstr "normale" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "fine riga in una costante stringa" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "fine riga in un %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "ricevuto segnale %d: %s" #: src/main.c:235 msgid "heavy" msgstr "elevato" #: src/main.c:239 msgid "normal" msgstr "normale" #: src/main.c:243 msgid "none" msgstr "nessuno" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "sì" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "no" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Stato della configurazione di %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Fogli:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " supporto = %s%s, %s\n" " impaginazione = %d × %d, %s\n" " margini = %s\n" " allineamento file = %s\n" " margine interno = %d\n" #: src/main.c:339 msgid "portrait" msgstr "verticale" #: src/main.c:339 msgid "landscape" msgstr "orizzontale" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d caratteri per riga" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d righe per pagina" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "la dimensione del carattere è %g pt" #: src/main.c:363 msgid "each line" msgstr "ogni riga" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "ogni %d righe" # <LMC> Fogli virtuali? Pagine virtuali è la traduzione vecchia. #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Pagine virtuali:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " numera le righe = %s\n" " formato = %s\n" " larghezza del tabulatore = %d\n" " formato non stampabile = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Intestazioni:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " intestazione = %s\n" " piè di pagina sinistro = %s\n" " piè di pagina = %s\n" " piè di pagina destro = %s\n" " titolo sinistro = %s\n" " titolo centrale = %s\n" " titolo destro = %s\n" " filigrana = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Input:\n" # <LMC> cosa significa questo delegating?? #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " interrompere le righe = %s\n" " interpretare = %s\n" " fine riga = %s\n" " codifica = %s\n" " titolo del documento = %s\n" " prologo = %s\n" " stampare in ogni caso = %s\n" " incaricare = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "selezionato automaticamente" # <LMC> altri problemi... rimandiamo, per ora #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Evidenziazione sintattica:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " foglio di stile = %s\n" " livello di evidenziazione = %s\n" " livello di soppressione = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "non creare mai copie di backup" #: src/main.c:456 msgid "simple backups of every file" msgstr "copia di backup semplice di tutti i file" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "copie di backup numerate dei file già numerati\n" " e semplici degli altri" #: src/main.c:466 msgid "numbered backups of every file" msgstr "copie di backup numerate di tutti i file" # <LMC> Altro messaggio non tradotto in precedenza, ma # <LMC> solamente riportato #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Output:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destinazione = %s\n" " controllo delle versioni = %s\n" " suffisso delle copie di backup = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magic number = %s\n" " descrizione della stampante (PPD) = %s\n" " PPD predefinito = %s\n" " formato delle etichette delle pagine = %s\n" " numero di copie = %d\n" " lati da stampare per foglio = %s\n" " definizioni della pagina = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definizioni dello statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " prealimentazione carta = %s\n" # <LMC> come vanno tradotte le «interiora»? # <LMC> che significa «file command» #: src/main.c:516 msgid "Internals:\n" msgstr "Interni:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " prolissità delle informazioni = %d\n" " file command = %s\n" " percorso della libreria = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Uso: %s [OPZIONI]... [FILE]...\n" "\n" "Converte i FILE o lo standard input in PostScript. In modo predefinito, " "l'output viene inviato\n" "alla stampante predefinita. È possibile specificare un file di output usando " "l'opzione «-o».\n" "\n" "Gli argomenti obbligatori per le opzioni lunghe sono obbligatori anche per " "le opzioni brevi.\n" "Le opzioni lunghe marcate con un «*» richiedono un argomento «sì/no», le " "corrispondenti\n" "opzioni brevi equivalgono alla scelta affermativa («sì»).\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Compiti:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version mostra la versione del programma\n" " --help mostra questo messaggio di aiuto\n" " --guess riporta i tipi di FILE dedotti dal sistema\n" " --which riporta il percorso intero dei file di libreria nominati " "FILE\n" " --glob riporta il percorso intero dei file di libreria " "corrispondenti a FILE\n" " --list=defaults mostra i parametri e le impostazioni predefiniti\n" " --list=ARGOMENTO elenco dettagliato su ARGOMENTO (delegations, encodings, " "features,\n" " variables, media, ppd, printers, prologues, style-" "sheets,\n" " user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Dopo aver eseguito il compito, esce con successo. Gli elenchi dettagliati\n" "possono fornire un aiuto addizionale sulle caratteristiche specifiche.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Globale:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent non visualizzare nulla\n" " -v, --verbose[=LIVELLO] attiva la visualizzazione dei messaggi, " "oppure fissa il\n" " livello di prolissità a LIVELLO\n" " -=, --user-option=OPZIONE utilizza l'OPZIONE abbreviata definita " "dall'utente\n" " --debug abilita le funzioni di debug\n" " -D, --define=CHIAVE[:VALORE] disabilita la variabile CHIAVE o la imposta " "al VALORE\n" # <LMC> qui compaiono le pagine «virtuali» #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NOME usa il supporto di output NOME\n" " -r, --landscape stampa in formato orizzontale\n" " -R, --portrait stampa in formato verticale\n" " --columns=NUMERO numero di colonne per pagina\n" " --rows=NUMERO numero di righe per pagina\n" " --major:DIREZIONE prima riempie le righe o le colonne di DIREZIONE\n" " -1, -2, ..., -9 dimensioni dei caratteri e aspetto predefiniti per " "1.. 9 pagine virtuali\n" " -A, --file-align=MODO allinea i file separati conformemente a MODO " "(riempimento, pagina\n" " di rango, pagina, o un numero)\n" " -j, --borders* stampa i bordi attorno alle colonne\n" " --margin[=NUMERO] definisci un margine interno di dimensione NUMERO\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Le opzioni -1.. -9 hanno influsso su diversi parametri primitivi per " "impostare\n" "l'aspetto predefinito con 80 colonne. Pertanto, l'ordine è importante: «-R " "f40 -2»\n" "equivale a «-2». Per modificare l'aspetto, utilizzare «-2Rf40», o combinare\n" "le opzioni primitive («--columns», «--font-size», ecc.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUMERO precede ogni NUMERO di righe con il " "rispettivo numero di riga\n" " -C equivale a «--line-numbers=5»\n" " -f, --fontsize=DIMENSIONE utilizza carattere di DIMENSIONE (float) " "per il corpo del testo\n" " -L, --lines-per-page=NUMERO dimensiona il carattere per stampare NUMERO " "righe per pagina virtuale\n" " -l, --chars-per-line=NUMERO dimensiona il carattere per stampare NUMERO " "colonne per pagina virtuale\n" " -m --catman elabora il file come una pagina di man " "(equivale a «-L66»)\n" " -T, --tabsize=NUMERO imposta la larghezza del tabulatore a " "NUMERO\n" " --non-printable-format=FORMATO specifica come stampare i caratteri non " "stampabili\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Intestazioni:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header nessuna intestazione\n" " -b, --header[=TESTO] usa TESTO come intestazione\n" " -u, --underlay[=TESTO] stampa TESTO sotto ogni pagina\n" " --center-title[=TESTO] imposta il titolo della pagina a TESTO\n" " --left-title[=TESTO] imposta il titolo delle pagine sinistre a TESTO\n" " --right-title[=TESTO] imposta il titolo delle pagine destre a TESTO\n" " --left-footer[=TESTO] imposta piè di pagina sinistro a TESTO\n" " --footer[=TESTO] imposta piè di pagina a TESTO\n" " --right-footer[=TESTO] imposta piè di pagina destro a TESTO\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "Gli escape speciali sono ammessi nei campi TESTO.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=INTERVALLO] seleziona le pagine da stampare\n" " -c, --truncate-lines* tronca le righe lunghe\n" " -i --interpret* interpreta i caratteri «tab», «bs» e «ff»\n" " --end-of-line=TIPO specifica il formato della fine di riga \n" " (TIPO: r, n, nr, rn, any)\n" " -X, --encoding=NOME utilizza la codifica di input NOME\n" " -t, --title=NOME imposta il NOME del job\n" " --stdin=NOME imposta il NOME quando il file di input è " "stdin\n" " --print-anyway* forza la stampa di file binari\n" " -Z, --delegate* incarica un'altra applicazione di interpretare " "i file\n" " --toc[=TESTO] genera un indice\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Quando gli incarichi sono abilitati, a2ps può usare altre applicazioni per " "gestire\n" "l'elaborazione dei file che non dovrebbero essere stampati come informazioni " "grezze,\n" "quali per esempio HTML, PostScript, PDF, ecc.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LINGUA] abilita l'evidenziazione sintattica (imposta " "lo stile a LANG)\n" " --highlight-level=LIVELLO imposta l'evidenziazione sintattica a LIVELLO\n" " LIVELLO può essere «none» (nessuno), " "«normal» (normale) o «heavy» (elevato)\n" " -g equivale a «--hightlight-level=heavy»\n" " --strip-level=NUMERO elimina NUMERO livelli di commenti\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FILE indirizza l'output su FILE. Se FILE è «-»,\n" " indirizza l'ouput su stdout.\n" " --version-control=PAROLA sovrascrive il solito controllo di versione\n" " --suffix=SUFFISSO sovrascrive il solito suffisso delle copie di " "backup\n" " -P, --printer=NOME indirizza l'ouput alla stampante NOME\n" " -d indirizza l'output alla stampante predefinita\n" " (questo è il comportamento predefinito)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FILE include FILE.pro come prologo PostScript\n" " --ppd[=CHIAVE selezione PPD automatica, o impostazione a " "CHIAVE\n" " -n, --copies=NUMERO stampa NUMERO copie di ogni pagina\n" " -s --sides=MODALITÀ imposta la MODALITÀ fronte-retro («1» o " "«simplex»,\n" " «2» o «duplex», «tumble»)\n" " -S, --setpagedevice=K[:V] inserisce una definizione di «page device»\n" " --statusdict=K[:[:]V] inserisce una definizione di «statusdict»\n" " -k, --page-prefeed abilita la prealimentazione dei fogli\n" " -K, --no-page-prefeed disabilita la prealimentazione dei fogli\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "In modo predefinito a2ps è impostato per fare quanto si desidera faccia, per " "cui gli\n" "si può accordare fiducia. Per effettuare il «pretty printing» del contenuto " "della\n" "directory «src» e un indice e inviare il risultato alla stampante «lw»,\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Per elaborare i file «esempio.ps» ed «esempio.html» e visualizzare il " "risultato,\n" "\n" " $ a2ps -P display esempio.ps esempio.html\n" "\n" "Per elaborare una mailbox con stampa di 4 pagine su 1,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Per stampare come libretto sulla stampante predefinita, che è in grado di " "stampare fronte-retro,\n" "\n" " $ a2ps-=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Sommario" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "impossibile elaborare «%s» perché richiede la versione %s di a2ps" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "carattere «%c» non previsto" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "troppe istruzioni «include»" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "chiave non definita per «%s»" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "impossibile trovare il file «%s»" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "selezione automatica dello stile annullata" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "impossibile compilare l'espressione regolare «%s»: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Fogli di stile conosciuti" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" "impossibile trovare il foglio di stile «%s»: viene utilizzato lo stile di " "base" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "il numero di versione «%s» non è valido" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "spazio (cioè « »)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "ottale (cioè «\\001», ecc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "esadecimale (cioè «\\x0a», ecc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "circonflesso (cioè «^C», «M-^C», ecc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (cioè «C-c», «M-C-c», ecc.')" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "punto interrogativo (cioè «?»)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "l'opzione «%s» non è valida" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Codifiche dei caratteri conosciute" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "le caratteristiche dei caratteri virtuali non sono completamente note" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "impossibile chiudere la directory «%s»" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "«%s» non è un argomento valido per l'opzione «%s»" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Gli argomenti validi sono numeri interi n come questo: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Gli argomenti validi sono numeri decimali f come questo: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "la codifica «%s» è sconosciuta" #: liba2ps/madir.c:51 msgid "rows first" msgstr "prima le righe" #: liba2ps/madir.c:54 msgid "columns first" msgstr "prima le colonne" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "supporto «%s» sconosciuto" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Supporti conosciuti" #: liba2ps/media.c:189 msgid "Name" msgstr "Nome" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensioni" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variabili conosciute" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: manca il separatore «%c» per la sequenza speciale %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Stampato da %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Stampato da %s da %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "impossibile determinare la directory operativa corrente" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argomento troppo lungo per la sequenza speciale %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%d %b %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: sequenza speciale «%s» «%c» (%d) sconosciuta" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Pagina %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Pagina %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separatore «%s%c» non valido per la sequenza speciale «%s»" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argomento non valido per la sequenza speciale %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Pagina %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "comando di stampa" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Usare «%s --help» per ulteriori informazioni\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificatore della variabile «%s» non valido" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "tipo di carattere virtuale «%s» non valido" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "«%s» senza il corrispondente «%s»" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Caratteri conosciuti" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Nessuno.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Descrizioni di stampanti PostScript conosciute" # <LMC> illegale non è un gran che... #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "intervallo «%s» non valido" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Stampante predefinita" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Stampante sconosciuta" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "nessun comando per «%s» (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "inviato sull'output standard" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "inviato alla stampante predefinita" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "salvato nel file «%s»" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "inviato alla stampante «%s»" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Destinazioni conosciute (stampanti, etc.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "File di prologo conosciuti" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "carattere %f troppo grande" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "«%s» è un file binario: stampa annullata" #: liba2ps/userdata.c:104 msgid "user" msgstr "utente" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Utente sconosciuto" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "Opzione utente «%s» sconosciuta" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Opzioni utente conosciute" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Memoria esaurita" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "impossibile rinominare il file «%s» in «%s»" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "file «%s» ripristinato" #~ msgid "any type" #~ msgstr "qualsiasi tipo" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Per novità, aggiornamenti e documentazione, visitare http://www.gnu.org/" #~ "software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Segnalare eventuali errori e malfunzionamenti a <bug-a2ps@gnu.org>\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana e Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "la codifica «%s» è sconosciuta e verrà ignorata" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Scritto da %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Questo programma è software libero; si vedano i sorgenti per le " #~ "condizioni di copia.\n" #~ "Il programma viene distribuito SENZA ALCUNA GARANZIA e senza neppure la " #~ "garanzia\n" #~ "implicita di NEGOZIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO.\n" #~ msgid "write error" #~ msgstr "errore di scrittura" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "definizione non utilizzabile per la stampante «%s»: %s" # <LMC> cosa si intende per «entry»? #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "la voce «%s» è obsoleta e verrà ignorata" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Pagina %d/%d" #~ msgid "`" #~ msgstr "«" #~ msgid "'" #~ msgstr "»" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "argomento «%s» non valido per l'opzione «%s»" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argomento «%s» per «%s» ambiguo" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Gli argomenti validi sono:" #~ msgid "Unknown system error" #~ msgstr "Errore di sistema sconosciuto" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: l'opzione «%s» è ambigua\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: l'opzione «--%s» non ammette argomenti\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: l'opzione «%c%s» non ammette argomenti\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: l'opzione «%s» richiede un argomento\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: opzione sconosciuta «--%s»\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: opzione sconosciuta «%c%s»\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opzione illecita -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: opzione non valida -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: l'opzione richiede un argomento -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: l'opzione «-W %s» è ambigua\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: l'opzione «-W %s» non ammette argomenti\n" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ja.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000065370�14445132166�011077� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�����7��&���8�� ���@8��K��L8����:����<=����@����B����C����PF��3��I����KK��s���L�����RM����ON�����bO�����P��*���P�� ���P��l���P����]Q��f���tR�����R�����R�����R��<���S��;���PS��@���S��9���S��+���T�� ���3T�����@T�����PT��N���T��V��;U�����W�����W��'���W�����W�����W����� X�� ���X�� ���X�����*X�����3X�����BX�����aX�����}X��)���X��.���X�����X��$��� Y��'���0Y�����XY�����nY�����uY�� ���~Y�����Y�����Y�����Y�����Y�����Y�����Y�� ���Z�����Z�� ���,Z��;���8Z����tZ��1���\�����A\�����W\����s\��+���u^��+���^�����^�����^��&���_��$���_��"��� `��6���0`��"���g`��"���`�����`�����`�����`��(���`��&���a��$���Ea��?���ja�����a��)���a��9���a��.���.b��,���]b��(���b��(���b��]���b��3���:c��4���nc��"���c��"���c��?���c��5���)d�����_d�� ���|d�����d�� ���d�����d�����d��*���d��'���d�����!e��%���?e�����ee�� ���e�����e��0���e��8���e��$��� f��&���2f��'���Yf��#���f��,���f�� ���f�����f��(���f��$���!g�����Fg��)���Mg��4���wg�����g�����g��3���g�����g�����h�����h�� ���h�� ���h�����h�����h��"���h�� ��� i��"���*i�� ���Mi��$���Zi��"���i�����i��*���i�����i�����i��-���j��"���Fj��-���ij�� ���j��+���j�� ���j�����j�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-02-04 20:52+0900 Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp> Language-Team: Japanese <translation-team-ja@lists.sourceforge.net> Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 2.4.2 X-Poedit-Basepath: a2ps-4.14.92 X-Poedit-SearchPath-0: . � load: %zu/%zu (%2.1f%%) � 元の大きさ: %zu, 増加: %s %zu � なし. � --line-numbers=数値 各行おきに行番号を行頭につける -C --line-numbers=5のエイリアス -f, --font-size=サイズ 文章本体のフォントサイズ(float)の指定 -L, --lines-per-page=数値 各ページの印刷行数の指定 -l, --chars-per-line=数値 ページあたりの印刷横文字数の指定 -m, --catman manとしてファイルを処理する(-L66と同様) -T, --tabsize=数値 タブサイズの設定 --non-printable-format=FMT 非表示文字の出力形式の指定 � --prologue=ファイル PostScriptプロローグとしてファイル.proを取り込む --ppd[=キー] 自動PPD選択、もしくはキーを設定 -n, --copies=数値 各ページの部数の指定 -s, --sides=モード 複式モードの設定 (`1'もしくは`simplex' `2' もしくは`duplex', `tumble') -S, --setpagedevice=K[:V] ページデバイス定義を出力へ通す --statusdict=K[:[:]V] statusdict定義を出力へ通す -k, --page-prefeed ページプレフィードを有効にする -K, --no-page-prefeed ページプレフィードを無効にする � --version バージョンを表示する --help このヘルプメッセージを表示する --guess ファイルの類推タイプを表示する --which FILESの名の付くライブラリファイルのフルパスを表示する --glob FILESと一致するライブラリファイルのフルパスを表示する --list=defaults 標準設定およびパラメータを出力する --list=題目 各題目の情報を出力する(delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header ページヘッダをなくす -b, --header[=TEXT] ページヘッダの設定 -u, --underlay[=TEXT] TEXTを各ページの下に表示 --center-title[=TEXT] ページの題名をTEXTに設定する --left-title[=TEXT] 左右ページタイトルをTEXTに設定する --right-title[=TEXT] --left-footer[=TEXT] シートフッタをTEXTに設定する --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=言語] 装飾印刷を有効にする(言語でスタイルを設定する) --highlight-level=LEVEL 装飾印刷レベルを設定する レベルは none, normal もしくは heavy です -g --highlight-level=heavyのエイリアス --strip-level=NUM コメント省略レベル � -M, --medium=名前 出力媒体名の指定 -r, --landscape landscapeモードで出力 -R, --portrait portraitモードで出力 --columns=数値 1シートあたりの列数 --rows=数値 1シートあたりの行数 --major=方向 ページを埋めて行く方向. rows,またはcolumnsを指定 -1, -2, ..., -9 1, .., 9 の仮想のフォントサイズとレイアウトの指定 -A, --file-align=モード ファイルの区切りの指定(fill, rank page, sheet, もしくは number) -j, --borders* カラム枠を出力する --margin[=数値] 内部マージンの指定 � -a, --pages[=範囲] 印刷ページの選択 -c, --truncate-lines* 長すぎる行を切り捨てる -i, --interpret* タブ、バックスペース、ff文字を解釈する --end-of-line=タイプ 改行文字の指定 (タイプ: r, n, nr, rn, any) -X, --encoding=エンコード エンコード名の指定 -t, --title=タイトル 内容の題名の設定する --stdin=名前 入力ファイル標準入力の名前の設定 --print-anyway* 強制的にバイナリを印刷する -Z, --delegate* 他のアプリケーションへフィルタリングする --toc[=テキスト] 目次を作成する � -o, --output=ファイル 指定ファイル名へ出力する. ファイル名が`-'なら,標準出力になります. --version-control=WORD 通常のバージョンアップ制御の上書き指定 --suffix=SUFFIX 通常のバックアップサフィックスの上書き指定 -P, --printer=プリンタ 指定プリンタへ出力を送信する -d 標準プリンタへ出力を送信する (これがデフォルトです) � -q, --quiet, --silent メッセージを出力しない -v, --verbose[=レベル] 詳細なメッセージを出力、またはそのレベルの設定 -=, --user-option=OPTION ユーザ定義のショートカットオプションを利用する --debug デバッグ機能を有効にする -D, --define=キー[:値] キーの値の設定もしくは解除 � 出力先 = %s バージョン制御 = %s バックアップサフィックス= %s � ヘッダ = %s 左 フッタ = %s フッタ = %s 右 フッタ = %s 左 タイトル = %s 中央タイトル = %s 右 タイトル = %s 下 メッセージ = %s � マジック番号 = %s プリンタデスクプリタ(PPD) = %s 標準 PPD = %s ページラベル形式 = %s 印刷部数 = %u サイド/シート = %s ページデバイス定義 = � メディア = %s, %s ページレイアウト = %zu x %zu, %s 枠 = %s ファイル区切り = %s 内部マージン = %u � 行番号 = %s 形式 = %s タブサイズ = %u 印刷不可時の形式 = %s � ページプレフィード = %s � statusdict定義 = � スタイルシート = %s 装飾レベル = %s コメント省略レベル = %d � 行の切り詰め = %s 割り込み = %s 改行コード = %s 標準エンコード = %s 文章題名 = %s 標準プロローグ = %s 強制印刷 = %s 外部フィルタリング = %s � メッセージ詳細レベル= %u fileコマンドパス = %s ライブラリパス = �%Y年%b%e日 %A�%Y/%m/%d�%s, %sへフィルタします�%s: エスケープ %s%cに対して不適切な引数です�%s: `%s%c'はエスケープ %s に対して不適切です�%s: `%c'がエスケープ %s%cに対して不足しています�%s: エスケープ%sに対する引数が長過ぎます�%s: 不明な `%s'エスケープ `%c' (%d)�%u文字/行�%u行/ページ�タスク処理終了後に, 正常に終了します. 詳細なリストによって 指定した機能に関する追加ヘルプが提供されます. �アプリケーションは外部フィルタの設定がされていません�デフォルトで, a2ps はあなたの希望するよう動作をするように調整されています。 `src'ディレクトリの内容と、その目次テーブルをきれいに印刷して結果を `lw' プリンタ へ送信するには、 $ a2ps -P lw --toc src/* `sample.ps'と`sample.html'を処理して結果を表示するには、 $ a2ps -P display sample.ps sample.html mailbox を4アップで処理するには、 $ a2ps -=mail -4 mailbox 両面印刷が可能な標準プリンタへ小冊子として印刷するには、 $ a2ps -=book paper.dvi.gz -d�%s %sの設定状態 �標準プリンタ�外部フィルタ`%s', %sから %sへ �動的配列 `%s': �動的文字列: �全般: �ヘッダ: �ヘッダ: �入力: �内部情報: �利用可能なエンコード�利用可能なフォント�利用可能なメディア�利用可能な出力先(プリンタ等)�利用可能なPostScriptプリンタの記述�不明なプロローグ�利用可能なスタイルシート�利用可能なユーザオプション�利用可能な変数�名前�出力: �%zuページ�%zu/%c ページ�%zu/%zu ページ�ポストスクリプト: �印刷装飾: �ユーザ名: %s�ユーザ名:%s 場所:%s�シート: �コンテントテーブル�タスク: �TEXTには特殊なエスケープが利用できます。 �オプション -1.. -9 は, 事前に設定された80桁のレイアウトを設定する いくつかの基本パラメータに影響します。 そのため、以下のようなことが起こります: `-R -f40 -2' は`-2'と同等 です. レイアウトを加工するのに, `-2Rf40'を用いるか、もしくは、基本 オプションを組み合わせます (`--columns', `--font-size' 等)。 �詳しくは`%s --help'を実行して下さい. �不明なプリンタ�不明なユーザーです�使用法: %s [オプション]... [ファイル]... ファイルまたは標準入力をPostscriptへ変換します。デフォルトの出力先は 標準プリンタです。-o で出力先ファイルを指定できます。 ロングオプションへの省略できない引数は、ショートオプションに対しても 同様です。『*』マーク付のロングオプションには yes/no の引数が必要です。 これに対応するショートオプションは`yes'を示します。 �実数の指定が間違っています:%s �整数の指定が間違っています:%s �仮想ページ: �外部フィルタを有効にしている場合, a2ps は生情報として印刷すべきではない ファイルの処理に対して, 別のアプリケーションを利用します。 例: HTML, Postscript, PDF等. �[%s (%s): %zuページ, %zuシート] �[%s (%s): %zuページ, 1シート] �[%s (%s): 1ページ, 1シート] �[%s (%s): 失敗しました. 無効になります] �[%s (バイナリ): 無効です] �[%s (印刷不可): 無効です] �[%zu行 折り畳み] �[1行 折り畳み] �[出力はありません] �[合計: %zuページ, %zuシート] %s �[合計: %zuページ, 1シート] %s �[合計: 1ページ, 1シート] %s �`%s'はバイナリファイルです, 印刷は中断します�`%s'はディレクトリです�`%s' は `%s' と一致していません�自動スタイル選択がキャンセルされました�ディレクトリ`%s'を閉じられません�正規表現`%s'を翻訳できません: %s�ファイル`%s'を作成できません�ファイル`%s'が見つかりません�スタイルシート`%s'が見つかりません: プレーンスタイルを使用します�カレントディレクトリが得られません�ファイル`%s'上の情報を取得できません�`%s'のパイプを開けません�ファイル`%s'を開けません�`%s'を処理するには a2psバージョン %sが必要です�ファイル`%s'を`%s'へ名前変更できません�caret (例, `^C', `M-^C'等)�桁優先�ディメンジョン�%u行ごと�各行�emacs (例, `C-c', `M-C-c'等)�%s 文字列中に行末がきています�文字列中に行末がきています�file(1) の実行でエラー�フォント %f は大きすぎます�%gptフォントサイズ�ヘビー�16進数 (例, `\x0a'等)�フェースに関して不完全な情報です�おかしな引数`%s'が`%s'に指定されています�間違ったフェースです: `%s'�おかしなマクロ情報です `%s'�間違ったオプションです: `%s'�おかしな変数証明です `%s'�おかしなバージョン番号です `%s'�横向き�メモリが足りません�`%s'に対する引数が足りません�バックアップを作成しない�無効�`%s'コマンドはありません (%s%s)�`%s'に対するキーは定義されていません�なし�通常�各ファイルの数字によるバックアップ�ファイルのバックアップ番号はすでに番号が存在しており、 他の単純バックアップもあります�8進数 (例, `\001'等)�出力コマンド�プレーン�縦向き�疑問符 (例, `?')�SIG%sを受け取りました�ファイル`%s'を修復します�行優先�ファイル`%s'へ保存します�自動選択�標準プリンタへ転送します�プリンタ`%s'へ転送します�標準出力へ転送します�各ファイルの単純バックアップ�空白 (例, ` ')�includeが多すぎます�斜体のフォントが多すぎます: `%s'�予期しない文字`%c'です。�不明なエンコーディングです: `%s'�不明なメディアです `%s'�不明なユーザオプション`%s'です�ユーザー�有効�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ja.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000113165�14445132164�010725� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Japanese messages for GNU a2ps. # Copyright (C) 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Yasuyuki Furukawa <furukawa@vinelinux.org>, 2000. # Masayuki Hatta <mhatta@gnu.org>, 2007. # Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011, 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-02-04 20:52+0900\n" "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n" "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 2.4.2\n" "X-Poedit-Basepath: a2ps-4.14.92\n" "X-Poedit-SearchPath-0: .\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "`%s'に対する引数が足りません" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "ファイル`%s'を作成できません" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "`%s'のパイプを開けません" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "外部フィルタ`%s', %sから %sへ\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "アプリケーションは外部フィルタの設定がされていません" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s'はディレクトリです" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "ファイル`%s'を開けません" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "ファイル`%s'上の情報を取得できません" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1ページ, 1シート]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zuページ, 1シート]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zuページ, %zuシート]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[合計: 1ページ, 1シート] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[合計: %zuページ, 1シート] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[合計: %zuページ, %zuシート] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1行 折り畳み]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu行 折り畳み]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[出力はありません]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, %sへフィルタします" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): 失敗しました. 無効になります]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (印刷不可): 無効です]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (バイナリ): 無効です]\n" #: src/generate.c:350 msgid "plain" msgstr "プレーン" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "文字列中に行末がきています" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "%s 文字列中に行末がきています" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "SIG%sを受け取りました" #: src/main.c:235 msgid "heavy" msgstr "ヘビー" #: src/main.c:239 msgid "normal" msgstr "通常" #: src/main.c:243 msgid "none" msgstr "なし" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "有効" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "無効" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "%s %sの設定状態\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "シート:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " メディア = %s, %s\n" " ページレイアウト = %zu x %zu, %s\n" " 枠 = %s\n" " ファイル区切り = %s\n" " 内部マージン = %u\n" #: src/main.c:339 msgid "portrait" msgstr "縦向き" #: src/main.c:339 msgid "landscape" msgstr "横向き" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u文字/行" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u行/ページ" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "%gptフォントサイズ" #: src/main.c:363 msgid "each line" msgstr "各行" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "%u行ごと" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "仮想ページ:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " 行番号 = %s\n" " 形式 = %s\n" " タブサイズ = %u\n" " 印刷不可時の形式 = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "ヘッダ:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " ヘッダ = %s\n" " 左 フッタ = %s\n" " フッタ = %s\n" " 右 フッタ = %s\n" " 左 タイトル = %s\n" " 中央タイトル = %s\n" " 右 タイトル = %s\n" " 下 メッセージ = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "入力:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " 行の切り詰め = %s\n" " 割り込み = %s\n" " 改行コード = %s\n" " 標準エンコード = %s\n" " 文章題名 = %s\n" " 標準プロローグ = %s\n" " 強制印刷 = %s\n" " 外部フィルタリング = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "自動選択" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "印刷装飾:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " スタイルシート = %s\n" " 装飾レベル = %s\n" " コメント省略レベル = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "バックアップを作成しない" #: src/main.c:456 msgid "simple backups of every file" msgstr "各ファイルの単純バックアップ" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "ファイルのバックアップ番号はすでに番号が存在しており、\n" " 他の単純バックアップもあります" #: src/main.c:466 msgid "numbered backups of every file" msgstr "各ファイルの数字によるバックアップ" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "出力:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " 出力先 = %s\n" " バージョン制御 = %s\n" " バックアップサフィックス= %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "ポストスクリプト:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " マジック番号 = %s\n" " プリンタデスクプリタ(PPD) = %s\n" " 標準 PPD = %s\n" " ページラベル形式 = %s\n" " 印刷部数 = %u\n" " サイド/シート = %s\n" " ページデバイス定義 = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " statusdict定義 = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " ページプレフィード = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "内部情報:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " メッセージ詳細レベル= %u\n" " fileコマンドパス = %s\n" " ライブラリパス = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "使用法: %s [オプション]... [ファイル]...\n" "\n" "ファイルまたは標準入力をPostscriptへ変換します。デフォルトの出力先は\n" "標準プリンタです。-o で出力先ファイルを指定できます。\n" "\n" "ロングオプションへの省略できない引数は、ショートオプションに対しても\n" "同様です。『*』マーク付のロングオプションには yes/no の引数が必要です。\n" "これに対応するショートオプションは`yes'を示します。\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "タスク:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version バージョンを表示する\n" " --help このヘルプメッセージを表示する\n" " --guess ファイルの類推タイプを表示する\n" " --which FILESの名の付くライブラリファイルのフルパスを表" "示する\n" " --glob FILESと一致するライブラリファイルのフルパスを表" "示する\n" " --list=defaults 標準設定およびパラメータを出力する\n" " --list=題目 各題目の情報を出力する(delegations, encodings,\n" " features, variables, media, ppd, printers,\n" " prologues, style-sheets, user-options)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "タスク処理終了後に, 正常に終了します. 詳細なリストによって\n" "指定した機能に関する追加ヘルプが提供されます.\n" #: src/main.c:678 msgid "Global:\n" msgstr "全般:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent メッセージを出力しない\n" " -v, --verbose[=レベル] 詳細なメッセージを出力、またはそのレベルの設定\n" " -=, --user-option=OPTION ユーザ定義のショートカットオプションを利用する\n" " --debug デバッグ機能を有効にする\n" " -D, --define=キー[:値] キーの値の設定もしくは解除\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=名前 出力媒体名の指定\n" " -r, --landscape landscapeモードで出力\n" " -R, --portrait portraitモードで出力\n" " --columns=数値 1シートあたりの列数\n" " --rows=数値 1シートあたりの行数\n" " --major=方向 ページを埋めて行く方向. rows,またはcolumnsを指定\n" " -1, -2, ..., -9 1, .., 9 の仮想のフォントサイズとレイアウトの指定\n" " -A, --file-align=モード ファイルの区切りの指定(fill, rank\n" " page, sheet, もしくは number)\n" " -j, --borders* カラム枠を出力する\n" " --margin[=数値] 内部マージンの指定\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "オプション -1.. -9 は, 事前に設定された80桁のレイアウトを設定する\n" "いくつかの基本パラメータに影響します。\n" "そのため、以下のようなことが起こります: `-R -f40 -2' は`-2'と同等\n" "です. レイアウトを加工するのに, `-2Rf40'を用いるか、もしくは、基本\n" "オプションを組み合わせます (`--columns', `--font-size' 等)。\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=数値 各行おきに行番号を行頭につける\n" " -C --line-numbers=5のエイリアス\n" " -f, --font-size=サイズ 文章本体のフォントサイズ(float)の指定\n" " -L, --lines-per-page=数値 各ページの印刷行数の指定\n" " -l, --chars-per-line=数値 ページあたりの印刷横文字数の指定\n" " -m, --catman manとしてファイルを処理する(-L66と同様)\n" " -T, --tabsize=数値 タブサイズの設定\n" " --non-printable-format=FMT 非表示文字の出力形式の指定\n" #: src/main.c:721 msgid "Headings:\n" msgstr "ヘッダ:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header ページヘッダをなくす\n" " -b, --header[=TEXT] ページヘッダの設定\n" " -u, --underlay[=TEXT] TEXTを各ページの下に表示\n" " --center-title[=TEXT] ページの題名をTEXTに設定する\n" " --left-title[=TEXT] 左右ページタイトルをTEXTに設定する\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] シートフッタをTEXTに設定する\n" " --footer[=TEXT] \n" " --right-footer[=TEXT]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEXTには特殊なエスケープが利用できます。\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=範囲] 印刷ページの選択\n" " -c, --truncate-lines* 長すぎる行を切り捨てる\n" " -i, --interpret* タブ、バックスペース、ff文字を解釈する\n" " --end-of-line=タイプ 改行文字の指定 (タイプ: r, n, nr, rn, any)\n" " -X, --encoding=エンコード エンコード名の指定\n" " -t, --title=タイトル 内容の題名の設定する\n" " --stdin=名前 入力ファイル標準入力の名前の設定\n" " --print-anyway* 強制的にバイナリを印刷する\n" " -Z, --delegate* 他のアプリケーションへフィルタリングする\n" " --toc[=テキスト] 目次を作成する\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "外部フィルタを有効にしている場合, a2ps は生情報として印刷すべきではない\n" "ファイルの処理に対して, 別のアプリケーションを利用します。\n" " 例: HTML, Postscript, PDF等.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=言語] 装飾印刷を有効にする(言語でスタイルを設定する)\n" " --highlight-level=LEVEL 装飾印刷レベルを設定する\n" " レベルは none, normal もしくは heavy です\n" " -g --highlight-level=heavyのエイリアス\n" " --strip-level=NUM コメント省略レベル\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=ファイル 指定ファイル名へ出力する. \n" " ファイル名が`-'なら,標準出力になります.\n" " --version-control=WORD 通常のバージョンアップ制御の上書き指定\n" " --suffix=SUFFIX 通常のバックアップサフィックスの上書き指定\n" " -P, --printer=プリンタ 指定プリンタへ出力を送信する\n" " -d 標準プリンタへ出力を送信する\n" " (これがデフォルトです)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=ファイル PostScriptプロローグとしてファイル.proを取り込" "む\n" " --ppd[=キー] 自動PPD選択、もしくはキーを設定\n" " -n, --copies=数値 各ページの部数の指定\n" " -s, --sides=モード 複式モードの設定 (`1'もしくは`simplex'\n" " `2' もしくは`duplex', `tumble')\n" " -S, --setpagedevice=K[:V] ページデバイス定義を出力へ通す\n" " --statusdict=K[:[:]V] statusdict定義を出力へ通す\n" " -k, --page-prefeed ページプレフィードを有効にする\n" " -K, --no-page-prefeed ページプレフィードを無効にする\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "デフォルトで, a2ps はあなたの希望するよう動作をするように調整されています。\n" "`src'ディレクトリの内容と、その目次テーブルをきれいに印刷して結果を\n" "`lw' プリンタ へ送信するには、\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "`sample.ps'と`sample.html'を処理して結果を表示するには、\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "mailbox を4アップで処理するには、\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "両面印刷が可能な標準プリンタへ小冊子として印刷するには、\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "コンテントテーブル" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "`%s'を処理するには a2psバージョン %sが必要です" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "予期しない文字`%c'です。" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "includeが多すぎます" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "`%s'に対するキーは定義されていません" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "ファイル`%s'が見つかりません" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "自動スタイル選択がキャンセルされました" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "file(1) の実行でエラー" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "正規表現`%s'を翻訳できません: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "利用可能なスタイルシート" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "スタイルシート`%s'が見つかりません: プレーンスタイルを使用します" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "おかしなバージョン番号です `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "空白 (例, ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "8進数 (例, `\\001'等)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "16進数 (例, `\\x0a'等)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (例, `^C', `M-^C'等)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (例, `C-c', `M-C-c'等)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "疑問符 (例, `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "動的配列 `%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tload: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\t元の大きさ: %zu, 増加: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "動的文字列:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "斜体のフォントが多すぎます: `%s'" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "間違ったオプションです: `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "利用可能なエンコード" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "フェースに関して不完全な情報です" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "ディレクトリ`%s'を閉じられません" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "おかしな引数`%s'が`%s'に指定されています" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "整数の指定が間違っています:%s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "実数の指定が間違っています:%s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "不明なエンコーディングです: `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "行優先" #: liba2ps/madir.c:54 msgid "columns first" msgstr "桁優先" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "不明なメディアです `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "利用可能なメディア" #: liba2ps/media.c:189 msgid "Name" msgstr "名前" #: liba2ps/media.c:190 msgid "dimensions" msgstr "ディメンジョン" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "利用可能な変数" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: `%c'がエスケープ %s%cに対して不足しています" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "ユーザ名: %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "ユーザ名:%s 場所:%s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "カレントディレクトリが得られません" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: エスケープ%sに対する引数が長過ぎます" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%Y/%m/%d" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%Y年%b%e日 %A" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: 不明な `%s'エスケープ `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "%zuページ" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "%zu/%c ページ" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: `%s%c'はエスケープ %s に対して不適切です" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: エスケープ %s%cに対して不適切な引数です" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "%zu/%zu ページ" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "出力コマンド" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "詳しくは`%s --help'を実行して下さい.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "おかしな変数証明です `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "間違ったフェースです: `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' は `%s' と一致していません" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "利用可能なフォント" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " なし.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "利用可能なPostScriptプリンタの記述" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "おかしなマクロ情報です `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "標準プリンタ" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "不明なプリンタ" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "`%s'コマンドはありません (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "標準出力へ転送します" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "標準プリンタへ転送します" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "ファイル`%s'へ保存します" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "プリンタ`%s'へ転送します" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "利用可能な出力先(プリンタ等)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "不明なプロローグ" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "フォント %f は大きすぎます" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s'はバイナリファイルです, 印刷は中断します" #: liba2ps/userdata.c:104 msgid "user" msgstr "ユーザー" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "不明なユーザーです" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "不明なユーザオプション`%s'です" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "利用可能なユーザオプション" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "メモリが足りません" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "ファイル`%s'を`%s'へ名前変更できません" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "ファイル`%s'を修復します" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "全てのタイプ" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "新着情報や更新情報、ドキュメントは http://www.gnu.org/software/a2ps/ をご" #~ "覧ください。\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "バグを発見したら <bug-a2ps@gnu.org> 宛に報告して下さい.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "不明なエンコーディングです: `%s', 無効になります" #~ msgid "Written by %s.\n" #~ msgstr "作成者: %s\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "このプログラムは便利になることを希望していますが完全に無保証です。\n" #~ "営利目的やある特定の目的のための適正のものでもありません。\n" #~ msgid "write error" #~ msgstr "書き込みエラー" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "おかしなプリンタの定義です `%s': %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "旧式の`%s'エントリです. 無効です" #~ msgid "Page %d/%d" #~ msgstr "%d/%dページ" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "invalid argument %s for `%s'" #~ msgstr "おかしな引数`%s'が`%s'に指定されています" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "曖昧な引数`%s'が`%s'に対して指定されています" #~ msgid "Valid arguments are:" #~ msgstr "おかしな引数です:" #~ msgid "Unknown system error" #~ msgstr "不明なシステムエラーです" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: オプション`%s'は曖昧です\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: オプション`--%s'は引数を取りません\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: オプション`%c%s'は引数を取りません\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: オプション`%s'には引数が必要です\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: 不明なオプションです `--%s'\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: 不明なオプションです `%c%s'\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: 間違ったオプションです -- %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: 不適切なオプションです -- %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: オプションには引数が必要です -- %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: オプション`-W %s'が曖昧です\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: オプション`-W %s'は引数を取りません\n" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ko.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000013666�14445132166�011117� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������V�����������|������x��!���y������� ����������$�����,������ ���-��#���N��!���r��&����������������������� ����� �����0 �� ���9 �� ���C �����N �� ���V �����b �� ���r �����~ ����� ����� ����� ����� ����� �� ��� ����� �� ��� ����� �����! �����* ��&���; �����b �� ���r ����� ����� ����� ����� ����� ����� ����� ��'���4 �����\ ��#���w ����� ��/��� ��$��� ����� ��2���" �����U �� ���u �� ��� �� ��� ��!��� ����� ����� ����� ����� ����� �����! �� ���? �����I �����\ �����_ �����d �����k ��\��� ����� ���������������������� ���9�����D�����]�����t��������������������������������n����!���l������������ �����!�����1�����'����� ���G��(���h��%���������� ��������������� �������� ���������������&�����-�� ���4�� ���B�����N�� ���l�����x���������������������� ����� ��������������������4��������*�����<�� ���N�����\�����v������������ ����������*����������!���1�� ���S��=���t��%����������4�����!���(�����J�����R�����W�� ���]�����~����������������������)�������� ����������'�����.�����3�����8��b���W������� ��������������������������������������7�����N�����e�� ���|��������������������=������� ���@������� ��� ���.���>������5���F���9�������D�������S���L��������������6���I����������?���������N���T�����������H���������������+���3���%���O����������K���1���$���B�������4����������2�������P�����������E���(����������������R������'��������������V���J�������;���A���U��������������&��������������G���*���)�����������#��� ��������������/���,���C����������M���������<�������������������0������ ������������"���:���8������!������� �����������Q���7���������������������-���� page prefeed = %s � statusdict definitions = �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Media�Known Outputs (Printers, etc.)�Known Prologues�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Try `%s --help' for more information. �Unknown Printer�Unknown User�Virtual pages: �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�landscape�never make backups�no�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�user�yes�Project-Id-Version: a2ps-4.10.1 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 1999-01-24 13:02+01:00 Last-Translator: CHOI Junho <junker@jazz.snu.ac.kr> Language-Team: Korean <ko@li.org> Language: ko MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-KR Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. � ̸ = %s � statusdict = �%Y %B %d %A�%s, %s �%s: %s%c ߸ μ�%s: ߸ и `%s%c' `%s' �%s: `%c' %s%c ϴ�%s: %s ʹ μ�%s: `%s' `%c' (%d)�ø̼ Ǿϴ�%s Ȳ %s �⺻ � `%s': %s %s � 迭 `%s': � ڿ: �: �Ӹ: �Ӹ: �Է: �: �˷ ڵ�˷ ü�˷ ( )�˷ �˷ ɼ�˷ ũ Ÿ �̸�: �ƮũƮ: � ٹ̱: �%s �%s %s �: �� `%s --help' Ͻʽÿ. � � � : �[%s (%s): 1 /1 ] �[%s (%s): . ] �[%s (̳ʸ): ] �[%s (ºҰ): ] �[ ] �[հ: 1 /1 ] %s �`%s' Դϴ. ߴմϴ�`%s' ´ `%s' ϴ�ڵ Ÿ ҵǾϴ�丮 `%s' ϴ�Ÿ Ʈ `%s' ã ϴ: Ÿ մϴ� ۾ 丮 ϴ� `%s' ϴ�a2ps %s ʿ ϴ `%s' ó ϴ� (> `^C', `M-^C' .)� �� �emacs (> `C-c', `M-C-c' .)�ڿ ȿ �Ʈ %f ʹ Ůϴ�۲ ũ %gpt��16 (> `\x0a' .)�Ʈ 翡 ҿϰ ˰ ֽϴ�γа� ʴ´�ƴϿ��� ȣ ־ �ȣ ־ ȣ ְ, ׷ ܼϰ մϴ�8 (> `\001' .)� ��γа�ǹȣ (> `?')� � `%s' մϴ�ڵ õǾϴ�⺻ ͷ ϴ� `%s' ϴ�ǥ ϴ� � (> ` ')�����������������������������������������������������������������������������a2ps-4.15.5/po/ko.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000126643�14445132164�010751� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Korean translations for a2ps. # Copyright (C) 1997 Free Software Foundation, Inc. # CHOI Junho <junker@jazz.snu.ac.kr>, 1998. # msgid "" msgstr "" "Project-Id-Version: a2ps-4.10.1\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 1999-01-24 13:02+01:00\n" "Last-Translator: CHOI Junho <junker@jazz.snu.ac.kr>\n" "Language-Team: Korean <ko@li.org>\n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=EUC-KR\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, fuzzy, c-format msgid "missing argument for `%s'" msgstr "`%s' μ " #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, fuzzy, c-format msgid "cannot create file `%s'" msgstr " `%s' ϴ" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, fuzzy, c-format msgid "cannot open a pipe on `%s'" msgstr "`%s' ϴ" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr " `%s': %s %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "ø̼ Ǿϴ" #: src/generate.c:82 #, fuzzy, c-format msgid "`%s' is a directory" msgstr "`%s' 丮Դϴ" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr " `%s' ϴ" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, fuzzy, c-format msgid "cannot get informations on file `%s'" msgstr " `%s' ϴ" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 /1 ]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d /1 ]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d /%d ]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[հ: 1 /1 ] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[հ: %d /1] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[հ: %d /%d ] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:221 #, fuzzy, c-format msgid "[%zu lines wrapped]\n" msgstr " %d " #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[ ]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, %s " #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): . ]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (ºҰ): ]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (̳ʸ): ]\n" #: src/generate.c:350 msgid "plain" msgstr "" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "ڿ ȿ " #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "ԽĿ " #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "" #: src/main.c:235 msgid "heavy" msgstr "" #: src/main.c:239 msgid "normal" msgstr "" #: src/main.c:243 msgid "none" msgstr "" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ƴϿ" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "%s Ȳ %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr ":\n" #: src/main.c:332 #, fuzzy, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " ⺻ = %s%s\n" " ̾ƿ = %d x %d (%s, %s)\n" " ڸ = %s\n" " = %s\n" " = %d\n" #: src/main.c:339 msgid "portrait" msgstr "γа" #: src/main.c:339 msgid "landscape" msgstr "γа" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr " %d " #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr " %d " #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "۲ ũ %gpt" #: src/main.c:363 msgid "each line" msgstr " " #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr " %d " #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr " :\n" #: src/main.c:371 #, fuzzy, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " ȣ = %s\n" " = %s\n" " ũ = %d\n" " μ = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Ӹ:\n" #: src/main.c:383 #, fuzzy, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " Ӹ = %s\n" " = %s\n" " = %s\n" " = %s\n" " = %s\n" " = %s\n" " = %s\n" " Ʒ = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Է:\n" #: src/main.c:403 #, fuzzy, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " ڸ = %s\n" " ؼ = %s\n" " = %s\n" " ⺻ ڵ = %s\n" " = %s\n" " ⺻ = %s\n" " = %s\n" " = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "ڵ õǾϴ" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr " ٹ̱:\n" #: src/main.c:432 #, fuzzy, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " Ÿ Ʈ = %s\n" " ̶Ʈ = %s\n" " ߶󳻱 = %d\n" #: src/main.c:452 msgid "never make backups" msgstr " ʴ´" #: src/main.c:456 msgid "simple backups of every file" msgstr " " #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "ȣ ־ ȣ ְ, ׷ \n" " ܼϰ մϴ" #: src/main.c:466 msgid "numbered backups of every file" msgstr " ȣ ־ " #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr ":\n" #: src/main.c:471 #, fuzzy, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " ϴ = %s\n" " = %s\n" " ̻ = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "ƮũƮ:\n" #: src/main.c:484 #, fuzzy, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " ȣ = %s\n" " (PPD) = %s\n" " ⺻ PPD = %s\n" " ̺ = %s\n" " 纻 = %d\n" " = %d\n" " ġ = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " ̸ = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr ":\n" #: src/main.c:517 #, fuzzy, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " = %d\n" " = %s\n" " ӽ 丮 = %s\n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" ": %s [OPTIONS]... [FILES]...\n" " Ǵ: %s [OPTIONS]...\n" "FILES ϰų ǥ մϴ.\n" " ̸ ɼ ʼ μ ª ̸ ɼǿ ʿմϴ.\n" "* ǥõ ̸ ɼ /ƴϿ(yes/no) μ ʿϸ,\n" "ϴ ª ̸ ɼ `(yes)' ǹմϴ.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "" #: src/main.c:656 #, fuzzy msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " -V, --version ǥϰ մϴ\n" " --help ǥϰ մϴ\n" " --copyright ۱ǰ ǥմϴ\n" " --guess FILES Ͽ ǥմϴ\n" " --list=TOPIC TOPIC ǥմϴ\n" "\n" "TOPIC ϳ ܾ ֽϴ:\n" " * `defaults': ⺻ Ű,\n" " * `features': ϴ ü, ڵ, Ÿ Ʈ ª .\n" " * `delegations', `encodings', `variables', `media',\n" " `ppd', `printers', `prologues', `style-sheets', `user-options': \n" " ڼ .\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" #: src/main.c:678 msgid "Global:\n" msgstr ":\n" #: src/main.c:679 #, fuzzy msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent ƹ ޽ ʽϴ\n" " -v, --verbose ۾ ޽ մϴ\n" " -=, --user-option=OPTION OPTION մϴ\n" " --debug ϰ մϴ\n" " --define=KEY[:VALUE] ũ K V ϰų մϴ\n" #: src/main.c:688 #, fuzzy msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAME ü NAME մϴ\n" " -1, -2, ..., -9 1-9 ǵ ̾ƿ \n" " --columns=NUM ̴ (NUM > 0)\n" " --rows=NUM ̴ (NUM > 0)\n" " --major=DIRECTION (DIRECTION=rows,columns)/ äϴ\n" " -r, --landscape ΰ ϰ μմϴ\n" " -R, --portrait ΰ ϰ μմϴ\n" " -j, --borders* ֺ ڸ μմϴ\n" " -A, --compact* ̿ ְ մϴ\n" " --margin[=NUM] ũ⸦ NUM մϴ\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" #: src/main.c:710 #, fuzzy msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM NUMึ ȣ մϴ\n" " -C --line-numbers=5 ϴ\n" " -f, --fontsize=SIZE ũSIZE(float) Ʈ մϴ\n" " -L, --lines-per-page=NUM  մϴ\n" " -l, --columns-per-page=NUM  մϴ\n" " -m, --catman óմϴ(-L66 )\n" " -T, --tabsize=NUM ũ⸦ NUM մϴ\n" " --non-printable-format=FMT ڵ FMT մϴ\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Ӹ:\n" #: src/main.c:723 #, fuzzy, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header Ӹ ʽϴ\n" " -b, --header[=TEXT] Ӹ մϴ\n" " -u, --underlay[=TEXT] Ʒ TEXT մϴ\n" " --center-title[=TEXT] TITLE մϴ\n" " --left-title[=TEXT] ʰ TEXT մϴ\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] TEXT մϴ\n" " --footer[=TEXT] TEXT $ %Ư ڸ \n" " --right-footer[=TEXT] ֽϴ\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:739 #, fuzzy msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=RANGE] մϴ\n" " -c, --truncate-lines* ڸϴ\n" " -i, --interpret* , 齺̽(BS), ǵ(FF) ؼմϴ\n" " --end-of-line=TYPE ڸ (TYPE: r, n, nr, rn, any)\n" " -X, --encoding=NAME Է ڵ NAME մϴ\n" " -t, --title=NAME ǥԷ ̸ մϴ\n" " --stdin=NAME ǥ Է ̸ մϴ\n" " --prologue=FILE PostScript պκ FILE.pro մϴ\n" " --print-anyway* ϰ մϴ\n" " -Z, --delegate* ٸ ø̼ǿ մϴ\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LANG] ٹ̱⸦ մϴ(Ÿ LANG)\n" " --highlight-level=LEVEL ٹ̱ ̶̵ LEVEL \n" " LEVEL none, normal, heavy ֽϴ\n" " -g --highlight-level=heavy \n" " --strip-level=NUM ּ \n" #: src/main.c:767 #, fuzzy msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FILE FILE ϴ. FILE `-'̸\n" " ǥ Դϴ.\n" " --version-control=WORD  մϴ\n" " --suffix=SUFFIX ̻縦 մϴ\n" " -P, --printer=NAME NAME ϴ\n" " -d ⺻ ͷ ϴ\n" #: src/main.c:778 #, fuzzy msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --ppd[=KEY] ڵ PPD Ǵ KEY մϴ\n" " -n, --copies=NUM NUM մϴ\n" " -s, --sides=NUM (recto/recto-verso)\n" " -D, --setpagedevice=K[:V] ġ Ǹ ѱϴ\n" " -S, --statusdict=K[:[:]V] statusdictǸ ѱϴ\n" " -k, --page-prefeed ̸ ⸦ ϰ մϴ\n" " -K, --no-page-prefeed ̸ ⸦ Ұϰ մϴ\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" #: src/main.c:1146 msgid "Table of Content" msgstr "" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "a2ps %s ʿ ϴ `%s' ó ϴ" #: src/sheets-map.l:117 #, fuzzy, c-format msgid "unexpected character `%c'" msgstr "߸ ɼ: `%c' (%d)" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "" #: src/sheets-map.l:301 src/sheets-map.l:308 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr " `%s%s' ã ϴ" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, fuzzy, c-format msgid "cannot find file `%s'" msgstr " `%s%s' ã ϴ" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "ڵ Ÿ ҵǾϴ" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, fuzzy, c-format msgid "cannot compile regular expression `%s': %s" msgstr "Խ `%s' ϴ: %s" #: src/ssheet.c:904 src/ssheet.c:925 #, fuzzy msgid "Known Style Sheets" msgstr "˷ Ÿ Ʈ ()" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "Ÿ Ʈ `%s' ã ϴ: Ÿ մϴ" #: src/versions.c:128 #, fuzzy, c-format msgid "invalid version number `%s'" msgstr "߸ ȣ: `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr " (> ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "8 (> `\\001' .)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "16 (> `\\x0a' .)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr " (> `^C', `M-^C' .)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (> `C-c', `M-C-c' .)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "ǹȣ (> `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr " 迭 `%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, fuzzy, c-format #| msgid "\tload: %d/%d (%2.1f%%)\n" msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tб: %d/%d (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr " ڿ:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, fuzzy, c-format msgid "invalid option `%s'" msgstr "%s: ߸ ɼ -- %c\n" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "˷ ڵ" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "Ʈ 翡 ҿϰ ˰ ֽϴ" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "丮 `%s' ϴ" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, fuzzy, c-format msgid "invalid argument `%s' for `%s'" msgstr "߸ μ `%s' ɼ `%s' " #: liba2ps/getnum.c:101 #, fuzzy, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "ùٸ μ %d Դϴ\n" #: liba2ps/getnum.c:202 #, fuzzy, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "ùٸ μ %d Դϴ\n" #: liba2ps/jobs.c:304 #, fuzzy, c-format msgid "unknown encoding `%s'" msgstr " ڵ: `%s', մϴ" #: liba2ps/madir.c:51 msgid "rows first" msgstr " " #: liba2ps/madir.c:54 msgid "columns first" msgstr " " #: liba2ps/media.c:158 #, fuzzy, c-format msgid "unknown medium `%s'" msgstr " ü `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "˷ ü" #: liba2ps/media.c:189 msgid "Name" msgstr "̸" #: liba2ps/media.c:190 msgid "dimensions" msgstr "" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "˷ ũ Ÿ " #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: `%c' %s%c ϴ" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "%s " #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "%s %s " #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr " ۾ 丮 ϴ" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: %s ʹ μ" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%y %b %d" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%Y %B %d %A" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: `%s' `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "%d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "%d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: ߸ и `%s%c' `%s' " #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: %s%c ߸ μ" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "%d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr " " #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr " `%s --help' Ͻʽÿ.\n" #: liba2ps/options.c:672 #, fuzzy, c-format msgid "invalid variable identifier `%s'" msgstr "߸ ũ ĺ: `%s'" #: liba2ps/output.c:413 #, fuzzy, c-format msgid "invalid face `%s'" msgstr "%s: ߸ ɼ -- %c\n" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' ´ `%s' ϴ" #: liba2ps/ppd.c:83 #, fuzzy msgid "Known Fonts" msgstr "˷ ڵ" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, fuzzy, c-format msgid "invalid interval `%s'" msgstr "߸ : %s" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "⺻ " #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr " " #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr " `%s' ⺻ ϴ" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "ǥ ϴ" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "⺻ ͷ ϴ" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr " `%s' մϴ" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr " `%s' ϴ" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "˷ ( )" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "˷ " #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "Ʈ %f ʹ Ůϴ" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' Դϴ. ߴմϴ" #: liba2ps/userdata.c:104 msgid "user" msgstr "" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr " " #: liba2ps/useropt.c:56 #, fuzzy, c-format msgid "unknown user option `%s'" msgstr "˷ ɼ" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "˷ ɼ" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "޸𸮰 ڶϴ" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, fuzzy, c-format msgid "cannot rename file `%s' as `%s'" msgstr " `%s' ̸ `%s' ٲ ϴ" #: liba2ps/xbackupfile.c:178 #, fuzzy, c-format msgid "restored file `%s'" msgstr " `%s' ϴ" #~ msgid "any type" #~ msgstr " " #, fuzzy #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ ", Ʈ http://www.inf.enst.fr/~demaille/a2ps/ 湮ϼ" #~ "\n" #~ "* Ǵ CHOI Junho<junker@jazz.snu.ac.kr> ϼ\n" #, fuzzy #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr " Ʈ <bug-a2ps@gnu.org> ּ\n" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "\n" #~ "۱ (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "۱ (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana\n" #, fuzzy, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr " ڵ: `%s', մϴ" #, fuzzy, c-format #~ msgid "Written by %s.\n" #~ msgstr "%s " #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "̰ ƮԴϴ: ǿ ؼ ҽ .\n" #~ "Ư ռ̳ ǰ Ϲ \n" #~ " ʽϴ.\n" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr " `%s' ߸ : %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr " ʴ `%s' Ʈ. մϴ" #, c-format #~ msgid "Page %d/%d" #~ msgstr "%d/%d" #, fuzzy, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "߸ μ `%s' ɼ `%s' " #, fuzzy, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "ָ μ `%s' ɼ `%s' " #, c-format #~ msgid "Valid arguments are:" #~ msgstr "ùٸ μ:" #~ msgid "Unknown system error" #~ msgstr " ý " #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: ɼ `%s' ָմϴ\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: ɼ `--%s' μ ϴ\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: ɼ `%c%s' μ ϴ\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: ɼ `%s' μ ʿմϴ\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: ν ɼ `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: ν ɼ `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ߸ ɼ -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: ߸ ɼ -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: ɼ μ ʿմϴ -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: ɼ `-W %s' ָմϴ\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: ɼ `-W %s' μ ϴ\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "ԽĿ " #~ msgid "end-of-line in regular expression" #~ msgstr "ԽĿ " #, fuzzy #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "\n" #~ "۱ (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "۱ (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana\n" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "۾ ( ):\n" #~ msgid "" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 3, or (at your option)\n" #~ "any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License\n" #~ "along with this program; if not, write to the Free Software Foundation,\n" #~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ msgstr "" #~ " α׷ ƮԴϴ. Free Software\n" #~ "Foundation ǥ GNU Ϲ ̼ (̼ \n" #~ "2̰ų, ( )  ), α׷ \n" #~ "׸/Ȥ ֽϴ.\n" #~ "\n" #~ " α׷ ϱ⸦ ٶ , \n" #~ "̿  , Ư \n" #~ " ռ̳ ǰ Ϲ ʽϴ.\n" #~ " ڼ GNU Ϲ ̼ Ͻʽÿ.\n" #~ "\n" #~ " α׷ Բ GNU Ϲ ̼ 纻 ޾\n" #~ "Դϴ. ׷ ʴٸ, Free Sofrware Foundation, Inc., 59 Temple\n" #~ "Place - Suite 330, Boston, MA 02111-1307, USA. Ͻʽÿ.\n" #~ msgid "" #~ "Written by <Akim.Demaille@inf.enst.fr> and <Miguel.Santana@st.com>.\n" #~ msgstr "" #~ "<Akim.Demaille@inf.enst.fr> <Miguel.Santana@st.com> ۼϿϴ.\n" #~ msgid "no default command for option `-d'" #~ msgstr "ɼ `-d' ⺻ ϴ" #~ msgid "pipe in %s\n" #~ msgstr "%s \n" #~ msgid "save in %s\n" #~ msgstr "%s \n" #, fuzzy #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "߸ μ `%s' ɼ `%s' " #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "߸ : %s" #~ msgid "illegal integer interval: %s" #~ msgstr "߸ : %s" #, fuzzy #~ msgid "cannot find file %s" #~ msgstr " `%s' ã ϴ" #, fuzzy #~ msgid "unrecognized font `%s'" #~ msgstr "ν Ʈ: `%s'" #, fuzzy #~ msgid "unrecognized face `%s'" #~ msgstr "ν Ʈ : `%s'" #, fuzzy #~ msgid "missing argument for %s" #~ msgstr "`%s' μ " #, fuzzy #~ msgid "invalid variable identifier %s" #~ msgstr "߸ ũ ĺ: `%s'" #, fuzzy #~ msgid "cannot create file %s" #~ msgstr " `%s' ϴ" #, fuzzy #~ msgid "cannot open a pipe on %s" #~ msgstr "`%s' ϴ" #, fuzzy #~ msgid "cannot open file %s" #~ msgstr " `%s' ϴ" #, fuzzy #~ msgid "cannot open configuration file %s" #~ msgstr " `%s' ϴ" #~ msgid "encoding %s unknown" #~ msgstr "ڵ %s մϴ" #~ msgid " library path = \n" #~ msgstr " ̺귯 = \n" #~ msgid "user option `%s' not defined" #~ msgstr " ɼ `%s' ʾҽϴ" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "߸ ɼ: `%s'" #~ msgid "illegal option: `%s'" #~ msgstr "߸ ɼ: `%s'" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "ɼ ڿ `%s' :\n" #~ "ο ȣ ϴ: %c" #, fuzzy #~ msgid "cannot backup and create file `%s'" #~ msgstr " `%s' ϴ" #~ msgid "wrong value for option %s: `%s'" #~ msgstr "ɼ %s ߸ : `%s'" #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "ùٸ μ %d %d Դϴ\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "ùٸ μ %d ̻ Դϴ\n" #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "ùٸ μ %gpt %gpt Դϴ\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr " `%s' ϴ" #~ msgid "steady" #~ msgstr "" #~ msgid "linear" #~ msgstr "" #~ msgid "geometrical" #~ msgstr "" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "\t: %s, : %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "ؽ ̺ %ldƮ Ҵ ϴ: ޸𸮰 ڶϴ" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "ε=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "ؽ=%d, " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "浹=%ld/%ld=%.0f%%" #~ msgid "Document title" #~ msgstr " " #~ msgid "Page label" #~ msgstr " ̺" #~ msgid "free" #~ msgstr "" #, fuzzy #~ msgid " %-10s = save in %s\n" #~ msgstr " %-20s = %s \n" #~ msgid "water mark" #~ msgstr "ġ " #~ msgid "right header" #~ msgstr " Ӹ" #~ msgid "center footer" #~ msgstr " " #~ msgid "right footer" #~ msgstr " " #~ msgid "left footer" #~ msgstr " " #~ msgid "center title" #~ msgstr " " #~ msgid "right title" #~ msgstr " " #~ msgid "left title" #~ msgstr " " #, fuzzy #~ msgid "General information on %s:\n" #~ msgstr " \"%s\" ã ϴ" #, fuzzy #~ msgid "" #~ " version = %s\n" #~ " verbosity level = %d\n" #~ " library path = \n" #~ msgstr "" #~ "%s Ϲ :\n" #~ " = %s\n" #~ " ̺귯 = %s\n" #~ " ޽ = %d\n" #~ msgid "found following options (argc=%d):\n" #~ msgstr " ɼ ãҽϴ(argc=%d):\n" #~ msgid "failure\n" #~ msgstr "\n" #, fuzzy #~ msgid "Unkown Printer" #~ msgstr " " #, fuzzy #~ msgid "[%s (%s): 1 sheet]\n" #~ msgstr "[%s(%s): 1 /1 ]\n" #, fuzzy #~ msgid "[%s (%s): %d sheets]\n" #~ msgstr "[%s(%s): %d /%d ]\n" #, fuzzy #~ msgid "%s: no closing `%s' for %s escape" #~ msgstr "%s: %s ݴ ȣ ')' ϴ" #~ msgid "%s: too long variable name for %s escape" #~ msgstr "%s: %s ʹ ̸ Ͽϴ" #, fuzzy #~ msgid "file_lookup(%s%c%s%s) = " #~ msgstr "file_lookup(): %s%c%s%s\t" #~ msgid "suffix_lookup(): %s%c*.%s\n" #~ msgstr "suffix_lookup(): %s%c*.%s\n" #, fuzzy #~ msgid "" #~ " -P, --printer=NAME send output to printer NAME\n" #~ " -d send output to the default printer\n" #~ " -s, --sides=NUM number of sheet sides (recto/recto-verso)\n" #~ msgstr "" #~ " -P, --printer=NAME NAME ϴ\n" #~ " -d ⺻ ͷ ϴ\n" #~ " -s --sides=NUM մϴ(ʸ/ʸ)\n" #, fuzzy #~ msgid "In the style %s, the keyword `%s' uses upper chars" #~ msgstr "Ÿ %s Ű '%s' 빮ڸ մϴ" #, fuzzy #~ msgid "In the style %s, the sequence `%s-%s' uses upper chars" #~ msgstr "Ÿ %s '%s-%s' 빮ڸ մϴ" #~ msgid "in style %s, keyword `%s' is defined twice" #~ msgstr "Ÿ %s Ű `%s' ι Ͽϴ" #, fuzzy #~ msgid "in style %s, operator `%s' is defined twice" #~ msgstr "Ÿ %s Ű `%s' ι Ͽϴ" #~ msgid "can't get current working directory" #~ msgstr " ۾ 丮 ϴ" #, fuzzy #~ msgid "expansion of %s user string (`%s') is `%s'\n" #~ msgstr "%s( ڿ (\"%s\")) Ȯ \"%s\"Դϴ\n" #, fuzzy #~ msgid "cannot open `%s'" #~ msgstr " \"%s\" ϴ" #~ msgid "error opening `%s'" #~ msgstr "`%s' µ ߻߽ϴ" #, fuzzy #~ msgid "error getting file `%s' modification time" #~ msgstr "\"%s\" ð µ ߻߽ϴ" #, fuzzy #~ msgid "cannot find file \"%s%s\"" #~ msgstr " \"%s\" ã ϴ" #, fuzzy #~ msgid "couldn't find system's configuration file `%s%c%s'" #~ msgstr " `%s%c%s' ϴ" #, fuzzy #~ msgid "unable to fork" #~ msgstr " ϴ" #~ msgid "error starting `/bin/sh -c %s'" #~ msgstr "`/bin/sh -c %s' ϴµ ߻߽ϴ" #~ msgid "[Total: %d page on " #~ msgstr "[հ: %d /" #~ msgid "sheet" #~ msgstr "" #~ msgid "space" #~ msgstr "" #~ msgid "caret" #~ msgstr "ij" #, fuzzy #~ msgid "Known Media\n" #~ msgstr "˷ ü(%d)\n" #~ msgid "Known languages (%d)" #~ msgstr "˷ (%d)" #~ msgid "" #~ " In %s:\n" #~ "\t" #~ msgstr "" #~ " %sȿ:\n" #~ "\t" #~ msgid "rows" #~ msgstr "" #~ msgid "columns" #~ msgstr "" #~ msgid "path_walk() on path %s\n" #~ msgstr " %s path_walk()\n" #~ msgid "unknown" #~ msgstr " " #~ msgid "In the style %s, the symbol '%s' uses upper chars" #~ msgstr "Ÿ %s ȣ '%s' 빮ڸ մϴ" #~ msgid "in style %s, regular symbol `%s' is defined twice" #~ msgstr "Ÿ %s Ϲ ȣ `%s' ι Ͽϴ" #~ msgid "in style %s, special symbol `%s' is defined twice" #~ msgstr "Ÿ %s Ư ȣ `%s' ι Ͽϴ" #~ msgid "not enough \\verb delimiters (%s) to print %s" #~ msgstr "\\verb(%s) %s ϱ⿡ մϴ" #~ msgid "couldn't find prolog \"%s\"" #~ msgstr " \"%s\" ã ϴ" ���������������������������������������������������������������������������������������������a2ps-4.15.5/po/ms.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000045457�14445132166�011130� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������l ������ ����� �� ��� ��S�� ������U����n������u��E���C����������*�������p�����!��������%��E���D�������O���;�� ����� ����������$�����,����� �����#���)��!���M�����o�������&��������������������������������������&�� ���/�� ���9�����D�� ���L�����X�� ���h�� ���t�������%���������������������������� ������������ ���"�� ���.�� ���;�����H�� ���Z�����h�����~������������#����� ����&��� ����� �� ��� !��+���!��-���B!�����p!�����!�����0"�����N"�����k"�����"�����"�����"�����"��$���"��!���#�����$#��'���C#�����k#�����#��#���#�����#��*���#�����$�����$��/���3$��$���c$��$���$�����$�����$��2���$�����%�����1%�� ���Q%�� ���_%�� ���j%�� ���x%��!���%�����%�����%�����%�����%�����&�����&�����&�����9&�����W&�����v&�����&�����&�� ���&�����&�� ���&�����&����� '�����$'�����7'�����:'�����Y'�����q'�����v'�����}'��\���'�����'�����(�����"(�����((�����1(�����K(�����Z(�� ���m(�����x(�����(�����(�����(�����(�����(�����)�����()�����:)�����U)�����o)�����)�����)�����)�����)����)�����u+�� ���+��R��+����-��n��/��h��?1����3��E���q5�����5�����X6�����=7�����7��!���K8�����m8��E���8�����8��O���9�� ���9�� ����:����� :��%���#:��.���I:��%���x:��)���:��)���:�����:����� ;��0���!;����R;�����n=�����=��'���=�����=�����=�� ���=�� ���=�� ��� >�� ���>�� ��� >�����*>�����?>�����N>��#���^>��)���>�����>�����>�����>�����>�����?�� ��� ?�� ���?�����"?�����1?�� ���A?�����N?�����`?�����p?�� ���?�����?�����?��-���?����?��'���@�����!A�����:A��'���SA��,���{A�� ���A�����A��$���rB�����B�����B��&���B�����B����� C����� C��*���=C��(���hC��&���C��-���C�����C�� ���D��#���$D��"���HD��.���kD�����D�����D��=���D��.���E��-���DE��"���rE�����E��7���E��,���E�����F�� ���8F�����EF�����MF�� ���]F��!���jF�����F��&���F�����F�����F�����F�����G�����G��&���8G�����_G�����G�����G�����G��&���G�����G�����H�����H�����H�����5H�����IH�����OH��$���nH�����H�����H��"���H��f���H�����*I�����DI�����TI�����ZI�����aI�����xI�����I�� ���I�����I�����I�� ���I������J�����J�����>J�����]J�����oJ�� ���J�����J�����J�����J��%���J�����#K�����,K���������A���:���f������e���>��� ����������-���P����������t������������������i���V����������@���U���4���K���d������}�����������������������_���|������$�������\������������������������~������Y��� ���X��������������y�������r���p���w������������������������N���S���������������������q�������x���.���=����������������D������<���O�������m���v���F���+���,�������&��� ���)������H������%���`���]���2���g�������L���k������� �����������������9���z���Q���T���0���C���[���6���!���������E������G���#������M�������n���'����������B�������c������8���7�������^���s�������j������W�������?�����������3�������5������l������Z����������a���������u�������"�������{���o�������(������/�������b���J��� ��������������h�������������I���1������ ���;�������R����������*����������� load: %zu/%zu (%2.1f%%) � None. � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-03-30 01:58+0800 Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com> Language-Team: Malay <translation-team-ms@lists.sourceforge.net> Language: ms MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 3.2.2 � muatkan: %zu/%zu (%2.1f%%) � Tiada. � --prologue=FAIL masukkan FAIL.pro sebagai prolog PostScript --ppd[=KEKUNCI] pilihan PPD automatik atau tetapkan kepada KEKUNCI -n, --copies=NOM cetak NOM salinan bagi setiap laman -s, --sides=MOD tetapkan MOD dupleks (`1' atau `simplex', `2' atau `duplex', `tumble') -S, --setpagedevice=K[:V] hantar laman definisi alat kepada keluaran --statusdict=K[:[:]V] hantar definisi statusdict kepada keluaran -k, --page-prefeed hidupkan laman prasuap -K, --no-page-prefeed matikan laman prasuap � -B, --no-header tiada pengepala laman langsung -b, --header[=TEKS] tetapkan pengepala laman -u, --underlay[=TEKS] cetak TEKS dibawah setiap laman --center-title[=TEKS] tetapkan tajuk laman kepada TAJUK --left-title[=TEKS] tetapkan tajuk laman kiri dan kanan kepada TEKS --right-title[=TEKS] --left-footer[=TEKS] tetapkan footer laman kepada TEKS --footer[=TEKS] --right-footer[=TEKS] � -E, --pretty-print[=LANG] hidupkan cetakan-menarik (tetapkan gaya kepada LANG) --highlight-level=TAHAP tetapkan TAHAP sorotan cetakan menarik TAHAP boleh sebagai none, normal atau heavy -g alias untuk --highlight-level=heavy --strip-level=NOM tahap untuk pembuangan komen � -a, --pages[=JULAT] pilih laman yang hendak dicetak -c, --truncate-lines* potong baris panjang -i, --interpret* terjemah aksara tab, bs dan ff --end-of-line=JENIS nyatakan aksara eol (JENIS: r, n, nr, rn, any) -X, --encoding=NAMA guna enkoding kemasukan NAMA -t, --title=NAMA tetapkan nama tugas --stdin=NAMA tetapkan nama fail masukan stdin --print-anyway* paksa cetakan binari -Z, --delegate* pindah fail ke aplikasi lain --toc[=TEKS] jana senarai kandungan � -o, --output=FAIL biarkan keluaran kepada fail FAIL. Jika FAIL adalah `-', biarkan keluaran kepada stdout. --version-control=WORD pintas kawalan versi biasa --suffix=SUFFIX pintas akhiran salinan biasa -P, --printer=NAMA hantar keluaran kepada pencetak NAMA -d hantar keluaran kepada pencetak default (ini adalah kelakuan default) � destinasi = %s kawalan versi = %s akhiran salinan = %s � pengepala = %s footer kiri = %s footer = %s footer kanan = %s tajuk kiri = %s tajuk tengah = %s tajuk kanan = %s under lay = %s � nombor magik = %s Keterangan Pencetak (PPD) = %s PPD asal = %s format label halaman = %s jumlah salinan = %u sisi setiap helaian = %s takrifan peranti halaman = � media = %s, %s susunatur halaman = %zu x %zu, %s sempadan = %s jajaran fail = %s jidar dalaman = %u � nombor baris = %s format = %s saiz penjadualan = %u format tidak boleh cetak = %s � prasuap halaman = %s � takrifan statusdict = � helaian gaya = %s tahap sorotan = %s tahap pelucutan = %d � baris pemendekan = %s terjemah = %s pengakhir baris = %s pengekodan = %s tajuk dokumen = %s prolog = %s cetak bagaimanapun = %s mewakilkan = %s � tahap jelaan = %u arahan fail = %s laluan perpustakaan = �%A, %d %B %Y�%b %d, %Y�%s, diwakilkan kepada %s�%s: hujah tidak sah untuk %s%c escape�%s: pemisah tidak sah `%s%c' untuk `%s' escape�%s: kehilangan `%c' untuk %s%c escape�%s: hujah terlalu panjang untuk %s escape�%s: tidak diketahui `%s' escape `%c' (%d)�%u aksara setiap baris�%u baris setiap halaman�Aplikasi telah dikonfigurasikan untuk pemindahan�Secara default a2ps ditala untuk melakukan apa yang anda mahu, jadi yakinilah ia. Untuk cetakan menarik kandungan direktori `src' dan senarai kandungan, dan hantar keputusan ke pencetak `lw', $ a2ps -P lw --toc src/* Untuk memproses fail `sample.ps' dan `sample.html' dan papar keputusannya, $ a2ps -P display sample.ps sample.html Untuk memproses kotakmel dalam 4 semuka, $ a2ps -=mail -4 mailbox Untuk mencetak sebagai buku kecil pada pencetak default, dimana ia berkemampuan duplex, $ a2ps -=book paper.dvi.gz -d�Status konfigurasi bagi %s %s �Pencetak Default�Pemindahan `%s', daripada %s kepada %s �Tatasusunan dinamik `%s': �Rentetan dinamik: �Sejagat: �Pengepala: �Pengepala: �Masukan: �Dalaman: �Pengekodan Diketahui�Font Diketahui�Media Diketahui�Keluaran Diketahui (Pencetak, dsb.)�PostScript Printer Descriptions Diketahui�Prolog Diketahui�Helaian Gaya Diketahui�Pilihan Pengguna Diketahui�Pembolehubah Diketahui�Nama�Keluaran: �Halaman %zu�Halaman %zu/%c�Halaman %zu/%zu�PostScript: �Cetakan-menarik: �Dicetak oleh %s�Dicetak oleh %s dari %s�Helaian: �Senarai Kandungan�Tugas: �TEKS tersebut boleh menggunakan escape khas. �Pilihan -1.. -9 memberi kesan beberapa parameter asal untuk menetapkan susunatur pratetap dengan 80 lajur. Oleh itu susunan adalah penting: `-R -f40 -2' adalah bersamaan dengan `-2'. Untuk mengubah susunatur, guna `-2Rf40', atau gubah tetapan asal (`--columns', `--font-size' dsb.). �Cuba `%s --help' untuk lebih maklumat. �Pencetak Tidak Diketahui�Pengguna Tidak Diketahui�Hujah sah adalah apungan f seperti: %s �Hujah sah adalah nombor bulat n seperti: %s �Laman maya: �Apabila pemindahan dihidupkan, a2ps boleh menggunakan aplikasi lain untuk mengawal pemprosesan fail yang sepatutnya tidak dicetak sebagai maklumat mentah, cth., HTML, PostScript, PDF dsb. �[%s (%s): 1 halaman pada 1 helaian] �[%s (%s): gagal. Diabaikan] �[%s (perduaan): diabaikan] �[%s (tidak boleh dicetak): diabaikan] �[%zu baris dililit] �[1 baris dililit] �[Tiada keluaran dihasilkan] �[Jumlah: %zu halaman pada %zu helaian] %s �[Jumlah: %zu halaman pada 1 helaian] %s �[Jumlah: 1 halaman pada 1 helaian] %s �`%s' adalah fail perduaan, cetakan dibatalkan�`%s' adalah sebuah direktori�`%s' dengan tiada persamaan `%s'�pemilihan gaya automatik dibatalkan�tidak dapat menutup direktori `%s'�tidak dapat menghimpun ungkapan biasa `%s': %s�tidak dapat mencipta fail `%s'�tidak dapat mencari fail `%s'�tidak dapat mencari helaian gaya `%s': menggunakan gaya mudah�tidak boleh mendapatkan direktori kerja semasa�tidak dapat mengambil maklumat pada fail `%s'�tidak dapat membuka paip pada `%s'�tidak dapat membuka fail `%s'�tidak dapat proses `%s' dimana memerlukan a2ps versi %s�tidak dapat tukarnama fail `%s' sebagai `%s'�caret (i.e., `^C', `M-^C' dsb.)�lajur dahulu�dimensi�setiap %u baris�setiap baris�emacs (i.e., `C-c', `M-C-c' dsb.)�pengakhir baris dalam %s�pengakhir-baris dalam pemalar rentetan�ralat menjalankan fail(1)�font %f terlalu besar�saiz font adalah %gpt�tebal�hexadecimal (i.e., `\x0a' dsb.)�pengetahuan tidak lengkap tentang muka�hujah tidak sah `%s' untuk `%s'�rupa `%s' tidak sah�jarakmasa `%s' tidak sah�pilihan tidak sah `%s'�pengenalan pembolehubah tidak sah `%s'�nombor versi tidak sah `%s'�lanskap�kehabisan memori�hujah tiada bagi `%s'�jangan buat salinan�tidak�tiada arahan untuk `%s' (%s%s)�tiada kekunci ditakrifkan untuk `%s'�tiada�normal�salinan bernombor bagi setiap fail�salinan bernombor bagi fail yang telah bernombor, dan mudah bagi yang lain�octal (i.e., `\001' dsb.)�arahan keluaran�biasa�potret�tanda-soal (i.e., `?')�menerima SIG%s�fail dikembalikan `%s'�baris dahulu�disimpan kedalam fail `%s'�dipilih secara automatik�dihantar kepada pencetak default�dihantar kepada pencetak `%s'�dihantar kepada keluaran piawai�salinan mudah bagi setiap fail�ruang (i.e., ` ')�terlalu banyak masukan�terlalu banyak font senget: `%s'�aksara tidak dijangka `%c'�pengekodan tidak diketahui `%s'�media tidak diketahui `%s'�pilihan pengguna tidak diketahui `%s'�pengguna�ya������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ms.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000106055�14445132165�010753� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# a2ps Bahasa Melayu (Malay) (ms). # Copyright (C) 2002, 2008, 2022, 2023 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2002, 2008, 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-03-30 01:58+0800\n" "Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n" "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 3.2.2\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "hujah tiada bagi `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "tidak dapat mencipta fail `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "tidak dapat membuka paip pada `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Pemindahan `%s', daripada %s kepada %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplikasi telah dikonfigurasikan untuk pemindahan" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' adalah sebuah direktori" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "tidak dapat membuka fail `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "tidak dapat mengambil maklumat pada fail `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 halaman pada 1 helaian]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[Jumlah: %zu halaman pada 1 helaian] %s\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[Jumlah: %zu halaman pada %zu helaian] %s\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Jumlah: 1 halaman pada 1 helaian] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Jumlah: %zu halaman pada 1 helaian] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Jumlah: %zu halaman pada %zu helaian] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 baris dililit]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu baris dililit]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Tiada keluaran dihasilkan]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, diwakilkan kepada %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): gagal. Diabaikan]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (tidak boleh dicetak): diabaikan]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (perduaan): diabaikan]\n" #: src/generate.c:350 msgid "plain" msgstr "biasa" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "pengakhir-baris dalam pemalar rentetan" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "pengakhir baris dalam %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "menerima SIG%s" #: src/main.c:235 msgid "heavy" msgstr "tebal" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "tiada" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ya" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "tidak" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Status konfigurasi bagi %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Helaian:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " media = %s, %s\n" " susunatur halaman = %zu x %zu, %s\n" " sempadan = %s\n" " jajaran fail = %s\n" " jidar dalaman = %u\n" #: src/main.c:339 msgid "portrait" msgstr "potret" #: src/main.c:339 msgid "landscape" msgstr "lanskap" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u aksara setiap baris" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u baris setiap halaman" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "saiz font adalah %gpt" #: src/main.c:363 msgid "each line" msgstr "setiap baris" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "setiap %u baris" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Laman maya:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " nombor baris = %s\n" " format = %s\n" " saiz penjadualan = %u\n" " format tidak boleh cetak = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Pengepala:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " pengepala = %s\n" " footer kiri = %s\n" " footer = %s\n" " footer kanan = %s\n" " tajuk kiri = %s\n" " tajuk tengah = %s\n" " tajuk kanan = %s\n" " under lay = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Masukan:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " baris pemendekan = %s\n" " terjemah = %s\n" " pengakhir baris = %s\n" " pengekodan = %s\n" " tajuk dokumen = %s\n" " prolog = %s\n" " cetak bagaimanapun = %s\n" " mewakilkan = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "dipilih secara automatik" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Cetakan-menarik:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " helaian gaya = %s\n" " tahap sorotan = %s\n" " tahap pelucutan = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "jangan buat salinan" #: src/main.c:456 msgid "simple backups of every file" msgstr "salinan mudah bagi setiap fail" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "salinan bernombor bagi fail yang telah bernombor,\n" " dan mudah bagi yang lain" #: src/main.c:466 msgid "numbered backups of every file" msgstr "salinan bernombor bagi setiap fail" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Keluaran:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destinasi = %s\n" " kawalan versi = %s\n" " akhiran salinan = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " nombor magik = %s\n" " Keterangan Pencetak (PPD) = %s\n" " PPD asal = %s\n" " format label halaman = %s\n" " jumlah salinan = %u\n" " sisi setiap helaian = %s\n" " takrifan peranti halaman = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " takrifan statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " prasuap halaman = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Dalaman:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " tahap jelaan = %u\n" " arahan fail = %s\n" " laluan perpustakaan = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with `*' require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Penggunaan: %s [PILIHAN]... [FAIL]...\n" "\n" "Menukar FAIL atau masukan piawai ke PostScript. Secara default, keluaran\n" "dihantar ke pencetak default. Keluaran fail boleh dinyatakan dengan -o.\n" "\n" "Hujah mandatori kepada pilihan panjang adalah wajib untuk pilihan pendek\n" "juga. Pilihan panjang yang ditandakan dengan `*' memerlukan hujah ya/tidak,\n" "pilihan pendek yang setara mewakili `ya'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tugas:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version papar versi\n" " --help papar bantuan ini\n" " --guess lapor agakan jenis FAIL\n" " --which lapor laluan penuh fail perpustakaan bernama FAIL\n" " --glob lapor laluan penuh fail perpustakaan menyamai FAIL\n" " --list=defaults papar tetapan asal dan parameter\n" " --list=TOPIK senarai terperinci tentang TOPIK (delegation, encodings,\n" " features, variables, media, ppd, printers, prologues,\n" " style-sheets, user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Selepas selesai melakukan tugas, keluar dengan berjaya. Senarai terperinci\n" "mungkin memberikan bantuan tambahan kepada ciri-ciri khusus.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Sejagat:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent jadi sangat senyap\n" " -v, --verbose[=TAHAP] tetapkan jelaan on, atau ke TAHAP\n" " -=, --user-option=PILIHAN guna pintasan PILIHAN ditakrif pengguna\n" " --debug hidupkan ciri nyahpepijat\n" " -D, --define=KEKUNCI[:NILAI] nyahtetap pembolehubah KEKUNCI atau " "tetapkan\n" " ke NILAI\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAMA guna media keluaran NAMA\n" " -r, --landscape cetak dalam mod lanskap\n" " -R, --portrait cetak dalam mod potret\n" " --columns=NOM jumlah lajur setiap helaian\n" " --rows=NOM jumlah baris setiap helaian\n" " --major=ARAH isi dahulu (ARAH=) row, atau column\n" " -1, -2, ..., -9 saiz font dan aturan pratetap untuk 1.. 9 maya\n" " -A, --file-align=MOD jajar fail berlainan mengikut MOD (fill, rank\n" " page, sheet, atau number)\n" " -j, --borders* cetak sempadan keliling lajur\n" " --margin[=NOM] tetapkan margin dalaman bersaiz NOM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Pilihan -1.. -9 memberi kesan beberapa parameter asal untuk menetapkan\n" "susunatur pratetap dengan 80 lajur. Oleh itu susunan adalah penting: `-R -" "f40\n" "-2' adalah bersamaan dengan `-2'. Untuk mengubah susunatur, guna `-2Rf40', " "atau\n" "gubah tetapan asal (`--columns', `--font-size' dsb.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NOM mendahulukan setiap NOM baris dengan nombor\n" " barisnya\n" " -C alias bagi --line-numbers=5\n" " -f, --font-size=SAIZ guna font SAIZ (terapung) bagi badan teks\n" " -L, --lines-per-page=NOM ubah font untuk mencetak NOM baris per maya\n" " -l, --chars-per-line=NOM ubah font untuk mencetak NOM lajur per maya\n" " -m, --catman proses FAIL sebagai laman man (sama seperti -" "L66)\n" " -T, --tabsize=NOM tetap saiz tab kepada NOM\n" " --non-printable-format=FMT menentukan bagaimana aksara tidak-boleh cetak\n" " dicetak\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Pengepala:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header tiada pengepala laman langsung\n" " -b, --header[=TEKS] tetapkan pengepala laman\n" " -u, --underlay[=TEKS] cetak TEKS dibawah setiap laman\n" " --center-title[=TEKS] tetapkan tajuk laman kepada TAJUK\n" " --left-title[=TEKS] tetapkan tajuk laman kiri dan kanan kepada " "TEKS\n" " --right-title[=TEKS]\n" " --left-footer[=TEKS] tetapkan footer laman kepada TEKS\n" " --footer[=TEKS]\n" " --right-footer[=TEKS]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEKS tersebut boleh menggunakan escape khas.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=JULAT] pilih laman yang hendak dicetak\n" " -c, --truncate-lines* potong baris panjang\n" " -i, --interpret* terjemah aksara tab, bs dan ff\n" " --end-of-line=JENIS nyatakan aksara eol (JENIS: r, n, nr, rn, " "any)\n" " -X, --encoding=NAMA guna enkoding kemasukan NAMA\n" " -t, --title=NAMA tetapkan nama tugas\n" " --stdin=NAMA tetapkan nama fail masukan stdin\n" " --print-anyway* paksa cetakan binari\n" " -Z, --delegate* pindah fail ke aplikasi lain\n" " --toc[=TEKS] jana senarai kandungan\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Apabila pemindahan dihidupkan, a2ps boleh menggunakan aplikasi lain untuk\n" "mengawal pemprosesan fail yang sepatutnya tidak dicetak sebagai maklumat\n" "mentah, cth., HTML, PostScript, PDF dsb.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LANG] hidupkan cetakan-menarik (tetapkan gaya " "kepada LANG)\n" " --highlight-level=TAHAP tetapkan TAHAP sorotan cetakan menarik\n" " TAHAP boleh sebagai none, normal atau " "heavy\n" " -g alias untuk --highlight-level=heavy\n" " --strip-level=NOM tahap untuk pembuangan komen\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FAIL biarkan keluaran kepada fail FAIL. Jika FAIL\n" " adalah `-', biarkan keluaran kepada stdout.\n" " --version-control=WORD pintas kawalan versi biasa\n" " --suffix=SUFFIX pintas akhiran salinan biasa\n" " -P, --printer=NAMA hantar keluaran kepada pencetak NAMA\n" " -d hantar keluaran kepada pencetak default\n" " (ini adalah kelakuan default)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FAIL masukkan FAIL.pro sebagai prolog PostScript\n" " --ppd[=KEKUNCI] pilihan PPD automatik atau tetapkan kepada " "KEKUNCI\n" " -n, --copies=NOM cetak NOM salinan bagi setiap laman\n" " -s, --sides=MOD tetapkan MOD dupleks (`1' atau `simplex',\n" " `2' atau `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] hantar laman definisi alat kepada keluaran\n" " --statusdict=K[:[:]V] hantar definisi statusdict kepada keluaran\n" " -k, --page-prefeed hidupkan laman prasuap\n" " -K, --no-page-prefeed matikan laman prasuap\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Secara default a2ps ditala untuk melakukan apa yang anda mahu, jadi " "yakinilah\n" "ia. Untuk cetakan menarik kandungan direktori `src' dan senarai kandungan, " "dan\n" "hantar keputusan ke pencetak `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Untuk memproses fail `sample.ps' dan `sample.html' dan papar keputusannya,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "Untuk memproses kotakmel dalam 4 semuka,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Untuk mencetak sebagai buku kecil pada pencetak default, dimana ia " "berkemampuan duplex,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Senarai Kandungan" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "tidak dapat proses `%s' dimana memerlukan a2ps versi %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "aksara tidak dijangka `%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "terlalu banyak masukan" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "tiada kekunci ditakrifkan untuk `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "tidak dapat mencari fail `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "pemilihan gaya automatik dibatalkan" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "ralat menjalankan fail(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "tidak dapat menghimpun ungkapan biasa `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Helaian Gaya Diketahui" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "tidak dapat mencari helaian gaya `%s': menggunakan gaya mudah" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "nombor versi tidak sah `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "ruang (i.e., ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (i.e., `\\001' dsb.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (i.e., `\\x0a' dsb.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (i.e., `^C', `M-^C' dsb.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e., `C-c', `M-C-c' dsb.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "tanda-soal (i.e., `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Tatasusunan dinamik `%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tmuatkan: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Rentetan dinamik:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "terlalu banyak font senget: `%s'" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "pilihan tidak sah `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Pengekodan Diketahui" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "pengetahuan tidak lengkap tentang muka" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "tidak dapat menutup direktori `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "hujah tidak sah `%s' untuk `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Hujah sah adalah nombor bulat n seperti: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Hujah sah adalah apungan f seperti: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "pengekodan tidak diketahui `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "baris dahulu" #: liba2ps/madir.c:54 msgid "columns first" msgstr "lajur dahulu" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "media tidak diketahui `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Media Diketahui" #: liba2ps/media.c:189 msgid "Name" msgstr "Nama" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensi" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Pembolehubah Diketahui" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: kehilangan `%c' untuk %s%c escape" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Dicetak oleh %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Dicetak oleh %s dari %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "tidak boleh mendapatkan direktori kerja semasa" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: hujah terlalu panjang untuk %s escape" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%b %d, %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A, %d %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: tidak diketahui `%s' escape `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Halaman %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Halaman %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: pemisah tidak sah `%s%c' untuk `%s' escape" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: hujah tidak sah untuk %s%c escape" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Halaman %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "arahan keluaran" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Cuba `%s --help' untuk lebih maklumat.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "pengenalan pembolehubah tidak sah `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "rupa `%s' tidak sah" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' dengan tiada persamaan `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Font Diketahui" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Tiada.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "PostScript Printer Descriptions Diketahui" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "jarakmasa `%s' tidak sah" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Pencetak Default" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Pencetak Tidak Diketahui" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "tiada arahan untuk `%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "dihantar kepada keluaran piawai" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "dihantar kepada pencetak default" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "disimpan kedalam fail `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "dihantar kepada pencetak `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Keluaran Diketahui (Pencetak, dsb.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Prolog Diketahui" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "font %f terlalu besar" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' adalah fail perduaan, cetakan dibatalkan" #: liba2ps/userdata.c:104 msgid "user" msgstr "pengguna" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Pengguna Tidak Diketahui" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "pilihan pengguna tidak diketahui `%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Pilihan Pengguna Diketahui" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "kehabisan memori" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "tidak dapat tukarnama fail `%s' sebagai `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "fail dikembalikan `%s'" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Hakcipta (C) 1988-2017 Free Software Foundation, Inc." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/nb.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000061413�14445132166�011076� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�����7��(���7�� ���7�����8��|��:�����=����?��a��9A����B��y��E����G��\��I��]���/K�����K�����hL�����NM�����M��!���RN�� ���tN��Y���N�����N��Q���O�� ���*P�����7P�����@P��$���TP��1���yP��&���P��*���P��$���P�����"Q�����4Q��r���GQ��(���Q����Q�����S�����T��!���T�����:T�����ST�����eT�� ���nT�����xT�����T�����T�����T�� ���T�� ���T��/���T��+����U�����,U�����<U�����RU�����gU�����xU�����}U�����U�� ���U�� ���U�� ���U�����U�����U�����U�����U�����U�� ���V��%���V��1��8V��(���jW�����W�� ���W��l��W��)���Y��)���GY�����qY�����Y��!���8Z�����ZZ�����zZ�����Z�����Z��!���Z�����Z�����[�����[��#���0[��!���T[�����v[��(���[�����[�����[�����[��%���\��7���4\�����l\�����\��+���\��<���\��-��� ]��$���;]�����`]��<���|]��,���]��-���]�����^�� ���$^�����0^�� ���?^��%���J^�����p^�����^�����^�����^�����^�����^��"���^��&���_��"���=_�����`_��!���v_�����_��$���_�����_�����_�����`�����`�����3`�����K`�� ���O`�����p`�����`�����`��$���`�����`�����Aa�� ���^a�����ia�����oa�����a�����a�����a�� ���a�����a�����a�����a�����b�����)b�� ���?b�� ���`b�����nb�����b�����b�����b�����b�����b�����c�����c�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-03-03 12:08+0100 Last-Translator: Johnny A. Solbu <johnny@solbu.net> Language-Team: Norwegian Bokmaal <l10n-no@lister.huftis.org> Language: nb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 2.4.2 � last: %zu/%zu (%2.1f%%) � originalstørrelse: %zu, vekst: %s %zu � Ingen. � --line-numbers=NUM går foran hver NUM linje med linjenummeret -C alias for --line-numbers=5 -f, --font-size=STØRRELSE bruk font STØRRELSE (flytende) for brødteksten -L, --lines-per-page=NUM skalerer skriften for å skrive ut NUM linjer per virtuell -l, --chars-per-line=NUM skalerer skriften for å skrive ut NUM kolonner per virtuell -m, --catman behandle FIL som en man-side (samme som -L66) -T, --tabsize=NUM sett tabulatorstørrelsen til NUM --non-printable-format=FMT spesifiser hvordan ikke-utskrivbare tegn skrives ut � --prologue=FIL inkluderer FIL.pro som PostScript-prolog --ppd[=KEY] automatisk PPD-valg eller satt til KEY -n, --copies=NUM skriv ut NUM kopier av hver side -s, --sides=MODUS angi dupleks MODUS («1» eller «simplex», «2» eller «duplex», «tumble») -S, --setpagedevice=K[:V] sender en sideenhetsdefinisjon til utdata --statusdict=K[:[:]V] sender en statusdict-definisjon til utdata -k, --page-prefeed aktiver sideforhåndsmating -K, --no-page-prefeed deaktiver sideforhåndsmating � --version visningsversjon --help viser denne hjelpen --guess rapporter gjette typer FILER --which rapporterer hele banen til bibliotekfiler kalt FILES --glob rapporterer hele banen til bibliotekfiler som samsvarer med FILES --list=defaults viser standardinnstillinger og parametere --list=TOPIC detaljert liste over TOPIC (delegeringer, kodinger, funksjoner, variabler, media, ppd, skrivere, prologer, stilark, brukeralternativer) � -B, --no-header ingen sideoverskrifter i det hele tatt -b, --header[=TEKST] sett sidehode -u, --underlay[=TEKST] skriv ut TEKST under hver side --center-title[=TEKST] sett sidetittel til TITLE --left-title[=TEKST] sett venstre og høyre sidetittel til TEKST --right-title[=TEKST] --left-footer[=TEKST] sett arkbunntekst til TEKST --footer[=TEKST] --right-footer[=TEKST] � -E, --pretty-print[=LANG] aktiver pretty-printing (sett stil til LANG) --highlight-level=LEVEL setter pen utskriftshøydepunkt LEVEL LEVEL kan være none, normal eller heavy -g alias for --highlight-level=heavy --strip-level=NUM nivå av kommentarer som er fjernet � -M, --medium=NAME bruk utdatamedium NAME -r, --landscape utskrift i liggende modus -R, --portrait utskrift i portrettmodus --columns=NUM antall kolonner per ark --rows=NUM antall rader per ark --major=RETNING første fyll (RETNING=) rader eller kolonner -1, -2, ..., -9 forhåndsdefinerte skriftstørrelser og oppsett for 1.. 9 virtuelle -A, --file-align=MODUS juster separate filer i henhold til MODUS (fyll, ranger side, ark eller et tall) -j, --borders* skriver ut kanter rundt kolonner --margin[=NUM] definerer en innvendig marg i størrelse NUM � -a, --pages[=UTVALG] velg sidene som skal skrives ut -c, --truncate-lines* kutt lange linjer -i, --interpret* tolke tab, bs og ff-tegn --end-of-line=TYPE spesifiser linjeslutt-tegn (TYPE: r, n, nr, rn, any) -X, --encoding=NAVN bruk inndatakoding NAVN -t, --title=NAVN angi navnet på jobben --stdin=NAVN angi navnet på inndatafilen stdin --print-anyway* tvinge binær utskrift -Z, --delegate* delegere filer til et annet program --toc[=TEKST] generere en innholdsfortegnelse � -o, --output=FIL la utdata til filen FIL. Hvis FIL er «-», la utdata stå til standard. --version-control=ORD overstyrer den vanlige versjonskontrollen --suffix=SUFFIKS overstyrer det vanlige backup-suffikset -P, --printer=NAVN sender utdata til skriveren NAVN -d send utdata til standardskriveren (dette er standard-oppførsel) � -q, --quiet, --silent være veldig stille -v, --verbose[=NIVÅ] høyrøstet, eller høyrøstethet til NIVÅ -=, --user-option=OPSJON bruk den brukerdefinerte forkortelsen OPSJON --debug skru på debugging-funksjoner --define=KEY[:VERDI] skru av variabelen KEY eller sett den til VERDI � destinasjon = %s versjonskontroll = %s sikkerhetskopi-suffix = %s � header = %s venstre footer = %s footer = %s høyre footer = %s venstre tittel = %s sentrert tittel = %s høyre title = %s tekst under sider = %s � magic number = %s skriverbeskrivelse (PPD) = %s default PPD = %s sidemerkingsformat = %s antall kopier = %u sider per ark = %s "page device" definisjoner = � medium = %s, %s layout per side = %zu x %zu %s rammer = %s fil alignment = %s marg på innside = %u � nummerer linjer = %s formater = %s tabulatorstørrelse = %u format for ikke-skrivbare tegn = %s � formating av sider = %s � «statusdict»-definisjoner = � stil-mal = %s highlight-nivå = %s strip-nivå = %d � trunker linjer = %s tolk = %s linjeslutt = %s koding = %s dokument-tittel = %s prolog = %s print allikevel = %s delegering = %s � detaljeringsnivå = %u fil-kommando = %s sti til bibliotek = �%A %B %d, %Y�%b %d %Y�%s, delegert til %s�%s: ulovlig argument for %s%c escape�%s: ulovlig skilletegn «%s%c» for «%s» escape�%s: det mangler «%c» for %s%c escape�%s: er et for langt argument til %s escape�%s: ukjent «%s» escape «%c» (%d)�%u tegn per linje�%u linjer per side�Etter å ha utført oppgaven, avslutter du. Detaljerte lister kan gi ytterligere hjelp til spesifikke funksjoner. �Applikasjoner konfigurert for delegering�Som standard er a2ps innstilt til å gjøre det du vil, så stol på det. For å pent skrive ut innholdet i «src»-katalogen og en innholdsfortegnelse og send resultat til skriveren «lw», $ a2ps -P lw --toc src/* For å behandle filene «sample.ps» og «sample.html» og vise resultatet, $ a2ps -P display sample.ps sample.html For å behandle en postboks i 4 opp, $ a2ps -=mail -4 postboks For å skrive ut som et hefte på standardskriveren, som er tosidig, $ a2ps -=bok paper.dvi.gz -d�Konfigurasjonsstatus for %s %s �Standard skriver�Delegering «%s», fra %s til %s �Dynamisk tabell «%s»: �Dynamisk streng: �Global: �Headere: �Overskrifter: �Input: �Internde detaljer: �Kjente enkodinger�Kjente fonter�Kjente media�Kjente destinasjoner for utdate (skrivere osb.)�Kjente PostScript Printerbeskrivelser (PPD)�Kjente prologer�Kjente maler (språk)�Kjent brukeropsjoner�Kjente Variabler�Navn�Utdata: �Side %zu�Side %zu/%c�Side %zu/%zu�PostScript: �Pen utskrift: �Skrevet ut av %s�Skrevet ut av %s fra %s�Ark: �Innholdsfortegnelse�Oppgaver: �TEKSTer kan bruke spesielle escapes. �Alternativene -1.. -9 påvirker flere primitive parametere for å sette opp forhåndsdefinerte oppsett med 80 kolonner. Derfor er rekkefølgen viktig: «-R -f40 -2» er tilsvarende "-2". For å endre oppsettet, bruk «-2Rf40», eller komponer primitiv alternativer («--kolonner», «--font-size» osv.). �Bruk «%s --help» for mer informasjon. �Ukjent skriver�Ukjent bruker�Bruk: %s [OPSJONER]... FILER... Konverter FIL(er) eller standard input til PostScript. Som standard sendes utdata til standardskriveren. En utdatafil kan spesifiseres med -o Obligatoriske argumenter til lange opsjoner er obligatoriske for korte óg. Lange opsjoner merket med * må ha «yes» eller «no» som argument. Tilsvarende korte opsjoner betyr «yes». �Lovlige argumenter er flyttall f så: %s �Lovlige argumenter er heltall n så : %s �Virituelle sider: �Når delegering er aktivert, kan a2ps bruke andre applikasjoner til å håndtere behandling av filer som ikke skal skrives ut som råinformasjon, f.eks. HTML PostScript, PDF osv. �[%s (%s): %zu sider på %zu ark] �[%s (%s): %zu sider på 1 ark] �[%s (%s): 1 side på 1 ark] �[%s (%s): feilet. Ignorert] �[%s (binær): ignorert] �[%s (ikke utskrivbar): ignorert] �[%zu linjer brutt] �[1 linje brutt] �[Ikke noe data produsert] �[Totalt: %zu sider på %zu ark] %s �[Totalt: %zu sider på 1 ark] %s �[Totalt: 1 side på 1 ark] %s �«%s» er en binærfil, utskrift avbrutt�«%s» er en katalog�«%s» uten matchende «%s»�automatisk mal-valg kanselert�klarer ikke å lukke katalogen «%s»�klarer ikke å tolke det regulære uttrykket «%s»: %s�kan ikke opprette filen «%s»�finner ikke filen «%s»�finner ikke mal «%s»: bruker standard mal�klarer ikke å finne ut hvilken katalog du står i («pwd»)�kan ikke innhente informasjon om filen «%s»�kan ikke opprette et rør på «%s»�kan ikke åpne filen «%s»�kalrer ikke å behandle «%s» som behøver a2ps versjon %s�klarer ikke å omdøpe fil «%s» til «%s»�cirkumfleks (f.eks., «^C», «M-^C» o.s.v.)�kolonner først�dimensjoner�hver %u linjer�hver linje�emacs (f.eks «C-c», «M-C-c» etc.)�linjeslutt i %s�linjeslutt i strengkonstant�feil ved kjøring av fil(1)�fonten %f er for stor�fontstørrelse er %g punkter�kraftig�hexadesimalt (f.eks «\x0a» etc.)�ufullstendig kjennskap til skrifttyper�ulovlig argument «%s» for «%s»�ugyldig skrift «%s»�ulovlig heltallsintervall: «%s»�ugyldig opsjon «%s»�ulovlig variabel identifkator «%s»�ulovlig versjonsnummer «%s»�liggende (landscape)�minne oppbrukt�argument mangler etter «%s»�aldri ta sikkerhetskopi�nei�ingen kommando for «%s» (%s%s)�finner ikke filen «%s»�ingen�normal�nummerert sikkerhetskopi av hver fil�nummerert sikkerhetskopi av filer som allerede er nummerert, og enkel sikkerhetskopi av de øvrige filene�oktalt (f.eks «\001» etc.)�utkommando�enkel�stående (portrait)�spørsmålstegn («?»)�mottok signal %s�reddet filen «%s»�rader først�lagret til fil «%s»�valgt automatisk�sent til standard skriver�sendt til skriveren «%s»�sendt til standard ut�enkel sikkerhetskopi av hver fil�blank (« »)�for mange inkluderinger�for mange skråfonter: «%s»�uventet tegn «%c»�ukjent tegnkoding: «%s»�ukjent media «%s»�ukjent brukeropsjon «%s»�bruker�ja������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/nb.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000111501�14445132165�010723� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Norwegian Bokmål message catalog for a2ps. # Copyright (C) 2022 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Jon Ross <jonr@sdata.no>, 1998. # Johnny A. Solbu <johnny@solbu.net>, 2023 # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-03-03 12:08+0100\n" "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n" "Language-Team: Norwegian Bokmaal <l10n-no@lister.huftis.org>\n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 2.4.2\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "argument mangler etter «%s»" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "kan ikke opprette filen «%s»" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "kan ikke opprette et rør på «%s»" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegering «%s», fra %s til %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Applikasjoner konfigurert for delegering" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "«%s» er en katalog" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "kan ikke åpne filen «%s»" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "kan ikke innhente informasjon om filen «%s»" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 side på 1 ark]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu sider på 1 ark]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu sider på %zu ark]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totalt: 1 side på 1 ark] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Totalt: %zu sider på 1 ark] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Totalt: %zu sider på %zu ark] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 linje brutt]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu linjer brutt]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Ikke noe data produsert]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegert til %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): feilet. Ignorert]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (ikke utskrivbar): ignorert]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binær): ignorert]\n" #: src/generate.c:350 msgid "plain" msgstr "enkel" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "linjeslutt i strengkonstant" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "linjeslutt i %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "mottok signal %s" #: src/main.c:235 msgid "heavy" msgstr "kraftig" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "ingen" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ja" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "nei" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Konfigurasjonsstatus for %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Ark:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " medium = %s, %s\n" " layout per side = %zu x %zu %s\n" " rammer = %s\n" " fil alignment = %s\n" " marg på innside = %u\n" #: src/main.c:339 msgid "portrait" msgstr "stående (portrait)" #: src/main.c:339 msgid "landscape" msgstr "liggende (landscape)" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u tegn per linje" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u linjer per side" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "fontstørrelse er %g punkter" #: src/main.c:363 msgid "each line" msgstr "hver linje" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "hver %u linjer" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virituelle sider:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " nummerer linjer = %s\n" " formater = %s\n" " tabulatorstørrelse = %u\n" " format for ikke-skrivbare tegn = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Headere:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " header = %s\n" " venstre footer = %s\n" " footer = %s\n" " høyre footer = %s\n" " venstre tittel = %s\n" " sentrert tittel = %s\n" " høyre title = %s\n" " tekst under sider = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Input:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " trunker linjer = %s\n" " tolk = %s\n" " linjeslutt = %s\n" " koding = %s\n" " dokument-tittel = %s\n" " prolog = %s\n" " print allikevel = %s\n" " delegering = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "valgt automatisk" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Pen utskrift:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " stil-mal = %s\n" " highlight-nivå = %s\n" " strip-nivå = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "aldri ta sikkerhetskopi" #: src/main.c:456 msgid "simple backups of every file" msgstr "enkel sikkerhetskopi av hver fil" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "nummerert sikkerhetskopi av filer som allerede er nummerert,\n" " og enkel sikkerhetskopi av de øvrige filene" #: src/main.c:466 msgid "numbered backups of every file" msgstr "nummerert sikkerhetskopi av hver fil" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Utdata:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destinasjon = %s\n" " versjonskontroll = %s\n" " sikkerhetskopi-suffix = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magic number = %s\n" " skriverbeskrivelse (PPD) = %s\n" " default PPD = %s\n" " sidemerkingsformat = %s\n" " antall kopier = %u\n" " sider per ark = %s\n" " \"page device\" definisjoner = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " «statusdict»-definisjoner = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " formating av sider = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Internde detaljer:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " detaljeringsnivå = %u\n" " fil-kommando = %s\n" " sti til bibliotek = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Bruk: %s [OPSJONER]... FILER...\n" "\n" "Konverter FIL(er) eller standard input til PostScript. Som standard sendes " "utdata\n" "til standardskriveren. En utdatafil kan spesifiseres med -o\n" "\n" "Obligatoriske argumenter til lange opsjoner er obligatoriske for korte óg.\n" "Lange opsjoner merket med * må ha «yes» eller «no» som argument.\n" "Tilsvarende korte opsjoner betyr «yes».\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Oppgaver:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version visningsversjon\n" " --help viser denne hjelpen\n" " --guess rapporter gjette typer FILER\n" " --which rapporterer hele banen til bibliotekfiler " "kalt FILES\n" " --glob rapporterer hele banen til bibliotekfiler " "som samsvarer med FILES\n" " --list=defaults viser standardinnstillinger og parametere\n" " --list=TOPIC detaljert liste over TOPIC (delegeringer, " "kodinger, funksjoner,\n" " variabler, media, ppd, skrivere, prologer, " "stilark,\n" " brukeralternativer)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Etter å ha utført oppgaven, avslutter du. Detaljerte lister kan\n" "gi ytterligere hjelp til spesifikke funksjoner.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent være veldig stille\n" " -v, --verbose[=NIVÅ] høyrøstet, eller høyrøstethet til NIVÅ\n" " -=, --user-option=OPSJON bruk den brukerdefinerte forkortelsen " "OPSJON\n" " --debug skru på debugging-funksjoner\n" " --define=KEY[:VERDI] skru av variabelen KEY eller sett den til " "VERDI\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAME bruk utdatamedium NAME\n" " -r, --landscape utskrift i liggende modus\n" " -R, --portrait utskrift i portrettmodus\n" " --columns=NUM antall kolonner per ark\n" " --rows=NUM antall rader per ark\n" " --major=RETNING første fyll (RETNING=) rader eller kolonner\n" " -1, -2, ..., -9 forhåndsdefinerte skriftstørrelser og " "oppsett for 1.. 9 virtuelle\n" " -A, --file-align=MODUS juster separate filer i henhold til MODUS " "(fyll, ranger\n" " side, ark eller et tall)\n" " -j, --borders* skriver ut kanter rundt kolonner\n" " --margin[=NUM] definerer en innvendig marg i størrelse " "NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Alternativene -1.. -9 påvirker flere primitive parametere for å sette opp " "forhåndsdefinerte\n" "oppsett med 80 kolonner. Derfor er rekkefølgen viktig: «-R -f40 -2» er\n" "tilsvarende \"-2\". For å endre oppsettet, bruk «-2Rf40», eller komponer " "primitiv\n" "alternativer («--kolonner», «--font-size» osv.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM går foran hver NUM linje med linjenummeret\n" " -C alias for --line-numbers=5\n" " -f, --font-size=STØRRELSE bruk font STØRRELSE (flytende) for " "brødteksten\n" " -L, --lines-per-page=NUM skalerer skriften for å skrive ut NUM " "linjer per virtuell\n" " -l, --chars-per-line=NUM skalerer skriften for å skrive ut NUM " "kolonner per virtuell\n" " -m, --catman behandle FIL som en man-side (samme som -" "L66)\n" " -T, --tabsize=NUM sett tabulatorstørrelsen til NUM\n" " --non-printable-format=FMT spesifiser hvordan ikke-utskrivbare tegn " "skrives ut\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Overskrifter:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header ingen sideoverskrifter i det hele tatt\n" " -b, --header[=TEKST] sett sidehode\n" " -u, --underlay[=TEKST] skriv ut TEKST under hver side\n" " --center-title[=TEKST] sett sidetittel til TITLE\n" " --left-title[=TEKST] sett venstre og høyre sidetittel til TEKST\n" " --right-title[=TEKST]\n" " --left-footer[=TEKST] sett arkbunntekst til TEKST\n" " --footer[=TEKST]\n" " --right-footer[=TEKST]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEKSTer kan bruke spesielle escapes.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=UTVALG] velg sidene som skal skrives ut\n" " -c, --truncate-lines* kutt lange linjer\n" " -i, --interpret* tolke tab, bs og ff-tegn\n" " --end-of-line=TYPE spesifiser linjeslutt-tegn (TYPE: r, n, nr, " "rn, any)\n" " -X, --encoding=NAVN bruk inndatakoding NAVN\n" " -t, --title=NAVN angi navnet på jobben\n" " --stdin=NAVN angi navnet på inndatafilen stdin\n" " --print-anyway* tvinge binær utskrift\n" " -Z, --delegate* delegere filer til et annet program\n" " --toc[=TEKST] generere en innholdsfortegnelse\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Når delegering er aktivert, kan a2ps bruke andre applikasjoner til å " "håndtere\n" "behandling av filer som ikke skal skrives ut som råinformasjon, f.eks. HTML\n" "PostScript, PDF osv.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LANG] aktiver pretty-printing (sett stil til " "LANG)\n" "--highlight-level=LEVEL setter pen utskriftshøydepunkt LEVEL\n" " LEVEL kan være none, normal eller heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM nivå av kommentarer som er fjernet\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FIL la utdata til filen FIL. Hvis FIL er «-»,\n" " la utdata stå til standard.\n" " --version-control=ORD overstyrer den vanlige versjonskontrollen\n" " --suffix=SUFFIKS overstyrer det vanlige backup-suffikset\n" " -P, --printer=NAVN sender utdata til skriveren NAVN\n" " -d send utdata til standardskriveren\n" " (dette er standard-oppførsel)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FIL inkluderer FIL.pro som PostScript-prolog\n" " --ppd[=KEY] automatisk PPD-valg eller satt til KEY\n" " -n, --copies=NUM skriv ut NUM kopier av hver side\n" " -s, --sides=MODUS angi dupleks MODUS («1» eller «simplex»,\n" " «2» eller «duplex», «tumble»)\n" " -S, --setpagedevice=K[:V] sender en sideenhetsdefinisjon til utdata\n" " --statusdict=K[:[:]V] sender en statusdict-definisjon til " "utdata\n" " -k, --page-prefeed aktiver sideforhåndsmating\n" " -K, --no-page-prefeed deaktiver sideforhåndsmating\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Som standard er a2ps innstilt til å gjøre det du vil, så stol på det. For å\n" "pent skrive ut innholdet i «src»-katalogen og en innholdsfortegnelse\n" "og send resultat til skriveren «lw»,\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "For å behandle filene «sample.ps» og «sample.html» og vise resultatet,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "For å behandle en postboks i 4 opp,\n" "\n" " $ a2ps -=mail -4 postboks\n" "\n" "For å skrive ut som et hefte på standardskriveren, som er tosidig,\n" "\n" " $ a2ps -=bok paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Innholdsfortegnelse" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "kalrer ikke å behandle «%s» som behøver a2ps versjon %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "uventet tegn «%c»" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "for mange inkluderinger" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "finner ikke filen «%s»" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "finner ikke filen «%s»" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automatisk mal-valg kanselert" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "feil ved kjøring av fil(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "klarer ikke å tolke det regulære uttrykket «%s»: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Kjente maler (språk)" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "finner ikke mal «%s»: bruker standard mal" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "ulovlig versjonsnummer «%s»" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "blank (« »)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "oktalt (f.eks «\\001» etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadesimalt (f.eks «\\x0a» etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "cirkumfleks (f.eks., «^C», «M-^C» o.s.v.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (f.eks «C-c», «M-C-c» etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "spørsmålstegn («?»)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Dynamisk tabell «%s»:\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tlast: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\toriginalstørrelse: %zu, vekst: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Dynamisk streng:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "for mange skråfonter: «%s»" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "ugyldig opsjon «%s»" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Kjente enkodinger" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "ufullstendig kjennskap til skrifttyper" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "klarer ikke å lukke katalogen «%s»" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "ulovlig argument «%s» for «%s»" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Lovlige argumenter er heltall n så : %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Lovlige argumenter er flyttall f så: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "ukjent tegnkoding: «%s»" #: liba2ps/madir.c:51 msgid "rows first" msgstr "rader først" #: liba2ps/madir.c:54 msgid "columns first" msgstr "kolonner først" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "ukjent media «%s»" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Kjente media" #: liba2ps/media.c:189 msgid "Name" msgstr "Navn" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensjoner" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Kjente Variabler" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: det mangler «%c» for %s%c escape" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Skrevet ut av %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Skrevet ut av %s fra %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "klarer ikke å finne ut hvilken katalog du står i («pwd»)" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: er et for langt argument til %s escape" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%b %d %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: ukjent «%s» escape «%c» (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Side %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Side %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: ulovlig skilletegn «%s%c» for «%s» escape" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: ulovlig argument for %s%c escape" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Side %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "utkommando" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Bruk «%s --help» for mer informasjon.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "ulovlig variabel identifkator «%s»" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "ugyldig skrift «%s»" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "«%s» uten matchende «%s»" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Kjente fonter" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Ingen.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Kjente PostScript Printerbeskrivelser (PPD)" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "ulovlig heltallsintervall: «%s»" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Standard skriver" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Ukjent skriver" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "ingen kommando for «%s» (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "sendt til standard ut" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "sent til standard skriver" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "lagret til fil «%s»" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "sendt til skriveren «%s»" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Kjente destinasjoner for utdate (skrivere osb.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Kjente prologer" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "fonten %f er for stor" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "«%s» er en binærfil, utskrift avbrutt" #: liba2ps/userdata.c:104 msgid "user" msgstr "bruker" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Ukjent bruker" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "ukjent brukeropsjon «%s»" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Kjent brukeropsjoner" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "minne oppbrukt" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "klarer ikke å omdøpe fil «%s» til «%s»" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "reddet filen «%s»" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Opphavsrett (C) 1988–2017 Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "alle typer" #, fuzzy #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "For nyheter, nye versjoner og dokumentasjon besøk http://www.inf.enst.fr/" #~ "~demaille/a2ps/\n" #, fuzzy #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Rapporter feil til <bug-a2ps@gnu.org>\n" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "\n" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille og Miguel Santana\n" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "ukjent tegnkoding: `%s', ignorert" #, fuzzy #~ msgid "Written by %s.\n" #~ msgstr "Skrevet ut av %s" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "ugyldig printerdefinisjon `%s': %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "Ignorerer innslaget `%s' fordi det er foreldet/ugyldig" #~ msgid "Page %d/%d" #~ msgstr "Side %d/%d" #, fuzzy #~ msgid "invalid argument %s for `%s'" #~ msgstr "ulovlig argument `%s' for `%s'" #, fuzzy #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "ulovlig (tvedydig) argument `%s' for `%s'" #~ msgid "Valid arguments are:" #~ msgstr "Lovlige argumenter er:" #~ msgid "Unknown system error" #~ msgstr "Ukjent systemfeil" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: opsjonen `%s' er ikke ntydig\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: opsjonen `--%s' tillater ikke argumenter\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: opsjonen `%c%s' tillater ikke argument\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: opsjonen `%s' må ha et argument\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: ukjent opsjon `--%s'\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: ukjent opsjon `%c%s'\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ulovlig opsjon -- %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: ugyldig opsjon -- %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: opsjonen må ha et argument -- %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: opsjonen `-W %s' er ikke entydig\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: opsjonen `-W %s' tillater ikke argument\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "end-of-line i regulært uttrykk" #~ msgid "end-of-line in regular expression" #~ msgstr "end-of-line i regulært uttrykk" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "\n" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille og Miguel Santana\n" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "Oppgaver (avsluttet korrekt):\n" #~ msgid "" #~ "Written by <Akim.Demaille@inf.enst.fr> and <Miguel.Santana@st.com>.\n" #~ msgstr "Skrevet av <Akim.Demaille@inf.enst.fr> og <Miguel.Santana@st.com>\n" #~ msgid "save in %s\n" #~ msgstr "lagre i %s\n" #, fuzzy #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "ulovlig argument `%s' for `%s'" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "ulovlig heltallsintervall: %s" #~ msgid "illegal integer interval: %s" #~ msgstr "ulovlig heltallsintervall: %s" #, fuzzy #~ msgid "cannot find file %s" #~ msgstr "finner ikke filen `%s'" #, fuzzy #~ msgid "unrecognized font `%s'" #~ msgstr "ukjent font: `%s'" #, fuzzy #~ msgid "unrecognized face `%s'" #~ msgstr "ukjent typesnitt: `%s'" #, fuzzy #~ msgid "missing argument for %s" #~ msgstr "det mangler argument efter `%s'" #, fuzzy #~ msgid "invalid variable identifier %s" #~ msgstr "ulovlig argument `%s' for `%s'" #, fuzzy #~ msgid "cannot create file %s" #~ msgstr "kan ikke opprete filen `%s'" #, fuzzy #~ msgid "cannot open a pipe on %s" #~ msgstr "kan ikke opprette et rør på `%s'" #, fuzzy #~ msgid "cannot open file %s" #~ msgstr "kan ikke åpne filen `%s'" #, fuzzy #~ msgid "cannot open configuration file %s" #~ msgstr "klarer ikke å lese konfigurasjonsfilen `%s'" #~ msgid " library path = \n" #~ msgstr " sti til bibliotek = \n" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "ulovlig opsjon: `%s'" #~ msgid "illegal option: `%s'" #~ msgstr "ulovlig opsjon: `%s'" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/nl.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000062720�14445132166�011112� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�����7��(���7�� ���7��'��7���� :����=����?��r��A����4C��!��=F����_I��p��K��W���L�����L�����M�����N��|���=O��#���O�� ���O��`���O�����`P��^���9Q�� ���Q�����Q�����Q��*���Q��7���Q��-���(R��0���VR��+���R�����R�����R�����R��+���mS��H��S�����U������V�����V�����1V�����HV�� ���`V�����jV�����}V�����V�����V�����V�����V�����V��)���V��(���W�����8W�����IW�����`W�����xW�����W�� ���W�� ���W�� ���W�����W�� ���W�����W�����W�����W����� X�� ���X�����#X��0���+X��8��\X��&���Y�����Y�����Y����Y��H���[��?���[�����%\�����9\��&���\��"���&]�����I]��#���h]�����]��!���]�����]�����]�����]��(���^��$���?^�� ���d^��)���^�����^��!���^��&���^�����_��0���"_�����S_�����r_��@���_�����_��0���_�����`�����;`��9���X`��)���`�����`�����`�� ���`�����`�� ����a����� a�����'a��!���@a�����ba�����a�����a�����a�����a��!���a��%���a�����"b�����:b�����Qb�����fb�����b�� ���b�� ���b�����b�����b�����b��!���b��#��� c�����Dc�����Ic��$���Qc��e���vc�����c�����c�����d�����d�����d�����!d�����1d�� ���Jd�����Wd�����rd��!���d�����d�����d��!���d�� ��� e��!���e��"���8e�����[e�����qe�����e�����e�� ���e�����e�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps-4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-03-03 12:45+0100 Last-Translator: Benno Schulenberg <vertaling@coevern.nl> Language-Team: Dutch <vertaling@vrijschrift.org> Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. � belasting: %zu/%zu (%2.1f%%) � originele grootte: %zu, groei: %s %zu � Geen. � --line-numbers=AANTAL elke AANTALste regel een regelnummer geven -C hetzelfde als '--line-numbers=5' -f, --font-size=GETAL te gebruiken lettertypegrootte voor gewone tekst -L, --lines-per-page=AANTAL aantal regels per virtuele pagina -l, --columns-per-page=AANTAL aantal kolommen per virtuele pagina -m, --catman afdrukken als handleidingspagina (== '-L66') -T, --tabsize=AANTAL tabulatiebreedte --non-printable-format=MANIER behandelwijze van onafdrukbare tekens � --prologue=BESTAND BESTAND.pro as PostScript-proloog gebruiken --ppd[=NAAM] printerdefinitie automatisch selecteren, of de gegeven definitie gebruiken -n, --copies=AANTAL dit aantal kopieën van elke pagina afdrukken -s, --sides=MODUS één- of tweezijdig afdrukken; mogelijke waarden zijn '1' of 'simplex', '2' of 'duplex', of 'tumble' (tweezijdig, maar dan overdekop) -S, --setpagedevice=S[:W] een 'page device'-definitie in uitvoer opnemen --statusdict=S[:[:]W] een 'statusdict'-definitie in uitvoer opnemen -k, --page-prefeed pagina-anticipering gebruiken -K, --no-page-prefeed geen pagina-anticipering gebruiken � --version programmaversie tonen en stoppen --help deze hulptekst tonen en stoppen --guess de geraden types van BESTANDEN tonen --which volledig pad tonen van bibliotheken genaamd BESTANDEN --glob volledig pad tonen van bibliotheken overeenkomend met het patroon BESTANDEN --list=defaults standaardinstellingen en -parameters tonen --list=ONDERWERP gedetailleerde lijst tonen over een ONDERWERP: media delegations, encodings, features, ppd, printers, prologues, style-sheets, user-options, variables � -B, --no-header geen paginakoppen gebruiken -b, --header[=TEKST] deze tekst als paginakoptekst gebruiken -u, --underlay[=TEKST] deze tekst als achtergrond gebruiken --center-title[=TEKST] deze tekst als titel gebruiken --left-title[=TEKST] linker titel --right-title[=TEKST] rechter titel --footer[=TEKST] paginavoettekst --left-footer[=TEKST] linker paginavoettekst --right-footer[=TEKST] rechter paginavoettekst � -E, --pretty-print[=TAAL] fraai afdrukken, voor deze programmeertaal --highlight-level=NIVEAU accentueringsniveau; mogelijke waarden zijn: 'none' (geen), 'normal', of 'heavy' (sterk) -g hetzelfde als '--highlight-level=heavy' --strip-level=GETAL commentaaronderdrukkingsniveau � -M, --medium=FORMAATNAAM dit papierformaat gebruiken -r, --landscape in landschapformaat afdrukken -R, --portrait in portretformaat afdrukken --columns=AANTAL aantal kolommen per pagina --rows=AANTAL aantal rijen per pagina --major=RICHTING virtuele pagina's eerst in deze richting vullen; 'rows' (rijen) of 'columns' kolommen -1, -2, ..., -9 voorgedefinieerde lay-outs voor virtuele pagina's -A, --file-align=MANIER losse bestanden op deze manier uitlijnen; 'fill', 'rank', 'page', 'sheet', of een getal -j, --borders* rond kolommen randen afdrukken --margin[=GROOTTE] een binnenmarge gebruiken, van deze GROOTTE � -a, --pages[=BEREIK] alleen deze reeks pagina's afdrukken -c, --truncate-lines* lange regels afkappen --end-of-line=SOORT te herkennen regeleindeteken; 'r' (Return), 'n' (Newline), 'nr', 'rn', of 'any' (alle vier) -i, --interpret* Tab-, BackSpace- en FormFeed-tekens interpreteren --print-anyway* het afdrukken van binaire bestanden afdwingen --prologue=BESTAND dit bestand als proloog gebruiken --stdin=NAAM deze naam gebruiken voor standaardinvoer -t, --title=NAAM deze naam gebruiken voor de afdruktaak --toc[=TEKST] een inhoudsopgave genereren -X, --encoding=CODE de codering van de invoer -Z, --delegate* sommige taken aan andere progamma's uitbesteden � -o, --output=BESTAND uitvoer in dit bestand opslaan; als dit '-' is, wordt standaarduitvoer gebruikt --version-control=SOORT deze soort versiebeheer gebruiken --suffix=SUFFIX dit achtervoegsel gebruiken voor backups -P, --printer=NAAM uitvoer naar deze printer sturen -d uitvoer naar standaardprinter sturen (standaard) � -q, --quiet, --silent zo weinig mogelijke uitvoer produceren -v, --verbose[=NIVEAU] extra informatie tonen, tot bepaald NIVEAU -=, --user-option=OPTIE door gebruiker ingestelde OPTIE gebruiken --debug debugging-functies inschakelen --define=VARIABELE[:WAARDE] VARIABELE wissen, of een WAARDE geven � doel = %s versiebeheer = %s backup-achtervoegsel = %s � koptekst = %s linker voettekst = %s voettekst = %s rechter voettekst = %s linker titel = %s titel = %s rechter titel = %s achtergrond = %s � magisch nummer = %s printeromschrijving (PPD) = %s standaard-PPD = %s paginalabelopmaak = %s aantal kopieën = %u zijdes per blad = %s pagina-apparaat-definities = � papierformaat = %s, %s virtuele lay-out = %zu x %zu (%s) marges = %s bestandsuitlijning = %s binnenmarge = %u � regelnummers = %s formaat = %s tabulatiebreedte = %u niet-afdrukbare tekens = %s � pagina-anticipering = %s � statusdict-definities = � opmaakbestand = %s accentueringsniveau = %s commentaaronderdrukking = %d � regels afkappen = %s interpretatie = %s regeleinde = %s codering = %s documenttitel = %s proloog = %s afdrukken forceren = %s delegeren = %s � breedsprakigheidsniveau = %u bestandsopdracht = %s bibliothekenzoekpad = �%A %d %B %Y�%d %b %Y�%s, gedelegeerd naar %s�%s: ongeldig argument van stuurcode '%s%c'�%s: ongeldig scheidingsteken '%s%c' voor stuurcode '%s'�%s: ontbrekende '%c' in '%s%c'-stuurcodereeks�%s: argument voor '%s'-stuurcodereeks is te lang�%s: onbekende '%s'-stuurcodereeks '%c' (%d)�%u tekens per regel�%u regels per pagina�Nadat een taak afgerond is, wordt succesvol afgesloten. Gedetailleerde lijsten verschaffen soms meer informatie over specifieke mogelijkheden. �Programma's waarnaar gedelegeerd kan worden�Standaard is 'a2ps' afgesteld om te doen wat u wilt; vertrouw hier dus op. Om de inhoud van de map 'bronnen' plus een inhoudsopgave mooi af te drukken op printer 'sp': a2ps -P sp --toc bronnen/* Om de bestanden 'staal.ps' en 'staal.html' te verwerken en het resultaat weer te geven op de huidige terminal: a2ps -P display staal.ps staal.html Om een postvak te verwerken in 2x2 virtuele pagina's per blad: a2ps -=mail -4 postvak Om een bestand als een brochure af te drukken op de standaardprinter, als deze tweezijdig kan afdrukken: a2ps -=book boekje.dvi.gz -d�Configuratiestatus van %s %s �Standaardprinter�Delegatie '%s', van %s naar %s �dynamisch array '%s': �Dynamische tekenreeks: �Globaal: �Randversierselen: �Paginakoppen: �Invoer: �Interne werking: �Bekende coderingen�Bekende lettertypen�Bekende papierformaten�Bekende uitvoerapparaten (printers, enz.)�Bekende PostScript-printeromschrijvingen�Bekende prologen�Bekende stijlbestanden�Bekende gebruikeropties�Bekende variabelen�Naam�Uitvoer: �Pagina %zu�Pagina %zu/%c�Pagina %zu/%zu�PostScript: �Fraai printen: �Afgedrukt door %s�Afgedrukt door %s vanaf %s�Bladen: �Inhoudsopgave�Taken: �De TEKSTen mogen speciale stuurcodes gebruiken. �De opties -1 tot en met -9 veranderen meerdere basisparameters om standaard-lay-outs met 80 kolommen in te stellen. Zodoende is de volgorde van belang: '-R -f40 -2' is hetzelfde als '-2'. Om een standaard-lay-out aan te passen, kunt u bijvoorbeeld '-2 -R -f40' gebruiken, of deze samenstellen uit basisopties. �Typ '%s --help' voor meer informatie. �Onbekende printer�Onbekende gebruiker�Gebruik: %s [OPTIE]... [BESTAND]... Converteert de gegeven BESTAND(en) of standaardinvoer naar PostScript. Standaard wordt de uitvoer naar de standaardprinter gestuurd. Met '-o' kan een uitvoerbestand opgegeven worden. Verplichte argumenten bij een lange optie gelden ook voor de korte vorm. Lange opties gemarkeerd met een sterretje (*) vereisen 'yes' of 'no' (ja/nee) als argument; de overeenkomstige korte opties betekenen 'yes' (ja). �Geldige argumenten zijn drijvende-komma-getallen 'f' waarvoor geldt: %s �Geldige argumenten zijn gehele getallen 'n' waarvoor geldt: %s �Virtuele pagina's: �Wanneer delegeren ingeschakeld wordt, kan 'a2ps' andere programma's aanroepen om bestanden te verwerken die niet als kale tekst moeten worden afgedrukt. Bijvoorbeeld voor HTML, PostScript, of PDF. �[%s (%s): %zu pagina's op %zu bladen] �[%s (%s): %zu pagina's op 1 blad] �[%s (%s): 1 pagina op 1 blad] �[%s (%s): is mislukt -- genegeerd] �[%s (binair) -- genegeerd] �[%s (onafdrukbaar) -- genegeerd] �[%zu omgebroken regels] �[1 omgebroken regel] �[Geen uitvoer geproduceerd] �[Totaal: %zu pagina's op %zu bladen] %s �[Totaal: %zu pagina's op 1 blad] %s �[Totaal: 1 pagina op 1 blad] %s �'%s' is binair -- afdrukken is afgebroken�'%s' is een map�'%s' zonder corresponderende '%s'�automatische stijlkeuze is geannuleerd�kan map '%s' niet sluiten�kan reguliere expressie '%s' niet compileren: %s�kan bestand '%s' niet aanmaken�kan bestand '%s' niet vinden�kan stijlbestand '%s' niet vinden -- gewone stijl wordt gebruikt�kan huidige map niet bepalen�kan geen informatie over bestand '%s' verkrijgen�kan geen pijp openen op '%s'�kan bestand '%s' niet openen�kan '%s' niet verwerken; dit vereist versie %s van 'a2ps'�kan bestand '%s' niet hernoemen naar '%s'�dakje ('^C', 'M-^C' enz.)�kolommen eerst�afmetingen�om de %u regels�elke regel�emacs ('C-c', 'M-C-c' enz.)�regeleinde binnen een %s�regeleindeteken in tekstconstante�fout bij uitvoeren van file(1)�lettertype %f is te groot�groote van lettertype is %gpt�sterk�hexadecimaal ('\x0a' enz.)�niet genoeg bekend over uiterlijk�ongeldig argument '%s' van optie '%s'�ongeldig uiterlijk '%s'�ongeldig interval '%s'�ongeldige optie '%s'�ongeldige variabelenaam '%s'�ongeldig versienummer '%s'�landschap�onvoldoende geheugen beschikbaar�ontbrekend argument van '%s'�nooit backups maken�nee�geen opdracht voor de '%s' (%s%s)�geen sleutel gedefinieerd voor '%s'�geen�normaal�genummerde backups van ieder bestand�genummerde backups van reeds genummerde bestanden, en simpele van anderen�octaal ('\001' enz.)�uitvoeropdracht�gewoon�portret�vraagteken ('?')�SIG%s ontvangen�bestand '%s' is hersteld�regels eerst�in bestand '%s' opgeslagen�automatisch geselecteerd�naar de standaardprinter gestuurd�naar printer '%s' gestuurd�naar standaarduitvoer gestuurd�simpele backups van ieder bestand�spatie (' ')�te veel insluitingen ('includes')�te veel cursieve lettertypes: '%s'�onverwacht teken '%c'�onbekende codering '%s'�onbekend papierformaat '%s'�onbekende gebruikeroptie '%s'�gebruiker�ja�������������������������������������������������a2ps-4.15.5/po/nl.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000110314�14445132165�010736� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Dutch translations for a2ps. # Copyright (C) 2023 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # # “El hambre actual es el más canalla de la historia.” # # Marcel van der Laan <marcel@spase.nl>, 1998. # Tijs van Bakel <smoke@casema.net>, 2000. # Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: a2ps-4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-03-03 12:45+0100\n" "Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "ontbrekend argument van '%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "kan bestand '%s' niet aanmaken" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "kan geen pijp openen op '%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegatie '%s', van %s naar %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Programma's waarnaar gedelegeerd kan worden" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "'%s' is een map" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "kan bestand '%s' niet openen" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "kan geen informatie over bestand '%s' verkrijgen" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 pagina op 1 blad]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu pagina's op 1 blad]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu pagina's op %zu bladen]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totaal: 1 pagina op 1 blad] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Totaal: %zu pagina's op 1 blad] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Totaal: %zu pagina's op %zu bladen] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 omgebroken regel]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu omgebroken regels]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Geen uitvoer geproduceerd]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, gedelegeerd naar %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): is mislukt -- genegeerd]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (onafdrukbaar) -- genegeerd]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binair) -- genegeerd]\n" #: src/generate.c:350 msgid "plain" msgstr "gewoon" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "regeleindeteken in tekstconstante" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "regeleinde binnen een %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "SIG%s ontvangen" #: src/main.c:235 msgid "heavy" msgstr "sterk" #: src/main.c:239 msgid "normal" msgstr "normaal" #: src/main.c:243 msgid "none" msgstr "geen" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ja" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "nee" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Configuratiestatus van %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Bladen:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " papierformaat = %s, %s\n" " virtuele lay-out = %zu x %zu (%s)\n" " marges = %s\n" " bestandsuitlijning = %s\n" " binnenmarge = %u\n" #: src/main.c:339 msgid "portrait" msgstr "portret" #: src/main.c:339 msgid "landscape" msgstr "landschap" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u tekens per regel" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u regels per pagina" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "groote van lettertype is %gpt" #: src/main.c:363 msgid "each line" msgstr "elke regel" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "om de %u regels" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtuele pagina's:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " regelnummers = %s\n" " formaat = %s\n" " tabulatiebreedte = %u\n" " niet-afdrukbare tekens = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Randversierselen:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " koptekst = %s\n" " linker voettekst = %s\n" " voettekst = %s\n" " rechter voettekst = %s\n" " linker titel = %s\n" " titel = %s\n" " rechter titel = %s\n" " achtergrond = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Invoer:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " regels afkappen = %s\n" " interpretatie = %s\n" " regeleinde = %s\n" " codering = %s\n" " documenttitel = %s\n" " proloog = %s\n" " afdrukken forceren = %s\n" " delegeren = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "automatisch geselecteerd" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Fraai printen:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " opmaakbestand = %s\n" " accentueringsniveau = %s\n" " commentaaronderdrukking = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "nooit backups maken" #: src/main.c:456 msgid "simple backups of every file" msgstr "simpele backups van ieder bestand" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "genummerde backups van reeds genummerde bestanden,\n" " en simpele van anderen" #: src/main.c:466 msgid "numbered backups of every file" msgstr "genummerde backups van ieder bestand" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Uitvoer:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " doel = %s\n" " versiebeheer = %s\n" " backup-achtervoegsel = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magisch nummer = %s\n" " printeromschrijving (PPD) = %s\n" " standaard-PPD = %s\n" " paginalabelopmaak = %s\n" " aantal kopieën = %u\n" " zijdes per blad = %s\n" " pagina-apparaat-definities = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " statusdict-definities = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " pagina-anticipering = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Interne werking:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " breedsprakigheidsniveau = %u\n" " bestandsopdracht = %s\n" " bibliothekenzoekpad = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Gebruik: %s [OPTIE]... [BESTAND]...\n" "\n" "Converteert de gegeven BESTAND(en) of standaardinvoer naar PostScript.\n" "Standaard wordt de uitvoer naar de standaardprinter gestuurd.\n" "Met '-o' kan een uitvoerbestand opgegeven worden.\n" "\n" "Verplichte argumenten bij een lange optie gelden ook voor de korte vorm.\n" "Lange opties gemarkeerd met een sterretje (*) vereisen 'yes' of 'no' (ja/" "nee)\n" "als argument; de overeenkomstige korte opties betekenen 'yes' (ja).\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Taken:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version programmaversie tonen en stoppen\n" " --help deze hulptekst tonen en stoppen\n" " --guess de geraden types van BESTANDEN tonen\n" " --which volledig pad tonen van bibliotheken genaamd " "BESTANDEN\n" " --glob volledig pad tonen van bibliotheken overeenkomend " "met\n" " het patroon BESTANDEN\n" " --list=defaults standaardinstellingen en -parameters tonen\n" " --list=ONDERWERP gedetailleerde lijst tonen over een ONDERWERP: " "media\n" " delegations, encodings, features, ppd, printers,\n" " prologues, style-sheets, user-options, variables\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Nadat een taak afgerond is, wordt succesvol afgesloten. Gedetailleerde\n" "lijsten verschaffen soms meer informatie over specifieke mogelijkheden.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Globaal:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent zo weinig mogelijke uitvoer produceren\n" " -v, --verbose[=NIVEAU] extra informatie tonen, tot bepaald " "NIVEAU\n" " -=, --user-option=OPTIE door gebruiker ingestelde OPTIE " "gebruiken\n" " --debug debugging-functies inschakelen\n" " --define=VARIABELE[:WAARDE] VARIABELE wissen, of een WAARDE geven\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=FORMAATNAAM dit papierformaat gebruiken\n" " -r, --landscape in landschapformaat afdrukken\n" " -R, --portrait in portretformaat afdrukken\n" " --columns=AANTAL aantal kolommen per pagina\n" " --rows=AANTAL aantal rijen per pagina\n" " --major=RICHTING virtuele pagina's eerst in deze richting " "vullen;\n" " 'rows' (rijen) of 'columns' kolommen\n" " -1, -2, ..., -9 voorgedefinieerde lay-outs voor virtuele " "pagina's\n" " -A, --file-align=MANIER losse bestanden op deze manier uitlijnen;\n" " 'fill', 'rank', 'page', 'sheet', of een getal\n" " -j, --borders* rond kolommen randen afdrukken\n" " --margin[=GROOTTE] een binnenmarge gebruiken, van deze GROOTTE\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "De opties -1 tot en met -9 veranderen meerdere basisparameters om\n" "standaard-lay-outs met 80 kolommen in te stellen. Zodoende is de\n" "volgorde van belang: '-R -f40 -2' is hetzelfde als '-2'. Om een\n" "standaard-lay-out aan te passen, kunt u bijvoorbeeld '-2 -R -f40'\n" "gebruiken, of deze samenstellen uit basisopties.\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=AANTAL elke AANTALste regel een regelnummer geven\n" " -C hetzelfde als '--line-numbers=5'\n" " -f, --font-size=GETAL te gebruiken lettertypegrootte voor gewone " "tekst\n" " -L, --lines-per-page=AANTAL aantal regels per virtuele pagina\n" " -l, --columns-per-page=AANTAL aantal kolommen per virtuele pagina\n" " -m, --catman afdrukken als handleidingspagina (== '-" "L66')\n" " -T, --tabsize=AANTAL tabulatiebreedte\n" " --non-printable-format=MANIER behandelwijze van onafdrukbare tekens\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Paginakoppen:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header geen paginakoppen gebruiken\n" " -b, --header[=TEKST] deze tekst als paginakoptekst gebruiken\n" " -u, --underlay[=TEKST] deze tekst als achtergrond gebruiken\n" " --center-title[=TEKST] deze tekst als titel gebruiken\n" " --left-title[=TEKST] linker titel\n" " --right-title[=TEKST] rechter titel\n" " --footer[=TEKST] paginavoettekst\n" " --left-footer[=TEKST] linker paginavoettekst\n" " --right-footer[=TEKST] rechter paginavoettekst\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "De TEKSTen mogen speciale stuurcodes gebruiken.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=BEREIK] alleen deze reeks pagina's afdrukken\n" " -c, --truncate-lines* lange regels afkappen\n" " --end-of-line=SOORT te herkennen regeleindeteken; 'r' (Return),\n" " 'n' (Newline), 'nr', 'rn', of 'any' (alle " "vier)\n" " -i, --interpret* Tab-, BackSpace- en FormFeed-tekens " "interpreteren\n" " --print-anyway* het afdrukken van binaire bestanden afdwingen\n" " --prologue=BESTAND dit bestand als proloog gebruiken\n" " --stdin=NAAM deze naam gebruiken voor standaardinvoer\n" " -t, --title=NAAM deze naam gebruiken voor de afdruktaak\n" " --toc[=TEKST] een inhoudsopgave genereren\n" " -X, --encoding=CODE de codering van de invoer\n" " -Z, --delegate* sommige taken aan andere progamma's uitbesteden\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Wanneer delegeren ingeschakeld wordt, kan 'a2ps' andere programma's " "aanroepen\n" "om bestanden te verwerken die niet als kale tekst moeten worden afgedrukt.\n" "Bijvoorbeeld voor HTML, PostScript, of PDF.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=TAAL] fraai afdrukken, voor deze programmeertaal\n" " --highlight-level=NIVEAU accentueringsniveau; mogelijke waarden " "zijn:\n" " 'none' (geen), 'normal', of " "'heavy' (sterk)\n" " -g hetzelfde als '--highlight-level=heavy'\n" " --strip-level=GETAL commentaaronderdrukkingsniveau\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=BESTAND uitvoer in dit bestand opslaan; als dit\n" " '-' is, wordt standaarduitvoer gebruikt\n" " --version-control=SOORT deze soort versiebeheer gebruiken\n" " --suffix=SUFFIX dit achtervoegsel gebruiken voor backups\n" " -P, --printer=NAAM uitvoer naar deze printer sturen\n" " -d uitvoer naar standaardprinter sturen " "(standaard)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=BESTAND BESTAND.pro as PostScript-proloog gebruiken\n" " --ppd[=NAAM] printerdefinitie automatisch selecteren, of de\n" " gegeven definitie gebruiken\n" " -n, --copies=AANTAL dit aantal kopieën van elke pagina afdrukken\n" " -s, --sides=MODUS één- of tweezijdig afdrukken; mogelijke " "waarden\n" " zijn '1' of 'simplex', '2' of 'duplex', of\n" " 'tumble' (tweezijdig, maar dan overdekop)\n" " -S, --setpagedevice=S[:W] een 'page device'-definitie in uitvoer opnemen\n" " --statusdict=S[:[:]W] een 'statusdict'-definitie in uitvoer opnemen\n" " -k, --page-prefeed pagina-anticipering gebruiken\n" " -K, --no-page-prefeed geen pagina-anticipering gebruiken\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Standaard is 'a2ps' afgesteld om te doen wat u wilt; vertrouw hier dus op.\n" "Om de inhoud van de map 'bronnen' plus een inhoudsopgave mooi af te drukken\n" "op printer 'sp':\n" "\n" " a2ps -P sp --toc bronnen/*\n" "\n" "Om de bestanden 'staal.ps' en 'staal.html' te verwerken en het resultaat\n" "weer te geven op de huidige terminal:\n" "\n" " a2ps -P display staal.ps staal.html\n" "\n" "Om een postvak te verwerken in 2x2 virtuele pagina's per blad:\n" "\n" " a2ps -=mail -4 postvak\n" "\n" "Om een bestand als een brochure af te drukken op de standaardprinter, als\n" "deze tweezijdig kan afdrukken:\n" "\n" " a2ps -=book boekje.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Inhoudsopgave" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "kan '%s' niet verwerken; dit vereist versie %s van 'a2ps'" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "onverwacht teken '%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "te veel insluitingen ('includes')" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "geen sleutel gedefinieerd voor '%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "kan bestand '%s' niet vinden" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automatische stijlkeuze is geannuleerd" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "fout bij uitvoeren van file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "kan reguliere expressie '%s' niet compileren: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Bekende stijlbestanden" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "kan stijlbestand '%s' niet vinden -- gewone stijl wordt gebruikt" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "ongeldig versienummer '%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "spatie (' ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octaal ('\\001' enz.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimaal ('\\x0a' enz.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "dakje ('^C', 'M-^C' enz.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs ('C-c', 'M-C-c' enz.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "vraagteken ('?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "dynamisch array '%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tbelasting: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\toriginele grootte: %zu, groei: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Dynamische tekenreeks:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "te veel cursieve lettertypes: '%s'" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "ongeldige optie '%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Bekende coderingen" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "niet genoeg bekend over uiterlijk" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "kan map '%s' niet sluiten" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "ongeldig argument '%s' van optie '%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Geldige argumenten zijn gehele getallen 'n' waarvoor geldt: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" "Geldige argumenten zijn drijvende-komma-getallen 'f' waarvoor geldt: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "onbekende codering '%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "regels eerst" #: liba2ps/madir.c:54 msgid "columns first" msgstr "kolommen eerst" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "onbekend papierformaat '%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Bekende papierformaten" #: liba2ps/media.c:189 msgid "Name" msgstr "Naam" #: liba2ps/media.c:190 msgid "dimensions" msgstr "afmetingen" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Bekende variabelen" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: ontbrekende '%c' in '%s%c'-stuurcodereeks" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Afgedrukt door %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Afgedrukt door %s vanaf %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "kan huidige map niet bepalen" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argument voor '%s'-stuurcodereeks is te lang" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%d %b %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: onbekende '%s'-stuurcodereeks '%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Pagina %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Pagina %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: ongeldig scheidingsteken '%s%c' voor stuurcode '%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: ongeldig argument van stuurcode '%s%c'" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Pagina %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "uitvoeropdracht" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Typ '%s --help' voor meer informatie.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "ongeldige variabelenaam '%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "ongeldig uiterlijk '%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "'%s' zonder corresponderende '%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Bekende lettertypen" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Geen.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Bekende PostScript-printeromschrijvingen" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "ongeldig interval '%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Standaardprinter" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Onbekende printer" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "geen opdracht voor de '%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "naar standaarduitvoer gestuurd" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "naar de standaardprinter gestuurd" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "in bestand '%s' opgeslagen" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "naar printer '%s' gestuurd" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Bekende uitvoerapparaten (printers, enz.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Bekende prologen" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "lettertype %f is te groot" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "'%s' is binair -- afdrukken is afgebroken" #: liba2ps/userdata.c:104 msgid "user" msgstr "gebruiker" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Onbekende gebruiker" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "onbekende gebruikeroptie '%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Bekende gebruikeropties" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "onvoldoende geheugen beschikbaar" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "kan bestand '%s' niet hernoemen naar '%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "bestand '%s' is hersteld" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "willekeurig" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Voor nieuws, updates en documentatie zie:\n" #~ " http://www.gnu.org/software/a2ps/\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Rapporteer gebreken in het programma aan <bug-a2ps@gnu.org;\n" #~ "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (C) 1988-1993 Miguel Santana\n" #~ "Copyright (C) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (C) 2007- Akim Demaille, Miguel Santana, Masayuki Hatta" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "onbekende codering '%s' -- genegeerd" #~ msgid "Written by %s.\n" #~ msgstr "Geschreven door %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Dit is vrije software; zie de programmatekst voor de kopieervoorwaarden.\n" #~ "Er is GEEN garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID\n" #~ "VOOR EEN BEPAALD DOEL.\n" #~ msgid "write error" #~ msgstr "schrijffout" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "ongeldige definitie voor printer '%s': %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "verouderd item '%s' -- genegeerd" #~ msgid "Page %d/%d" #~ msgstr "Pagina %d/%d" #~ msgid "`" #~ msgstr "‘" #~ msgid "'" #~ msgstr "’" #~ msgid "invalid argument %s for `%s'" #~ msgstr "ongeldig argument '%s' bij optie '%s'" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argument '%s' van optie '%s' is niet eenduidig" #~ msgid "Valid arguments are:" #~ msgstr "Geldige argumenten zijn:" #~ msgid "Unknown system error" #~ msgstr "Onbekende systeemfout" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: optie '%s' is niet eenduidig\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: optie '--%s' staat geen argument toe\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: optie '%c%s' staat geen argument toe\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: optie '%s' vereist een argument\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: onbekende optie '--%s'\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: onbekende optie '%c%s'\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ongeldige optie -- %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: ongeldige optie -- %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: optie vereist een argument -- %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: optie '-W %s' is niet eenduidig\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: optie '-W %s' staat geen argument toe\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/pl.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000063122�14445132166�011111� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�����7��/���7�� ���7����7����:��9��==��^��w@��`��B��>��7D����vG����J����K��x���M����� N�����N�����O��z���P��!��� Q�����.Q��W���JQ�����Q��X���R�� ���R�����R�����R��(��� S��0���3S�����dS��'���S��'���S�����S�����S��z���S��%���xT�� ��T�����V�����V�����V�����V�����W�����&W�� ���<W�� ���IW�� ���VW�����aW�����tW�� ���W�� ���W��%���W�����W�� ���W�� ���W�����W�� ���X�����&X�� ���,X�� ���7X�� ���BX�����PX�� ���_X�����lX�����X�����X�����X�� ���X�� ���X��1���X��1��X��:���-Z�����hZ�����zZ��|��Z��B��� \��A���O\�����\�����\��%���Z]��!���]�� ���]��&���]�����]��!���^�����(^�����B^�����X^��+���n^��'���^��&���^��0���^�����_��!���/_��#���Q_��#���u_��7���_�����_�����_��6���`��(���G`��.���p`��#���`�����`��;���`��+���a�����Ka�����fa�����wa�� ���a�����a�����a�����a�����a��#���a�����b�����'b�����=b�����Db��'���_b��(���b�����b�����b�����b��'���b�����%c�����>c�����Mc�����ac�����|c�����c�����c�� ���c�����c�����c�����c��T���d�����Wd�����od�����d�����d�����d�����d�����d�����d�����d�����e�� ���e�����7e�� ���Qe��$���re�� ���e�����e��"���e�����e�����e����� f�� ���!f�� ���Bf�����Nf�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-01-27 17:01+0100 Last-Translator: Jakub Bogusz <qboosh@pld-linux.org> Language-Team: Polish <translation-team-pl@lists.sourceforge.net> Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. � ładowanie: %zu/%zu (%2.1f%%) � rozmiar oryginalny: %zu, powiększenie %s %zu � Brak. � --line-numbers=ILE drukowanie numerów linii co ILE linii; -C to samo, co --line-numbers=5 -f, --fontsize=ROZMIAR użycie podanego ROZMIARU czcionki do tekstu -L, --lines-per-page=ILE skalowanie do ILU linii na stronę wirtualną -l, --chars-per-page=ILE skalowanie do ILU kolumn na stronę wirtualną -m, --catman traktowanie pliku jako strony manuala (to samo, co -L66) -T, --tabsize=ILE ustawienie rozmiaru tabulacji na ILE znaków --non-printable-format=FMT ustawienie sposobu drukowania znaków niedrukowalnych � --prologue=PLIK użycie PLIK.pro jako prologu PostScriptu --ppd[=KLUCZ] wybór PPD: automatyczny lub KLUCZ -n, --copies=ILE drukowanie ILU kopii każdej strony -s, --sides=TRYB tryb duplex (`1' lub `simplex': jednostronny, `2' lub `duplex': dwustronny), `tumble') -S, --setpagedevice=K[:V] przekazanie definicji `pagedevice' na wyjście --statusdict=K[:[:]V] przekazanie definicji `statusdict' na wyjście -k, --page-prefeed włączenie `page prefeed' -K, --no-page-prefeed wyłączenie `page prefeed' � --version wyświetlenie informacji o wersji --help wyświetlenie tej pomocy --guess pokazanie rozpoznanych typów PLIKÓW --which pokazanie pełnej ścieżki plików bibliotek o nazwach PLIKI --glob pokazanie pełnej ścieżki plików bibliotek pasujących do PLIKÓW --list=defaults wyświetlenie domyślnych ustawień i parametrów --list=TEMAT szczegółowa pomoc na dany TEMAT (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header bez nagłówków stron -b, --header[=TEKST] ustawianie nagłówka strony -u, --underlay[=TEKST] drukowanie TEKSTU jako tła każdej strony --center-title[=TEKST] ustawienie tytułu strony na TEKST --left-title[=TEKST] ustawienie lewego tytułu strony na TEKST --right-title[=TEKST] ustawienie prawego tytułu strony na TEKST --left-footer[=TEKST] ustawienie lewej stopki na TEKST --footer[=TEKST] ustawienie stopki na TEKST --right-footer[=TEKST] ustawienie prawej stopki na TEKST � -E, --pretty-print[=JĘZYK] drukowanie z dekoracją (użycie stylu JĘZYK) --highlight-level=POZIOM ustawienie POZIOMU dekoracji; POZIOM jest jednym z none, normal lub heavy -g to samo, co --highlight-level=heavy --strip-level=ILE poziom eliminacji komentarzy � -M, --medium=NAZWA użycie rozmiaru podłoża NAZWA -r, --landscape druk w trybie poziomym -R, --portrait druk w trybie pionowym --columns=ILE liczba kolumn na stronę --rows=ILE liczba wierszy na stronę --major=KIERUNEK wypełnianie najpierw wierszy (rows) lub kolumn (columns) -1, -2, ..., -9 predefiniowane rozmiary fontów i układ dla 1...9 stron wirtualnych -A, --file-align=TRYB sposób rozmieszczenia plików (fill, rank, page, sheet albo liczba) -j, --borders* drukowanie ramki wokół kolumn --margin[=ROZMIAR] wewnętrzny margines danego ROZMIARU � -a, --pages[=ZAKRES] wybór stron do drukowania -c, --truncate-lines* przycinanie długich linii -i, --interpret* interpretowanie znaków tab, bs i ff --end-of-line=TYP znak końca linii (TYP: r, n, nr, rn, any) -X, --encoding=NAZWA użycie kodowania wejścia NAZWA -t, --title=NAZWA ustawienie nazwy zadania --stdin=NAZWA ustawienie nazwy dla standardowego wejścia --print-anyway* wymuszenie drukowania plików binarnych -Z, --delegate* delegowanie plików do innych aplikacji --toc[=TEKST] generowanie spisu treści � -o, --output=PLIK drukowanie do PLIKU. Jeśli PLIK to `-', drukowanie na standardowe wyjście. --version-control=METODA wymuszenie METODY kontroli wersji --suffix=PRZYROSTEK wymuszenie rozszerzenia plików zapasowych -P, --printer=NAZWA drukowanie na drukarce NAZWA -d drukowanie na domyślnej drukarce (zachowanie domyślne) � -q, --quiet, --silent tryb cichy -v, --verbose[=STOPIEŃ] gadatliwość [w danym STOPNIU] -=, --user-option=OPCJA użycie zdefiniowanego przez użytkownika skrótu OPCJI --debug tryb diagnostyczny -D, --define=KLUCZ[:WARTOŚĆ] skasowanie makra KLUCZ lub ustawienie na podaną WARTOŚĆ � cel = %s kontrola wersji = %s rozszerzenie kopii zapasowych = %s � nagłówek = %s lewa stopka = %s stopka = %s prawa stopka = %s lewy tytuł = %s tytuł centralny = %s prawy tytuł = %s tło = %s � znacznik magiczny = %s opis drukarki (PPD) = %s domyślny PPD = %s format numeracji stron = %s liczba kopii = %u stron na kartkę = %s definicje `page device' = �Strony: domyślny papier = %s, %s rozmieszczenie na stronie = %zu x %zu, %s ramki = %s tryb zwarty = %s wewnętrzny margines = %u � numerowanie linii = %s format = %s wielkość tabulacji = %u format niedrukowalnych = %s � page prefeed = %s � definicje `statusdict' = � styl = %s symbole graficzne = %s usuwanie komentarzy = %d � przycinanie linii = %s interpretacja = %s koniec linii = %s domyślne kodowanie = %s tytuł dokumentu = %s domyślny prolog = %s drukuj pliki binarne = %s delegacja = %s � poziom gadatliwości = %u polecenie `file' = %s ścieżka do biblioteki = �%A %e %B %Y�%e.%m.%Y�%s wydelegowane do %s�%s: za długi argument do dyrektywy %s%c�%s: niepoprawny separator `%s%c' do dyrektywy %s�%s: brak '%c' do dyrektywy %s%c�%s: za długi argument dla dyrektywy %s�%s: w `%s' nieznana dyrektywa `%c' (%d)�%u znaków na linię�%u linii na stronę�Po wykonaniu zadania kończy działanie z sukcesem. Więcej informacji na dany TEMAT można uzyskać poprzez --list=TEMAT �Aplikacje skonfigurowane do delegacji�Domyślnie a2ps jest dostrojony do tego, co chcemy zrobić, wystarczy mu zaufać. Aby ładnie wydrukować zawartość katalogu `src' i spis treści oraz wysłać wynik na drukarkę `lw', wystarczy: $ a2ps -P lw --toc src/* Aby przetworzyć pliki `sample.ps' i `sample.html' oraz wyświetlić wynik: $ a2ps -P display sample.ps sample.html Aby przetworzyć mailbox po 4: $ a2ps -=mail -4 mailbox Aby wydrukować jako broszurę na domyślnej drukarce obsługującej duplex: $ a2ps -=book paper.dvi.gz -d�Stan konfiguracyjny %s %s �Domyślna drukarka�Delegacja `%s', z %s do %s �Tablica dynamiczna `%s': �Łańcuch dynamiczny: �Zachowanie globalne: �Nagłówki: �Nagłówki: �Wejście: �Stan wewnętrzny: �Znane systemy kodowania�Znane fonty�Znane media�Znane cele wyjściowe (drukarki itp.)�Znane opisy drukarek (PPD)�Znane prologi�Znane style�Znane opcje użytkownika�Znane zmienne�Nazwa�Wyjście: �Strona %zu�Strona %zu/%c�Strona %zu/%zu�PostScript: �Drukowanie z dekoracją: �Wydrukował %s�Wydrukował %s z %s�Strony: �Spis treści�Zadania: �TEKSTY mogą korzystać z sekwencji specjalnych. �Opcje -1 ... -9 zmieniają różne proste parametry ustawiając na predefiniowane rozmieszczenia z 80 kolumnami. Tak więc kolejność ma znaczenie: `-R -f40 -2' jest równoznaczne z `-2'. Aby zmienić rozmieszczenie, należy użyć `2Rf40' lub połączyć proste opcje (`--columns', `--font-size' itp.). �Polecenie `%s --help' pozwoli uzyskać więcej informacji �Nieznana drukarka�Nieznany użytkownik�Składnia: %s [OPCJE]... [PLIK]... Konwertuje PLIKI lub standardowe wejście do PostScriptu. Domyślnie wynik jest wysyłany do domyślnej drukarki. Plik wynikowy można określić opcją -o. Obowiązkowe argumenty dla długich opcji są obowiązkowe także dla krótkich. Długie opcje zaznaczone `*' wymagają argumentu typu tak/nie; odpowiednie krótkie opcje znaczą `tak'. �Poprawnymi argumentami są liczby rzeczywiste f, dla których: %s �Poprawnymi argumentami są liczby całkowite n, dla których: %s �Strony wirtualne: �Przy włączonych delegacjach a2ps może używać innej aplikacji do przetwarzania plików, które nie powinny być drukowane jako surowa informacja, np. HTML, PostScript, PDF itp. �[%s (%s): %zu stron na %zu kartkach] �[%s (%s): %zu stron na 1 kartce] �[%s (%s): 1 strona na 1 kartce] �[%s (%s): niepowodzenie. Ignorowany] �[%s (binarny): ignorowany] �[%s (niedrukowalny): ignorowany] �[%zu linii zawiniętych] �[1 linia zawinięta] �[Nic nie wytworzone] �[Wszystkich: %zu stron na %zu kartkach] %s �[Wszystkich: %zu stron na 1 kartce] %s �[Wszystkich: 1 strona na 1 kartce] %s �`%s' jest plikiem binarnym, drukowanie anulowane�`%s' jest katalogiem�`%s' bez odpowiadającego mu `%s'�automatyczny wybór stylu anulowany�nie mogłem zamknąć katalogu `%s'�nie można skompilować wyrażenia regularnego `%s': %s�nie można utworzyć pliku `%s'�nie mogę znaleźć pliku `%s'�nie można znaleźć stylu `%s': użyto stylu prostego�nie można uzyskać katalogu bieżącego�nie można przeczytać informacji o pliku `%s'�nie można otworzyć potoku na `%s'�nie można otworzyć pliku `%s'�nie można przetworzyć `%s' wymagającego a2ps w wersji %s�nie można przemianować pliku `%s' na `%s'�daszek (`^C', `M-^C' itd.)�najpierw kolumny�wymiary�co %u linii�każdą linię�emacs (`C-c', `M-C-c' itd.)�koniec linii wewnątrz %s�koniec linii w ciągu znaków�błąd podczas uruchamiania file(1)�czcionka %f za duża�rozmiar czcionki %gpt�wysoki�szesnastkowo (`\x0a' itd.)�niekompletna znajomość styli czcionek�niepoprawny argument `%s' dla opcji `%s'�błędny styl czcionki `%s'�niedozwolony przedział `%s'�błędna opcja `%s'�niepoprawny identyfikator zmiennej `%s'�niedozwolona wersja `%s'�papier poziomy�pamięć wyczerpana�brakuje argumentu dla `%s'�bez kopii zapasowych�nie�brak polecenia dla `%s' (%s%s)�nie zdefiniowano klucza dla `%s'�brak�średni�kopie numerowane każdego pliku�kopie numerowane plików ponumerowanych, i proste innych�ósemkowo (`\001' itd.)�rozkaz wyjściowy�standard�papier pionowy�znak zapytania (`?')�dostałem sygnał SIG%s�odtworzony plik `%s'�najpierw wiersze�zapisano w pliku `%s'�wybór automatyczny�wysłano na domyślną drukarkę�wysłano do drukarki `%s'�wysłano na standardowe wyjście�prosta kopia zapasowa każdego pliku�spacja (` ')�za dużo dołączeń�zbyt dużo skośnych fontów: `%s'�nieoczekiwany znak `%c'�nieznane kodowanie `%s'�nieznane medium `%s'�nieznana opcja użytkownika `%s'�użytkownik�tak�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/pl.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000102617�14445132165�010747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Polish translation for a2ps. # Copyright (C) 1997, 1998, 2008, 2022 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Copyright (C) 1997, 1998 by Juliusz Chroboczek # Jakub Bogusz <qboosh@pld-linux.org>, 2003-2023 msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-01-27 17:01+0100\n" "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "brakuje argumentu dla `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "nie można utworzyć pliku `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "nie można otworzyć potoku na `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegacja `%s', z %s do %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplikacje skonfigurowane do delegacji" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' jest katalogiem" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "nie można otworzyć pliku `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "nie można przeczytać informacji o pliku `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 strona na 1 kartce]\n" # FIXME: ngettext for plurals #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu stron na 1 kartce]\n" # FIXME: ngettext for plurals #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu stron na %zu kartkach]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Wszystkich: 1 strona na 1 kartce] %s\n" # FIXME: ngettext for plurals #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Wszystkich: %zu stron na 1 kartce] %s\n" # FIXME: ngettext for plurals #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Wszystkich: %zu stron na %zu kartkach] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 linia zawinięta]\n" # FIXME: ngettext for plurals #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu linii zawiniętych]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Nic nie wytworzone]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s wydelegowane do %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): niepowodzenie. Ignorowany]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (niedrukowalny): ignorowany]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binarny): ignorowany]\n" #: src/generate.c:350 msgid "plain" msgstr "standard" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "koniec linii w ciągu znaków" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "koniec linii wewnątrz %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "dostałem sygnał SIG%s" #: src/main.c:235 msgid "heavy" msgstr "wysoki" #: src/main.c:239 msgid "normal" msgstr "średni" #: src/main.c:243 msgid "none" msgstr "brak" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "tak" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "nie" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Stan konfiguracyjny %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Strony:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" "Strony:\n" " domyślny papier = %s, %s\n" " rozmieszczenie na stronie = %zu x %zu, %s\n" " ramki = %s\n" " tryb zwarty = %s\n" " wewnętrzny margines = %u\n" #: src/main.c:339 msgid "portrait" msgstr "papier pionowy" #: src/main.c:339 msgid "landscape" msgstr "papier poziomy" # FIXME: ngettext for plurals #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u znaków na linię" # FIXME: ngettext for plurals #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u linii na stronę" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "rozmiar czcionki %gpt" #: src/main.c:363 msgid "each line" msgstr "każdą linię" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "co %u linii" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Strony wirtualne:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " numerowanie linii = %s\n" " format = %s\n" " wielkość tabulacji = %u\n" " format niedrukowalnych = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Nagłówki:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " nagłówek = %s\n" " lewa stopka = %s\n" " stopka = %s\n" " prawa stopka = %s\n" " lewy tytuł = %s\n" " tytuł centralny = %s\n" " prawy tytuł = %s\n" " tło = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Wejście:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " przycinanie linii = %s\n" " interpretacja = %s\n" " koniec linii = %s\n" " domyślne kodowanie = %s\n" " tytuł dokumentu = %s\n" " domyślny prolog = %s\n" " drukuj pliki binarne = %s\n" " delegacja = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "wybór automatyczny" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Drukowanie z dekoracją:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " styl = %s\n" " symbole graficzne = %s\n" " usuwanie komentarzy = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "bez kopii zapasowych" #: src/main.c:456 msgid "simple backups of every file" msgstr "prosta kopia zapasowa każdego pliku" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "kopie numerowane plików ponumerowanych,\n" " i proste innych" #: src/main.c:466 msgid "numbered backups of every file" msgstr "kopie numerowane każdego pliku" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Wyjście:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " cel = %s\n" " kontrola wersji = %s\n" " rozszerzenie kopii zapasowych = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " znacznik magiczny = %s\n" " opis drukarki (PPD) = %s\n" " domyślny PPD = %s\n" " format numeracji stron = %s\n" " liczba kopii = %u\n" " stron na kartkę = %s\n" " definicje `page device' = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definicje `statusdict' = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " page prefeed = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Stan wewnętrzny:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " poziom gadatliwości = %u\n" " polecenie `file' = %s\n" " ścieżka do biblioteki = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Składnia: %s [OPCJE]... [PLIK]...\n" "\n" "Konwertuje PLIKI lub standardowe wejście do PostScriptu. Domyślnie wynik\n" "jest wysyłany do domyślnej drukarki. Plik wynikowy można określić opcją -o.\n" "\n" "Obowiązkowe argumenty dla długich opcji są obowiązkowe także dla krótkich.\n" "Długie opcje zaznaczone `*' wymagają argumentu typu tak/nie; odpowiednie\n" "krótkie opcje znaczą `tak'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Zadania:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version wyświetlenie informacji o wersji\n" " --help wyświetlenie tej pomocy\n" " --guess pokazanie rozpoznanych typów PLIKÓW\n" " --which pokazanie pełnej ścieżki plików bibliotek\n" " o nazwach PLIKI\n" " --glob pokazanie pełnej ścieżki plików bibliotek\n" " pasujących do PLIKÓW\n" " --list=defaults wyświetlenie domyślnych ustawień i " "parametrów\n" " --list=TEMAT szczegółowa pomoc na dany TEMAT " "(delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Po wykonaniu zadania kończy działanie z sukcesem. Więcej informacji na dany\n" "TEMAT można uzyskać poprzez --list=TEMAT\n" #: src/main.c:678 msgid "Global:\n" msgstr "Zachowanie globalne:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent tryb cichy\n" " -v, --verbose[=STOPIEŃ] gadatliwość [w danym STOPNIU]\n" " -=, --user-option=OPCJA użycie zdefiniowanego przez użytkownika\n" " skrótu OPCJI\n" " --debug tryb diagnostyczny\n" " -D, --define=KLUCZ[:WARTOŚĆ] skasowanie makra KLUCZ lub ustawienie na\n" " podaną WARTOŚĆ\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAZWA użycie rozmiaru podłoża NAZWA\n" " -r, --landscape druk w trybie poziomym\n" " -R, --portrait druk w trybie pionowym\n" " --columns=ILE liczba kolumn na stronę\n" " --rows=ILE liczba wierszy na stronę\n" " --major=KIERUNEK wypełnianie najpierw wierszy (rows)\n" " lub kolumn (columns)\n" " -1, -2, ..., -9 predefiniowane rozmiary fontów i układ dla\n" " 1...9 stron wirtualnych\n" " -A, --file-align=TRYB sposób rozmieszczenia plików (fill, rank,\n" " page, sheet albo liczba)\n" " -j, --borders* drukowanie ramki wokół kolumn\n" " --margin[=ROZMIAR] wewnętrzny margines danego ROZMIARU\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Opcje -1 ... -9 zmieniają różne proste parametry ustawiając na " "predefiniowane\n" "rozmieszczenia z 80 kolumnami. Tak więc kolejność ma znaczenie: `-R -f40 " "-2'\n" "jest równoznaczne z `-2'. Aby zmienić rozmieszczenie, należy użyć `2Rf40' " "lub\n" "połączyć proste opcje (`--columns', `--font-size' itp.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=ILE drukowanie numerów linii co ILE linii;\n" " -C to samo, co --line-numbers=5\n" " -f, --fontsize=ROZMIAR użycie podanego ROZMIARU czcionki do " "tekstu\n" " -L, --lines-per-page=ILE skalowanie do ILU linii na stronę " "wirtualną\n" " -l, --chars-per-page=ILE skalowanie do ILU kolumn na stronę " "wirtualną\n" " -m, --catman traktowanie pliku jako strony manuala\n" " (to samo, co -L66)\n" " -T, --tabsize=ILE ustawienie rozmiaru tabulacji na ILE " "znaków\n" " --non-printable-format=FMT ustawienie sposobu drukowania znaków\n" " niedrukowalnych\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Nagłówki:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header bez nagłówków stron\n" " -b, --header[=TEKST] ustawianie nagłówka strony\n" " -u, --underlay[=TEKST] drukowanie TEKSTU jako tła każdej strony\n" " --center-title[=TEKST] ustawienie tytułu strony na TEKST\n" " --left-title[=TEKST] ustawienie lewego tytułu strony na TEKST\n" " --right-title[=TEKST] ustawienie prawego tytułu strony na TEKST\n" " --left-footer[=TEKST] ustawienie lewej stopki na TEKST\n" " --footer[=TEKST] ustawienie stopki na TEKST\n" " --right-footer[=TEKST] ustawienie prawej stopki na TEKST\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEKSTY mogą korzystać z sekwencji specjalnych.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ZAKRES] wybór stron do drukowania\n" " -c, --truncate-lines* przycinanie długich linii\n" " -i, --interpret* interpretowanie znaków tab, bs i ff\n" " --end-of-line=TYP znak końca linii (TYP: r, n, nr, rn, any)\n" " -X, --encoding=NAZWA użycie kodowania wejścia NAZWA\n" " -t, --title=NAZWA ustawienie nazwy zadania\n" " --stdin=NAZWA ustawienie nazwy dla standardowego wejścia\n" " --print-anyway* wymuszenie drukowania plików binarnych\n" " -Z, --delegate* delegowanie plików do innych aplikacji\n" " --toc[=TEKST] generowanie spisu treści\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Przy włączonych delegacjach a2ps może używać innej aplikacji do " "przetwarzania\n" "plików, które nie powinny być drukowane jako surowa informacja, np. HTML,\n" "PostScript, PDF itp.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=JĘZYK] drukowanie z dekoracją (użycie stylu " "JĘZYK)\n" " --highlight-level=POZIOM ustawienie POZIOMU dekoracji;\n" " POZIOM jest jednym z none, normal lub " "heavy\n" " -g to samo, co --highlight-level=heavy\n" " --strip-level=ILE poziom eliminacji komentarzy\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=PLIK drukowanie do PLIKU. Jeśli PLIK to `-',\n" " drukowanie na standardowe wyjście.\n" " --version-control=METODA wymuszenie METODY kontroli wersji\n" " --suffix=PRZYROSTEK wymuszenie rozszerzenia plików zapasowych\n" " -P, --printer=NAZWA drukowanie na drukarce NAZWA\n" " -d drukowanie na domyślnej drukarce\n" " (zachowanie domyślne)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=PLIK użycie PLIK.pro jako prologu PostScriptu\n" " --ppd[=KLUCZ] wybór PPD: automatyczny lub KLUCZ\n" " -n, --copies=ILE drukowanie ILU kopii każdej strony\n" " -s, --sides=TRYB tryb duplex (`1' lub `simplex': " "jednostronny,\n" " `2' lub `duplex': dwustronny), `tumble')\n" " -S, --setpagedevice=K[:V] przekazanie definicji `pagedevice' na " "wyjście\n" " --statusdict=K[:[:]V] przekazanie definicji `statusdict' na " "wyjście\n" " -k, --page-prefeed włączenie `page prefeed'\n" " -K, --no-page-prefeed wyłączenie `page prefeed'\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Domyślnie a2ps jest dostrojony do tego, co chcemy zrobić, wystarczy mu " "zaufać.\n" "Aby ładnie wydrukować zawartość katalogu `src' i spis treści oraz wysłać " "wynik\n" "na drukarkę `lw', wystarczy:\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Aby przetworzyć pliki `sample.ps' i `sample.html' oraz wyświetlić wynik:\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "Aby przetworzyć mailbox po 4:\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Aby wydrukować jako broszurę na domyślnej drukarce obsługującej duplex:\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Spis treści" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "nie można przetworzyć `%s' wymagającego a2ps w wersji %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "nieoczekiwany znak `%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "za dużo dołączeń" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "nie zdefiniowano klucza dla `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "nie mogę znaleźć pliku `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "automatyczny wybór stylu anulowany" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "błąd podczas uruchamiania file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "nie można skompilować wyrażenia regularnego `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Znane style" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "nie można znaleźć stylu `%s': użyto stylu prostego" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "niedozwolona wersja `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "spacja (` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "ósemkowo (`\\001' itd.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "szesnastkowo (`\\x0a' itd.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "daszek (`^C', `M-^C' itd.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (`C-c', `M-C-c' itd.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "znak zapytania (`?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Tablica dynamiczna `%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tładowanie: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\trozmiar oryginalny: %zu, powiększenie %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Łańcuch dynamiczny:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "zbyt dużo skośnych fontów: `%s'" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "błędna opcja `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Znane systemy kodowania" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "niekompletna znajomość styli czcionek" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "nie mogłem zamknąć katalogu `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "niepoprawny argument `%s' dla opcji `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Poprawnymi argumentami są liczby całkowite n, dla których: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Poprawnymi argumentami są liczby rzeczywiste f, dla których: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "nieznane kodowanie `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "najpierw wiersze" #: liba2ps/madir.c:54 msgid "columns first" msgstr "najpierw kolumny" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "nieznane medium `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Znane media" #: liba2ps/media.c:189 msgid "Name" msgstr "Nazwa" #: liba2ps/media.c:190 msgid "dimensions" msgstr "wymiary" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Znane zmienne" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: brak '%c' do dyrektywy %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Wydrukował %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Wydrukował %s z %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "nie można uzyskać katalogu bieżącego" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: za długi argument dla dyrektywy %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%e.%m.%Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %e %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: w `%s' nieznana dyrektywa `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Strona %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Strona %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: niepoprawny separator `%s%c' do dyrektywy %s" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: za długi argument do dyrektywy %s%c" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Strona %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "rozkaz wyjściowy" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Polecenie `%s --help' pozwoli uzyskać więcej informacji\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "niepoprawny identyfikator zmiennej `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "błędny styl czcionki `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' bez odpowiadającego mu `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Znane fonty" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Brak.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Znane opisy drukarek (PPD)" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "niedozwolony przedział `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Domyślna drukarka" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Nieznana drukarka" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "brak polecenia dla `%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "wysłano na standardowe wyjście" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "wysłano na domyślną drukarkę" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "zapisano w pliku `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "wysłano do drukarki `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Znane cele wyjściowe (drukarki itp.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Znane prologi" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "czcionka %f za duża" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' jest plikiem binarnym, drukowanie anulowane" #: liba2ps/userdata.c:104 msgid "user" msgstr "użytkownik" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Nieznany użytkownik" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "nieznana opcja użytkownika `%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Znane opcje użytkownika" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "pamięć wyczerpana" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "nie można przemianować pliku `%s' na `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "odtworzony plik `%s'" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1988-2017 Free Software Foundation, Inc." �����������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/pt.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000025276�14445132166�011131� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v��y��z�� �����r��������t��!���-�����O��Q���n������� ����������(�����.�����"�����,���5��&���b��&����� �������������������� ����� ����� ���*�����4�����H�����`�����r��0�����/������������������ �����)�����>�����C�� ���K�����X�����n�����~������������ �����(���������)��� �����!!�����9!��/���Q!��2���!�����!�����!�����r"�����"�����"��%���"��/���"�����#�� ���:#��.���[#�����#�����#��'���#��$���#��1��� $�����;$��%���[$��B���$��%���$��.���$�����%�����8%��:���X%��.���%�����%�����%�� ���%�� ���%��!���&�����*&�����D&�����[&�����w&�����&�����&��!���&��)���&�����'��!���'�����7'��'���K'�����s'�����'�����'�����'�����'�����'�����'�����(�����!(��3���((��j���\(�����(�����(�����(�����(�����)�����)�����4)�����D)�����a)��%���~)�����)�����)��1���)�����*�����&*�����;*�����T*�����r*��%���*�� ���*�����*�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.12 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2000-01-14 10:48+01:00 Last-Translator: Paulo Matos <pjsm@students.fct.unl.pt> Language-Team: Portuguese <pt@li.org> Language: pt MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. � Nenhuma. � destino = %s controlo de verso = %s sufixo das cpias de segurana = %s � cabealho = %s rodap esquerdo = %s rodap = %s rodap direito = %s ttulo esquerdo = %s ttulo central = %s ttulo direito = %s por baixo = %s � prefeed da pgina = %s � definies do statusdict = � folha de estilo = %s nvel de formatao = %s nvel de corte = %d � truncar linhas = %s interpretar = %s fim de linha = %s codificao = %s ttulo do documento = %s prlogo = %s imprimir sempre = %s delegar = %s �%A %d %B %Y�%s, delegado para %s�%s: argumentos invlido para escape %s%c�%s: separador invlido `%s%c' para escape `%s'�%s: `%c' em falta para escape %s%c�%s: argumento demasiado longo para escape %s�%s: escape `%s' desconhecido `%c' (%d)�Aplicaes configuradas para delegao�Status de configurao do %s %s �Impressora por Omisso�Delegao `%s', de %s para %s �Global: �Cabealhos: �Cabealhos: �Entrada: �Detalhes internos: �Codificaes conhecidas�Fontes Conhecidas�Meio conhecido�Destinos de sada conhecidos (impressoras, etc.)�Descries de Impressoras PostScript conhecidas�Prlogos conhecidos�Estilos conhecidos�Opes de utilizador conhecidas�Variveis Conhecidas�Nome�Sada: �PostScript: �Impresso melhorada: �Impresso por %s�Impresso por %s de %s�Folhas: �ndice�Tarefas: �O TEXTo pode usar caracteres de escape. �As opes -1.. -9 afectam vrios parmetros primitivos usados na pr-definio de layouts com 80 colunas. Portanto a ordem relevante: `-R -f40 -2' equivalente a `-2'. Para modificar o layout, use `-2Rf40', ou faa composio de opes primitivas (`--columns', `--font-size' etc.). �Tente `%s --help' para mais informaes. �Impressora Desconhecida�Utilizador Desconhecido�Argumentos vlidos so reais f de modo que: %s �Argumentos vlidos so inteiros n de modo que: %s �Pginas virtuais: �Quando as delegaes esto activas, o a2ps pode usar outras aplices para processar os ficheiros que no devam ser impressos como texto, e.g., HTML Postscript, PDF etc. �[%s (%s): 1 pgina numa folha] �[%s (%s): falhou. Ignorado] �[%s (binrio): ignorado] �[%s (impossvel imprimir): ignorado] �[1 linha quebrada (excedeu o mx. caracteres)] �[Nenhuma sada produzida] �[Total: 1 pgina numa folha] %s �`%s' um ficheiro binrio, impresso abortada�`%s' uma directoria�`%s' sem ocorrncia de `%s'�seleco automtica de estilo cancelada�no consigo fechar o directrio `%s'�no consigo compilar a expresso regular `%s': %s�no consigo criar ficheiro `%s'�no consigo encontrar o ficheiro `%s'�no consigo achar a folha de estilo `%s': a utilizar estilo normal�no consigo obter o directrio actual�no consigo obter informaes do ficheiro `%s'�no consigo abrir pipe em `%s'�no consigo abrir ficheiro `%s'�No consigo processar `%s' que necessita do a2ps verso %s�no consigo renomear o ficheiro `%s' como `%s'�caret (i.e., `^C', `M-^C' etc.)�colunas primeiro�dimenses�cada linha�emacs (i.e., `C-c', `M-C-c' etc.)�fim de linha dentro de %s�fim de linha em string�fonte %f demasiado grande�tamanho de fonte %gpt�pesado�hexadecimal (i.e., `\x0a' etc.)�conhecimento incompleto das faces�argumento invlido `%s' para a opo `%s'�face `%s' invlida�intervalo de inteiros ilegal `%s'�opo invlida `%s'�identificador de varivel invlido `%s'�nmero de verso ilegal `%s'�paisagem�argumento em falta para `%s'�nunca fazer cpias de segurana�no�nenhum comando para `%s' (%s%s)�no h chave definida para `%s'�nenhum�normal�cpias de segurana numeradas de todos os ficheiros�cpias de segurana numeradas dos ficheiros j numerados, e simples dos outros�octal (i.e., `\001' etc.)�comando de sada�normal�retrato�interrogao (i.e., `?')�restaurei o ficheiro `%s'�linhas primeiro�gravado para o ficheiro `%s'�seleccionada automticamente�enviado para a impressora por omisso�enviado para a impressora `%s'�enviar para o standard output�cpias de segurana simples de todos os ficheiros�espao (i.e., ` ')�demasiadas incluses�caracter `%c' inesperado�codificao `%s' desconhecida�meio desconhecido `%s'�opo do utilizador `%s' desconhecida�utilizador�sim�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/pt.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000130156�14445132165�010756� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mensagens em Portugus nativo para o a2ps. # Copyright (C) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (C) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana # # Pedro Morais <pmmm@camoes.rnl.ist.utl.pt>, 2000. # Paulo Matos <pjsm@students.fct.unl.pt>, 2000. msgid "" msgstr "" "Project-Id-Version: a2ps 4.12\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2000-01-14 10:48+01:00\n" "Last-Translator: Paulo Matos <pjsm@students.fct.unl.pt>\n" "Language-Team: Portuguese <pt@li.org>\n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "argumento em falta para `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "no consigo criar ficheiro `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "no consigo abrir pipe em `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegao `%s', de %s para %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplicaes configuradas para delegao" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' uma directoria" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "no consigo abrir ficheiro `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "no consigo obter informaes do ficheiro `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 pgina numa folha]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d pginas numa folha]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d pginas em %d folhas]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 pgina numa folha] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Total: %d pginas numa folha] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Total: %d pginas em %d folhas] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 linha quebrada (excedeu o mx. caracteres)]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d linhas quebradas (excedeu o mx. caracteres)]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Nenhuma sada produzida]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegado para %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): falhou. Ignorado]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (impossvel imprimir): ignorado]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binrio): ignorado]\n" #: src/generate.c:350 msgid "plain" msgstr "normal" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "fim de linha em string" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "fim de linha dentro de %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "recebi o sinal %d: %s" #: src/main.c:235 msgid "heavy" msgstr "pesado" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "nenhum" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "sim" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "no" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Status de configurao do %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Folhas:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " meio = %s%s, %s\n" " layout da pgina = %d x %d, %s\n" " rebordos = %s\n" " modo compacto = %s\n" " margem interior = %d\n" #: src/main.c:339 msgid "portrait" msgstr "retrato" #: src/main.c:339 msgid "landscape" msgstr "paisagem" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d caracteres por linha" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d linhas por pgina" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "tamanho de fonte %gpt" #: src/main.c:363 msgid "each line" msgstr "cada linha" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "cada %d linhas" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Pginas virtuais:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " nmeros de linha = %s\n" " formato = %s\n" " tamanho de tabulao = %d\n" " formato no imprimvel = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Cabealhos:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " cabealho = %s\n" " rodap esquerdo = %s\n" " rodap = %s\n" " rodap direito = %s\n" " ttulo esquerdo = %s\n" " ttulo central = %s\n" " ttulo direito = %s\n" " por baixo = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Entrada:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " truncar linhas = %s\n" " interpretar = %s\n" " fim de linha = %s\n" " codificao = %s\n" " ttulo do documento = %s\n" " prlogo = %s\n" " imprimir sempre = %s\n" " delegar = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "seleccionada automticamente" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Impresso melhorada:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " folha de estilo = %s\n" " nvel de formatao = %s\n" " nvel de corte = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "nunca fazer cpias de segurana" #: src/main.c:456 msgid "simple backups of every file" msgstr "cpias de segurana simples de todos os ficheiros" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "cpias de segurana numeradas dos ficheiros j numerados,\n" " e simples dos outros" #: src/main.c:466 msgid "numbered backups of every file" msgstr "cpias de segurana numeradas de todos os ficheiros" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Sada:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destino = %s\n" " controlo de verso = %s\n" " sufixo das cpias de segurana = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " nmero mgico = %s\n" " descrio da impressora (PPD) = %s\n" " PPD por omisso = %s\n" " formato da etiqueta de pgina = %s\n" " nmero de cpias = %d\n" " lados por folha = %s\n" " definies do dispositivo de pgina = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definies do statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " prefeed da pgina = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Detalhes internos:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " nvel de mensagens = %d\n" " comando de ficheiro = %s\n" " caminho da biblioteca = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Utilizao: %s [OPES]... [FICHEIRO]...\n" "\n" "Converte FICHEIRO(s) ou o standard input para PostScript.\n" "\n" "Argumentos obrigatrios para opes longas tambm o so para as curtas.\n" "Opes longas marcadas com * necessitam de um argumento yes/no,\n" "opes curtas correspondentes significam `yes'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tarefas:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version mostra a verso\n" " --help mostra esta ajuda\n" " --guess mostra tipos adivinhados dos FICHEIROS\n" " --which mostra o caminho completo dos ficheiros de biblioteca\n" " chamados FICHEIROS\n" " --glob mostra o caminho completo dos ficheiros de biblioteca\n" " conforme FICHEIROS\n" " --list=defaults mostra as definies e parmetros por omisso\n" " --list=TPICO mostra lista detalhada sobre o TPICO (`delegations',\n" " `encodings', `features', `variables', `media', `ppd',\n" " `printers', `prologues', `style-sheets', `user-options')\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Aps ter realizado a tarefa, termina com sucesso. Listas detalhadas podem\n" "forneer informao adicional em funcionalidades especficas.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent realmente silencioso\n" " -v, --verbose[=NVEL] liga mensagens, ou pe no NVEL\n" " -=, --user-option=OPO usa o atalho defindo pelo utilizador OPO\n" " --debug liga funes de debug\n" " -D, --define=CHAVE[:VALOR] limpa a variavel CHAVE ou associa-lhe VALOR\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NOME utiliza medium de sada NOME\n" " -r, --landscape imprime em modo paisagem\n" " -R, --portrait imprime em modo retrato\n" " --columns=NUM nmero de colunas por folha\n" " --rows=NUM nmero de linhas por folha\n" " --major=DIRECO enche primeiro (DIRECO=) linhas, ou colunas\n" " -1, -2, ..., -9 layouts predefinidos para 1.. 9 pginas virtuais\n" " -A, --file-align=MODO alinha ficheiro separados pelo MODO (fill, rank\n" " page, sheet, ou um nmero)\n" " -j, --borders* imprime margens volta das colunas\n" " --margin[=NUM] define uma margem interior de tamanho NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "As opes -1.. -9 afectam vrios parmetros primitivos usados na pr-" "definio\n" "de layouts com 80 colunas. Portanto a ordem relevante: `-R -f40 -2' \n" "equivalente a `-2'. Para modificar o layout, use `-2Rf40', ou faa " "composio\n" "de opes primitivas (`--columns', `--font-size' etc.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM precede cada NUM linhas com o seu nmero\n" " -C atalho para --line-numbers=5\n" " -f, --font-size=TAMANHO utiliza TAMANHO de fonte (real) para o texto\n" " -L, --lines-per-page=NUM nmero de linhas que so impressas por pgina\n" " -l, --chars-per-line=NUM nmero de colunas que so impressas por pgina\n" " -m, --catman processa o ficheiro como um man (igual a -L66)\n" " -T, --tabsize=NUM colocar tamanho da tabulao a NUM\n" " --non-printable-format=FMT especifica como caracteres no imprimveis o " "so\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Cabealhos:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header sem cabealhos de pgina\n" " -b, --header[=TEXTO] define o cabealho da pgina\n" " -u, --underlay[=TEXTO] imprime TEXTO por baixo de cada pgina\n" " --center-title[=TEXTO] define ttulo da pgina como TEXTO\n" " --left-title[=TEXTO] define ttulo esquerdo e direito como TEXTO\n" " --right-title[=TEXTO]\n" " --left-footer[=TEXTO] define rodap das falhas como TEXTO\n" " --footer[=TEXTO]\n" " --right-footer[=TEXTO]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "O TEXTo pode usar caracteres de escape.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=PGINAS] selecciona pginas a imprimir\n" " -c, --truncate-lines* corta linhas longas\n" " -i, --interpret* interpreta caracteres tab, bs e ff\n" " --end-of-line=TIPO especifica o char de eol (TIPO: r, n, nr, rn, " "any)\n" " -X, --encoding=NOME utiliza a codificao de entrada NOME\n" " -t, --title=NOME define o nome do trabalho\n" " --stdin=NOME define o nome do ficheiro de entrada stdin\n" " --print-anyway* fora impresso de binrios\n" " -Z, --delegate* delega ficheiros para outra aplicao\n" " --toc=[TEXTO] gera uma tabela de contedos\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Quando as delegaes esto activas, o a2ps pode usar outras aplices para\n" "processar os ficheiros que no devam ser impressos como texto, e.g., HTML\n" "Postscript, PDF etc.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LING] activa pretty-printing (define o estilo como " "LING)\n" " --highlight-level=LEVEL define o NVEL de formatao da impresso\n" " NVEL pode ser none, normal ou heavy\n" " -g atalho para --highlight-level=heavy\n" " --strip-level=NUM nvel de corte de comentrios\n" #: src/main.c:767 #, fuzzy msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FICHEIRO deixar sada no FICHEIRO. Se o ficheiro `-',\n" " deixar sada para o stdout.\n" " --version-control=WORD define o controlo de verses\n" " --suffix=SUFIXO define o sufixo de backup\n" " -P, --printer=NOME manda a sada para a impressora NOME\n" " -d manda a sada para a impressora por omisso\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FICHEIRO inclui FICHEIRO.pro como um prlogo PostScript\n" " --ppd[=CHAVE] seleco automtica de PPD ou define-a como " "CHAVE\n" " -n, --copies=NUM imprimir NUM cpias de cada pgina\n" " -s, --sides=MODO configura o MODO duplex (`1' ou `simplex',\n" " `2' ou `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] passa uma definio de disposito para a sada\n" " --statusdict=K[:[:]V] passa uma definio statusdict para a sada\n" " -k, --page-prefeed activar alimentao de pgina\n" " -K, --no-page-prefeed desactivar alimentao de pgina\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Por omisso o a2ps j est configurado com funcionalidades interessantes.\n" "Para uma impresso melhorada do contedo da directoria `src' e um ndice,\n" "enviando o resultado para a impressora `lw',\n" "\n" " a2ps -P lw --toc src/*\n" "\n" "Para processar os ficheiros `sample.ps' e `sample.html' e visulizar,\n" "\n" " a2ps -P display sample.ps sample.html\n" "\n" "Para processar uma mailbox com 4 pginas/folha em modo retrato,\n" "\n" " a2ps -=mail -4 mailbox\n" "\n" "Para imprimir como brochura na impressora por omisso, que suporta Duplex,\n" "\n" " a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "ndice" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "No consigo processar `%s' que necessita do a2ps verso %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "caracter `%c' inesperado" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "demasiadas incluses" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "no h chave definida para `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "no consigo encontrar o ficheiro `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "seleco automtica de estilo cancelada" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "no consigo compilar a expresso regular `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Estilos conhecidos" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "no consigo achar a folha de estilo `%s': a utilizar estilo normal" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "nmero de verso ilegal `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "espao (i.e., ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (i.e., `\\001' etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (i.e., `\\x0a' etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (i.e., `^C', `M-^C' etc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e., `C-c', `M-C-c' etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "interrogao (i.e., `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "opo invlida `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Codificaes conhecidas" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "conhecimento incompleto das faces" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "no consigo fechar o directrio `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argumento invlido `%s' para a opo `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Argumentos vlidos so inteiros n de modo que: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Argumentos vlidos so reais f de modo que: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "codificao `%s' desconhecida" #: liba2ps/madir.c:51 msgid "rows first" msgstr "linhas primeiro" #: liba2ps/madir.c:54 msgid "columns first" msgstr "colunas primeiro" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "meio desconhecido `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Meio conhecido" #: liba2ps/media.c:189 msgid "Name" msgstr "Nome" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimenses" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variveis Conhecidas" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: `%c' em falta para escape %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Impresso por %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Impresso por %s de %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "no consigo obter o directrio actual" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argumento demasiado longo para escape %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%d %b %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: escape `%s' desconhecido `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Pgina %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Pgina %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separador invlido `%s%c' para escape `%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argumentos invlido para escape %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Pgina %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "comando de sada" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Tente `%s --help' para mais informaes.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificador de varivel invlido `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "face `%s' invlida" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' sem ocorrncia de `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Fontes Conhecidas" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Nenhuma.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Descries de Impressoras PostScript conhecidas" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "intervalo de inteiros ilegal `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Impressora por Omisso" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Impressora Desconhecida" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "nenhum comando para `%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "enviar para o standard output" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "enviado para a impressora por omisso" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "gravado para o ficheiro `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "enviado para a impressora `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Destinos de sada conhecidos (impressoras, etc.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Prlogos conhecidos" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "fonte %f demasiado grande" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' um ficheiro binrio, impresso abortada" #: liba2ps/userdata.c:104 msgid "user" msgstr "utilizador" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Utilizador Desconhecido" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "opo do utilizador `%s' desconhecida" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Opes de utilizador conhecidas" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Falta de memria" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "no consigo renomear o ficheiro `%s' como `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "restaurei o ficheiro `%s'" #~ msgid "any type" #~ msgstr "qualquer tipo" #, fuzzy #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Novidades, actualizaes e documentao:\n" #~ "visite http://www.inf.enst.fr/~demaille/a2ps/\n" #~ "Envie comentrios sobre a traduo para <pjsm@students.fct.unl.pt>\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Envie informaes sobre erros para <bug-a2ps@gnu.org>\n" #~ "Envie problemas de traduo para <pjsm@students.fct.unl.pt>\n" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright 1988-93 Miguel Santana\n" #~ "Copyright 1995-99 Akim Demaille, Miguel Santana" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "codificao `%s' desconhecida, ignorada" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Impresso por %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Este programa free software; veja o cdigo fonte para saber em que\n" #~ "condies o pode copiar. SEM GARANTIA; nem mesmo de COMERCIALIZAO ou\n" #~ "de UTILIDADE PARA QUALQUER PROPSITO.\n" #~ msgid "write error" #~ msgstr "erro de escrita" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "definio invlida para a impressora `%s': %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "entrada `%s' obsoleta. Ignorada" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Pgina %d/%d" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "argumento %s invlido para a opo `%s'" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argumento %s ambguo para a opo `%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Argumentos vlidos so:" #~ msgid "Unknown system error" #~ msgstr "Erro de sistema desconhecido" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: opo `%s' ambgua\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: opo `--%s' no permite argumentos\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: opo `%c%s' no permite argumentos\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: opo `%s' necessita de um argumento\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: opo desconhecida `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: opo desconhecida `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opo ilegal -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: opo invlida -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: opo necessita de um argumento -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: opo `-W %s' ambigua\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: opo `-W %s' no permite argumentos\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "fim de linha em expresses regular" #~ msgid "end-of-line in regular expression" #~ msgstr "fim de linha em expresses regular" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "\n" #~ "Copyright 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana\n" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "Tarefas (termina com sucesso):\n" #~ msgid "" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 3, or (at your option)\n" #~ "any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License\n" #~ "along with this program; if not, write to the Free Software Foundation,\n" #~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ msgstr "" #~ "Este programa free software; pode redistribu-lo e/ou modific-lo\n" #~ "nos termos previstos na licena da GNU (GNU General Public License),\n" #~ "publicada pela Free Software Foundation; de acordo com a verso 2 ou,\n" #~ "se preferir, qualquer outra mais recente.\n" #~ "\n" #~ "Este programa distribuido na esperana de que lhe seja til, mas\n" #~ "SEM QUALQUER GARANTIA; nem mesmo a garantia implcita de COMERCIALIZAO\n" #~ "ou UTILIDADE PARA QUALQUER PROPSITO. Para mais informaes consulte a\n" #~ "GNU General Public License.\n" #~ "\n" #~ "Deve ter recebido uma cpia da licena GNU General Public License " #~ "junto\n" #~ "com este programa; se assim no for, escreva para Free Software\n" #~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, " #~ "EUA.\n" #~ msgid "" #~ "Written by <Akim.Demaille@inf.enst.fr> and <Miguel.Santana@st.com>.\n" #~ msgstr "Escrito por <Akim.Demaille@inf.enst.fr> e <Miguel.Santana@st.com>\n" #~ msgid "no default command for option `-d'" #~ msgstr "nenhum comando por omisso para a opo `-d'" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/pt_BR.gmo����������������������������������������������������������������������������0000644�0000000�0000000�00000026011�14445132166�011500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�� ���c��R���p�������+�����(�����O��������(����� �������(���4��/���]��"�����(�����&�����)������"���*�����M�� ���`������� ����� ����� ����� ��������������������%�����2��� �����S�����h���������������������� ����������������������� ����� �� ���# ��,���- ��,��Z ��3���!�����!�����!��F���!��<���0"�����m"�����"�� ���b#�����#�����#��"���#�����#�����#��!���$��1���1$�����c$�����y$��)���$��"���$��2���$��'���%��$���>%��I���c%��0���%��6���%��(���&��'���>&��;���f&��5���&��(���&�����'�� ���'�� ���'��$���('�����M'��%���g'�����'�����'�����'��"���'��!���'��"���(�����3(�����G(�����`(��)���w(��!���(�����(�����(��&���(�����)��!���)�� ���7)�����X)�����_)��/���f)��h���)�����)�����*�����.*�����6*��&���>*�����e*�����}*�����*�����*��!���*�����*������+��-���+�����L+�����c+�����+�����+�����+��%���+�����+�����,�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2018-04-21 23:27-0200 Last-Translator: Rafael Fontenelle <rafaelff@gnome.org> Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net> Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Virtaal 1.0.0-beta1 X-Bugs: Report translation errors to the Language-Team address. � Nenhuma. � destino = %s controle de versão = %s sufixo de backup = %s � cabeçalho = %s rodapé esquerdo = %s rodapé = %s rodapé direito = %s título esquerdo = %s título central = %s título direito = %s fundo = %s � página pré-alimentada = %s � definições statusdict = � folha de estilos = %s nível de brilho = %s nível de remoção = %d � truncar linhas = %s interpretar = %s fim de linha = %s codificar = %s título do documento = %s prólogo = %s imprimir binário = %s delegar = %s �%A, %d de %B de %Y�%s, delegado para %s�%s: argumento inválido para escape %s%c�%s: separador inválido "%s%c" para escape "%s"�%s: faltando "%c" para escape %s%c�%s: argumento muito longo para %s escape�%s: desconhecido "%s" escape "%c" (%d)�Aplicativos configurados para delegação�Status da configuração do %s %s �Impressora Padrão�Delegação "%s", de %s para %s �Global: �Cabeçalhos: �Cabeçalhos: �Entrada: �Internos: �Codificações Conhecidas�Fontes Conhecidas�Mídias Conhecidas�Saídas Conhecidas (Impressoras etc.)�Descrições das Impressoras PostScript Conhecidas�Prólogos Conhecidos�Folhas de Estilo Conhecidas�Opções do Usuário Conhecidas�Variáveis Conhecidas�Nome�Saída: �PostScript: �Impressão elegante: �Impresso por %s�Impresso por %s de %s�Folhas: �Sumário�Tarefas: �Os TEXTOs podem utilizar escapes especiais. �As opções -1.. -9 afetam vários parâmetros primitivos de inicialização para layouts predefinidos de 80 colunas. Portanto, a ordem faz diferença: `-R -f40 -2' é equivalente a `-2'. Para modificar o layout, use `-2Rf40', ou use opções primitivas compostas (`--columns', `--font-size' etc.). �Utilize "%s --help" para obter mais informações. �Impressora desconhecida�Usuário Desconhecido�Argumentos válidos são números de ponto flutuante f, tais como: %s �Argumentos válidos são números inteiros n, tais como: %s �Páginas virtuais: �Quando as delegações estão habilitadas, a2ps pode utilizar outros aplicativos para manipular o processamento de arquivos que não devem ser impressos antes de serem tratados como, por exemplo, HTML, PostScript, PDF etc. �[%s (%s): 1 página em 1 folha] �[%s (%s): falhou. Ignorado] �[%s (binário): ignorado] �[%s (não imprimível): ignorado] �[1 linha quebrada] �[Nenhuma saída produzida] �[Total: 1 página em 1 folha] %s �"%s" é um arquivo binário, impressão cancelada�"%s" é um diretório�"%s" sem correspondente "%s"�seleção automática de estilo cancelada�impossível fechar diretório "%s"�impossível compilar a expressão regular "%s": %s�não foi possível criar o arquivo "%s"�impossível encontrar o arquivo "%s"�impossível localizar a folha de estilo "%s": utilizando o estilo simples�impossível obter o diretório de trabalho atual�não foi possível obter informações no arquivo "%s"�não foi possível abrir um pipe em "%s"�não foi possível abrir o arquivo "%s"�impossível processar "%s" que necessita do a2ps versão %s�impossível mudar o nome do arquivo de "%s" para "%s"�circunflexo (ou seja, "^C", "M-^C" etc.)�colunas primeiro�dimensões�cada linha�emacs (ou seja, "C-c", "M-C-c" etc.)�fim de linha dentro de %s�fim de linha em constante tipo string�a fonte %f é muito grande�o tamanho da fonte é %gpt�intenso�hexadecimal (ou seja, "\x0a" etc.)�conhecimento incompleto das faces�argumento inválido "%s" para "%s"�face inválida "%s"�intervalo inválido "%s"�opção inválida "%s"�identificador inválido de variável "%s"�número de versão inválida "%s"�paisagem�argumento faltando para "%s"�cópias de segurança nunca realizadas�não�nenhum comando para o "%s" (%s%s)�nenhuma chave definida para "%s"�nenhum�normal�cópias de segurança numeradas de cada arquivo�cópias de segurança numeradas dos arquivos já numerados, e simples dos outros�octal (ou seja, "\001" etc.)�comando de saída�simples�retrato�ponto de interrogação (ou seja, "?")�arquivo restaurado "%s"�linhas primeiro�salvo no arquivo "%s"�selecionado automaticamente�enviado para a impressora padrão�enviado para a impressora "%s"�enviado para a saída padrão�cópias de segurança simples de cada arquivo�espaço (ou seja, " ")�número excessivo de inclusões�caractere inesperado "%c"�codificação desconhecida "%s"�mídia desconhecida "%s"�opção do usuário desconhecida "%s"�usuário�sim������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/pt_BR.po�����������������������������������������������������������������������������0000644�0000000�0000000�00000130427�14445132165�011342� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Brazilian Portuguese translation for a2ps package # Traduções em português brasileiro para o pacote a2ps # Copyright (C) 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Halley Pacheco de Oliveira <halleypo@ig.com.br>, 2002. # Rafael Fontenelle <rafaelff@gnome.org>, 2017, 2018. msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2018-04-21 23:27-0200\n" "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n" "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge." "net>\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Virtaal 1.0.0-beta1\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "argumento faltando para \"%s\"" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "não foi possível criar o arquivo \"%s\"" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "não foi possível abrir um pipe em \"%s\"" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegação \"%s\", de %s para %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplicativos configurados para delegação" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "\"%s\" é um diretório" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "não foi possível abrir o arquivo \"%s\"" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "não foi possível obter informações no arquivo \"%s\"" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 página em 1 folha]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d páginas em 1 folha]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d páginas em %d folhas]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 página em 1 folha] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Total: %d páginas em 1 folha] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Total: %d páginas em %d folhas] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 linha quebrada]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d linhas quebradas]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Nenhuma saída produzida]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegado para %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): falhou. Ignorado]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (não imprimível): ignorado]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binário): ignorado]\n" #: src/generate.c:350 msgid "plain" msgstr "simples" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "fim de linha em constante tipo string" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "fim de linha dentro de %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "recebido o sinal %d: %s" #: src/main.c:235 msgid "heavy" msgstr "intenso" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "nenhum" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "sim" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "não" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Status da configuração do %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Folhas:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " mídia = %s%s, %s\n" " formato da página = %d x %d, %s\n" " bordas = %s\n" " alinhamento do arquivo = %s\n" " margem interna = %d\n" #: src/main.c:339 msgid "portrait" msgstr "retrato" #: src/main.c:339 msgid "landscape" msgstr "paisagem" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d caracteres por linha" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d linhas por página" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "o tamanho da fonte é %gpt" #: src/main.c:363 msgid "each line" msgstr "cada linha" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "cada %d linhas" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Páginas virtuais:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " numerar as linhas = %s\n" " formato = %s\n" " tamanho da tabulação = %d\n" " formato não imprimível = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Cabeçalhos:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " cabeçalho = %s\n" " rodapé esquerdo = %s\n" " rodapé = %s\n" " rodapé direito = %s\n" " título esquerdo = %s\n" " título central = %s\n" " título direito = %s\n" " fundo = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Entrada:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " truncar linhas = %s\n" " interpretar = %s\n" " fim de linha = %s\n" " codificar = %s\n" " título do documento = %s\n" " prólogo = %s\n" " imprimir binário = %s\n" " delegar = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "selecionado automaticamente" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Impressão elegante:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " folha de estilos = %s\n" " nível de brilho = %s\n" " nível de remoção = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "cópias de segurança nunca realizadas" #: src/main.c:456 msgid "simple backups of every file" msgstr "cópias de segurança simples de cada arquivo" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "cópias de segurança numeradas dos arquivos já numerados,\n" " e simples dos outros" #: src/main.c:466 msgid "numbered backups of every file" msgstr "cópias de segurança numeradas de cada arquivo" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Saída:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destino = %s\n" " controle de versão = %s\n" " sufixo de backup = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " número mágico = %s\n" " Descrição da Impressora (PPD) = %s\n" " PPD padrão = %s\n" " formato da etiqueta da página = %s\n" " número de cópias = %d\n" " faces por folha = %s\n" " definição da página do periférico = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definições statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " página pré-alimentada = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Internos:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " nível de verbosidade = %d\n" " arquivo de comandos = %s\n" " caminho da biblioteca = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Uso: %s [OPÇÃO]... [ARQUIVO]...\n" "\n" "Converte ARQUIVO(s) ou a entrada padrão em PostScript. Por padrão, a saída\n" "é enviada para a impressora padrão. Um arquivo de saída pode ser " "especificado\n" "com -o\n" "\n" "Argumentos obrigatórios para as opções longas são obrigatórios, também, " "para\n" "as opções curtas.\n" "Opções longas marcadas com * necessitam um argumento sim/não, opções curtas\n" "correspondentes representam um \"sim\".\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tarefas:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version mostra a versão\n" " --help mostra esta ajuda\n" " --guess relaciona os tipos de ARQUIVOS definidos\n" " --which relaciona o caminho completo dos arquivos\n" " de biblioteca com nome de ARQUIVOS\n" " --glob relaciona o caminho completo dos arquivos\n" " de biblioteca correspondentes a ARQUIVOS\n" " --list=defaults mostra as definições e parâmetros padrão\n" " --list=TÓPICO lista detalhada do TÓPICO (delegations, encodings\n" " features, variables, media, ppd, printers,\n" " prologues, style-sheets, user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Após realizar a tarefa, terminar com sucesso. Listas detalhadas\n" "podem fornecer ajuda adicional sobre características específicas.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent trabalha em silêncio\n" " -v, --verbose[=NÍVEL] ativa o modo verboso padrão, ou no NÍVEL\n" " -=, --user-option=OPÇÃO usa o atalho OPÇÃO definido pelo usuário\n" " --debug habilita as propriedades de depuração\n" " -D, --define=CHAVE[:VALOR] elimina a variável CHAVE ou atribuir VALOR\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NOME usa para saída a mídia NOME\n" " -r, --landscape imprime no sentido paisagem\n" " -R, --portrait imprime no sentido retrato\n" " --columns=NÚMERO número de colunas por folha\n" " --rows=NÚMERO número de linhas por folha\n" " --major=DIREÇÃO PREENCHE PRIMEIRO (DIREÇÃO=) rows (linhas),\n" " ou columns (colunas)\n" " -1, -2, ..., -9 tamanho de fonte predefinidos e layouts\n" " para 1.. 9 virtuais\n" " -A, --file-align=MODO alinha arquivos separados de acordo com o MODO\n" " (fill, rank, page, sheet, ou um número)\n" " -j, --borders* imprime bordas em torno das colunas\n" " --margin[=NÚMERO] define uma margem interna de tamanho NÚMERO\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "As opções -1.. -9 afetam vários parâmetros primitivos de inicialização para\n" "layouts predefinidos de 80 colunas. Portanto, a ordem faz diferença:\n" "`-R -f40 -2' é equivalente a `-2'. Para modificar o layout, use `-2Rf40',\n" "ou use opções primitivas compostas (`--columns', `--font-size' etc.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NÚMERO precede cada NÚMERO de linhas com seu número\n" " da linha\n" " -C o mesmo que --line-numbers=5\n" " -f, --font-size=TAMANHO usa o TAMANHO (ponto flutuante) da fonte para\n" " o texto do corpo\n" " -L, --lines-per-page=NÚMERO ajusta o tamanho da fonte para imprimir " "NÚMERO\n" " linhas por virtual\n" " -l, --chars-per-line=NÚMERO ajusta o tamanho da fonte para imprimir " "NÚMERO\n" " colunas por virtual\n" " -m, --catman trata o ARQUIVO como uma página de manual\n" " (o mesmo que -L66)\n" " -T, --tabsize=NÚMERO ajusta o tamanho da tabulação para NÚMERO\n" " --non-printable-format=FMT especifica como os caracteres não imprimíveis\n" " são impressos\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Cabeçalhos:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header sem nenhum cabeçalho de página\n" " -b, --header[=TEXTO] define o cabeçalho da página\n" " -u, --underlay[=TEXTO] imprime TEXTO como fundo de todas as páginas\n" " --center-title[=TEXTO] define o título central da página\n" " --left-title[=TEXTO] define o título esquerdo da página\n" " --right-title[=TEXTO] define o título direito da página\n" " --left-footer[=TEXTO] define o rodapé esquerdo da página\n" " --footer[=TEXTO] define o rodapé da página\n" " --right-footer[=TEXT] define o rodapé direito da página\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "Os TEXTOs podem utilizar escapes especiais.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=INTERVALO] seleciona o intervalo das páginas a serem " "impressas\n" " -c, --truncate-lines* corta as linhas longas\n" " -i, --interpret* interpreta os caracteres tab, bs e ff\n" " --end-of-line=TIPO especifica o caracter de fim de linha\n" " (TIPO: r, n, nr, rn, any)\n" " -X, --encoding=NOME utiliza a codificação de entrada NOME\n" " -t, --title=NOME define o nome do trabalho\n" " --stdin=NOME define o nome do arquivo de entrada stdin\n" " --print-anyway* forçar a impressão binária\n" " -Z, --delegate* delega os arquivos para outro aplicativo\n" " --toc[=TEXTO] gera o sumário\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Quando as delegações estão habilitadas, a2ps pode utilizar outros " "aplicativos \n" "para manipular o processamento de arquivos que não devem ser impressos " "antes\n" "de serem tratados como, por exemplo, HTML, PostScript, PDF etc.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LANG] habilita impressão elegante\n" " (define o estilo como LANG)\n" " --highlight-level=NÍVEL define o brilho da impressão como NÍVEL\n" " NÍVEL pode ter os valores: none (nenhum),\n" " normal ou heavy (intenso)\n" " -g o mesmo que --highlight-level=heavy (intenso)\n" " --strip-level=NÚMERO nível de remoção dos comentários\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=ARQUIVO direciona a saída para ARQUIVO. Se arquivo \n" " for igual a \"-\", deixa a saída direcionada\n" " para saída padrão (stdout).\n" " --version-control=PALAVR sobrepõe o controle de versão em uso\n" " --suffix=SUFIXO sobrepõe o sufixo de backup em uso\n" " -P, --printer=NOME envia a saída para a impressora NOME\n" " -d envia a saída para a impressora padrão\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=ARQUIVO inclui ARQUIVO.pro como prólogo de PostScript\n" " --ppd[=CHAVE] seleção automática da PPD ou define como CHAVE\n" " -n, --copies=NÚMERO imprime o NÚMERO de cópias de cada página\n" " -s, --sides=MODO define o MODO duplex (`1' ou `simplex',\n" " `2' ou `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] envia a definição de página do periférico\n" " para a saída\n" " --statusdict=K[:[:]V] envia a definição de statusdict para a saída\n" " -k, --page-prefeed habilita a pré-alimentação de página\n" " -K, --no-page-prefeed desabilita a pré-alimentação de página\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Por padrão a2ps está ajustado para o que você deseja, portanto confie " "nele. \n" "Para imprimir elegantemente o conteúdo do diretório `src' e o sumário, e\n" "enviar o resultado para a impressora `lw', use:\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Para processar os arquivos `amostra.ps' e `amostra.html' e exibir o " "resultado, use:\n" "\n" " $ a2ps -P display amostra.ps amostra.html\n" "\n" "Para processar a caixa-de-correio em 4 up, use:\n" "\n" " $ a2ps -=mail -4 caixa-de-correio\n" "\n" "Para imprimir um livreto na impressora padrão, com capacidade para Duplex, " "use:\n" "\n" " $ a2ps -=book papel.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Sumário" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "impossível processar \"%s\" que necessita do a2ps versão %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "caractere inesperado \"%c\"" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "número excessivo de inclusões" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "nenhuma chave definida para \"%s\"" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "impossível encontrar o arquivo \"%s\"" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "seleção automática de estilo cancelada" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "impossível compilar a expressão regular \"%s\": %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Folhas de Estilo Conhecidas" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" "impossível localizar a folha de estilo \"%s\": utilizando o estilo simples" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "número de versão inválida \"%s\"" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "espaço (ou seja, \" \")" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (ou seja, \"\\001\" etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (ou seja, \"\\x0a\" etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "circunflexo (ou seja, \"^C\", \"M-^C\" etc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (ou seja, \"C-c\", \"M-C-c\" etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "ponto de interrogação (ou seja, \"?\")" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "opção inválida \"%s\"" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Codificações Conhecidas" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "conhecimento incompleto das faces" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "impossível fechar diretório \"%s\"" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argumento inválido \"%s\" para \"%s\"" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Argumentos válidos são números inteiros n, tais como: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Argumentos válidos são números de ponto flutuante f, tais como: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "codificação desconhecida \"%s\"" #: liba2ps/madir.c:51 msgid "rows first" msgstr "linhas primeiro" #: liba2ps/madir.c:54 msgid "columns first" msgstr "colunas primeiro" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "mídia desconhecida \"%s\"" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Mídias Conhecidas" #: liba2ps/media.c:189 msgid "Name" msgstr "Nome" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensões" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variáveis Conhecidas" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: faltando \"%c\" para escape %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Impresso por %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Impresso por %s de %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "impossível obter o diretório de trabalho atual" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argumento muito longo para %s escape" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%d/%b/%y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A, %d de %B de %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: desconhecido \"%s\" escape \"%c\" (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Página %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Página %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separador inválido \"%s%c\" para escape \"%s\"" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argumento inválido para escape %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Página %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "comando de saída" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Utilize \"%s --help\" para obter mais informações.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificador inválido de variável \"%s\"" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "face inválida \"%s\"" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "\"%s\" sem correspondente \"%s\"" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Fontes Conhecidas" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Nenhuma.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Descrições das Impressoras PostScript Conhecidas" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "intervalo inválido \"%s\"" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Impressora Padrão" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Impressora desconhecida" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "nenhum comando para o \"%s\" (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "enviado para a saída padrão" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "enviado para a impressora padrão" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "salvo no arquivo \"%s\"" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "enviado para a impressora \"%s\"" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Saídas Conhecidas (Impressoras etc.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Prólogos Conhecidos" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "a fonte %f é muito grande" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "\"%s\" é um arquivo binário, impressão cancelada" #: liba2ps/userdata.c:104 msgid "user" msgstr "usuário" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Usuário Desconhecido" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "opção do usuário desconhecida \"%s\"" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Opções do Usuário Conhecidas" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Memória esgotada" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "impossível mudar o nome do arquivo de \"%s\" para \"%s\"" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "arquivo restaurado \"%s\"" #~ msgid "any type" #~ msgstr "qualquer tipo" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Notícias, atualizações e documentação: visite http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Relate erros para <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "codificação \"%s\" desconhecida, ignorada" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Escrito por %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Este é um software livre; veja o código fonte para condições de cópia.\n" #~ "Não há ; nem mesmo para COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER " #~ "PROPÓSITO\n" #~ "EM PARTICULAR.\n" #~ msgid "write error" #~ msgstr "erro de escrita" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "definição inválida para a impressora \"%s\": %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "entrada \"%s\" obsoleta. Ignorada" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Página %d/%d" #~ msgid "`" #~ msgstr "“" #~ msgid "'" #~ msgstr "”" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "argumento inválido %s para \"%s\"" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argumento ambíguo %s para \"%s\"" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Argumentos válidos são:" #~ msgid "Unknown system error" #~ msgstr "Erro desconhecido de sistema" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: a opção \"%s\" é ambígua\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: a opção \"--%s\" não permite um argumento\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: a opção \"%c%s\" não permite um argumento\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: a opção \"%s\" exige um argumento\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: opção desconhecida \"--%s\"\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: opção desconhecida \"%c%s\"\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opção ilegal -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: opção inválida -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: a opção exige um argumento -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: a opção \"-W %s\" é ambígua\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: a opção \"-W %s\" não permite um argumento\n" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/quot.sed�����������������������������������������������������������������������������0000644�0000000�0000000�00000000231�14415562264�011452� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/remove-potcdate.sin������������������������������������������������������������������0000644�0000000�0000000�00000001320�14415562264�013576� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sed script that removes the POT-Creation-Date line in the header entry # from a POT file. # # Copyright (C) 2002 Free Software Foundation, Inc. # 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. This file is offered as-is, # without any warranty. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ro.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000066614�14445132166�011127� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�� ���&8��0���G8�� ���x8��3��8��{��;����3?����6B��B��D����^F��{��I��(��jM����O��w���ZQ�����Q�� ��R�����S��q���OT��%���T�����T��L���U�����TU��R���V�� ���mV�� ���zV�����V��5���V��A���V��B���W��J���UW��G���W�����W�����W��}���X��(���X����X��"���@[�����c[��#���z[�����[�����[�����[�����[�� ���[�� ���[�� ���[�����[�����\�����"\��$���2\��-���W\�����\�����\�� ���\�����\�����\�� ���\�� ���\�� ���\����� ]�� ���]�����(]�����G]�����V]�����n]�����t]�� ���|]��'���]��R��]��;���_�����=_�����V_����l_��:���Na��<���a�����a�����a��!���b��!���b�� ���b����� c�����)c�����@c��"���^c��!���c��%���c��"���c��"���c��!���d��>���1d�����pd��'���d��.���d��)���d��3��� e��#���?e��$���ce��C���e��.���e��;���e��<���7f��'���tf��<���f��3���f��7��� g�����Eg�� ���Wg�����bg�� ���wg��+���g��)���g��1���g��*��� h�����8h�����Jh�� ���ih��%���sh��1���h��)���h��%���h�����i�����5i��,���Qi��#���~i�����i�����i��$���i��$���i�����j��%���j��0���=j�����nj�����tj��3���{j��~���j�����.k�����Nk�����ak�����hk��%���}k�����k�� ���k�����k�����k�����l�����l�����7l�����Ul��.���sl�����l�����l��&���l�����l�� ���m�����7m��,���Qm�� ���~m�����m�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-01-28 23:13+0100 Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org> Language-Team: Romanian <translation-team-ro@lists.sourceforge.net> Language: ro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2); X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 3.2.2 � încărcare: %zu/%zu (%2.1f%%) � dimensiunea originală: %zu, creștere: %s %zu � Nimic. � --line-numbers=NUM precede fiecare linie din NUM linii cu numărul său -C alias pentru „--line-numbers=5” -f, --font-size=DIM folosește DIMensiune font (nr. real) pentru corpul de text -L, --lines-per-page=NUM scalează fontul pentru a imprima NUM linii pe pagina virtuală -l, --chars-per-line=NUM scalează fontul pentru a tipări NUM coloane pe pagina virtuală -m, --catman procesează FIȘIER ca pagină de manual (același efect ca „-L66”) -T, --tabsize=NUM stabilește dimensiunea tabulatorului la NUM --non-printable-format=FMT specifică cum sunt imprimate caracterele neimprimabile � --prologue=FIȘIER include FIȘIER.pro ca prolog PostScript --ppd[=CHEIE] selectează automat definiția imprimantei (PPD) sau o stabilește conform CHEII -n, --copies=NUM imprimă NUM copii de fiecare pagină -s, --sides=MOD stabilește MODul de imprimare, pe una sau pe două fețe; modurile posibile, sunt: „1” sau „simplex”, „2” sau „duplex” și „tumble” (pe ambele fețe, dar inversate) -S, --setpagedevice=K[:V] trimite definiția dispozitivului de pagină către ieșire --statusdict=K[:[:]V] trimite o definiție statusdict către ieșire -k, --page-prefeed activează preîncărcarea paginii -K, --no-page-prefeed dezactivează preîncărcarea paginii � --version afișează versiunea --help afișează acest mesaj de ajutor --guess raportează tipurile ghicite ale FIȘIERELOR --which raportează calea completă a fișierelor de bibliotecă numite FIȘIERE --glob raportează calea completă a fișierelor de bibliotecă ce se potrivesc cu FIȘIEREle --list=defaults afișează configurările și parametri impliciți --list=SUBIECT listă detaliată despre SUBIECT (delegări, codificări, facilități, variabile, mediu, ppd, imprimante, prologuri, foi de stil, opțiuni utilizator) � -B, --no-header dezactivează antetul paginilor -b, --header[=TEXT] configurează antetul paginii -u, --underlay[=TEXT] imprimă TEXT sub fiecare pagină --center-title[=TEXT] configurează titlul paginii ca TITLU --left-title[=TEXT] configurează titlurile paginii stânga/dreapta ca TEXT --right-title[=TEXT] --left-footer[=TEXT] configurează notele de subsol ale foii ca TEXT --footer[=TEXT] --right-footer[=TEXT]] � -E, --pretty-print[=LIMBAJ] activează imprimarea-formatată-plăcut (stabilește stilul imprimării la LIMBAJ) --highlight-level=NIVEL stabilește NIVELul de evidențiere al imprimării formatată-plăcut; NIVELul poate fi: „none”(niciunul), „normal” sau „heavy”(accentuat) -g alias pentru --highlight-level=heavy (accentuat) --strip-level=NUM nivelul de suprimare al comentariilor � -M, --medium=NUME folosește mediul de ieșire NUME -r, --landscape imprimă în modul orientare orizontală (landscape) -R, --portrait imprimă în modul orientare verticală (portrait) --columns=NUM număr de coloane pe foaie --rows=NUM număr de rânduri pe foaie --major=DIRECȚIE prima dată umple (DIRECȚIE=) rânduri, sau coloane -1, -2, ..., -9 dimensiune font și aspect predefinit pentru 1.. 9 pagini virtuale -A, --file-align=MOD aliniază fișiere separate conform cu MODUL: „fill” (umplere), „rank” (rang), „page” (pagină), „sheet” (foaie), sau un număr -j, --borders* imprimă chenare în jurul coloanelor --margin[=NUM] definește o margine interioară de dimensiune NUM � -a, --pages[=INTERVAL] selectează paginile de imprimat -c, --truncate-lines* trunchiază liniile lungi -i, --interpret* interpretează caracterele „tab”, „bs” și „ff” --end-of-line=TIP specifică TIPul caracterului de sfârșit de linie: „r” («return» retur de caret), „n” («newline» linie nouă), „nr”, „rn” sau any (oricare) -X, --encoding=NUME utilizează codificarea NUME -t, --title=NUME stabilește numele acțiunii (job) --stdin=NUME stabilește numele fișierului de intrare de la intrarea standard --print-anyway* forțează imprimarea fișierelor binare -Z, --delegate* delegare fișiere către altă aplicație --toc[=TEXT] generează cuprinsul fișierului � -o, --output=FIȘIER trimite ieșirea către fișierul FIȘIER. Dacă FIȘIER este „-”, lasă ieșirea la ieșirea standard --version-control=VERSIUNE suprascrie controlul actual al versiunii --suffix=SUFIX suprascrie sufixul actual al copiei de rezervă -P, --printer=NUME trimite ieșirea către imprimanta NUME -d trimite ieșirea către imprimanta implicită (acesta este comportamentul implicit) � -q, --quiet, --silent face ca ieșirea să fie silențioasă, fără detalii -v, --verbose[=NIVEL] activează ieșirea detaliată, sau specifică NIVELUL de detaliere -=, --user-option=OPȚIUNE folosește OPȚIUNEa definită de utilizator --debug activează facilitățile depanare -D, --define=CHEIE[:VALOARE] elimină variabila CHEIE sau îi atribuie VALOAREA � destinație = %s controlul versiunilor = %s sufix pentru copiile de rezervă = %s � antet = %s notă subsol stânga = %s notă subsol = %s notă subsol dreapta = %s titlu stânga = %s titlu centru = %s titlu dreapta = %s dedesubt = %s � număr magic = %s Descriere Imprimantă (PPD) = %s PPD implicit = %s format etichetă pentru pagină = %s număr de copii = %u părți pe foaie = %s definiții dispozitiv pagină = � mediu = %s, %s aranjare în pagină = %zu x %zu, %s chenar = %s aliniere fișier = %s margini interioare = %u � număr de linii = %s format = %s dimensiune tabulator = %u format neimprimabil = %s � pagină preîncărcată = %s � definiții statusdict = � foaie de stil = %s nivel evidențiere = %s nivel suprimare = %d � truncare linii = %s interpretează = %s sfârșit de linie = %s codificare = %s titlu document = %s prolog = %s imprimă oricum = %s deleagă = %s � nivel de detaliere = %u comandă fișier = %s cale bibliotecă = �%A %B %d, %Y�%b %d, %Y�%s, delegat pentru %s�%s: argument nevalid al codului de control „%s%c”�%s: separator nevalid „%s%c” pentru codul de control „%s”�%s: lipsește „%c” din secvența codului de control „%s%c”�%s: argumentul pentru secvența codului de control „%s” este prea lung�%s: secvență a codului de control „%s” necunoscută „%c” (%d)�%u caractere pe linie�%u linii pe pagină�După ce efectuează sarcina, iese cu succes. Listele detaliate pot oferi ajutor suplimentar pentru anumite caracteristici. �Aplicațiile configurate pentru delegare�Implicit, comanda «a2ps» face ce doriți, așa ca aveți încredere în ea. Pentru o imprimare-formatată-plăcut a directorului „src”, un cuprins al acestuia și trimiterea rezultatului la imprimanta „lw”: $ a2ps -P lw --toc src/* Pentru procesarea fișierelor „probă.ps”, „probă.html” și afișarea rezultatului: $ a2ps -P display probă.ps probă.html Pentru procesarea unei cutii poștale „mailbox” cu 4 pagini pe foaie (2x2): $ a2ps -=mail -4 mailbox Pentru a imprima un fișier ca broșură pe imprimanta implicită, dacă aceasta poate imprima pe ambele fețe: $ a2ps -=book paper.dvi.gz -d�Starea de configurare a lui %s %s �Imprimantă implicită�Delegare „%s”, de la %s la %sn �Matrice dinamică „%s”: �Șir dinamic: �Global: �Antete: �Titluri: �Intrare: �Interne: �Codificări cunoscute�Fonturi cunoscute�Medii cunoscute�Ieșiri cunoscute (Imprimante, etc.)�Descrieri de imprimantă PostScript cunoscute�Prologuri cunoscute�Foi de stil cunoscute�Opțiuni de utilizator cunoscute�Variabile cunoscute�Nume�Ieșire: �Pagina %zu�Pagina %zu/%c�Pagina %zu/%zu�PostScript: �Imprimare-formatată-plăcut: �Imprimat de %s�Imprimat de %s de pe %s�Foi: �Cuprins�Sarcini: �TEXTele pot utiliza eludări speciale. �Opțiunile -1.. -9 afectează mai mulți parametri fundamentali pentru a configura machetări predefinite cu 80 de coloane. De aceea ordinea e importantă: „-R -f40 -2” este echivalent cu „-2”. Pentru a schimba machetarea, folosiți „-2Rf40”, sau compuneți opțiunile fundamentale: „--columns”, „--font-size”, etc. �Încercați «%s --help» pentru informații suplimentare. �Imprimantă necunoscută�Utilizator necunoscut�Utilizare: %s [OPȚIUNE]... [FIȘIER]... Convertește FIȘIER(E) sau intrarea standard în PostScript. În mod implicit, ieșirea este trimisă la imprimanta implicită. Un fișier de ieșire poate fi specificat cu opțiunea „-o”. Argumentele obligatorii pentru opțiunile lungi sunt obligatorii și pentru opțiunile scurte. Opțiunile lungi marcate cu „*” necesită un argument da/nu (yes/no), opțiunile scurte corespunzătoare sunt interpretate ca „da” (yes). �Argumentele valide sunt numere reale f precum acesta: %s �Argumentele valide sunt numere întregi n precum acesta: %s �Pagini virtuale: �Când delegările sunt activate, «a2ps» poate utiliza alte aplicații pentru a gestiona procesarea fișierelor care nu ar trebui imprimate ca informație brută, de exemplu: HTML, PostScript, PDF, etc. �[%s (%s): %zu pagini pe %zu foi] �[%s (%s): %zu pagini pe 1 foaie] �[%s (%s): 1 pagină pe 1 foaie] �[%s (%s): a eșuat. Ignorat] �[%s (binar): ignorat] �[%s (neimprimabil): ignorat] �[%zu linii reformatate (wrapped)] �[1 linie reformatată (wrapped)] �[Nu a fost generată nici o ieșire] �[Total: %zu pagini pe %zu foi] %s �[Total: %zu pagini pe 1 foaie] %s �[Total: 1 pagină pe 1 foaie] %s �„%s” este un fișier binar, imprimarea a fost întreruptă�„%s” este un director�„%s” fără „%s” corespunzător�selecția automată a stilului a fost anulată�nu s-a putut închide directorul „%s”�nu se poate compila expresia regulată „%s”: %s�nu se poate crea fișierul „%s”�nu se poate găsi fișierul „%s”�nu se găsește foaia de stil „%s”: se folosește stilul simplu�nu se poate obține directorul de lucru actual�nu s-au putut obține informații despre fișierul „%s”�nu se poate deschide o linie de conectare (pipe) pe „%s”�nu se poate deschide fișierul „%s”�nu pot procesa „%s” care necesită «a2ps» versiunea %s�nu se poate redenumi fișierul „%s” ca „%s”�semnul de insertare (adică, „^C”, „M-^C” etc.)�coloanele primele�dimensiuni�fiecare a %u-a linie�fiecare linie�emacs (adică, „C-c”, „M-C-c” etc.)�sfârșit de linie în interiorul unui %s�caracter de sfârșit de linie în constanta șir�eroare la încercarea de a executa file(1)�font %f prea mare�dimensiunea fontului este %gpt�accentuat�hexazecimal (adică, „\x0a” etc.)�cunoaștere incompletă a stilurilor de caractere�argument nevalid „%s” pentru „%s”�stil al caracterului nevalid „%s”�interval nevalid „%s”�opțiune nevalidă „%s”�identificator de variabilă nevalid „%s”�număr de versiune nevalid „%s”�orientare orizontală�memorie epuizată�lipsește argumentul pentru „%s”�nu face niciodată copii de rezervă�nu�nicio comandă pentru „%s” (%s%s)�nicio tastă nu a fost definită pentru „%s”�deloc�normal�copii de rezervă numerotate pentru fiecare fișier�copii de rezervă numerotate pentru fișierele deja numerotate, și simple pentru celelalte�octal (adică, „\001” etc.)�comanda de ieșire�simplu�orientare verticală�semnul întrebării (adică, „?”)�s-a primit SIG%s�s-a restaurat fișierul „%s”�rândurile primele�salvat în fișierul „%s”�selectat automat�trimis la imprimanta implicită�trimis la imprimanta „%s”�trimis spre ieșirea standard�copii de rezervă simple ale fiecărui fișier�spațiu (adică, „ ”)�prea multe includeri�prea multe tipuri de cursive: „%s”�caracter neașteptat „%c”�codificare necunoscută „%s”�mediu necunoscut „%s”�opțiune de utilizator necunoscută „%s”�utilizator�da���������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ro.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000117272�14445132165�010757� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mesajele în limba română pentru a2ps. # Copyright © 2003, 2022, 2023 Free Software Foundation, Inc. # Acest fișier este distribuit sub aceeași licență ca și pachetul a2ps. # This file is distributed under the same license as the a2ps package. # # Eugen Hoanca <eugenh@urban-grafx.ro>, 2003. # Laurentiu Buzdugan <buzdugan@voyager.net>, 2003. # Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022, 2023. # # Cronologia traducerii fișierului „a2ps”: # Traducerea inițială, făcută de EH/LB, pentru versiunea a2ps 4.13b. # Actualizare a codării caracteror, la codarea de caractere UTF-8. # Actualizare a diacriticelor de la „cu sedilă” la „cu virgulă”. # Actualizare a algoritmului formelor de plural (de la „două” la „trei”). # Actualizare a traducerii pentru versiunea a2ps 4.14.92, făcută de R-GC, 2022. # Actualizare a traducerii pentru versiunea a2ps 4.14.93, făcută de R-GC, 2023. # Actualizare a traducerii pentru versiunea Y, făcută de X, Z(anul). # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-01-28 23:13+0100\n" "Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n" "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 3.2.2\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "lipsește argumentul pentru „%s”" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "nu se poate crea fișierul „%s”" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "nu se poate deschide o linie de conectare (pipe) pe „%s”" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegare „%s”, de la %s la %sn\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplicațiile configurate pentru delegare" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "„%s” este un director" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "nu se poate deschide fișierul „%s”" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "nu s-au putut obține informații despre fișierul „%s”" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 pagină pe 1 foaie]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu pagini pe 1 foaie]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu pagini pe %zu foi]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 pagină pe 1 foaie] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Total: %zu pagini pe 1 foaie] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Total: %zu pagini pe %zu foi] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 linie reformatată (wrapped)]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu linii reformatate (wrapped)]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Nu a fost generată nici o ieșire]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegat pentru %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): a eșuat. Ignorat]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (neimprimabil): ignorat]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binar): ignorat]\n" #: src/generate.c:350 msgid "plain" msgstr "simplu" # R-GC, scrie: # am modificat traducerea inițială: # „sfârșit de linie (end-of-line) în șir constant” # la (avînd ca inspirație traducerea franceză și cea # olandeză): # „caracter de sfârșit de linie în constanta șir” #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "caracter de sfârșit de linie în constanta șir" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "sfârșit de linie în interiorul unui %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "s-a primit SIG%s" #: src/main.c:235 msgid "heavy" msgstr "accentuat" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "deloc" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "da" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "nu" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Starea de configurare a lui %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Foi:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " mediu = %s, %s\n" " aranjare în pagină = %zu x %zu, %s\n" " chenar = %s\n" " aliniere fișier = %s\n" " margini interioare = %u\n" # R-GC, scrie: # am preferat (și prefer), traducerea inițială # în locul celei „normale” mot-a-mot: # perechea: portret - peisaj. #: src/main.c:339 msgid "portrait" msgstr "orientare verticală" #: src/main.c:339 msgid "landscape" msgstr "orientare orizontală" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u caractere pe linie" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u linii pe pagină" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "dimensiunea fontului este %gpt" #: src/main.c:363 msgid "each line" msgstr "fiecare linie" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "fiecare a %u-a linie" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Pagini virtuale:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " număr de linii = %s\n" " format = %s\n" " dimensiune tabulator = %u\n" " format neimprimabil = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Antete:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " antet = %s\n" " notă subsol stânga = %s\n" " notă subsol = %s\n" " notă subsol dreapta = %s\n" " titlu stânga = %s\n" " titlu centru = %s\n" " titlu dreapta = %s\n" " dedesubt = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Intrare:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " truncare linii = %s\n" " interpretează = %s\n" " sfârșit de linie = %s\n" " codificare = %s\n" " titlu document = %s\n" " prolog = %s\n" " imprimă oricum = %s\n" " deleagă = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "selectat automat" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Imprimare-formatată-plăcut:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " foaie de stil = %s\n" " nivel evidențiere = %s\n" " nivel suprimare = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "nu face niciodată copii de rezervă" #: src/main.c:456 msgid "simple backups of every file" msgstr "copii de rezervă simple ale fiecărui fișier" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "copii de rezervă numerotate pentru fișierele deja numerotate,\n" " și simple pentru celelalte" #: src/main.c:466 msgid "numbered backups of every file" msgstr "copii de rezervă numerotate pentru fiecare fișier" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Ieșire:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destinație = %s\n" " controlul versiunilor = %s\n" " sufix pentru copiile de rezervă = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " număr magic = %s\n" " Descriere Imprimantă (PPD) = %s\n" " PPD implicit = %s\n" " format etichetă pentru pagină = %s\n" " număr de copii = %u\n" " părți pe foaie = %s\n" " definiții dispozitiv pagină = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " definiții statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " pagină preîncărcată = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Interne:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " nivel de detaliere = %u\n" " comandă fișier = %s\n" " cale bibliotecă = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Utilizare: %s [OPȚIUNE]... [FIȘIER]...\n" "\n" "Convertește FIȘIER(E) sau intrarea standard în PostScript. În mod " "implicit,\n" "ieșirea este trimisă la imprimanta implicită. Un fișier de ieșire poate fi\n" "specificat cu opțiunea „-o”.\n" "\n" "Argumentele obligatorii pentru opțiunile lungi sunt obligatorii și pentru\n" "opțiunile scurte.\n" "Opțiunile lungi marcate cu „*” necesită un argument da/nu (yes/no), \n" "opțiunile scurte corespunzătoare sunt interpretate ca „da” (yes).\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Sarcini:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version afișează versiunea\n" " --help afișează acest mesaj de ajutor\n" " --guess raportează tipurile ghicite ale FIȘIERELOR\n" " --which raportează calea completă a fișierelor de " "bibliotecă\n" " numite FIȘIERE\n" " --glob raportează calea completă a fișierelor de " "bibliotecă\n" " ce se potrivesc cu FIȘIEREle\n" " --list=defaults afișează configurările și parametri impliciți\n" " --list=SUBIECT listă detaliată despre SUBIECT (delegări, " "codificări,\n" " facilități, variabile, mediu, ppd, imprimante,\n" " prologuri, foi de stil, opțiuni utilizator)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "După ce efectuează sarcina, iese cu succes. Listele detaliate pot oferi\n" "ajutor suplimentar pentru anumite caracteristici.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent face ca ieșirea să fie silențioasă, fără " "detalii\n" " -v, --verbose[=NIVEL] activează ieșirea detaliată, sau specifică " "NIVELUL\n" " de detaliere\n" " -=, --user-option=OPȚIUNE folosește OPȚIUNEa definită de utilizator\n" " --debug activează facilitățile depanare\n" " -D, --define=CHEIE[:VALOARE]\n" " elimină variabila CHEIE sau îi atribuie " "VALOAREA\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NUME folosește mediul de ieșire NUME\n" " -r, --landscape imprimă în modul orientare orizontală " "(landscape)\n" " -R, --portrait imprimă în modul orientare verticală (portrait)\n" " --columns=NUM număr de coloane pe foaie\n" " --rows=NUM număr de rânduri pe foaie\n" " --major=DIRECȚIE prima dată umple (DIRECȚIE=) rânduri, sau " "coloane\n" " -1, -2, ..., -9 dimensiune font și aspect predefinit pentru 1.. " "9\n" " pagini virtuale\n" " -A, --file-align=MOD aliniază fișiere separate conform cu MODUL: " "„fill”\n" " (umplere), „rank” (rang), „page” (pagină), " "„sheet”\n" " (foaie), sau un număr\n" " -j, --borders* imprimă chenare în jurul coloanelor\n" " --margin[=NUM] definește o margine interioară de dimensiune " "NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Opțiunile -1.. -9 afectează mai mulți parametri fundamentali pentru a " "configura\n" "machetări predefinite cu 80 de coloane. De aceea ordinea e importantă:\n" "„-R -f40 -2” este echivalent cu „-2”. Pentru a schimba machetarea, " "folosiți\n" "„-2Rf40”, sau compuneți opțiunile fundamentale: „--columns”, „--font-size”, " "etc.\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM precede fiecare linie din NUM linii cu numărul " "său\n" " -C alias pentru „--line-numbers=5”\n" " -f, --font-size=DIM folosește DIMensiune font (nr. real) pentru " "corpul\n" " de text\n" " -L, --lines-per-page=NUM scalează fontul pentru a imprima NUM linii pe\n" " pagina virtuală\n" " -l, --chars-per-line=NUM scalează fontul pentru a tipări NUM coloane pe\n" " pagina virtuală\n" " -m, --catman procesează FIȘIER ca pagină de manual (același " "efect\n" " ca „-L66”)\n" " -T, --tabsize=NUM stabilește dimensiunea tabulatorului la NUM\n" " --non-printable-format=FMT\n" " specifică cum sunt imprimate caracterele " "neimprimabile\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Titluri:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header dezactivează antetul paginilor\n" " -b, --header[=TEXT] configurează antetul paginii\n" " -u, --underlay[=TEXT] imprimă TEXT sub fiecare pagină\n" " --center-title[=TEXT] configurează titlul paginii ca TITLU\n" " --left-title[=TEXT] configurează titlurile paginii stânga/dreapta ca " "TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] configurează notele de subsol ale foii ca TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEXTele pot utiliza eludări speciale.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=INTERVAL] selectează paginile de imprimat\n" " -c, --truncate-lines* trunchiază liniile lungi\n" " -i, --interpret* interpretează caracterele „tab”, „bs” și „ff”\n" " --end-of-line=TIP specifică TIPul caracterului de sfârșit de " "linie:\n" " „r” («return» retur de caret), „n” («newline» " "linie\n" " nouă), „nr”, „rn” sau any (oricare)\n" " -X, --encoding=NUME utilizează codificarea NUME\n" " -t, --title=NUME stabilește numele acțiunii (job)\n" " --stdin=NUME stabilește numele fișierului de intrare de la\n" " intrarea standard\n" " --print-anyway* forțează imprimarea fișierelor binare\n" " -Z, --delegate* delegare fișiere către altă aplicație\n" " --toc[=TEXT] generează cuprinsul fișierului\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Când delegările sunt activate, «a2ps» poate utiliza alte aplicații pentru a\n" "gestiona procesarea fișierelor care nu ar trebui imprimate ca informație " "brută,\n" "de exemplu: HTML, PostScript, PDF, etc.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LIMBAJ]\n" " activează imprimarea-formatată-plăcut " "(stabilește\n" " stilul imprimării la LIMBAJ)\n" " --highlight-level=NIVEL\n" " stabilește NIVELul de evidențiere al imprimării\n" " formatată-plăcut; NIVELul poate fi:\n" " „none”(niciunul), „normal” sau " "„heavy”(accentuat)\n" " -g alias pentru --highlight-level=heavy " "(accentuat)\n" " --strip-level=NUM nivelul de suprimare al comentariilor\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FIȘIER trimite ieșirea către fișierul FIȘIER. Dacă " "FIȘIER\n" " este „-”, lasă ieșirea la ieșirea standard\n" " --version-control=VERSIUNE\n" " suprascrie controlul actual al versiunii\n" " --suffix=SUFIX suprascrie sufixul actual al copiei de rezervă\n" " -P, --printer=NUME trimite ieșirea către imprimanta NUME\n" " -d trimite ieșirea către imprimanta implicită " "(acesta\n" " este comportamentul implicit)\n" "\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FIȘIER include FIȘIER.pro ca prolog PostScript\n" " --ppd[=CHEIE] selectează automat definiția imprimantei (PPD)\n" " sau o stabilește conform CHEII\n" " -n, --copies=NUM imprimă NUM copii de fiecare pagină\n" " -s, --sides=MOD stabilește MODul de imprimare, pe una sau pe " "două\n" " fețe; modurile posibile, sunt: „1” sau " "„simplex”,\n" " „2” sau „duplex” și „tumble” (pe ambele fețe, " "dar\n" " inversate)\n" " -S, --setpagedevice=K[:V] trimite definiția dispozitivului de pagină " "către\n" " ieșire\n" " --statusdict=K[:[:]V] trimite o definiție statusdict către ieșire\n" " -k, --page-prefeed activează preîncărcarea paginii\n" " -K, --no-page-prefeed dezactivează preîncărcarea paginii\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Implicit, comanda «a2ps» face ce doriți, așa ca aveți încredere în ea. \n" "Pentru o imprimare-formatată-plăcut a directorului „src”, un cuprins al \n" "acestuia și trimiterea rezultatului la imprimanta „lw”:\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Pentru procesarea fișierelor „probă.ps”, „probă.html” și afișarea " "rezultatului:\n" "\n" " $ a2ps -P display probă.ps probă.html\n" "\n" "Pentru procesarea unei cutii poștale „mailbox” cu 4 pagini pe foaie (2x2):\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Pentru a imprima un fișier ca broșură pe imprimanta implicită, dacă aceasta\n" "poate imprima pe ambele fețe:\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Cuprins" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "nu pot procesa „%s” care necesită «a2ps» versiunea %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "caracter neașteptat „%c”" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "prea multe includeri" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "nicio tastă nu a fost definită pentru „%s”" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "nu se poate găsi fișierul „%s”" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "selecția automată a stilului a fost anulată" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "eroare la încercarea de a executa file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "nu se poate compila expresia regulată „%s”: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Foi de stil cunoscute" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "nu se găsește foaia de stil „%s”: se folosește stilul simplu" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "număr de versiune nevalid „%s”" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "spațiu (adică, „ ”)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (adică, „\\001” etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexazecimal (adică, „\\x0a” etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "semnul de insertare (adică, „^C”, „M-^C” etc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (adică, „C-c”, „M-C-c” etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "semnul întrebării (adică, „?”)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Matrice dinamică „%s”:\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tîncărcare: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\tdimensiunea originală: %zu, creștere: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Șir dinamic:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "prea multe tipuri de cursive: „%s”" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "opțiune nevalidă „%s”" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Codificări cunoscute" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "cunoaștere incompletă a stilurilor de caractere" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "nu s-a putut închide directorul „%s”" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argument nevalid „%s” pentru „%s”" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Argumentele valide sunt numere întregi n precum acesta: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Argumentele valide sunt numere reale f precum acesta: %s \n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "codificare necunoscută „%s”" #: liba2ps/madir.c:51 msgid "rows first" msgstr "rândurile primele" #: liba2ps/madir.c:54 msgid "columns first" msgstr "coloanele primele" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "mediu necunoscut „%s”" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Medii cunoscute" #: liba2ps/media.c:189 msgid "Name" msgstr "Nume" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensiuni" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Variabile cunoscute" # R-GC, scrie: # *** # ATENȚIE: # „escape”, nu înseamnă mereu „eludare”; ci, precum # aici, «secvență/caracter al codului de control» # === # Pentru că: acest caracter/secvență de..., modifică # anumite detalii de aparență (în general a textului # afișat) precum dimensiune, culoare, poziția inițială # a cursorului, etc. #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: lipsește „%c” din secvența codului de control „%s%c”" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Imprimat de %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Imprimat de %s de pe %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "nu se poate obține directorul de lucru actual" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argumentul pentru secvența codului de control „%s” este prea lung" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%b %d, %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" # R-GC, scrie: # este posibil ca poziția variabilelor: # „%s” și „%c” să trebuiască să fie # inversată; eventual cu numerotarea # tuturor varibilelor. #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: secvență a codului de control „%s” necunoscută „%c” (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Pagina %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Pagina %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separator nevalid „%s%c” pentru codul de control „%s”" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argument nevalid al codului de control „%s%c”" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Pagina %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "comanda de ieșire" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Încercați «%s --help» pentru informații suplimentare.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificator de variabilă nevalid „%s”" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "stil al caracterului nevalid „%s”" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "„%s” fără „%s” corespunzător" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Fonturi cunoscute" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Nimic.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Descrieri de imprimantă PostScript cunoscute" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "interval nevalid „%s”" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Imprimantă implicită" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Imprimantă necunoscută" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "nicio comandă pentru „%s” (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "trimis spre ieșirea standard" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "trimis la imprimanta implicită" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "salvat în fișierul „%s”" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "trimis la imprimanta „%s”" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Ieșiri cunoscute (Imprimante, etc.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Prologuri cunoscute" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "font %f prea mare" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "„%s” este un fișier binar, imprimarea a fost întreruptă" #: liba2ps/userdata.c:104 msgid "user" msgstr "utilizator" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Utilizator necunoscut" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "opțiune de utilizator necunoscută „%s”" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Opțiuni de utilizator cunoscute" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "memorie epuizată" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "nu se poate redenumi fișierul „%s” ca „%s”" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "s-a restaurat fișierul „%s”" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Drepturi de autor © 1988-2017 Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "orice tip" #, fuzzy #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Știri, actualizări și documentație la: http://www.inf.enst.fr/~demaille/" #~ "a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Raportați bug-uri la <bug-a2ps@gnu.org>.\n" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "codare (encoding) necunoscută `%s', ignorată" #~ msgid "Written by %s.\n" #~ msgstr "Scris de %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Acesta este software liber; vedeți codul sursă pentru condiții despre " #~ "copiere.\n" #~ "Nu există nici o garanție; nici chiar pentru COMERCIALIZARE sau de " #~ "POTRIVIRE\n" #~ "PENTRU UN SCOP ANUME.\n" #~ msgid "write error" #~ msgstr "eroare la scriere" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "definiție invalidă pentru imprimanta `%s': %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "intrare `%s' anacronică: Ignorată" #~ msgid "Page %d/%d" #~ msgstr "Pagina %d/%d" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #~ msgid "invalid argument %s for `%s'" #~ msgstr "argument invalid %s pentru `%s'" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "argument ambiguu %s pentru `%s'" #~ msgid "Valid arguments are:" #~ msgstr "Argumente valide sunt:" #~ msgid "Unknown system error" #~ msgstr "Eroare de sistem necunoscută" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: opțiunea `%s' este ambiguă\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: opțiunea `--%s' nu permite un argument\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: opțiunea `%c%s' nu permite un argument\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: opțiunea `%s' necesită un argument\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: opțiune nerecunoscută `--%s'\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: opțiune nerecunoscută `%c%s'\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opțiune ilegală -- %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: opțiune ilegală -- %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: opțiunea necesită un argument -- %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: opțiunea `-W %s' este ambiguă\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: opțiunea `-W %s' nu permite un argument\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ru.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000101230�14445132166�011115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6�����6��'���8��B���88�����{8��=��8����<����@����C��G��F����I��q��M����Q����S�����HV��b��V����4X�����Y�����Z��D���O[��)���[��{���[��W��:\��y���]�� ��� ^�� ���^�����#^��o���A^�����^��g���2_��z���_��r���`�����`��#���`�����`��N���a��h��b��,���}e��&���e��1���e��.���f��'���2f�����Zf�����qf�����f�����f��)���f��%���f����� g��#���)g��R���Mg��?���g��,���g��0��� h��F���>h��'���h�����h�����h�����h�����h�����i�� ���i��%���'i�����Mi�����_i�� ���wi�����i�����i�����i����0j��q���%l��%���l��/���l����l�����o��n���rp��)���p��=�� q��3���Ir��2���}r��0���r��R���r��0���4s��8���es�� ���s�� ���s��'���s��:���t��8���Ct��6���|t��T���t��*���u��<���3u��R���pu��8���u��c���u��2���`v��.���v��u���v��^���8w��N���w��9���w��2��� x��c���Sx��H���x��J����y�����Ky�����iy�����xy�����y��-���y�����y��J���y��!���Dz��+���fz��)���z�� ���z��K���z��?���{��6���U{��,���{��0���{��(���{��G���|��/���[|�����|�����|��/���|��D���|�����;}��*���B}��.���m}�����}�����}��P���}�����~��@���~����������.�����=��'���T�����|��(����������#�����'�����>���"��-���a��9�����R���ɀ�������,���9��;���f��&�����0���Ɂ��.�����P���)�����z����������+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-02-04 15:37+0300 Last-Translator: Yuri Kozlov <yuray@komyakino.ru> Language-Team: Russian <gnu@d07.ru> Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Lokalize 20.12.0 � загружено: %zu/%zu (%2.1f%%) � исходный размер: %zu, увеличение: %s %zu � Пусто. � --line-numbers=ЧИСЛО помещать номер строки через каждые ЧИСЛО строк -C синоним для --line-numbers=5 -f, --font-size=РАЗМЕР использовать для текста шрифт указанного РАЗМЕРА -L, --lines-per-page=ЧИСЛО масштабировать шрифт так, чтобы печатать ЧИСЛО строк на виртуальной странице -l, --chars-per-line=ЧИСЛО масштабировать шрифт так, чтобы печатать ЧИСЛО столбцов на виртуальной странице -m, --catman обрабатывать файл как man-страницы (то же, что -L66) -T, --tabsize=ЧИСЛО установить шаг табуляции в ЧИСЛО --non-printable-format=ФМТ указать формат вывода непечатных символов � --prologue=ФАЙЛ включить ФАЙЛ.pro в качестве вводной части PostScript --ppd[=КЛЮЧ] автоматический выбор определения принтера или установка его равным КЛЮЧ -n, --copies=ЧИСЛО печатать ЧИСЛО копий каждой страницы -s, --sides=РЕЖИМ установить дуплексный РЕЖИМ («1» или «simplex», «2» или «duplex», «tumble») -S, --setpagedevice=K[:V] передать описание page device на вывод --statusdict=K[:[:]V] передать описание statusdict на вывод -k, --page-prefeed разрешить предварительную подачу страницы -K, --no-page-prefeed запретить предварительную подачу страницы � --version вывести версию --help вывести эту справку --guess показать распознаваемые типы ФАЙЛОВ --which показать полный путь библиотечных файлов с названиями ФАЙЛЫ --glob показать полный путь библиотечных файлов, соответствующих ФАЙЛАМ --list=defaults вывести установки и параметры по умолчанию --list=ТЕМА подробный список по ТЕМЕ (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header выключить верхние колонтитулы -b, --header[=ТЕКСТ] включить верхние колонтитулы -u, --underlay[=ТЕКСТ] печатать ТЕКСТ под каждой страницей --center-title[=ТЕКСТ] установить заголовок страницы в ТЕКСТ --left-title[=ТЕКСТ] установить левый и правый заголовки в ТЕКСТ --right-title[=ТЕКСТ] --left-footer[=ТЕКСТ] установить нижние колонтитулы листа в ТЕКСТ --footer[=ТЕКСТ] --right-footer[=ТЕКСТ] � -E, --pretty-print[=ЯЗЫК] включить структурную печать (установить стиль ЯЗЫК) --highlight-level=УРОВЕНЬ установить уровень выделения УРОВЕНЬ УРОВЕНЬ может принимать значения none, normal или heavy -g синоним для --highligh-level=heavy --strip-level=ЧИСЛО уровень усечения комментариев � -M, --medium=ИМЯ использовать выходной носитель ИМЯ -r, --landscape печатать в горизонтальном режиме -R, --portrait печатать в вертикальном режиме --columns=ЧИСЛО количество столбцов на листе --rows=ЧИСЛО количество строк на листе --major=НАПРАВЛ вначале заполнять (НАПРАВЛ=) строк, или столбцов -1, -2, ..., -9 предопределенные размеры шрифтов и раскладки для виртуальных страниц 1..9 -A, --file-align=РЕЖИМ выравнивать отдельные файлы в соответствии с РЕЖИМОМ (fill, rank page, sheet или number) -j, --borders* печать рамки вокруг столбцов --margin[=ЧИСЛО] установить внутреннюю границу размером ЧИСЛО � -a, --pages[=ДИАПАЗОН] выбрать страницы для печати -c, --truncate-lines* усекать длинные строки -i, --interpret* интерпретировать символы tab, bs и ff --end-of-line=ТИП задать символ eol (ТИП: r, n, nr, rn, any) -X, --encoding=ИМЯ использовать входную кодировку ИМЯ -t, --title=ИМЯ установить имя задачи --stdin=ИМЯ задать имя для входного файла stdin --print-anyway* принудительная печать в двоичном режиме -Z, --delegate* делегировать файлы другому приложению --toc[=ТЕКСТ] создать оглавление � -o, --output=ФАЙЛ направить вывод в ФАЙЛ. Если ФАЙЛ равен «-», направить вывод в stdout. --version-control=СЛОВО перекрывает номер текущей версии --suffix=СУФФИКС перекрывает суффикс резервной копии -P, --printer=ИМЯ направить вывод на принтер ИМЯ -d направить вывод на принтер по умолчанию (поведение по умолчанию) � -q, --quiet, --silent бесшумная работа -v, --verbose[=УРОВЕНЬ] включить подробный режим, или установить его УРОВЕНЬ -=, --user-option=ПАРАМЕТР использовать определенное пользователем сокращение для ПАРАМЕТРА --debug включить режим отладки -D, --define=ПЕРЕМ[:ЗНАЧЕНИЕ] удалить переменную ПЕРЕМ или присвоить ей ЗНАЧЕНИЕ � приемник = %s контроль версий = %s суффикс резервной копии = %s � верхний колонтитул = %s левый нижний = %s нижний колонтитул = %s правый нижний = %s левый заголовок = %s центральный заголовок = %s правый заголовок = %s подкладка = %s � идентификатор версии = %s Описание принтера (ОП) = %s ОП по умолчанию = %s формат метки страницы = %s количество копий = %u число сторон на листе = %s определения устройства страницы = � бумага по умолчанию = %s, %s раскладка листа = %zu x %zu, %s рамки = %s выравнивание файла = %s внутренняя граница = %u � номера строк = %s формат = %s шаг табуляции = %u непечатаемый формат = %s � предварительная подача страницы = %s � определения statusdict = � набор стилей = %s уровень выделения = %s уровень усечения = %d � усечение строк = %s интерпретация = %s конец строки = %s кодировка = %s заголовок документа = %s вводная часть = %s печатать всегда = %s делегирование = %s � уровень подробности = %u команда file = %s библиотек путей = �%d %B %Y, %A�%b %d, %Y�%s, делегирован %s�%s: неверный аргумент для экранирующей последовательности %s%c�%s: неверный разделитель «%s%c» для экранирующей последовательности «%s»�%s: пропущено «%c» для экранирующей последовательности %s%c�%s: слишком длинный аргумент для экранирующей последовательности %s�%s: неизвестный «%s» код экранирующей последовательности «%c» (%d)�%u знаков в строке�%u строк на странице�После выполнения задачи, успешно завершиться. Подробный список может предоставить дополнительную помощь по конкретным возможностям. �Приложения, настроенные для делегирования�По умолчанию, a2ps настроен так, чтобы делать то, что вы хотите, доверьтесь ему. Для структурного отображения содержимого каталога «src» и оглавления, и посылки результата на принтер «lw», введите $ a2ps -P lw --toc src/* Для обработки файлов «sample.ps» и «sample.html» и отображения результата $ a2ps -P display sample.ps sample.html Для обработки почтового ящика и создания 4 страниц на листе, $ a2ps -=mail -4 mailbox Для печати в виде книги на принтере по умолчанию, поддерживающем дуплексный режим $ a2ps -=book paper.dvi.gz -d�Параметры настройки %s %s �Принтер по умолчанию�Делегирование «%s», от %s к %s �Динамический массив «%s»: �Динамическая строка: �Глобальные: �Заголовки: �Заголовки: �Входные данные: �Внутренние параметры: �Известные кодировки�Известные шрифты�Известные носители�Известные устройства вывода (принтеры и т. д.)�Известные описания PostScript-принтера�Известные вводные части�Известные стилевые наборы�Известные пользовательские параметры�Известные переменные�Имя�Выходные данные: �Страница %zu�Страница %zu/%c�Страница %zu/%zu�PostScript: �Структурная печать: �Печатал %s�Печатал %s с %s�Листы: �Содержание�Задачи: �ТЕКСТы могут использовать специальные экранирующие последовательности. �Параметры -1.. -9 влияют на некоторые основные параметры для установки предопределенных раскладок с 80 колонками. Таким образом, порядок важен: «-R -f40 -2» эквивалентно «-2». Для изменения раскладки, используйте «-2Rf40», или комбинируйте простые параметры («--columns», «--font-size» и т. д.). �По команде «%s --help» можно получить дополнительную информацию. �Неизвестный принтер�Неизвестный пользователь�Использование: %s [ПАРАМЕТРЫ]… ФАЙЛ… Преобразовывает ФАЙЛ(ы) или стандартный вход в PostScript. По умолчанию вывод посылается на принтер по умолчанию. Файл вывода можно задать через параметр -o. Аргументы, являющиеся обязательными для длинных параметров, также являются обязательными для коротких. Длинные параметры, отмеченные «*», требуют в качестве аргумента yes/no, соответствующий короткий параметр трактуется как «yes». �Правильными аргументами являются числа с плавающей точкой f, такие как: %s �Правильными аргументами являются целые числа n, такие как: %s �Виртуальные страницы: �При включенном делегировании, a2ps может использовать другие приложения для обработки файлов, которые не должны печататься в необработанном виде, например HTML, PostScript, PDF и т. д. �[%s (%s): %zu страниц на %zu листах �[%s (%s): %zu страницы на 1 листе] �[%s (%s): 1 страница на 1 листе] �[%s (%s): завершился с ошибкой. Проигнорировано] �[%s (двоичный): игнорирован] �[%s (непечатаемый): игнорирован] �[%zu строк усечено] �[1 строка усечена] �[Выходной поток пуст] �[Всего: %zu страниц на %zu листах] %s �[Всего: %zu страницы на 1 листе] %s �[Всего: 1 страница на 1 листе] %s �«%s» является двоичным файлом, печать прервана�«%s» является каталогом�«%s» не имеет соответствующей «%s»�режим автоматического выбора стилей отменен�не удается закрыть каталог «%s»�не удается скомпилировать регулярное выражение «%s»: %s�не удается создать файл «%s»�не удается найти файл «%s»�не удается найти стилевой набор «%s»: используется простой стиль�не удается получить имя текущего рабочего каталога�не удается получить информацию о файле «%s»�не удается открыть канал на «%s»�не удается открыть файл «%s»�не удается обработать «%s», который требует a2ps версии %s�не удается переименовать файл «%s» в «%s»�управляющие символы (т. е. «^C», «M-^C» и т.д.)�сначала столбцы�размеры�каждые %u строк�каждая строка�emacs (т. е. «C-c», «M-C-c» и т. д.)�конец строки в %s�конец строки внутри строковой константы�ошибка работы file(1)�шрифт %f слишком большой�размер шрифта равен %gpt�жирный�шестнадцатеричное число (т. е. «\x0a» и т. д.)�неполная информация о начертаниях�неверный аргумент «%s» для «%s»�неверное начертание «%s»�недопустимый интервал «%s»�неверный параметр «%s»�неверный идентификатор переменной «%s»�неверный номер версии «%s»�горизонтально�память исчерпана�пропущен аргумент для «%s»�никогда не создавать резервные копии�нет�нет команды для «%s» (%s%s)�не определен ключ для «%s»�минимальный�обычный�нумерованные резервные копии каждого файла�Нумерованные копии для уже пронумерованных файлов, и простое резервное копирование для остальных�восьмеричное число (т. е. «\001» и т.д.)�команда вывода�простой�вертикально�знак вопроса (т. е. «?»)�получен SIG%s�файл «%s» восстановлен�сначала строки�сохранен в файл «%s»�выбран автоматически�отправлен на принтер по умолчанию�отправлен на принтер «%s»�отправлен на стандартный вывод�простое резервное копирование каждого файла�пробел (т. е. « »)�слишком много включений�слишком много косых шрифтов: «%s»�неожиданный знак «%c»�неизвестная кодировка «%s»�неизвестный носитель «%s»�неизвестный пользовательский параметр `«%s»�пользователь�да�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/ru.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000130162�14445132165�010756� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Локализация a2ps. # This file is distributed under the same license as the a2ps package. # Copyright (C) 1999 Free Software Foundation, Inc. # # Dmitry S. Sivachenko <dima@Chg.RU>, 1999i,2000,2001,2002. # Yuri Kozlov <yuray@komyakino.ru>, 2019, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-02-04 15:37+0300\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" "Language-Team: Russian <gnu@d07.ru>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 20.12.0\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "пропущен аргумент для «%s»" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "не удается создать файл «%s»" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "не удается открыть канал на «%s»" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Делегирование «%s», от %s к %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Приложения, настроенные для делегирования" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "«%s» является каталогом" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "не удается открыть файл «%s»" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "не удается получить информацию о файле «%s»" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 страница на 1 листе]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu страницы на 1 листе]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu страниц на %zu листах\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Всего: 1 страница на 1 листе] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Всего: %zu страницы на 1 листе] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Всего: %zu страниц на %zu листах] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 строка усечена]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu строк усечено]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Выходной поток пуст]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, делегирован %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): завершился с ошибкой. Проигнорировано]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (непечатаемый): игнорирован]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (двоичный): игнорирован]\n" #: src/generate.c:350 msgid "plain" msgstr "простой" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "конец строки внутри строковой константы" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "конец строки в %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "получен SIG%s" #: src/main.c:235 msgid "heavy" msgstr "жирный" #: src/main.c:239 msgid "normal" msgstr "обычный" #: src/main.c:243 msgid "none" msgstr "минимальный" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "да" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "нет" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Параметры настройки %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Листы:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " бумага по умолчанию = %s, %s\n" " раскладка листа = %zu x %zu, %s\n" " рамки = %s\n" " выравнивание файла = %s\n" " внутренняя граница = %u\n" #: src/main.c:339 msgid "portrait" msgstr "вертикально" #: src/main.c:339 msgid "landscape" msgstr "горизонтально" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u знаков в строке" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u строк на странице" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "размер шрифта равен %gpt" #: src/main.c:363 msgid "each line" msgstr "каждая строка" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "каждые %u строк" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Виртуальные страницы:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " номера строк = %s\n" " формат = %s\n" " шаг табуляции = %u\n" " непечатаемый формат = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Заголовки:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " верхний колонтитул = %s\n" " левый нижний = %s\n" " нижний колонтитул = %s\n" " правый нижний = %s\n" " левый заголовок = %s\n" " центральный заголовок = %s\n" " правый заголовок = %s\n" " подкладка = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Входные данные:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " усечение строк = %s\n" " интерпретация = %s\n" " конец строки = %s\n" " кодировка = %s\n" " заголовок документа = %s\n" " вводная часть = %s\n" " печатать всегда = %s\n" " делегирование = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "выбран автоматически" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Структурная печать:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " набор стилей = %s\n" " уровень выделения = %s\n" " уровень усечения = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "никогда не создавать резервные копии" #: src/main.c:456 msgid "simple backups of every file" msgstr "простое резервное копирование каждого файла" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "Нумерованные копии для уже пронумерованных файлов,\n" " и простое резервное копирование для остальных" #: src/main.c:466 msgid "numbered backups of every file" msgstr "нумерованные резервные копии каждого файла" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Выходные данные:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " приемник = %s\n" " контроль версий = %s\n" " суффикс резервной копии = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " идентификатор версии = %s\n" " Описание принтера (ОП) = %s\n" " ОП по умолчанию = %s\n" " формат метки страницы = %s\n" " количество копий = %u\n" " число сторон на листе = %s\n" " определения устройства страницы = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " определения statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " предварительная подача страницы = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Внутренние параметры:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " уровень подробности = %u\n" " команда file = %s\n" " библиотек путей = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Использование: %s [ПАРАМЕТРЫ]… ФАЙЛ…\n" "\n" "Преобразовывает ФАЙЛ(ы) или стандартный вход в PostScript. По умолчанию " "вывод\n" "посылается на принтер по умолчанию. Файл вывода можно задать через\n" "параметр -o.\n" "\n" "Аргументы, являющиеся обязательными для длинных параметров, также являются\n" "обязательными для коротких. Длинные параметры, отмеченные «*», требуют в\n" "качестве аргумента yes/no, соответствующий короткий параметр\n" "трактуется как «yes».\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Задачи:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version вывести версию\n" " --help вывести эту справку\n" " --guess показать распознаваемые типы ФАЙЛОВ\n" " --which показать полный путь библиотечных файлов с названиями " "ФАЙЛЫ\n" " --glob показать полный путь библиотечных файлов,\n" " соответствующих ФАЙЛАМ\n" " --list=defaults вывести установки и параметры по умолчанию\n" " --list=ТЕМА подробный список по ТЕМЕ (delegations, encodings, " "features,\n" " variables, media, ppd, printers, prologues, style-" "sheets,\n" " user-options)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "После выполнения задачи, успешно завершиться. Подробный список может\n" "предоставить дополнительную помощь по конкретным возможностям.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Глобальные:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent бесшумная работа\n" " -v, --verbose[=УРОВЕНЬ] включить подробный режим, или\n" " установить его УРОВЕНЬ\n" " -=, --user-option=ПАРАМЕТР использовать определенное пользователем\n" " сокращение для ПАРАМЕТРА\n" " --debug включить режим отладки\n" " -D, --define=ПЕРЕМ[:ЗНАЧЕНИЕ] удалить переменную ПЕРЕМ или\n" " присвоить ей ЗНАЧЕНИЕ\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=ИМЯ использовать выходной носитель ИМЯ\n" " -r, --landscape печатать в горизонтальном режиме\n" " -R, --portrait печатать в вертикальном режиме\n" " --columns=ЧИСЛО количество столбцов на листе\n" " --rows=ЧИСЛО количество строк на листе\n" " --major=НАПРАВЛ вначале заполнять (НАПРАВЛ=) строк, или " "столбцов\n" " -1, -2, ..., -9 предопределенные размеры шрифтов и раскладки " "для\n" " виртуальных страниц 1..9\n" " -A, --file-align=РЕЖИМ выравнивать отдельные файлы в соответствии с\n" " РЕЖИМОМ (fill, rank page, sheet или number)\n" " -j, --borders* печать рамки вокруг столбцов\n" " --margin[=ЧИСЛО] установить внутреннюю границу размером ЧИСЛО\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Параметры -1.. -9 влияют на некоторые основные параметры для установки\n" "предопределенных раскладок с 80 колонками. Таким образом, порядок важен:\n" "«-R -f40 -2» эквивалентно «-2». Для изменения раскладки, используйте " "«-2Rf40»,\n" "или комбинируйте простые параметры («--columns», «--font-size» и т. д.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=ЧИСЛО помещать номер строки через каждые ЧИСЛО строк\n" " -C синоним для --line-numbers=5\n" " -f, --font-size=РАЗМЕР использовать для текста шрифт указанного " "РАЗМЕРА\n" " -L, --lines-per-page=ЧИСЛО масштабировать шрифт так, чтобы печатать ЧИСЛО\n" " строк на виртуальной странице\n" " -l, --chars-per-line=ЧИСЛО масштабировать шрифт так, чтобы печатать ЧИСЛО\n" " столбцов на виртуальной странице\n" " -m, --catman обрабатывать файл как man-страницы\n" " (то же, что -L66)\n" " -T, --tabsize=ЧИСЛО установить шаг табуляции в ЧИСЛО\n" " --non-printable-format=ФМТ указать формат вывода непечатных символов\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Заголовки:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header выключить верхние колонтитулы\n" " -b, --header[=ТЕКСТ] включить верхние колонтитулы\n" " -u, --underlay[=ТЕКСТ] печатать ТЕКСТ под каждой страницей\n" " --center-title[=ТЕКСТ] установить заголовок страницы в ТЕКСТ\n" " --left-title[=ТЕКСТ] установить левый и правый заголовки в " "ТЕКСТ\n" " --right-title[=ТЕКСТ]\n" " --left-footer[=ТЕКСТ] установить нижние колонтитулы листа в " "ТЕКСТ\n" " --footer[=ТЕКСТ]\n" " --right-footer[=ТЕКСТ]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "" "ТЕКСТы могут использовать специальные экранирующие последовательности.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ДИАПАЗОН] выбрать страницы для печати\n" " -c, --truncate-lines* усекать длинные строки\n" " -i, --interpret* интерпретировать символы tab, bs и ff\n" " --end-of-line=ТИП задать символ eol (ТИП: r, n, nr, rn, any)\n" " -X, --encoding=ИМЯ использовать входную кодировку ИМЯ\n" " -t, --title=ИМЯ установить имя задачи\n" " --stdin=ИМЯ задать имя для входного файла stdin\n" " --print-anyway* принудительная печать в двоичном режиме\n" " -Z, --delegate* делегировать файлы другому приложению\n" " --toc[=ТЕКСТ] создать оглавление\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "При включенном делегировании, a2ps может использовать другие приложения для\n" "обработки файлов, которые не должны печататься в необработанном виде, " "например\n" "HTML, PostScript, PDF и т. д.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=ЯЗЫК] включить структурную печать\n" " (установить стиль ЯЗЫК)\n" " --highlight-level=УРОВЕНЬ установить уровень выделения УРОВЕНЬ\n" " УРОВЕНЬ может принимать значения none,\n" " normal или heavy\n" " -g синоним для --highligh-level=heavy\n" " --strip-level=ЧИСЛО уровень усечения комментариев\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=ФАЙЛ направить вывод в ФАЙЛ. Если ФАЙЛ равен «-»,\n" " направить вывод в stdout.\n" " --version-control=СЛОВО перекрывает номер текущей версии\n" " --suffix=СУФФИКС перекрывает суффикс резервной копии\n" " -P, --printer=ИМЯ направить вывод на принтер ИМЯ\n" " -d направить вывод на принтер по умолчанию\n" " (поведение по умолчанию)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=ФАЙЛ включить ФАЙЛ.pro в качестве\n" " вводной части PostScript\n" " --ppd[=КЛЮЧ] автоматический выбор определения принтера\n" " или установка его равным КЛЮЧ\n" " -n, --copies=ЧИСЛО печатать ЧИСЛО копий каждой страницы\n" " -s, --sides=РЕЖИМ установить дуплексный РЕЖИМ («1» или " "«simplex»,\n" " «2» или «duplex», «tumble»)\n" " -S, --setpagedevice=K[:V] передать описание page device на вывод\n" " --statusdict=K[:[:]V] передать описание statusdict на вывод\n" " -k, --page-prefeed разрешить предварительную подачу страницы\n" " -K, --no-page-prefeed запретить предварительную подачу страницы\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "По умолчанию, a2ps настроен так, чтобы делать то, что вы хотите, доверьтесь\n" "ему. Для структурного отображения содержимого каталога «src» и оглавления, " "и\n" "посылки результата на принтер «lw», введите\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Для обработки файлов «sample.ps» и «sample.html» и отображения результата\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "Для обработки почтового ящика и создания 4 страниц на листе,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Для печати в виде книги на принтере по умолчанию, поддерживающем\n" "дуплексный режим\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Содержание" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "не удается обработать «%s», который требует a2ps версии %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "неожиданный знак «%c»" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "слишком много включений" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "не определен ключ для «%s»" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "не удается найти файл «%s»" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "режим автоматического выбора стилей отменен" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "ошибка работы file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "не удается скомпилировать регулярное выражение «%s»: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Известные стилевые наборы" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "не удается найти стилевой набор «%s»: используется простой стиль" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "неверный номер версии «%s»" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "пробел (т. е. « »)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "восьмеричное число (т. е. «\\001» и т.д.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "шестнадцатеричное число (т. е. «\\x0a» и т. д.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "управляющие символы (т. е. «^C», «M-^C» и т.д.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (т. е. «C-c», «M-C-c» и т. д.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "знак вопроса (т. е. «?»)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Динамический массив «%s»:\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tзагружено: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\tисходный размер: %zu, увеличение: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Динамическая строка:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "слишком много косых шрифтов: «%s»" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "неверный параметр «%s»" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Известные кодировки" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "неполная информация о начертаниях" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "не удается закрыть каталог «%s»" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "неверный аргумент «%s» для «%s»" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Правильными аргументами являются целые числа n, такие как: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" "Правильными аргументами являются числа с плавающей точкой f, такие как: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "неизвестная кодировка «%s»" #: liba2ps/madir.c:51 msgid "rows first" msgstr "сначала строки" #: liba2ps/madir.c:54 msgid "columns first" msgstr "сначала столбцы" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "неизвестный носитель «%s»" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Известные носители" #: liba2ps/media.c:189 msgid "Name" msgstr "Имя" #: liba2ps/media.c:190 msgid "dimensions" msgstr "размеры" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Известные переменные" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: пропущено «%c» для экранирующей последовательности %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Печатал %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Печатал %s с %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "не удается получить имя текущего рабочего каталога" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: слишком длинный аргумент для экранирующей последовательности %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%b %d, %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%d %B %Y, %A" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: неизвестный «%s» код экранирующей последовательности «%c» (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Страница %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Страница %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "" "%s: неверный разделитель «%s%c» для экранирующей последовательности «%s»" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: неверный аргумент для экранирующей последовательности %s%c" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Страница %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "команда вывода" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "По команде «%s --help» можно получить дополнительную информацию.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "неверный идентификатор переменной «%s»" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "неверное начертание «%s»" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "«%s» не имеет соответствующей «%s»" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Известные шрифты" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Пусто.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Известные описания PostScript-принтера" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "недопустимый интервал «%s»" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Принтер по умолчанию" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Неизвестный принтер" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "нет команды для «%s» (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "отправлен на стандартный вывод" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "отправлен на принтер по умолчанию" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "сохранен в файл «%s»" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "отправлен на принтер «%s»" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Известные устройства вывода (принтеры и т. д.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Известные вводные части" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "шрифт %f слишком большой" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "«%s» является двоичным файлом, печать прервана" #: liba2ps/userdata.c:104 msgid "user" msgstr "пользователь" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Неизвестный пользователь" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "неизвестный пользовательский параметр `«%s»" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Известные пользовательские параметры" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "память исчерпана" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "не удается переименовать файл «%s» в «%s»" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "файл «%s» восстановлен" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "произвольного типа" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Новости, обновления и документацию можно найти по адресу:\n" #~ "http://www.gnu.org/software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Об ошибках в программе сообщайте по адресу <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana и Masayuki Hatta" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "неизвестная кодировка «%s», игнорирована" #~ msgid "Written by %s.\n" #~ msgstr "Автор программы — %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Это свободное программное обеспечение; условия копирования приведены в \n" #~ "исходных текстах программы. Нет НИКАКИХ гарантий; даже гарантии " #~ "КОММЕРЧЕСКОЙ\n" #~ "ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ.\n" #~ msgid "write error" #~ msgstr "ошибка записи" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "неверное определение принтера «%s»: %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "устаревшая запись «%s». Игнорирована" #~ msgid "Page %d/%d" #~ msgstr "Страница %d/%d" #~ msgid "`" #~ msgstr "«" #~ msgid "'" #~ msgstr "»" #~ msgid "invalid argument %s for `%s'" #~ msgstr "неверный аргумент %s для «%s»" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "неоднозначный аргумент %s для «%s»" #~ msgid "Valid arguments are:" #~ msgstr "Правильные аргументы:" #~ msgid "Unknown system error" #~ msgstr "Неизвестная системная ошибка" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: двусмысленный параметр «%s»\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: у параметра «--%s» не может быть аргумента\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: у параметра «%c%s» не может быть аргумента\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: для параметра «%s» требуется аргумент\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: нераспознанный параметр «--%s»\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: нераспознанный параметр «%c%s»\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: недопустимый параметр — %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: неверный параметр — %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: для параметра требуется аргумент — %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: параметр «-W %s» неоднозначен\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: у параметра «-W %s» не может быть аргумента\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/sl.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000025477�14445132166�011127� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�����s��x���������� ����������K��������.�� ��������,��/���L��<���|��'�����*�����*��� ��&���7��"���^�������#����� ��������������������������������� �������%���3��#���Y�� ���}��������������������������� ����� ������������� ����� �����! �����( ��*���1 ��>��\ ��-���!�����!�����!��9���!��1���'"�����Y"�����l"�����#��*���"#��*���M#��0���x#�����#�����#��&���#��2���#�����-$�����>$��$���Y$��!���~$��6���$��$���$�� ���$��B���%�����`%��+���~%��"���%��"���%��9���%��0���*&�����[&�����{&�����&�� ���&��!���&�� ���&��*���&����� '�����#'�����;'��'���B'�����j'�� ���'�����'�����'�����'��+���'��#���(�����@(�����I(�����g(�����(��&���(��"���(�����(�� ���(��$���(��g���)��#���l)�� ���)�� ���)�� ���)�����)�����)�����)�����)����� *�����*�����;*�����W*�� ���s*�����*�����*�����*�����*�����*��"���+�� ���2+�����<+�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2009-05-05 16:05+0200 Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com> Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net> Language: sl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0); � ne obstaja. � koncni cilj = %s preverjanje razlicice = %s podaljsek imena varnostne kopije = %s � glava = %s vznožje levo = %s vznožje = %s vznožje desno = %s naslov levo = %s naslov sredina = %s naslov desno = %s predloga = %s � vnaprejsnji premik strani = %s � opis statusdict� slogovna predloga = %s nivo poudarjanja = %s nivo zadrzevanja = %d � porezane vrstice = %s prevedi = %s konec vrstice = %s kodiranje = %s ime dokumenta = %s predznaki = %s vseeno natisni = %s prenos izvedbe ukazov = %s �%A %B %d, %Y�%s, pooblastilo preneseno na %s�%s: neveljaven argument za ubezno sekvenco %s%c�%s: neveljaven locevalni znak `%s%c' za ubezno sekvenco `%s'�%s: manjka `%c' za ubezno sekvenco %s%c�%s: predolg argument za ubezno sekvenco %s�%s: neznana `%s' ubezna sekvenca `%c' (%d)�Aplikacije prirejene za prenos izvedbe�Trenutno stanje nastavitev %s %s �Privzeti tiskalnik�Prenos izvedbe »%s«, z %s na %s �Globalno: �Glave strani: �Glava: �Vhod: �Notranje spremenljivke: �Znana kodiranja�Znane oblike crk�Znano prenosno sredstvo�Znane izhodne enote (tiskalniki ipd.)�Znani opisi PostScript tiskalnikov �Znani prologi�Prepoznane slogovne predloge�Pripoznane moznosti�Znane spremenljivke�Ime�Izhod: �Postscript: �Lepotisk: �Natiskano z %s�Natiskano z %s iz %s�Listov: �Kazalo�Naloge: �BESEDILO lahko vsebuje ubežna zaporedja. �Izbire -1 do -9 vplivajo na več osnovnih parametrov, tako da nastavijo vnaprej določeno postavitev z 80 znaki v vrstici. Vrstni red je zato pomemben: »-R -f40 -2« je isto kot »-2«. Če bi radi spremenili postavitev, uporabite »-2Rf40« ali pa sestavite osnovne izbire (»--columns«, »--font-size« ipd.). �Poskusi z `%s --help' dobiti vec informacij. �Neznani tiskalnik�Neznani uporabnik�Veljavni so argumenti z plavajoco vejico f , tako da: %s �Veljavni argumenti so cela stevila n tako da: %s �Navidezne strani: �Pri uporabi prenosa izvedbe lahko a2ps uporabi druge programe za obdelavo datotek, ki jih ne tiskamo v surovi obliki, npr. HTML, postscript, PDF ipd. �[%s (%s): ena stran na listu] �[%s (%s): neuspešno. Ukaz ne bo izveden] �[%s (binarna oblika): Ukaz ne bo izveden] �[%s (ni mogoče natisniti): Ukaz ne bo izveden] �[ena vrstica prelomljena] �[Brez izpisa] �[Skupno: ena stran na enemu listu] %s �»%s« je binarna datoteka, tiskanje je prekinjeno�»%s« je imenik�`%s' brez vsebovanega `%s'�samodejna izbira sloga je preklicana�imenika »%s« ni mogoče zapreti�regularnega izraza »%s« ni mogoče raztolmačiti: %s�datoteke »%s« ni mogoče ustvariti�datoteke »%s« ni mogoče najti�slogovne predloge »%s« ni najti: nadomeščamo z osnovnim slogom�delovni imenik mi ni dostopen�podatkov o datoteki »%s« ni mogoče najti�cevovoda »%s« ni mogoče odpreti�datoteke »%s« ni mogoče odpreti�ni mogoče obdelati »%s«, ki zahteva a2ps različice %s�datoteke »%s« ni mogoče preimenovati v »%s«�caret (npr., `^C', `M-^C' itd.)�najprej stolpci�mere�vsaka vrstica�emacs (npr., `C-c', `M-C-c' itd.)�znak za konec vrstice znotraj %s�znak za konec vrstice v znakovni konstanti�pisava %f je prevelika�velikost pisave je %gpt�krepko�hexadecimalno stevilo (npr., `\x0a' itd�nezadostno poznavanje faces�neveljaven argument `%s' za `%s'�neveljavna oblika `%s'�neveljaven interval `%s'�neveljavna izbira »%s«�neveljavni oznacevalec `%s za spremenljivko�neveljavna oznaka različice »%s«�ležeče�manjkajoč argument za »%s«�vedno brez varnostne kopije�ne�ni ukaza, določenega za »%s« (%s%s)�za »%s« ni določen noben ključ�brez�običajno�vedno oštevilčene varnostne kopije�oštevilčene varnostne kopije datotek, ki take že imajo, sicer enostavne�oktalno stevilo (npr., `\001' itd.)�izhodni ukaz�običajen�pokončno�vprašaj (t.j. »?«)�povrnjena datoteka »%s«�najprej vrstice�shranjeno v datoteko »%s«�samodejni izbor�poslano na privzeti tiskalnik�poslano na tiskalnik »%s«�poslano na standardni izhod�vedno enostavne varnostne kopije�presledek (t.j. » «)�preveč vključitev�nepričakovan znak »%c«�neznano kodiranje `%s'�neznano prenosno sredstvo `%s'�neznana uporabniška izbira »%s«�uporabnik�ja��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/sl.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000130707�14445132165�010753� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode:po; coding:utf-8; -*- Slovenski prevod sporočil paketa a2ps # Copyright (C) 1999, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Igor Furlan <IgorF@ix.netcom.com>, 1999 # Primož Peterlin <primozz.peterlin@gmail.com>, 2009 # # $Id: a2ps-4.14.sl.po,v 1.2 2009/05/05 14:06:11 peterlin Exp $ msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2009-05-05 16:05+0200\n" "Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n" "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " "n%100==4 ? 3 : 0);\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "manjkajoč argument za »%s«" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "datoteke »%s« ni mogoče ustvariti" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "cevovoda »%s« ni mogoče odpreti" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Prenos izvedbe »%s«, z %s na %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Aplikacije prirejene za prenos izvedbe" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "»%s« je imenik" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "datoteke »%s« ni mogoče odpreti" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "podatkov o datoteki »%s« ni mogoče najti" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): ena stran na listu]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d strani na enem listu]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d strani na %d listih]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Skupno: ena stran na enemu listu] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Skupno: %d strani na enemu listu] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Skupno: %d strani na %d listih] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[ena vrstica prelomljena]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d vrstic prelomljenih]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Brez izpisa]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, pooblastilo preneseno na %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): neuspešno. Ukaz ne bo izveden]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (ni mogoče natisniti): Ukaz ne bo izveden]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binarna oblika): Ukaz ne bo izveden]\n" #: src/generate.c:350 msgid "plain" msgstr "običajen" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "znak za konec vrstice v znakovni konstanti" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "znak za konec vrstice znotraj %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "prejeti signal %d: %s" #: src/main.c:235 msgid "heavy" msgstr "krepko" #: src/main.c:239 msgid "normal" msgstr "običajno" #: src/main.c:243 msgid "none" msgstr "brez" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ja" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ne" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Trenutno stanje nastavitev %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Listov:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " medij = %s%s, %s\n" " postavitev strani= %d x %d, %s\n" " margine = %s\n" " poravnava = %s\n" " notranji rob = %d\n" #: src/main.c:339 msgid "portrait" msgstr "pokončno" #: src/main.c:339 msgid "landscape" msgstr "ležeče" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d znakov v vrstici" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d vrstic na stran" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "velikost pisave je %gpt" #: src/main.c:363 msgid "each line" msgstr "vsaka vrstica" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "vsakih %d vrstic" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Navidezne strani:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " število vrstic = %s\n" " oblika = %s\n" " dolzina tabularja = %d\n" " oblika nenatisljivih znakov = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Glave strani:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " glava = %s\n" " vznožje levo = %s\n" " vznožje = %s\n" " vznožje desno = %s\n" " naslov levo = %s\n" " naslov sredina = %s\n" " naslov desno = %s\n" " predloga = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Vhod:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " porezane vrstice = %s\n" " prevedi = %s\n" " konec vrstice = %s\n" " kodiranje = %s\n" " ime dokumenta = %s\n" " predznaki = %s\n" " vseeno natisni = %s\n" " prenos izvedbe ukazov = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "samodejni izbor" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Lepotisk:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " slogovna predloga = %s\n" " nivo poudarjanja = %s\n" " nivo zadrzevanja = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "vedno brez varnostne kopije" #: src/main.c:456 msgid "simple backups of every file" msgstr "vedno enostavne varnostne kopije" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "oštevilčene varnostne kopije datotek, ki take že imajo,\n" " sicer enostavne" #: src/main.c:466 msgid "numbered backups of every file" msgstr "vedno oštevilčene varnostne kopije" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Izhod:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " koncni cilj = %s\n" " preverjanje razlicice = %s\n" " podaljsek imena varnostne kopije = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "Postscript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " carobna stevilka = %s\n" " Opis tiskalnika (PPD) = %s\n" " Vnaprej pripravljen PPD = %s\n" " oblika nalepke = %s\n" " stevilo kopij = %d\n" " stevilo strani na listu = %s\n" " opis strani = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " opis statusdict" #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " vnaprejsnji premik strani = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Notranje spremenljivke:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " raven poročanja = %d\n" " ukazna datoteka = %s\n" " pot do knjižnic = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Uporaba: %s [IZBIRA]... [DATOTEKA]...\n" "\n" "DATOTEKO ali standardni vhod pretvori v postscript. Privzeto se izhod " "pošlje\n" "na privzeti tiskalnik. Zapis izhod v datoteko se lahko določi z izbiro -o.\n" "\n" "Argumenti, ki so navedeni kot obvezni pri dolgi obliki izbire, so obvezni\n" "tudi pri kratki obliki. Dolge izbire, označene z *, zahtevajo argument " "oblike \n" "»ja«/»ne«, odgovarjajoče kratke oblike pomenijo »ja«.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Naloge:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version različica programa\n" " --help ta navodila\n" " --guess izpiši samodejno uganjeno zvrst DATOTEKE\n" " --which izpiši polno pot do knjićnic z imenom DATOTEKA\n" " --glob izpiši polno pot do knjićnic, ki se ujema z vzorcem " "DATOTEKA\n" " --list=defaults izpiši privzete nastavitve in parametre\n" " --list=KATEGORIJA izpiši znane možnosti v posametni KATEGORIJI \n" " (delegations, encodings, features, variables, media, \n" " ppd, printers, prologues, style-sheets, user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Po uspešno opravljeni nalogi program zaključi in vrne kodo za uspešen " "zaključek.\n" "Podrobnejši seznami lahko nudijo dodatno pomoč o posameznih lastnostih.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Globalno:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent brez večine opozoril o napakah\n" " -v, --verbose[=RAVEN] nastavi RAVEN javljanja o poteku programa\n" " -= --user-option=IZBIRA uporabniško določena okrajšana IZBIRA\n" " --debug potek z vklopljenimi možnostmi za iskanje " "napak\n" " -D, --define=KLJUČ[:VREDNOST] oddefiniraj KLJUČ, ali ga nastavi na " "VREDNOST\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=IME določimo IME izhodnega sredstva\n" " -r, --landscape natisni v ležeči obliki\n" " -R, --portrait natisni v pokončni obliki\n" " --columns=ŠTEVILO ŠTEVILO znakov v vrstici\n" " --rows=STEVILO ŠTEVILO vrstic na strani\n" " --major=SMER najprej napolni (SMER=) rows, ali columns\n" " -1, -2, ..., -9 vnaprej določena nastavitev 1.. 9 \n" " -A, --file-allign=NAČIN poravnaj pozamezne datoteke glede na NAČIN (fill, " "rank\n" " page, sheet, ali number)\n" " -j, --borders* dodaj okvir okrog stolpcev\n" " --margin[=ŠTEVILO] doloći notranji rob na ŠTEVILO\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Izbire -1 do -9 vplivajo na več osnovnih parametrov, tako da nastavijo " "vnaprej\n" "določeno postavitev z 80 znaki v vrstici. Vrstni red je zato pomemben: \n" "»-R -f40 -2« je isto kot »-2«. Če bi radi spremenili postavitev, uporabite \n" "»-2Rf40« ali pa sestavite osnovne izbire (»--columns«, »--font-size« " "ipd.). \n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=STEVILO vsakih STEVILO vrstic zapisi stevilko " "vrstice\n" " -C okrajsava za --line-numbers=5\n" " -f, --font-size=VELIKOST uporabi VELIKOST znaka za tekst\n" " -L, --lines-per-page=STEVILO priredi velikost znakov tako, da bo " "natisnjeno STEVILO vrstic na list\n" " -l, --chars-per-line=STEVILO priredi velikost znakov tako, da bo " "natisnjeno STEVILO stolpcev na list\n" " -m, --catman predelaj FAJL tako, da bo uporaben za man " "page (isto kot -L66)\n" " -T, --tabsize=STEVILO nastavi velikost tabulatorja na STEVILO\n" " --non-printable-format=FMT doloci kako naj bodo nenatisljivi znaki " "natiskani\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Glava:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header strani naj bodo brez glave\n" " -b, --header[=BESEDILO] nastavi BESEDILO v glavi strani\n" " -u, --underlay[=BESEDILO] podloži izpis z BESEDILOM\n" " --center-title[=BESEDILO] osredinjeni NASLOV strani\n" " --left-title[=BESEDILO] levi NASLOV strani\n" " --right-title[=BESEDILO] desni NASLOV strani\n" " --left-footer[=BESEDILO] nastavi BESEDILO v levem vznožju strani\n" " --footer[=BESEDILO] nastavi BESEDILO v vznožju strani\n" " --right-footer[=BESEDILO] nastavi BESEDILO v desnem vznožju strani\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "BESEDILO lahko vsebuje ubežna zaporedja.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=OBMOCJE] izberi strani za tiskanje\n" " -c, --truncate-lines* skrajsaj dolge vrstice\n" " -i, --interpret* prevedi znake tab, bs and ff (tabularij, premik " "za presledek nazaj, naslednja stran\n" " --end-of-line=TYPE doloci znak za konec vrstice (TYPE: r, n, nr, " "rn, any)\n" " -X, --encoding=IME uporabi vhodno kodiranje IME\n" " -t, --title=NAME doloci ime opravila\n" " --stdin=NAME doloci ime za standardni vhodni fajl stdin\n" " --print-anyway* natisni fajl ne glede na obliko\n" " -Z, --delegate* prenesi fajle v izvrsbo drugemu programu\n" " --toc[=TEXT] ustvari Tabelo vsebine\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Pri uporabi prenosa izvedbe lahko a2ps uporabi druge programe za obdelavo\n" "datotek, ki jih ne tiskamo v surovi obliki, npr. HTML, postscript, PDF ipd.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=JEZIK] aktiviraj pretty-printing ( stil je definiran " "z JEZIK)\n" " --highlight-level=NIVO doloci jakost povdarkov z NIVO\n" " NIVO je lahko none(brez povdarjanja),\n" " normal(obicajni povdarek),\n" " heavy(mocno povdarjeno),\n" " -g okrajsava za --highlight-level=heavy\n" " --strip-level=NUM odstrani NUM nivojev za komentar\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=DATOTEKA izhod zapiši v DATOTEKO. Če je DATOTEKA podana\n" " kot »-«, piši na standardni izhod.\n" " --version-control=BESEDA določi oznako različice\n" " --suffix=PRIPONA določi PRIPONO varnostne kopije\n" " -P, --printer=TISKALNIK izpisuj na podani TISKALNIK\n" " -d izpisuj na privzeti tiskalnik (privzeta " "možnost)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FAJL uporabi FAJL.pro kot PostScript prologue\n" " --ppd[=TIPKA] uporabi avtomaticno izbran PPD oziroma ga " "pripni na TIPKO\n" " -n, --copies=STEVILO natiskaj STEVILO kopij vsake strani\n" " -s, --sides=NACIN nastavi NACIN tiskanja (`1' ali `simplex' " "enostransko,\n" " `2' ali `duplex' " "dvostransko,\n" " `tumble')\n" " -S, --setpagedevice=K[:V] vstavi definicijo za stran v izhod\n" " --statusdict=K[:[:]V] vstavi definicijo za statusdict v izhod\n" " -k, --page-prefeed avtomatski zamik strani\n" " -K, --no-page-prefeed deaktiviraj avtomatski zamik strani\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Privzete možnosti a2ps so nastavljene tako, da ustrezajo večini " "uporabnikov.\n" "Lepopisni odtis vsebine imenika »src« s kazalom na tiskalnik »lw« dosežemo " "z:\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Datoteki »zgled.ps« in »zgled.html« obdelamo in prikažemo:\n" "\n" " $ a2ps -P display zgled.ps zgled.html\n" "\n" "Poštni predal, 4 strani na list:\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Odtis knjižice na privzetem tiskalniku, ki podpira dvostranski tisk:\n" "\n" " $ a2ps -=book knjizica.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Kazalo" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "ni mogoče obdelati »%s«, ki zahteva a2ps različice %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "nepričakovan znak »%c«" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "preveč vključitev" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "za »%s« ni določen noben ključ" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "datoteke »%s« ni mogoče najti" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "samodejna izbira sloga je preklicana" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "regularnega izraza »%s« ni mogoče raztolmačiti: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Prepoznane slogovne predloge" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "slogovne predloge »%s« ni najti: nadomeščamo z osnovnim slogom" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "neveljavna oznaka različice »%s«" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "presledek (t.j. » «)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "oktalno stevilo (npr., `\\001' itd.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimalno stevilo (npr., `\\x0a' itd" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (npr., `^C', `M-^C' itd.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (npr., `C-c', `M-C-c' itd.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "vprašaj (t.j. »?«)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "neveljavna izbira »%s«" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Znana kodiranja" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "nezadostno poznavanje faces" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "imenika »%s« ni mogoče zapreti" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "neveljaven argument `%s' za `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Veljavni argumenti so cela stevila n tako da: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Veljavni so argumenti z plavajoco vejico f , tako da: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "neznano kodiranje `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "najprej vrstice" #: liba2ps/madir.c:54 msgid "columns first" msgstr "najprej stolpci" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "neznano prenosno sredstvo `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Znano prenosno sredstvo" #: liba2ps/media.c:189 msgid "Name" msgstr "Ime" #: liba2ps/media.c:190 msgid "dimensions" msgstr "mere" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Znane spremenljivke" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: manjka `%c' za ubezno sekvenco %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Natiskano z %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Natiskano z %s iz %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "delovni imenik mi ni dostopen" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: predolg argument za ubezno sekvenco %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%b %d, %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: neznana `%s' ubezna sekvenca `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Stran %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Stran %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: neveljaven locevalni znak `%s%c' za ubezno sekvenco `%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: neveljaven argument za ubezno sekvenco %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Stran %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "izhodni ukaz" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Poskusi z `%s --help' dobiti vec informacij.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "neveljavni oznacevalec `%s za spremenljivko" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "neveljavna oblika `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' brez vsebovanega `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Znane oblike crk" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " ne obstaja.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Znani opisi PostScript tiskalnikov " #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "neveljaven interval `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Privzeti tiskalnik" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Neznani tiskalnik" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "ni ukaza, določenega za »%s« (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "poslano na standardni izhod" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "poslano na privzeti tiskalnik" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "shranjeno v datoteko »%s«" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "poslano na tiskalnik »%s«" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Znane izhodne enote (tiskalniki ipd.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Znani prologi" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "pisava %f je prevelika" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "»%s« je binarna datoteka, tiskanje je prekinjeno" #: liba2ps/userdata.c:104 msgid "user" msgstr "uporabnik" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Neznani uporabnik" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "neznana uporabniška izbira »%s«" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Pripoznane moznosti" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Spomin je izcrpan" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "datoteke »%s« ni mogoče preimenovati v »%s«" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "povrnjena datoteka »%s«" #~ msgid "any type" #~ msgstr "katerikoli tip" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Novosti, posodobitve in dokumentacija: http://www.gnu.org/software/a2ps/\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Napake v programu sporočite na <bug-a2ps@gnu.org>.\n" #~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge." #~ "net>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Vse pravice pridržane © 1988-1993 Miguel Santana\n" #~ "Vse pravice pridržane © 1995-2000 Akim Demaille in Miguel Santana\n" #~ "Vse pravice pridržane © 2007 Akim Demaille, Miguel Santana in " #~ "Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "neznano kodiranje »%s«, ni uporabljeno" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Copyright © 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Avtor(ica): %s\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "To je prost program; pogoji, pod katerimi ga lahko razširjate, so " #~ "navedeni\n" #~ "v izvorni kodi. Za program ni NOBENEGA jamstva, niti jamstva USTREZNOSTI " #~ "ZA\n" #~ "PRODAJO ali PRIMERNOSTI ZA UPORABO.\n" #~ msgid "write error" #~ msgstr "napaka pri pisanju" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "neveljavna definicija za tiskalnik »%s«: %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "nepotrebni vnos `%s'. Ni upostevan" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Stran %d/%d" #~ msgid "`" #~ msgstr "»" #~ msgid "'" #~ msgstr "«" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "neveljaven argument %s za »%s«" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "dvoumen argument %s za »%s«" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Veljavni argumenti so:" #~ msgid "Unknown system error" #~ msgstr "Nepoznana sistemska napaka" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: izbira »%s« je dvoumna\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: izbira »%s« zahteva argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: izbira »--%s« ni prepoznana\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: izbira »%c%s« ni prepoznana\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: neveljavna izbira -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: neveljavna izbira -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: izbira zahteva argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: izbira »-W %s« je dvoumna\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n" #~ msgid "end-of-line in regular expression" #~ msgstr "znak-za-konec-vrstice v normalnem stavku" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "\n" #~ "Vse pravice pridrzane (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Vse pravice pridrzane (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel " #~ "Santana\n" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "Naloga uspecno opravljena:\n" #~ msgid "" #~ "Written by <Akim.Demaille@inf.enst.fr> and <Miguel.Santana@st.com>.\n" #~ msgstr "" #~ "Program sta napisala <Akim.Demaille@inf.enst.fr> in <Miguel.Santana@st." #~ "com>\n" #~ "S prevodom se je trudil Igor Furlan <IgorF@ix.netcom.com>.\n" #~ msgid "no default command for option `-d'" #~ msgstr "ni vnaprej pripravljenega ukaza za izbor `-d'" #~ msgid " Report translation problems to <IgorF@ix.netcom.com>\n" #~ msgstr "" #~ "Sporoci neustrezne oziroma nevsecne prevode na naslov <IgorF@ix.netcom." #~ "com>\n" ���������������������������������������������������������a2ps-4.15.5/po/sr.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000076544�14445132166�011136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6��#���8��>���58�����t8��,��8����<����G@����^D����G����H����M����P����S�����U�� ��+V��]��6W�����X�����[Y��0���+Z��3���\Z��k���Z����Z�����\�����\�� ���\�����\��S���\��`���%]��I���]��I���]��E���^��"���`^��*���^�����^��H���_����_��+���b�����c��5���7c��$���mc�����c��!���c�����c�����c�� ���c�����d��!���d�����8d��(���Td��9���}d��A���d�����d��0���e��2���Je��%���}e�� ���e�� ���e�����e�����e�����e�����e��#��� f�����0f��'���Bf��!���jf�����f�����f��\���f����g��G���h�����4i��#���Ti����xi��]���l��Y���pl��%���l��%��l��:���n��1���Qn��,���n��4���n��,���n��<���o��)���Oo��#���yo��+���o��B���o��9��� p��4���Fp��W���{p��&���p��-���p��>���(q��E���gq��N���q��;���q��=���8r��[���vr��T���r��M���'s��<���us��;���s��Z���s��O���It��1���t�����t�����t��&���t�����u��3���+u��!���_u��-���u��-���u��4���u��%���v�����8v��B���Qv��4���v��<���v��*���w��*���1w��*���\w��=���w��3���w�����w��(��� x��1���3x��)���ex�����x��,���x��2���x�����x�����y��H���y�����_y��4���y�����.z�� ���Lz�����Yz��'���hz�����z��,���z�����z��-���z��%���{��<���={��(���z{��3���{��9���{�����|�����/|��:���M|��&���|��,���|��3���|��=���}�����N}�����_}�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps-4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-02-19 09:55+0100 Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com> Language-Team: Serbian <(nothing)> Language: sr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); � учитано: %zu/%zu (%2.1f%%) � изворна величина: %zu, прираст: %s %zu � Ништа. � --line-numbers=БРОЈ нека сваком БРОЈ линија претходи редни број -C алијас за „--line-numbers=5“ -f, --font-size=ВЕЛИЧИНА ВЕЛИЧИНА фонта (float) за тело текстатекста -L, --lines-per-page=БРОЈ прилагођава величину писма да би се добио БРОЈ редова по виртуелној страници -l, --chars-per-line=БРОЈ прилагођава величину писма да би се добио БРОЈ колона на виртуелној страници -m, --catman обрађује ДАТОТЕКУ страницу упутства (исто што и „-L66“) -T, --tabsize=БРОЈ вредност табулације је БРОЈ --non-printable-format=ФМТ формат за штампање нештампарских знакова � --prologue=ДАТОТЕКА укључује ДАТОТЕКА.pro као ПостСкрипт пролог --ppd[=КЉУЧ] самостални ППД избор или поставља на КЉУЧ -n, --copies=БРОЈ штампа БРОЈ примерака сваке странице -s, --sides=РЕЖИМ РЕЖИМ штампања („1“ или „simplex“, „2“ или „duplex“, „tumble“) -S, --setpagedevice=К[:В] прослеђује одредницу уређаја странице на излаз --statusdict=К[:[:]В] прослеђује одредницу стања речника на излаз -k, --page-prefeed укључује предслање стране -K, --no-page-prefeed скључује предслање стране � --version приказује издање --help приказује ово објашњење --guess извештава погођене врсте ДАТОТЕКА --which извештава целу путању датотека библиотеке под називом ДАТОТЕКЕ --glob извештава целу путању датотека библиотеке које се поклапају са ДАТОТЕКЕ --list=defaults приказује основна подешавања и параметре --list=ТЕМА опширан списак за ТЕМА („delegations“, „encodings“, „features“, „variables“, „media“, „ppd“, „printers“, „prologues“, „style-sheets“, „user-options“) � -B, --no-header без икаквих заглавља странице -b, --header[=ТЕКСТ] поставља заглавље странице -u, --underlay[=ТЕКСТ] штампа ТЕКСТ као позадину свакој страници --center-title[=ТЕКСТ] поставаља наслов странице на НАСЛОВ --left-title[=ТЕКСТ] ТЕКСТ за леви и десни наслов странице --right-title[=ТЕКСТ] --left-footer[=ТЕКСТ] поставља подножје странице на ТЕКСТ --footer[=ТЕКСТ] --right-footer[=ТЕКСТ] � -E, --pretty-print[=ЈЕЗИК] укључује прилично штампање (стил је ЈЕЗИК) --highlight-level=НИВО НИВО истицања приличног штампања НИВО може да буде „none“, „normal“ или „heavy“ -g алијас „--highlight-level=heavy“ --strip-level=БРОЈ ниво уклањања коментара � -M, --medium=НАЗИВ користи папир НАЗИВ -r, --landscape пејзажно штампање -R, --portrait портретно штампање --columns=БРОЈ број колона на листу папира --rows=БРОЈ број редова на листу папира --major=ПРАВАЦ правац попуњавања (ПРАВАЦ=) „rows“, или „columns“ -1, -2, ..., -9 унапред одређени распореди и величине писма од 1.. 9 виртуелно -A, --file-align=МОД поредак различитих датотека је МОД („fill“, „rank“ „page“, „sheet“, или „number“) -j, --borders* штампа оквир око ступаца --margin[=БРОЈ] величина унутрашње маргине је БРОЈ � -a, --pages[=ОПСЕГ] бира странице за штампање -c, --truncate-lines* oдсеца дуге редове -i, --interpret* преводи „tab“, „bs“ и „ff“ знакове --end-of-line=ЗНАК ЗНАК за крај реда („r“, „n“, „nr“, „rn“, било шта друго) -X, --encoding=ОЗНАКА улазно кодирање је ОЗНАКА -t, --title=НАЗИВ поставља назив посла --stdin=НАЗИВ поставља назив стандардног улаза улазне датотеке --print-anyway* приморава бинарно штампање -Z, --delegate* прослеђуј датотеке другим програмима --toc[=ТЕКСТ] прави табелу садржаја � -o, --output=ДАТОТЕКА шаље излаз у датотеку ДАТОТЕКА. Ако је ДАТОТЕКА „-“ шаље излаз на станд. излаз. --version-control=РЕЧ прескаче уобичајене контроле верзије --suffix=СУФИКС прескаче уобичајени суфикс резерве -P, --printer=НАЗИВ шаље излаз на штампач НАЗИВ -d шаље излаз на основни штампач (ово је основно понашање) � -q, --quiet, --silent врло тихо извршавање -v, --verbose[=НИВО] извештавање је укључено, или подешено на НИВО -=, --user-option=ОПЦИЈА користити корисникову скраћеницу ОПЦИЈА --debug укључује функцију уклањања грешака -D, --define=КЉУЧ[:ВРЕДНОСТ] уклања промељиву КЉУЧ или јој задаје ВРЕДНОСТ � одредиште = %s управљање верзијама = %s суфикс резервни = %s � заглавље = %s лево подножје = %s подножје = %s десно подножје = %s леви наслов = %s средњи наслов = %s десни наслов = %s позадина = %s � магични број = %s опис штампача (PPD) = %s подразумевани ППД = %s формат ознаке стране = %s број умножака = %u страна по листу = %s дефиниције уређаја странице = � медијум = %s, %s изглед стране = %zu x %zu, %s оивичење = %s равнање датотека = %s унутрашња маргина = %u � побројавање редова = %s формат = %s износ табулације = %u формат за нештампарске знаке = %s � предслање стране = %s � одреднице речника стања = � стил = %s ниво наглашавања = %s ниво огољивања = %d � одсецање редова = %s тумачење = %s крај реда = %s кодирање = %s наслов документа = %s пролог = %s обавезно штампање = %s прослеђивање = %s � ниво обавештавања = %u наредба за датотеке = %s путања за библиотеке = �%A, %e. %B %Y.�%e.%m.%Y.�%s, преузео %s�%s: неисправан аргумент за дословни знак „%s%c“�%s: неисправан раздвојник „%s%c“ за дословни знак „%s“�%s: недостаје „%c“ за дословни знак „%s%c“�%s: предуг аргумент за дословни знак „%s“�%s: непознат „%s“ дословни знак „%c“ (%d)�%u знак(а/ова) у реду�%u ред(а/ова) на страници�Након завршеног задатка, излази успешно. Опширнији спискови могу да обезбеде додатно објашњење о појединим могућностима. �Програми подешени за преузимање обраде�По основи „a2ps“ је подешен да ради оно што ви желите, зато му верујте За прилично штампање садржаја изворног директоријума са садржајем, и за слање резултата на штампач „lw“, $ a2ps -P lw --toc src/* За обрађивање датотека „primer.ps“ и „primer.html“ и приказ резултата, $ a2ps -P display primer.ps primer.html За штампање поштанског сандучета са 4 странице на листу, $ a2ps -=mail -4 mailbox За обострано штампање књижице на подразумеваном штампачу, $ a2ps -=book paper.dvi.gz -d�Стање подешавања за %s %s �Основни штампач�Преузео „%s“, од „%s“ ка „%s“ �Динамички низ „%s“: �Динамичка ниска: �Општа подешавања: �Заглавља: �Заглавља: �Улаз: �Програм: �Подржана кодовања�Подржана писма�Подржане врсте папира�Подржани излази (штампачи, итд.)�Подржани описи ПостСкрипт штампача�Подржани пролози�Подржане датотеке стилова�Подржане корисничке опције�Подржане променљиве�Назив�Излаз: �Страна %zu�Страна %zu/%c�Страна %zu/%zu�ПостСкрипт: �Улепшано штампање: �Штампао %s�Штампао %s користећи %s�Физичке странице: �Садржај�Задаци: �ТЕКСТови могу да садрже посебне дословне знакове. �Задавањем опција -1.. -9 мења се неколико основних подешавања да би се постигао унапред задат изглед стране са 80 знакова по реду. Због овога редослед је битан: „-R -f40 -2“ је исто што и „-2“; правилно је „-2Rf40“, или треба користити основне опције („--columns“, „--font-size“, итд.). �Пробајте „%s --help“ за више информација. �Непознат штампач�Непознати корисник�Употреба: %s [ОПЦИЈА]... [ДАТОТЕКА]... Претворите ДАТОТЕКУ(е) или стандардни улаз у ПостСкрипт. По основи, излаз се шаље на основни штампач. Излазна датотека може бити наведена опцијом „-o“. Обавезни аргументи дугих опција су такође обавезни и за кратке опције. Дуге опције означене са „*“ захтевају „да/не“ аргумент, одговарајуће кратке опције подразумевају „да“. �Дозвољени аргументи су реални бројеви f такви да: %s �Дозвољени аргументи су цели бројеви n такви да: %s �Виртуалне странице: �Када је прослеђивање омогућено, а2пс може користити друге програме ради обраде датотека које не треба штампати у изворном облику, нпр. ХТМЛ, ПостСкрипт, ПДФ итд. �[%s (%s): %zu стране/а на %zu листа/ова] �[%s (%s): %zu стране/а на 1 листу] �[%s (%s): 1 страна на 1 листу] �[%s (%s): неуспешно. Занемарено] �[%s (бинарно): занемарено] �[%s (није за штампање): занемарено] �[%zu реда је преломљено] �[1 ред је преломљен] �[Излаз није произведен] �[Укупно: %zu стране/а на %zu листа/ова] %s �[Укупно: %zu стране/а на 1 листу] %s �[Укупно: 1 страна на 1 листу] %s �„%s“ је бинарна датотека, штампање је прекинуто�„%s“ је директоријум�„%s“ без подударања „%s“�самостални избор стила је отказан�не могу да затворим директоријум „%s“�не могу да преведем регуларни израз „%s“: %s�не могу да створим датотеку „%s“�не могу да пронађем датотеку „%s“�не могу да пронађем стил „%s“: користим прост стил�не могу да сазнам тренутни радни директоријум�не могу да добавим податке о датотеци „%s“�не могу да отворим спојку на „%s“�не могу да отворим датотеку „%s“�не могу дас обрадим „%s“ јер захтева а2пс издање %s�не могу да преименујем датотеку „%s“ у „%s“�карет (одн. „^C“, „M-^C“ итд.)�прво колоне�величина�свак(а/их) %u ред(а/ова)�сваки ред�емакс (одн. „C-c“, „M-C-c“ итд.)�крај реда унутар %s�знак за крај реда у ниски�грешка покретања „file(1)“�писмо „%f“ је исувише велико�величина писма је %gpt�свеобухватан�хексадецимални број (одн. „\x0a“ итд.)�непотпуно познавање изгледа�неисправан аргумент „%s“ за „%s“�неисправан изглед „%s“�неисправан распон „%s“�неисправна опција „%s“�неисправан назив променљиве „%s“�неисправан број издања „%s“�пејзажно�меморија је потрошена�недостаје аргумент за „%s“�не прави никад резерве�не�нема наредбе за „%s“ (%s%s)�није одређен тастер за „%s“�никакав�уобичајен�бројем означене резерве сваке датотеке�означене резерве датотека су већ одређене бројем, и обичне за остале�октални број (одн. „\001“ итд.)�излазна наредба�обичан�портрет�знак питања (одн. „?“)�примих СИГ%s�обновљена датотека „%s“�прво редови�сачувано у датотеци „%s“�аутоматски изабрано�послато подразумеваном штампачу�послато штампачу „%s“�послато на стандардни излаз�обичне резервне сваке датотеке�размак (тј., „ “)�исувише уметака�превише искривљених слова: „%s“�неочекиван знак „%c“�непознато кодирање „%s“�непозната врста папира „%s“�непозната корисничка опција „%s“�корисник�да�������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/sr.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000125177�14445132165�010766� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Serbian translation of `a2ps'. # Copyright © 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Aleksandar Jelenak <jelenak@netlinkplus.net>, 2004. # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011–2023. # msgid "" msgstr "" "Project-Id-Version: a2ps-4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-02-19 09:55+0100\n" "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Language-Team: Serbian <(nothing)>\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "недостаје аргумент за „%s“" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "не могу да створим датотеку „%s“" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "не могу да отворим спојку на „%s“" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Преузео „%s“, од „%s“ ка „%s“\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Програми подешени за преузимање обраде" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "„%s“ је директоријум" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "не могу да отворим датотеку „%s“" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "не могу да добавим податке о датотеци „%s“" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 страна на 1 листу]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu стране/а на 1 листу]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu стране/а на %zu листа/ова]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Укупно: 1 страна на 1 листу] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Укупно: %zu стране/а на 1 листу] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Укупно: %zu стране/а на %zu листа/ова] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 ред је преломљен]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu реда је преломљено]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Излаз није произведен]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, преузео %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): неуспешно. Занемарено]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (није за штампање): занемарено]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (бинарно): занемарено]\n" #: src/generate.c:350 msgid "plain" msgstr "обичан" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "знак за крај реда у ниски" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "крај реда унутар %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "примих СИГ%s" #: src/main.c:235 msgid "heavy" msgstr "свеобухватан" #: src/main.c:239 msgid "normal" msgstr "уобичајен" #: src/main.c:243 msgid "none" msgstr "никакав" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "да" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "не" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Стање подешавања за %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Физичке странице:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " медијум = %s, %s\n" " изглед стране = %zu x %zu, %s\n" " оивичење = %s\n" " равнање датотека = %s\n" " унутрашња маргина = %u\n" #: src/main.c:339 msgid "portrait" msgstr "портрет" #: src/main.c:339 msgid "landscape" msgstr "пејзажно" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u знак(а/ова) у реду" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u ред(а/ова) на страници" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "величина писма је %gpt" #: src/main.c:363 msgid "each line" msgstr "сваки ред" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "свак(а/их) %u ред(а/ова)" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Виртуалне странице:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " побројавање редова = %s\n" " формат = %s\n" " износ табулације = %u\n" " формат за нештампарске знаке = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Заглавља:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " заглавље = %s\n" " лево подножје = %s\n" " подножје = %s\n" " десно подножје = %s\n" " леви наслов = %s\n" " средњи наслов = %s\n" " десни наслов = %s\n" " позадина = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Улаз:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " одсецање редова = %s\n" " тумачење = %s\n" " крај реда = %s\n" " кодирање = %s\n" " наслов документа = %s\n" " пролог = %s\n" " обавезно штампање = %s\n" " прослеђивање = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "аутоматски изабрано" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Улепшано штампање:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " стил = %s\n" " ниво наглашавања = %s\n" " ниво огољивања = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "не прави никад резерве" #: src/main.c:456 msgid "simple backups of every file" msgstr "обичне резервне сваке датотеке" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "означене резерве датотека су већ одређене бројем,\n" " и обичне за остале" #: src/main.c:466 msgid "numbered backups of every file" msgstr "бројем означене резерве сваке датотеке" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Излаз:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " одредиште = %s\n" " управљање верзијама = %s\n" " суфикс резервни = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "ПостСкрипт:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " магични број = %s\n" " опис штампача (PPD) = %s\n" " подразумевани ППД = %s\n" " формат ознаке стране = %s\n" " број умножака = %u\n" " страна по листу = %s\n" " дефиниције уређаја странице = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " одреднице речника стања = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " предслање стране = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Програм:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " ниво обавештавања = %u\n" " наредба за датотеке = %s\n" " путања за библиотеке = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Употреба: %s [ОПЦИЈА]... [ДАТОТЕКА]...\n" "\n" "Претворите ДАТОТЕКУ(е) или стандардни улаз у ПостСкрипт. По основи, излаз\n" "се шаље на основни штампач. Излазна датотека може бити наведена опцијом „-" "o“.\n" "\n" "Обавезни аргументи дугих опција су такође обавезни и за кратке опције.\n" "Дуге опције означене са „*“ захтевају „да/не“ аргумент, одговарајуће\n" "кратке опције подразумевају „да“.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Задаци:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version приказује издање\n" " --help приказује ово објашњење\n" " --guess извештава погођене врсте ДАТОТЕКА\n" " --which извештава целу путању датотека библиотеке " "под називом\n" " ДАТОТЕКЕ\n" " --glob извештава целу путању датотека библиотеке " "које се\n" " поклапају са ДАТОТЕКЕ\n" " --list=defaults приказује основна подешавања и параметре\n" " --list=ТЕМА опширан списак за ТЕМА („delegations“, " "„encodings“, „features“,\n" " „variables“, „media“, „ppd“, „printers“, " "„prologues“, „style-sheets“,\n" " „user-options“)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Након завршеног задатка, излази успешно. Опширнији спискови могу да\n" "обезбеде додатно објашњење о појединим могућностима.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Општа подешавања:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent врло тихо извршавање\n" " -v, --verbose[=НИВО] извештавање је укључено, или подешено на " "НИВО\n" " -=, --user-option=ОПЦИЈА користити корисникову скраћеницу ОПЦИЈА\n" " --debug укључује функцију уклањања грешака\n" " -D, --define=КЉУЧ[:ВРЕДНОСТ] уклања промељиву КЉУЧ или јој задаје " "ВРЕДНОСТ\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=НАЗИВ користи папир НАЗИВ\n" " -r, --landscape пејзажно штампање\n" " -R, --portrait портретно штампање\n" " --columns=БРОЈ број колона на листу папира\n" " --rows=БРОЈ број редова на листу папира\n" " --major=ПРАВАЦ правац попуњавања (ПРАВАЦ=) „rows“, или " "„columns“\n" " -1, -2, ..., -9 унапред одређени распореди и величине писма " "од 1.. 9 виртуелно\n" " -A, --file-align=МОД поредак различитих датотека је МОД („fill“, " "„rank“\n" " „page“, „sheet“, или „number“)\n" " -j, --borders* штампа оквир око ступаца\n" " --margin[=БРОЈ] величина унутрашње маргине је БРОЈ\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Задавањем опција -1.. -9 мења се неколико основних подешавања да би се\n" "постигао унапред задат изглед стране са 80 знакова по реду. Због овога\n" "редослед је битан: „-R -f40 -2“ је исто што и „-2“; правилно је „-2Rf40“,\n" "или треба користити основне опције („--columns“, „--font-size“, итд.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=БРОЈ нека сваком БРОЈ линија претходи редни " "број\n" " -C алијас за „--line-numbers=5“\n" " -f, --font-size=ВЕЛИЧИНА ВЕЛИЧИНА фонта (float) за тело " "текстатекста\n" " -L, --lines-per-page=БРОЈ прилагођава величину писма да би се добио " "БРОЈ\n" " редова по виртуелној страници\n" " -l, --chars-per-line=БРОЈ прилагођава величину писма да би се добио " "БРОЈ\n" " колона на виртуелној страници\n" " -m, --catman обрађује ДАТОТЕКУ страницу упутства (исто " "што и „-L66“)\n" " -T, --tabsize=БРОЈ вредност табулације је БРОЈ\n" " --non-printable-format=ФМТ формат за штампање нештампарских знакова \n" #: src/main.c:721 msgid "Headings:\n" msgstr "Заглавља:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header без икаквих заглавља странице\n" " -b, --header[=ТЕКСТ] поставља заглавље странице\n" " -u, --underlay[=ТЕКСТ] штампа ТЕКСТ као позадину свакој страници\n" " --center-title[=ТЕКСТ] поставаља наслов странице на НАСЛОВ\n" " --left-title[=ТЕКСТ] ТЕКСТ за леви и десни наслов странице\n" " --right-title[=ТЕКСТ]\n" " --left-footer[=ТЕКСТ] поставља подножје странице на ТЕКСТ\n" " --footer[=ТЕКСТ]\n" " --right-footer[=ТЕКСТ]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "ТЕКСТови могу да садрже посебне дословне знакове.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ОПСЕГ] бира странице за штампање\n" " -c, --truncate-lines* oдсеца дуге редове\n" " -i, --interpret* преводи „tab“, „bs“ и „ff“ знакове\n" " --end-of-line=ЗНАК ЗНАК за крај реда („r“, „n“, „nr“, „rn“, \n" " било шта друго)\n" " -X, --encoding=ОЗНАКА улазно кодирање је ОЗНАКА\n" " -t, --title=НАЗИВ поставља назив посла\n" " --stdin=НАЗИВ поставља назив стандардног улаза улазне " "датотеке\n" " --print-anyway* приморава бинарно штампање\n" " -Z, --delegate* прослеђуј датотеке другим програмима\n" " --toc[=ТЕКСТ] прави табелу садржаја\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Када је прослеђивање омогућено, а2пс може користити друге програме ради " "обраде\n" "датотека које не треба штампати у изворном облику, нпр. ХТМЛ, ПостСкрипт,\n" "ПДФ итд.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=ЈЕЗИК] укључује прилично штампање (стил је ЈЕЗИК)\n" " --highlight-level=НИВО НИВО истицања приличног штампања\n" " НИВО може да буде „none“, „normal“ или " "„heavy“\n" " -g алијас „--highlight-level=heavy“\n" " --strip-level=БРОЈ ниво уклањања коментара\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=ДАТОТЕКА шаље излаз у датотеку ДАТОТЕКА. Ако је\n" " ДАТОТЕКА „-“ шаље излаз на станд. излаз.\n" " --version-control=РЕЧ прескаче уобичајене контроле верзије\n" " --suffix=СУФИКС прескаче уобичајени суфикс резерве\n" " -P, --printer=НАЗИВ шаље излаз на штампач НАЗИВ\n" " -d шаље излаз на основни штампач\n" " (ово је основно понашање)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=ДАТОТЕКА укључује ДАТОТЕКА.pro као ПостСкрипт " "пролог\n" " --ppd[=КЉУЧ] самостални ППД избор или поставља на КЉУЧ\n" " -n, --copies=БРОЈ штампа БРОЈ примерака сваке странице\n" " -s, --sides=РЕЖИМ РЕЖИМ штампања („1“ или „simplex“, „2“ или\n" " „duplex“, „tumble“)\n" " -S, --setpagedevice=К[:В] прослеђује одредницу уређаја странице на " "излаз\n" " --statusdict=К[:[:]В] прослеђује одредницу стања речника на " "излаз\n" " -k, --page-prefeed укључује предслање стране\n" " -K, --no-page-prefeed скључује предслање стране\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "По основи „a2ps“ је подешен да ради оно што ви желите, зато му верујте\n" "За прилично штампање садржаја изворног директоријума са садржајем, и\n" "за слање резултата на штампач „lw“,\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "За обрађивање датотека „primer.ps“ и „primer.html“ и приказ резултата,\n" "\n" " $ a2ps -P display primer.ps primer.html\n" "\n" "За штампање поштанског сандучета са 4 странице на листу,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "За обострано штампање књижице на подразумеваном штампачу,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Садржај" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "не могу дас обрадим „%s“ јер захтева а2пс издање %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "неочекиван знак „%c“" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "исувише уметака" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "није одређен тастер за „%s“" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "не могу да пронађем датотеку „%s“" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "самостални избор стила је отказан" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "грешка покретања „file(1)“" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "не могу да преведем регуларни израз „%s“: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Подржане датотеке стилова" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "не могу да пронађем стил „%s“: користим прост стил" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "неисправан број издања „%s“" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "размак (тј., „ “)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "октални број (одн. „\\001“ итд.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "хексадецимални број (одн. „\\x0a“ итд.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "карет (одн. „^C“, „M-^C“ итд.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "емакс (одн. „C-c“, „M-C-c“ итд.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "знак питања (одн. „?“)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Динамички низ „%s“:\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tучитано: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\tизворна величина: %zu, прираст: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Динамичка ниска:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "превише искривљених слова: „%s“" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "неисправна опција „%s“" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Подржана кодовања" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "непотпуно познавање изгледа" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "не могу да затворим директоријум „%s“" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "неисправан аргумент „%s“ за „%s“" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Дозвољени аргументи су цели бројеви n такви да: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Дозвољени аргументи су реални бројеви f такви да: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "непознато кодирање „%s“" #: liba2ps/madir.c:51 msgid "rows first" msgstr "прво редови" #: liba2ps/madir.c:54 msgid "columns first" msgstr "прво колоне" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "непозната врста папира „%s“" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Подржане врсте папира" #: liba2ps/media.c:189 msgid "Name" msgstr "Назив" #: liba2ps/media.c:190 msgid "dimensions" msgstr "величина" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Подржане променљиве" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: недостаје „%c“ за дословни знак „%s%c“" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Штампао %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Штампао %s користећи %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "не могу да сазнам тренутни радни директоријум" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: предуг аргумент за дословни знак „%s“" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%e.%m.%Y." #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A, %e. %B %Y." #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: непознат „%s“ дословни знак „%c“ (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Страна %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Страна %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: неисправан раздвојник „%s%c“ за дословни знак „%s“" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: неисправан аргумент за дословни знак „%s%c“" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Страна %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "излазна наредба" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Пробајте „%s --help“ за више информација.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "неисправан назив променљиве „%s“" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "неисправан изглед „%s“" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "„%s“ без подударања „%s“" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Подржана писма" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Ништа.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Подржани описи ПостСкрипт штампача" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "неисправан распон „%s“" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Основни штампач" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Непознат штампач" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "нема наредбе за „%s“ (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "послато на стандардни излаз" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "послато подразумеваном штампачу" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "сачувано у датотеци „%s“" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "послато штампачу „%s“" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Подржани излази (штампачи, итд.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Подржани пролози" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "писмо „%f“ је исувише велико" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "„%s“ је бинарна датотека, штампање је прекинуто" #: liba2ps/userdata.c:104 msgid "user" msgstr "корисник" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Непознати корисник" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "непозната корисничка опција „%s“" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Подржане корисничке опције" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "меморија је потрошена" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "не могу да преименујем датотеку „%s“ у „%s“" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "обновљена датотека „%s“" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Ауторско право © 1988-2017. Free Software Foundation, Inc." #~ msgid "any type" #~ msgstr "произвољне врсте" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Новости, допуне и упутства: посетите http://www.gnu.org/software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Пријавите грешаке на адресу <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Ауторско право © 1988-1993 Мигуел Сантана\n" #~ "Ауторско право © 1995-2000 Аким Демај, Мигуел Сантана\n" #~ "Ауторско право © 2007 Аким Демај, Мигуел Сантана и Масајуки Хата" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "непознато кодирање „%s“, занемарено" #~ msgid "Written by %s.\n" #~ msgstr "Написао је %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Ово је слободан софтвер; погледајте извор за услове умножавања.\n" #~ "Нема НИКАКВЕ гаранције; чак ни ТРЖИШНЕ ВРЕДНОСТИ или ИСПУЊАВАЊЕ ОДРЕЂЕНЕ " #~ "ПОТРЕБЕ.\n" #~ msgid "write error" #~ msgstr "грешка записивања" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "неисправна одредница штампача „%s“: %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "застарели унос „%s“. Занемарено" #~ msgid "Page %d/%d" #~ msgstr "Страна %d/%d" #~ msgid "`" #~ msgstr "„" #~ msgid "'" #~ msgstr "“" #~ msgid "invalid argument %s for `%s'" #~ msgstr "неисправан аргумент „%s“ за „%s“" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "нејасан аргумент „%s“ за „%s“" #~ msgid "Valid arguments are:" #~ msgstr "Исправни аргументи су:" #~ msgid "Unknown system error" #~ msgstr "Непозната системска грешка" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: опција „%s“ је нејасна\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: опција „--%s“ не дозвољава аргумент\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: опција „%c%s“ не дозвољава аргумент\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: опција „%s“ захтева аргумент\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: непозната опција „--%s“\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: непозната опција „%c%s“\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: недозвољена опција -- %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: погрешна опција -- %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: опција захтева аргумент -- %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: опција „-W %s“ је нејасна\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: опција „-W %s“ не дозвољава аргумент\n" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/stamp-po�����������������������������������������������������������������������������0000644�0000000�0000000�00000000012�14445132166�011442� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������timestamp ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/sv.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000063030�14445132166�011124� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6�����7��%���7�� ���8����$8��e��:����P=����_@����!B��H��C����G����I�����K��e���M�����9N�����O�����O�����P��"���Q�����8Q��Z���WQ�����Q��R���R�����R�����R�����S��-���S��6���ES��%���|S��,���S��%���S�����S�����T��s���T��+���T��.��T�� ���V����� W��%���W�����@W�����WW�����jW�����|W�����W�����W�����W�����W�����W�� ���W��0���W��&���)X�����PX�����`X�����rX�����X�����X�����X�����X�� ���X�� ���X�� ���X�����X�����X�����X�����Y�����Y�� ���2Y��2���>Y��0��qY��/���Z�����Z�����Z��w��Z��-���l\��,���\�����\�����\��!���z]�����]�����]��#���]�����]��(���^�����@^�����V^�����h^��#���^��!���^�����^��+���^�����_�����$_�����=_�����]_��.���}_�����_�����_��8���_��$���`��)���>`�����h`�����`��6���`��.���`�����a�����'a�� ���6a�� ���Ba�� ���Oa�����Ya�����ua�����a�����a�����a�����a�����a�����a��#���b��(���;b�����db�����|b�����b��"���b�����b�����b�����b�����c�����c�����;c�����?c��!���_c�����c�����c��(���c�����c�����=d�� ���Vd�����ad�����gd�����pd�� ���d�����d�� ���d�����d�����d�����d�����d�����e��$���2e�����We�����oe��"���e�����e�����e�����e�����e�� ��� f�����f�����+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-01-28 17:41+0100 Last-Translator: Peter Krefting <peter@softwolves.pp.se> Language-Team: Swedish <tp-sv@listor.tp-sv.se> Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Gtranslator 3.38.0 � läs: %zu/%zu (%2.1f%%) � originalstorlek: %zu, växt: %s %zu � Inga. � --line-numbers=ANTAL skriv radnummer framför var ANTAL:te rad -C ett annat sätt att skriva --line-numbers=5 -f, --font-size=STORLEK använd teckenstorlek STORLEK (flyttal) -L, --lines-per-page==ANTAL ange ANTAL rader på en sida (teckenstorleken justeras) --l, --chars-per-line=ANTAL ange ANTAL spalter som skrivs ut per sida (teckenstorleken justeras) -m, --catman behandla FIL som en man-sida (samma som -L66) -T, --tab-size=ANTAL sätt tabulatoravståndet till ANTAL --non-printable-format=FMT ange hur icke skrivbara tecken skall skrivas � --prologue=FIL ta med FIL.pro som PostScript-prolog --ppd[=NYCKEL] automatiskt val av PPD, eller använd NYCKEL -n, --copies=ANTAL skriv ANTAL kopior av varje sida -s, --sides=LÄGE sätt duplex till LÄGE ("1" eller "simplex", "2" eller "duplex", "tumble") -S, --setpagedevice=N[:V] skicka ut en page device-definition --statusdict=N[:[:]V] skicka ut en statusdict-definition -k, --page-prefeed slå på förmatade papper -K, --no-page-prefeed slå av förmatade papper � --version visa version --help visa denna hjälptext --guess rapportera filtyper gissade för FILER --which rapportera full sökväg till biblioteksfilerna som heter FILER --glob rapportera full sökväg till biblioteksfilerna som motsvarar FILER --list=defaults visa standardinställningar och -parametrar --list=ÄMNE detaljerad lista för ÄMNE (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header inget sidhuvud alls -b, --header[=TEXT] ange sidhuvud -u, --underlay[=TEXT] skriv TEXT under varje sida --center-title[=TEXT] ange titel på varje sida --left-title[=TEXT] ange vänsterställd titel --right-title[=TEXT] ange högerställd titel --left-footer[=TEXT] ange sidfot för varje ark. --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=SPRÅK] slå på snygg utskrift (sätt stil till SPRÅK) --highlight-level=NIVÅ sätt nivån på märkning (highlight) vid snygga utskrifter. NIVÅ kan vara "none", "normal" eller "heavy" -g samma som --highlight-level=heavy --strip-level=NIVÅ nivå på bortrensning av kommentarer � -M, --medium=NAMN använd utmedium NAMN -r, --landscape skriv på liggande ark -R, --portrait skriv på stående ark --columns=ANT antal spalter per ark --rows=ANT antal rader per ark --major=RIKTNING primär riktning att fylla i (RIKTNING=rows eller columns för rader respektive spalter) -1, -2, ..., -9 fördefinierade teckenstorlekar och former för 1..9 virtuella sidor -A, --file-align=LÄGE justera separata filer enligt LÄGE (fill, rank, page, sheet eller ett tal) -j, --borders* rita ramar runt spalter --margin[=NUM] definiera en inre marginal av storlek NUM � -a, --pages[=OMRÅDE] ange sidor att skriva ut -c, --truncate-lines* klipp av långa rader -i, --interpret tolka tecken för tab, backsteg och sidmatning --end-of-line=TYP ange typ av radslut (TYP: r, n, nr, rn, any) -X, --encoding=NAMN använd teckenkodning NAMN för indata -t, --title=NAMN ange titel på utskriftsjobbet --stdin=NAMN ange namn på standard in --print-anyway* tvinga a2ps att skriva ut binära filer -Z, --delegate* delegera filer till ett annat program --toc=TEXT skapa innehållsförteckning � -o, --output=FIL sänd utdata till filen FIL. Om FIL är "-", skickas utdata till standard ut --version-control=ORD välj annan versionshantering än den normala --suffix=ORD välj annat suffix för säkerhetskopior än det normala -P, --printer=NAMN skicka utdata till skrivaren NAMN -d skicka utdata till standardskrivaren (standardbeteende) � -q, --quiet, --silent var helt tyst -v, --verbose[=NIVÅ] slå på utförliga kommentarer (mångordighet) eller sätt graden av utförlighet till NIVÅ -=, --user-options=FLAGGA använd den av användaren definierade för- kortningen FLAGGA --debug slå på felsökning -D, --define=NYCKEL[:VÄRDE] ta bort variabeln NYCKEL, eller sätt den till VÄRDE � destination = %s versionshantering = %s suffix på säkerhetskopior = %s � sidhuvud = %s vänsterställd sidfot= %s sidfot = %s högerställd sidfot = %s vänsterställd titel = %s centrerad titel = %s högerställd titel = %s text under sidor = %s � magiskt tal = %s skrivarbeskrivning (PPD) = %s standard-PPD = %s sidettikettsformat = %s antal kopior = %u sidor per ark = %s sidenhetsdefinitioner = � medium = %s, %s sidform = %zu x %zu, %s kantlinjer = %s filjustering = %s inre marginal = %u � numrera rader = %s format = %s tabulatoravstånd = %u format för oskrivbara tecken = %s � förmatning av sidor = %s � "statusdict"-definitioner = � stilmall = %s märkningsnivå = %s borttagninngsnivå = %d � klipp rader = %s tolka = %s radslut = %s teckenkodning = %s dokumenttitel = %s prolog = %s skriv ut i alla fall = %s delegering = %s � pratsamhetsnivå = %u filkommando = %s bibliotekssökväg = �%Aen den %d %B %Y�%Y-%m-%d�%s, delegerad till %s�%s: otillåtet argument för metasekvens %s%c�%s: otillåten avskiljare "%s%c" för metasekvens "%s"�%s: "%c" saknas för metasekvens %s%c�%s: för långt argument till metasekvens %s�%s: okänd "%s" metasekvens "%c" (%d)�%u tecken per rad�%u rader per sida�Avsluta normalt, efter att uppgiften har utförts. Detaljerade listor ger mer information om specifika funktioner. �Applikationer konfigurerade för delegering�a2ps är gjort så att det normalt gör vad du vill, så lita på det. För att skriva ut innehållet i katalogen "src" snyggt med innehållsförteckning och skicka resultatet till skrivaren "lw", $ a2ps -P lw --toc src/* För att bearbeta filerna "sample.ps" och "sample.html" och visa resultatet, $ a2ps -P display sample.ps sample.html För att bearbeta en brevlåda med fyra sidor per ark, $ a2ps -=mail -4 mailbox För att skriva ut som en bok på standard-skrivaren, som klarar dubbelsidig utskrift, $ a2ps -=book paper.dvi.gz -d�Konfigurationsstatus för %s %s �Standardskrivare�Delegering "%s" från "%s" till "%s" �Dynamisk vektor "%s": �Dynamisk sträng: �Globala flaggor: �Sidhuvud och sidfot: �Sudhuvud och sidfot: �Indata: �Interna detaljer: �Kända teckenkodningar�Kända typsnitt�Kända media�Kända destinationer för utdata (skrivare etc.)�Kända PostScript-skrivarbeskrivningar�Kända prologer�Kända stilmallar�Kända användarflaggor�Kända variabler�Namn�Utdata: �Sida %zu�Sida %zu/%c�Sida %zu/%zu�PostScript: �Snygga utskrifter: �Utskrivet av %s�Utskrivet av %s från %s�Ark: �Innehållsförteckning�Uppgifter: �TEXT-erna kan innehålla speciella metasekvenser. �Flaggorna -1.. -9 påverkar flera primitiva parametrar för att ställa in fördefinierade former med 80 tecken. Därför spelar ordningen roll: "-R -f40 -2" är detsamma som "-2". För att modifiera formen använder du "-2Rf40" eller använder flera primitiva flaggor ("--columns", "--font-size" osv.). �Försök med "%s --help" för mer information. �Okänd skrivare�Okänd användare�Användning: %s [FLAGGA]... [FIL]... Konvertera FIL(er) eller standard in till PostScript. Som standard sänds utdata till standardskrivaren. Du kan ange en utdatafil med -o. Obligatoriska argument till långa flaggor är även obligatoriska för korta flaggor. Långa flaggor märkta med "*" kräver "yes" eller "no" som argument. Motsvarande korta flaggor betyder "yes". �Tillåtna argument är flyttal f så att: %s �Tillåtna argument är heltal n så att: %s �Virtuella sidor: �När delegeringar är påslagna, kan a2ps använda andra program för filer som inte skall skrivas ut som rå information, exempelvis HTML, PostScript och PDF. �[%s (%s): %zu sidor på %zu ark] �[%s (%s): %zu sidor på 1 ark] �[%s (%s): 1 sida på 1 ark] �[%s (%s): misslyckades. Ignorerad] �[%s (binär): ignorerad] �[%s (går ej att skriva ut): ignorerad] �[%zu rader ombrutna] �[1 rad ombruten] �[Ingen utdata skapad] �[Totalt: %zu sidor på %zu ark] %s �[Totalt: %zu sidor på 1 ark] %s �[Totalt: 1 sida på 1 ark] %s �"%s" är en binär fil; utskriften avbruten�"%s" är en katalog�"%s" utan matchande "%s"�väljer ej stilmall automatiskt�kan inte stänga katalogen "%s"�kan inte kompilera reguljärt uttryck "%s": %s�kan inte skapa filen "%s"�kan inte hitta filen "%s"�kan inte hitta stilmallen "%s": använder enkel stilmall�kan inte ta reda på aktuell katalog�kan inte skaffa information om filen "%s"�kan inte öppna rör till "%s"�kan inte öppna filen "%s"�kan inte hantera "%s", då den kräver a2ps version %s�kan inte ändra namn på filen "%s" till "%s".�cirkumflex ("^C", "M-^C" etc.)�spalter först�dimensioner�var %u:e rad�varje rad�emacs ("C-c", "M-C-c" etc.)�radslut i inuti ett %s�radslut i strängkonstant�fel vid körning av file(1)�typsnittet %f för stort�teckenstorleken är %gp�stor�hexadecimalt tal ("\x0a" etc.)�otillräcklig kännedom om typsnitt�ogiltigt argument "%s" för flaggan "%s"�ogiltligt typsnitt "%s"�ogiltigt intervall: %s�otillåten flagga "%s"�ogiltig variabelidentifierare "%s"�felaktigt versionsnummer "%s"�liggande�slut på minne�argument för "%s" saknas�skapa aldrig säkerhetskopior�nej�inget kommando för "%s" (%s%s)�ingen nyckel definierad för "%s"�ingen�normal�numrerade säkerhetskopior av alla filer�numrerade säkerhetskopior av filer som redan är numrerade och enkla säkerhetskopior av övriga filer�oktalt tal ("\001" etc.)�utkommando�enkel�stående�frågetecken (d.v.s. "?")�fick SIG%s�återskapad fil "%s"�rader först�sparat på filen "%s"�vald automatiskt�skickat till standardskrivaren�skickat till skrivaren "%s"�skickat till standard ut�enkla säkerhetskopior av alla filer�mellanslag (d.v.s. " ")�för många inkluderingar�för många lutande typsnitt: "%s"�oväntat tecken "%c"�okänd teckenkodning "%s"�okänt medium "%s"�okänd användarflagga "%s"�användare�ja���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/sv.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000102470�14445132165�010761� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Swedish messages for a2ps. # Copyright © 2023 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Peter Nilsson <pnidv96@student.vxu.se>, 1998, 1999. # Peter Krefting <peter@softwolves.pp.se>, 2001-2023. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-01-28 17:41+0100\n" "Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 3.38.0\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "argument för \"%s\" saknas" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "kan inte skapa filen \"%s\"" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "kan inte öppna rör till \"%s\"" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegering \"%s\" från \"%s\" till \"%s\"\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Applikationer konfigurerade för delegering" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "\"%s\" är en katalog" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "kan inte öppna filen \"%s\"" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "kan inte skaffa information om filen \"%s\"" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 sida på 1 ark]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu sidor på 1 ark]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %zu sidor på %zu ark]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totalt: 1 sida på 1 ark] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Totalt: %zu sidor på 1 ark] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Totalt: %zu sidor på %zu ark] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 rad ombruten]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu rader ombrutna]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Ingen utdata skapad]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegerad till %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): misslyckades. Ignorerad]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (går ej att skriva ut): ignorerad]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binär): ignorerad]\n" #: src/generate.c:350 msgid "plain" msgstr "enkel" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "radslut i strängkonstant" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "radslut i inuti ett %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "fick SIG%s" #: src/main.c:235 msgid "heavy" msgstr "stor" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "ingen" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ja" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "nej" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Konfigurationsstatus för %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Ark:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " medium = %s, %s\n" " sidform = %zu x %zu, %s\n" " kantlinjer = %s\n" " filjustering = %s\n" " inre marginal = %u\n" #: src/main.c:339 msgid "portrait" msgstr "stående" #: src/main.c:339 msgid "landscape" msgstr "liggande" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u tecken per rad" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u rader per sida" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "teckenstorleken är %gp" #: src/main.c:363 msgid "each line" msgstr "varje rad" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "var %u:e rad" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Virtuella sidor:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " numrera rader = %s\n" " format = %s\n" " tabulatoravstånd = %u\n" " format för oskrivbara tecken = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Sidhuvud och sidfot:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " sidhuvud = %s\n" " vänsterställd sidfot= %s\n" " sidfot = %s\n" " högerställd sidfot = %s\n" " vänsterställd titel = %s\n" " centrerad titel = %s\n" " högerställd titel = %s\n" " text under sidor = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Indata:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " klipp rader = %s\n" " tolka = %s\n" " radslut = %s\n" " teckenkodning = %s\n" " dokumenttitel = %s\n" " prolog = %s\n" " skriv ut i alla fall = %s\n" " delegering = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "vald automatiskt" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Snygga utskrifter:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " stilmall = %s\n" " märkningsnivå = %s\n" " borttagninngsnivå = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "skapa aldrig säkerhetskopior" #: src/main.c:456 msgid "simple backups of every file" msgstr "enkla säkerhetskopior av alla filer" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "numrerade säkerhetskopior av filer som redan är numrerade\n" " och enkla säkerhetskopior av övriga filer" #: src/main.c:466 msgid "numbered backups of every file" msgstr "numrerade säkerhetskopior av alla filer" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Utdata:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destination = %s\n" " versionshantering = %s\n" " suffix på säkerhetskopior = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " magiskt tal = %s\n" " skrivarbeskrivning (PPD) = %s\n" " standard-PPD = %s\n" " sidettikettsformat = %s\n" " antal kopior = %u\n" " sidor per ark = %s\n" " sidenhetsdefinitioner = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " \"statusdict\"-definitioner = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " förmatning av sidor = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Interna detaljer:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " pratsamhetsnivå = %u\n" " filkommando = %s\n" " bibliotekssökväg = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Användning: %s [FLAGGA]... [FIL]...\n" "\n" "Konvertera FIL(er) eller standard in till PostScript. Som standard sänds " "utdata\n" "till standardskrivaren. Du kan ange en utdatafil med -o.\n" "\n" "Obligatoriska argument till långa flaggor är även obligatoriska för korta\n" "flaggor.\n" "Långa flaggor märkta med \"*\" kräver \"yes\" eller \"no\" som argument.\n" "Motsvarande korta flaggor betyder \"yes\".\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Uppgifter:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version visa version\n" " --help visa denna hjälptext\n" " --guess rapportera filtyper gissade för FILER\n" " --which rapportera full sökväg till " "biblioteksfilerna\n" " som heter FILER\n" " --glob rapportera full sökväg till " "biblioteksfilerna\n" " som motsvarar FILER\n" " --list=defaults visa standardinställningar och -parametrar\n" " --list=ÄMNE detaljerad lista för ÄMNE (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Avsluta normalt, efter att uppgiften har utförts. Detaljerade listor ger " "mer\n" "information om specifika funktioner.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Globala flaggor:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent var helt tyst\n" " -v, --verbose[=NIVÅ] slå på utförliga kommentarer " "(mångordighet)\n" " eller sätt graden av utförlighet till NIVÅ\n" " -=, --user-options=FLAGGA använd den av användaren definierade för-\n" " kortningen FLAGGA\n" " --debug slå på felsökning\n" " -D, --define=NYCKEL[:VÄRDE] ta bort variabeln NYCKEL, eller sätt den " "till\n" " VÄRDE\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAMN använd utmedium NAMN\n" " -r, --landscape skriv på liggande ark\n" " -R, --portrait skriv på stående ark\n" " --columns=ANT antal spalter per ark\n" " --rows=ANT antal rader per ark\n" " --major=RIKTNING primär riktning att fylla i (RIKTNING=rows\n" " eller columns för rader respektive " "spalter)\n" " -1, -2, ..., -9 fördefinierade teckenstorlekar och former " "för\n" " 1..9 virtuella sidor\n" " -A, --file-align=LÄGE justera separata filer enligt LÄGE (fill,\n" " rank, page, sheet eller ett tal)\n" " -j, --borders* rita ramar runt spalter\n" " --margin[=NUM] definiera en inre marginal av storlek NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Flaggorna -1.. -9 påverkar flera primitiva parametrar för att ställa in\n" "fördefinierade former med 80 tecken. Därför spelar ordningen roll:\n" "\"-R -f40 -2\" är detsamma som \"-2\". För att modifiera formen använder\n" "du \"-2Rf40\" eller använder flera primitiva flaggor (\"--columns\",\n" "\"--font-size\" osv.).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=ANTAL skriv radnummer framför var ANTAL:te rad\n" " -C ett annat sätt att skriva --line-numbers=5\n" " -f, --font-size=STORLEK använd teckenstorlek STORLEK (flyttal)\n" " -L, --lines-per-page==ANTAL ange ANTAL rader på en sida " "(teckenstorleken\n" " justeras)\n" " --l, --chars-per-line=ANTAL ange ANTAL spalter som skrivs ut per sida\n" " (teckenstorleken justeras)\n" " -m, --catman behandla FIL som en man-sida (samma som -" "L66)\n" " -T, --tab-size=ANTAL sätt tabulatoravståndet till ANTAL\n" " --non-printable-format=FMT ange hur icke skrivbara tecken skall " "skrivas\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Sudhuvud och sidfot:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header inget sidhuvud alls\n" " -b, --header[=TEXT] ange sidhuvud\n" " -u, --underlay[=TEXT] skriv TEXT under varje sida\n" " --center-title[=TEXT] ange titel på varje sida\n" " --left-title[=TEXT] ange vänsterställd titel\n" " --right-title[=TEXT] ange högerställd titel\n" " --left-footer[=TEXT] ange sidfot för varje ark.\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "TEXT-erna kan innehålla speciella metasekvenser.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=OMRÅDE] ange sidor att skriva ut\n" " -c, --truncate-lines* klipp av långa rader\n" " -i, --interpret tolka tecken för tab, backsteg och " "sidmatning\n" " --end-of-line=TYP ange typ av radslut (TYP: r, n, nr, rn, " "any)\n" " -X, --encoding=NAMN använd teckenkodning NAMN för indata\n" " -t, --title=NAMN ange titel på utskriftsjobbet\n" " --stdin=NAMN ange namn på standard in\n" " --print-anyway* tvinga a2ps att skriva ut binära filer\n" " -Z, --delegate* delegera filer till ett annat program\n" " --toc=TEXT skapa innehållsförteckning\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "När delegeringar är påslagna, kan a2ps använda andra program för filer som\n" "inte skall skrivas ut som rå information, exempelvis HTML, PostScript och " "PDF.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=SPRÅK] slå på snygg utskrift (sätt stil till " "SPRÅK)\n" " --highlight-level=NIVÅ sätt nivån på märkning (highlight) vid " "snygga\n" " utskrifter. NIVÅ kan vara \"none\", " "\"normal\"\n" " eller \"heavy\"\n" " -g samma som --highlight-level=heavy\n" " --strip-level=NIVÅ nivå på bortrensning av kommentarer\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FIL sänd utdata till filen FIL. Om FIL är \"-" "\",\n" " skickas utdata till standard ut\n" " --version-control=ORD välj annan versionshantering än den " "normala\n" " --suffix=ORD välj annat suffix för säkerhetskopior än " "det\n" " normala\n" " -P, --printer=NAMN skicka utdata till skrivaren NAMN\n" " -d skicka utdata till standardskrivaren\n" " (standardbeteende)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FIL ta med FIL.pro som PostScript-prolog\n" " --ppd[=NYCKEL] automatiskt val av PPD, eller använd " "NYCKEL\n" " -n, --copies=ANTAL skriv ANTAL kopior av varje sida\n" " -s, --sides=LÄGE sätt duplex till LÄGE (\"1\" eller " "\"simplex\",\n" " \"2\" eller \"duplex\", \"tumble\")\n" " -S, --setpagedevice=N[:V] skicka ut en page device-definition\n" " --statusdict=N[:[:]V] skicka ut en statusdict-definition\n" " -k, --page-prefeed slå på förmatade papper\n" " -K, --no-page-prefeed slå av förmatade papper\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "a2ps är gjort så att det normalt gör vad du vill, så lita på det. För att\n" "skriva ut innehållet i katalogen \"src\" snyggt med innehållsförteckning " "och\n" "skicka resultatet till skrivaren \"lw\",\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "För att bearbeta filerna \"sample.ps\" och \"sample.html\" och visa " "resultatet,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "För att bearbeta en brevlåda med fyra sidor per ark,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "För att skriva ut som en bok på standard-skrivaren, som klarar dubbelsidig\n" "utskrift,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Innehållsförteckning" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "kan inte hantera \"%s\", då den kräver a2ps version %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "oväntat tecken \"%c\"" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "för många inkluderingar" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "ingen nyckel definierad för \"%s\"" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "kan inte hitta filen \"%s\"" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "väljer ej stilmall automatiskt" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "fel vid körning av file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "kan inte kompilera reguljärt uttryck \"%s\": %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Kända stilmallar" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "kan inte hitta stilmallen \"%s\": använder enkel stilmall" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "felaktigt versionsnummer \"%s\"" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "mellanslag (d.v.s. \" \")" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "oktalt tal (\"\\001\" etc.)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimalt tal (\"\\x0a\" etc.)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "cirkumflex (\"^C\", \"M-^C\" etc.)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (\"C-c\", \"M-C-c\" etc.)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "frågetecken (d.v.s. \"?\")" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Dynamisk vektor \"%s\":\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tläs: %zu/%zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\toriginalstorlek: %zu, växt: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Dynamisk sträng:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "för många lutande typsnitt: \"%s\"" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "otillåten flagga \"%s\"" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Kända teckenkodningar" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "otillräcklig kännedom om typsnitt" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "kan inte stänga katalogen \"%s\"" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "ogiltigt argument \"%s\" för flaggan \"%s\"" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Tillåtna argument är heltal n så att: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Tillåtna argument är flyttal f så att: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "okänd teckenkodning \"%s\"" #: liba2ps/madir.c:51 msgid "rows first" msgstr "rader först" #: liba2ps/madir.c:54 msgid "columns first" msgstr "spalter först" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "okänt medium \"%s\"" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Kända media" #: liba2ps/media.c:189 msgid "Name" msgstr "Namn" #: liba2ps/media.c:190 msgid "dimensions" msgstr "dimensioner" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Kända variabler" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: \"%c\" saknas för metasekvens %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Utskrivet av %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Utskrivet av %s från %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "kan inte ta reda på aktuell katalog" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: för långt argument till metasekvens %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%Y-%m-%d" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%Aen den %d %B %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: okänd \"%s\" metasekvens \"%c\" (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Sida %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Sida %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: otillåten avskiljare \"%s%c\" för metasekvens \"%s\"" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: otillåtet argument för metasekvens %s%c" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Sida %zu/%zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "utkommando" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "ogiltig variabelidentifierare \"%s\"" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "ogiltligt typsnitt \"%s\"" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "\"%s\" utan matchande \"%s\"" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Kända typsnitt" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Inga.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Kända PostScript-skrivarbeskrivningar" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "ogiltigt intervall: %s" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Standardskrivare" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Okänd skrivare" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "inget kommando för \"%s\" (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "skickat till standard ut" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "skickat till standardskrivaren" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "sparat på filen \"%s\"" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "skickat till skrivaren \"%s\"" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Kända destinationer för utdata (skrivare etc.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Kända prologer" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "typsnittet %f för stort" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "\"%s\" är en binär fil; utskriften avbruten" #: liba2ps/userdata.c:104 msgid "user" msgstr "användare" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Okänd användare" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "okänd användarflagga \"%s\"" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Kända användarflaggor" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "slut på minne" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "kan inte ändra namn på filen \"%s\" till \"%s\"." #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "återskapad fil \"%s\"" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "Copyright © 1988-2017 Free Software Foundation, Inc." ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/th.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000036120�14445132166�011107� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�����=�����[��[����A���S��@�����}�����A��T�� �����(�����o�����h���<��C�����j�����A���T ��{��� ��>���!��6���Q!��E���!�����!�����!�����!�����"�����1"��9���C"��3���}"��'���"��e���"��u���?#��-���#�����#��E���#��-���<$�� ���j$�����w$��&���$��5���$�����$��(���%�����7%�����F%�� ���Y%��K���e%��i��%��c���(��?���(��6���(��i���(��j���`)�� ���)��~��)��/���k+��9���+��1���+��[���,��<���c,��Z���,��.���,��d���*-��,���-��:���-��W���-��D���O.��W���.��;���.��2���(/�����[/��l���/��P���W0��A���0��8���0��r���#1��_���1��H���1�����?2�� ���[2��!���h2��.���2��0���2��N���2��:���93��2���t3�� ���3��9���3��H���3��`���74��/���4��/���4��;���4��L���45��D���5�����5��J���5��6���$6�� ���[6��?���e6��\���6�����7�� ���7��E���"7�����h7��3���?8��!���s8��$���8�����8��,���8��#���8�����!9��2���79��3���j9��N���9��A���9��E���/:��Z���u:��)���:��<���:��D���7;��>���|;��,���;��J���;�����3<�� ���F<�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2010-03-17 14:47+0700 Last-Translator: Seksan Poltree <seksan.poltree@gmail.com> Language-Team: Thai <translation-team-th@lists.sourceforge.net> Language: th MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Poedit-Language: Thai X-Poedit-Country: THAILAND � ไม่มีเลย. � ปลายทาง = %s ควบคุมรุ่น = %s คำเสริมท้ายแฟ้มสำรอง = %s � ส่วนหัว = %s ส่วนท้ายซ้าย = %s ส่วนท้าย = %s ส่วนท้ายขวา = %s ชื่อเรื่องซ้าย = %s ชื่อเรื่องกลาง = %s ชื่อเรื่องขวา = %s ไว้ข้างใต้ = %s � เลื่อนหน้าก่อน = %s � คำอธิบายคำแสดงสถานะ = � รูปแบบแผ่น = %s ระดับการเน้น = %s ระดับเส้น = %d � ตัดบรรทัด = %s แปล = %s จบบรรทัด = %s การเข้ารหัส = %s ชื่อเรื่องเอกสาร = %s ส่วนนำ = %s อย่างไรก็พิมพ์ = %s ตัวแทน = %s �%A %B %d, %Y�%s, ถูกทำแทนโดย %s�%s: อาร์กิวเมนต์ไม่ถูกต้องสำหรับทางหนี %s%c�%s: ตัวแบ่งไม่ถูกต้อง `%s%c' สำหรับทางหนี `%s'�%s: ไม่พบ `%c' สำหรับทางหนี %s%c �%s: อาร์กิวเมนต์ยาวเกินไปสำหรับการหนี %s�%s: ไม่รู้จัก `%s' ทางหนี `%c' (%d)�โปรแกรมประยุกต์ถูกตั้งค่าเพื่อการทำการแทน�สถานะการตั้งค่าของ %s %s �เครื่องพิมพ์ปริยาย�การทำการแทน `%s', จาก %s เป็น %s �โดยรวม: �ส่วนหัว: �ส่วนหัว: �การนำเข้า: �ภายใน: �รหัสอักขระที่รู้จัก�แบบอักษรที่รู้จัก�สื่อที่รู้จัก�การนำออกที่รู้จัก (เครื่องพิมพ์, ฯลฯ)�อธิบายเครื่องพิมพ์โพสต์สคริพต์ที่รู้จัก�ส่วนนึที่รู้จัก�Known Style Sheets�ตัวเลือกผู้ใช้ที่รู้จัก�ตัวแปรที่รู้จัก�ชื่อ�การส่งออก: �โพสต์สคริพต์: �การพิมพ์แบบสวยงาม: �พิมพ์โดย %s�พิมพ์โดย %s จาก %s�แผ่น: �สารบัญ�งาน: � TEXTs อาจจะใช้การหนีแบบพิเศษ. �ตัวเลือก -1.. -9 มีผลกับพารามิเตอร์พื้นฐานที่จะตั้งค่ากำหนดล่วงหน้า เค้าโครง 80 สดมภ์. เพราะฉะนั้นอันดับเป็นเรื่องสำคัญ: `-R -f40 -2' จะ จะมีค่าเท่ากับ `-2'. ในการปรับเปลี่ยนเค้าโครง, ใช้ `-2Rf40', หรือประกอบ จากตัวเลือกพื้นฐาน(`--columns', `--font-size' ฯลฯ.). �ลองใช้ `%s --help' เพื่อแสดงข้อมูลมากขึ้น. �เครื่องพิมพ์ไม่รู้จัก�ผู้ใช้ที่ไม่รู้จัก�อาร์กิวเมนต์ที่ถูกต้องเป็น floats f เช่น: %s �อาร์กิวเมนต์ที่ถูกต้องเป็น integer n เช่น: %s �หน้าเสมือน: �เมื่อตัวแทนได้ถูกเปิดใช้, a2ps อาจใช้โปรแกรมประยุกต์อื่นในการจัดการ การประมวลผลของแฟ้ม ซึ่งไม่ควรพิมพ์เป็นแบบข้อมูลดิบ เช่น HTML PostSccript, PDF ฯลฯ �[%s (%s): 1 หน้าบน 1 แผ่น] �[%s (%s): ล้มเหลว. เพิกเฉย] �[%s (ไบนารี): เพิกเฉย] �[%s (ไม่สามารถพิมพ์ออกได้): เพิกเฉย] �[ขึ้นหน้าใหม่ 1 บรรทัด] �[ไม่มีการส่งออกที่ถูกสร้างขึ้น] �[รวม: 1 หน้า 1 แผ่น] %s �`%s' เป็นแฟ้มไบนารี, การพิมพ์ถูกยกเลิก�`%s' เป็นไดเรกทอรี�`%s' ไม่เข้าคู่กันกับ `%s'�การเลือกรูปแบบอัตโนมัติยกเลิก�ไม่สามารถปิดไดเรกทอรี `%s'�ไม่สามารถคอมไพล์นิพจน์ปกติ `%s': %s�ไม่สามารถสร้างแฟ้ม `%s'�ไม่สามารถหาแฟ้ม `%s'�ไม่สามารถค้นหาแผ่นรูปแบบ `%s': ใช้รูปแบบข้อความเปล่า�ไม่สามารถหาไดเรกทอรีที่ทำงานปัจจุบัน�ไม่สามารถดึงข้อมูลจากแฟ้ม `%s'�ไม่สามารถท่อข้อมูลบน `%s'�ไม่สามารถเปิดแฟ้ม `%s'�ไม่สามารถดำเนินการ `%s' ซึ่งต้องการ a2ps รุ่น %s�ไม่สามารถเปลี่ยนชื่อแฟ้ม `%s' เป็น `%s'�อักขระพิเศษ (เช่น, `^C', `M-^C' ฯลฯ)�สดมภ์ก่อน�มิติ�แต่ละบรรทัด�emacs (เช่น, `C-c', `M-C-c' ฯลฯ)�ตัวจบรรทัดภายใน %s�ตัวจบบรรทัดในค่าคงที่สตริง�แบบอักษร %f ใหญ่เกินไป�ขนาดแบบอักษรคือ %gpt�หนัก�ฐานสิบหก (เช่น, `\x0a' ฯลฯ)�ความรู้ของชื่อไม่สมบูรณ์�อาร์กิวเมนต์ `%s' สำหรับ `%s' ไม่ถูกต้อง�ชื่อไม่ถูกต้อง `%s'�ช่วงไม่ถูกต้อง `%s'�ตัวเลือกไม่ถูกต้อง `%s'�ตัวระบุตัวแปร `%s' ไม่ถูกต้อง �หมายเลขรุ่นไม่ถูกต้อง `%s'�แนวนอน�อาร์กิวเมนต์หายไปสำหรับ `%s'�ไม่ต้องสำรองข้อมูล�ไม่�ไม่มีคำสั่งสำหรับ `%s' (%s%s)�ไม่มีกุญแจกำหนดล่วงหน้าสำหรับ `%s'�ไม่เลย�ปกติ�ลำดับเลขทุกการสำรองแฟ้ม�ลำดับเลขการสำรองไฟล์ที่ได้ลำดับเลขไปแล้ว, และแบบง่ายสำหรับอื่น ๆ�ฐานแปด (เช่น, `\001' ฯลฯ)�คำสั่งนำออก�ข้อความเปล่า�แนวตั้ง�ปรัศนีย์ (เช่น, `?')�กู้คืนแฟ้ม `%s'�แถวก่อน�บันทึกไปยังแฟ้ม `%s'�เลือกโดยอัตโนมัติ�ส่งไปยังเครื่องพิมพ์ปริยาย�ส่งไปยังเครื่องพิมพ์ `%s'�ส่งไปยังการนำออกมาตรฐาน�สำรองข้อมูลแบบง่ายของแต่ละแฟ้ม�ที่ว่าง (เช่น, ` ')�ส่วนรวมเข้ามากเกินไป�พบอักขระที่ไม่ต้องการ `%c'�ไม่รู้จักรหัสอักขระ `%s'�ไม่รู้จักสื่อ `%s'�ไม่รู้จักตัวเลือกผู้ใช้ `%s'�ผู้ใช้�ใช่�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/th.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000151064�14445132165�010747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of a2ps to Thai. # Copyright (C) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # Seksan Poltree <seksan.poltree@gmail.com>, 2010. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2010-03-17 14:47+0700\n" "Last-Translator: Seksan Poltree <seksan.poltree@gmail.com>\n" "Language-Team: Thai <translation-team-th@lists.sourceforge.net>\n" "Language: th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Poedit-Language: Thai\n" "X-Poedit-Country: THAILAND\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "อาร์กิวเมนต์หายไปสำหรับ `%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "ไม่สามารถสร้างแฟ้ม `%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "ไม่สามารถท่อข้อมูลบน `%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "การทำการแทน `%s', จาก %s เป็น %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "โปรแกรมประยุกต์ถูกตั้งค่าเพื่อการทำการแทน" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' เป็นไดเรกทอรี" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "ไม่สามารถเปิดแฟ้ม `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "ไม่สามารถดึงข้อมูลจากแฟ้ม `%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 หน้าบน 1 แผ่น]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d หน้าบน 1 แผ่น]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d หน้าบน %d แผ่น]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[รวม: 1 หน้า 1 แผ่น] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[รวม: %d หน้าบน 1 แผ่น] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[ทั้งหมด: %d หน้าบน %d แผ่น] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[ขึ้นหน้าใหม่ 1 บรรทัด]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[ขึ้นหน้าใหม่ %d บรรทัด ]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[ไม่มีการส่งออกที่ถูกสร้างขึ้น]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, ถูกทำแทนโดย %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ล้มเหลว. เพิกเฉย]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (ไม่สามารถพิมพ์ออกได้): เพิกเฉย]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (ไบนารี): เพิกเฉย]\n" #: src/generate.c:350 msgid "plain" msgstr "ข้อความเปล่า" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "ตัวจบบรรทัดในค่าคงที่สตริง" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "ตัวจบรรทัดภายใน %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "ได้รับสัญญาณ %d: %s" #: src/main.c:235 msgid "heavy" msgstr "หนัก" #: src/main.c:239 msgid "normal" msgstr "ปกติ" #: src/main.c:243 msgid "none" msgstr "ไม่เลย" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "ใช่" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ไม่" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "สถานะการตั้งค่าของ %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "แผ่น:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " ระหว่างกลาง = %s%s, %s\n" " เค้าโครงหน้า = %d x %d, %s\n" " ขอบ = %s\n" " การจัดตำแหน่งแฟ้ม = %s\n" " ส่วนต่างภายใน = %d\n" #: src/main.c:339 msgid "portrait" msgstr "แนวตั้ง" #: src/main.c:339 msgid "landscape" msgstr "แนวนอน" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d อักขระต่อบรรทัด" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d บรรทัดต่อหน้า" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "ขนาดแบบอักษรคือ %gpt" #: src/main.c:363 msgid "each line" msgstr "แต่ละบรรทัด" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "แต่ละ %d บรรทัด" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "หน้าเสมือน:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " หมายเลขบรรทัด = %s\n" " รูปแบบ = %s\n" " ขนาดแบบตาราง = %d\n" " รูปแบบที่ไม่สามารถพิมพ์ได้ = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "ส่วนหัว:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " ส่วนหัว = %s\n" " ส่วนท้ายซ้าย = %s\n" " ส่วนท้าย = %s\n" " ส่วนท้ายขวา = %s\n" " ชื่อเรื่องซ้าย = %s\n" " ชื่อเรื่องกลาง = %s\n" " ชื่อเรื่องขวา = %s\n" " ไว้ข้างใต้ = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "การนำเข้า:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " ตัดบรรทัด = %s\n" " แปล = %s\n" " จบบรรทัด = %s\n" " การเข้ารหัส = %s\n" " ชื่อเรื่องเอกสาร = %s\n" " ส่วนนำ = %s\n" " อย่างไรก็พิมพ์ = %s\n" " ตัวแทน = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "เลือกโดยอัตโนมัติ" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "การพิมพ์แบบสวยงาม:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " รูปแบบแผ่น = %s\n" " ระดับการเน้น = %s\n" " ระดับเส้น = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "ไม่ต้องสำรองข้อมูล" #: src/main.c:456 msgid "simple backups of every file" msgstr "สำรองข้อมูลแบบง่ายของแต่ละแฟ้ม" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "ลำดับเลขการสำรองไฟล์ที่ได้ลำดับเลขไปแล้ว,\n" " และแบบง่ายสำหรับอื่น ๆ" #: src/main.c:466 msgid "numbered backups of every file" msgstr "ลำดับเลขทุกการสำรองแฟ้ม" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "การส่งออก:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " ปลายทาง = %s\n" " ควบคุมรุ่น = %s\n" " คำเสริมท้ายแฟ้มสำรอง = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "โพสต์สคริพต์:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " หมายเลขเมจิค = %s\n" " แฟ้มอธิบายเครื่องพิมพ์ (PPD) = %s\n" " PPD ปริยาย = %s\n" " รูปแบบป้ายหน้า = %s\n" " จำนวนของสำเนา = %d\n" " สไลด์ต่อแผ่น = %s\n" " คำอธิบายอุปกรณ์หน้ากระดาษ = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " คำอธิบายคำแสดงสถานะ = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " เลื่อนหน้าก่อน = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "ภายใน:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " ระดับถ้อยคำ = %d\n" " คำสั่งแฟ้ม = %s\n" " พาธของไลบรารี = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "วิธีใช้: %s [OPTION]... [FILE]...\n" "\n" "แปลง FILE(s) หรือ ส่วนนำเข้ามาตรฐานไปเป็นโพสต์สคริพต์. โดยปริยาย, การส่งออก\n" "จะส่งไปไปยังเครื่องพิมพ์ปริยาย. ไฟล์ส่งออกอาจจะถูกระบุด้วย -o.\n" "\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "งาน:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version แสดงรุ่น\n" " --help แสดงความช่วยเหลือนี้\n" " --guess รายงานชนิดที่ถูกเดาของ FILES\n" " --which รายงานพาธเต็มของแฟ้มไลบรารีที่ตั้งชื่อว่า FILES\n" " --glob รายงานพาธเต็มของแฟ้มไลบรารีที่เข้าคู่กับ FILES\n" " --list=defaults แสดงการตั้งค่าปริยายและพารามิเตอร์\n" " --list=TOPIC รายละเอียดรายการบน TOPIC (delegations, encodings, " "features,\n" " variables, media, ppd, printers, prologues, style-" "sheets,\n" " user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "หลังจากทำงานเสร็จแล้ว, และออกอย่างเสร็จสมบูรณ์. รายการอย่างละเอียดอาจจะ\n" "ให้ความช่วยเหลือเพิ่มเติมในคุณสมบัติเฉพาะ.\n" #: src/main.c:678 msgid "Global:\n" msgstr "โดยรวม:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent ให้เงียบจริง ๆ \n" " -v, --verbose[=LEVEL] เปิดการแสดงถ้อยความ, หรือไปที่ระดับ LEVEL\n" " -=, --user-option=OPTION ใช้ทางลัด OPTION ที่ผู้ใช้กำหนด\n" " --debug เปิดใช้คุณสมบัติการดีบัก\n" " -D, --define=KEY[:VALUE] ไม่ตั้งค่าตัวแปร KEY หรือตั้งค่าเป็น VALUE\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=NAME ใช้สื่อการส่งออก NAME\n" " -r, --landscape พิมพ์ในแนวนอน\n" " -R, --portrait พิมพ์ในแนวตั้ง\n" " --columns=NUM จำนวนของสดมภ์ต่อแผ่น\n" " --rows=NUM จำนวนของแถวต่อแผ่น\n" " --major=DIRECTION เติม (DIRECTION=) row, หรือ column ก่อน\n" " -1, -2, ..., -9 กำหนดขนาดและเค้าโครงแบบอักษรสำหรับแบบเสมือน 1.. 9\n" " -A, --file-align=MODE จัดเรียงไฟล์แยกกันตาม MODE (fill, rank\n" " page, sheet, หรือ number)\n" " -j, --borders* พิมพ์ขอบรอบสดมภ์\n" " --margin[=NUM] กำหนดค่าส่วนต่างภายในของขนาด NUM\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "ตัวเลือก -1.. -9 มีผลกับพารามิเตอร์พื้นฐานที่จะตั้งค่ากำหนดล่วงหน้า\n" "เค้าโครง 80 สดมภ์. เพราะฉะนั้นอันดับเป็นเรื่องสำคัญ: `-R -f40 -2' จะ\n" "จะมีค่าเท่ากับ `-2'. ในการปรับเปลี่ยนเค้าโครง, ใช้ `-2Rf40', หรือประกอบ\n" "จากตัวเลือกพื้นฐาน(`--columns', `--font-size' ฯลฯ.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=NUM พิมพ์หมายเลขข้างหน้าทุก ๆ NUM บรรทัด ด้วยเลขบรรทัดนั้น\n" " -C นามแฝงของ --line-numbers=5\n" " -f, --font-size=SIZE ใช้รูปแบบอักษร SIZE (float) สำหรับเนื้อความ\n" " -L, --lines-per-page=NUM ปรับขนาดแบบอักษรเพื่อพิมพ์ NUM บรรทัดต่อแบบเสมือน\n" " -l, --chars-per-line=NUM ปรับขนาดแบบอักษรเพื่อพิมพ์ NUM สดมภ์ต่อแบบเสมือน\n" " -m, --catman ประมวลผล FILE เหมือนเป็น man page (เหมือนกับ -L66)\n" " -T, --tabsize=NUM ตั้งขนาดแท็บเป็น NUM\n" " --non-printable-format=FMT ระบุว่าจะพิมพ์อักระที่ไม่สามารถพิมพ์ได้อย่างไร\n" #: src/main.c:721 msgid "Headings:\n" msgstr "ส่วนหัว:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header ไม่มีส่วนหัวทั้งหมด\n" " -b, --header[=TEXT] ตั้งค่าส่วนหัว\n" " -u, --underlay[=TEXT] พิมพ์ TEXT ข้างใต้ทุกหน้า\n" " --center-title[=TEXT] ตั้งค่าชื่อเรื่องของหน้าเป็น TITLE\n" " --left-title[=TEXT] ตั้งค่าชื่อเรื่องของหน้าไปซ้ายและขวาเป็น TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] ตั้งค่าส่วนท้ายของแผ่นเป็น TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr " TEXTs อาจจะใช้การหนีแบบพิเศษ.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=RANGE] เลือกหน้าที่จะพิมพ์\n" " -c, --truncate-lines* ตัดบรรทัดยาว\n" " -i, --interpret* แปลงอักขระ tab, bs และ ff\n" " --end-of-line=TYPE ระบุอักขระจบบรรทัด eol (TYPE: r, n, nr, rn, any)\n" " -X, --encoding=NAME ใช้รหัสอักขระการนำเข้า NAME\n" " -t, --title=NAME ตั้งค่าชื่อของงาน\n" " --stdin=NAME ตั้งค่าชื่อของแฟ้มการนำเข้า stdin\n" " --print-anyway* บังคับการพิมพ์ไบนารี\n" " -Z, --delegate* ทำการไฟล์แทนด้วยโปรแกรมประยุกต์อื่น\n" " --toc[=TEXT] สร้างสารบัญ\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "เมื่อตัวแทนได้ถูกเปิดใช้, a2ps อาจใช้โปรแกรมประยุกต์อื่นในการจัดการ\n" "การประมวลผลของแฟ้ม ซึ่งไม่ควรพิมพ์เป็นแบบข้อมูลดิบ เช่น HTML\n" "PostSccript, PDF ฯลฯ\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=LANG] เปิดใช้การพิมพ์แบบสวยงาม(ตั้งรูปแบบเป็น LANG)\n" " --highlight-level=LEVEL ตั้งค่าระดับการเน้นการพิมพ์แบบสวยงามเป็น LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=FILE ปล่อยการนำออกไปยัง FILE. ถ้า FILE คือ `-',\n" " ปล่อยการนำออกไปยัง stdout.\n" " --version-control=WORD แทนที่ควบคุมรุ่นปกติ\n" " --suffix=SUFFIX แทนที่ส่วนต่อท้ายปกติ suffix\n" " -P, --printer=NAME ส่งการนำออกไปยังเครื่องพืมพ์ NAME\n" " -d ส่งการนำออกไปยังเครื่องพืมพ์ปริยาย\n" " (นี่เป็นพฤติกรรมปริยาย)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=FILE รวม FILE.pro เป็นส่วนนำ PostScript\n" " --ppd[=KEY] เลือก PPD อัตโนมัติหรือตั้งเป็น KEY\n" " -n, --copies=NUM พิมพ์ NUM สำเนา ในแต่ละหน้า\n" " -s, --sides=MODE ตั้งค่าพิมพ์แบบสองทางเป็น MODE (`1' หรือ `simplex',\n" " `2' หรือ `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] ผ่านหน้าคำอธิบายอุปกรณ์ไปยังการนำออก\n" " --statusdict=K[:[:]V] ผ่านคำอธิยาย statusdict ไปยังการนำออก\n" " -k, --page-prefeed เปิดใช้การเลื่อนหน้าก่อน\n" " -K, --no-page-prefeed ปิดใช้การเลื่อนหน้าก่อน\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "โดยปริยาย a2ps ได้ถูกปรับแต่งที่จะทำตามที่คุณต้องการให้เป็น, ดังนั้นมั่นใจได้. \n" "ในการพิมพ์แบบสวยงามของเนื้อหาไดเรกทอรี `src' แสะสารบัญ, และส่งผลลัพธ์ออกไปยัง\n" "เครื่องพิมพ์ `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "ในการประมวลผลแฟ้ม `sample.ps' และ `sample.html' และแสดงผลลัพธ์,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "ในการประมวลผลกล่องจดหมายแบบ 4 หน้าต่อแผ่น,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "ในการพิมพ์แบบหนังสือไปยังเครื่องพิมพ์ปริยาย, ซึ่งพิมพ์สองทางได้,\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "สารบัญ" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "ไม่สามารถดำเนินการ `%s' ซึ่งต้องการ a2ps รุ่น %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "พบอักขระที่ไม่ต้องการ `%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "ส่วนรวมเข้ามากเกินไป" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "ไม่มีกุญแจกำหนดล่วงหน้าสำหรับ `%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "ไม่สามารถหาแฟ้ม `%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "การเลือกรูปแบบอัตโนมัติยกเลิก" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "ไม่สามารถคอมไพล์นิพจน์ปกติ `%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Known Style Sheets" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "ไม่สามารถค้นหาแผ่นรูปแบบ `%s': ใช้รูปแบบข้อความเปล่า" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "หมายเลขรุ่นไม่ถูกต้อง `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "ที่ว่าง (เช่น, ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "ฐานแปด (เช่น, `\\001' ฯลฯ)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "ฐานสิบหก (เช่น, `\\x0a' ฯลฯ)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "อักขระพิเศษ (เช่น, `^C', `M-^C' ฯลฯ)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (เช่น, `C-c', `M-C-c' ฯลฯ)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "ปรัศนีย์ (เช่น, `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "ตัวเลือกไม่ถูกต้อง `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "รหัสอักขระที่รู้จัก" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "ความรู้ของชื่อไม่สมบูรณ์" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "ไม่สามารถปิดไดเรกทอรี `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "อาร์กิวเมนต์ `%s' สำหรับ `%s' ไม่ถูกต้อง" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "อาร์กิวเมนต์ที่ถูกต้องเป็น integer n เช่น: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "อาร์กิวเมนต์ที่ถูกต้องเป็น floats f เช่น: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "ไม่รู้จักรหัสอักขระ `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "แถวก่อน" #: liba2ps/madir.c:54 msgid "columns first" msgstr "สดมภ์ก่อน" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "ไม่รู้จักสื่อ `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "สื่อที่รู้จัก" #: liba2ps/media.c:189 msgid "Name" msgstr "ชื่อ" #: liba2ps/media.c:190 msgid "dimensions" msgstr "มิติ" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "ตัวแปรที่รู้จัก" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: ไม่พบ `%c' สำหรับทางหนี %s%c " #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "พิมพ์โดย %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "พิมพ์โดย %s จาก %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "ไม่สามารถหาไดเรกทอรีที่ทำงานปัจจุบัน" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: อาร์กิวเมนต์ยาวเกินไปสำหรับการหนี %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%b %d, %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: ไม่รู้จัก `%s' ทางหนี `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "หน้า %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "หน้า %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: ตัวแบ่งไม่ถูกต้อง `%s%c' สำหรับทางหนี `%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: อาร์กิวเมนต์ไม่ถูกต้องสำหรับทางหนี %s%c" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "หน้า %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "คำสั่งนำออก" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "ลองใช้ `%s --help' เพื่อแสดงข้อมูลมากขึ้น.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "ตัวระบุตัวแปร `%s' ไม่ถูกต้อง " #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "ชื่อไม่ถูกต้อง `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' ไม่เข้าคู่กันกับ `%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "แบบอักษรที่รู้จัก" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " ไม่มีเลย.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "อธิบายเครื่องพิมพ์โพสต์สคริพต์ที่รู้จัก" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "ช่วงไม่ถูกต้อง `%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "เครื่องพิมพ์ปริยาย" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "เครื่องพิมพ์ไม่รู้จัก" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "ไม่มีคำสั่งสำหรับ `%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "ส่งไปยังการนำออกมาตรฐาน" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "ส่งไปยังเครื่องพิมพ์ปริยาย" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "บันทึกไปยังแฟ้ม `%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "ส่งไปยังเครื่องพิมพ์ `%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "การนำออกที่รู้จัก (เครื่องพิมพ์, ฯลฯ)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "ส่วนนึที่รู้จัก" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "แบบอักษร %f ใหญ่เกินไป" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' เป็นแฟ้มไบนารี, การพิมพ์ถูกยกเลิก" #: liba2ps/userdata.c:104 msgid "user" msgstr "ผู้ใช้" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "ผู้ใช้ที่ไม่รู้จัก" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "ไม่รู้จักตัวเลือกผู้ใช้ `%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "ตัวเลือกผู้ใช้ที่รู้จัก" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "หน่วยความจำถูกใช้จนหมดแล้ว" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "ไม่สามารถเปลี่ยนชื่อแฟ้ม `%s' เป็น `%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "กู้คืนแฟ้ม `%s'" #~ msgid "any type" #~ msgstr "ชนิดใด ๆ" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "ข่าว, การปรับปรุง และเอกสาร: เยี่ยมชม http://www.gnu.org/software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "รายงานข้อผิดพลาดโปรแกรมไปยัง <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "สงานลิขสิทธิ์ (c) 1988-1993 Miguel Santana\n" #~ "สงานลิขสิทธิ์ (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "สงานลิขสิทธิ์ (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "รหัสอักขระที่ไม่รู้จัก `%s', เพิกเฉย" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "สงวนสิขสิทธิ์ (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "เขียนขึ้นโดย %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "นี่เป็นซอฟต์แวรเสรี; ดูรหัสต้นฉบับสำหรับเงื่อนไขการสำเนา. มีการ \"ไม่\" รับประกัน;\n" #~ "ไม่แแม้แต่การความสามารถในเชิงพาณิชย์ หรือความเหมาะสมกับจุดประสงค์เฉพาะ.\n" #~ msgid "write error" #~ msgstr "เกิดข้อผิดพลาดในการเขียน" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "ข้อกำหนดของเครื่องพิมพ์ไม่ถูกต้อง `%s': %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "ข้อมูล `%s' ล้าสมัย. เพิกเฉย" #, c-format #~ msgid "Page %d/%d" #~ msgstr "หน้า %d/%d" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "อาร์กิวเมนต์ %s ไม่ถูกต้อง สำหรับ `%s'" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "อาร์กิวเมนต์ %s กำกวมไม่ชัดเจน สำหรับ `%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "อาร์กิวเมมนต์ที่ถูกต้องได้แก่:" #~ msgid "Unknown system error" #~ msgstr "เกิดความผิดพลาดของระบบที่ไม่รู้จักขึ้น" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: ตัวเลือก `%s' is กำกวมไม่ชัดเจน\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: ตัวเลือก `--%s' ไม่อนุญาตให้มีอาร์กิวเมนต์\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: ตัวเลือก `%c%s' ไม่อนุญาตให้มีอาร์กิวเมนต์\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: ตัวเลือก `%s' ต้องการอาร์กิวเมนต์\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: ไม่สามารถจดจำตัวเลือก `--%s' \n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: ไม่สามารถจดจำตัวเลือก `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ตัวเลือกผิดกฎ -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: ตัวเลือกผิดกฎ -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: ตัวเลือกต้องการอาร์กิวเมนต์ -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: ตัวเลือก `-W %s' กำกวมไม่ชัดเจน\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: ตัวเลือก `-W %s' ไม่อนุญาตให้มีอาร์กิวเมนต์\n" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/tr.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000024756�14445132166�011135� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������|�����������������x �� ���y ��E��� ����� ��!���j ����� ��E��� ����� �� ��� ����� ��$��� ��,��� �� ��� ��#���6 ��!���Z ��&���| ����� ����� ����� ����� ������������ ���!�� ���+�����6�� ���>�����J�� ���Z�� ���f�����r��%����������������������������������� ��� ������� ���*�����8�����N�����W�����h��#���p�� ����&���������� �����+�����-��������@�����P����������������;�����S�����p������������'���������������#��������2��*���N�����y�������/�����$�����$��������!�����<��2���R������������ ����� ����� �����!�������� �����"�����A�����Q�����c�����i��������������������������� ��������#�� ���?�����I�����c�����v�����y����������������������\��������8�����R�����a�����g�����p������� ���������������������������� �����)�����F�����X�����j������������������������������������B����������!����������Q���������� ����������*�����;���'��,���c��*�����.�����&�������������)�����:�����T�����h�����x�� ����� ������������������������������(�����-��������@�����Q�����h����������������� ����� ����� ���������� ����� ����� �����.��� ����0 ��8���D!�����}!�����!��9���!��5���!�����"�����%"�����"��&���"�����#��!���8#�����Z#�����x#�����#��,���#�����#�����#��&���$�����)$��%���C$�����i$�����$��5���$��$���$��(���$��!���#%�����E%��(���]%��0���%�����%�� ���%�����%�� ���%�� ���%�����&�����-&�����H&�����^&�����r&�����x&�����&��#���&�����&�����&�����&�����'�����.'�����K'�����Q'�����i'�����y'�����'�����'�����'�����'��!���'��N���'�����8(�� ���T(�����a(�����f(�����m(�����(�� ���(�����(�����(�����(�����(����� )�����()�����G)�����Y)�����r)�����)�����)��"���)�� ���)�����)�����_������w�������������������������������R���e������Y���3�������������]���W���c��������������Z�������B���p������'���#�������a���.���K�������s������� ���U���`��������������2���4���9���Q���q���x��� ������@���,�������-�������?�����������������F�������L���A���i�������7������O���E���M���!���v���������������T���r�������^�����������G���[���0��� ������ �������>���8���t���(�����������m��� ���"���j������� ���g���:�������o����������b���+�������J���{���V���f���z�������y����������6��������������/���;�������=������l���<���k���n�������h���u�������N���$���|�������1���5���H������D������S���I���\������)�������d�������X���%���&������C�������P������*���� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2017-03-26 13:55+0300 Last-Translator: Mehmet Kececi <mkececi@mehmetkececi.com> Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net> Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-9 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: Virtaal 0.7.1 X-Bugs: Report translation errors to the Language-Team address. � Yok. � var = %s srm denetimi = %s yedek soneki = %s � styaz = %s sol altyaz = %s altyaz = %s sa altyaz = %s sol balk = %s orta balk = %s sa balk = %s dipyaz = %s � sayfa nbesleme = %s � statusdict tanmlar = � tarz dosyas = %s renklendirme dzeyi = %s ayklama dzeyi = %d � satrlar krp = %s yorumla = %s satr sonu = %s kodlama = %s belge bal = %s giri = %s yine de bas = %s stlenici = %s �%d %B %Y, %A�%s, %s uygulamasna devredildi�%s: %s%c ka dizgesi iin hatal argman�%1$s: `%4$s' ka dizgesi iin `%2$s%3$c' ayrcs hatal�%1$s: %3$s%4$c ka dizgesinde `%2$c' eksik�%s: %s ka dizgesi iin ok uzun argman�%s: tannmayan `%s' ka dizgesinde `%c' (%d)�stlenici olarak ayarlanan uygulamalar�%s iin ayar durumu %s �ntanml Yazc�stlenici `%s', %s -> %s �Dinamik dizi `%s': �Dinamik katar: �Genel: �styazlar: �Balklar: �Girdi: � Ayrntlar: �Tannan kodlamalar�Tannan Yaztipleri�Tannan ortamlar�Tannan kt varlar (yazclar v.b.)�Tannan PostScript Yazc Betimlemeleri (PPD)�Tannan giriler�Bilinen Stil Dosyalar�Bilinen Kullanc Seenekleri�Bilinen Deikenler�sim�kt: �PostScript: �Ssl-basm: �Basan: %s�Basan: %s, Yer: %s�Katlar: �indekiler�lemler: �METN'lerde zel ka dizgeleri bulunabilir. �-1.. -9 seenekleri 80 stunlu sayfa dzenleri ile ilgili eitli parametreleri dzenler. Dolaysyla sralar nemlidir: `-R -f40 -2' `-2'ye edeerdir. Sayfa dzenini deitirmek iin `-2Rf40' kullann veya eitli seenekleri birletirin (`--columns', `--font-size' vb). �Daha ok bilgi almak iin `%s --help' komutunu deneyin. �Tannmayan Yazc�Tannmayan Kullanc�Geerli argmanlar %s kuralna uyan f gerel saylardr �Geerli argmanlar %s kuralna uyan n tamsaylardr �Sanal sayfalar: �Devretme zellii etkinletirildii zaman a2ps ham bilgi olarak baslmamas gereken dosyalar baka bir uygulama aracl ile ileyebilir. rnein: HTML Postscript, PDF vs. �[%s (%s): 1 sayfa / 1 kat] �[%s (%s): baarsz. Gzard edildi] �[%s (ikilik): gzard edildi] �[%s (baslamaz): gzard edildi] �[1 satr alt satra sarld] �[kt retilmedi] �[Toplam: 1 sayfa / 1 kat] %s �`%s' ikili bir dosya, basma ilemi brakld�`%s' bir dizin�`%s' ile eleen `%s' yok�otomatik stil seimi etkisizletirildi�`%s' dizini kapatlamyor�`%s' dzenli ifadesi derlenemiyor: %s�`%s' dosyas oluturulamyor�`%s' dosyas bulunamyor�`%s' stil dosyas bulunamyor: sade stil kullanlyor�iinde allan dizine ulalamyor�`%s' dosyas ile ilgili bilgi alnamyor�`%s' zerinde veriyolu alamyor�`%s' dosyas alamyor�`%s' ilenemiyor, a2ps %s srm gerekli�`%s' dosyasnn ad `%s' olarak deitirilemiyor�apka (yani `^C', `M-^C' gibi)�nce stunlar�boyutlar�her satr�emacs (yani `C-c', `M-C-c' gibi)�%s iinde satr-sonu�dizge sabitinde satr-sonu�%f yaztipi ok byk�yaztipi boyu: %gpt�kaln�onaltlk (yani `\x0a' gibi)�yzler hakknda yetersiz bilgi�`%2$s' iin geersiz argman `%1$s'�geersiz yz `%s'�geersiz aralk %s�geersiz seenek `%s'�geersiz deiken ad `%s'�geersiz srm numaras `%s'�enine�`%s' iin eksik argman�asla yedek alma�hayr�`%s' (%s%s) iin bir komut yok�`%s' iin tanml anahtar yok�yok�normal�her dosyann numaral yedeini al�numaral dosyalarn numaral, dierlerinin basit yedeklerini al�sekizlik (yani `\001' gibi)�kt komutu�sade�boyuna�soru iareti (yani `?')�`%s' dosyas kurtarld�nce satrlar�`%s' dosyasna yazld�otomatik seildi�ntanml yazcya gnderildi�`%s' yazcsna gnderildi�standart ktya gnderildi�her dosyann basit yedeini al�boluk (yani ` ')�ok fazla ierilen dosya�beklenmeyen `%c' karakteri�tannmayan kodlama: `%s'�tannmayan ortam `%s'�tannmayan kullanc seenei `%s'�kullanc�evet�������������������a2ps-4.15.5/po/tr.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000134450�14445132165�010761� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is distributed under the same license as the a2ps package. # translation of a2ps-4.13b.tr.po to Turkish # Turkish messages for a2ps # Copyright (C) 2002, 2005 Free Software Foundation, Inc. # H. Turgut Uyar <uyar@cs.itu.edu.tr>, 1997. # Mehmet Kececi <mkececi@mehmetkececi.com>, 2017. msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2017-03-26 13:55+0300\n" "Last-Translator: Mehmet Kececi <mkececi@mehmetkececi.com>\n" "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-9\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Virtaal 0.7.1\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "`%s' iin eksik argman" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "`%s' dosyas oluturulamyor" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "`%s' zerinde veriyolu alamyor" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "stlenici `%s', %s -> %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "stlenici olarak ayarlanan uygulamalar" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' bir dizin" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "`%s' dosyas alamyor" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "`%s' dosyas ile ilgili bilgi alnamyor" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 sayfa / 1 kat]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d sayfa / 1 kat]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d sayfa / %d kat]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Toplam: 1 sayfa / 1 kat] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Toplam: %d sayfa / 1 kat] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Toplam: %d sayfa / %d kat] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 satr alt satra sarld]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d satr alt satra sarld]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[kt retilmedi]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, %s uygulamasna devredildi" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): baarsz. Gzard edildi]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (baslamaz): gzard edildi]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (ikilik): gzard edildi]\n" #: src/generate.c:350 msgid "plain" msgstr "sade" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "dizge sabitinde satr-sonu" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "%s iinde satr-sonu" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "%d sinyali alnd: %s" #: src/main.c:235 msgid "heavy" msgstr "kaln" #: src/main.c:239 msgid "normal" msgstr "normal" #: src/main.c:243 msgid "none" msgstr "yok" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "evet" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "hayr" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "%s iin ayar durumu %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Katlar:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " ortam = %s%s, %s\n" " sayfa dzeni = %d x %d, %s\n" " kenarlar = %s\n" " dosya hizalama = %s\n" " i kenar aral = %d\n" #: src/main.c:339 msgid "portrait" msgstr "boyuna" #: src/main.c:339 msgid "landscape" msgstr "enine" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "bir satra %d harf" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "bir sayfaya %d satr" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "yaztipi boyu: %gpt" #: src/main.c:363 msgid "each line" msgstr "her satr" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "her %d satr" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Sanal sayfalar:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " satr numaralama = %s\n" " biem = %s\n" " sekme boyu = %d\n" " baslamaz format = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "styazlar:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " styaz = %s\n" " sol altyaz = %s\n" " altyaz = %s\n" " sa altyaz = %s\n" " sol balk = %s\n" " orta balk = %s\n" " sa balk = %s\n" " dipyaz = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Girdi:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " satrlar krp = %s\n" " yorumla = %s\n" " satr sonu = %s\n" " kodlama = %s\n" " belge bal = %s\n" " giri = %s\n" " yine de bas = %s\n" " stlenici = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "otomatik seildi" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Ssl-basm:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " tarz dosyas = %s\n" " renklendirme dzeyi = %s\n" " ayklama dzeyi = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "asla yedek alma" #: src/main.c:456 msgid "simple backups of every file" msgstr "her dosyann basit yedeini al" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "numaral dosyalarn numaral,\n" " dierlerinin basit yedeklerini al" #: src/main.c:466 msgid "numbered backups of every file" msgstr "her dosyann numaral yedeini al" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "kt:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " var = %s\n" " srm denetimi = %s\n" " yedek soneki = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " byl numara = %s\n" " Yazc Betimlemesi (PPD) = %s\n" " ntanml PPD = %s\n" " sayfa etiketi biemi = %s\n" " kopya says = %d\n" " kat yz says = %s\n" " sayfa aygt tanmlar = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " statusdict tanmlar = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " sayfa nbesleme = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr " Ayrntlar:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " ayrnt dzeyi = %d\n" " dosya komutu = %s\n" " kitaplk yolu = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Kullanm: %s [SEENEK]... [DOSYA]...\n" "\n" "DOSYA(lar) ya da standart girdiyi PostScript'e evirir. Varsaylan olarak, " "kt varsaylan yazcya gnderilir. Bir kt dosyas -o ile " "belirtilebilir.\n" "\n" "Uzun seeneklerde zorunlu olan argmanlar ksa seeneklerde de zorunludur.\n" " * ile iaretlenmi uzun seenekler bir evet/hayr argman isterler,\n" "bunlara kar den ksa seenekler 'evet' anlamna gelir.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "lemler:\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version srm numarasn gsterir\n" " --help bu yardm sayfasn gsterir\n" " --guess DOSYA(lar)n tahmin edilen trlerinigsterir\n" " --which DOSYA olarak verilen kitaplk dosyalarnn\n" " tam yollarn gsterir\n" " --glob DOSYA ile eleen kitaplk dosyalarnn tam\n" " yollarn gsterir\n" " --list=defaults ntanml ayarlar gsterir\n" " --list=KONU KONU hakknda detay bilgi verir (delegations, " "encodings, \n" " features, variables, media, ppd, printers, prologues, \n" " style-sheets, user-options)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "lemi bitirdikten sonra baar ile kar. Detay listeler\n" "zellikler hakknda daha fazla yardm verebilir.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Genel:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent gerekten sessiz ol\n" " -v, --verbose[=DZEY] detay bilgi seviyesini DZEY\n" " olarak ayarla\n" " -=, --user-option=SEENEK kullanc tanml SEENEK\n" " ksaltmasn kullan\n" " --debug hata ayklama yeteneklerini a\n" " -D, --define=ANAHTAR[:DEER] ANAHTAR deikenini sil ya da DEER ata\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=SM SM kt ortamn kullan\n" " -r, --landscape enine bas\n" " -R, --portrait boyuna bas\n" " --columns=SAYI bir kattaki stun says (SAYI > 0)\n" " --rows=SAYI bir kattaki satr says (SAYI > 0)\n" " --major=YN nce (YN=)satrlar, ya da stunlar doldur\n" " -1, -2, ..., -9 1, ..., 9 sanal sayfa iin nceden tanml\n" " yaztipi boylar ve sayfa dzenleri\n" " -A, --file-align=KP ayr dosyalar KP'e gre (fill, rank, page,\n" " sheet ya da bir say) hizala\n" " -j, --borders* stunlarn evresine kenar iz\n" " --margin[=SAYI] SAYI boyunda bir i kenar aral tanmla\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "-1.. -9 seenekleri 80 stunlu sayfa dzenleri ile ilgili eitli\n" " parametreleri dzenler. Dolaysyla sralar nemlidir: `-R -f40 -2'\n" "`-2'ye edeerdir. Sayfa dzenini deitirmek iin `-2Rf40' kullann\n" "veya eitli seenekleri birletirin (`--columns', `--font-size' vb).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=SAYI her SAYI satrn nne satr numaras ekle\n" " -C --line-numbers=5 yerine geer\n" " -f, --font-size=BOY metin iin BOY (float) yaztipini kullan\n" " -L, --lines-per-page=SAYI her sanal sayfaya SAYI satr baslacak\n" " ekilde yaztipini lekle\n" " -l, --chars-per-line=SAYI her sanal sayfaya SAYI stun baslacak\n" " ekilde yaztipini lekle\n" " -m, --catman dosyay man sayfas olarak ile (-L66 ile " "ayn)\n" " -T, --tabsize=SAYI sekme boyuna SAYI deerini ver\n" " --non-printable-format=FMT baslamaz karakterlerin nasl baslacan\n" " belirt\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Balklar:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header sayfa styazs yok\n" " -b, --header[=METN] sayfa styazsn ayarla\n" " -u, --underlay[=METN] her sayfann altna METN yazsn bas\n" " --center-title[=METN] sayfa balna METN deerini ver\n" " --left-title[=METN] sol ve sa balklara METN deerini ver\n" " --right-title[=METN]\n" " --left-footer[=METN] sayfa altyazlarna METN deerini ver\n" " --footer[=METN]\n" " --right-footer[=METN]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "METN'lerde zel ka dizgeleri bulunabilir.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ARALIK] baslacak sayfalar seer\n" " -c, --truncate-lines* uzun satrlar krpar\n" " -i, --interpret* sekme, bs ve ff karakterlerini yorumlar\n" " --end-of-line=TP satr-sonu karakterini belirtir (TP: r, n, " "nr,\n" " rn, any)\n" " -X, --encoding=SM SM girdi kodlamasn kullanr\n" " -t, --title=SM ie isim verir\n" " --stdin=SM standart girdiye isim verir\n" " --print-anyway* ikili dzende basmaya zorlar\n" " -Z, --delegate* dosyalar baka bir uygulamaya devreder\n" " --toc[=METN] iindekiler blm oluturur\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Devretme zellii etkinletirildii zaman a2ps ham bilgi olarak baslmamas\n" "gereken dosyalar baka bir uygulama aracl ile ileyebilir. rnein: " "HTML\n" "Postscript, PDF vs.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=DL] ssl-basm a (stili DL olarak ayarla)\n" " --highlight-level=DZEY ssl-basm renklendirme DZEYini ayarla\n" " DZEY none, normal ya da heavy olabilir\n" " -g --highlight-level=heavy ile ayn\n" " --strip-level=NUM yorum ayklama dzeyi\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=DOSYA kty DOSYA dosyasna gnderir. DOSYA `-' " "ise\n" " kty standart ktya gnderir.\n" " --verson-control=SZCK srm denetimini deitirir\n" " --suffix=SONEK yedek sonekini deitirir\n" " -P, --printer=SM kty SM yazcsna yollar\n" " -d kty varsaylan yazcya yollar\n" " (bu varsaylan davrantr)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=DOSYA DOSYA.pro dosyasn PostScript girii olarak " "alr\n" " --ppd[=ANAHTAR] PPD'yi otomatik seer [ya da ANAHTAR deerini " "verir]\n" " -n, --copies=SAYI her sayfadan SAYI kopya basar\n" " -s, --sides=KP duplex KP'e geer (`1' ya da `simplex',\n" " `2' ya da `duplex', `tumble'\n" " -S, --setpagedevice=K[:V] ktya bir sayfa aygt tanm gnderir\n" " --statusdict=K[:[:]V] ktya bir statusdict tanm gnderir\n" " -k, --page-prefeed sayfa nbeslemesine izin verir\n" " -K, --no-page-prefeed sayfa nbeslemesi iznini kaldrr\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "ntanml olarak a2ps sizin yapmak istediklerinizi yapmaya ayarlanmtr.\n" "`src' dizinin ieriini ssl basmak, bir iindekiler blm ilave etmek\n" "ve sonucu `lw' yazcsna gndermek iin:\n" "\n" " $ a2ps -P lw -toc src/*\n" "\n" "`rnek.ps' ve `rnek.html' dosyalarn ilemek ve sonucu gstermek iin:\n" "\n" " $ a2ps -P display rnek.ps rnek.html\n" "\n" "4 seviye yukarda bir posta kutusunu ilemek iin:\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Duplex kip destei olan ntanml yazcda bir kitapk basmak iin:\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "indekiler" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "`%s' ilenemiyor, a2ps %s srm gerekli" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "beklenmeyen `%c' karakteri" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "ok fazla ierilen dosya" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "`%s' iin tanml anahtar yok" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "`%s' dosyas bulunamyor" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "otomatik stil seimi etkisizletirildi" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "`%s' dzenli ifadesi derlenemiyor: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Bilinen Stil Dosyalar" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "`%s' stil dosyas bulunamyor: sade stil kullanlyor" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "geersiz srm numaras `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "boluk (yani ` ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "sekizlik (yani `\\001' gibi)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "onaltlk (yani `\\x0a' gibi)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "apka (yani `^C', `M-^C' gibi)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (yani `C-c', `M-C-c' gibi)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "soru iareti (yani `?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Dinamik dizi `%s':\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, fuzzy, c-format #| msgid "\tload: %d/%d (%2.1f%%)\n" msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tykle: %d/%d (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Dinamik katar:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "geersiz seenek `%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Tannan kodlamalar" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "yzler hakknda yetersiz bilgi" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "`%s' dizini kapatlamyor" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "`%2$s' iin geersiz argman `%1$s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Geerli argmanlar %s kuralna uyan n tamsaylardr\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Geerli argmanlar %s kuralna uyan f gerel saylardr\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "tannmayan kodlama: `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "nce satrlar" #: liba2ps/madir.c:54 msgid "columns first" msgstr "nce stunlar" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "tannmayan ortam `%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Tannan ortamlar" #: liba2ps/media.c:189 msgid "Name" msgstr "sim" #: liba2ps/media.c:190 msgid "dimensions" msgstr "boyutlar" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Bilinen Deikenler" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%1$s: %3$s%4$c ka dizgesinde `%2$c' eksik" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Basan: %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Basan: %s, Yer: %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "iinde allan dizine ulalamyor" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: %s ka dizgesi iin ok uzun argman" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%d %b %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%d %B %Y, %A" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: tannmayan `%s' ka dizgesinde `%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Sayfa %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Sayfa %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%1$s: `%4$s' ka dizgesi iin `%2$s%3$c' ayrcs hatal" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: %s%c ka dizgesi iin hatal argman" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Sayfa %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "kt komutu" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Daha ok bilgi almak iin `%s --help' komutunu deneyin.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "geersiz deiken ad `%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "geersiz yz `%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' ile eleen `%s' yok" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Tannan Yaztipleri" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Yok.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Tannan PostScript Yazc Betimlemeleri (PPD)" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "geersiz aralk %s" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "ntanml Yazc" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Tannmayan Yazc" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "`%s' (%s%s) iin bir komut yok" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "standart ktya gnderildi" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "ntanml yazcya gnderildi" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "`%s' dosyasna yazld" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "`%s' yazcsna gnderildi" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Tannan kt varlar (yazclar v.b.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Tannan giriler" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "%f yaztipi ok byk" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' ikili bir dosya, basma ilemi brakld" #: liba2ps/userdata.c:104 msgid "user" msgstr "kullanc" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Tannmayan Kullanc" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "tannmayan kullanc seenei `%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Bilinen Kullanc Seenekleri" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Bellek tkendi" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "`%s' dosyasnn ad `%s' olarak deitirilemiyor" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "`%s' dosyas kurtarld" # src/buffer.c:61 #~ msgid "any type" #~ msgstr "her tr" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Haberler, gncellemeler ve belgeleme iin adres: http://www.gnu.org/" #~ "software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Hatalar <bug-a2ps@gnu.org> adresine bildirin.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Telif Hakk (c) 1988-1993 Miguel Santana\n" #~ "Telif Hakk (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Telif Hakk (c) 2007- Akim Demaille, Miguel Santana ve Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "tannmayan kodlama: `%s', gzard edildi" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Telif Hakk 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Yazan: %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Bu bir serbest yazlmdr; kopyalama kurallar iin kaynak koduna " #~ "baknz.\n" #~ "H BR garantisi yoktur; hatta SATILABLRL veya HERHANG BR AMACA " #~ "UYGUNLUU\n" #~ "iin dahi garanti verilmez.\n" #~ msgid "write error" #~ msgstr "yazma hatas" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "`%s' yazcs iin hatal tanmlama: %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "`%s' kayd artk anlamsz. Gzard edildi" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Sayfa %d/%d" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "`%2$s' iin hatal argman %1$s" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "`%2$s' iin belirsiz argman %1$s" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Geerli argmanlar:" #~ msgid "Unknown system error" #~ msgstr "Bilinmeyen sistem hatas" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: `%s' seenei belirsiz\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: `--%s' seenei argman kabul etmez\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: `%c%s' seenei argman kabul etmez\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: `%s' seeneine argman verilmeli\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: bilinmeyen seenek `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: bilinmeyen seenek `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: geersiz seenek -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: hatal seenek -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: seenee bir argman verilmeli -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: `-W %s' seenei belirsiz\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: `-W %s' seeneine argman verilemez\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "dzgn deyimde satr-sonu" #~ msgid "end-of-line in regular expression" #~ msgstr "dzgn deyimde satr-sonu" #, fuzzy #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "\n" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana\n" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "ler (baaryla sona erdi):\n" #~ msgid "" #~ "Written by <Akim.Demaille@inf.enst.fr> and <Miguel.Santana@st.com>.\n" #~ msgstr "Yazanlar: <Akim.Demaille@inf.enst.fr> ve <Miguel.Santana@st.com>\n" #~ msgid "no default command for option `-d'" #~ msgstr "`-d' seenei iin ntanml bir komut yok" #~ msgid "pipe in %s\n" #~ msgstr "pipe in %s\n" #~ msgid "save in %s\n" #~ msgstr "save in %s\n" #, fuzzy #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "`%s' seenei iin hatal argman `%s'" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "geersiz seenek aral: %s" #~ msgid "illegal integer interval: %s" #~ msgstr "geersiz seenek aral: %s" #, fuzzy #~ msgid "cannot find file %s" #~ msgstr "`%s' dosyas bulunamyor" #, fuzzy #~ msgid "unrecognized font `%s'" #~ msgstr "tannmayan yaztipi: `%s'" #, fuzzy #~ msgid "unrecognized face `%s'" #~ msgstr "tannmayan yz: `%s'" #, fuzzy #~ msgid "missing argument for %s" #~ msgstr "`%s' iin eksik argman" #, fuzzy #~ msgid "invalid variable identifier %s" #~ msgstr "hatal makro belirteci `%s'" #, fuzzy #~ msgid "cannot create file %s" #~ msgstr "`%s' dosyas yaratlamyor" #, fuzzy #~ msgid "cannot open a pipe on %s" #~ msgstr "`%s' zerinde pipe alamyor" #, fuzzy #~ msgid "cannot open file %s" #~ msgstr "`%s' dosyas alamyor" #, fuzzy #~ msgid "cannot open configuration file %s" #~ msgstr "`%s' ayar dosyas alamyor" #~ msgid "encoding %s unknown" #~ msgstr "%s kodlamas tannmyor" #~ msgid " library path = \n" #~ msgstr " ariv yolu = \n" #~ msgid "user option `%s' not defined" #~ msgstr "`%s' kullanc seenei tanml deil" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "geersiz seenek: `%s'" #~ msgid "illegal option: `%s'" #~ msgstr "geersiz seenek: `%s'" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "`%s' seenek katarnda yazm hatas:\n" #~ "alan trnak kapatlmam: %c" #, fuzzy #~ msgid "cannot backup and create file `%s'" #~ msgstr "`%s' dosyas yaratlamyor" #~ msgid "wrong value for option %s: `%s'" #~ msgstr "%s seenei iin yanl deer: `%s'" #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "Geerli argmanlar %d ile %d arasndaki tamsaylardr\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Geerli argmanlar %d saysndan byk olan tamsaylardr\n" #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "Geerli argmanlar %gpt ile %gpt arasndaki uzunluklardr\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "`%s' ayar dosyas bulunamyor" #~ msgid "steady" #~ msgstr "sabit" #~ msgid "linear" #~ msgstr "izgisel" #~ msgid "geometrical" #~ msgstr "geometrik" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "\tbyme: %s, art: %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "Hash tablosu iin %ld sekizli ayrlamyor: bellek tkendi" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Ykle=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "Rehash=%d, " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "akmalar=%ld/%ld=%.0f%%" #~ msgid "Document title" #~ msgstr "Belge bal" #~ msgid "Page label" #~ msgstr "Sayfa etiketi" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/uk.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000077627�14445132166�011134� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����� ������H �����I ��$���c �� ��� ��E�� ��S������,���� ��U��������n������s��5��A��E���w ����� �����^!�����C"��p���"��!���7#�����Y#��E���x#�����#��O���o$�� ���$�� ���$�����$��$���$��,���%�� ���<%��#���]%��!���%�����%�����%��v���%��&���C&����j&�����\(�����{(�����(�����(�����(�����(�� ���(�� ���(�����(�� ���(�����)�� ���)�� ���)�����+)��%���J)�����p)�����)�����)�����)�����)�����)�����)�� ���)�� ���)�� ���)�����)�� ���*�����*�����)*�����2*�����C*��#���K*�� ��o*��&���}+�����+�� ���+��c��+��+���%-��-���Q-�����-�����-��#���?.�� ���c.�����.�����.�����.�����.�����.����� /�����/��$���1/��!���V/�����x/��'���/�����/�����/��#���/�����0��*���.0�����Y0�����q0��/���0��$���0��$���0�����1�����1��2���21�����e1�����1�� ���1�� ���1�� ���1�� ���1��!���1�����1�����2�����/2�����E2�����U2�����g2�����m2�����2�����2�����2�����2�����2�� ���3�����'3�� ���C3�����M3�����^3�����x3�����3�����3�����3�����3�����3�����3��\���3�����M4�����g4�����v4�����|4�����4�����4�����4�� ���4�����4�����4�����4�����5�����15�����M5�����j5�����|5�����5�����5�����5�����5�����5�����6����� 6����6��0���)8��D���Z8�����8����8����<����@����C��,��tF����H��T��/M����P����S�����U��P��.V��q��W�����X�����Y��8���WZ��'���Z��v���Z��B��/[��t���r\�� ���\�����\�����\��h���]��t���]��X���]��j���R^��\���^�����_��%���8_�����^_��J���C`��K��`��2���c����� d��/���+d��(���[d��!���d�����d�����d�����d�����d��'���d�����%e�����Ee�����_e��G���we��3���e��*���e��*���f��:���If�����f�����f�����f�����f�����f�����f�� ��� g��!���g�����8g�����Lg�����fg�� ���ug�����g�����g����h��d���i��!���)j��'���Kj����sj��^���im��Z���m��'���#n��2��Kn��6���~o��4���o��2���o��L���p��2���jp��9���p��(���p�� ����q��/���!q��>���Qq��<���q��:���q��D���r�����Mr��,���fr��T���r��8���r��W���!s��4���ys��0���s�����s��c���at��H���t��;���u��4���Ju��U���u��F���u��B���v�����_v�����v�����v�����v��*���v��-���v��P���w��B���jw��+���w��/���w����� x��E���x��A���^x��8���x��*���x��0���y��$���5y��E���Zy��3���y�����y�� ���y��1���z��B���Bz�����z��,���z��.���z�����z�����z��J��� {�����W{��:���|�����<|�����X|�����g|��(���~|�����|��$���|�����|��%���|��%���%}��5���K}��-���}��;���}��L���}�����8~��,���V~��:���~��*���~��(���~��"�����E���5�����{����������+���t���r���R���/�����������<���k���w���}���1������`���,���9���K������[����������� ���S����������������������=���P���������X����������p��� ���)���������\������?������^���z������� ���:���V���&���3������������������������]���_�������T���7���s���Z���"���a�������J���c���'���u�������b�������;����������g�������j���l��������������Y���C���N���������i����������>���F����������������B�������������2���������������������!����������m���y������d���O���I����������-���D��������������H���4��������������������������$���������������������x�������e���G���|���5�������6���U���.���������������� �������*�����������������������{���������� ���#�������������������������������E������W�����������n���(���L�������8�����������@�����������v�������A��� ���f���������Q������0���h���~�������%������M���q���o���� load: %zu/%zu (%2.1f%%) � original size: %zu, growth: %s %zu � None. � --line-numbers=NUM precede each NUM lines with its line number -C alias for --line-numbers=5 -f, --font-size=SIZE use font SIZE (float) for the body text -L, --lines-per-page=NUM scale the font to print NUM lines per virtual -l, --chars-per-line=NUM scale the font to print NUM columns per virtual -m, --catman process FILE as a man page (same as -L66) -T, --tabsize=NUM set tabulator size to NUM --non-printable-format=FMT specify how non-printable chars are printed � --prologue=FILE include FILE.pro as PostScript prologue --ppd[=KEY] automatic PPD selection or set to KEY -n, --copies=NUM print NUM copies of each page -s, --sides=MODE set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') -S, --setpagedevice=K[:V] pass a page device definition to output --statusdict=K[:[:]V] pass a statusdict definition to the output -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed � --version display version --help display this help --guess report guessed types of FILES --which report the full path of library files named FILES --glob report the full path of library files matching FILES --list=defaults display default settings and parameters --list=TOPIC detailed list on TOPIC (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header no page headers at all -b, --header[=TEXT] set page header -u, --underlay[=TEXT] print TEXT under every page --center-title[=TEXT] set page title to TITLE --left-title[=TEXT] set left and right page title to TEXT --right-title[=TEXT] --left-footer[=TEXT] set sheet footers to TEXT --footer[=TEXT] --right-footer[=TEXT] � -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG) --highlight-level=LEVEL set pretty printing highlight LEVEL LEVEL can be none, normal or heavy -g alias for --highlight-level=heavy --strip-level=NUM level of comments stripping � -M, --medium=NAME use output medium NAME -r, --landscape print in landscape mode -R, --portrait print in portrait mode --columns=NUM number of columns per sheet --rows=NUM number of rows per sheet --major=DIRECTION first fill (DIRECTION=) rows, or columns -1, -2, ..., -9 predefined font sizes and layouts for 1..9 virtuals -A, --file-align=MODE align separate files according to MODE (fill, rank page, sheet, or a number) -j, --borders* print borders around columns --margin[=NUM] define an interior margin of size NUM � -a, --pages[=RANGE] select the pages to print -c, --truncate-lines* cut long lines -i, --interpret* interpret tab, bs and ff chars --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any) -X, --encoding=NAME use input encoding NAME -t, --title=NAME set the name of the job --stdin=NAME set the name of the input file stdin --print-anyway* force binary printing -Z, --delegate* delegate files to another application --toc[=TEXT] generate a table of content � -o, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. --version-control=WORD override the usual version control --suffix=SUFFIX override the usual backup suffix -P, --printer=NAME send output to printer NAME -d send output to the default printer (this is the default behavior) � -q, --quiet, --silent be really quiet -v, --verbose[=LEVEL] set verbosity on, or to LEVEL -=, --user-option=OPTION use the user defined shortcut OPTION --debug enable debugging features -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � magic number = %s Printer Description (PPD) = %s default PPD = %s page label format = %s number of copies = %u sides per sheet = %s page device definitions = � medium = %s, %s page layout = %zu x %zu, %s borders = %s file alignment = %s interior margin = %u � number lines = %s format = %s tabulation size = %u non printable format = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s � verbosity level = %u file command = %s library path = �%A %B %d, %Y�%b %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�%u characters per line�%u lines per page�After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. �Applications configured for delegation�By default a2ps is tuned to do what you want to, so trust it. To pretty print the content of the `src' directory and a table of content, and send the result to the printer `lw', $ a2ps -P lw --toc src/* To process the files `sample.ps' and `sample.html' and display the result, $ a2ps -P display sample.ps sample.html To process a mailbox in 4 up, $ a2ps -=mail -4 mailbox To print as a booklet on the default printer, which is duplex capable, $ a2ps -=book paper.dvi.gz -d�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Dynamic array `%s': �Dynamic string: �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �Page %zu�Page %zu/%c�Page %zu/%zu�PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Usage: %s [OPTION]... [FILE]... Convert FILE(s) or standard input to PostScript. By default, the output is sent to the default printer. An output file may be specified with -o. Mandatory arguments to long options are mandatory for short options too. Long options marked with `*' require a yes/no argument, corresponding short options stand for `yes'. �Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): %zu pages on %zu sheets] �[%s (%s): %zu pages on 1 sheet] �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[%zu lines wrapped] �[1 line wrapped] �[No output produced] �[Total: %zu pages on %zu sheets] %s �[Total: %zu pages on 1 sheet] %s �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each %u lines�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�error running file(1)�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�memory exhausted�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�received SIG%s�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�too many slant fonts: `%s'�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14.93 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2023-01-27 17:55+0200 Last-Translator: Yuri Chornoivan <yurchor@ukr.net> Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org> Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Lokalize 20.12.0 � навантаження: %zu з %zu (%2.1f%%) � початковий розмір: %zu, зростання: %s %zu � Немає. � --line-numbers=ЧИСЛО поміщати номер рядка через кожні ЧИСЛО рядків -C синонім для --line-numbers=5 -f, --font-size=РОЗМІР вжити для тексту шрифт зазначеного РОЗМІРУ -L, --lines-per-page=ЧИСЛО масштабувати шрифт так, щоб друкувати ЧИСЛО рядків на віртуальній сторінці -l, --chars-per-line=ЧИСЛО масштабувати шрифт так, щоб друкувати ЧИСЛО стовпців на віртуальній сторінці -m, --catman обробляти файл як man-сторінки (те ж, що -L66) -T, --tabsize=ЧИСЛО встановити крок табуляції в ЧИСЛО --non-printable-format=ФМТ вказати формат виводу недрукованих символів � --prologue=ФАЙЛ включити ФАЙЛ.pro у якості вступної частини PostScript --ppd[=КЛЮЧ] автоматичний вибір визначення принтера чи встановлення його в КЛЮЧ -n, --copies=ЧИСЛО друкувати ЧИСЛО копій кожної сторінки -s, --sides=РЕЖИМ установити дуплексний РЕЖИМ ('1' або 'simplex', '2' чи 'duplex', 'tumble') -S, --setpagedevice=K[:V] передати опис page device на вивід --statusdict=K[:[:]V] передати опис statusdict на вивід -k, --page-prefeed дозволити попередню подачу сторінки -K, --no-page-prefeed заборонити попередню подачу сторінки � --version вивести версію --help вивести цю довідку --guess показати типи ФАЙЛІВ, які розпізнаються --which показати повний шлях до бібліотечних файлів з назвами ФАЙЛИ --glob показати повний шлях до бібліотечних файлів, які відповідають ФАЙЛАМ --list=defaults вивести типові установки і параметри --list=ТЕМА докладний список по ТЕМІ (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) � -B, --no-header вимкнути верхні колонтитули -b, --header[=ТЕКСТ] ввімкнути верхні колонтитули -u, --underlay[=ТЕКСТ] друкувати ТЕКСТ під кожною сторінкою(підвал) --center-title[=ТЕКСТ] встановити шапку сторінки в ТЕКСТ --left-title[=ТЕКСТ] встановити ліву чи праву частину шапки в ТЕКСТ --right-title[=ТЕКСТ] --left-footer[=ТЕКСТ] встановити нижні колонтитули сторінки в ТЕКСТ --footer[=ТЕКСТ] --right-footer[=TEXT] � -E, --pretty-print[=МОВА] ввімкнути структурний друк (встановити стиль МОВА) --highlight-level=РІВЕНЬ встановити рівень виділення РІВЕНЬ РІВЕНЬ може приймати значення none, normal або heavy -g синонім для --highligh-level=heavy --strip-level=ЧИСЛО рівень усікання коментарів � -M, --medium=ІМ'Я використовувати вивідний носій ІМ'Я -r, --landscape друкувати в горизонтальному режимі -R, --portrait друкувати у вертикальному режимі --columns=ЧИСЛО кількість стовпців на листі --rows=ЧИСЛО кількість рядків на листі --major=НАПРЯМ спочатку заповнювати (НАПРЯМ=) рядків, чи стовпців -1, -2, ..., -9 наперед визначені розміри шрифтів і макети для віртуальних сторінок 1..9 -A, --file-align=РЕЖИМ вирівнювати окремі файли відповідно до РЕЖИМУ (fill, rank page, sheet або number) -j, --borders* друкувати рамки навколо стовпців --margin[=ЧИСЛО] встановити розмір внутрішнього поля у ЧИСЛО � -a, --pages[=ДІАПАЗОН] вибрати сторінки для друку -c, --truncate-lines* усікати довгі рядки --, --interpret* інтерпретувати символи tab, bs і ff --end-of-line=ТИП задати символ eol (ТИП: r, n, nr, rn, any) -X, --encoding=ІМ'Я використовувати вхідне кодування ІМ'Я -t, --title=ІМ'Я встановити ім'я завдання --stdin=ІМ'Я задати ім'я для вхідного файлу stdin --print-anyway* примусовий друк у двійковому режимі -Z, --delegate* делегувати файли іншому додатку --toc[=ТЕКСТ] створити зміст � -o, --output=ФАЙЛ направити вивід у ФАЙЛ. Якщо ФАЙЛ дорівнює '-', то направити вивід на stdout. --version-control=СЛОВО перекриває номер поточної версії --suffix=СУФІКС перекриває суфікс резервної копії -P, --printer=НАЗВА направити вивід на принтер НАЗВА -d направити вивід на типовий принтер (це типова поведінка програми) � -q, --quiet, --silent працювати мовчки -v, --verbose[=РІВЕНЬ] ввімкнути докладний режим, або встановити його РІВЕНЬ -=, --user-option=ПАРАМЕТР використовувати визначене користувачем скорочення для ПАРАМЕТРА --debug ввімкнути режим налагодження -D, --define=ЗМІННА[:ЗНАЧЕННЯ] видалити ЗМІННУ або присвоїти їй ЗНАЧЕННЯ � приймач = %s контроль версій = %s суфікс резервної копії = %s � верхній колонтитул = %s лівий нижній = %s нижній колонтитул = %s правий нижній = %s ліва шапка = %s центральна шапка = %s права шапка = %s підвал = %s � ідентифікатор версії = %s опис принтера (ОП) = %s типовий ОП = %s формат мітки сторінки = %s кількість копій = %u число сторін на аркуші = %s визначення пристрою сторінки = � папір = %s, %s макет листа = %zu x %zu, %s рамки = %s вирівнювання файлу = %s внутрішнє поле = %u � номери рядків = %s формат = %s крок табуляції = %u формат спецсимволів = %s � попередня подача сторінки = %s � визначення statusdict = � набір стилів = %s рівень виділення = %s рівень усікання = %d � усікання рядків = %s інтерпретація = %s кінець рядка = %s кодування = %s заголовок документа = %s вступна частина = %s друкувати все одно = %s делегування = %s � рівень подробиць = %u команда file = %s шлях до бібліотек = �%d %B %Y, %A�%d %b %Y�%s, делегований %s�%s: некоректний аргумент для послідовності, що екранує, %s%c� %s: некоректний роздільник '%s%c' для послідовності, що екранує, '%s'�%s: пропущено '%c' для послідовності, що екранує, %s%c�%s: занадто довгий аргумент для послідовності, що екранує %s�%s: невідомий '%s' код послідовності, що екранує '%c' (%d)�%u знаків у рядку�%u рядків на сторінці�Після виконання завдання, успішно завершитися. Докладний список може надати додаткову допомогу по конкретних можливостях. �Додатки, сконфігуровані для делегування�Типово, a2ps налаштовано так, щоб робити те, що ви хочете. Довіртеся програмі. Для структурованого показу вмісту каталогу 'src' і змісту, та надсилання результату на принтер 'lw', введіть $ a2ps -P lw --toc src/* Для обробки файлів 'sample.ps' і 'sample.html' і показу результату $ a2ps -P display sample.ps sample.html Для обробки поштової скриньки і створення 4 сторінок на аркуші, $ a2ps -=mail -4 mailbox Для друку у вигляді книги на типовому принтері, що підтримує режим двобічного друку $ a2ps -=book paper.dvi.gz -d�Параметри конфігурації %s %s �Типовий принтер�Делегування '%s', від %s до %s �Динамічний масив «%s»: �Динамічний рядок: �Глобальні: �Заголовки: �Заголовки: �Вхідні дані: �Внутрішні параметри: �Відомі кодування�Відомі шрифти�Відомі носії�Відомі пристрої виводу (принтери і т.п.)�Відомі описи PostScript-принтера�Відомі вступні частини�Відомі стильові набори�Відомі користувальницькі ключі�Відомі змінні�Ім'я�Вихідні дані: �Сторінка %zu�Сторінка %zu/%c�Сторінка %zu з %zu�PostScript: �Структурний друк: �Друкував %s�Друкував %s з %s�Аркуші: �Зміст�Завдання: �Тексти можуть використовувати спеціальні послідовності, що екранують. �Ключі -1.. -9 впливають на деякі основні параметри для установки визначених макетів з 80 колонками. Таким чином, порядок важливий: '-R -f40 -2' еквівалентно '-2'. Для зміни макету вживайте '-2Rf40', або комбінуйте прості ключі ('--columns', '--font-size', тощо). �Спробуйте `%s --help' для одержання додаткової інформації. �Невідомий принтер�Невідомий користувач�Використання: %s [КЛЮЧІ]... [ФАЙЛ]... Перетворити ФАЙЛ(и) чи дані зі стандартного вхідного потоку у PostScript. Типово, результати буде виведено на типовий принтер. Файл для виведення результатів можна вказати за допомогою параметра -o. Аргументи, що є обов'язковими для довгих ключів, також є обов'язковими для коротких. Довгі ключі, позначені «*», вимагають як аргумент yes або no, відповідний короткий ключ трактується як 'yes'. �Правильними аргументами є дійсні числа f, такі як: %s �Правильними аргументами є цілі числа n, такі як: %s �Віртуальні сторінки: �При включеному делегуванні, a2ps може використовувати інші додатки для обробки файлів, що не повинні друкуватися в неопрацьованому вигляді, наприклад HTML, PostScript, PDF тощо. �[%s (%s): сторінок: %zu, аркушів: %zu] �[%s (%s): %zu сторінки на 1 аркуші] �[%s (%s): 1 сторінка на 1 аркуші] �[%s (%s): завершився з помилкою. Зігноровано] �[%s (двійковий): ігнорований] �[%s (не друкується): ігнорований] �[%zu рядків перенесено] �[1 рядок усічений] �[Вихідний потік порожній] �[Усього: сторінок: %zu, аркушів: %zu] %s �[Усього: %zu сторінки на 1 аркуші] %s �[Усього: 1 сторінка на 1 аркуші] %s �'%s' це двійковий файл, друк перерваний�'%s' це каталог�'%s' не має відповідний '%s'�режим автоматичного вибору стилів скасований�не вдається закрити каталог '%s'�не вдається скомпілювати регулярний вираз '%s': %s�не вдається створити файл '%s'�не вдається знайти файл '%s'�не вдається знайти стильовий набір '%s': використовується простий стиль�не вдається отримати ім'я поточного робочого каталогу�не можу отримати інформацію про файл '%s'�не вдається відкрити канал на '%s'�не вдається відкрити файл '%s'�не вдається обробити '%s', що вимагає a2ps версії %s�не вдається перейменувати файл '%s' у '%s'�керівні символи (тобто '^С', 'M-^С' тощо)�спочатку стовпці�розміри�кожен %u-й рядок�кожен рядок�emacs (тобто 'C-c', 'M-C-c' тощо)�кінець рядка усередині %s�кінець рядка усередині строкової константи�помилка під час спроби виконати file(1)�шрифт %f занадто великий�розмір шрифту дорівнює %gpt�сильний�шістнадцяткове число (тобто '\x0а' тощо)�неповна інформація про накреслення�некоректний аргумент '%s' для '%s'�невірне накреслення '%s'�неприпустимий інтервал '%s'�некоректний ключ '%s'�некоректний ідентифікатор змінної '%s'�некоректний номер версії '%s'�горизонтально�пам'ять вичерпано�пропущений аргумент для '%s'�ніколи не створювати резервні копії�ні�немає команди для '%s' (%s%s)�не визначений ключ для '%s'�відсутній�звичайний�нумеровані резервні копії кожного файлу�Нумеровані копії для вже пронумерованих файлів, і просте резервне копіювання для інших�вісімкове число (тобто '\001' тощо)�команда виводу�простий�вертикально�знак питання (тобто '?')�отримано SIG%s�файл '%s' відновлений�спочатку рядки�збережений у файл '%s'�обраний автоматично�надіслано на типовий принтер�відісланий на принтер '%s'�відісланий на стандартний вивід�просте резервне копіювання кожного файлу�пробіл (тобто ' ')�занадто багато включень�забагато нахилених шрифтів: «%s»�несподіваний символ '%c'�невідоме кодування '%s'�невідомий носій '%s'�невідомий користувальницький ключ '%s'�користувач�так����������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/uk.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000126467�14445132165�010764� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Ukrainian translation for a2ps. # Copyright (C) 2002 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # # Yuri Syrota <rasta@renome.rovno.ua>, 2000. # Yuri Chornoivan <yurchor@ukr.net>, 2016, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: a2ps 4.14.93\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2023-01-27 17:55+0200\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 20.12.0\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "пропущений аргумент для '%s'" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "не вдається створити файл '%s'" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "не вдається відкрити канал на '%s'" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Делегування '%s', від %s до %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Додатки, сконфігуровані для делегування" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "'%s' це каталог" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "не вдається відкрити файл '%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "не можу отримати інформацію про файл '%s'" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 сторінка на 1 аркуші]\n" #: src/generate.c:166 #, c-format msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %zu сторінки на 1 аркуші]\n" #: src/generate.c:173 #, c-format msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): сторінок: %zu, аркушів: %zu]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Усього: 1 сторінка на 1 аркуші] %s\n" #: src/generate.c:204 #, c-format msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Усього: %zu сторінки на 1 аркуші] %s\n" #: src/generate.c:209 #, c-format msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Усього: сторінок: %zu, аркушів: %zu] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 рядок усічений]\n" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "[%zu рядків перенесено]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Вихідний потік порожній]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, делегований %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): завершився з помилкою. Зігноровано]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (не друкується): ігнорований]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (двійковий): ігнорований]\n" #: src/generate.c:350 msgid "plain" msgstr "простий" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "кінець рядка усередині строкової константи" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "кінець рядка усередині %s" #: src/main.c:196 #, c-format msgid "received SIG%s" msgstr "отримано SIG%s" #: src/main.c:235 msgid "heavy" msgstr "сильний" #: src/main.c:239 msgid "normal" msgstr "звичайний" #: src/main.c:243 msgid "none" msgstr "відсутній" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "так" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "ні" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Параметри конфігурації %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Аркуші:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " папір = %s, %s\n" " макет листа = %zu x %zu, %s\n" " рамки = %s\n" " вирівнювання файлу = %s\n" " внутрішнє поле = %u\n" #: src/main.c:339 msgid "portrait" msgstr "вертикально" #: src/main.c:339 msgid "landscape" msgstr "горизонтально" #: src/main.c:348 #, c-format msgid "%u characters per line" msgstr "%u знаків у рядку" #: src/main.c:351 #, c-format msgid "%u lines per page" msgstr "%u рядків на сторінці" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "розмір шрифту дорівнює %gpt" #: src/main.c:363 msgid "each line" msgstr "кожен рядок" #: src/main.c:367 #, c-format msgid "each %u lines" msgstr "кожен %u-й рядок" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Віртуальні сторінки:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " номери рядків = %s\n" " формат = %s\n" " крок табуляції = %u\n" " формат спецсимволів = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Заголовки:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " верхній колонтитул = %s\n" " лівий нижній = %s\n" " нижній колонтитул = %s\n" " правий нижній = %s\n" " ліва шапка = %s\n" " центральна шапка = %s\n" " права шапка = %s\n" " підвал = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Вхідні дані:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " усікання рядків = %s\n" " інтерпретація = %s\n" " кінець рядка = %s\n" " кодування = %s\n" " заголовок документа = %s\n" " вступна частина = %s\n" " друкувати все одно = %s\n" " делегування = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "обраний автоматично" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "Структурний друк:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " набір стилів = %s\n" " рівень виділення = %s\n" " рівень усікання = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "ніколи не створювати резервні копії" #: src/main.c:456 msgid "simple backups of every file" msgstr "просте резервне копіювання кожного файлу" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "Нумеровані копії для вже пронумерованих файлів,\n" " і просте резервне копіювання для інших" #: src/main.c:466 msgid "numbered backups of every file" msgstr "нумеровані резервні копії кожного файлу" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Вихідні дані:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " приймач = %s\n" " контроль версій = %s\n" " суфікс резервної копії = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " ідентифікатор версії = %s\n" " опис принтера (ОП) = %s\n" " типовий ОП = %s\n" " формат мітки сторінки = %s\n" " кількість копій = %u\n" " число сторін на аркуші = %s\n" " визначення пристрою сторінки = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " визначення statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " попередня подача сторінки = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Внутрішні параметри:\n" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " рівень подробиць = %u\n" " команда file = %s\n" " шлях до бібліотек = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Використання: %s [КЛЮЧІ]... [ФАЙЛ]...\n" "\n" "Перетворити ФАЙЛ(и) чи дані зі стандартного вхідного потоку у PostScript.\n" "Типово, результати буде виведено на типовий принтер. Файл для виведення\n" "результатів можна вказати за допомогою параметра -o.\n" "\n" "Аргументи, що є обов'язковими для довгих ключів, також є\n" "обов'язковими для коротких. Довгі ключі, позначені «*», вимагають як\n" "аргумент yes або no, відповідний короткий ключ трактується як 'yes'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Завдання:\n" #: src/main.c:656 msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version вивести версію\n" " --help вивести цю довідку\n" " --guess показати типи ФАЙЛІВ, які розпізнаються\n" " --which показати повний шлях до бібліотечних файлів з назвами " "ФАЙЛИ\n" " --glob показати повний шлях до бібліотечних файлів,\n" " які відповідають ФАЙЛАМ\n" " --list=defaults вивести типові установки і параметри\n" " --list=ТЕМА докладний список по ТЕМІ (delegations, encodings, " "features,\n" " variables, media, ppd, printers, prologues, style-" "sheets,\n" " user-options)\n" #: src/main.c:670 msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Після виконання завдання, успішно завершитися. Докладний список може\n" "надати додаткову допомогу по конкретних можливостях.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Глобальні:\n" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent працювати мовчки\n" " -v, --verbose[=РІВЕНЬ] ввімкнути докладний режим, або\n" " встановити його РІВЕНЬ\n" " -=, --user-option=ПАРАМЕТР використовувати визначене користувачем\n" " скорочення для ПАРАМЕТРА\n" " --debug ввімкнути режим налагодження\n" " -D, --define=ЗМІННА[:ЗНАЧЕННЯ] видалити ЗМІННУ або присвоїти їй ЗНАЧЕННЯ\n" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=ІМ'Я використовувати вивідний носій ІМ'Я\n" " -r, --landscape друкувати в горизонтальному режимі\n" " -R, --portrait друкувати у вертикальному режимі\n" " --columns=ЧИСЛО кількість стовпців на листі\n" " --rows=ЧИСЛО кількість рядків на листі\n" " --major=НАПРЯМ спочатку заповнювати (НАПРЯМ=) рядків, чи " "стовпців\n" " -1, -2, ..., -9 наперед визначені розміри шрифтів і макети для\n" " віртуальних сторінок 1..9\n" " -A, --file-align=РЕЖИМ вирівнювати окремі файли відповідно до\n" " РЕЖИМУ (fill, rank page, sheet або number)\n" " -j, --borders* друкувати рамки навколо стовпців\n" " --margin[=ЧИСЛО] встановити розмір внутрішнього поля у ЧИСЛО\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Ключі -1.. -9 впливають на деякі основні параметри для установки\n" "визначених макетів з 80 колонками. Таким чином, порядок важливий:\n" "'-R -f40 -2' еквівалентно '-2'. Для зміни макету вживайте '-2Rf40',\n" "або комбінуйте прості ключі ('--columns', '--font-size', тощо).\n" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=ЧИСЛО поміщати номер рядка через кожні ЧИСЛО рядків\n" " -C синонім для --line-numbers=5\n" " -f, --font-size=РОЗМІР вжити для тексту шрифт зазначеного РОЗМІРУ\n" " -L, --lines-per-page=ЧИСЛО масштабувати шрифт так, щоб друкувати ЧИСЛО\n" " рядків на віртуальній сторінці\n" " -l, --chars-per-line=ЧИСЛО масштабувати шрифт так, щоб друкувати ЧИСЛО\n" " стовпців на віртуальній сторінці\n" " -m, --catman обробляти файл як man-сторінки\n" " (те ж, що -L66)\n" " -T, --tabsize=ЧИСЛО встановити крок табуляції в ЧИСЛО\n" " --non-printable-format=ФМТ вказати формат виводу недрукованих символів\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Заголовки:\n" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header вимкнути верхні колонтитули\n" " -b, --header[=ТЕКСТ] ввімкнути верхні колонтитули\n" " -u, --underlay[=ТЕКСТ] друкувати ТЕКСТ під кожною сторінкою(підвал)\n" " --center-title[=ТЕКСТ] встановити шапку сторінки в ТЕКСТ\n" " --left-title[=ТЕКСТ] встановити ліву чи праву частину шапки в ТЕКСТ\n" " --right-title[=ТЕКСТ]\n" " --left-footer[=ТЕКСТ] встановити нижні колонтитули сторінки в ТЕКСТ\n" " --footer[=ТЕКСТ]\n" " --right-footer[=TEXT]\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "" "Тексти можуть використовувати спеціальні послідовності, що екранують.\n" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=ДІАПАЗОН] вибрати сторінки для друку\n" " -c, --truncate-lines* усікати довгі рядки\n" " --, --interpret* інтерпретувати символи tab, bs і ff\n" " --end-of-line=ТИП задати символ eol (ТИП: r, n, nr, rn, any)\n" " -X, --encoding=ІМ'Я використовувати вхідне кодування ІМ'Я\n" " -t, --title=ІМ'Я встановити ім'я завдання\n" " --stdin=ІМ'Я задати ім'я для вхідного файлу stdin\n" " --print-anyway* примусовий друк у двійковому режимі\n" " -Z, --delegate* делегувати файли іншому додатку\n" " --toc[=ТЕКСТ] створити зміст\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "При включеному делегуванні, a2ps може використовувати інші додатки для\n" "обробки файлів, що не повинні друкуватися в неопрацьованому вигляді, " "наприклад\n" "HTML, PostScript, PDF тощо.\n" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=МОВА] ввімкнути структурний друк\n" " (встановити стиль МОВА)\n" " --highlight-level=РІВЕНЬ встановити рівень виділення РІВЕНЬ\n" " РІВЕНЬ може приймати значення none,\n" " normal або heavy\n" " -g синонім для --highligh-level=heavy\n" " --strip-level=ЧИСЛО рівень усікання коментарів\n" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=ФАЙЛ направити вивід у ФАЙЛ. Якщо ФАЙЛ дорівнює " "'-',\n" " то направити вивід на stdout.\n" " --version-control=СЛОВО перекриває номер поточної версії\n" " --suffix=СУФІКС перекриває суфікс резервної копії\n" " -P, --printer=НАЗВА направити вивід на принтер НАЗВА\n" " -d направити вивід на типовий принтер\n" " (це типова поведінка програми)\n" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=ФАЙЛ включити ФАЙЛ.pro у якості\n" " вступної частини PostScript\n" " --ppd[=КЛЮЧ] автоматичний вибір визначення принтера\n" " чи встановлення його в КЛЮЧ\n" " -n, --copies=ЧИСЛО друкувати ЧИСЛО копій кожної сторінки\n" " -s, --sides=РЕЖИМ установити дуплексний РЕЖИМ ('1' або " "'simplex',\n" " '2' чи 'duplex', 'tumble')\n" " -S, --setpagedevice=K[:V] передати опис page device на вивід\n" " --statusdict=K[:[:]V] передати опис statusdict на вивід\n" " -k, --page-prefeed дозволити попередню подачу сторінки\n" " -K, --no-page-prefeed заборонити попередню подачу сторінки\n" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Типово, a2ps налаштовано так, щоб робити те, що ви хочете. Довіртеся\n" "програмі. Для структурованого показу вмісту каталогу 'src' і змісту, та\n" "надсилання результату на принтер 'lw', введіть\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Для обробки файлів 'sample.ps' і 'sample.html' і показу результату\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "Для обробки поштової скриньки і створення 4 сторінок на аркуші,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Для друку у вигляді книги на типовому принтері, що підтримує\n" "режим двобічного друку\n" "\n" " $ a2ps -=book paper.dvi.gz -d" #: src/main.c:1146 msgid "Table of Content" msgstr "Зміст" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "не вдається обробити '%s', що вимагає a2ps версії %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "несподіваний символ '%c'" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "занадто багато включень" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "не визначений ключ для '%s'" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "не вдається знайти файл '%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "режим автоматичного вибору стилів скасований" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "помилка під час спроби виконати file(1)" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "не вдається скомпілювати регулярний вираз '%s': %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Відомі стильові набори" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" "не вдається знайти стильовий набір '%s': використовується простий стиль" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "некоректний номер версії '%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "пробіл (тобто ' ')" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "вісімкове число (тобто '\\001' тощо)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "шістнадцяткове число (тобто '\\x0а' тощо)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "керівні символи (тобто '^С', 'M-^С' тощо)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (тобто 'C-c', 'M-C-c' тощо)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "знак питання (тобто '?')" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "Динамічний масив «%s»:\n" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "\tнавантаження: %zu з %zu (%2.1f%%)\n" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "\tпочатковий розмір: %zu, зростання: %s %zu\n" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "Динамічний рядок:\n" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "забагато нахилених шрифтів: «%s»" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "некоректний ключ '%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Відомі кодування" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "неповна інформація про накреслення" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "не вдається закрити каталог '%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "некоректний аргумент '%s' для '%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Правильними аргументами є цілі числа n, такі як: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Правильними аргументами є дійсні числа f, такі як: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "невідоме кодування '%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "спочатку рядки" #: liba2ps/madir.c:54 msgid "columns first" msgstr "спочатку стовпці" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "невідомий носій '%s'" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Відомі носії" #: liba2ps/media.c:189 msgid "Name" msgstr "Ім'я" #: liba2ps/media.c:190 msgid "dimensions" msgstr "розміри" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Відомі змінні" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: пропущено '%c' для послідовності, що екранує, %s%c" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "Друкував %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "Друкував %s з %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "не вдається отримати ім'я поточного робочого каталогу" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: занадто довгий аргумент для послідовності, що екранує %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 msgid "%b %d, %Y" msgstr "%d %b %Y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%d %B %Y, %A" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: невідомий '%s' код послідовності, що екранує '%c' (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, c-format msgid "Page %zu" msgstr "Сторінка %zu" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, c-format msgid "Page %zu/%c" msgstr "Сторінка %zu/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr " %s: некоректний роздільник '%s%c' для послідовності, що екранує, '%s'" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: некоректний аргумент для послідовності, що екранує, %s%c" #: liba2ps/metaseq.c:802 #, c-format msgid "Page %zu/%zu" msgstr "Сторінка %zu з %zu" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "команда виводу" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Спробуйте `%s --help' для одержання додаткової інформації.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "некоректний ідентифікатор змінної '%s'" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "невірне накреслення '%s'" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "'%s' не має відповідний '%s'" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Відомі шрифти" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Немає.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Відомі описи PostScript-принтера" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "неприпустимий інтервал '%s'" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Типовий принтер" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Невідомий принтер" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "немає команди для '%s' (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "відісланий на стандартний вивід" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "надіслано на типовий принтер" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "збережений у файл '%s'" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "відісланий на принтер '%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Відомі пристрої виводу (принтери і т.п.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Відомі вступні частини" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "шрифт %f занадто великий" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "'%s' це двійковий файл, друк перерваний" #: liba2ps/userdata.c:104 msgid "user" msgstr "користувач" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Невідомий користувач" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "невідомий користувальницький ключ '%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Відомі користувальницькі ключі" #: liba2ps/xbackupfile.c:44 #, c-format msgid "memory exhausted" msgstr "пам'ять вичерпано" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "не вдається перейменувати файл '%s' у '%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "файл '%s' відновлений" #~ msgid "Copyright (C) 1988-2017 Free Software Foundation, Inc." #~ msgstr "© Free Software Foundation, Inc., 1988-2017" #~ msgid "any type" #~ msgstr "довільного типу" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Новини, оновлення і документацію можна знайти тут:\n" #~ "http://www.gnu.org/software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "" #~ "Про помилки в програмі повідомляйте за адресою <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Авторські права (c) 1988-1993 Miguel Santana\n" #~ "Авторські права (c) 1995-2000 Akim Demaille, Miguel Santana Авторські " #~ "права (c) 2007- Akim Demaille, Miguel Santana та Masayuki Hatta" #~ msgid "unknown encoding `%s', ignored" #~ msgstr "невідоме кодування '%s', ігноровано" #~ msgid "Written by %s.\n" #~ msgstr "Написав %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Це вільне програмне забезпечення; умови копіювання наведені в \n" #~ "джерелах програми. Немає НІЯКИХ гарантій; навіть гарантії КОМЕРЦІЙНОЇ\n" #~ "ЦІННОСТІ або ПРИДАТНОСТІ ДЛЯ КОНКРЕТНОЇ ЦІЛІ.\n" #~ msgid "write error" #~ msgstr "помилка запису" #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "невірне визначення принтера '%s': %s" #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "застарілий запис '%s'. Ігноровано" #~ msgid "Page %d/%d" #~ msgstr "Сторінка %d/%d" #~ msgid "`" #~ msgstr "'" #~ msgid "'" #~ msgstr "'" #~ msgid "invalid argument %s for `%s'" #~ msgstr "некоректний аргумент %s для '%s'" #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "неоднозначний аргумент %s для '%s'" #~ msgid "Valid arguments are:" #~ msgstr "Правильні аргументи:" #~ msgid "Unknown system error" #~ msgstr "Невідома системна помилка" #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: неоднозначний ключ '%s'\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: ключ '--%s' повинен використовуватися без аргументу\n" #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: ключ '%c%s' повинен використовуватися без аргументу\n" #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: ключ '%s' повинен використовуватися з аргументом\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: невідомий ключ '--%s'\n" #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: невідомий ключ '%c%s'\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: неприпустимий ключ -- %c\n" #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: некоректний ключ -- %c\n" #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: ключ повинен використовуватися із аргументом -- %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: неоднозначний ключ '-W %s'\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: ключ '-W %s' повинен використовуватися без аргументу\n" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/vi.gmo�������������������������������������������������������������������������������0000644�0000000�0000000�00000027142�14445132166�011116� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������z�����������������H �� ���I ��E���S ����� ��!���: �����\ ��E���{ ����� �� ���r ����� ��$��� ��,��� �� ��� ��#��� ��!���* ��&���L �����s ����� ����� ����� �� ��� �� ��� ����� �� ��� ����� �� ����� ����������%���;�����a�����q���������������������� ���������� �������������������������#����� ��>��&���L�����s�� �����+�����-�������������������������������������������,�����B��'���a������������#����������*��������#�����;��/���Q��$�����$���������������2��������/�����O�� ���o�� ���}�� �����!���������������������������� ����������3�����Q�����p������������ ���������� ������������� ����� �����#�����B�����Z�����_�����f��\������������������ ���������������4�� ���G�����R�����k����������������������������������������.�����D�����X�����q�����v����z�����D��S���T�������$���z��"�����M��������������� �����8�����L���Q��+�����-�����5�����4���.��&���c�������&����� ����� ����� �����������������������+�����D��.���]��'���������������&�������� �����, �����1 �� ���: �� ���G �����Q �����Z �� ���k �� ���y �� ��� ��=��� ���� ��>���R"�����"�����"��9���"��8���"�� ���.#�����;#�� ���$��(���#$��'���L$��.���t$�����$�����$��"���$��M���$�����?%��#���]%��7���%��'���%��?���%��%���!&��$���G&��T���l&��:���&��5���&��,���2'��$���_'��L���'��@���'��%���(�����8(�� ���G(�� ���T(��#���`(�����(��+���(�����(�����(�����)����� )��(���+)��<���T)�� ���)��#���)��&���)��4���)��3���2*�� ���f*��)���s*��#���*�����*��%���*��%���*�� ���+�����+��0���'+�����X+�����+�� ���,�����,�����,�����),��$���D,�����i,��*���x,�����,��-���,��(���,��3���-��1���B-�����t-�� ���-��!���-��#���-��#���-��1���.�����O.�����^.�����A�������r���U������8���J�������F���.���������������:������'���p���h���l���5�������S���O����������f���<���\���Z����������������!���s���)���v�����������a����������Q���t���X���N����������y����������*���,���g����������?��� �����������[���@���u�������9����������w���E���P���K��������������� ���1�������_���$���R������������������ �������������`�������=���&���e�����������Y�������x���B��� ���#������i���0���+�������I���V������6���n���7������T��������������2���(���%���3����������D���;���/����������H���>���o���"�������M��������������c���d���^���q��� ���W���k���������-���j���]���b��� ���G������m�����������z���L���4�������C������� None. � destination = %s version control = %s backup suffix = %s � header = %s left footer = %s footer = %s right footer = %s left title = %s center title = %s right title = %s under lay = %s � page prefeed = %s � statusdict definitions = � style sheet = %s highlight level = %s strip level = %d � truncate lines = %s interpret = %s end of line = %s encoding = %s document title = %s prologue = %s print anyway = %s delegating = %s �%A %B %d, %Y�%s, delegated to %s�%s: invalid argument for %s%c escape�%s: invalid separator `%s%c' for `%s' escape�%s: missing `%c' for %s%c escape�%s: too long argument for %s escape�%s: unknown `%s' escape `%c' (%d)�Applications configured for delegation�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Global: �Headers: �Headings: �Input: �Internals: �Known Encodings�Known Fonts�Known Media�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Prologues�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Pretty-printing: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �The TEXTs may use special escapes. �The options -1.. -9 affect several primitive parameters to set up predefined layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive options (`--columns', `--font-size' etc.). �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �When delegations are enabled, a2ps may use other applications to handle the processing of files that should not be printed as raw information, e.g., HTML PostScript, PDF etc. �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[1 line wrapped] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�`%s' with no matching `%s'�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot process `%s' which requires a2ps version %s�cannot rename file `%s' as `%s'�caret (i.e., `^C', `M-^C' etc.)�columns first�dimensions�each line�emacs (i.e., `C-c', `M-C-c' etc.)�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�incomplete knowledge of faces�invalid argument `%s' for `%s'�invalid face `%s'�invalid interval `%s'�invalid option `%s'�invalid variable identifier `%s'�invalid version number `%s'�landscape�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�no key defined for `%s'�none�normal�numbered backups of every file�numbered backups of files already numbered, and simple of others�octal (i.e., `\001' etc.)�output command�plain�portrait�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown medium `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2008-04-10 17:48+0930 Last-Translator: Clytie Siddall <clytie@riverland.net.au> Language-Team: Vietnamese <vi-VN@googlegroups.com> Language: vi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=1; plural=0; X-Generator: LocFactoryEditor 1.7b3 � Không có. � đích = %s điều khiển phiên bản = %s hậu tố sao lưu = %s � đầu trang = %s chân trang bên trái = %s chân trang = %s chân trang bên phải = %s tựa bên trái = %s tựa ở giữa = %s tựa bên phải = %s giấy lót = %s � nạp sẵn giấy = %s � lời xác định statusdict = � tờ kiểu dáng = %s cấp tô sáng = %s cấp tước = %d � cắt bớt dòng = %s giải thích = %s kết thúc dòng = %s mã ký tự = %s tựa tài liệu = %s đoạn mở đầu = %s vẫn còn in = %s ủy quyền = %s �%A, ngày %e, %B, năm %Y�%s, được ủy quyền cho %s�%s: đối số không hợp lệ cho đồ thoát %s%c �%s: dấu ngân cách không hợp lệ « %s%c » cho đồ thoát « %s »�%s: thiếu « %c » cho đồ thoát %s%c �%s: đối số quá dài cho đồ thoát %s�%s: không biết đồ thoát « %s » « %c » (%d)�Ứng dụng được cấu hình để ủy quyền�Tình trạng cấu hình của %s %s �Máy in mặc định�Ủy quyền « %s », từ %s cho %s �Toàn cục: �Dầu trang: �Tựa đề: �Nhập: �Chi tiết nội bộ: �Mã ký tự đã biết�Phông chữ đã biết�Vật chứa đã biết�Thiết bị xuất đã biết (máy in v.v.)�Mô tả máy in PostScript đã biết�Đoạn mở đầu đã biết�Tờ kiểu dáng đã biết�Tùy chọn người dùng đã biết�Biến đã biết�Tên�Xuất: �PostScript: �In xinh: �In do %s�In do %s từ %s�Tờ giấy: �Mục Lục�Tác vụ : �ĐOẠN này có thể chứa ký tự thoát đặc biệt. �Những tùy chọn -1.. -9 làm ảnh hưởng đến vài tham số nguyên thuỷ để thiết lập bố trí xác định sẵn có 80 cột. Vì thế thứ tự là quan trọng: « -R -f40 -2 » bằng « -2 ». Để sửa đổi bố trí, hãy dùng « -2Rf40 », hay tạo tùy chọn nguyên thuỷ (« --columns » [cột], « --font-size » [cỡ phông chữ] v.v.). �Hãy thử lệnh « %s --help » để xem thông tin thêm. �Không biết máy in�Người dùng lạ�Đối số hợp lệ là điều nổi f để mà: %s �Đối số hợp lệ là số nguyên n để mà: %s �Trang ảo: �Khi tùy chọn « ủy quyền » là hoặt động, trình a2ps có thể dùng ứng dụng khác để xử lý tâp tin không in được dạng dữ liệu thô, v.d. HTML, PostScript, PDF. �[%s (%s): 1 trang trên 1 tờ] �[%s (%s): bị lỗi nên bị bo qua.] �[%s (nhị phân): nên bị bỏ qua] �[%s (không thể in ra): nên bị bỏ qua] �[1 dòng đã ngắt] �[Chưa xuất gì] �[Tổng: 1 trang trên 1 tờ] %s �« %s » là một tập tin nhị phân nên công việc in bị hủy bỏ�« %s » là một thư mục�« %s » không có « %s » khớp�khả năng chọn tự động kiểu dáng bị thôi�không thể đóng thư mục « %s »�không thể biên dịch biểu thức chính quy « %s »: %s�không thể tạo tập tin « %s »�không tìm thấy tâp tin « %s »�không tìm thấy tờ kiểu dáng « %s »: nên sử dụng kiểu dáng chuẩn�không thể lấy thư mục hoạt động hiện thời�không thể lấy thông tin về tập tin « %s »�không thể mở ống dẫn trên « %s »�không thể mở tập tin « %s »�không thể xử lý « %s » mà cần thiết trình a2ps phiên bản %s�không thể thay đổi tên tập tin « %s » thành « %s »�dấu mũ (v.d. « ^C », « M-^C »)�cột trước�các chiều�mỗi dòng�emacs (v.d. « C-c », « M-C-c »)�kết thúc dòng ở trong %s�kết thúc dòng trong hằng số chuỗi�phông chữ %f quá lớn�cỡ phông chữ là %gpt�nặng�thập lục (v.d. « \x0a »)�chưa biết đủ thông tin về mặt�đối số không hợp lệ « %s » đối với « %s »�mặt không hợp lệ « %s »�khoảng không hợp lệ « %s »�tùy chọn không hợp lệ « %s »�bộ nhận diện biến không hợp lệ « %s »�số hiệu phiên bản không hợp lệ « %s »�nằm ngang�thiếu đối số đối với « %s »�không bao giờ sao lưu tập tin�không�không có lệnh cho « %s » (%s%s)�chưa xác định phím cho « %s »�không có�chuẩn�bản sao lưu đánh số của mọi tập tin�bản sao lưu đánh số của tâp tin đã đánh số, và bản sao đơn giản của các tập tin khác�bát phân (v.d. « \001 »)�lệnh xuất�chuẩn�thẳng đứng�dấu hỏi (v.d. « ? »)�đã phục hồi tập tin « %s »�hàng trước�đã được lưu vào tập tin « %s »�chọn tự động�đã được gởi cho máy in mặc định�đã được gởi cho máy in « %s »�đã được gởi cho thiết bị xuất chuẩn�bản sao lưu đơn giản của mọi tập tin�dấu cách (tức là « »)�quá nhiều bao gồm (include)�ký tự bất thường « %c »�không biết mã ký tự « %s »�không biệt vật chứa « %s »�không biết tùy chọn người dùng « %s »�người dùng�có�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/vi.po��������������������������������������������������������������������������������0000644�0000000�0000000�00000132602�14445132165�010747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Vietnamese translation for a2ps. # Copyright © 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps-4.14 package. # Clytie Siddall <clytie@riverland.net.au>, 2005-2008. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2008-04-10 17:48+0930\n" "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.7b3\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "thiếu đối số đối với « %s »" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "không thể tạo tập tin « %s »" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "không thể mở ống dẫn trên « %s »" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Ủy quyền « %s », từ %s cho %s\n" #: src/delegate.c:380 src/delegate.c:400 msgid "Applications configured for delegation" msgstr "Ứng dụng được cấu hình để ủy quyền" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "« %s » là một thư mục" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "không thể mở tập tin « %s »" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "không thể lấy thông tin về tập tin « %s »" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 trang trên 1 tờ]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d trang trên 1 tờ]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d trang trên %d tờ]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Tổng: 1 trang trên 1 tờ] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[Tổng: %d trang trên 1 tờ] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[Tổng: %d trang trên %d tờ] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "[1 dòng đã ngắt]\n" #: src/generate.c:221 #, fuzzy, c-format #| msgid "[%d lines wrapped]\n" msgid "[%zu lines wrapped]\n" msgstr "[%d dòng đã ngắt]\n" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[Chưa xuất gì]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s, được ủy quyền cho %s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): bị lỗi nên bị bo qua.]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (không thể in ra): nên bị bỏ qua]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (nhị phân): nên bị bỏ qua]\n" #: src/generate.c:350 msgid "plain" msgstr "chuẩn" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "kết thúc dòng trong hằng số chuỗi" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "kết thúc dòng ở trong %s" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "nhận tín hiệu %d: %s" #: src/main.c:235 msgid "heavy" msgstr "nặng" #: src/main.c:239 msgid "normal" msgstr "chuẩn" #: src/main.c:243 msgid "none" msgstr "không có" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "có" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "không" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "Tình trạng cấu hình của %s %s\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "Tờ giấy:\n" #: src/main.c:332 #, fuzzy, c-format #| msgid "" #| " medium = %s%s, %s\n" #| " page layout = %d x %d, %s\n" #| " borders = %s\n" #| " file alignment = %s\n" #| " interior margin = %d\n" msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" " vật chứa = %s%s, %s\n" " bố trí trang = %d x %d, %s\n" " viền = %s\n" " canh lề tập tin = %s\n" " lề ở trong = %d\n" #: src/main.c:339 msgid "portrait" msgstr "thẳng đứng" #: src/main.c:339 msgid "landscape" msgstr "nằm ngang" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "%d ký tự trên mỗi dòng" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "%d dòng trên mỗi trang" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "cỡ phông chữ là %gpt" #: src/main.c:363 msgid "each line" msgstr "mỗi dòng" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "mỗi %d dòng" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "Trang ảo:\n" #: src/main.c:371 #, fuzzy, c-format #| msgid "" #| " number lines = %s\n" #| " format = %s\n" #| " tabulation size = %d\n" #| " non printable format = %s\n" msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" " dòng số = %s\n" " dạng = %s\n" " cỡ tab = %d\n" " dạng khi không in = %s\n" #: src/main.c:382 msgid "Headers:\n" msgstr "Dầu trang:\n" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" " đầu trang = %s\n" " chân trang bên trái = %s\n" " chân trang = %s\n" " chân trang bên phải = %s\n" " tựa bên trái = %s\n" " tựa ở giữa = %s\n" " tựa bên phải = %s\n" " giấy lót = %s\n" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "Nhập:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" " cắt bớt dòng = %s\n" " giải thích = %s\n" " kết thúc dòng = %s\n" " mã ký tự = %s\n" " tựa tài liệu = %s\n" " đoạn mở đầu = %s\n" " vẫn còn in = %s\n" " ủy quyền = %s\n" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "chọn tự động" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "In xinh:\n" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " tờ kiểu dáng = %s\n" " cấp tô sáng = %s\n" " cấp tước = %d\n" #: src/main.c:452 msgid "never make backups" msgstr "không bao giờ sao lưu tập tin" #: src/main.c:456 msgid "simple backups of every file" msgstr "bản sao lưu đơn giản của mọi tập tin" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "bản sao lưu đánh số của tâp tin đã đánh số,\n" " và bản sao đơn giản của các tập tin khác" #: src/main.c:466 msgid "numbered backups of every file" msgstr "bản sao lưu đánh số của mọi tập tin" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "Xuất:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " đích = %s\n" " điều khiển phiên bản = %s\n" " hậu tố sao lưu = %s\n" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, fuzzy, c-format #| msgid "" #| " magic number = %s\n" #| " Printer Description (PPD) = %s\n" #| " default PPD = %s\n" #| " page label format = %s\n" #| " number of copies = %d\n" #| " sides per sheet = %s\n" #| " page device definitions = " msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" " số mã thuật = %s\n" " Mô tả máy in (PPD) = %s\n" " PPD mặc định = %s\n" " dạng nhãn trang = %s\n" " số bản sao = %d\n" " mặt trên mỗi tờ giấy = %s\n" " lời xác định thiết bị trang = " #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr " lời xác định statusdict = " #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr " nạp sẵn giấy = %s\n" #: src/main.c:516 msgid "Internals:\n" msgstr "Chi tiết nội bộ:\n" #: src/main.c:517 #, fuzzy, c-format #| msgid "" #| " verbosity level = %d\n" #| " file command = %s\n" #| " library path = \n" msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" " cấp xuất chi tiết = %d\n" " lệnh tập tin = %s\n" " đường dẫn thư viện = \n" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format #| msgid "" #| "Usage: %s [OPTION]... [FILE]...\n" #| "\n" #| "Convert FILE(s) or standard input to PostScript. By default, the output\n" #| "is sent to the default printer. An output file may be specified with -" #| "o.\n" #| "\n" #| "Mandatory arguments to long options are mandatory for short options too.\n" #| "Long options marked with * require a yes/no argument, corresponding\n" #| "short options stand for `yes'.\n" msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "Sử dụng: %s [TÙY_CHỌN]... [TẬP_TIN]...\n" "\n" "Chuyển đổi sang PostScript TẬP_TIN hay đầu vào tiêu chuẩn.\n" "Mặc định là kết xuất được gửi cho máy in mặc định.\n" "Cũng có thể ghi rõ tập tin xuất bằng tùy chọn « -o ».\n" "\n" "Mọi đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy chọn " "ngắn.\n" "Mọi tùy chọn dài có dấu * thì cần thiết đối số Có/Không (yes/no);\n" "tùy chọn ngắn tương ứng đại diện Có (yes).\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "Tác vụ :\n" #: src/main.c:656 #, fuzzy #| msgid "" #| " --version display version\n" #| " --help display this help\n" #| " --guess report guessed types of FILES\n" #| " --which report the full path of library files named FILES\n" #| " --glob report the full path of library files matching FILES\n" #| " --list=defaults display default settings and parameters\n" #| " --list=TOPIC detailed list on TOPIC (delegations, encodings, " #| "features,\n" #| " variables, media, ppd, printers, prologues, style-" #| "sheets,\n" #| " user-options)\n" msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version hiện số hiệu _phiên bản_\n" " --help hiện _trợ giúp_ này\n" " --guess thông báo kiểu đã _đoán_ của TẬP_TIN\n" " --which thông báo đường dẫn đầy đủ của mọi tập tin thư viện có tên " "TẬP_TIN (_nào_)\n" " --glob thông báo đường dẫn đầy đủ của mọi tập tin thư viện khớp " "với TẬP_TIN\n" " --list=defaults _ghi danh sách_ các thiết bị và tham số _mặc định_\n" " --list=ĐỀ_TÀI _danh sách_ chi tiết về ĐỀ_TÀI này (cách ủy quyền,\n" " mã ký tự, tính năng, biến, vật chứa, mô tả máy in (PPD), máy in,\n" " đoạn mở đầu, tờ kiểu dang, tùy chọn về người dùng)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "" "Sau khi thực hiện tác vụ đó, hãy thoát thành công. Danh sách chi tiết có lẽ\n" "bao gồm trợ giúp thêm về tính năng dứt khoát.\n" #: src/main.c:678 msgid "Global:\n" msgstr "Toàn cục:\n" #: src/main.c:679 #, fuzzy #| msgid "" #| " -q, --quiet, --silent be really quiet\n" #| " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" #| " -=, --user-option=OPTION use the user defined shortcut OPTION\n" #| " --debug enable debugging features\n" #| " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" " -q, --quiet, --silent hãy rất _im_ (không xuất chi tiết)\n" " -v, --verbose[=CẤP] xuất _chi tiết_, hay xuất chi tiết tại CẤP này\n" " -=, --user-option=TÙY_CHỌN dùng lối tắt tự xác định TÙY_CHỌN\n" " --debug bật các tính năng _gỡ lỗi_\n" " -D, --define=PHÍM[:GIÁ_TRỊ] bỏ lập PHÍM biến hay lập thành GIÁ TRỊ này\n" #: src/main.c:688 #, fuzzy #| msgid "" #| " -M, --medium=NAME use output medium NAME\n" #| " -r, --landscape print in landscape mode\n" #| " -R, --portrait print in portrait mode\n" #| " --columns=NUM number of columns per sheet\n" #| " --rows=NUM number of rows per sheet\n" #| " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" #| " -1, -2, ..., -9 predefined font sizes and layouts for 1.. 9 " #| "virtuals\n" #| " -A, --file-align=MODE align separate files according to MODE (fill, " #| "rank\n" #| " page, sheet, or a number)\n" #| " -j, --borders* print borders around columns\n" #| " --margin[=NUM] define an interior margin of size NUM\n" msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" " -M, --medium=TÊN dùng _vật chứa_ xuất có TÊN này\n" " -r, --landscape in bằng chế độ _nằm ngang_\n" " -R, --portrait in bằng chế độ _chân dung_\n" " --columns=SỐ số _cột_ trên một tờ giấy\n" " --rows=SỐ số _hàng_ trên một tờ giấy\n" " --major=HƯỚNG trước tiên tô đầy hàng hay cột HƯỚNG nàyn -1, -2, ..., " "-9 cỡ phông chữ và bố trí xác định sẵn cho điều ảo 1..9 \n" " -A, --file-align=CHẾ_ĐỘ _canh lề_ những _tập tin_ riêng theo CHẾ ĐỘ này\n" "\t\t(fill [tô đầy], rank page [sắp xếp trang], sheet [tờ giấy] hay con số) -" "j, --borders* in _viền_ chung quanh cột\n" " --margin[=SỐ] xác định _lề trang_ nội bộ có kích cỡ SỐ này\n" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" "Những tùy chọn -1.. -9 làm ảnh hưởng đến vài tham số nguyên thuỷ\n" "để thiết lập bố trí xác định sẵn có 80 cột. Vì thế thứ tự là quan trọng:\n" "« -R -f40 -2 » bằng « -2 ». Để sửa đổi bố trí, hãy dùng « -2Rf40 »,\n" "hay tạo tùy chọn nguyên thuỷ (« --columns » [cột], « --font-size »\n" "[cỡ phông chữ] v.v.).\n" #: src/main.c:710 #, fuzzy #| msgid "" #| " --line-numbers=NUM precede each NUM lines with its line number\n" #| " -C alias for --line-numbers=5\n" #| " -f, --font-size=SIZE use font SIZE (float) for the body text\n" #| " -L, --lines-per-page=NUM scale the font to print NUM lines per " #| "virtual\n" #| " -l, --chars-per-line=NUM scale the font to print NUM columns per " #| "virtual\n" #| " -m, --catman process FILE as a man page (same as -L66)\n" #| " -T, --tabsize=NUM set tabulator size to NUM\n" #| " --non-printable-format=FMT specify how non-printable chars are printed\n" msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" " --line-numbers=SỐ chèn _số dòng_ nằm trước mỗi dòng thứ SỐ\n" " -C\t\t\t\t\t biệt hiệu cho tùy chọn « --line-numbers=5 »\n" " -f, --font-size=CỠ dùng _CỠ phông chữ_ (nổi) khi in đoạn thân\n" " -L, --lines-per-page=SỐ\n" " co giãn phông chữ để in SỐ dòng trong mỗi điều ảo\n" " (_dòng trên mỗi trang_)\n" " -l, --chars-per-line=SỐ\n" " cơ giãn phông chữ để in SỐ cột trong mỗi điều ảo (_ký tự trên mỗi dòng_)\n" " -m, --catman xử lý TẬP_TIN dạng trang hướng dẫn « man »\n" " (bằng tùy chọn « -L66 »)\n" " -T, --tabsize=SỐ lập _cỡ tab_ thành SỐ\n" " --non-printable-format=DẠNG\n" " ghi rõ cách in mọi ký tự _không thể in_\n" #: src/main.c:721 msgid "Headings:\n" msgstr "Tựa đề:\n" #: src/main.c:723 #, fuzzy, no-c-format #| msgid "" #| " -B, --no-header no page headers at all\n" #| " -b, --header[=TEXT] set page header\n" #| " -u, --underlay[=TEXT] print TEXT under every page\n" #| " --center-title[=TEXT] set page title to TITLE\n" #| " --left-title[=TEXT] set left and right page title to TEXT\n" #| " --right-title[=TEXT]\n" #| " --left-footer[=TEXT] set sheet footers to TEXT\n" #| " --footer[=TEXT]\n" #| " --right-footer[=TEXT]\n" msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" " -B, --no-header _không có đầu trang_ nào cả\n" " -b, --header[=ĐOẠN] lập _đầu trang_\n" " -u, --underlay[=ĐOẠN] in ĐOẠN dưới mọi trang (_giấy lót_)\n" " --center-title[=ĐOẠN] lập _tựa_ trang thành ĐOẠN (_giữa_)\n" " --left-title[=ĐOẠN] lập _tựa bên trái_ trang thành ĐOẠN\n" " --right-title[=ĐOẠN] lập _tựa bên phải_ trang thành ĐOẠN\n" " --left-footer[=ĐOẠN] lập _chân bên trái_ trang thành ĐOẠN\n" " --footer[=ĐOẠN] lập _chân trang_ thành ĐOẠN\n" " --right-footer[=ĐOẠN] lập _chân bên phải_ trang thành ĐOẠN\n" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "ĐOẠN này có thể chứa ký tự thoát đặc biệt.\n" #: src/main.c:739 #, fuzzy #| msgid "" #| " -a, --pages[=RANGE] select the pages to print\n" #| " -c, --truncate-lines* cut long lines\n" #| " -i, --interpret* interpret tab, bs and ff chars\n" #| " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " #| "any)\n" #| " -X, --encoding=NAME use input encoding NAME\n" #| " -t, --title=NAME set the name of the job\n" #| " --stdin=NAME set the name of the input file stdin\n" #| " --print-anyway* force binary printing\n" #| " -Z, --delegate* delegate files to another application\n" #| " --toc[=TEXT] generate a table of content\n" msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" " -a, --pages[=PHẠM_VỊ] chọn _trang_ nào cần in\n" " -c, --truncate-lines* _cắt bớt_ mọi _dòng_ dài\n" " -i, --interpret* _giải thích_ mọi ký tự tab, xoá lùi và nạp " "giấy\n" " --end-of-line=KIỂU ghi rõ ký tự _kết thúc dòng_\n" "\t\t\t(KIỂU : r, n, nr, rn, any [bất cứ ký tự nào trong các ký tự này])\n" " -X, --encoding=TÊN dùng _mã_ ký tự nhập TÊN này\n" " -t, --title=TÊN lập _tựa_ của công việc này\n" " --stdin=TÊN lập TÊN của tập tin _nhập chuẩn_\n" " --print-anyway* buộc in cách nhị phân (_vẫn còn in_)\n" " -Z, --delegate* _ủy quyền_ tập tin cho ứng dụng khác\n" " --toc[=ĐOẠN] tạo ra _mục lục_\n" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" "Khi tùy chọn « ủy quyền » là hoặt động, trình a2ps có thể dùng ứng dụng " "khác\n" "để xử lý tâp tin không in được dạng dữ liệu thô, v.d. HTML, PostScript, " "PDF.\n" #: src/main.c:758 #, fuzzy #| msgid "" #| " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" #| " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" #| " LEVEL can be none, normal or heavy\n" #| " -g alias for --highlight-level=heavy\n" #| " --strip-level=NUM level of comments stripping\n" msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" " -E, --pretty-print[=NGÔN_NGỮ]\n" " bật _in xinh_ (lập kiểu dáng thành NGÔN NGỮ)\n" " --highlight-level=CẤP đặt _cấp tô sáng_ khi in xinh\n" " CẤP có thể là none [không có], normal [thường] hay heavy [nặng]\n" " -g\n" " biệt hiệu cho tùy chọn « --highlight-level=heavy » (cấp tô sáng là " "nặng)\n" " --strip-level=SỐ _cấp tước_ chú thích\n" #: src/main.c:767 #, fuzzy #| msgid "" #| " -o, --output=FILE leave output to file FILE. If FILE is `-',\n" #| " leave output to stdout.\n" #| " --version-control=WORD override the usual version control\n" #| " --suffix=SUFFIX override the usual backup suffix\n" #| " -P, --printer=NAME send output to printer NAME\n" #| " -d send output to the default printer\n" #| " (this is the default behavior)\n" msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" " -o, --output=TẬP_TIN\n" " _xuất_ vào tập tin này; nếu tập tin này là « - », xuất vào stdout.\n" " --version-control=TỪ có quyền cao hơn _điều khiển phiên bản_ thường\n" " --suffix=HẬU_TỐ có quyền cao hơn _hậu tố_ sao lưu thường\n" " -P, --printer=TÊN xuất vào _máy in_ có tên này\n" " -d xuất vào may in mặc định\n" " (đăy là ứng xử mặc định)\n" #: src/main.c:778 #, fuzzy #| msgid "" #| " --prologue=FILE include FILE.pro as PostScript prologue\n" #| " --ppd[=KEY] automatic PPD selection or set to KEY\n" #| " -n, --copies=NUM print NUM copies of each page\n" #| " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" #| " `2' or `duplex', `tumble')\n" #| " -S, --setpagedevice=K[:V] pass a page device definition to output\n" #| " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" #| " -k, --page-prefeed enable page prefeed\n" #| " -K, --no-page-prefeed disable page prefeed\n" msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" " --prologue=TẬP_TIN\n" " bao gồm TẬP_TIN.pro là _đoạn mở đầu_ PostScript\n" " --ppd[=PHÍM]\n" " tự động chọn mô tả may in (PPD) hay đặt thành PHÍM này\n" " -n, --copies=SỐ in SỐ _bản sao_ của mỗi trang\n" " -s, --sides=CHẾ_ĐỘ đặt chế độ _mặt trang_\n" " (`1' hay `simplex'; `2' hay `duplex', `tumble')\n" " -S, --setpagedevice=K[:V]\n" " gởi lời xác định _thiết bị trang_ cho kết xuất (_đặt_)\n" " --statusdict=K[:[:]V] gởi lời xác định statusdict cho kết xuất\n" " -k, --page-prefeed bật khả năng _nạp sẵn trang_\n" " -K, --no-page-prefeed tắt khả năng _nạp sẵn trang_ (_không_)\n" #: src/main.c:792 #, fuzzy #| msgid "" #| "By default a2ps is tuned to do what you want to, so trust it. To pretty\n" #| "print the content of the `src' directory and a table of content, and send " #| "the\n" #| "result to the printer `lw',\n" #| "\n" #| " $ a2ps -P lw --toc src/*\n" #| "\n" #| "To process the files `sample.ps' and `sample.html' and display the " #| "result,\n" #| "\n" #| " $ a2ps -P display sample.ps sample.html\n" #| "\n" #| "To process a mailbox in 4 up,\n" #| "\n" #| " $ a2ps -=mail -4 mailbox\n" #| "\n" #| "To print as a booklet on the default printer, which is Duplex capable,\n" #| "\n" #| " $ a2ps -=book paper.dvi.gz -d\n" msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" "Mặc định là trình a2ps được thiết kế để làm việc bạn muốn,\n" "vậy bạn tin nó nhé. Để in xinh nội dung của thư mục « src » và mục lục,\n" "và gởi kết quả cho máy in « lw »:\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "Để xử lý hai tập tin <mẫu.ps> và <mẫu.html> rồi _hiển thị_ kết quả:\n" "\n" " $ a2ps -P display mẫu.ps mẫu.html\n" "\n" "Để xử lý một _hộp thư_ để xuất bốn _thư_ trên mỗi tờ giấy (4 up):\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Để in dạng _cuốn sách_ nhỏ bằng máy in mặc định mà có khả năng\n" "in trên cả hai mặt của mỗi _tờ giấy_:\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:1146 msgid "Table of Content" msgstr "Mục Lục" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "không thể xử lý « %s » mà cần thiết trình a2ps phiên bản %s" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "ký tự bất thường « %c »" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "quá nhiều bao gồm (include)" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "chưa xác định phím cho « %s »" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "không tìm thấy tâp tin « %s »" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "khả năng chọn tự động kiểu dáng bị thôi" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "không thể biên dịch biểu thức chính quy « %s »: %s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "Tờ kiểu dáng đã biết" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "không tìm thấy tờ kiểu dáng « %s »: nên sử dụng kiểu dáng chuẩn" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "số hiệu phiên bản không hợp lệ « %s »" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "dấu cách (tức là « »)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "bát phân (v.d. « \\001 »)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "thập lục (v.d. « \\x0a »)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "dấu mũ (v.d. « ^C », « M-^C »)" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (v.d. « C-c », « M-C-c »)" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "dấu hỏi (v.d. « ? »)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "tùy chọn không hợp lệ « %s »" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "Mã ký tự đã biết" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "chưa biết đủ thông tin về mặt" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "không thể đóng thư mục « %s »" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "đối số không hợp lệ « %s » đối với « %s »" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Đối số hợp lệ là số nguyên n để mà: %s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Đối số hợp lệ là điều nổi f để mà: %s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "không biết mã ký tự « %s »" #: liba2ps/madir.c:51 msgid "rows first" msgstr "hàng trước" #: liba2ps/madir.c:54 msgid "columns first" msgstr "cột trước" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "không biệt vật chứa « %s »" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "Vật chứa đã biết" #: liba2ps/media.c:189 msgid "Name" msgstr "Tên" #: liba2ps/media.c:190 msgid "dimensions" msgstr "các chiều" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "Biến đã biết" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: thiếu « %c » cho đồ thoát %s%c " #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "In do %s" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "In do %s từ %s" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "không thể lấy thư mục hoạt động hiện thời" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: đối số quá dài cho đồ thoát %s" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%d/%b/%y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A, ngày %e, %B, năm %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: không biết đồ thoát « %s » « %c » (%d)" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "Trang %d" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "Trang %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: dấu ngân cách không hợp lệ « %s%c » cho đồ thoát « %s »" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: đối số không hợp lệ cho đồ thoát %s%c " #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "Trang %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "lệnh xuất" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Hãy thử lệnh « %s --help » để xem thông tin thêm.\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "bộ nhận diện biến không hợp lệ « %s »" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "mặt không hợp lệ « %s »" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "« %s » không có « %s » khớp" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "Phông chữ đã biết" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " Không có.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "Mô tả máy in PostScript đã biết" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "khoảng không hợp lệ « %s »" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "Máy in mặc định" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "Không biết máy in" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "không có lệnh cho « %s » (%s%s)" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "đã được gởi cho thiết bị xuất chuẩn" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "đã được gởi cho máy in mặc định" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "đã được lưu vào tập tin « %s »" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "đã được gởi cho máy in « %s »" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "Thiết bị xuất đã biết (máy in v.v.)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "Đoạn mở đầu đã biết" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "phông chữ %f quá lớn" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "« %s » là một tập tin nhị phân nên công việc in bị hủy bỏ" #: liba2ps/userdata.c:104 msgid "user" msgstr "người dùng" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "Người dùng lạ" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "không biết tùy chọn người dùng « %s »" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "Tùy chọn người dùng đã biết" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "Hết bộ nhớ rồi" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "không thể thay đổi tên tập tin « %s » thành « %s »" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "đã phục hồi tập tin « %s »" #~ msgid "any type" #~ msgstr "bất cứ kiểu nào" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "" #~ "Để tìm tin tức, bản cập nhật và tài liệu hướng dẫn,\n" #~ "hãy thăm địa chỉ:\n" #~ "http://www.gnu.org/software/a2ps/.\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "Hãy thông báo lỗi cho <bug-a2ps@gnu.org>.\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "Tác quyền © năm 1988-1993 Miguel Santana\n" #~ "Tác quyền © năm 1995-2000 Akim Demaille, Miguel SantanaTác quyền © năm " #~ "2007- hiện tại Akim Demaille, Miguel Santana, Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "không biết mã ký tự « %s » nên bỏ qua nó" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "Tác quyền © năm 1999 Tổ Chức Phần Mềm Tự Do." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "Tác giả: %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "Đây là phần mềm tự do; hãy xem mã nguồn để thấy điều kiện sao chép.\n" #~ "KHÔNG CÓ BẢO HÀNH GÌ CẢ, THẬM CHÍ KHÔNG CÓ BẢO ĐẢM ĐƯỢC NGỤ Ý\n" #~ "KHẢ NĂNG BÁN HAY KHẢ NĂNG LÀM ĐƯỢC VIỆC DỨT KHOÁT.\n" #~ msgid "write error" #~ msgstr "lỗi ghi" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "lời xác định không hợp lệ cho máy in « %s »: %s" #, c-format #~ msgid "obsolete `%s' entry. Ignored" #~ msgstr "mục nhập « %s » quá cũ nên bị bo qua" #, c-format #~ msgid "Page %d/%d" #~ msgstr "Trang %d/%d" #~ msgid "`" #~ msgstr "« " #~ msgid "'" #~ msgstr " »" #, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "đối số không hợp lệ %s cho « %s »" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "đối số mơ hồ %s cho « %s »" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "Đối số hợp lệ:" #~ msgid "Unknown system error" #~ msgstr "Không biết lỗi hệ thống" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: tùy chọn « %s » là mơ hồ\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: tùy chọn « --%s » không cho phép đối số\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: tùy chọn « %c%s » không cho phép đối số\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: tùy chọn « %s » cần đến đối số\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: không nhận diện tùy chọn « --%s »\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: không nhận diện tùy chọn « %c%s »\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: không cho phép tùy chọn « -- %c »\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: tùy chọn không hợp lệ « -- %c »\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: tùy chọn cần đến đối số « -- %c »\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: tùy chọn « -W %s » là mơ hồ\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: tùy chọn « -W %s » không cho phép đối số\n" ������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/zh_CN.gmo����������������������������������������������������������������������������0000644�0000000�0000000�00000013400�14445132166�011471� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������T��������q���\������ �� ���!�� ���+�����8�����L�����k�����{������������ ����������%������������������*�����:�����?�� ���H�� ���U�����c�����y������������&���������� �����+�����-��� �����9 �����I �����g ����� ����� ����� ����� ��'��� ����� ��#���* �����N ��*���j ����� ����� ��/��� ��$��� ��$��� �����= �����X �����n �� ��� �� ��� ����� ����� ����� ����� ����� ����� �����% �����D �����X �����t ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� �� ���+ �����6 �����O �����f ����� ����� ����� ����� ����� ����� ����������(�����A�����F����J������� ������������������*�����:�����U�� ���^�� ���k��$���x����������������� ��������������� ����� ��� ������� ���.�����:�����A��/���J�����z�� �����&�����%����� �����'�������������7�����Q�����p��)�����,�����������������������&�����B�����]��/���t�������#����� ����������!��� �� ���B�����L�����S��!���p�����������������(�����������������������/�� ���D�����Q��$���U�����z�����~��%����� ����� ��������������� ���������� ��������"�����;�����R�����h��������������������������������������������P������R���0���8���A������������� ���>���/���"���?���*������������������'���!���3���&��� �������1���:������=�������Q���9������B���$��� ��������� ���������������)���M��������������N���T������#�������+�������E���O����������;���6���F��������� ����������������������������������L���I������� ����������5���H���G������(����������7�������������4������C���S���<�������K���,���������%������@�������-���D���2���.������J����������� None. �%A %B %d, %Y�%s, delegated to %s�Configuration status of %s %s �Default Printer�Delegation `%s', from %s to %s �Input: �Known Encodings�Known Fonts�Known Outputs (Printers, etc.)�Known PostScript Printer Descriptions�Known Style Sheets�Known User Options�Known Variables�Name�Output: �PostScript: �Printed by %s�Printed by %s from %s�Sheets: �Table of Content�Tasks: �Try `%s --help' for more information. �Unknown Printer�Unknown User�Valid arguments are floats f such that: %s �Valid arguments are integers n such that: %s �Virtual pages: �[%s (%s): 1 page on 1 sheet] �[%s (%s): failed. Ignored] �[%s (binary): ignored] �[%s (unprintable): ignored] �[No output produced] �[Total: 1 page on 1 sheet] %s �`%s' is a binary file, printing aborted�`%s' is a directory�automatic style selection cancelled�cannot close directory `%s'�cannot compile regular expression `%s': %s�cannot create file `%s'�cannot find file `%s'�cannot find style sheet `%s': using plain style�cannot get current working directory�cannot get informations on file `%s'�cannot open a pipe on `%s'�cannot open file `%s'�cannot rename file `%s' as `%s'�columns first�each line�end of line inside a %s�end-of-line in string constant�font %f too big�font size is %gpt�heavy�hexadecimal (i.e., `\x0a' etc.)�invalid argument `%s' for `%s'�invalid option `%s'�invalid version number `%s'�missing argument for `%s'�never make backups�no�no command for the `%s' (%s%s)�none�normal�octal (i.e., `\001' etc.)�output command�plain�question-mark (i.e., `?')�restored file `%s'�rows first�saved into the file `%s'�selected automatically�sent to the default printer�sent to the printer `%s'�sent to the standard output�simple backups of every file�space (i.e., ` ')�too many includes�unexpected character `%c'�unknown encoding `%s'�unknown user option `%s'�user�yes�Project-Id-Version: a2ps 4.14 Report-Msgid-Bugs-To: bug-a2ps@gnu.org PO-Revision-Date: 2018-01-31 12:16+0800 Last-Translator: Boyuan Yang <073plan@gmail.com> Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com> Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 2.0.6 � 无. �%A %B %d, %Y�%s,授权给%s�%s %s 的配置状态 �默认打印机�授权 `%s',从 %s 到 %s �输入: �已知编码�已知字体�已知输出(打印机,等。)�已知PostScript打印机描述�已知样式表�已知用户选项�已知变量�名称�输出: �PostScript: �由%s打印�由 %s 从 %s 处打印�工作表: �目录�任务: �请尝试 `%s --help' 来获取更多信息。 �未知打印机�未知用户�有效的参数是浮点数 比如:%s �有效的参数是整数 n 比如:%s �虚拟页: �[%s (%s): 1 页 在 1 个工作表中] �[%s (%s): 失败。 忽略] �[%s (二进制): 忽略] �[%s (无法打印): 忽略] �[没有输出生成] �[总共: 1 页 在 1 个工作表中] %s �`%s' 是一个二进制文件,打印取消�`%s' 是一个目录�自动样式选择被取消�无法关闭目录 `%s'�无法编译表达式`%s:%s�无法创建文件“%s”�无法找到文件`%s'�无法找到样式表`%s':使用纯文本样式�无法获得当前工作目录�无法获得文件“%s”的信息�无法在“%s”上打开管道�无法打开文件 `%s'�无法重命名文件 `%s'为`%s'�第一列�每行�行的结束在一个 %s 中�行结束符在字符串常量中�字体 %f 过大�字体大小是 %gpt�加重�十六进制(例如,“\x0a”等)�无效参数 `%s' 对于 `%s'�无效选项`%s'�无效的版本号 `%s'�“%s”缺少参数�从不备份�否�没有对应于`%s' (%s%s) 的命令�无�正常�八进制(例如,“\001”等)�输出命令�纯文本�问号(例如,“?”)�恢复文件`%s'�第一行�保存到文件“%s”中�自动选择�发送至默认打印机�发送到打印机`%s'�发送至标准输出�每个文件的简单备份�空白(例如,“ ”)�太多 includes�未预期的字符“%c”�未知编码 `%s'�未知用户选项`%s'�用户�是�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po/zh_CN.po�����������������������������������������������������������������������������0000644�0000000�0000000�00000067121�14445132165�011335� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Chinese translations for a2ps package # a2ps 软件包的简体中文翻译. # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the a2ps package. # YueGuang <ygxyvesuvius@gmail.com>, 2008. # Boyuan Yang <073plan@gmail.com>, 2018. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.14\n" "Report-Msgid-Bugs-To: bug-a2ps@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2018-01-31 12:16+0800\n" "Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 2.0.6\n" #: src/delegate.c:110 liba2ps/encoding.c:569 liba2ps/encoding.c:615 #: liba2ps/encoding.c:657 liba2ps/output.c:267 liba2ps/pair_ht.c:312 #: liba2ps/prolog.c:137 #, c-format msgid "missing argument for `%s'" msgstr "“%s”缺少参数" #: src/delegate.c:233 liba2ps/routines.c:136 liba2ps/xbackupfile.c:171 #: liba2ps/xbackupfile.c:196 liba2ps/xbackupfile.c:204 #, c-format msgid "cannot create file `%s'" msgstr "无法创建文件“%s”" #: src/delegate.c:242 src/select.c:188 liba2ps/routines.c:163 #: liba2ps/routines.c:169 #, c-format msgid "cannot open a pipe on `%s'" msgstr "无法在“%s”上打开管道" #: src/delegate.c:362 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "授权 `%s',从 %s 到 %s\n" #: src/delegate.c:380 src/delegate.c:400 #, fuzzy msgid "Applications configured for delegation" msgstr "为授权配置的应用程序" #: src/generate.c:82 #, c-format msgid "`%s' is a directory" msgstr "`%s' 是一个目录" #: src/generate.c:90 src/main.c:549 src/main.c:571 liba2ps/routines.c:130 #, c-format msgid "cannot open file `%s'" msgstr "无法打开文件 `%s'" #: src/generate.c:95 liba2ps/xbackupfile.c:147 #, c-format msgid "cannot get informations on file `%s'" msgstr "无法获得文件“%s”的信息" #: src/generate.c:160 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 页 在 1 个工作表中]\n" #: src/generate.c:166 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on 1 sheet]\n" msgid "[%s (%s): %zu pages on 1 sheet]\n" msgstr "[%s (%s): %d 页 在 1 个工作表中]\n" #: src/generate.c:173 #, fuzzy, c-format #| msgid "[%s (%s): %d pages on %d sheets]\n" msgid "[%s (%s): %zu pages on %zu sheets]\n" msgstr "[%s (%s): %d 页 在 %d 个工作表中]\n" #: src/generate.c:200 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[总共: 1 页 在 1 个工作表中] %s\n" #: src/generate.c:204 #, fuzzy, c-format #| msgid "[Total: %d pages on 1 sheet] %s\n" msgid "[Total: %zu pages on 1 sheet] %s\n" msgstr "[总共: %d 页 在 1 个工作表中] %s\n" #: src/generate.c:209 #, fuzzy, c-format #| msgid "[Total: %d pages on %d sheets] %s\n" msgid "[Total: %zu pages on %zu sheets] %s\n" msgstr "[总共: %d 页 在 %d 个工作表中] %s\n" #: src/generate.c:218 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:221 #, c-format msgid "[%zu lines wrapped]\n" msgstr "" #: src/generate.c:232 msgid "[No output produced]\n" msgstr "[没有输出生成]\n" #: src/generate.c:304 #, c-format msgid "%s, delegated to %s" msgstr "%s,授权给%s" #: src/generate.c:312 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): 失败。 忽略]\n" #: src/generate.c:320 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (无法打印): 忽略]\n" #: src/generate.c:329 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (二进制): 忽略]\n" #: src/generate.c:350 msgid "plain" msgstr "纯文本" #: src/lexssh.l:352 msgid "end-of-line in string constant" msgstr "行结束符在字符串常量中" #: src/lexssh.l:419 src/sheets-map.l:159 src/sheets-map.l:198 #, c-format msgid "end of line inside a %s" msgstr "行的结束在一个 %s 中" #: src/main.c:196 #, fuzzy, c-format #| msgid "received signal %d: %s" msgid "received SIG%s" msgstr "接收到信号 %d: %s" #: src/main.c:235 msgid "heavy" msgstr "加重" #: src/main.c:239 msgid "normal" msgstr "正常" #: src/main.c:243 msgid "none" msgstr "无" #: src/main.c:317 src/main.c:321 msgid "yes" msgstr "是" #: src/main.c:318 src/main.c:321 src/main.c:359 msgid "no" msgstr "否" #: src/main.c:327 #, c-format msgid "Configuration status of %s %s\n" msgstr "%s %s 的配置状态\n" #: src/main.c:331 src/main.c:687 msgid "Sheets:\n" msgstr "工作表:\n" #: src/main.c:332 #, c-format msgid "" " medium = %s, %s\n" " page layout = %zu x %zu, %s\n" " borders = %s\n" " file alignment = %s\n" " interior margin = %u\n" msgstr "" #: src/main.c:339 msgid "portrait" msgstr "" #: src/main.c:339 msgid "landscape" msgstr "" #: src/main.c:348 #, fuzzy, c-format #| msgid "%d characters per line" msgid "%u characters per line" msgstr "每行 %d 个字符" #: src/main.c:351 #, fuzzy, c-format #| msgid "%d lines per page" msgid "%u lines per page" msgstr "每页%d 行" #: src/main.c:354 #, c-format msgid "font size is %gpt" msgstr "字体大小是 %gpt" #: src/main.c:363 msgid "each line" msgstr "每行" #: src/main.c:367 #, fuzzy, c-format #| msgid "each %d lines" msgid "each %u lines" msgstr "每%d行" #: src/main.c:370 src/main.c:709 msgid "Virtual pages:\n" msgstr "虚拟页:\n" #: src/main.c:371 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %u\n" " non printable format = %s\n" msgstr "" #: src/main.c:382 msgid "Headers:\n" msgstr "" #: src/main.c:383 #, c-format msgid "" " header = %s\n" " left footer = %s\n" " footer = %s\n" " right footer = %s\n" " left title = %s\n" " center title = %s\n" " right title = %s\n" " under lay = %s\n" msgstr "" #: src/main.c:402 src/main.c:738 msgid "Input:\n" msgstr "输入:\n" #: src/main.c:403 #, c-format msgid "" " truncate lines = %s\n" " interpret = %s\n" " end of line = %s\n" " encoding = %s\n" " document title = %s\n" " prologue = %s\n" " print anyway = %s\n" " delegating = %s\n" msgstr "" #: src/main.c:428 src/main.c:493 msgid "selected automatically" msgstr "自动选择" #: src/main.c:431 src/main.c:757 msgid "Pretty-printing:\n" msgstr "" #: src/main.c:432 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" #: src/main.c:452 msgid "never make backups" msgstr "从不备份" #: src/main.c:456 msgid "simple backups of every file" msgstr "每个文件的简单备份" #: src/main.c:461 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" #: src/main.c:466 msgid "numbered backups of every file" msgstr "" #: src/main.c:470 src/main.c:766 msgid "Output:\n" msgstr "输出:\n" #: src/main.c:471 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" #: src/main.c:483 src/main.c:777 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:484 #, c-format msgid "" " magic number = %s\n" " Printer Description (PPD) = %s\n" " default PPD = %s\n" " page label format = %s\n" " number of copies = %u\n" " sides per sheet = %s\n" " page device definitions = " msgstr "" #: src/main.c:504 #, c-format msgid " statusdict definitions = " msgstr "" #: src/main.c:507 #, c-format msgid " page prefeed = %s\n" msgstr "" #: src/main.c:516 msgid "Internals:\n" msgstr "" #: src/main.c:517 #, c-format msgid "" " verbosity level = %u\n" " file command = %s\n" " library path = \n" msgstr "" #. TRANSLATORS: In version 4.14.93, strings in this file were reformatted #. with whitespace changes only! Changes to the corresponding strings in #. your language would be much appreciated, but is not important for user #. understanding. #. #: src/main.c:640 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "\n" "Convert FILE(s) or standard input to PostScript. By default, the output is\n" "sent to the default printer. An output file may be specified with -o.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" "Long options marked with `*' require a yes/no argument, corresponding short\n" "options stand for `yes'.\n" msgstr "" "用法:%s [选项]... [文件]...\n" "\n" "转换文件或标准输入到PostScript.默认情况下,输出\n" "被发送至默认打印机。一个输出文件可以通过 -o 选项指定。\n" "\n" "长命令的参数也是相应短命令的参数。\n" "以\"*要求 yes/no 值\"标记的长选项,以及与之等价的短选项代表`yes'.\n" #: src/main.c:655 msgid "Tasks:\n" msgstr "任务:\n" #: src/main.c:656 #, fuzzy msgid "" " --version display version\n" " --help display this help\n" " --guess report guessed types of FILES\n" " --which report the full path of library files " "named\n" " FILES\n" " --glob report the full path of library files " "matching\n" " FILES\n" " --list=defaults display default settings and parameters\n" " --list=TOPIC detailed list on TOPIC (delegations,\n" " encodings, features, variables, media, " "ppd,\n" " printers, prologues, style-sheets,\n" " user-options)\n" msgstr "" " --version 显示版本号\n" " --help 显示此帮助\n" " --guess 报告推测的文件类型\n" " --which 报告以FILES命名的库文件的完整路径\n" " --glob 报告匹配FILES的库文件的完整路径\n" " --list=defaults 显示默认设置和参数\n" " --list=TOPIC 对TOPIC的详细列表(授权,编码,特性,\n" " 变量, 媒体, ppd, 打印机, 序言, 样式-工作表,\n" " 用户-选项)\n" #: src/main.c:670 #, fuzzy #| msgid "" #| "After having performed the task, exit successfully. Detailed lists may\n" #| "provide additional help on specific features.\n" msgid "" "After having performed the task, exit successfully. Detailed lists may " "provide\n" "additional help on specific features.\n" msgstr "在执行完该任务后,成功退出。详细列表可能提供更多的对某种特性的帮助。\n" #: src/main.c:678 msgid "Global:\n" msgstr "" #: src/main.c:679 msgid "" " -q, --quiet, --silent be really quiet\n" " -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n" " -=, --user-option=OPTION use the user defined shortcut OPTION\n" " --debug enable debugging features\n" " -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n" msgstr "" #: src/main.c:688 msgid "" " -M, --medium=NAME use output medium NAME\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" " --columns=NUM number of columns per sheet\n" " --rows=NUM number of rows per sheet\n" " --major=DIRECTION first fill (DIRECTION=) rows, or columns\n" " -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n" " virtuals\n" " -A, --file-align=MODE align separate files according to MODE " "(fill,\n" " rank page, sheet, or a number)\n" " -j, --borders* print borders around columns\n" " --margin[=NUM] define an interior margin of size NUM\n" msgstr "" #: src/main.c:702 msgid "" "The options -1.. -9 affect several primitive parameters to set up " "predefined\n" "layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n" "equivalent to `-2'. To modify the layout, use `-2Rf40', or compose " "primitive\n" "options (`--columns', `--font-size' etc.).\n" msgstr "" #: src/main.c:710 msgid "" " --line-numbers=NUM precede each NUM lines with its line " "number\n" " -C alias for --line-numbers=5\n" " -f, --font-size=SIZE use font SIZE (float) for the body text\n" " -L, --lines-per-page=NUM scale the font to print NUM lines per " "virtual\n" " -l, --chars-per-line=NUM scale the font to print NUM columns per " "virtual\n" " -m, --catman process FILE as a man page (same as -L66)\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " --non-printable-format=FMT specify how non-printable chars are " "printed\n" msgstr "" #: src/main.c:721 msgid "Headings:\n" msgstr "" #: src/main.c:723 #, no-c-format msgid "" " -B, --no-header no page headers at all\n" " -b, --header[=TEXT] set page header\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " --center-title[=TEXT] set page title to TITLE\n" " --left-title[=TEXT] set left and right page title to TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] set sheet footers to TEXT\n" " --footer[=TEXT]\n" " --right-footer[=TEXT]\n" msgstr "" #: src/main.c:734 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:739 msgid "" " -a, --pages[=RANGE] select the pages to print\n" " -c, --truncate-lines* cut long lines\n" " -i, --interpret* interpret tab, bs and ff chars\n" " --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, " "any)\n" " -X, --encoding=NAME use input encoding NAME\n" " -t, --title=NAME set the name of the job\n" " --stdin=NAME set the name of the input file stdin\n" " --print-anyway* force binary printing\n" " -Z, --delegate* delegate files to another application\n" " --toc[=TEXT] generate a table of content\n" msgstr "" #: src/main.c:751 msgid "" "When delegations are enabled, a2ps may use other applications to handle the\n" "processing of files that should not be printed as raw information, e.g., " "HTML\n" "PostScript, PDF etc.\n" msgstr "" #: src/main.c:758 msgid "" " -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n" " --highlight-level=LEVEL set pretty printing highlight LEVEL\n" " LEVEL can be none, normal or heavy\n" " -g alias for --highlight-level=heavy\n" " --strip-level=NUM level of comments stripping\n" msgstr "" #: src/main.c:767 msgid "" " -o, --output=FILE leave output to file FILE. If FILE is " "`-',\n" " leave output to stdout.\n" " --version-control=WORD override the usual version control\n" " --suffix=SUFFIX override the usual backup suffix\n" " -P, --printer=NAME send output to printer NAME\n" " -d send output to the default printer\n" " (this is the default behavior)\n" msgstr "" #: src/main.c:778 msgid "" " --prologue=FILE include FILE.pro as PostScript prologue\n" " --ppd[=KEY] automatic PPD selection or set to KEY\n" " -n, --copies=NUM print NUM copies of each page\n" " -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n" " `2' or `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] pass a page device definition to output\n" " --statusdict=K[:[:]V] pass a statusdict definition to the output\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" msgstr "" #: src/main.c:792 msgid "" "By default a2ps is tuned to do what you want to, so trust it. To pretty " "print\n" "the content of the `src' directory and a table of content, and send the " "result\n" "to the printer `lw',\n" "\n" " $ a2ps -P lw --toc src/*\n" "\n" "To process the files `sample.ps' and `sample.html' and display the result,\n" "\n" " $ a2ps -P display sample.ps sample.html\n" "\n" "To process a mailbox in 4 up,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "To print as a booklet on the default printer, which is duplex capable,\n" "\n" " $ a2ps -=book paper.dvi.gz -d" msgstr "" #: src/main.c:1146 msgid "Table of Content" msgstr "目录" #: src/parsessh.y:224 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "" #: src/sheets-map.l:117 #, c-format msgid "unexpected character `%c'" msgstr "未预期的字符“%c”" #: src/sheets-map.l:217 liba2ps/lexppd.l:212 #, c-format msgid "too many includes" msgstr "太多 includes" #: src/sheets-map.l:301 src/sheets-map.l:308 #, c-format msgid "no key defined for `%s'" msgstr "" #: src/select.c:119 src/ssheet.c:797 liba2ps/fonts.l:720 liba2ps/fonts.l:722 #: liba2ps/fonts.l:724 liba2ps/pathwalk.c:315 liba2ps/pathwalk.c:400 #, c-format msgid "cannot find file `%s'" msgstr "无法找到文件`%s'" #: src/select.c:121 #, c-format msgid "automatic style selection cancelled" msgstr "自动样式选择被取消" #: src/select.c:198 #, c-format msgid "error running file(1)" msgstr "" #: src/ssheet.c:281 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "无法编译表达式`%s:%s" #: src/ssheet.c:904 src/ssheet.c:925 msgid "Known Style Sheets" msgstr "已知样式表" #: src/ssheet.c:1385 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "无法找到样式表`%s':使用纯文本样式" #: src/versions.c:128 #, c-format msgid "invalid version number `%s'" msgstr "无效的版本号 `%s'" #: liba2ps/caret.c:33 msgid "space (i.e., ` ')" msgstr "空白(例如,“ ”)" #: liba2ps/caret.c:35 msgid "octal (i.e., `\\001' etc.)" msgstr "八进制(例如,“\\001”等)" #: liba2ps/caret.c:37 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "十六进制(例如,“\\x0a”等)" #: liba2ps/caret.c:39 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "" #: liba2ps/caret.c:41 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "" #: liba2ps/caret.c:43 msgid "question-mark (i.e., `?')" msgstr "问号(例如,“?”)" #: liba2ps/darray.c:83 liba2ps/darray.c:553 #, c-format msgid "Dynamic array `%s':\n" msgstr "" #: liba2ps/darray.c:84 liba2ps/dstring.c:72 #, c-format msgid "\tload: %zu/%zu (%2.1f%%)\n" msgstr "" #: liba2ps/darray.c:102 liba2ps/dstring.c:87 #, c-format msgid "\toriginal size: %zu, growth: %s %zu\n" msgstr "" #: liba2ps/dstring.c:71 #, c-format msgid "Dynamic string:\n" msgstr "" #: liba2ps/encoding.c:737 #, c-format msgid "too many slant fonts: `%s'" msgstr "" #: liba2ps/encoding.c:743 #, c-format msgid "invalid option `%s'" msgstr "无效选项`%s'" #: liba2ps/encoding.c:1270 liba2ps/encoding.c:1291 msgid "Known Encodings" msgstr "已知编码" #: liba2ps/faces.c:148 #, c-format msgid "incomplete knowledge of faces" msgstr "" #: liba2ps/filtdir.c:68 #, c-format msgid "cannot close directory `%s'" msgstr "无法关闭目录 `%s'" #: liba2ps/getnum.c:41 liba2ps/getnum.c:99 liba2ps/getnum.c:131 #: liba2ps/getnum.c:200 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "无效参数 `%s' 对于 `%s'" #: liba2ps/getnum.c:101 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "有效的参数是整数 n 比如:%s\n" #: liba2ps/getnum.c:202 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "有效的参数是浮点数 比如:%s\n" #: liba2ps/jobs.c:304 #, c-format msgid "unknown encoding `%s'" msgstr "未知编码 `%s'" #: liba2ps/madir.c:51 msgid "rows first" msgstr "第一行" #: liba2ps/madir.c:54 msgid "columns first" msgstr "第一列" #: liba2ps/media.c:158 #, c-format msgid "unknown medium `%s'" msgstr "" #: liba2ps/media.c:186 liba2ps/media.c:213 msgid "Known Media" msgstr "" #: liba2ps/media.c:189 msgid "Name" msgstr "名称" #: liba2ps/media.c:190 msgid "dimensions" msgstr "" #: liba2ps/metaseq.c:82 liba2ps/metaseq.c:91 #, c-format msgid "Known Variables" msgstr "已知变量" #: liba2ps/metaseq.c:140 liba2ps/metaseq.c:509 liba2ps/metaseq.c:526 #: liba2ps/metaseq.c:586 liba2ps/metaseq.c:931 liba2ps/metaseq.c:951 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "" #: liba2ps/metaseq.c:266 liba2ps/metaseq.c:278 #, c-format msgid "Printed by %s" msgstr "由%s打印" #: liba2ps/metaseq.c:276 #, c-format msgid "Printed by %s from %s" msgstr "由 %s 从 %s 处打印" #: liba2ps/metaseq.c:286 liba2ps/metaseq.c:304 #, c-format msgid "cannot get current working directory" msgstr "无法获得当前工作目录" #: liba2ps/metaseq.c:317 liba2ps/metaseq.c:512 liba2ps/metaseq.c:541 #: liba2ps/metaseq.c:630 liba2ps/metaseq.c:934 liba2ps/metaseq.c:966 #, c-format msgid "%s: too long argument for %s escape" msgstr "" #: liba2ps/metaseq.c:342 liba2ps/metaseq.c:655 #, fuzzy #| msgid "%b %d, %y" msgid "%b %d, %Y" msgstr "%b %d, %y" #: liba2ps/metaseq.c:351 liba2ps/metaseq.c:664 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: liba2ps/metaseq.c:397 liba2ps/metaseq.c:426 liba2ps/metaseq.c:469 #: liba2ps/metaseq.c:704 liba2ps/metaseq.c:788 liba2ps/metaseq.c:847 #: liba2ps/metaseq.c:902 liba2ps/metaseq.c:1078 liba2ps/metaseq.c:1208 #: liba2ps/metaseq.c:1219 liba2ps/metaseq.c:1262 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "" #: liba2ps/metaseq.c:404 liba2ps/metaseq.c:795 #, fuzzy, c-format #| msgid "Page %d" msgid "Page %zu" msgstr "第 %d 页" #: liba2ps/metaseq.c:409 liba2ps/metaseq.c:806 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%c" msgstr "页 %d/%c" #: liba2ps/metaseq.c:571 liba2ps/metaseq.c:1000 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "" #: liba2ps/metaseq.c:579 liba2ps/metaseq.c:589 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "" #: liba2ps/metaseq.c:802 #, fuzzy, c-format #| msgid "Page %d/%c" msgid "Page %zu/%zu" msgstr "页 %d/%c" #: liba2ps/metaseq.c:1239 msgid "output command" msgstr "输出命令" #: liba2ps/options.c:288 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "请尝试 `%s --help' 来获取更多信息。\n" #: liba2ps/options.c:672 #, c-format msgid "invalid variable identifier `%s'" msgstr "" #: liba2ps/output.c:413 #, c-format msgid "invalid face `%s'" msgstr "" #: liba2ps/output.c:484 #, c-format msgid "`%s' with no matching `%s'" msgstr "" #: liba2ps/ppd.c:83 msgid "Known Fonts" msgstr "已知字体" #: liba2ps/ppd.c:86 msgid "" "\n" " None.\n" msgstr "" "\n" " 无.\n" #: liba2ps/ppd.c:124 liba2ps/ppd.c:140 msgid "Known PostScript Printer Descriptions" msgstr "已知PostScript打印机描述" #: liba2ps/prange.c:284 liba2ps/prange.c:302 #, c-format msgid "invalid interval `%s'" msgstr "" #: liba2ps/printers.c:41 msgid "Default Printer" msgstr "默认打印机" #: liba2ps/printers.c:42 msgid "Unknown Printer" msgstr "未知打印机" #: liba2ps/printers.c:342 liba2ps/printers.c:359 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "没有对应于`%s' (%s%s) 的命令" #: liba2ps/printers.c:375 msgid "sent to the standard output" msgstr "发送至标准输出" #: liba2ps/printers.c:376 msgid "sent to the default printer" msgstr "发送至默认打印机" #: liba2ps/printers.c:381 #, c-format msgid "saved into the file `%s'" msgstr "保存到文件“%s”中" #: liba2ps/printers.c:382 #, c-format msgid "sent to the printer `%s'" msgstr "发送到打印机`%s'" #: liba2ps/printers.c:559 liba2ps/printers.c:567 msgid "Known Outputs (Printers, etc.)" msgstr "已知输出(打印机,等。)" #: liba2ps/prolog.c:84 liba2ps/prolog.c:169 msgid "Known Prologues" msgstr "" #: liba2ps/prolog.c:568 #, c-format msgid "font %f too big" msgstr "字体 %f 过大" #: liba2ps/psgen.c:631 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' 是一个二进制文件,打印取消" #: liba2ps/userdata.c:104 msgid "user" msgstr "用户" #: liba2ps/userdata.c:105 msgid "Unknown User" msgstr "未知用户" #: liba2ps/useropt.c:56 #, c-format msgid "unknown user option `%s'" msgstr "未知用户选项`%s'" #: liba2ps/useropt.c:67 liba2ps/useropt.c:78 msgid "Known User Options" msgstr "已知用户选项" #: liba2ps/xbackupfile.c:44 #, fuzzy, c-format #| msgid "Memory exhausted" msgid "memory exhausted" msgstr "内存耗尽" #: liba2ps/xbackupfile.c:163 liba2ps/xbackupfile.c:175 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "无法重命名文件 `%s'为`%s'" #: liba2ps/xbackupfile.c:178 #, c-format msgid "restored file `%s'" msgstr "恢复文件`%s'" #~ msgid "any type" #~ msgstr "任何类型" #~ msgid "" #~ "News, updates and documentation: visit http://www.gnu.org/software/" #~ "a2ps/.\n" #~ msgstr "新闻、更新和文档:请浏览 http://www.gnu.org/software/a2ps/。\n" #~ msgid "Report bugs to <bug-a2ps@gnu.org>.\n" #~ msgstr "请将缺陷与错误报告给 <bug-a2ps@gnu.org>。\n" #~ msgid "" #~ "Copyright (c) 1988-1993 Miguel Santana\n" #~ "Copyright (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "Copyright (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #~ msgstr "" #~ "版权所有 (c) 1988-1993 Miguel Santana\n" #~ "版权所有 (c) 1995-2000 Akim Demaille, Miguel Santana\n" #~ "版权所有 (c) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta" #, c-format #~ msgid "unknown encoding `%s', ignored" #~ msgstr "未知编码`%s',忽略" #~ msgid "Copyright (C) 1999 Free Software Foundation, Inc." #~ msgstr "版权所有 (C) 1999 Free Software Foundation, Inc." #, c-format #~ msgid "Written by %s.\n" #~ msgstr "作者 %s.\n" #~ msgid "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgstr "" #~ "This is free software; see the source for copying conditions. There is " #~ "NO\n" #~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " #~ "PURPOSE.\n" #~ msgid "write error" #~ msgstr "写错误" #, c-format #~ msgid "invalid definition for printer `%s': %s" #~ msgstr "无效打印机分辨率 `%s':%s" #, c-format #~ msgid "Page %d/%d" #~ msgstr "页 %d/%d" #~ msgid "`" #~ msgstr "`" #~ msgid "'" #~ msgstr "'" #, fuzzy, c-format #~ msgid "invalid argument %s for `%s'" #~ msgstr "有效参数%s 对于`%s'" #, c-format #~ msgid "ambiguous argument %s for `%s'" #~ msgstr "模糊的参数 %s 对 `%s'" #, c-format #~ msgid "Valid arguments are:" #~ msgstr "有效参数是:" #~ msgid "Unknown system error" #~ msgstr "未知系统错误" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: 选项 `%s' 是模糊的\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s:选项 `--%s' 不允许参数\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s:选项 `%c%s' 不允许参数\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: 选项 `%s' 需要参数\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: 无法辨识的选项 `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s:无法辨识的选项`%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s:非法选项--%c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s:无效选项 -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: 选项需要参数 -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s:选项 `-W %s' 是模糊的\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: 选项 `-W %s' 不允许参数\n" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132367�011327� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/LINGUAS�����������������������������������������������������������������������0000644�0000000�0000000�00000000234�14415562311�012264� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Set of available languages. af be bg ca cs da de el eo es et eu fi fr ga gl hu it ja ka ko ms nb nl pl pt pt_BR ro ru rw sk sl sr sv tr uk vi zh_CN zh_TW ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/Makefile.in.in����������������������������������������������������������������0000644�0000000�0000000�00000046163�14424520535�013726� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu> # Copyright (C) 2000-2020 Free Software Foundation, Inc. # # 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. This file is offered as-is, # without any warranty. # # Origin: gettext-0.21 GETTEXT_MACRO_VERSION = 0.20 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SED = @SED@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ # When building gettext-tools, we prefer to use the built programs # rather than installed programs. However, we can't do that when we # are cross compiling. CROSS_COMPILING = @CROSS_COMPILING@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = @MSGMERGE@ MSGMERGE_UPDATE = @MSGMERGE@ --update MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot POFILESDEPS_yes = $(POFILESDEPS_) POFILESDEPS_no = POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) DISTFILESDEPS_ = update-po DISTFILESDEPS_yes = $(DISTFILESDEPS_) DISTFILESDEPS_no = DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) # Makevars gets inserted here. (Don't remove this line!) all: all-@USE_NLS@ .SUFFIXES: .SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update # The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. # The GNU Coding Standards say in # <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>: # "GNU distributions usually contain some files which are not source files # ... . Since these files normally appear in the source directory, they # should always appear in the source directory, not in the build directory. # So Makefile rules to update them should put the updated files in the # source directory." # Therefore we put these files in the source directory, not the build directory. # During .po -> .gmo conversion, take into account the most recent changes to # the .pot file. This eliminates the need to update the .po files when the # .pot file has changed, which would be troublesome if the .po files are put # under version control. $(GMOFILES): $(srcdir)/$(DOMAIN).pot .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ cd $(srcdir) && \ rm -f $${lang}.gmo && \ $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ mv t-$${lang}.gmo $${lang}.gmo && \ rm -f $${lang}.1po .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all-yes: $(srcdir)/stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. CHECK_MACRO_VERSION = \ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). # $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS # have been loosely updated. Its purpose is that when a developer or translator # checks out the package from a version control system, and the $(DOMAIN).pot # file is not under version control, "make" will update the $(DOMAIN).pot and # the $(CATALOGS), but subsequent invocations of "make" will do nothing. This # timestamp would not be necessary if updating the $(CATALOGS) would always # touch them; however, the rule for $(POFILES) has been designed to not touch # files that don't need to be changed. $(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot @$(CHECK_MACRO_VERSION) test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch $(srcdir)/stamp-po" && \ echo timestamp > $(srcdir)/stamp-poT && \ mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. # The determination of whether the package xyz is a GNU one is based on the # heuristic whether some file in the top level directory mentions "GNU xyz". # If GNU 'find' is available, we avoid grepping through monster files. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed package_gnu="$(PACKAGE_GNU)"; \ test -n "$$package_gnu" || { \ if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \ else \ LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ fi; \ } | grep -v 'libtool:' >/dev/null; then \ package_gnu=yes; \ else \ package_gnu=no; \ fi; \ }; \ if test "$$package_gnu" = "yes"; then \ package_prefix='GNU '; \ else \ package_prefix=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_prefix}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot-header; then \ sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ rm -f $(DOMAIN).1po \ || exit 1; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(POFILESDEPS) @test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ 0.1[6-7] | 0.1[6-7].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: install-dvi install-ps install-pdf install-html: mostlyclean: rm -f remove-potcdate.sed rm -f $(srcdir)/stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(srcdir)/$(DOMAIN).pot $(srcdir)/stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS) @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: $(srcdir)/stamp-po $(DISTFILES) @dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ else \ case $(XGETTEXT) in \ :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the contents of the POTFILES.in file and the XGETTEXT_OPTIONS in the Makevars file." 1>&2;; \ esac; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ 0.1[6-7] | 0.1[6-7].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: # Recreate Makefile by invoking config.status. Explicitly invoke the shell, # because execution permission bits may not work on the current file system. # Use @SHELL@, which is the shell determined by autoconf for the use by its # scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && @SHELL@ ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/Makevars����������������������������������������������������������������������0000644�0000000�0000000�00000005712�14415562306�012745� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2023 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Usually the message domain is the same as the package name. # But here it has a '-gnulib' suffix. DOMAIN = a2ps-gnulib # These two variables depend on the location of this directory. subdir = po-gnulib top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = \ --keyword=_ --flag=_:1:pass-c-format \ --keyword=N_ --flag=N_:1:pass-c-format \ --keyword='proper_name:1,"This is a proper name. See the gettext manual, section Names."' \ --keyword='proper_name_utf8:1,"This is a proper name. See the gettext manual, section Names."' \ --flag=error:3:c-format --flag=error_at_line:5:c-format # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. gnulib is copyrighted by the FSF. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = bug-gnulib@gnu.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' # context. Possible values are "yes" and "no". Set this to yes if the # package uses functions taking also a message context, like pgettext(), or # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. USE_MSGCTXT = no ������������������������������������������������������a2ps-4.15.5/po-gnulib/POTFILES.in�������������������������������������������������������������������0000644�0000000�0000000�00000010756�14415562306�013032� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2023 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # List of files which contain translatable strings. lib/_Noreturn.h lib/alignof.h lib/alloca.in.h lib/arg-nonnull.h lib/argmatch.c lib/argmatch.h lib/assert.in.h lib/assure.h lib/at-func.c lib/at-func2.c lib/attribute.h lib/backup-find.c lib/backup-internal.h lib/backupfile.c lib/backupfile.h lib/basename-lgpl.c lib/basename-lgpl.h lib/basename.c lib/c++defs.h lib/c-ctype.c lib/c-ctype.h lib/c-strcase.h lib/c-strcasecmp.c lib/c-strcaseeq.h lib/c-strncasecmp.c lib/calloc.c lib/canonicalize-lgpl.c lib/cdefs.h lib/chdir-long.c lib/chdir-long.h lib/cloexec.c lib/cloexec.h lib/close.c lib/closedir.c lib/creat-safer.c lib/dirent-private.h lib/dirent.in.h lib/dirfd.c lib/dirname-lgpl.c lib/dirname.c lib/dirname.h lib/dup-safer-flag.c lib/dup-safer.c lib/dup.c lib/dup2.c lib/eloop-threshold.h lib/errno.in.h lib/error.c lib/error.in.h lib/exitfail.c lib/exitfail.h lib/fchdir.c lib/fcntl--.h lib/fcntl-safer.h lib/fcntl.c lib/fcntl.in.h lib/fd-hook.c lib/fd-hook.h lib/fd-safer-flag.c lib/fd-safer.c lib/fdopendir.c lib/filename.h lib/filenamecat-lgpl.c lib/filenamecat.c lib/filenamecat.h lib/free.c lib/fstat.c lib/fstatat.c lib/getcwd-lgpl.c lib/getdtablesize.c lib/gethostname.c lib/getprogname.c lib/getprogname.h lib/gettext.h lib/hard-locale.c lib/hard-locale.h lib/ialloc.c lib/ialloc.h lib/idx.h lib/intprops-internal.h lib/intprops.h lib/inttypes.in.h lib/isdir.c lib/isdir.h lib/lc-charset-dispatch.c lib/lc-charset-dispatch.h lib/libc-config.h lib/limits.in.h lib/localcharset.c lib/localcharset.h lib/locale.in.h lib/lstat.c lib/malloc.c lib/malloc/scratch_buffer.h lib/malloc/scratch_buffer_grow.c lib/malloc/scratch_buffer_grow_preserve.c lib/malloc/scratch_buffer_set_array_size.c lib/malloca.c lib/malloca.h lib/mbrtowc-impl-utf8.h lib/mbrtowc-impl.h lib/mbrtowc.c lib/mbsinit.c lib/mbtowc-lock.c lib/mbtowc-lock.h lib/memchr.c lib/memchr.valgrind lib/mempcpy.c lib/memrchr.c lib/minmax.h lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c lib/msvc-nothrow.h lib/obstack.c lib/obstack.h lib/open-safer.c lib/open.c lib/openat-die.c lib/openat-priv.h lib/openat-proc.c lib/openat-safer.c lib/openat.c lib/openat.h lib/opendir.c lib/opendirat.c lib/opendirat.h lib/pathmax.h lib/pipe-safer.c lib/pipe.c lib/quote.h lib/quotearg.c lib/quotearg.h lib/rawmemchr.c lib/rawmemchr.valgrind lib/readdir.c lib/readlink.c lib/readlinkat.c lib/realloc.c lib/reallocarray.c lib/rename.c lib/renameatu.c lib/renameatu.h lib/rmdir.c lib/same-inode.h lib/save-cwd.c lib/save-cwd.h lib/scratch_buffer.h lib/setlocale-lock.c lib/setlocale_null.c lib/setlocale_null.h lib/sig2str.c lib/sig2str.h lib/sockets.c lib/sockets.h lib/stat-time.c lib/stat-time.h lib/stat-w32.c lib/stat-w32.h lib/stat.c lib/stdarg.in.h lib/stdckdint.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio-read.c lib/stdio-write.c lib/stdio.in.h lib/stdlib.in.h lib/stpncpy.c lib/strchrnul.c lib/strchrnul.valgrind lib/strdup.c lib/streq.h lib/strerror-override.c lib/strerror-override.h lib/strerror.c lib/string.in.h lib/stripslash.c lib/strndup.c lib/strnlen.c lib/strverscmp.c lib/sys_socket.c lib/sys_socket.in.h lib/sys_stat.in.h lib/sys_types.in.h lib/sys_uio.in.h lib/time.in.h lib/unistd--.h lib/unistd-safer.h lib/unistd.c lib/unistd.in.h lib/verify.h lib/version-etc-fsf.c lib/version-etc.c lib/version-etc.h lib/w32sock.h lib/warn-on-use.h lib/wchar.in.h lib/wctype-h.c lib/wctype.in.h lib/windows-initguard.h lib/xalloc-die.c lib/xalloc-oversized.h lib/xalloc.h lib/xgetaname-impl.h lib/xgethostname.c lib/xgethostname.h lib/xmalloc.c lib/xstrndup.c lib/xstrndup.h lib/xstrtol.c lib/xstrtol.h lib/xstrtoul.c ������������������a2ps-4.15.5/po-gnulib/Rules-quot��������������������������������������������������������������������0000644�0000000�0000000�00000004533�14415562264�013257� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Special Makefile rules for English message catalogs with quotation marks. # # Copyright (C) 2001-2017 Free Software Foundation, Inc. # This file, Rules-quot, and its auxiliary files (listed under # DISTFILES.common.extra1) are free software; the Free Software Foundation # gives unlimited permission to use, copy, distribute, and modify them. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \ | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \ { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \ $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \ ;; \ *) \ $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \ ;; \ esac } 2>/dev/null > $$tmpdir/$$lang.new.po \ ; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header ���������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/a2ps-gnulib.pot���������������������������������������������������������������0000644�0000000�0000000�00000013604�14445132161�014112� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the GNU a2ps package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: GNU a2ps 4.15.5\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "" #: lib/error.c:193 msgid "Unknown system error" msgstr "" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "" #: lib/quotearg.c:355 msgid "'" msgstr "" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" ����������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/af.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000003632�14445132162�012336� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������L����������������������������;�����3���@��/���t��+�����'�����#�������������<�����X�����h�����j��-���������������|�������^�����`�� ���v�������:�����4�����0�����,���P��(���}��$����� ��������������������!�����-���>�����l������������������ ���������������������������� ������������������������������������ ��� ��������� �����������'�Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�Project-Id-Version: coreutils 5.2.1 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2004-03-17 11:58+0200 Last-Translator: Petri Jooste <rkwjpj@puk.ac.za> Language-Team: Afrikaans <i18n@af.org.za> Language: af MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. �'�Onbekende stelselfout�Geldige parameters is soos volg:�Geskryf deur %s en %s. �Geskryf deur %s, %s, %s, %s, %s, %s, %s %s, %s en ander. �Geskryf deur %s, %s, %s, %s, %s, %s, %s, %s en %s. �Geskryf deur %s, %s, %s, %s, %s, %s, %s en %s. �Geskryf deur %s, %s, %s, %s, %s, %s en %s. �Geskryf deur %s, %s, %s, %s, %s en %s. �Geskryf deur %s, %s, %s, %s en %s. �Geskryf deur %s, %s, %s en %s. �Geskryf deur %s, %s en %s. �Geskryf deur %s. �`�dubbelsinnige parameter %s vir %s�kon nie na aanvanklike werkgids terugkeer nie�ongeldige parameter %s vir %s�geheue uitgeput�������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/af.po�������������������������������������������������������������������������0000644�0000000�0000000�00000032406�14445132161�012172� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# coreutils-5.2.1.af.po. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # Petri Jooste <rkwjpj@puknet.puk.ac.za>, 2004. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.2.1\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2004-03-17 11:58+0200\n" "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n" "Language-Team: Afrikaans <i18n@af.org.za>\n" "Language: af\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "ongeldige parameter %s vir %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "dubbelsinnige parameter %s vir %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Geldige parameters is soos volg:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Onbekende stelselfout" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "geheue uitgeput" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "kon nie na aanvanklike werkgids terugkeer nie" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "kon nie na aanvanklike werkgids terugkeer nie" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" # TRANSLATORS: %s denotes an author name. # TRANSLATORS: %s denotes an author name. #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Geskryf deur %s.\n" # TRANSLATORS: Each %s denotes an author name. # TRANSLATORS: Each %s denotes an author name. #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Geskryf deur %s en %s.\n" # TRANSLATORS: Each %s denotes an author name. #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Geskryf deur %s, %s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Geskryf deur %s, %s, %s \n" "en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Geskryf deur %s, %s, %s, \n" "%s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Geskryf deur %s, %s, %s, \n" "%s, %s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Geskryf deur %s, %s, %s, \n" "%s, %s, %s en %s.\n" # TRANSLATORS: Each %s denotes an author name. # You can use line breaks, estimating that each author name occupies # ca. 16 screen columns and that a screen line has ca. 80 columns. #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Geskryf deur %s, %s, %s, \n" "%s, %s, %s, %s\n" "en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Geskryf deur %s, %s, %s, \n" "%s, %s, %s, %s,\n" "%s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Geskryf deur %s, %s, %s, \n" "%s, %s, %s, %s\n" "%s, %s en ander.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" "Rapporteer foute aan <%s>.\n" #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Rapporteer foute aan <%s>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Verpligte parameters vir langformaat opsies is ook verpligtend vir " #~ "kortformaat opsies.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Gebruik so: %s [OPSIE]...\n" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Probeer `%s --help' vir meer inligting.\n" #~ msgid "NAME" #~ msgstr "NAAM" #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "te veel parameters\n" #, fuzzy #~ msgid "program error" #~ msgstr "leesfout" #~ msgid "write error" #~ msgstr "skryffout" #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "kan nie %s oopmaak om te lees nie" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "kan nie %s oopmaak om te lees nie" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "fout met die les van %s" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "fout met die skryf na %s" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "fout met die les van %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "'open' het gefaal" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: seek het misluk" #~ msgid "regular empty file" #~ msgstr "gewone le ler" #~ msgid "regular file" #~ msgstr "gewone ler" #~ msgid "directory" #~ msgstr "lergids" #~ msgid "block special file" #~ msgstr "spesiale blokler" #~ msgid "character special file" #~ msgstr "spesiale karakterler" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "simboliese skakel" #~ msgid "socket" #~ msgstr "sok" #~ msgid "message queue" #~ msgstr "boodskapwagtou" #~ msgid "semaphore" #~ msgstr "semafoor" #~ msgid "shared memory object" #~ msgstr "gedeeldegeheue-objek" #, fuzzy #~ msgid "typed memory object" #~ msgstr "gedeeldegeheue-objek" #~ msgid "weird file" #~ msgstr "vreemde ler" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo-lers word nie ondersteun nie" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo-lers word nie ondersteun nie" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo-lers word nie ondersteun nie" #, fuzzy #~ msgid "System error" #~ msgstr "skryffout" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Onbekende stelselfout" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: opsie `%s' is dubbelsinnig\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: opsie `--%s' laat nie 'n parameter toe nie\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: opsie `%c%s' laat nie 'n parameter toe nie\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: opsie `%s' benodig 'n parameter\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: onbekende opsie `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: onbekende opsie `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: onwettige opsie -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: ongeldige opsie -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: opsie benodig 'n parameter -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: opsie `-W %s' is dubbelsinnig\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: opsie `-W %s' laat nie 'n parameter toe nie\n" #~ msgid "block size" #~ msgstr "blokgrootte" #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s bestaan maar is nie 'n lergids nie" #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "kan nie die eienaar en/of groep van %s verander nie" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "Kan nie lergids %s skep nie." #, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "kan nie chdir doen om na gids %s te gaan nie" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "kan nie toegangsregte van %s verander nie" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "magtigings vir %s kon nie behou word nie" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "kan nie die skakel %s skep nie" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: ongeldige relmatige uitdrukking: %s" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "ongeldige karakterklas `%s'" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "geheue uitgeput" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: ongeldige relmatige uitdrukking: %s" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "fout in soektog met relmatige uitdrukking" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: ongeldige relmatige uitdrukking: %s" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "fout in soektog met relmatige uitdrukking" #~ msgid "^[yY]" #~ msgstr "^[jJ]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "iconv-funksie onbruikbaar" #~ msgid "iconv function not available" #~ msgstr "iconv-funksie is nie beskikbaar nie" #~ msgid "character out of range" #~ msgstr "karakter is buite die grense" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan nie U+%04X omskakel na 'n plaaslike karakterstel nie" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan nie U+%04X omskakel na 'n plaaslike karakterstel nie: %s" #~ msgid "invalid user" #~ msgstr "ongeldige gebruiker" #~ msgid "invalid group" #~ msgstr "ongeldige groep " #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "kan nie die aantekengroep van 'n numeriese UID verkry nie" #~ msgid "string comparison failed" #~ msgstr "stringvergelyking het gefaal" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Stel LC_ALL='C' om die probleem te systap" #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Die stringe wat vergelyk is, is %s en %s." ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/be.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000002373�14445132162�012337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������l��� ��������������������������������������-�����/��-���L�����z����������������4����� �������������!��0���#��Y���T��,����������������������������� ������ ������������������'�Unknown system error�Valid arguments are:�Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�Project-Id-Version: coreutils 5.0.91 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2003-10-30 01:10+0200 Last-Translator: Ales Nyakhaychyk <nab@mail.by> Language-Team: Belarusian <i18n@mova.org> Language: be MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: KBabel 1.0.2 �'�Невядомая сыстэмная памылка�Рэчаісныя довады:�Стваральнік %s. �`�неадназначны довад %s для %s�немагчыма вярнуцца ў пачатковую працоўную тэчку�нерэчаісны довад %s для %s�памяць вычарпана����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/be.po�������������������������������������������������������������������������0000644�0000000�0000000�00000034621�14445132161�012173� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) 2002, 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the coreutils package. # Ales Nyakhaychyk <nab@mail.by>, 2002, 2003. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.0.91\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2003-10-30 01:10+0200\n" "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n" "Language-Team: Belarusian <i18n@mova.org>\n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: KBabel 1.0.2\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "нерэчаісны довад %s для %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "неадназначны довад %s для %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Рэчаісныя довады:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Невядомая сыстэмная памылка" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "памяць вычарпана" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "немагчыма вярнуцца ў пачатковую працоўную тэчку" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "немагчыма вярнуцца ў пачатковую працоўную тэчку" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "Стваральнік %s.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" "Паведамляйце пра памылкі на <%s>.\n" #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Паведамляйце пра памылкі на <%s>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Довады, абавязковыя для доўгіх выбараў, абавязковыя й для кароткіх.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Выкарыстаньне: %s [ВЫБАР]...\n" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Паспрабуйце \"%s --help\" для больш падрабязных зьвестак.\n" #~ msgid "NAME" #~ msgstr "НАЗВА" #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "зашмат довадаў\n" #, fuzzy #~ msgid "program error" #~ msgstr "памылка чытаньня" #~ msgid "write error" #~ msgstr "памылка запісу" #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "немагыма адчыніць %s для чытаньня" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "немагыма адчыніць %s для чытаньня" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "памылка чытаньня %s" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "памылка запісу %s" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "памылка чытаньня %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "памылка адкрыцьця" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: збой seek" #~ msgid "regular empty file" #~ msgstr "звычайны парожні файл" #~ msgid "regular file" #~ msgstr "звычайны файл" #~ msgid "directory" #~ msgstr "тэчка" #~ msgid "block special file" #~ msgstr "асаблівы кавалкавы файл" #~ msgid "character special file" #~ msgstr "асаблівы знакавы файл" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "знакавае лучыва" #~ msgid "socket" #~ msgstr "socket" #~ msgid "message queue" #~ msgstr "чарга паведамленьняў" #~ msgid "semaphore" #~ msgstr "сэмафор" #~ msgid "shared memory object" #~ msgstr "абьект з агульнай памяцьцю" #, fuzzy #~ msgid "typed memory object" #~ msgstr "абьект з агульнай памяцьцю" #~ msgid "weird file" #~ msgstr "лёсавы файл" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo файлы непадтрымліваюцца" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo файлы непадтрымліваюцца" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo файлы непадтрымліваюцца" #, fuzzy #~ msgid "System error" #~ msgstr "памылка запісу" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Невядомая сыстэмная памылка" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: выбар `%s' неадназначны\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: выбар `--%s' не дазваляе довад\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: выбар `%c%s' не дазваляе довад\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: выбар `%s' патрабуе довад\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: нераспазнаны выбар `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: нераспазнаны выбар `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: недапушчальны выраб -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: нерэчаісны выбар -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: выбар патрабуе довад -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: выбар `-W %s' неадназначыны\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: выбар `-W %s' не дазваляе довад\n" #~ msgid "block size" #~ msgstr "памер кавалку" #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s існуе, але гэта ня тэчка" #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "немагчыма зьмяніць уладальніка й/ці групу %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "немагчыма стварыць тэчку %s" #, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "немагчыма перайсьці да тэчкі %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "немагчыма зьмяніць правы %s" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "збой пры захаваньні правоў для %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "немагчыма стварыць лучыва %s" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: нерэчаісны звычайны выраз: %s" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "нерэчаісны знак %s у радку рэжыму %s" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "памяць вычарпана" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: нерэчаісны звычайны выраз: %s" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "памылка ў пошуку звычайнага выразу" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: нерэчаісны звычайны выраз: %s" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "памылка ў пошуку звычайнага выразу" #~ msgid "^[yY]" #~ msgstr "^[тТ]" #~ msgid "^[nN]" #~ msgstr "^[нН]" #~ msgid "iconv function not usable" #~ msgstr "функцыя iconv непрыгодна для выкарыстаньня" #~ msgid "iconv function not available" #~ msgstr "недаступна функцыя iconv" #~ msgid "character out of range" #~ msgstr "знак па за дапушчальнымі межамі" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "немагчыма пераўтварыць U+%04X у мясцовы набор знакаў" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "немагчыма пераўтварыць U+%04X у мясцовы набор знакаў: %s" #~ msgid "invalid user" #~ msgstr "нерэчаісны карыстальнік" #~ msgid "invalid group" #~ msgstr "нерэчаісная група" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "немагчыма атрымаць уліковую групу лічбавага UID" #~ msgid "string comparison failed" #~ msgstr "памылка параўнаньня радку" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Усталюйце LC_ALL='C' каб працаваць без пытаньняў." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Радкі былі параўнаны тут %s і тут %s." ���������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/bg.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000007541�14445132162�012343� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*���������,���������������=�����8�������M ��"���k ��D��� ����� ��2���} ��-��� ��"��� ��D��� ��>���F ��:��� ��6��� ��2��� ��.���* ��*���Y ��&��� ����� ����� ��W��� ��j���$��R�����$�����Y�������������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2020-03-10 09:45+0100 Last-Translator: Alexander Shopov <ash@kambanaria.org> Language-Team: Bulgarian <dict@ludost.net> Language: bg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Bugs: Report translation errors to the Language-Team address. �Уеб страница на „%s“: <%s> �“�©�Обща помощ за програмите на GNU: <%s> �Лиценз — Общ публичен лиценз на GNU (GNU GPL), както е публикуван от Фондацията за свободен софтуер — версия 3 на лиценза или (по ваше решение) по-късна версия. <%s> Тази програма е свободен софтуер. Можете да я разпространявате и/или променяте. Тя се разпространява БЕЗ НИКАКВИ ГАРАНЦИИ доколкото е позволено от закона. �Пакетирано от %s �Пакетирано от %s (%s) �Докладвайте грешки в „%s“ на адрес: %s �Докладвайте грешки в програмата на адрес: %s Докладвайте грешки в превода на адрес: <dict@ludost.net> �Неизвестна системна грешка�Възможните аргументи са:�Създадено от %s и %s. �Създадено от %s, %s, %s, %s, %s, %s, %s, %s, %s и др. �Създадено от %s, %s, %s, %s, %s, %s, %s, %s и %s. �Създадено от %s, %s, %s, %s, %s, %s, %s и %s. �Създадено от %s, %s, %s, %s, %s, %s и %s. �Създадено от %s, %s, %s, %s, %s и %s. �Създадено от %s, %s, %s, %s и %s. �Създадено от %s, %s, %s и %s. �Създадено от %s, %s и %s. �Създадено от %s. �„�аргументът „%s“ на опцията „%s“ не е еднозначен�не може да се върне към първоначалната работна директория�аргументът „%s“ на опцията „%s“ е неправилен�паметта е изчерпана�текущата работна директория не може да се запише����������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/bg.po�������������������������������������������������������������������������0000644�0000000�0000000�00000077626�14445132161�012211� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Bulgarian translation of GNU gnulib po-file. # Copyright (C) 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Alexander Shopov <ash@kambanaria.org>, 2019. msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2020-03-10 09:45+0100\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Language-Team: Bulgarian <dict@ludost.net>\n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "аргументът „%s“ на опцията „%s“ е неправилен" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "аргументът „%s“ на опцията „%s“ не е еднозначен" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Възможните аргументи са:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Неизвестна системна грешка" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "паметта е изчерпана" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "текущата работна директория не може да се запише" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "не може да се върне към първоначалната работна директория" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "„" #: lib/quotearg.c:355 msgid "'" msgstr "“" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Пакетирано от %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Пакетирано от %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Лиценз — Общ публичен лиценз на GNU (GNU GPL), както е публикуван от " "Фондацията\n" "за свободен софтуер — версия 3 на лиценза или (по ваше решение) по-късна " "версия.\n" "<%s>\n" "Тази програма е свободен софтуер. Можете да я разпространявате и/или " "променяте.\n" "Тя се разпространява БЕЗ НИКАКВИ ГАРАНЦИИ доколкото е позволено от закона.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Създадено от %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Създадено от %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Създадено от %s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Създадено от %s, %s, %s\n" "и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Създадено от %s, %s, %s,\n" "%s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Създадено от %s, %s, %s,\n" "%s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Създадено от %s, %s, %s,\n" "%s, %s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Създадено от %s, %s, %s,\n" "%s, %s, %s, %s\n" "и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Създадено от %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Създадено от %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s и др.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" "Докладвайте грешки в програмата на адрес: %s\n" "Докладвайте грешки в превода на адрес: <dict@ludost.net>\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Докладвайте грешки в „%s“ на адрес: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Уеб страница на „%s“: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Обща помощ за програмите на GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "„ARGP_HELP_FMT“: стойността %s е по-малка или равна на %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: параметърът „ARGP_HELP_FMT“ изисква стойност" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: непознат параметър „ARGP_HELP_FMT“" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Грешки в „ARGP_HELP_FMT“: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Аргументите, задължителните или незадължителни за дългите опции, са " #~ "съответно задължителни или незадължителни и за кратките опции." #~ msgid "Usage:" #~ msgstr "Използване:" #~ msgid " or: " #~ msgstr " или: " #~ msgid " [OPTION...]" #~ msgstr " [ОПЦИЯ…]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "За повече информация използвайте „%s --help“ или „%s --usage“.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "Съобщавайте за програмни грешки на %s.\n" #~ "За грешки в българския превод на <dict@fsa-bg.org>.\n" #~ msgid "give this help list" #~ msgstr "извеждане на тази справка" #~ msgid "give a short usage message" #~ msgstr "извеждане на кратко съобщение за използването" #~ msgid "NAME" #~ msgstr "ИМЕ" #~ msgid "set the program name" #~ msgstr "задаване на името на програмата" #~ msgid "SECS" #~ msgstr "СЕКУНДИ" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "спиране за толкова СЕКУНДИ (стандартно е 3600)" #~ msgid "print program version" #~ msgstr "извеждане на версията на програмата" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Неизвестна версия!" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Твърде много аргументи\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Опцията би трябвало да е била разпозната!" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u побитови заделяния, освободени са %u (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u побитови задавания, кеширани са %u (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u побитови изчиствания, кеширани са %u (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u побитови проби, кеширани са %u (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u побитови извеждания\n" #~ msgid "count log histogram\n" #~ msgstr "логаритмична хистограма по брой\n" #~ msgid "size log histogram\n" #~ msgstr "логаритмична хистограма по размер\n" #~ msgid "density histogram\n" #~ msgstr "хистограма по плътност\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Побитова статистика:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Натрупани изпълнения = %u\n" #~ msgid "cannot read stats file" #~ msgstr "файлът със статистиките не може да се прочете" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "неправилен размер на файла със статистиките\n" #~ msgid "cannot write stats file" #~ msgstr "файлът със статистиките не може да се запише" #~ msgid "cannot open stats file for writing" #~ msgstr "файлът със статистиките не може да се отвори за запис" #~ msgid "program error" #~ msgstr "програмна грешка" #~ msgid "stack overflow" #~ msgstr "препълване на стека" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "липсва временна директория, пробвайте да укажете такава в променливата " #~ "„TMPDIR“" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "не може да се създаде временна директория по шаблона „%s“" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "временният файл „%s“ не може да се изтрие" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "временната директория „%s“ не може да се изтрие" #~ msgid "error closing file" #~ msgstr "грешка при затваряне на файл" #~ msgid "write error" #~ msgstr "грешка при запис" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "запазване на правата за „%s“" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "„%s“ не може да се отвори за четене" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "резервният файл „%s“ не може да се отвори за запис" #, c-format #~ msgid "error reading %s" #~ msgstr "грешка при четене на „%s“" #, c-format #~ msgid "error writing %s" #~ msgstr "грешка при записа на „%s“" #, c-format #~ msgid "error after reading %s" #~ msgstr "грешка след четене на „%s“" #~ msgid "fdopen() failed" #~ msgstr "неуспешно отваряне с „fdopen()“" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "Липсва компилатор за C#, инсталирайте „mono“" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "Липсва виртуална машина за C#, инсталирайте „mono“" #~ msgid "unbalanced [" #~ msgstr "„[“ без еш" #~ msgid "invalid character class" #~ msgstr "неправилен клас знаци" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "клас знаци се указва чрез „[[:ИМЕ:]]“, а не „[:ИМЕ:]“" #~ msgid "unfinished \\ escape" #~ msgstr "незавършена екранираща последователност чрез „\\“" #~ msgid "invalid content of \\{\\}" #~ msgstr "неправилно съдържание в „\\{\\}“" #~ msgid "regular expression too big" #~ msgstr "прекалено голям регулярен израз" #~ msgid "unbalanced (" #~ msgstr "„(“ без еш" #~ msgid "no syntax specified" #~ msgstr "не е зададен синтаксис" #~ msgid "unbalanced )" #~ msgstr "„)“ без еш" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "дъщерният процес „%s“ завърши неуспешно" #~ msgid "regular empty file" #~ msgstr "празен, обикновен файл" #~ msgid "regular file" #~ msgstr "обикновен файл" #~ msgid "directory" #~ msgstr "директория" #~ msgid "symbolic link" #~ msgstr "символна връзка" #~ msgid "message queue" #~ msgstr "опашка за съобщения" #~ msgid "semaphore" #~ msgstr "семафор" #~ msgid "shared memory object" #~ msgstr "споделен обект в паметта" #~ msgid "typed memory object" #~ msgstr "типов обект в паметта" #~ msgid "block special file" #~ msgstr "блоков специален файл" #~ msgid "character special file" #~ msgstr "знаков специален сайт" #~ msgid "contiguous data" #~ msgstr "последователни данни" #~ msgid "fifo" #~ msgstr "програмен канал" #~ msgid "door" #~ msgstr "порта" #~ msgid "multiplexed block special file" #~ msgstr "мултиплексиран блоков специален файл" #~ msgid "multiplexed character special file" #~ msgstr "мултиплексиран знаков специален файл" #~ msgid "multiplexed file" #~ msgstr "мултиплексиран файл" #~ msgid "named file" #~ msgstr "именован файл" #~ msgid "network special file" #~ msgstr "мрежов специален файл" #~ msgid "migrated file with data" #~ msgstr "мигриран файл с данни" #~ msgid "migrated file without data" #~ msgstr "мигриран файл без данни" #~ msgid "port" #~ msgstr "порт" #~ msgid "socket" #~ msgstr "гнездо" #~ msgid "whiteout" #~ msgstr "припокриващо изтриване" #~ msgid "weird file" #~ msgstr "странен файл" #~ msgid "Address family for hostname not supported" #~ msgstr "Този вид адреси за името на хоста не се поддържат" #~ msgid "Temporary failure in name resolution" #~ msgstr "Временен проблем при намиране на IP-адреса на хост" #~ msgid "Bad value for ai_flags" #~ msgstr "Неправилна стойност за „ai_flags“" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Окончателен неуспех при намиране на IP-адреса на хост" #~ msgid "ai_family not supported" #~ msgstr "посочването на вид адреси („ai_family“) не се поддържа" #~ msgid "Memory allocation failure" #~ msgstr "Неуспешно заделяне на памет" #~ msgid "No address associated with hostname" #~ msgstr "Няма IP-адрес с посоченото име на хост" #~ msgid "Name or service not known" #~ msgstr "Името или услугата са непознати" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "" #~ "Името на услугата не се поддържа за използвания вид гнездо („ai_socktype“)" #~ msgid "ai_socktype not supported" #~ msgstr "посочването на вид гнездо („ai_socktype“) не се поддържа" #~ msgid "System error" #~ msgstr "Системна грешка" #~ msgid "Argument buffer too small" #~ msgstr "Буферът за аргументите е твърде малък" #~ msgid "Processing request in progress" #~ msgstr "Заявката е в процес на изпълнение" #~ msgid "Request canceled" #~ msgstr "Заявката е отменена" #~ msgid "Request not canceled" #~ msgstr "Заявката не е отменена" #~ msgid "All requests done" #~ msgstr "Изпълнени са всички заявки" #~ msgid "Interrupted by a signal" #~ msgstr "Прекъснат със сигнал" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Неправилно кодиран низ на аргумент" #~ msgid "Unknown error" #~ msgstr "Неизвестна грешка" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: опцията „%s%s“ не е еднозначна\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: опцията „%s%s“ не е еднозначна. Възможности:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: непозната опция „%s%s“\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: опцията „%s%s“ се използва без аргументи\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: опцията „%s%s“ изисква аргумент\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: неправилна опция — „%c“\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: опцията изисква аргумент — „%c“\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "" #~ "неправилен аргумент „source_version“ за версията на кода към командата " #~ "„compile_java_class“" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "" #~ "неправилен аргумент „target_version“ за версията на целта към командата " #~ "„compile_java_class“" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "„%s“ не може да се създаде" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "грешка при записа на „%s“" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Липсва компилатор за Java, инсталирайте „gcj“ или задайте такъв с " #~ "променливата „JAVAC“" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Липсва виртуална машина за Java, инсталирайте „gcj“ или задайте такава с " #~ "променливата „JAVA“" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s: вх./изх. грешка в дъщерен процес" #, c-format #~ msgid "cannot stat %s" #~ msgstr "не може да се получи информация със „stat“ за „%s“" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "правата за достъп до „%s“ не може да се сменят" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "директорията „%s“ не може да се създаде" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "„/dev/zero“ не може да се отвори за запис" #~ msgid "creation of reading thread failed" #~ msgstr "неуспешно създаване на четяща нишка" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "не може да се зададе вх./изх. без блокиране за подпроцеса „%s“" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "неуспешна комуникация с дъщерния процес „%s“" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "неуспешен запис към дъщерния процес „%s“" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "неуспешно четене от дъщерния процес „%s“" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "подпроцесът „%s“ завърши с код за състояние %d" #~ msgid "creation of threads failed" #~ msgstr "неуспешно създаване н нишки" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "подпроцесът на „%s“ завърши с код за състояние %d\"" #~ msgid "Success" #~ msgstr "Успех" #~ msgid "No match" #~ msgstr "Няма съвпадения" #~ msgid "Invalid regular expression" #~ msgstr "Неправилен регулярен израз" #~ msgid "Invalid collation character" #~ msgstr "Неправилен знак за подредба" #~ msgid "Invalid character class name" #~ msgstr "Неправилно име на клас знаци" #~ msgid "Trailing backslash" #~ msgstr "Самотна „\\“ накрая" #~ msgid "Invalid back reference" #~ msgstr "Неправилна препратка към съвпадение" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "„[“, „[^“, „[:“, „[.“ или „[=“ без еш" #~ msgid "Unmatched ( or \\(" #~ msgstr "„(“ или „\\(“ без еш" #~ msgid "Unmatched \\{" #~ msgstr "„\\{“ без еш" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Неправилно съдържание в „\\{\\}“" #~ msgid "Invalid range end" #~ msgstr "Неправилен край на диапазон" #~ msgid "Memory exhausted" #~ msgstr "Паметта свърши" #~ msgid "Invalid preceding regular expression" #~ msgstr "Предхождащият регулярен израз е неправилен" #~ msgid "Premature end of regular expression" #~ msgstr "Ранен край на регулярен израз" #~ msgid "Regular expression too big" #~ msgstr "Регулярният израз е прекалено голям" #~ msgid "Unmatched ) or \\)" #~ msgstr "„)“ или „\\)“ без еш" #~ msgid "No previous regular expression" #~ msgstr "Няма предхождащ регулярен израз" # RECHECK #~ msgid "^[yY]" #~ msgstr "^[yYдДщЩ]" # RECHECK #~ msgid "^[nN]" #~ msgstr "^[nNнНхХ]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "задаване на права на „%s“" #~ msgid "Hangup" #~ msgstr "Прекъсване на връзката" #~ msgid "Interrupt" #~ msgstr "Прекъсване" #~ msgid "Quit" #~ msgstr "Спиране" #~ msgid "Illegal instruction" #~ msgstr "Неправилна инструкция" #~ msgid "Trace/breakpoint trap" #~ msgstr "Прекъсване за трасиране" #~ msgid "Aborted" #~ msgstr "Преустановяване" #~ msgid "Floating point exception" #~ msgstr "Изключение от плаваща запетая" #~ msgid "Killed" #~ msgstr "Убит" #~ msgid "Bus error" #~ msgstr "Грешка в шината" #~ msgid "Segmentation fault" #~ msgstr "Грешка в разделянето" #~ msgid "Broken pipe" #~ msgstr "Прекъснат програмен канал" #~ msgid "Alarm clock" #~ msgstr "Аларма" #~ msgid "Terminated" #~ msgstr "Прекратен" #~ msgid "Urgent I/O condition" #~ msgstr "Спешно вх./изх. състояние" #~ msgid "Stopped (signal)" #~ msgstr "Спрян (сигнал)" #~ msgid "Stopped" #~ msgstr "Спрян" #~ msgid "Continued" #~ msgstr "Продължен" #~ msgid "Child exited" #~ msgstr "Преустановен дъщерен процес" #~ msgid "Stopped (tty input)" #~ msgstr "Спиране (вход от tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Спиране (изход към tty)" #~ msgid "I/O possible" #~ msgstr "Възможен вх./изх." #~ msgid "CPU time limit exceeded" #~ msgstr "Надвишаване на процесорното време" #~ msgid "File size limit exceeded" #~ msgstr "Надвишаване на размера на файл" #~ msgid "Virtual timer expired" #~ msgstr "Изтекъл виртуален таймер" #~ msgid "Profiling timer expired" #~ msgstr "Изтекъл профилиращ таймер" #~ msgid "Window changed" #~ msgstr "Преоразмерен прозорец" #~ msgid "User defined signal 1" #~ msgstr "Потребителски сигнал 1" #~ msgid "User defined signal 2" #~ msgstr "Потребителски сигнал 2" #~ msgid "EMT trap" #~ msgstr "Емулирана инструкция" #~ msgid "Bad system call" #~ msgstr "Грешно системно извикване" #~ msgid "Stack fault" #~ msgstr "Грешка в разделянето" #~ msgid "Information request" #~ msgstr "Заявка за информация" #~ msgid "Power failure" #~ msgstr "Проблем в захранването" #~ msgid "Resource lost" #~ msgstr "Загубен ресурс" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "грешка при запис във вече затворен програмен канал или гнездо" #~ msgid "cannot create pipe" #~ msgstr "не може да се създаде програмен канал" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Сигнал за реално време %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Непознат сигнал %d" #~ msgid "Execution times (seconds)" #~ msgstr "Време за изпълнение [секунди]" #~ msgid "CPU user" #~ msgstr "потребителско време" #~ msgid "CPU system" #~ msgstr "системно време" #~ msgid "wall clock" #~ msgstr "общо време" #~ msgid "iconv function not usable" #~ msgstr "функцията „iconv“ е неизползваема" #~ msgid "iconv function not available" #~ msgstr "функцията „iconv“ е недостъпна" #~ msgid "character out of range" #~ msgstr "знак извън диапазона" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "„U+%04X“ не може да се конвертира в локалното кодиране" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "„U+%04X“ не може да се конвертира в локалното кодиране: %s" #~ msgid "invalid user" #~ msgstr "несъществуващ потребител" #~ msgid "invalid group" #~ msgstr "несъществуваща група" #~ msgid "invalid spec" #~ msgstr "неправилна спецификация" #~ msgid "unable to display error message" #~ msgstr "съобщението за грешка не може да се изведе" #~ msgid "_open_osfhandle failed" #~ msgstr "неуспешно изпълнение на „_open_osfhandle“" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "" #~ "файловият дескриптор %d не може да се възстанови: неуспешно изпълнение на " #~ "функцията „dup2“" #, c-format #~ msgid "%s subprocess" #~ msgstr "дъщерен процес „%s“" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "дъщерният процес „%s“ получи фатален сигнал %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "неуспешно задаване на вид на файла като текстов/двоичен" #~ msgid "stdin" #~ msgstr "стандартен вход" #~ msgid "stdout" #~ msgstr "стандартен изход" #~ msgid "stderr" #~ msgstr "стандартна грешка" #~ msgid "unknown stream" #~ msgstr "непознат поток" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "файлът „%s“ не може да се отвори наново с режим „%s“" #~ msgid "string comparison failed" #~ msgstr "неуспешно сравнение на низове" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Използвайте „LC_ALL='C'“, за да заобиколите този проблем." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Сравняваните низове бяха %s и %s." #~ msgid "cannot perform formatted output" #~ msgstr "невъзможно форматиране на изхода" #~ msgid "standard file descriptors" #~ msgstr "стандартни файлови дескриптори" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "неправилен аргумент „%3$s“ за опцията „%1$s%2$s“" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "неправилен суфикс в аргумента „%3$s“ за опцията „%1$s%2$s“" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "прекалено дълъг аргумент „%3$s“ за опцията „%1$s%2$s“" ����������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/boldquot.sed������������������������������������������������������������������0000644�0000000�0000000�00000000331�14415562264�013572� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ca.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000003701�14445132162�012330� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������L����������������������������;�����3���@��/���t��+�����'�����#�������������<�����X�����h�����j��-����������������������{��-���~������������:�����0�����-���I��(���w��$����� �����������������������,�����/��4���O��"��������������������� ���������������������������� ������������������������������������ ��� ��������� �����������'�Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�Project-Id-Version: mailutils 0.6.90 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2005-05-21 04:10+0200 Last-Translator: Jordi Mallach <jordi@gnu.org> Language-Team: Catalan <ca@dodds.net> Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=n!=1; �»�S'ha produït un error desconegut del sistema�Els arguments vàlids són:�Escrit per %s i %s. �Escrit per %s, %s, %s, %s, %s, %s, %s, %s, %s i d'altres. �Escrit per %s, %s, %s, %s, %s, %s, %s, %s i %s. �Escrit per %s, %s, %s, %s, %s, %s, %s, i %s. �Escrit per %s, %s, %s, %s, %s, %s i %s. �Escrit per %s, %s, %s, %s, %s i %s. �Escrit per %s, %s, %s, %s i %s. �Escrit per %s, %s, %s i %s. �Escrit per %s, %s i %s. �Escrit per %s. �«�l'argument %s és ambigu per %s�no s'ha pogut tornar al directori inicial de treball�l'argument %s no és vàlid per %s�la memòria s'ha exhaurit����������������������������������������������������������������a2ps-4.15.5/po-gnulib/ca.po�������������������������������������������������������������������������0000644�0000000�0000000�00000037743�14445132161�012200� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# GNU Mailutils Catalan translation. # Copyright © 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the mailutils package. # Jordi Mallach <jordi@gnu.org>, 2002, 2003, 2004, 2005. # msgid "" msgstr "" "Project-Id-Version: mailutils 0.6.90\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2005-05-21 04:10+0200\n" "Last-Translator: Jordi Mallach <jordi@gnu.org>\n" "Language-Team: Catalan <ca@dodds.net>\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=n!=1;\n" # Usa quote() en els 2 args. ivb #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "l'argument %s no és vàlid per %s" # Usa quote() en els 2 args. ivb #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "l'argument %s és ambigu per %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Els arguments vàlids són:" #: lib/error.c:193 msgid "Unknown system error" msgstr "S'ha produït un error desconegut del sistema" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "la memòria s'ha exhaurit" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "openat: no s'ha pogut registrar el directori de treball actual" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "no s'ha pogut tornar al directori inicial de treball" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "«" #: lib/quotearg.c:355 msgid "'" msgstr "»" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Escrit per %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Escrit per %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Escrit per %s, %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrit per %s, %s, %s\n" "i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrit per %s, %s, %s,\n" "%s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Escrit per %s, %s, %s,\n" "%s, %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Escrit per %s, %s, %s,\n" "%s, %s, %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrit per %s, %s, %s,\n" "%s, %s, %s, %s,\n" "i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrit per %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Escrit per %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s i d'altres.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "Report bugs to %s.\n" msgid "Report bugs to: %s\n" msgstr "Informeu dels errors a %s.\n" #: lib/version-etc.c:251 #, fuzzy, c-format #| msgid "Report bugs to %s.\n" msgid "Report %s bugs to: %s\n" msgstr "Informeu dels errors a %s.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: El paràmetre ARGP_HELP_FMT requereix un valor" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: El paràmetre d'ARGP_HELP_FMT és desconegut" # pfft, escombraries... jm #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Hi ha escombraries en ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Els arguments necessaris o opcionals per a les opcions llargues també són " #~ "necessaris o opcionals per a qualsevol opció curta corresponent." #~ msgid "Usage:" #~ msgstr "Forma d'ús:" #~ msgid " or: " #~ msgstr " ó: " #~ msgid " [OPTION...]" #~ msgstr " [OPCIÓ...]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Proveu «%s --help» o «%s --usage» per a obtindre més informació.\n" #~ msgid "Give this help list" #~ msgstr "Mostra aquesta llista d'ajuda" #~ msgid "Give a short usage message" #~ msgstr "Mostra un curt missatge sobre l'ús" #~ msgid "NAME" #~ msgstr "NOM" #~ msgid "Set the program name" #~ msgstr "Estableix el nom del programa" #, fuzzy #~ msgid "SECS" #~ msgstr "SEGONS" #~ msgid "Hang for SECS seconds (default 3600)" #~ msgstr "Penja durant SEGS segons (per defecte 3600)" #~ msgid "Print program version" #~ msgstr "Mostra la versió del programa" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ERROR DEL PROGRAMA) Cap versió coneguda!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Massa arguments\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ERROR DEL PROGRAMA) L'opció s'hauria d'haver reconegut!?" #, fuzzy #~ msgid "program error" #~ msgstr "error de lectura" # "underflow", bonico el paraulo.. jm #, fuzzy #~ msgid "stack overflow" #~ msgstr "pila buida" #~ msgid "write error" #~ msgstr "error d'escriptura" # Usa quote(). ivb #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "no s'ha pogut obrir %s per llegir" # Usa quote(). ivb #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "no s'ha pogut obrir %s per a escriure" # uniq no usa quote(). ivb #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "error en llegir %s" # uniq no usa quote(). ivb #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "error en escriure %s" # uniq no usa quote(). ivb #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "error en llegir %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "no s'ha pogut obrir" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: ha fallat el desplaçament" #~ msgid "regular empty file" #~ msgstr "fitxer ordinari buit" #~ msgid "regular file" #~ msgstr "fitxer ordinari" #~ msgid "directory" #~ msgstr "directori" #~ msgid "block special file" #~ msgstr "fitxer especial de blocs" #~ msgid "character special file" #~ msgstr "fitxer especial de caràcters" #~ msgid "fifo" #~ msgstr "cua FIFO" #~ msgid "symbolic link" #~ msgstr "enllaç simbòlic" #~ msgid "socket" #~ msgstr "connector" #~ msgid "message queue" #~ msgstr "cua de missatges" #~ msgid "semaphore" #~ msgstr "semàfor" #~ msgid "shared memory object" #~ msgstr "objecte de memòria compartida" #~ msgid "typed memory object" #~ msgstr "objecte de memòria amb tipus" #~ msgid "weird file" #~ msgstr "fitxer estrany" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "els fitxers FIFO no són suportats" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "els fitxers FIFO no són suportats" #, fuzzy #~ msgid "Memory allocation failure" #~ msgstr "L'operació ha fallat" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "els fitxers FIFO no són suportats" #, fuzzy #~ msgid "System error" #~ msgstr "error d'escriptura" #, fuzzy #~ msgid "Request not canceled" #~ msgstr "No es troba l'element sol·licitat" #, fuzzy #~ msgid "Unknown error" #~ msgstr "S'ha produït un error desconegut del sistema" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: l'opció «%s» és ambigua\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: l'opció «--%s» no accepta arguments\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: l'opció «%c%s» no accepta arguments\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: l'opció «%s» requereix un argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: l'opció «--%s» no es reconeix\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: l'opció «%c%s» no es reconeix\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: l'opció és il·legal -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: l'opció no és vàlida -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: l'opció requereix un argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: l'opció «-W %s» és ambigua\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: l'opció «-W %s» no accepta arguments\n" # FIXME: xmalloc.h: _STRTOL_ERROR lacks i18n. ivb # Açò quedarà com «invalid mida de bloc `MIDA'» mentre no ho facen. ivb #~ msgid "block size" #~ msgstr "mida de bloc" # Els 4 usen quote(). ivb #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s existeix però no és un directori" # Els 3 usen quote(). ivb #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "no s'ha pogut canviar el propietari o grup de %s" # Els 3 usen quote(). ivb #, c-format #~ msgid "cannot create directory %s" #~ msgstr "no s'ha pogut crear el directori %s" # Usa quote(). ivb #, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "no s'ha pogut canviar al directori %s" # Els 2 usen quote(). ivb #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "no s'han pogut canviar els permisos de %s" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s: no s'ha pogut obrir per a escriure" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "No es pot crear la llista" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: l'expressió regular no és vàlida: %s" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "la classe de caràcters «%s» no és vàlida" #, fuzzy #~ msgid "Invalid back reference" #~ msgstr "El número no és vàlid" #, fuzzy #~ msgid "Invalid content of \\{\\}" #~ msgstr "L'opció no és vàlida -- %s" #, fuzzy #~ msgid "Invalid range end" #~ msgstr "el rang de pàgines no és vàlid: «%s»" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "la memòria s'ha exhaurit" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: l'expressió regular no és vàlida: %s" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "error en la recerca de l'expressió regular" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: l'expressió regular no és vàlida: %s" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "error en la recerca de l'expressió regular" #~ msgid "^[yY]" #~ msgstr "^[sS]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "la funció iconv() no és útil" #~ msgid "iconv function not available" #~ msgstr "la funció iconv() no es troba disponible" #~ msgid "character out of range" #~ msgstr "el caràcter es troba fora del rang" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "no s'ha pogut convertir U+%04X al joc de caràcters local" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "no s'ha pogut convertir U+%04X al joc de caràcters local: %s" #~ msgid "invalid user" #~ msgstr "l'usuari no és vàlid" #~ msgid "invalid group" #~ msgstr "el grup no és vàlid" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "no s'ha pogut obtenir el grup d'entrada d'un UID numèric" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Aquest és programari lliure; podeu redistribuir-lo i/o modificar-lo sota " #~ "els\n" #~ "termes de la Llicència Pública General GNU tal i com ha estat publicada " #~ "per la\n" #~ "Free Software Foundation; bé sota la versió 2 de la Llicència o bé (si " #~ "ho\n" #~ "preferiu) sota qualsevol versió posterior.\n" #~ "\n" #~ msgid "string comparison failed" #~ msgstr "ha fallat la comparació de cadenes" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Establiu la variable LC_ALL a «C» per evitar el problema." # Usa quote() en les 2. ivb #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Les cadenes comparades eren %s i %s." �����������������������������a2ps-4.15.5/po-gnulib/cs.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004542�14445132162�012356� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������@�����A�����U�����W�����[�����k����������������������;�����3�����/���H��+���x��'�����#������������������,�����<�����>��-���[������������*���������%��������������� ����������!��� �����+�����D�����\��6���n��-�����)�����%�����!���#�����E�����c�����}�� ����������%�����1������������� ��-���4 ����������������������������������������� ����������������� ��������������������������������� ������������������������� ��� �������%s home page: <%s> �'�(C)�Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2011-12-04 08:50+0100 Last-Translator: Marek Černocký <marek@manet.cz> Language-Team: Czech <translation-team-cs@lists.sourceforge.net> Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; �Domovská stránka projektu %s: <%s> �“�©�Zabalil %s �Zabalil %s (%s) �Chyby balíčku %s hlaste na: %s �Neznámá chyba systému�Platné argumenty jsou:�Napsali %s a %s. �Napsali %s, %s, %s, %s, %s, %s, %s, %s, %s a další. �Napsali %s, %s, %s, %s, %s, %s, %s, %s a %s. �Napsali %s, %s, %s, %s, %s, %s, %s a %s. �Napsali %s, %s, %s, %s, %s, %s a %s. �Napsali %s, %s, %s, %s, %s a %s. �Napsali %s, %s, %s, %s a %s. �Napsali %s, %s, %s a %s. �Napsali %s, %s a %s. �Napsal %s. �„�argument %s je pro %s nejednoznačný�selhalo vrácení počáteční pracovní složky�argument %s je pro %s neplatný�paměť byla vyčerpána�nelze zaznamenat aktuální pracovní složku���������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/cs.po�������������������������������������������������������������������������0000644�0000000�0000000�00000057353�14445132161�012221� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Czech translations for GNU textutils # This file is distributed under the same license as the gnulib package. # Copyright (C) 1996 Free Software Foundation, Inc. # # Vladimir Michl <Vladimir.Michl@seznam.cz>, 1996. # Marek Černocký <marek@manet.cz>, 2011. # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2011-12-04 08:50+0100\n" "Last-Translator: Marek Černocký <marek@manet.cz>\n" "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argument %s je pro %s neplatný" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argument %s je pro %s nejednoznačný" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Platné argumenty jsou:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Neznámá chyba systému" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "paměť byla vyčerpána" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "nelze zaznamenat aktuální pracovní složku" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "selhalo vrácení počáteční pracovní složky" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "„" #: lib/quotearg.c:355 msgid "'" msgstr "“" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Zabalil %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Zabalil %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format #| msgid "" #| "\n" #| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #| "html>.\n" #| "This is free software: you are free to change and redistribute it.\n" #| "There is NO WARRANTY, to the extent permitted by law.\n" #| "\n" msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl." "html>.\n" "Jde o svobodný software: můžete jej volně měnit a šířit.\n" "Nejsou poskytovány ŽÁDNÉ ZÁRUKY, mimo těch daných zákonem.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Napsali %s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Napsali %s, %s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Napsali %s, %s, %s\n" "a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Napsali %s, %s, %s,\n" "%s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Napsali %s, %s, %s,\n" "%s, %s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Napsali %s, %s, %s,\n" "%s, %s, %s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Napsali %s, %s, %s,\n" "%s, %s, %s, %s\n" "a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Napsali %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Napsali %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s a další.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "Chyby hlaste na: %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Chyby balíčku %s hlaste na: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Domovská stránka projektu %s: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "" "Obecná nápověda k používání softwaru GNU: <http://www.gnu.org/gethelp/>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: hodnota %s je menší nebo rovna %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: Parametr ARGP_HELP_FMT vyžaduje hodnotu" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Parametr ARGP_HELP_FMT musí být kladný" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Neznámý parametr ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Nesmysly v ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Povinné či volitelné, argumenty pro dlouhé přepínače jsou povinné či " #~ "volitelné, i pro případné odpovídající krátké přepínače." #~ msgid "Usage:" #~ msgstr "Použití:" #~ msgid " or: " #~ msgstr " nebo:" #~ msgid " [OPTION...]" #~ msgstr " [PŘEPÍNAČ…]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Více informací získáte příkazem „%s --help“ nebo „%s --usage“.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Chyby hlaste na %s.\n" #~ msgid "give this help list" #~ msgstr "poskytne tuto přehledovou nápovědu" #~ msgid "give a short usage message" #~ msgstr "poskytne stručnou informaci o používání" #~ msgid "NAME" #~ msgstr "NÁZEV" #~ msgid "set the program name" #~ msgstr "nastavit název programu" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "zastavit na SEK sekund (výchozí je 3600)" #~ msgid "print program version" #~ msgstr "vypsat verzi programu" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(CHYBA PROGRAMU) Neznámá verze!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Příliš mnoho argumentů\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(CHYBA PROGRAMU) Měl by být rozpoznán přepínač!?" #~ msgid "program error" #~ msgstr "chyba programu" #~ msgid "stack overflow" #~ msgstr "přetečení zásobníku" #, c-format #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "nelze najít dočasnou složku, zkusí se nastavit $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "nelze vytvořit dočasnou složku pomocí šablony „%s“" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "nelze odstranit dočasný soubor %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "nelze odstranit dočasnou složku %s" #~ msgid "error closing file" #~ msgstr "chyba při zavírání souboru" #~ msgid "write error" #~ msgstr "chyba při zápisu" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "zachování práv k souboru %s" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "chyba při otevírání souboru „%s“ pro čtení" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "nelze otevřít záložní soubor „%s“ pro zápis" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "chyba při čtení souboru „%s“" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "chyba při zápisu do souboru „%s“" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "chyba po přečtení souboru „%s“" #, c-format #~ msgid "fdopen() failed" #~ msgstr "selhala funkce fdopen()" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Překladač C# nebyl nalezen, zkuste nainstalovat pnet" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "Virtuální stroj C# nebyl nalezen, zkuste nainstalovat pnet" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "selhal podřízený proces %s" #~ msgid "regular empty file" #~ msgstr "prázdný běžný soubor" #~ msgid "regular file" #~ msgstr "běžný soubor" #~ msgid "directory" #~ msgstr "složka" #~ msgid "block special file" #~ msgstr "speciální soubor blokového zařízení" #~ msgid "character special file" #~ msgstr "speciální soubor znakového zařízení" #~ msgid "fifo" #~ msgstr "fronta fifo" #~ msgid "symbolic link" #~ msgstr "symbolický odkaz" #~ msgid "socket" #~ msgstr "soket" #~ msgid "message queue" #~ msgstr "fronta zpráv" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "sdílený paměťový objekt" #~ msgid "typed memory object" #~ msgstr "typový paměťový objekt" #~ msgid "weird file" #~ msgstr "podivný soubor" #~ msgid "Address family for hostname not supported" #~ msgstr "Pro název počítače není rodina adres podporována" #~ msgid "Temporary failure in name resolution" #~ msgstr "Dočasné selhání při překladu názvu" #~ msgid "Bad value for ai_flags" #~ msgstr "Špatná hodnota pro příznaky ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Nenapravitelné selhání při překladu názvu" #~ msgid "ai_family not supported" #~ msgstr "ai_family není podporována" #~ msgid "Memory allocation failure" #~ msgstr "Selhalo přidělení paměti" #~ msgid "No address associated with hostname" #~ msgstr "K názvu počítače není přiřazena žádná adresa" #~ msgid "Name or service not known" #~ msgstr "Název nebo služba nejsou známy" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Název služby není podporován pro ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype není podporován" #~ msgid "System error" #~ msgstr "Chyba systému" #~ msgid "Argument buffer too small" #~ msgstr "Vyrovnávací paměť argumentů je příliš malá" #~ msgid "Processing request in progress" #~ msgstr "Probíhá zpracování požadavku" #~ msgid "Request canceled" #~ msgstr "Požadavek byl zrušen" #~ msgid "Request not canceled" #~ msgstr "Požadavek nebyl zrušen" #~ msgid "All requests done" #~ msgstr "Všechny požadavky dokončeny" #~ msgid "Interrupted by a signal" #~ msgstr "Přerušeno signálem" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Řetězec s parametry není správně kódován" #~ msgid "Unknown error" #~ msgstr "Neznámá chyba" #, c-format #~ msgid "%s: option '%s' is ambiguous; possibilities:" #~ msgstr "%s: přepínač „%s“ není jednoznačný; možnosti:" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: přepínač „--%s“ musí být zadán bez argumentu\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: přepínač „%c%s“ musí být zadán bez argumentu\n" #, c-format #~ msgid "%s: option '--%s' requires an argument\n" #~ msgstr "%s: přepínač „--%s“ vyžaduje argument\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: neznámý přepínač „--%s“\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: neznámý přepínač „%c%s“\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: neplatný přepínač -- „%c“\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: přepínač vyžaduje argument -- „%c“\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: přepínač „-W %s“ není jednoznačný\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: přepínač „-W %s“ musí být zadán bez argumentu\n" #, c-format #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: přepínač „-W %s“ vyžaduje argument\n" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "neplatný argument source_version pro compile_java_class" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "neplatný argument target_version pro compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "selhalo vytvoření „%s“" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "chyba při zápisu souboru „%s“" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Překladač jazyka Java nebyl nalezen, zkuste nainstalovat gcj nebo " #~ "nastavit proměnnou $JAVAC" #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuální stroj Java nebyl nalezen, zkuste nainstalovat gij nebo nastavit " #~ "proměnnou $JAVAC" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "V/V chyba podřízeného procesu %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "nelze změnit oprávnění k %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "nelze vytvořit složku %s" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Selhalo otevření /dev/zero pro čtení" #, c-format #~ msgid "creation of reading thread failed" #~ msgstr "vytvoření čtecího vlákna selhalo" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "nelze nastavit neblokující V/V pro podřízený proces %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "komunikace s podřízeným procesem %s selhala" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "zápis do podřízeného procesu %s selhal" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "čtení z podřízeného procesu %s selhalo" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "podřízený proces %s byl ukončen s návratovým kódem %d" #, c-format #~ msgid "creation of threads failed" #~ msgstr "vytvoření vlákna selhalo" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "podřízený proces %s byl ukončen s návratovým kódem %d" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc, ois Pinard" #~ msgid "Success" #~ msgstr "Úspěch" #~ msgid "No match" #~ msgstr "Žádná shoda" #~ msgid "Invalid regular expression" #~ msgstr "neplatný regulární výraz" #~ msgid "Invalid collation character" #~ msgstr "neplatný znak pro porovnávání" #~ msgid "Invalid character class name" #~ msgstr "neplatný název třídy znaku" #~ msgid "Trailing backslash" #~ msgstr "Zpětné lomítko na konci" #~ msgid "Invalid back reference" #~ msgstr "Neplatný zpětný odkaz" #~ msgid "Unmatched [ or [^" #~ msgstr "Chybí odpovídající závorka k [ nebo [^" #~ msgid "Unmatched ( or \\(" #~ msgstr "Chybí odpovídající závorka k ( nebo \\(" #~ msgid "Unmatched \\{" #~ msgstr "Chybí odpovídající závorka k \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Neplatný obsah \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Neplatný konec rozsahu" #~ msgid "Memory exhausted" #~ msgstr "Paměť byla vyčerpána" #~ msgid "Invalid preceding regular expression" #~ msgstr "Neplatný předchozí regulární výraz" #~ msgid "Premature end of regular expression" #~ msgstr "Předčasný konec regulárního výrazu" #~ msgid "Regular expression too big" #~ msgstr "Regulární výraz je příliš velký" #~ msgid "Unmatched ) or \\)" #~ msgstr "Chybí odpovídající závorka k ) nebo \\)" #~ msgid "No previous regular expression" #~ msgstr "Žádný předchozí regulární výraz" #~ msgid "^[yY]" #~ msgstr "^[aAyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "nastavení oprávnění k %s" #~ msgid "Hangup" #~ msgstr "Zavěsit" #~ msgid "Interrupt" #~ msgstr "Přerušení" #~ msgid "Quit" #~ msgstr "Ukončit" #~ msgid "Illegal instruction" #~ msgstr "Neplatná instrukce" #~ msgid "Trace/breakpoint trap" #~ msgstr "Krokování/bod přerušení" #~ msgid "Aborted" #~ msgstr "Přerušen" #~ msgid "Floating point exception" #~ msgstr "Výjimka ve výpočtu s plovoucí čárkou" #~ msgid "Killed" #~ msgstr "Zabit" #~ msgid "Bus error" #~ msgstr "Chyba sběrnice" #~ msgid "Segmentation fault" #~ msgstr "Porušení ochrany paměti" #~ msgid "Broken pipe" #~ msgstr "Porušená roura" #~ msgid "Alarm clock" #~ msgstr "Alarm od hodin" #~ msgid "Terminated" #~ msgstr "Ukončen" #~ msgid "Urgent I/O condition" #~ msgstr "Urgentní stav V/V" #~ msgid "Stopped (signal)" #~ msgstr "Pozastavit (signál)" #~ msgid "Stopped" #~ msgstr "Pozastaven" #~ msgid "Continued" #~ msgstr "Pokračuje" #~ msgid "Child exited" #~ msgstr "Potomek skončil" #~ msgid "Stopped (tty input)" #~ msgstr "Pozastaven (vstup tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Pozastaven (výstup tty)" #~ msgid "I/O possible" #~ msgstr "Možný V/V" #~ msgid "CPU time limit exceeded" #~ msgstr "Překročeno časové omezení procesoru" #~ msgid "File size limit exceeded" #~ msgstr "Překročeno omezení velikosti souboru" #~ msgid "Virtual timer expired" #~ msgstr "Virtuální časovač doběhl" #~ msgid "Profiling timer expired" #~ msgstr "Profilovací časovač doběhl" #~ msgid "Window changed" #~ msgstr "Změnilo se okno" #~ msgid "User defined signal 1" #~ msgstr "Uživatelsky definovaný signál 1" #~ msgid "User defined signal 2" #~ msgstr "Uživatelsky definovaný signál 2" #~ msgid "EMT trap" #~ msgstr "Krokování emulátoru (EMT)" #~ msgid "Bad system call" #~ msgstr "Chybné systémové volání" #~ msgid "Stack fault" #~ msgstr "Porušení zásobníku" #~ msgid "Information request" #~ msgstr "Žádost o informace" #~ msgid "Power failure" #~ msgstr "Selhalo napájení" #~ msgid "Resource lost" #~ msgstr "Prostředek přestal být k dispozici" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "chyba zápisu do zavřené roury nebo soketu" #, c-format #~ msgid "cannot create pipe" #~ msgstr "nelze vytvořit rouru" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Signál reálného času %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Neznámý signál %d" #~ msgid "iconv function not usable" #~ msgstr "funkce iconv není použitelná" #~ msgid "iconv function not available" #~ msgstr "funkce iconv není dostupná" #~ msgid "character out of range" #~ msgstr "znak je mimo rozsah" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "znak U+%04X nelze převést do místní znakové sady" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "znak U+%04X nelze převést do místní znakové sady: %s" #~ msgid "invalid user" #~ msgstr "neplatný uživatel" #~ msgid "invalid group" #~ msgstr "neplatná skupina" #~ msgid "invalid spec" #~ msgstr "neplatné zadání" #, c-format #~ msgid "unable to display error message" #~ msgstr "nelze zobrazit chybovou zprávu" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Domovská stránka projektu %s: <http://www.gnu.org/software/%s/>\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "selhala funkce _open_osfhandle" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "nelze obnovit fd %d: selhala funkce dup2" #, c-format #~ msgid "%s subprocess" #~ msgstr "podřízený proces %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "podřízený proces %s obdržel kritický signál %d" #~ msgid "stdin" #~ msgstr "standardní vstup" #~ msgid "stdout" #~ msgstr "standardní výstup" #~ msgid "stderr" #~ msgstr "standardní chybový výstup" #~ msgid "unknown stream" #~ msgstr "neznámý proud" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "selhalo opětovné otevření %s v režimu %s" #, c-format #~ msgid "string comparison failed" #~ msgstr "selhalo porovnání řetězců" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Problém obejdete nastavením LC_ALL='C'." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Porovnávané řetězce byly %s a %s." #, c-format #~ msgid "cannot perform formatted output" #~ msgstr "nelze provést formátovaný výstup" #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "neplatný argument „%3$s“ pro %1$s%2$s" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "neplatná přípona v argumentu „%3$s“ pro %1$s%2$s" #, c-format #~ msgid "%s%s argument `%s' too large" #~ msgstr "argument „%3$s“ pro %1$s%2$s je příliš velký" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/da.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004455�14445132162�012340� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������@�����A�����U�����W�����[�����k����������������������;�����3�����/���H��+���x��'�����#������������������,�����<�����>��-���[������������*������������������������ ������������������������������9���)��1���c��-�����)�����%�����!��������5�����S�����m�����}�������8���������������&��� ����������������������������������������� ����������������� ��������������������������������� ������������������������� ��� �������%s home page: <%s> �'�(C)�Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 2.0.0.3462.e9796 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2011-01-20 22:11+0100 Last-Translator: Keld Simonsen <keld@keldix.com> Language-Team: Danish <dansk@dansk-gruppen.dk> Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); �%s hjemmeside: <%s> �'��Pakket af %s �Pakket af %s (%s) �Rapportr %s-fejl til: %s �Ukendt systemfejl�gyldige argumenter er:�Skrevet af %s og %s. �Skrevet af %s, %s, %s, %s, %s, %s, %s, %s, %s med flere. �Skrevet af %s, %s, %s, %s, %s, %s, %s, %s og %s. �Skrevet af %s, %s, %s, %s, %s, %s, %s og %s. �Skrevet af %s, %s, %s, %s, %s, %s og %s. �Skrevet af %s, %s, %s, %s, %s og %s. �Skrevet af %s, %s, %s, %s og %s. �Skrevet af %s, %s, %s og %s. �Skrevet af %s, %s og %s. �Skrevet af %s. �'�flertydigt argument %s til %s�kunne ikke g tilbage til det oprindelige arbejdskatalog�Ugyldigt argument %s til %s�hukommelsen opbrugt�kan ikke notere aktuelt arbejdskatalog��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/da.po�������������������������������������������������������������������������0000644�0000000�0000000�00000055374�14445132161�012201� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Danish messages for gnulib. # Copyright 1997, 2002, 2003, 2004, 2005, 2007, 2009, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Peter Antman <peter.antman@abc.se>, 1997. # Thomas Olsson <cid95tho@lustudat.student.lu.se>, 1997. # Daniel Resare <daniel@resare.com>, 1999, 2000. # Gran Uddeborg <goeran@uddeborg.se>, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010. # Keld Simonsen <keld@keldix.com>, 2011 # # $Revision: 1.8 $ # msgid "" msgstr "" "Project-Id-Version: gnulib 2.0.0.3462.e9796\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2011-01-20 22:11+0100\n" "Last-Translator: Keld Simonsen <keld@keldix.com>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "Ugyldigt argument %s til %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "flertydigt argument %s til %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "gyldige argumenter er:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Ukendt systemfejl" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "hukommelsen opbrugt" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "kan ikke notere aktuelt arbejdskatalog" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "kunne ikke g tilbage til det oprindelige arbejdskatalog" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "'" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pakket af %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pakket af %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format #| msgid "" #| "\n" #| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #| "html>.\n" #| "This is free software: you are free to change and redistribute it.\n" #| "There is NO WARRANTY, to the extent permitted by law.\n" #| "\n" msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl." "html>.\n" "Dette er frit programmel: du m ndre og videredistribuere det.\n" "Der gives INGEN GARANTI, s vidt lov tillader.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Skrevet af %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Skrevet af %s og %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Skrevet af %s, %s og %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Skrevet af %s, %s, %s\n" "og %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Skrevet af %s, %s, %s,\n" "%s og %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Skrevet af %s, %s, %s,\n" "%s, %s og %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Skrevet af %s, %s, %s,\n" "%s, %s, %s og %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Skrevet af %s, %s, %s,\n" "%s, %s, %s, %s\n" "og %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Skrevet af %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s og %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Skrevet af %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s med flere.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "Rapportr fejl til: %s\n" "Sende synspunkter p oversttelsen til: tp-sv@listor.tp-sv.se\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Rapportr %s-fejl til: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s hjemmeside: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "" "Almindelig hjlp til at bruge GNU-programmer: <http://www.gnu.org/gethelp/>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: vrdien p %s er mindre end eller lig med %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT-parameteren krver en vrdi" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT-parameteren skal vre positiv" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Ukendt ARGP_HELP_FMT-parameter" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Snavs i ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Obligatoriske eller valgfrie argumenter til lange flag er ogs " #~ "obligatoriske eller valgfrie for tilsvarende korte flag." #~ msgid "Usage:" #~ msgstr "Brug:" #~ msgid " or: " #~ msgstr " eller: " #~ msgid " [OPTION...]" #~ msgstr " [FLAG...]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Forsg med '%s --help' eller '%s --usage' for mere information.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "Rapportr fejl til %s.\n" #~ "Send synspunkter p oversttelsen til <dansk@dansk-gruppen.dk>\n" #~ msgid "give this help list" #~ msgstr "giv denne hjlpeliste" #~ msgid "give a short usage message" #~ msgstr "giv en kort meddelelse om brug" #~ msgid "NAME" #~ msgstr "NAVN" #~ msgid "set the program name" #~ msgstr "angiv progravnavnet" #~ msgid "SECS" #~ msgstr "S" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "hng i S sekunder (som standard 3600)" #~ msgid "print program version" #~ msgstr "udskriv programversion" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMFEJL) Ingen version kendt!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: For mange argumenter\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMFEJL) Flaget burde vre blevet genkendt!?" #~ msgid "program error" #~ msgstr "programfejl" #~ msgid "stack overflow" #~ msgstr "stakoverlb" #, c-format #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "kan ikke finde et temporrt katalog, forsg at stte $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "kan ikke oprette et temporrt katalog ved brug af skabelonen '%s'" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "kan ikke fjerne temporr fil %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "kan ikke fjerne temporrt katalog %s" #~ msgid "error closing file" #~ msgstr "fejl ved lukning af fil" #~ msgid "write error" #~ msgstr "skrivefejl" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "bevarer rettigheder p %s" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "fejl ved bning af '%s' for lsning" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "kan ikke bne sikkerhedskopifil '%s' for skrivning" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "fejl ved lsning af '%s'" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "fejl ved skrivning af '%s'" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "fejl efter lsning af '%s'" #, c-format #~ msgid "fdopen() failed" #~ msgstr "fdopen() mislykkedes" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C#-overstter ikke fundet, forsg at installere pnet" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "virtuel C#-maskine ikke fundet, forsg at installere pnet" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s-underproces mislykkedes" #~ msgid "regular empty file" #~ msgstr "tom normal fil" #~ msgid "regular file" #~ msgstr "normal fil" #~ msgid "directory" #~ msgstr "katalog" #~ msgid "block special file" #~ msgstr "blokspecialfil" #~ msgid "character special file" #~ msgstr "tegnspecialfil" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "symbolsk lnke" #~ msgid "socket" #~ msgstr "sokkel (socket)" #~ msgid "message queue" #~ msgstr "meddelelsek" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "objekt af delt hukommelse" #~ msgid "typed memory object" #~ msgstr "objekt af typet hukommelse" #~ msgid "weird file" #~ msgstr "mrkelig fil" #~ msgid "Address family for hostname not supported" #~ msgstr "Adressefamilien for vrtsnavnet understttes ikke" #~ msgid "Temporary failure in name resolution" #~ msgstr "Midlertidig fejl i navneopslag" #~ msgid "Bad value for ai_flags" #~ msgstr "Fejlagtig vrdi for ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Ureparrbar fejl i navneopslag" #~ msgid "ai_family not supported" #~ msgstr "ai_family understttes ikke" #~ msgid "Memory allocation failure" #~ msgstr "Hukommelsesallokeringsfejl" #~ msgid "No address associated with hostname" #~ msgstr "Ingen adresse associeret med vrtsnavnet" #~ msgid "Name or service not known" #~ msgstr "Navn eller tjeneste ikke kendt" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname understttes ikke for ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype understttes ikke" #~ msgid "System error" #~ msgstr "Systemfejl" #~ msgid "Argument buffer too small" #~ msgstr "Argumentbufferen for lille" #~ msgid "Processing request in progress" #~ msgstr "Bearbejder pgende anmodning" #~ msgid "Request canceled" #~ msgstr "Anmodning annuleret" #~ msgid "Request not canceled" #~ msgstr "Anmodning ikke annuleret" #~ msgid "All requests done" #~ msgstr "Alle anmodninger udfrt" #~ msgid "Interrupted by a signal" #~ msgstr "Afbrudt af et signal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parameterstreng ikke korrekt kodet" #~ msgid "Unknown error" #~ msgstr "Ukendt fejl" #, c-format #~ msgid "%s: option '%s' is ambiguous\n" #~ msgstr "%s: flaget '%s' er flertydigt\n" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: flaget '--%s' tager intet argument\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: flaget '%c%s' tager intet argument\n" #, c-format #~ msgid "%s: option '%s' requires an argument\n" #~ msgstr "%s: flaget '%s' krver et argument\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: ukendt flag '--%s'\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: ukendt flag '%c%s'\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: ugyldig flag -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: flaget krver et argument -- '%c'\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: flaget '-W %s' er flertydigt\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: flaget '-W %s' tager intet argument\n" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "ugyldigt source_version-argument til compile_java_class" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "ugyldigt target_version-argument til compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "det gik ikke at oprette '%s'" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "fejl ved skrivning af filen '%s'" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Javaoverstter ikke fundet, forsg at installere gcj eller stte $JAVAC" #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuel Javamaskine ikke fundet, forsg at installere gij eller stte " #~ "$JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s-underproces I/O-fejl" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "kan ikke ndre rettigheder p %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "kan ikke oprette kataloget %s" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Mislykkedes med at bne /dev/zero for lsning" #, c-format #~ msgid "creation of reading thread failed" #~ msgstr "oprettelse af lsetrd mislykkedes" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "kan ikke opstte ikke-blokerende I/O til %s-underproces" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "kommunikation med %s-underproces mislykkedes" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "skrivning til %s-underproces mislykkedes" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "lsning fra %s-underproces mislykkedes" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "underproces %s afsluttet med slutstatus %d" #, c-format #~ msgid "creation of threads failed" #~ msgstr "oprettelse af trde mislykkedes" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s-underproces afslutted med slutstatus %d" #, c-format #~ msgid "cannot create pipe" #~ msgstr "kan ikke oprette datakanal" #~ msgid "Success" #~ msgstr "Lykkedes" #~ msgid "No match" #~ msgstr "Ingen trffer" #~ msgid "Invalid regular expression" #~ msgstr "Fejlagtigt regulrt udtryk" #~ msgid "Invalid collation character" #~ msgstr "Ugyldigt sorteringstegn" #~ msgid "Invalid character class name" #~ msgstr "Ugyldigt tegnklassenavn" #~ msgid "Trailing backslash" #~ msgstr "Afsluttende baglns skrstreg" #~ msgid "Invalid back reference" #~ msgstr "Ugyldig bagudreference" #~ msgid "Unmatched [ or [^" #~ msgstr "Ensomt [ eller [^" #~ msgid "Unmatched ( or \\(" #~ msgstr "Ensomt ( eller \\(" #~ msgid "Unmatched \\{" #~ msgstr "Ensomt \\\\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Ugyldigt indhold i \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Ugyldigt intervalslut" #~ msgid "Memory exhausted" #~ msgstr "Hukommelse opbrugt" #~ msgid "Invalid preceding regular expression" #~ msgstr "Fejlagtigt foregende regulrt udtryk" #~ msgid "Premature end of regular expression" #~ msgstr "For tidlig afslutning af regulrt udtryk" #~ msgid "Regular expression too big" #~ msgstr "For stort regulrt udtryk" #~ msgid "Unmatched ) or \\)" #~ msgstr "Ensomt ) eller \\)" #~ msgid "No previous regular expression" #~ msgstr "Intet foregende regulrt udtryk" #~ msgid "^[yY]" #~ msgstr "^[yYjJ]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "ndrer rettigheder p %s" #~ msgid "Hangup" #~ msgstr "Lagt p" #~ msgid "Interrupt" #~ msgstr "Afbrudt" #~ msgid "Quit" #~ msgstr "Afslut" #~ msgid "Illegal instruction" #~ msgstr "Utilladt instruktion" #~ msgid "Trace/breakpoint trap" #~ msgstr "Sporings-/afbrudspunktsflde" #~ msgid "Aborted" #~ msgstr "Afbrudt (abort)" #~ msgid "Floating point exception" #~ msgstr "Undtagelse ved flydende tal" #~ msgid "Killed" #~ msgstr "Drbt" #~ msgid "Bus error" #~ msgstr "Busfejl" #~ msgid "Segmentation fault" #~ msgstr "Segmenteringsfejl" #~ msgid "Broken pipe" #~ msgstr "Brudt datakanal" #~ msgid "Alarm clock" #~ msgstr "Alarmklokke" #~ msgid "Terminated" #~ msgstr "Afsluttet" #~ msgid "Urgent I/O condition" #~ msgstr "Hastende I/O-situation" #~ msgid "Stopped (signal)" #~ msgstr "Stoppet (signal)" #~ msgid "Stopped" #~ msgstr "Stoppet" #~ msgid "Continued" #~ msgstr "Genoptaget" #~ msgid "Child exited" #~ msgstr "Barn afsluttede" #~ msgid "Stopped (tty input)" #~ msgstr "Stoppet (terminallsning)" #~ msgid "Stopped (tty output)" #~ msgstr "Stoppet (terminalskrivning)" #~ msgid "I/O possible" #~ msgstr "I/O muligt" #~ msgid "CPU time limit exceeded" #~ msgstr "Grnse p CPU-tid overskredet" #~ msgid "File size limit exceeded" #~ msgstr "Grnse p filstrrelse overskredet" #~ msgid "Virtual timer expired" #~ msgstr "Alarmklokke - virtuel tid - udlb" #~ msgid "Profiling timer expired" #~ msgstr "Profileringsklokke udlb" #~ msgid "Window changed" #~ msgstr "ndret vindue" #~ msgid "User defined signal 1" #~ msgstr "Brugersignal 1" #~ msgid "User defined signal 2" #~ msgstr "Brugersignal 2" #~ msgid "EMT trap" #~ msgstr "Emulatorflde" #~ msgid "Bad system call" #~ msgstr "Fejlagtigt systemkald" #~ msgid "Stack fault" #~ msgstr "Stakfejl" #~ msgid "Information request" #~ msgstr "Informationsanmodning" #~ msgid "Power failure" #~ msgstr "Strmafbrud" #~ msgid "Resource lost" #~ msgstr "Tabt resurse" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "fejl ved skrivning til en lukket datakanal eller sokkel" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Realtidsignal %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Ukendt signal %d" #~ msgid "iconv function not usable" #~ msgstr "iconv-funktion ikke brugbar" #~ msgid "iconv function not available" #~ msgstr "iconv-funktion ikke tilgngelig" #~ msgid "character out of range" #~ msgstr "tegn udenfor interval" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan ikke konvertere U+%04X til lokalt tegnst" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan ikke konvertere U+%04X til lokalt tegnst: %s" #~ msgid "invalid user" #~ msgstr "ugyldig bruger" #~ msgid "invalid group" #~ msgstr "ugyldig gruppe" #~ msgid "invalid spec" #~ msgstr "ugyldig specifikation" #, c-format #~ msgid "unable to display error message" #~ msgstr "kan ikke vise fejlmeddelelse" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s hjemmeside: <http://www.gnu.org/software/%s/>\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle mislykkedes" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "kan ikke genskabe fb %d: dup2 mislykkedes" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s-underproces" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s-underproces fik delggende signal %d" #~ msgid "stdin" #~ msgstr "standard ind" #~ msgid "stdout" #~ msgstr "standard ud" #~ msgid "stderr" #~ msgstr "standard fejl" #~ msgid "unknown stream" #~ msgstr "ukendt strm" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "kunne ikke genbne %s i tilstand %s" #, c-format #~ msgid "string comparison failed" #~ msgstr "strengsammenligning mislykkedes" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "St LC_ALL='C' for at omg problemet." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "De sammenlignede strenge var %s og %s." #, c-format #~ msgid "cannot perform formatted output" #~ msgstr "kan ikke udfre formateret udskrift" #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "fejlagtigt %s%s-argument '%s'" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "fejlagtigt suffiks i %s%s-argument '%s'" #, c-format #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s argument '%s' er for stort" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/de.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000006161�14445132162�012340� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������4�������� ��������������� �����$ ����� ����� ����� ��@��� ��7���B ��3���z ��/��� ��+��� ��'��� ��#���2 �����V �����v ����� �� ��� ��K��� ����� ����� ��9���7 ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: GNU gnulib-4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-22 20:00+0200 Last-Translator: Roland Illig <roland.illig@gmx.de> Language-Team: German <translation-team-de@lists.sourceforge.net> Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.2.3 �%s-Homepage: %s �«�©�Allgemeine Hilfe zur Benutzung von GNU-Software: %s �Lizenz GPLv3+: GNU GPL Version 3 oder höher <%s>. Dies ist freie Software: Sie können sie ändern und weitergeben. Es gibt keinerlei Garantien, soweit es das Gesetz erlaubt. �Paket erstellt von %s �Paket erstellt von %s (%s) �Melden Sie %s-Fehler an »%s« �Melden Sie Fehler im Programm (auf Englisch) an »%s«. Melden Sie Fehler in der Übersetzung an <translation-team-de@lists.sourceforge.net>. �Unbekannter Systemfehler�Gültige Argumente sind:�Geschrieben von %s und %s. �Geschrieben von %s, %s, %s, %s, %s, %s, %s, %s, %s und anderen. �Geschrieben von %s, %s, %s, %s, %s, %s, %s, %s und %s. �Geschrieben von %s, %s, %s, %s, %s, %s, %s und %s. �Geschrieben von %s, %s, %s, %s, %s, %s und %s. �Geschrieben von %s, %s, %s, %s, %s und %s. �Geschrieben von %s, %s, %s, %s und %s. �Geschrieben von %s, %s, %s und %s. �Geschrieben von %s, %s und %s. �Geschrieben von %s. �»�mehrdeutiges Argument %s für %s�es konnte nicht ins ursprüngliche Arbeitsverzeichnis zurückgekehrt werden�ungültiges Argument %s für %s�Zu wenig Speicher vorhanden�aktuelles Arbeitsverzeichnis konnte nicht bestimmt werden����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/de.po�������������������������������������������������������������������������0000644�0000000�0000000�00000070132�14445132161�012172� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# German translation of gnulib messages. # Copyright © 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Karl Eichwalder <ke@suse.de>, 2001-2002. # Lutz Behnke <lutz.behnke@gmx.de>, 1996, 1997, 1998, 1999, 2000, 2001. # Michael Schmidt <michael@guug.de>, 1996, 1997, 1998, 1999, 2000. # Michael Piefel <piefel@informatik.hu-berlin.de>, 2001, 2002, 2003, 2009. # Kai Wasserbäch <debian@carbon-project.org>, 2009. # Arun Persaud <arun@nubati.net>, 2012. # Roland Illig <roland.illig@gmx.de>, 2019. # # TAB: spell it out („Tabulatoren“). -ke- # Don't use obscure abbreviations, please. -ke- # No hyphenation, please. -ke- # # space: Leerzeichen oder Leerschritt # # Check: # idle - untätig # idle: untätig, ruhig, „idle“, Leerlauf # user idle time: Untätigkeitszeit des Benutzers, Ruhezeit, Idle-Time, # Benutzer im Leerlauf # digit - Zahl, Ziffer, Nummer, Stelle # logged in - angemeldet, eingeloggt # requested - gewünscht? # # Some comments on translations used in oder to ensure persistence: # # symbolic links: symbolische Verknüpfungen # hard links: harte Verknüpfungen # backup: Sicherung # mount: einhängen # msgid "" msgstr "" "Project-Id-Version: GNU gnulib-4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-22 20:00+0200\n" "Last-Translator: Roland Illig <roland.illig@gmx.de>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.2.3\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "ungültiges Argument %s für %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "mehrdeutiges Argument %s für %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Gültige Argumente sind:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Unbekannter Systemfehler" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "Zu wenig Speicher vorhanden" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "aktuelles Arbeitsverzeichnis konnte nicht bestimmt werden" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "" "es konnte nicht ins ursprüngliche Arbeitsverzeichnis zurückgekehrt werden" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "»" #: lib/quotearg.c:355 msgid "'" msgstr "«" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Paket erstellt von %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Paket erstellt von %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Lizenz GPLv3+: GNU GPL Version 3 oder höher <%s>.\n" "Dies ist freie Software: Sie können sie ändern und weitergeben.\n" "Es gibt keinerlei Garantien, soweit es das Gesetz erlaubt.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Geschrieben von %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Geschrieben von %s und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Geschrieben von %s, %s und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Geschrieben von %s, %s, %s\n" "und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Geschrieben von %s, %s, %s,\n" "%s und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Geschrieben von %s, %s, %s,\n" "%s, %s und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Geschrieben von %s, %s, %s,\n" "%s, %s, %s und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Geschrieben von %s, %s, %s,\n" "%s, %s, %s, %s\n" "und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Geschrieben von %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Geschrieben von %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s und anderen.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" "Melden Sie Fehler im Programm (auf Englisch) an »%s«.\n" "Melden Sie Fehler in der Übersetzung an <translation-team-de@lists." "sourceforge.net>.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Melden Sie %s-Fehler an »%s«\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-Homepage: %s\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Allgemeine Hilfe zur Benutzung von GNU-Software: %s\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: Der Wert %s ist kleiner oder gleich %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT Parameter benötigt einen Wert" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Unbekannter Parameter für ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Müll in ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Erforderliche oder optionale Argumente für lange Optionen sind auch für " #~ "kurze erforderlich bzw. optional." #~ msgid "Usage:" #~ msgstr "Aufruf:" #~ msgid " or: " #~ msgstr " oder: " #~ msgid " [OPTION...]" #~ msgstr " [OPTION…]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "»%s --help« oder »%s --usage« liefert weitere Informationen.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n" #~ msgid "give this help list" #~ msgstr "diese Hilfeliste anzeigen" #~ msgid "give a short usage message" #~ msgstr "eine Kurzfassung des Aufrufs anzeigen" #~ msgid "NAME" #~ msgstr "NAME" #~ msgid "set the program name" #~ msgstr "den Programmnamen festlegen" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "SEK Sekunden warten (Standardwert 3600)" #~ msgid "print program version" #~ msgstr "Programmversion anzeigen" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMMFEHLER) Keine Version bekannt!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: zu viele Argumente\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMMFEHLER) Option hätte erkannt werden müssen!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u freigegeben (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u gecacht (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u gecacht (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u gecacht (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "logarithmisches Anzahlhistogramm\n" #~ msgid "size log histogram\n" #~ msgstr "logarithmisches Größenhistogramm\n" #~ msgid "density histogram\n" #~ msgstr "Dichtehistogramm\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Bitmengen-Statistik:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Aufsummierte Durchläufe = %u\n" #~ msgid "cannot read stats file" #~ msgstr "Statistikdatei konnte nicht gelesen werden" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "Statistikdatei hat falsche Größe\n" #~ msgid "cannot write stats file" #~ msgstr "Statistikdatei konnte nicht angelegt werden" #~ msgid "cannot open stats file for writing" #~ msgstr "Statistikdatei konnte nicht zum Schreiben geöffnet werden" #~ msgid "program error" #~ msgstr "Programmfehler" #~ msgid "stack overflow" #~ msgstr "Stacküberlauf" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "kein temporäres Verzeichnis gefunden, versuchen Sie, $TMPDIR zu setzen" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "temporäres Verzeichnis mit der Schablone »%s« konnte nicht angelegt werden" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "temporäre Datei »%s« konnte nicht entfernt werden" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "temporäres Verzeichnis »%s« konnte nicht entfernt werden" #~ msgid "error closing file" #~ msgstr "Fehler beim Schließen der Datei" #~ msgid "write error" #~ msgstr "Fehler beim Schreiben der Datei" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "Zugriffsberechtigungen von »%s« werden beibehalten" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "die Datei »%s« konnte nicht zum Lesen geöffnet werden" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "die Sicherungsdatei »%s« konnte nicht zum Schreiben geöffnet werden" #, c-format #~ msgid "error reading %s" #~ msgstr "Fehler beim Lesen von »%s«" #, c-format #~ msgid "error writing %s" #~ msgstr "Fehler beim Schreiben von »%s«" #, c-format #~ msgid "error after reading %s" #~ msgstr "Fehler nach dem Lesen von »%s«" #~ msgid "fdopen() failed" #~ msgstr "Fehler bei fdopen()" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "" #~ "C#-Compiler nicht gefunden, versuchen Sie, das Paket »mono« zu " #~ "installieren" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "" #~ "Virtuelle Maschine für C# nicht gefunden, versuchen Sie, das Paket »mono« " #~ "zu installieren" #~ msgid "unbalanced [" #~ msgstr "öffnende eckige Klammer »[« ohne Gegenstück" #~ msgid "invalid character class" #~ msgstr "ungültige Zeichenklasse" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "" #~ "Die Schreibweise für Zeichenklassen ist [[:space:]], nicht [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "unvollendete \\-Escapesequenz" #~ msgid "invalid content of \\{\\}" #~ msgstr "Ungültiger Inhalt in \\{\\}" #~ msgid "regular expression too big" #~ msgstr "der reguläre Ausdruck ist zu groß" #~ msgid "unbalanced (" #~ msgstr "öffnende Klammer »(« ohne Gegenstück" #~ msgid "no syntax specified" #~ msgstr "keine Syntax angegeben" #~ msgid "unbalanced )" #~ msgstr "schließende Klammer »)« ohne Gegenstück" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: Unterprozess fehlgeschlagen" #~ msgid "regular empty file" #~ msgstr "reguläre leere Datei" #~ msgid "regular file" #~ msgstr "reguläre Datei" #~ msgid "directory" #~ msgstr "Verzeichnis" #~ msgid "symbolic link" #~ msgstr "symbolische Verknüpfung" #~ msgid "message queue" #~ msgstr "Nachrichtenwarteschlange" #~ msgid "semaphore" #~ msgstr "Semaphor" #~ msgid "shared memory object" #~ msgstr "Objekt gemeinsamen Speichers" #~ msgid "typed memory object" #~ msgstr "Objekt getypten Speichers" #~ msgid "block special file" #~ msgstr "blockorientierte Spezialdatei" #~ msgid "character special file" #~ msgstr "zeichenorientierte Spezialdatei" #~ msgid "contiguous data" #~ msgstr "zusammenhängende Daten" #~ msgid "fifo" #~ msgstr "FIFO" #~ msgid "door" #~ msgstr "Tür" #~ msgid "multiplexed block special file" #~ msgstr "gemultiplexte blockorientierte Spezialdatei" #~ msgid "multiplexed character special file" #~ msgstr "gemultiplexte zeichenorientierte Spezialdatei" #~ msgid "multiplexed file" #~ msgstr "gemultiplexte Datei" #~ msgid "named file" #~ msgstr "benannte Datei" #~ msgid "network special file" #~ msgstr "netzwerkbezogene Spezialdatei" #~ msgid "migrated file with data" #~ msgstr "migrierte Datei mit Daten" #~ msgid "migrated file without data" #~ msgstr "migrierte Datei ohne Daten" #~ msgid "port" #~ msgstr "Anschluss" #~ msgid "socket" #~ msgstr "Socket" #~ msgid "whiteout" #~ msgstr "Überblendung" #~ msgid "weird file" #~ msgstr "merkwürdige Datei" #~ msgid "Address family for hostname not supported" #~ msgstr "Adressfamilie für Hostnamen nicht unterstützt" #~ msgid "Temporary failure in name resolution" #~ msgstr "Temporäre Störung der Namensauflösung" #~ msgid "Bad value for ai_flags" #~ msgstr "Ungültiger Wert für ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Nicht zu umgehende Störung der Namensauflösung" #~ msgid "ai_family not supported" #~ msgstr "ai_family nicht unterstützt" #~ msgid "Memory allocation failure" #~ msgstr "Speicherallokationsfehler" #~ msgid "No address associated with hostname" #~ msgstr "Keine Adresse mit Hostnamen verbunden" #~ msgid "Name or service not known" #~ msgstr "Name oder Service unbekannt" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname nicht unterstützt für ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype nicht unterstützt" #~ msgid "System error" #~ msgstr "Systemfehler" #~ msgid "Argument buffer too small" #~ msgstr "Argumentpuffer zu klein" #~ msgid "Processing request in progress" #~ msgstr "Verarbeitungsanfrage in Bearbeitung" #~ msgid "Request canceled" #~ msgstr "Anfrage abgebrochen" #~ msgid "Request not canceled" #~ msgstr "Anfrage nicht abgebrochen" #~ msgid "All requests done" #~ msgstr "Alle Anfragen erledigt" #~ msgid "Interrupted by a signal" #~ msgstr "Durch Signal unterbrochen" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parameterzeichenkette nicht korrekt kodiert" #~ msgid "Unknown error" #~ msgstr "Unbekannter Fehler" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: Option »%s%s« ist mehrdeutig\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: Option »%s%s« ist mehrdeutig; Möglichkeiten:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: unbekannte Option »%s%s«\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: Option »%s%s« erlaubt kein Argument\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: Option »%s%s« erfordert ein Argument\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: ungültige Option -- »%c«\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: Option erfordert ein Argument -- »%c«\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "ungültiges Argument »source_version« für »compile_java_class«" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "ungültiges Argument »target_version« für »compile_java_class«" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "Datei »%s« konnte nicht erzeugt werden" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "Fehler beim Schreiben der Datei »%s«" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Java-Compiler nicht gefunden, versuchen Sie, das Paket »gcj« zu " #~ "installieren oder setzen Sie $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuelle Maschine für Java nicht gefunden, versuchen Sie, das Paket " #~ "»gij« zu installieren oder setzen Sie $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s-Unterprozess-E/A-Fehler" #, c-format #~ msgid "cannot stat %s" #~ msgstr "Dateieigenschaften für »%s« konnten nicht bestimmt werden" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "Zugriffsrechte von »%s« konnten nicht geändert werden" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "Verzeichnis »%s« konnte nicht angelegt werden" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Das Gerät »/dev/zero« konnte nicht zum Lesen geöffnet werden" #~ msgid "creation of reading thread failed" #~ msgstr "Erstellen des Lese-Threads fehlgeschlagen" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "" #~ "Nicht-blockierendes I/O zu Teilprozess »%s« konnte nicht hergestellt " #~ "werden" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "Kommunikation mit Teilprozess »%s« fehlgeschlagen" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "Schreiben zu Teilprozess »%s« fehlgeschlagen" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "Lesen von Teilprozess »%s« fehlgeschlagen" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "Teilprozess »%s« beendet mit Code %d" #~ msgid "creation of threads failed" #~ msgstr "Erstellen von Threads fehlgeschlagen" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "Teilprozess »%s« wurde mit Code %d beendet" #~ msgid "Success" #~ msgstr "Erfolg" #~ msgid "No match" #~ msgstr "Keine Übereinstimmung" #~ msgid "Invalid regular expression" #~ msgstr "Ungültiger regulärer Ausdruck" #~ msgid "Invalid collation character" #~ msgstr "Ungültiges Sortierungszeichen" #~ msgid "Invalid character class name" #~ msgstr "Ungültiger Name für Zeichenklasse" #~ msgid "Trailing backslash" #~ msgstr "Unerwarteter Backslash am Ende" #~ msgid "Invalid back reference" #~ msgstr "Ungültige Rückreferenz" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Gegenstück zu [, [^, [:, [. oder [= fehlt" #~ msgid "Unmatched ( or \\(" #~ msgstr "Gegenstück zu ( oder \\( fehlt" #~ msgid "Unmatched \\{" #~ msgstr "Gegenstück zu \\{ fehlt" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Ungültiger Inhalt in \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Ungültiges Bereichsende" #~ msgid "Memory exhausted" #~ msgstr "Zu wenig Speicher vorhanden" #~ msgid "Invalid preceding regular expression" #~ msgstr "Ungültiger vorhergehender regulärer Ausdruck" #~ msgid "Premature end of regular expression" #~ msgstr "Vorzeitiges Ende des regulären Ausdrucks" #~ msgid "Regular expression too big" #~ msgstr "Der reguläre Ausdruck ist zu groß" #~ msgid "Unmatched ) or \\)" #~ msgstr "Gegenstück zu ) oder \\) fehlt" #~ msgid "No previous regular expression" #~ msgstr "Kein vorhergehender regulärer Ausdruck" #~ msgid "^[yY]" #~ msgstr "^[jJyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "Zugriffsberechtigungen von »%s« werden festgelegt" #~ msgid "Hangup" #~ msgstr "Aufhängen" #~ msgid "Interrupt" #~ msgstr "Unterbrechung" #~ msgid "Quit" #~ msgstr "Beendet" #~ msgid "Illegal instruction" #~ msgstr "Ungültiger Maschinenbefehl" #~ msgid "Trace/breakpoint trap" #~ msgstr "Trace-/Breakpoint-Falle" #~ msgid "Aborted" #~ msgstr "Abgebrochen" #~ msgid "Floating point exception" #~ msgstr "Gleitkomma-Ausnahme" #~ msgid "Killed" #~ msgstr "Getötet" #~ msgid "Bus error" #~ msgstr "Busfehler" #~ msgid "Segmentation fault" #~ msgstr "Speicherzugriffsfehler" #~ msgid "Broken pipe" #~ msgstr "Unterbrochene Weiterleitung" #~ msgid "Alarm clock" #~ msgstr "Wecker" #~ msgid "Terminated" #~ msgstr "Terminiert" #~ msgid "Urgent I/O condition" #~ msgstr "Dringende I/O-Bedingung" #~ msgid "Stopped (signal)" #~ msgstr "Gestoppt (Signal)" #~ msgid "Stopped" #~ msgstr "Gestoppt" #~ msgid "Continued" #~ msgstr "Fortgesetzt" #~ msgid "Child exited" #~ msgstr "Kindprozess beendet" #~ msgid "Stopped (tty input)" #~ msgstr "Gestoppt (tty-Eingabe)" #~ msgid "Stopped (tty output)" #~ msgstr "Gestoppt (tty-Ausgabe)" #~ msgid "I/O possible" #~ msgstr "I/O möglich" #~ msgid "CPU time limit exceeded" #~ msgstr "CPU-Zeitbegrenzung überschritten" #~ msgid "File size limit exceeded" #~ msgstr "Dateigrößenbegrenzung überschritten" #~ msgid "Virtual timer expired" #~ msgstr "Virtueller Zeitgeber abgelaufen" #~ msgid "Profiling timer expired" #~ msgstr "Zeitmesser zur Leistungsmessung abgelaufen" #~ msgid "Window changed" #~ msgstr "Fenster geändert" #~ msgid "User defined signal 1" #~ msgstr "Benutzerdefiniertes Signal 1" #~ msgid "User defined signal 2" #~ msgstr "Benutzerdefiniertes Signal 2" #~ msgid "EMT trap" #~ msgstr "EMT-Falle" #~ msgid "Bad system call" #~ msgstr "Fehlerhafter Systemaufruf" #~ msgid "Stack fault" #~ msgstr "Stapelfehler" #~ msgid "Information request" #~ msgstr "Informationsanfrage" #~ msgid "Power failure" #~ msgstr "Stromausfall" #~ msgid "Resource lost" #~ msgstr "Ressource verloren" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "Fehler beim Schreiben in geschlossene Pipe oder Socket" #~ msgid "cannot create pipe" #~ msgstr "Pipe konnte nicht erzeugt werden" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Echtzeitsignal %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Unbekanntes Signal %d" #~ msgid "Execution times (seconds)" #~ msgstr "Ausführungszeiten (in Sekunden)" #~ msgid "CPU user" #~ msgstr "CPU Anwendung" #~ msgid "CPU system" #~ msgstr "CPU System" #~ msgid "wall clock" #~ msgstr "Vergangene Zeit" #~ msgid "iconv function not usable" #~ msgstr "iconv-Funktion nicht benutzbar" #~ msgid "iconv function not available" #~ msgstr "iconv-Funktion nicht verfügbar" #~ msgid "character out of range" #~ msgstr "Zeichen außerhalb erlaubter Grenzen" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "" #~ "das Zeichen U+%04X konnte nicht in lokalen Zeichensatz konvertiert werden" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "" #~ "das Zeichen U+%04X konnte nicht in lokalen Zeichensatz konvertiert " #~ "werden: %s" #~ msgid "invalid user" #~ msgstr "ungültiger Benutzername" #~ msgid "invalid group" #~ msgstr "ungültiger Gruppenname" #~ msgid "invalid spec" #~ msgstr "ungültige Angabe" #~ msgid "unable to display error message" #~ msgstr "Fehlermeldung konnte nicht angezeigt werden" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle fehlgeschlagen" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "" #~ "Dateideskriptor %d konnte nicht wiederhergestellt werden: dup2 " #~ "fehlgeschlagen" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s-Unterprozess" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s-Unterprozess bekam tödliches Signal %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "" #~ "Dateideskriptor konnte nicht zwischen Text und Binär umgeschaltet werden" #~ msgid "stdin" #~ msgstr "Standardeingabe (stdin)" #~ msgid "stdout" #~ msgstr "Standardausgabe (stdout)" #~ msgid "stderr" #~ msgstr "Standardfehlerausgabe (stderr)" #~ msgid "unknown stream" #~ msgstr "Unbekannter Datenstrom" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "Erneutes Öffnen von %s mit Modus %s fehlgeschlagen" #~ msgid "string comparison failed" #~ msgstr "Zeichenkettenvergleich fehlgeschlagen" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Setzen Sie »LC_ALL=C«, um das Problem zu umgehen." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Die verglichenen Zeichenketten waren »%s« und »%s«." #~ msgid "cannot perform formatted output" #~ msgstr "formatierte Ausgabe konnte nicht durchgeführt werden" #~ msgid "standard file descriptors" #~ msgstr "Standarddateideskriptoren" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "ungültiges %s%s-Argument »%s«" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "ungültige Endung in %s%s-Argument »%s«" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "%s%s-Argument »%s« zu groß" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT Parameter muss positiv sein" #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: Option »--%s« erlaubt kein Argument\n" #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: unbekannte Option »--%s«\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: Option »-W %s« erlaubt kein Argument\n" #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: Option »-W %s« erfordert ein Argument\n" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Heimatseite von %s: <http://www.gnu.org/software/%s/>.\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ungültige Option -- %c\n" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n" #~ "Melden Sie Übersetzungsfehler an <translation-team-de@lists.sourceforge." #~ "net>\n" #~ msgid "block size" #~ msgstr "Blockgröße" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/el.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000001772�14445132162�012353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������d��� ���������������������������������� ���������������<�����W����h�������0�����)���+��*���U�������&�����+�����$������������������������������� ������������������'�Unknown system error�Valid arguments are:�Written by %s. �`�ambiguous argument %s for %s�invalid argument %s for %s�memory exhausted�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2012-03-11 11:25+0100 Last-Translator: Simos Xenitellis <simos.lists@googlemail.com> Language-Team: Greek <team@lists.gnome.gr> Language: el MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. �'�Άγνωστο σφάλμα συστήματος�Έγκυρα ορίσματα είναι:�Γραμμένο από τον/την %s. �`�ασαφές όρισμα %s για %s�μη έγκυρο όρισμα %s για %s�η μνήμη εξαντλήθηκε�������a2ps-4.15.5/po-gnulib/el.po�������������������������������������������������������������������������0000644�0000000�0000000�00000041001�14445132161�012173� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Greek messages for gnulib # Copyright (C) 1999, 2000, 2001, 2002, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Simos Xenitellis <simos.lists@googlemail.com>, 1999, 2000, 2001, 2002, 2012. # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2012-03-11 11:25+0100\n" "Last-Translator: Simos Xenitellis <simos.lists@googlemail.com>\n" "Language-Team: Greek <team@lists.gnome.gr>\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" # #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "μη έγκυρο όρισμα %s για %s" # #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "ασαφές όρισμα %s για %s" # #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Έγκυρα ορίσματα είναι:" # #: lib/error.c:193 msgid "Unknown system error" msgstr "Άγνωστο σφάλμα συστήματος" # #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "η μνήμη εξαντλήθηκε" # #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #: lib/openat-die.c:57 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" # #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" # #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "Γραμμένο από τον/την %s.\n" # #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" "Αναφέρατε σφάλματα στο <%s>.\n" # #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Αναφέρατε σφάλματα στο <%s>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" # #~ msgid " [OPTION...]" #~ msgstr " [ΕΠΙΛΟΓΗ...]" # #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Δοκιμάστε `%s --help' για περισσότερη βοήθεια.\n" # #, fuzzy, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "\n" #~ "Αναφέρατε σφάλματα στο <%s>.\n" # #, fuzzy #~ msgid "print program version" #~ msgstr "σφάλμα προγράμματος" # #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "πάρα πολλά ορίσματα" # #~ msgid "program error" #~ msgstr "σφάλμα προγράμματος" # #~ msgid "stack overflow" #~ msgstr "υπερχείλιση στοίβας" # #, fuzzy, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #~ msgid "write error" #~ msgstr "σφάλμα εγγραφής" # #, fuzzy, c-format #~ msgid "preserving permissions for %s" #~ msgstr "αδυναμία αλλαγής ιδιοκτησίας στο %s" #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "αδυναμία μεταφοράς του `%s' στο `%s'" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "αδυναμία μεταφοράς του `%s' στο `%s'" # #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "σφάλμα ανάγνωσης %s" # #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "σφάλμα εγγραφής %s" # #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "σφάλμα ανάγνωσης %s" # #, fuzzy, c-format #~ msgid "fdopen() failed" #~ msgstr "αποτυχία ανοίγματος" # #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: μη έγκυρη μορφή" # #~ msgid "regular empty file" #~ msgstr "κανονικό κενό αρχείο" # #~ msgid "regular file" #~ msgstr "κανονικό αρχείο" # #~ msgid "directory" #~ msgstr "κατάλογος" # #~ msgid "block special file" #~ msgstr "ειδικό αρχείο μπλοκ" # #~ msgid "character special file" #~ msgstr "ειδικό αρχείο χαρακτήρων" # #~ msgid "fifo" #~ msgstr "φίφο" # #~ msgid "symbolic link" #~ msgstr "συμβολικός σύνδεσμος" # #~ msgid "socket" #~ msgstr "υποδοχέας" # #~ msgid "message queue" #~ msgstr "ουρά μηνυμάτων" # #~ msgid "semaphore" #~ msgstr "σημαφόρος" # #~ msgid "weird file" #~ msgstr "παράξενο αρχείο" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "αρχεία fifo δεν υποστηρίζονται" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "αρχεία fifo δεν υποστηρίζονται" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "αρχεία fifo δεν υποστηρίζονται" # #, fuzzy #~ msgid "System error" #~ msgstr "σφάλμα εγγραφής" # #, fuzzy #~ msgid "Unknown error" #~ msgstr "Άγνωστο σφάλμα συστήματος" # #, fuzzy, c-format #~ msgid "%s: option '%s' is ambiguous; possibilities:" #~ msgstr "%s: η επιλογή `%s' είναι ασαφής\n" # #, fuzzy, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: η επιλογή `--%s' δεν επιτρέπει ορίσματα\n" # #, fuzzy, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: η επιλογή `%c%s' δεν επιτρέπει ορίσματα\n" # #, fuzzy, c-format #~ msgid "%s: option '--%s' requires an argument\n" #~ msgstr "%s: η επιλογή `-%s' απαιτεί ένα όρισμα\n" # #, fuzzy, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: μη αναγνωρίσιμη επιλογή `--%s'\n" # #, fuzzy, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: μη αναγνωρίσιμη επιλογή `%c%s'\n" # #, fuzzy, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: μη έγκυρη επιλογή -- %c\n" # #, fuzzy, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: η επιλογή απαιτεί ένα όρισμα -- %c\n" # #, fuzzy, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: η επιλογή `-W %s' είναι ασαφής\n" # #, fuzzy, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: η επιλογή `-W %s' δεν επιτρέπει ορίσματα\n" # #, fuzzy, c-format #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: η επιλογή `-%s' απαιτεί ένα όρισμα\n" # #, fuzzy, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "σφάλμα εγγραφής %s" # #, fuzzy, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "αδυναμία αλλαγής ιδιοκτησίας στο %s" # #, fuzzy, c-format #~ msgid "cannot create directory %s" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "αδυναμία αλλαγής ιδιοκτησίας στο %s" # #, fuzzy, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: μη έγκυρη κανονική έκφραση: %s" # #, fuzzy #~ msgid "Invalid collation character" #~ msgstr "μη έγκυρη τάξη χαρακτήρων `%s'" # #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "μη έγκυρη τάξη χαρακτήρων `%s'" # #, fuzzy #~ msgid "Invalid range end" #~ msgstr "%s: μη έγκυρη κανονική έκφραση: %s" # #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "η μνήμη εξαντλήθηκε" # #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: μη έγκυρη κανονική έκφραση: %s" # #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "σφάλμα στην ανεύρεση μέσω κανονικής έκφρασης" # #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: μη έγκυρη κανονική έκφραση: %s" # #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "σφάλμα στην ανεύρεση μέσω κανονικής έκφρασης" # #~ msgid "^[yY]" #~ msgstr "^[yYνΝ]" # #~ msgid "^[nN]" #~ msgstr "^[nNοΟ]" # #, fuzzy, c-format #~ msgid "setting permissions for %s" #~ msgstr "αδυναμία αλλαγής ιδιοκτησίας στο %s" # #, fuzzy #~ msgid "Bus error" #~ msgstr "σφάλμα εγγραφής" # #, fuzzy, c-format #~ msgid "cannot create pipe" #~ msgstr "αδύνατη η δημιουργία καταλόγου `%s'" # #, fuzzy #~ msgid "character out of range" #~ msgstr "%s: αριθμός γραμμής έξω από τα όρια" # #~ msgid "invalid user" #~ msgstr "μη έγκυρος χρήστης" # #~ msgid "invalid group" #~ msgstr "μη έγκυρη ομάδα" # #, fuzzy #~ msgid "invalid spec" #~ msgstr "μη έγκυρος χρήστης" # #, fuzzy, c-format #~ msgid "%s subprocess" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s: μη έγκυρη μορφή" # #, fuzzy #~ msgid "unknown stream" #~ msgstr "Άγνωστο σφάλμα συστήματος" # #, fuzzy, c-format #~ msgid "string comparison failed" #~ msgstr "αποτυχία εγγραφής" # #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Θέστε LC_ALL='C' για να παρακάμψετε το πρόβλημα." #, fuzzy, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'" # #, fuzzy, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "μη έγκυρο όρισμα %s για %s" # #, fuzzy, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "μη έγκυρο όρισμα %s για %s" # #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: μη αναγνωρίσιμη επιλογή -- %c\n" # #~ msgid "block size" #~ msgstr "μέγεθος μπλοκ" # #, fuzzy #~ msgid "%s exists but is not a directory" #~ msgstr "το `%s' υπάρχει ήδη άλλα δεν είναι κατάλογος" # #, fuzzy #~ msgid "cannot change owner and/or group of %s" #~ msgstr "δεν είναι δυνατό να παραληφθεί χρήστης και ομάδα" # #, fuzzy #~ msgid "cannot chdir to directory %s" #~ msgstr "αδύνατη η αλλαγή στο κατάλογο %s" # #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "" #~ "αδύνατη η λήψη της ομάδας εισαγωγής στο σύστημα ενός αριθμητικού UID" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/en@boldquot.header������������������������������������������������������������0000644�0000000�0000000�00000002472�14415562264�014702� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/en@quot.header����������������������������������������������������������������0000644�0000000�0000000�00000002264�14415562264�014040� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/eo.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005565�14445132162�012362� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������.��������������������������������� �����- �����G ��:���^ ��3��� ��/��� ��+��� ��'���) ��#���Q �����u ����� ����� ����� ����� ��.��� ����� �����0 ��-���G ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-19 18:26-0300 Last-Translator: Felipe Castro <fefcas@gmail.com> Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net> Language: eo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 1.8.11 �%s hejm-paĝo: <%s> �’�©�Ĝenerala helpo por uzi programaron GNU: <%s> �Permeso GPLv3+: GNU GPL versio 3 aŭ posta <%s>. Tio ĉi estas libera programaro: vi estas libera por ŝanĝi kaj redisdoni ĝin. Ekzistas NENIU GARANTIO, laŭ plej amplekse permesate de la leĝoj. �Pakigita de %s �Pakigita de %s (%s) �Raportu %s misojn al: %s �Raportu program-misojn al: %s �Nekonata sistem-eraro�Validaj argumentoj estas:�Verkita de %s kaj %s. �Verkita de %s, %s, %s, %s, %s, %s, %s, %s, %s, kaj aliaj. �Verkita de %s, %s, %s, %s, %s, %s, %s, %s, kaj %s. �Verkita de %s, %s, %s, %s, %s, %s, %s, kaj %s. �Verkita de %s, %s, %s, %s, %s, %s, kaj %s. �Verkita de %s, %s, %s, %s, %s, kaj %s. �Verkita de %s, %s, %s, %s, kaj %s. �Verkita de %s, %s, %s, kaj %s. �Verkita de %s, %s, kaj %s. �Verkita de %s. �‘�plursenca argumento %s por %s�ni fiaskis reveni al la komenca labordosierujo�malvalida argumento %s por %s�memoro estas plenigita�ne eblas registri la aktualan labordosierujon��������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/eo.po�������������������������������������������������������������������������0000644�0000000�0000000�00000062045�14445132161�012211� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of gnulib to Esperanto # Copyright (C) 2013, 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Felipe Castro <fefcas@gmail.com>, 2013, 2019. # msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-19 18:26-0300\n" "Last-Translator: Felipe Castro <fefcas@gmail.com>\n" "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 1.8.11\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "malvalida argumento %s por %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "plursenca argumento %s por %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Validaj argumentoj estas:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Nekonata sistem-eraro" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoro estas plenigita" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "ne eblas registri la aktualan labordosierujon" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "ni fiaskis reveni al la komenca labordosierujo" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "‘" #: lib/quotearg.c:355 msgid "'" msgstr "’" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pakigita de %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pakigita de %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Permeso GPLv3+: GNU GPL versio 3 aŭ posta <%s>.\n" "Tio ĉi estas libera programaro: vi estas libera por ŝanĝi kaj redisdoni " "ĝin.\n" "Ekzistas NENIU GARANTIO, laŭ plej amplekse permesate de la leĝoj.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Verkita de %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Verkita de %s kaj %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Verkita de %s, %s, kaj %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Verkita de %s, %s, %s,\n" "kaj %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Verkita de %s, %s, %s,\n" "%s, kaj %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Verkita de %s, %s, %s,\n" "%s, %s, kaj %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Verkita de %s, %s, %s,\n" "%s, %s, %s, kaj %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Verkita de %s, %s, %s,\n" "%s, %s, %s, %s,\n" "kaj %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Verkita de %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, kaj %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Verkita de %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, kaj aliaj.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Raportu program-misojn al: %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Raportu %s misojn al: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s hejm-paĝo: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Ĝenerala helpo por uzi programaron GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: valoro de %s estas malpli aŭ egala al %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: parametro ARGP_HELP_FMT postulas valoron" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Nekonata parametro ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Rubaĵo en ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Devigaj aŭ nedevigaj argumentoj por longaj modifiloj ankaŭ estas devigaj " #~ "aŭ nedevigaj por iu ajn korespondanta mallonga modifilo." #~ msgid "Usage:" #~ msgstr "Uzmaniero:" #~ msgid " or: " #~ msgstr " aŭ: " #~ msgid " [OPTION...]" #~ msgstr " [MODIFILO...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Provu '%s --help' aŭ '%s --usage' por pli da informo.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Raportu program-misojn al %s.\n" #~ msgid "give this help list" #~ msgstr "montri tiun ĉi help-liston" #~ msgid "give a short usage message" #~ msgstr "montri mallongan mesaĝon pri la uzmaniero" #~ msgid "NAME" #~ msgstr "NOMO" #~ msgid "set the program name" #~ msgstr "difini la program-nomon" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "halti dum SEK sekundoj (apriore 3600)" #~ msgid "print program version" #~ msgstr "montri program-version" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAM-ERARO) Neniu versio estas konata!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: tro da argumentoj\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAM-ERARO) Modifilo devus esti rekonita!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u liberitaj (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u kaŝmem (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u kaŝmem (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u kaŝmem (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "histogramo pri nombro-protokolado\n" #~ msgid "size log histogram\n" #~ msgstr "histogramo pri grando-protokolado\n" #~ msgid "density histogram\n" #~ msgstr "histogramo pri denso\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Bitset statistikoj:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Akumulitaj funkciadoj = %u\n" #~ msgid "cannot read stats file" #~ msgstr "ne eblas legi dosieron stats" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "malĝusta dosier-grando de stats\n" #~ msgid "cannot write stats file" #~ msgstr "ne eblas skibi en dosiero stats" #~ msgid "cannot open stats file for writing" #~ msgstr "ne eblas malfermi dosieron stats por skribi" #~ msgid "program error" #~ msgstr "programeraro" #~ msgid "stack overflow" #~ msgstr "staka troigo" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "ne eblas trovi provizoran dosierujon, provu difini $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "ne eblas krei provizoran dosierujon uzante la ŝablonon \"%s\"" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "ne eblas forigi la provizoran dosieron %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "ne eblas forigi la provizoran dosierujon %s" #~ msgid "error closing file" #~ msgstr "eraro dum fermo de dosiero" #~ msgid "write error" #~ msgstr "skrib-eraro" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "ni tenas la permesojn por %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "eraro dum malfermo de %s por legi" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "ne eblas malfermi la savdosieron %s por skribi" #, c-format #~ msgid "error reading %s" #~ msgstr "eraro dum lego de %s" #, c-format #~ msgid "error writing %s" #~ msgstr "eraro dum skribo de %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "eraro post legi %s" #~ msgid "fdopen() failed" #~ msgstr "fdopen() fiaskis" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "Kompililo C# ne estis trovata, ni provas instali mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "Virtuala maŝino C# ne estis trovata, ni provas instali mono" #~ msgid "unbalanced [" #~ msgstr "nekongruita [" #~ msgid "invalid character class" #~ msgstr "malvalida signa klaso" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "sintakso de signa klaso estas [[:space:]], ne [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "nefinigita eskapo \\" #~ msgid "invalid content of \\{\\}" #~ msgstr "malvalida enhavo de \\{\\}" #~ msgid "regular expression too big" #~ msgstr "regulesprimo tro grandas" #~ msgid "unbalanced (" #~ msgstr "nekongruita (" #~ msgid "no syntax specified" #~ msgstr "neniu sintakso estas indikita" #~ msgid "unbalanced )" #~ msgstr "nekongruita )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "subprocezo de %s fiaskis" #~ msgid "regular empty file" #~ msgstr "regula malplena dosiero" #~ msgid "regular file" #~ msgstr "regula dosiero" #~ msgid "directory" #~ msgstr "dosierujo" #~ msgid "symbolic link" #~ msgstr "simbola ligo" #~ msgid "message queue" #~ msgstr "mesaĝovico" #~ msgid "semaphore" #~ msgstr "semaforo" #~ msgid "shared memory object" #~ msgstr "komuna memorobjekto" #~ msgid "typed memory object" #~ msgstr "tipita memorbjekto" #~ msgid "block special file" #~ msgstr "bloka speciala dosiero" #~ msgid "character special file" #~ msgstr "bajta speciala dosiero" #~ msgid "contiguous data" #~ msgstr "kontinua datumaro" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "door" #~ msgstr "enirejo" #~ msgid "multiplexed block special file" #~ msgstr "multplektita bloka speciala dosiero" #~ msgid "multiplexed character special file" #~ msgstr "bajta multplektita speciala dosiero" #~ msgid "multiplexed file" #~ msgstr "multplektita dosiero" #~ msgid "named file" #~ msgstr "nomigita dosiero" #~ msgid "network special file" #~ msgstr "reta speciala dosiero" #~ msgid "migrated file with data" #~ msgstr "transmetis dosieron kun datumaro" #~ msgid "migrated file without data" #~ msgstr "transmetis dosieron sen datumaro" #~ msgid "port" #~ msgstr "pordo" #~ msgid "socket" #~ msgstr "konektingo" #~ msgid "whiteout" #~ msgstr "'whiteout'" #~ msgid "weird file" #~ msgstr "stranga dosiero" #~ msgid "Address family for hostname not supported" #~ msgstr "Adresfamilio por komputilretnomo ne estas subtenata" #~ msgid "Temporary failure in name resolution" #~ msgstr "Provizora paneo en solvo de retnomo" #~ msgid "Bad value for ai_flags" #~ msgstr "Malĝusta valoro por ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Neriparebla paneo en solvo de retnomo" #~ msgid "ai_family not supported" #~ msgstr "ai_family ne estas subtenata" #~ msgid "Memory allocation failure" #~ msgstr "Rezervo de memoro fiaskis" #~ msgid "No address associated with hostname" #~ msgstr "Neniu adreso estas asociita kun komputilretnomo" #~ msgid "Name or service not known" #~ msgstr "Nomo aŭ servo ne estas konata" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname ne estas subtenata por ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype ne estas subtenata" #~ msgid "System error" #~ msgstr "Sistem-eraro" #~ msgid "Argument buffer too small" #~ msgstr "Bufro por argumentoj tro malgrandas" #~ msgid "Processing request in progress" #~ msgstr "Procezado de peto daŭras" #~ msgid "Request canceled" #~ msgstr "Peto estas nuligita" #~ msgid "Request not canceled" #~ msgstr "Peto ne estas nuligita" #~ msgid "All requests done" #~ msgstr "Ĉiuj petoj estas plenumitaj" #~ msgid "Interrupted by a signal" #~ msgstr "Interrompita de signalo" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametra ĉeno ne estas ĝuste enkodita" #~ msgid "Unknown error" #~ msgstr "Nekonata eraro" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: la modifilo '%s%s' estas plursenca\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: la modifilo '%s%s' estas plursenca; eblecoj:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: nerekonata modifilo '%s%s'\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: la modifilo '%s%s' ne permesas argumenton\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: la modifilo '%s%s' postulas argumenton\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: malvalida modifilo -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: la modifilo postulas argumenton -- '%c'\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "malvalida argumento source_version por compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "malvalida argumento target_version por compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "ni fiaskis krei \"%s\"" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "eraro dum skribo de dosiero \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "Ĵava kompililo ne estis trovata, provu instali gcj aŭ difinu $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Ĵava virtuala maŝino ne estis trovata, provu instali gij aŭ difinu $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s subproceza eraro de en/eligo" #, c-format #~ msgid "cannot stat %s" #~ msgstr "ne eblas stat %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "ne eblas ŝanĝi permesojn de %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "ne eblas krei la dosierujon %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Ni fiaskis malfermi /dev/zero por legi" #~ msgid "creation of reading thread failed" #~ msgstr "kreo de leganta fadeno fiaskis" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "ne eblas difini neblokantan en/eligon al la subprocezo %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "komunikado kun la subprocezo %s fiaskis" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "skribo al la subprocezo %s fiaskis" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "lego el la subprocezo %s fiaskis" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "la subproceso %s ĉesis kun elira kodo %d" #~ msgid "creation of threads failed" #~ msgstr "kreo de fadenoj fiaskis" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "la subproceso %s ĉesis kun elira kodo %d" #~ msgid "Success" #~ msgstr "Sukceso" #~ msgid "No match" #~ msgstr "Neniu kongruaĵo" #~ msgid "Invalid regular expression" #~ msgstr "Malvalida regulesprimo" #~ msgid "Invalid collation character" #~ msgstr "Malvalida ordodifina signo" #~ msgid "Invalid character class name" #~ msgstr "Malvalida signa klasnomo" #~ msgid "Trailing backslash" #~ msgstr "Vosta retroklino" #~ msgid "Invalid back reference" #~ msgstr "Malvalida retroreferenco" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Senpara [, [^, [:, [., aŭ [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "Senpara ( aŭ \\(" #~ msgid "Unmatched \\{" #~ msgstr "Senpara \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Malvalida enhavo de \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Malvalida intervalofino" #~ msgid "Memory exhausted" #~ msgstr "Memoro estas plenigita" #~ msgid "Invalid preceding regular expression" #~ msgstr "Malvalida antaŭa regulesprimo" #~ msgid "Premature end of regular expression" #~ msgstr "Tro frua fino de regulesprimo" #~ msgid "Regular expression too big" #~ msgstr "Regulesprimo tro grandas" #~ msgid "Unmatched ) or \\)" #~ msgstr "Senpara ) aŭ \\)" #~ msgid "No previous regular expression" #~ msgstr "Neniu antaŭa regulesprimo" #~ msgid "^[yY]" #~ msgstr "^[jJyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "agordo de permesoj por %s" #~ msgid "Hangup" #~ msgstr "Malkonekto" #~ msgid "Interrupt" #~ msgstr "Interrompo" #~ msgid "Quit" #~ msgstr "Eliri" #~ msgid "Illegal instruction" #~ msgstr "Malvalida instrukcio" #~ msgid "Trace/breakpoint trap" #~ msgstr "Spursekva/paŭzopunkta kaptilo" #~ msgid "Aborted" #~ msgstr "Ĉesigita" #~ msgid "Floating point exception" #~ msgstr "Glitkoma escepto" #~ msgid "Killed" #~ msgstr "Mortigita" #~ msgid "Bus error" #~ msgstr "Bus-eraro" #~ msgid "Segmentation fault" #~ msgstr "Adres-eraro" #~ msgid "Broken pipe" #~ msgstr "Rompita dukto" #~ msgid "Alarm clock" #~ msgstr "Vekhorloĝo" #~ msgid "Terminated" #~ msgstr "Finigita" #~ msgid "Urgent I/O condition" #~ msgstr "Urĝa en/eliga stato" #~ msgid "Stopped (signal)" #~ msgstr "Haltigita (signalo)" #~ msgid "Stopped" #~ msgstr "Haltigita" #~ msgid "Continued" #~ msgstr "Daŭrigita" #~ msgid "Child exited" #~ msgstr "Ido finis" #~ msgid "Stopped (tty input)" #~ msgstr "Haltigita (enigo tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Haltigita (eligo tty)" #~ msgid "I/O possible" #~ msgstr "En/eligo eblas" #~ msgid "CPU time limit exceeded" #~ msgstr "Procezila tempolimo estas atingita" #~ msgid "File size limit exceeded" #~ msgstr "Dosiergranda limo estas atingita" #~ msgid "Virtual timer expired" #~ msgstr "Virtuala horloĝo senvalidiĝis" #~ msgid "Profiling timer expired" #~ msgstr "Profilanta horloĝo senvalidiĝis" #~ msgid "Window changed" #~ msgstr "Fenestro ŝanĝis" #~ msgid "User defined signal 1" #~ msgstr "Signalo 1 difinita de uzanto" #~ msgid "User defined signal 2" #~ msgstr "Signalo 2 difinita de uzanto" #~ msgid "EMT trap" #~ msgstr "EMT-kaptilo" #~ msgid "Bad system call" #~ msgstr "Malĝusta sistemvoko" #~ msgid "Stack fault" #~ msgstr "Stak-eraro" #~ msgid "Information request" #~ msgstr "Informo-peto" #~ msgid "Power failure" #~ msgstr "Elektra paneo" #~ msgid "Resource lost" #~ msgstr "Perdo de rimedo" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "eraro skribante al fermida dukto aŭ konektingo" #~ msgid "cannot create pipe" #~ msgstr "ne eblas krei dukton" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Realtempa signalo %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Nekonata signalo %d" #~ msgid "Execution times (seconds)" #~ msgstr "Tempo de funkciado (sekundoj)" #~ msgid "CPU user" #~ msgstr "CPU uzanto" #~ msgid "CPU system" #~ msgstr "CPU sistemo" #~ msgid "wall clock" #~ msgstr "mur-horloĝo" #~ msgid "iconv function not usable" #~ msgstr "funkcio iconv ne uzeblas" #~ msgid "iconv function not available" #~ msgstr "funkcio iconv ne disponeblas" #~ msgid "character out of range" #~ msgstr "signo estas for de intervalo" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "ne eblas konverti U+%04X al loka signaro" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "ne eblas konverti U+%04X al loka signaro: %s" #~ msgid "invalid user" #~ msgstr "malvalida uzanto" #~ msgid "invalid group" #~ msgstr "malvalida grupo" #~ msgid "invalid spec" #~ msgstr "malvalida spec" #~ msgid "unable to display error message" #~ msgstr "ne eblas montri erarmesaĝon" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle fiaskis" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "ne eblas restarigi fd %d: dup2 fiaskis" #, c-format #~ msgid "%s subprocess" #~ msgstr "subprocezo %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "subprocezo %s ricevis neripareblan signalon %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "ni fiaskis difini la dosieran priaĵon teksta/cifereca reĝimo" #~ msgid "stdin" #~ msgstr "ĉefenigujo" #~ msgid "stdout" #~ msgstr "ĉefeligujo" #~ msgid "stderr" #~ msgstr "ĉeferarujo" #~ msgid "unknown stream" #~ msgstr "nekonata fluaĵo" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "ni fiaskis remalfermi %s kun reĝimo %s" #~ msgid "string comparison failed" #~ msgstr "ĉena komparo fiaskis" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Agordu LC_ALL='C' por ĉirkauiri la problemon." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "La komparitaj ĉenoj estis %s kaj %s." #~ msgid "cannot perform formatted output" #~ msgstr "ne eblas efektivigi formatitan eligon" #~ msgid "standard file descriptors" #~ msgstr "laŭnormaj dosier-priaĵoj" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "malvalida %s%s-argumento '%s'" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "malvalida sufikso en %s%s-argumento '%s'" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "%s%s-argumento '%s' tro larĝas" #~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n" #~ msgstr "%s hejm-paĝo: <https://www.gnu.org/software/%s/>\n" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: parametro ARGP_HELP_FMT devas esti pozitiva" #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: la modifilo '--%s' ne permesas argumenton\n" #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: nerekonata modifilo '--%s'\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n" #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: la modifilo '-W %s' postulas argumenton\n" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/es.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005572�14445132162�012364� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������.��������������������������������� �����2 �����O ��9���e ��2��� ��.��� ��*��� ��&���, ��"���S �����v ����� ����� ����� ����� ��3��� ����� �����4 ��5���D ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2022-04-06 18:22-0500 Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx> Language-Team: Spanish <es@tp.org.es> Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); �Página web de %s: <%s> �»�(C)�Ayuda general para usar software de GNU: <%s> �Licencia GPLv3+: GPL de GNU versión 3 o posterior <%s>. Esto es software libre: tiene la libertad de cambiarlo y redistribuirlo. No tiene GARANTÍA, en la extensión permitida por la ley. �Empaquetado por %s �Empaquetado por %s (%s) �Reporte bichos de %s a: %s �Reporte bichos a: %s. �Error desconocido de sistema�Los argumentos válidos son:�Escrito por %s y %s. �Escrito por %s, %s, %s, %s, %s, %s, %s, %s, %s, y otros. �Escrito por %s, %s, %s, %s, %s, %s, %s, %s, y %s. �Escrito por %s, %s, %s, %s, %s, %s, %s, y %s. �Escrito por %s, %s, %s, %s, %s, %s, y %s. �Escrito por %s, %s, %s, %s, %s, y %s. �Escrito por %s, %s, %s, %s, y %s. �Escrito por %s, %s, %s, y %s. �Escrito por %s, %s, y %s. �Escrito por %s. �«�argumento %s ambiguo para %s�no se puede volver al directorio de trabajo inicial�argumento %s inválido para %s�memoria agotada�no se puede registrar el directorio de trabajo actual���������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/es.po�������������������������������������������������������������������������0000644�0000000�0000000�00000071756�14445132161�012226� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mensajes en español para gnulib 4.0.0.2567 # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2022 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2022. # # Los mensajes iniciales de esta traducción provienen de la traducción # de mailutils. # # Un agradecimiento especial a Santiago Vila por sus atinados comentarios # sobre esta traducción. # msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2022-04-06 18:22-0500\n" "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n" "Language-Team: Spanish <es@tp.org.es>\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argumento %s inválido para %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumento %s ambiguo para %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Los argumentos válidos son:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Error desconocido de sistema" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoria agotada" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "no se puede registrar el directorio de trabajo actual" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "no se puede volver al directorio de trabajo inicial" # Vamos a probar con el símbolo de cita tradicional en español, # a ver qué tal queda la cosa. #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "«" #: lib/quotearg.c:355 msgid "'" msgstr "»" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Empaquetado por %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Empaquetado por %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "(C)" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Licencia GPLv3+: GPL de GNU versión 3 o posterior <%s>.\n" "Esto es software libre: tiene la libertad de cambiarlo y redistribuirlo.\n" "No tiene GARANTÍA, en la extensión permitida por la ley.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Escrito por %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Escrito por %s y %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Escrito por %s, %s, y %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "y %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, y %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, y %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, y %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "y %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, y %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, y otros.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Reporte bichos a: %s.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Reporte bichos de %s a: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Página web de %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Ayuda general para usar software de GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: el valor %s es menor o igual a %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: El parámetro ARGP_HELP_FMT requiere de un valor" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Parámetro de ARGP_HELP_FMT desconocido" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Basura en ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Los argumentos obligatorios u opcionales para las opciones largas también " #~ "son obligatorios u opcionales para cualquier opción corta correspondiente." #~ msgid "Usage:" #~ msgstr "Modo de empleo:" #~ msgid " or: " #~ msgstr " o:" #~ msgid " [OPTION...]" #~ msgstr " [OPCIÓN...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Pruebe '%s --help' ó `%s --usage' para más información.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Reporte bichos a %s.\n" #~ msgid "give this help list" #~ msgstr "da esta lista de ayuda" #~ msgid "give a short usage message" #~ msgstr "da un mensaje corto de modo de empleo" #~ msgid "NAME" #~ msgstr "NOMBRE" #~ msgid "set the program name" #~ msgstr "establece el nombre del programa" #~ msgid "SECS" #~ msgstr "SEGUNDOS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "espera por SECS segundos (3600 por defecto)" #~ msgid "print program version" #~ msgstr "muestra la versión del programa" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ERROR DEL PROGRAMA) ¿¡Sin versión conocida!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Demasiados argumentos\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ERROR DEL PROGRAMA) ¿¡La opción debería reconocerse!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u liberados (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u en caché (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u en caché (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u en caché (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "histograma de registro de cuenta\n" #~ msgid "size log histogram\n" #~ msgstr "histograma de registro de tamaño\n" #~ msgid "density histogram\n" #~ msgstr "histograma de densidad\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Estadísticas de conjuntos de bits:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Ejecuciones acumuladas = %u\n" #~ msgid "cannot read stats file" #~ msgstr "no se puede leer el fichero de estadísticas" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "tamaño erróneo de fichero de estadísticas\n" #~ msgid "cannot write stats file" #~ msgstr "no se puede escribir el fichero de estadísticas" #~ msgid "cannot open stats file for writing" #~ msgstr "no se puede abrir el fichero de estadísticas para escritura" #~ msgid "program error" #~ msgstr "error del programa" #~ msgid "stack overflow" #~ msgstr "desbordamiento de la pila" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "no se puede encontrar un directorio temporal, pruebe definir $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "no se puede crear un directorio temporal usando la plantilla \"%s\"" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "no se puede borrar el fichero temporal %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "no se puede borrar el directorio temporal %s" #~ msgid "error closing file" #~ msgstr "error al cerrar el fichero" #~ msgid "write error" #~ msgstr "error de escritura" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "se conservan los permisos de %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "error al abrir %s para lectura" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "no se puede abrir el fichero de respaldo %s para escritura" #, c-format #~ msgid "error reading %s" #~ msgstr "error al leer %s" #, c-format #~ msgid "error writing %s" #~ msgstr "error al escribir en %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "error después de leer %s" #~ msgid "fdopen() failed" #~ msgstr "falló fdopen()" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "No se encontró un compilador de C#, pruebe instalando mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "No se encontró una máquina virtual de C#, pruebe instalando mono" #~ msgid "unbalanced [" #~ msgstr "[ sin pareja" #~ msgid "invalid character class" #~ msgstr "clase de carácter inválida" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "la sintaxis de clase de carácter es [[:space:]], no [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "escape \\ sin terminar" #~ msgid "invalid content of \\{\\}" #~ msgstr "contenido inválido de \\{\\}" #~ msgid "regular expression too big" #~ msgstr "expresión regular demasiado grande" #~ msgid "unbalanced (" #~ msgstr "( sin pareja" #~ msgid "no syntax specified" #~ msgstr "no se especificó la sintaxis" #~ msgid "unbalanced )" #~ msgstr ") sin pareja" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: falló el subproceso" #~ msgid "regular empty file" #~ msgstr "fichero regular vacío" #~ msgid "regular file" #~ msgstr "fichero regular" #~ msgid "directory" #~ msgstr "directorio" #~ msgid "symbolic link" #~ msgstr "enlace simbólico" #~ msgid "message queue" #~ msgstr "cola de mensajes" #~ msgid "semaphore" #~ msgstr "semáforo" #~ msgid "shared memory object" #~ msgstr "objeto de memoria compartida" #~ msgid "typed memory object" #~ msgstr "objeto de memoria con tipo" #~ msgid "block special file" #~ msgstr "fichero especial de bloques" #~ msgid "character special file" #~ msgstr "fichero especial de caracteres" #~ msgid "contiguous data" #~ msgstr "datos contiguos" #~ msgid "fifo" #~ msgstr "`fifo'" #~ msgid "door" #~ msgstr "puerta" #~ msgid "multiplexed block special file" #~ msgstr "fichero especial de bloques multiplexado" #~ msgid "multiplexed character special file" #~ msgstr "fichero especial de caracteres multiplexado" #~ msgid "multiplexed file" #~ msgstr "fichero multiplexado" #~ msgid "named file" #~ msgstr "fichero nombrado" #~ msgid "network special file" #~ msgstr "fichero especial de red" #~ msgid "migrated file with data" #~ msgstr "fichero migrado con datos" #~ msgid "migrated file without data" #~ msgstr "fichero migrado sin datos" #~ msgid "port" #~ msgstr "puerto" #~ msgid "socket" #~ msgstr "`socket'" #~ msgid "whiteout" #~ msgstr "blanqueado" #~ msgid "weird file" #~ msgstr "fichero extraño" #~ msgid "Address family for hostname not supported" #~ msgstr "No se admiten las familias de direcciones para hostname" #~ msgid "Temporary failure in name resolution" #~ msgstr "Fallo temporal en la resolución del nombre" #~ msgid "Bad value for ai_flags" #~ msgstr "Valor erróneo para ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Falla irrecuperable en la resolución del nombre" #~ msgid "ai_family not supported" #~ msgstr "no se admite ai_family" #~ msgid "Memory allocation failure" #~ msgstr "Falló la llamada al sistema `malloc'" #~ msgid "No address associated with hostname" #~ msgstr "No existe una dirección asociada con el nombre de anfitrión" #~ msgid "Name or service not known" #~ msgstr "Nombre o servicio desconocido" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "No se admite servname para ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "no se admite ai_socktype" #~ msgid "System error" #~ msgstr "Error del sistema" #~ msgid "Argument buffer too small" #~ msgstr "Almacenamiento temporal de argumentos demasiado pequeño" #~ msgid "Processing request in progress" #~ msgstr "Petición de procesamiento en progreso" #~ msgid "Request canceled" #~ msgstr "Se canceló la petición" #~ msgid "Request not canceled" #~ msgstr "No se canceló la petición" #~ msgid "All requests done" #~ msgstr "Se completaron todas las peticiones" #~ msgid "Interrupted by a signal" #~ msgstr "Interrupción por una señal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "La cadena de parámetro no está codificada correctamente" #~ msgid "Unknown error" #~ msgstr "Error desconocido" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: la opción '%s%s' es ambigua\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: la opción '%s%s' es ambigua; posibilidades:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: no se reconoce la opción '%s%s'\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: la opción '%s%s' no admite un argumento\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: la opción '%s%s' requiere de un argumento\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: opción inválida -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: la opción requiere de un argumento -- '%c'\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argumento source_version inválido para compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argumento target_version inválido para compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "no se puede crear \"%s\"" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "error al escribir el fichero \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "No se encontró un compilador de Java, pruebe instalando gcj o definiendo " #~ "$JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "No se encontró una máquina virtual de Java, pruebe instalando gij o " #~ "definiendo $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s: error de E/S del subproceso" #, c-format #~ msgid "cannot stat %s" #~ msgstr "no se puede ejecutar stat sobre %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "no se pueden cambiar los permisos de %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "no se puede crear el directorio %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Falló al abrir /dev/zero para lectura" #~ msgid "creation of reading thread failed" #~ msgstr "falló la creación del hilo de lectura" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "no se puede establecer E/S sin bloqueo para el subproceso %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "falló la comunicación con el subproceso %s" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "falló la escritura al subproceso %s" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "falló la lectura del subproceso %s" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "el subproceso %s terminó con el código de salida %d" #~ msgid "creation of threads failed" #~ msgstr "falló la creación de hilos" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "subproceso %s terminado con el código de salida %d" #~ msgid "Success" #~ msgstr "Éxito" #~ msgid "No match" #~ msgstr "Sin coincidencia" #~ msgid "Invalid regular expression" #~ msgstr "Expresión regular inválida" #~ msgid "Invalid collation character" #~ msgstr "Carácter de ordenamiento inválido" #~ msgid "Invalid character class name" #~ msgstr "Nombre de clase de carácter inválido" #~ msgid "Trailing backslash" #~ msgstr "Barra invertida sobrante" #~ msgid "Invalid back reference" #~ msgstr "Referencia hacia atrás inválida" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "[, [^, [:, [., o [= sin pareja" #~ msgid "Unmatched ( or \\(" #~ msgstr "( o \\( sin pareja" #~ msgid "Unmatched \\{" #~ msgstr "\\{ sin pareja" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Contenido inválido de \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Fin de rango inválido" #~ msgid "Memory exhausted" #~ msgstr "Memoria agotada" #~ msgid "Invalid preceding regular expression" #~ msgstr "Expresión regular precedente inválida" #~ msgid "Premature end of regular expression" #~ msgstr "Final prematuro de la expresión regular" #~ msgid "Regular expression too big" #~ msgstr "Expresión regular demasiado grande" #~ msgid "Unmatched ) or \\)" #~ msgstr ") o \\) sin pareja" #~ msgid "No previous regular expression" #~ msgstr "No hay una expresión regular previa" # Esto es para responder "sí" cuando nos pregunte. #~ msgid "^[yY]" #~ msgstr "^[sS]" # Y esto es para responder "no" cuando nos pregunte. #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "se cambian los permisos de %s" #~ msgid "Hangup" #~ msgstr "Colgar" #~ msgid "Interrupt" #~ msgstr "Interrumpir" #~ msgid "Quit" #~ msgstr "Salir" #~ msgid "Illegal instruction" #~ msgstr "Instrucción ilegal" #~ msgid "Trace/breakpoint trap" #~ msgstr "Captura de rastreo/punto de quiebre" #~ msgid "Aborted" #~ msgstr "Abortar" #~ msgid "Floating point exception" #~ msgstr "Excepción de coma flotante" #~ msgid "Killed" #~ msgstr "Matar" #~ msgid "Bus error" #~ msgstr "Error de bus" #~ msgid "Segmentation fault" #~ msgstr "Falta de segmentación" #~ msgid "Broken pipe" #~ msgstr "Tubería rota" #~ msgid "Alarm clock" #~ msgstr "Reloj de alarma" #~ msgid "Terminated" #~ msgstr "Terminar" #~ msgid "Urgent I/O condition" #~ msgstr "Condición de E/S urgente" #~ msgid "Stopped (signal)" #~ msgstr "Detener (señal)" #~ msgid "Stopped" #~ msgstr "Detener" #~ msgid "Continued" #~ msgstr "Continuar" #~ msgid "Child exited" #~ msgstr "Salió el hijo" #~ msgid "Stopped (tty input)" #~ msgstr "Detener (entrada de tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Detener (salida de tty)" #~ msgid "I/O possible" #~ msgstr "Posible E/S" #~ msgid "CPU time limit exceeded" #~ msgstr "Excede el límite de tiempo de CPU" #~ msgid "File size limit exceeded" #~ msgstr "Excede el límite de tamaño de fichero" #~ msgid "Virtual timer expired" #~ msgstr "Expira el temporizador virtual" #~ msgid "Profiling timer expired" #~ msgstr "Expira el temporizador de análisis de perfil" #~ msgid "Window changed" #~ msgstr "Cambio de ventana" #~ msgid "User defined signal 1" #~ msgstr "Señal 1 definida por el usuario" #~ msgid "User defined signal 2" #~ msgstr "Señal 2 definida por el usuario" #~ msgid "EMT trap" #~ msgstr "Captura EMT" #~ msgid "Bad system call" #~ msgstr "Llamada al sistema errónea" #~ msgid "Stack fault" #~ msgstr "Falta en la pila" #~ msgid "Information request" #~ msgstr "Petición de información" #~ msgid "Power failure" #~ msgstr "Falla de energía" #~ msgid "Resource lost" #~ msgstr "Recurso perdido" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "error al escribir a una tubería o socket cerrados" #~ msgid "cannot create pipe" #~ msgstr "no se puede crear una tubería" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Señal de tiempo real %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Señal %d desconocida" #~ msgid "Execution times (seconds)" #~ msgstr "Tiempos de ejecución (segundos)" #~ msgid "CPU user" #~ msgstr "CPU de usuario" #~ msgid "CPU system" #~ msgstr "CPU de sistema" #~ msgid "wall clock" #~ msgstr "reloj de pared" #~ msgid "iconv function not usable" #~ msgstr "la función iconv no es utilizable" #~ msgid "iconv function not available" #~ msgstr "la función iconv no está disponible" #~ msgid "character out of range" #~ msgstr "carácter fuera de rango" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "no se puede convertir U+%04X al conjunto de caracteres local" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "no se puede convertir U+%04X al conjunto de caracteres local: %s" # Me niego a considerar "inválido" como palabra "políticamente incorrecta". # Si algún "impedido físico" lee este mensaje y se molesta por ello, entonces # es que además de impedido físico es tonto, pues todo el mundo sabe que, # *en el contexto informático*, inválido e ilegal significan # "no permitido por la causa que sea". # Luego, que unas veces sea inválido y otras ilegal, son matices que el # original tiene y creo necesario respetar en la traducción. # # [ Tomás Bautista sugiere "inexistente", y también para grupo ] # # FIXME: # Eso sí, un día tendré que preguntar a los de GNU en qué se diferencia # "invalid" de "not allowed" de "not recognized" y todo eso... sv # #~ msgid "invalid user" #~ msgstr "usuario inválido" #~ msgid "invalid group" #~ msgstr "grupo inválido" # Me niego a considerar "inválido" como palabra "políticamente incorrecta". # Si algún "impedido físico" lee este mensaje y se molesta por ello, entonces # es que además de impedido físico es tonto, pues todo el mundo sabe que, # *en el contexto informático*, inválido e ilegal significan # "no permitido por la causa que sea". # Luego, que unas veces sea inválido y otras ilegal, son matices que el # original tiene y creo necesario respetar en la traducción. # # [ Tomás Bautista sugiere "inexistente", y también para grupo ] # # FIXME: # Eso sí, un día tendré que preguntar a los de GNU en qué se diferencia # "invalid" de "not allowed" de "not recognized" y todo eso... sv # #~ msgid "invalid spec" #~ msgstr "especificación inválida" #~ msgid "unable to display error message" #~ msgstr "no se puede mostrar el mensaje de error" #~ msgid "_open_osfhandle failed" #~ msgstr "falló _open_osfhandle" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "no se puede restaurar el df %d: falló dup2" #, c-format #~ msgid "%s subprocess" #~ msgstr "subproceso %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "el subproceso %s recibió la señal fatal %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "falló al establecer el modo texto/binario del descriptor de fichero" #~ msgid "stdin" #~ msgstr "entrada estándard" #~ msgid "stdout" #~ msgstr "salida estándard" #~ msgid "stderr" #~ msgstr "salida de error estándard" #~ msgid "unknown stream" #~ msgstr "flujo desconocido" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "falló al reabrir %s con modo %s" #~ msgid "string comparison failed" #~ msgstr "la comparación de cadenas falló" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "" #~ "Establezca LC_ALL='C' para solucionar este problema de forma temporal." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Las cadenas comparadas eran %s y %s." #~ msgid "cannot perform formatted output" #~ msgstr "no se puede mostrar la salida con formato" #~ msgid "standard file descriptors" #~ msgstr "descriptores de fichero estándar" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "el argumento %s%s '%s' es inválido" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "sufijo inválido en %s%s argumento '%s'" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "el argumento %s%s '%s' es demasiado grande" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: El parámetro ARGP_HELP_FMT debe ser positivo" #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: la opción '--%s' no admite un argumento\n" #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: no se reconoce la opción '--%s'\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: la opción '-W %s' no admite un argumento\n" #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: la opción '-W %s' requiere de un argumento\n" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Página web de %s: <http://www.gnu.org/software/%s/>\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opción ilegal -- %c\n" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Reporte bichos a <%s>.\n" #~ msgid "block size" #~ msgstr "tamaño del bloque" #~ msgid "%s exists but is not a directory" #~ msgstr "%s existe pero no es un directorio" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "no se puede cambiar el propietario y/o el grupo de %s" #~ msgid "cannot chdir to directory %s" #~ msgstr "no se puede cambiar al directorio %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "no se puede obtener el grupo de login de un UID numérico" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Este programa es software libre; se pueden redistribuir copias del " #~ "mismo \n" #~ "bajo los términos de la Licencia Pública General de GNU\n" #~ "<http://www.gnu.org/licenses/gpl.html>.\n" #~ "NO HAY GARANTÍA, a la extensión permitida por la ley.\n" #~ "\n" ������������������a2ps-4.15.5/po-gnulib/et.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004317�14445132162�012361� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ���������������#�����:�����O�����d��;���{��3�����/�����+�����'���G��#���o���������������������������-��������,�����G��*���X���������F�����Y�����[��(���]�����������������9�����1�����.���7��)���f��%�����!����������������������� �����"��0���B�����s�� �����.�������� �������������������������� ������������������������������������������� ������ ���������������� ��������%s home page: <%s> �'�(C)�Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 2.0.0.3462.e9796 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2011-05-19 15:10+0300 Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee> Language-Team: Estonian <linux-ee@lists.eenet.ee> Language: et MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); �%s koduleht: <%s> �'��%s vigadest teatage palun aadressil: %s �Tundmatu ssteemne viga�Lubatud argumendid on:�Kirjutanud %s ja %s. �Kirjutanud %s, %s, %s, %s, %s, %s, %s, %s, %s ja teised. �Kirjutanud %s, %s, %s, %s, %s, %s, %s, %s ja %s. �Kirjutanud %s, %s, %s, %s, %s, %s, %s, ja %s. �Kirjutanud %s, %s, %s, %s, %s, %s ja %s. �Kirjutanud %s, %s, %s, %s, %s ja %s. �Kirjutanud %s, %s, %s, %s ja %s. �Kirjutanud %s, %s, %s ja %s. �Kirjutanud %s, %s ja %s. �Kirjutanud %s. �`�segane argument %s vtmele `%s'�esialgsesse tkataloogi ei nnestu tagasi minna�vigane argument %s vtmel `%s'�mlu on otsas�ei nnestu registreerida jooksvat tkataloogi������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/et.po�������������������������������������������������������������������������0000644�0000000�0000000�00000045301�14445132161�012212� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is distributed under the same license as the gnulib package. # Estonian translations for gnulib # Copyright (C) 2000 Free Software Foundation, Inc. # Toomas Soome <Toomas.Soome@microlink.ee>, 2011. # msgid "" msgstr "" "Project-Id-Version: gnulib 2.0.0.3462.e9796\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2011-05-19 15:10+0300\n" "Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n" "Language-Team: Estonian <linux-ee@lists.eenet.ee>\n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-15\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "vigane argument %s vtmel `%s'" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "segane argument %s vtmele `%s'" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Lubatud argumendid on:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Tundmatu ssteemne viga" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "mlu on otsas" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "ei nnestu registreerida jooksvat tkataloogi" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "esialgsesse tkataloogi ei nnestu tagasi minna" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Kirjutanud %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Kirjutanud %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Kirjutanud %s, %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Kirjutanud %s, %s, %s\n" "ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Kirjutanud %s, %s, %s,\n" "%s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Kirjutanud %s, %s, %s,\n" "%s, %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Kirjutanud %s, %s, %s,\n" "%s, %s, %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Kirjutanud %s, %s, %s,\n" "%s, %s, %s, %s,\n" "ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Kirjutanud %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Kirjutanud %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s ja teised.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "Vigadest teatage palun aadressil: %s.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "%s vigadest teatage palun aadressil: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s koduleht: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "" "ldine abiinfo GNU tarkvara kasutamisest: <http://www.gnu.org/gethelp/>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s vrtus on viksem vi vrdne kui %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT parameeter nuab vrtust" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parameeter peab olema positiivne" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Tundmatu ARGP_HELP_FMT parameeter" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Prgi ARGP_HELP_FMT sees: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Kohustuslikud argumendid pikkadele vtmetele on kohustuslikud ka " #~ "lhikestele." #~ msgid "Usage:" #~ msgstr "Kasutamine:" #~ msgid " or: " #~ msgstr " vi: " #~ msgid " [OPTION...]" #~ msgstr " [VTI]..." #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Lisainfo saamiseks proovige `%s --help' vi `%s --usage'.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Vigadest teatage palun aadressil %s.\n" #~ msgid "give this help list" #~ msgstr "anna see abiinfo" #~ msgid "give a short usage message" #~ msgstr "anna kasutamise lhikirjeldus" #~ msgid "NAME" #~ msgstr "NIMI" #~ msgid "set the program name" #~ msgstr "sea programmi nimi" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "oota SEK sekundit (vaikimisi 3600)" #~ msgid "print program version" #~ msgstr "vljasta programmi versioon" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMMI VIGA) Versioon ei ole teada!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Liiga palju argumente\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMMI VIGA) Vti pidanuks olema teada!?" #~ msgid "program error" #~ msgstr "programmi viga" #~ msgid "stack overflow" #~ msgstr "pinu letitumine" #, c-format #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "ei leia ajutist kataloogi, proovige seada $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "vormiga \"%s\" ei saa ajutist kataloogi luua" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "ajutist faili %s ei nnestu kustutada" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "ajutist kataloogi %s ei nnestu kustutada" #~ msgid "error closing file" #~ msgstr "viga faili sulgemisel" #~ msgid "write error" #~ msgstr "viga kirjutamisel" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "silitan %s iguseid" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "viga \"%s\" lugemiseks avamisel" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "Varukoopia faili \"%s\" ei nnestu kirjutamiseks avada" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "viga \"%s\" lugemisel" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "viga \"%s\" kirjutamisel" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "viga peale \"%s\" lugemist" #, c-format #~ msgid "fdopen() failed" #~ msgstr "fdopen() ebannestus" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C# kompilaatorit pole, proovige paigaldada pnet" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "C# virtuaalmasinat pole, proovige paigaldada pnet" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: alamprotsess sai vea" #~ msgid "regular empty file" #~ msgstr "tavaline thi fail" #~ msgid "regular file" #~ msgstr "tavaline fail" #~ msgid "directory" #~ msgstr "Kataloog" #~ msgid "block special file" #~ msgstr "blokkseadme fail" #~ msgid "character special file" #~ msgstr "smbolseadme fail" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "nimeviide" #~ msgid "socket" #~ msgstr "sokkel" #~ msgid "message queue" #~ msgstr "teadete jrjekord" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "jagatud mlu objekt" #~ msgid "typed memory object" #~ msgstr "tbitud mlu objekt" #~ msgid "weird file" #~ msgstr "veider fail" #~ msgid "Address family for hostname not supported" #~ msgstr "Aadressiperekonda vi hostinime ei toetata" #~ msgid "Temporary failure in name resolution" #~ msgstr "Ajutine trge nime lahendamisel" #~ msgid "Bad value for ai_flags" #~ msgstr "Vigane ai_flags vrtus" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "nime lahendamisl tekkis taastumatu trge" #~ msgid "ai_family not supported" #~ msgstr "ai_family ei toetata" #~ msgid "Memory allocation failure" #~ msgstr "Trge mlu haaramisel" #~ msgid "No address associated with hostname" #~ msgstr "Hosti nimega ei ole aadresse seostatud" #~ msgid "Name or service not known" #~ msgstr "Nimi vi teenus on tundmatu" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "ai_socktype ei toeta teenuse nime" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype ei toetata" #~ msgid "System error" #~ msgstr "Ssteemne viga" #~ msgid "Argument buffer too small" #~ msgstr "Argumentide puhver on liiga vike" #~ msgid "Processing request in progress" #~ msgstr "Pringu ttlemine kib" #~ msgid "Request canceled" #~ msgstr "Pring katkestati" #~ msgid "Request not canceled" #~ msgstr "Pringut ei katkestatud" #~ msgid "All requests done" #~ msgstr "Kik pringud tidetud" #~ msgid "Interrupted by a signal" #~ msgstr "Katkestatud signaaliga" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parameetersne ei ole korrektselt kodeeritud" #~ msgid "Unknown error" #~ msgstr "Tundmatu viga" #, c-format #~ msgid "%s: option '%s' is ambiguous\n" #~ msgstr "%s: vti '%s' on segane\n" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: vti '--%s' ei luba kasutada argumenti\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: vti '%c%s' ei luba kasutada argumenti\n" #, c-format #~ msgid "%s: option '%s' requires an argument\n" #~ msgstr "%s: vti '%s' nuab argumenti\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: tundmatu vti '--%s'\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: tundmatu vti '%c%s'\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: vigane vti -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: vti nuab argumenti -- '%c'\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: vti '-W %s' on segane\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: vti '-W %s' ei luba kasutada argumenti\n" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "funktsiooni compile_java_class argument source_version on vigane" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "funktsiooni compile_java_class argument target_version on vigane" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "\"%s\" ei nnestu luua" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "viga faili \"%s\" kirjutamisel" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "Java kompilaatorit pole, proovige paigaldada gcj vi seada $JAVAC" #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "Java virtuaalmasinat pole, proovige paigaldada gcj vi seada $JAVAC" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s: alamprotsess sai S/V vea" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "ei nnestu muuta %s igusi" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "kataloogi `%s' ei nnestu luua" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Faili /dev/zero saa lugemiseks avada" #, c-format #~ msgid "creation of reading thread failed" #~ msgstr "lugemise lime loomine ebannestus" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "hendus %s alamprotsessiga ebannestus" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "kirjutamine %s alamprotsessi sai vea" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "lugemine %s alamprotsessist sai vea" #, c-format #~ msgid "creation of threads failed" #~ msgstr "limede loomine ebannestus" #, c-format #~ msgid "cannot create pipe" #~ msgstr "ei nnestu luua toru" #~ msgid "Invalid regular expression" #~ msgstr "Vigane regulaaravaldis" #~ msgid "Invalid collation character" #~ msgstr "Vigane vrdlussmbol" #~ msgid "Invalid character class name" #~ msgstr "Vigane smbolite klassi nimi" #~ msgid "Invalid back reference" #~ msgstr "Vigane tagasiviide" #~ msgid "Invalid range end" #~ msgstr "Vigane vahemiku lpp" #~ msgid "Memory exhausted" #~ msgstr "Mlu on otsas" #~ msgid "Invalid preceding regular expression" #~ msgstr "Vigane eelnev regulaaravaldis" #~ msgid "Premature end of regular expression" #~ msgstr "Enneaegne regulaaravaldise lpp" #~ msgid "Regular expression too big" #~ msgstr "Regulaaravaldis on liiga pikk" #~ msgid "No previous regular expression" #~ msgstr "Eelmist regulaaravaldist pole" #~ msgid "^[yY]" #~ msgstr "^[jJ]" #~ msgid "^[nN]" #~ msgstr "^[eE]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "ei nnestu seada %s igusi" #~ msgid "Bus error" #~ msgstr "Siini viga" #~ msgid "Power failure" #~ msgstr "Toite viga" #~ msgid "iconv function not usable" #~ msgstr "iconv funktsioon ei ole kasutatav" #~ msgid "iconv function not available" #~ msgstr "iconv funktsioon puudub" #~ msgid "character out of range" #~ msgstr "smbol on piirkonnast vljas" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "U+%04X ei saa lokaalsesse kooditabelisse teisendada" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "U+%04X ei saa lokaalsesse kooditabelisse teisendada: %s" #~ msgid "invalid user" #~ msgstr "vigane kasutaja" #~ msgid "invalid group" #~ msgstr "vigane grupp" #~ msgid "invalid spec" #~ msgstr "vigane spetsifikatsioon" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s koduleht: <http://www.gnu.org/software/%s/>\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle ebannestus" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "failipidet %d ei nnestu taastada: dup2 ebannestus" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s alamprotsess" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s alamprotsess sai fataalse signaali %d" #~ msgid "stdin" #~ msgstr "standardsisend" #~ msgid "stdout" #~ msgstr "standardvljund" #~ msgid "stderr" #~ msgstr "standardvead" #~ msgid "unknown stream" #~ msgstr "undmatu voog" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "reopen %s moodiga %s ebannestus" #, c-format #~ msgid "string comparison failed" #~ msgstr "snede vrdlus ebannestus" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Probleemi lahendamiseks seadke LC_ALL=C." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Vrreldi snesid %s ja %s." #, c-format #~ msgid "cannot perform formatted output" #~ msgstr "ei nnestu luua vormindatud vljundit" #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "vigane %s%s argument `%s'" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "vigane sufiks %s%s argument `%s'" #, c-format #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s argument `%s' on liiga suur" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/eu.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000003600�14445132162�012354� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<����������������������������;�����3���0��/���d��+�����'�����#�������� �����,�����H�����X�����Z�����w��������������n�����p�� ����������>�����1�����.���3��*���b��%�����!�������������������������%�����)���E�����o������������� ���������������������������� ������������������������������������� ��� ��������� �����������'�Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�invalid argument %s for %s�memory exhausted�Project-Id-Version: coreutils-5.2.1 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2005-01-04 20:27+0100 Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net> Language-Team: Basque <translation-team-eu@lists.sourceforge.net> Language: eu MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); �'�Sistema-errore ezezaguna�Baliozko argumentuak hauek dira:�%s-k eta %s-k idatzia. �%s, %s, %s, %s, %s, %s, %s, %s, %s,eta beste batzuk idatzia. �%s, %s, %s, %s, %s, %s, %s,%s, eta %s-k idatzia. �%s, %s, %s, %s, %s, %s, %s, eta %s-k idatzia. �%s, %s, %s, %s, %s, %s, eta %s-k idatzia. �%s, %s, %s, %s, %s eta %s-k idatzia. �%s, %s, %s, %s eta %s-k idatzia. �%s, %s, %s, eta %s-k idatzia. �%s, %s eta %s-k idatzia. �%s-k idatzia. �`�%s argumentu anbiguoa da %s-(r)entzat�%s baliogabeko argumentua da %s-(r)entzat�memoria agortuta���������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/eu.po�������������������������������������������������������������������������0000644�0000000�0000000�00000031451�14445132161�012214� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of coreutils-5.2.1.po to Euskara # Basque translation of 5.2.1. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the Coreutils-5.2.1 package. # Mikel Olasagasti <hey_neken@mundurat.net>, 2004. # msgid "" msgstr "" "Project-Id-Version: coreutils-5.2.1\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2005-01-04 20:27+0100\n" "Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net>\n" "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "%s baliogabeko argumentua da %s-(r)entzat" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "%s argumentu anbiguoa da %s-(r)entzat" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Baliozko argumentuak hauek dira:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Sistema-errore ezezaguna" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoria agortuta" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Inprimatu Fitxategi-izena - e e" #: lib/openat-die.c:57 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Inprimatu Fitxategi-izena - e e" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "%s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "%s-k eta %s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "%s, %s eta %s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "%s, %s, %s,\n" "eta %s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "%s, %s, %s,\n" "%s eta %s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "%s, %s, %s,\n" "%s, %s eta %s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "%s, %s, %s,\n" "%s, %s, %s, eta %s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "%s, %s, %s,\n" "%s, %s, %s, %s,\n" "eta %s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "%s, %s, %s,\n" "%s, %s, %s, %s,%s, eta %s-k idatzia.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "%s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s,eta beste batzuk idatzia.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" "Programa-erroreen berri emateko idatzi hona: <%s>.\n" #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Programa-erroreen berri emateko idatzi hona: <%s>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Beharrezkoak diren argumentuak aukera luzeetan, beharrezkoak dira aukera " #~ "txikietan ere.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Erabilera: %s [AUKERA]...\n" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Saiatu `%s --help' erabiltzen informazio gehiagorako.\n" #~ msgid "NAME" #~ msgstr "IZENA" #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "e" #, fuzzy #~ msgid "program error" #~ msgstr "irakurketa errorea" #~ msgid "write error" #~ msgstr "idazketa errorea" #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "errepikatu arte" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "errepikatu arte" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "errorea %s irakurtzen" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "errorea %s idazten" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "errorea %s irakurtzen" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "irekitzeak huts egin du" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "baliogabea" #~ msgid "regular empty file" #~ msgstr "fitxategi erregular hutsa" #~ msgid "regular file" #~ msgstr "Espresio erregularra" #~ msgid "directory" #~ msgstr "direktorioa" #, fuzzy #~ msgid "block special file" #~ msgstr "bloke tamainua" #, fuzzy #~ msgid "character special file" #~ msgstr "offset karakterea zero da" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "esteka sinbolikoa" #~ msgid "socket" #~ msgstr "socket-a" #~ msgid "message queue" #~ msgstr "Bidali ilara" #~ msgid "semaphore" #~ msgstr "semaforoa" #~ msgid "shared memory object" #~ msgstr "memoria partekatuaren objektua" #, fuzzy #~ msgid "typed memory object" #~ msgstr "memoria partekatuaren objektua" #~ msgid "weird file" #~ msgstr "fitxategi arraroa" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo fitxategiek ez dute euskarririk" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo fitxategiek ez dute euskarririk" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo fitxategiek ez dute euskarririk" #, fuzzy #~ msgid "System error" #~ msgstr "idazketa errorea" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Sistema-errore ezezaguna" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: '%s' aukera anbiguoa da\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: '--%s' aukerak ez du argumenturik onartzen\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: '%c%s' aukerak ez du argumenturik onartzen\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: '%s' aukerak argumentu bat behar du\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: '--%s' aukera ezezaguna\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: '%c%s' aukera ezezaguna\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: -- %c aukera ilegala\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: -- %c aukera baliogabea\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: aukerak --%c argumentu bat behar du\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: '-W %s' aukera anbiguoa da\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: '-W.%s' aukerak ez du argumenturik onartzen\n" #~ msgid "block size" #~ msgstr "bloke tamainua" #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s badago baina ez da direktorio bat" #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "ezin da %s-(r)en jabetza eta/edo taldea aldatu" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "ezin da %s direktorioa sortu" #, fuzzy, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "ezin da %s direktoriora aldatu" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "ezin da %s-(r)en baimenak aldatu" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "baimenak errepikatu arte" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "ezin da %s esteka sortu" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "baliogabea" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "baliogabea" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "memoria agortuta" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "baliogabea" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "in bilatu" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "baliogabea" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "in bilatu" #~ msgid "^[yY]" #~ msgstr "^[bB]" #~ msgid "^[nN]" #~ msgstr "^[eE]" #~ msgid "character out of range" #~ msgstr "karakterea barrutitik kanpora" #~ msgid "invalid user" #~ msgstr "baliogabeko erabiltzailea" #~ msgid "invalid group" #~ msgstr "baliogabeko taldea" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "ezin da UID zenbaki baten saio taldea lortu" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "programa da eta edo - Orokorra Publikoa Lizentzia bider Libre Softwarea " #~ "edo e e" #~ msgid "string comparison failed" #~ msgstr "kate konparaketak huts egin du" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Ezarri LC_ALL='C' arazo hau une batez konpontzeko" #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Alderatutako bi kateak %s eta %s izan dira." �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/fi.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005773�14445132162�012356� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������1��������������������2�����F���( �����o ����� ����� ��:��� ��4��� ��0���. ��,���_ ��(��� ��$��� �� ��� ����� ����� �����* ��-���. ��6���\ ��*��� �� ��� ��.��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-12-26 12:28+0200 Last-Translator: Lauri Nurmi <lanurmi@iki.fi> Language-Team: Finnish <translation-team-fi@lists.sourceforge.net> Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural= ( n!=1) ; X-Generator: Poedit 2.2.4 �%s-kotisivu: <%s> �”�©�Yleisohjeita GNU-ohjelmistojen käyttöön: <%s> �Lisenssi GPLv3+: GNU GPL versio 3 tai myöhempi <%s>. "Tämä on vapaa ohjelmisto; sitä saa vapaasti muuttaa ja levittää "edelleen. Siinä määrin kuin laki sallii, TAKUUTA EI OLE. �Paketoinut %s �Paketoinut %s (%s) �Ilmoita %s-vioista (englanniksi) osoitteeseen %s. �Lähetä ilmoitukset ohjelmistovioista (englanniksi) osoitteeseen: %s �Tuntematon järjestelmävirhe�Kelvolliset argumentit:�Kirjoittaneet %s ja %s. �Kirjoittaneet %s, %s, %s, %s, %s, %s, %s, %s, %s ja muut. �Kirjoittaneet %s, %s, %s, %s, %s, %s, %s, %s ja %s. �Kirjoittaneet %s, %s, %s, %s, %s, %s, %s ja %s. �Kirjoittaneet %s, %s, %s, %s, %s, %s ja %s. �Kirjoittaneet %s, %s, %s, %s, %s ja %s. �Kirjoittaneet %s, %s, %s, %s ja %s. �Kirjoittaneet %s, %s, %s ja %s. �Kirjoittaneet %s, %s ja %s. �Kirjoittanut %s. �”�moniselitteinen argumentti %s kontekstille %s�palaaminen alkuperäiseen työhakemistoon epäonnistui�virheellinen argumentti %s kontekstille %s�muisti loppui�nykyisen työhakemiston kirjaaminen ei onnistu������a2ps-4.15.5/po-gnulib/fi.po�������������������������������������������������������������������������0000644�0000000�0000000�00000062342�14445132161�012204� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Finnish messages for gnulib. # Copyright © 2002, 2003, 2004, 2009, 2010, 2011, 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Lauri Nurmi <lanurmi@iki.fi>, 2003, 2004, 2019. # Matti Koskimies <matti@apulanta.fi>, 2002. # Jorma Karvonen <karvonen.jorma@gmail.com>, 2009-2011. # msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-12-26 12:28+0200\n" "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n" "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural= ( n!=1) ;\n" "X-Generator: Poedit 2.2.4\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "virheellinen argumentti %s kontekstille %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "moniselitteinen argumentti %s kontekstille %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Kelvolliset argumentit:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Tuntematon järjestelmävirhe" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "muisti loppui" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "nykyisen työhakemiston kirjaaminen ei onnistu" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "palaaminen alkuperäiseen työhakemistoon epäonnistui" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "”" #: lib/quotearg.c:355 msgid "'" msgstr "”" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Paketoinut %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Paketoinut %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Lisenssi GPLv3+: GNU GPL versio 3 tai myöhempi <%s>.\n" "\"Tämä on vapaa ohjelmisto; sitä saa vapaasti muuttaa ja levittää\n" "\"edelleen. Siinä määrin kuin laki sallii, TAKUUTA EI OLE.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Kirjoittanut %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Kirjoittaneet %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Kirjoittaneet %s, %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Kirjoittaneet %s, %s,\n" "%s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Kirjoittaneet %s, %s,\n" "%s, %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Kirjoittaneet %s, %s,\n" "%s, %s, %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Kirjoittaneet %s, %s,\n" "%s, %s, %s,\n" "%s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Kirjoittaneet %s, %s,\n" "%s, %s, %s, %s,\n" "%s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Kirjoittaneet %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s ja %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Kirjoittaneet %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, %s ja muut.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Lähetä ilmoitukset ohjelmistovioista (englanniksi) osoitteeseen: %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Ilmoita %s-vioista (englanniksi) osoitteeseen %s.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-kotisivu: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Yleisohjeita GNU-ohjelmistojen käyttöön: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s-arvo on pienempi tai yhtäsuuri kuin %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT-parametri vaatii arvon" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Tuntematon ARGP_HELP_FMT-parametri" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Roskaa ARGP_HELP_FMT:ssä: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Pitkien valitsinten pakolliset tai valinnaiset argumentit ovat pakollisia " #~ "tai valinnaisia myös vastaaville lyhyille." #~ msgid "Usage:" #~ msgstr "Käyttö:" #~ msgid " or: " #~ msgstr " tai: " #~ msgid " [OPTION...]" #~ msgstr " [VALITSIN...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Lisätietoja komennolla ”%s --help” tai ”%s --usage”.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Lähetä raportit ohjelmistovioista (englanniksi) osoitteeseen %s.\n" #~ msgid "give this help list" #~ msgstr "anna tämä opasteluettelo" #~ msgid "give a short usage message" #~ msgstr "anna lyhyt käyttöohje" #~ msgid "NAME" #~ msgstr "NIMI" #~ msgid "set the program name" #~ msgstr "aseta ohjelman nimi" #~ msgid "SECS" #~ msgstr "S" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "odota S sekuntia (oletus 3600)" #~ msgid "print program version" #~ msgstr "tulosta ohjelman versio" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(OHJELMAVIRHE) Versiota ei tiedetä!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Liian monta argumenttia\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(OHJELMAVIRHE) Valitsin olisi pitänyt tunnistaa‽" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u vapautettu (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u vapautettu (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u välimuistitettu (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u välimuistitettu (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "määrälokihistogrammi\n" #~ msgid "size log histogram\n" #~ msgstr "kokolokihistogrammi\n" #~ msgid "density histogram\n" #~ msgstr "tiheyshistogrammi\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "Bitset-tilasto:\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Kertyneet ajot = %u\n" #~ msgid "cannot read stats file" #~ msgstr "ei voida lukea tilastotiedostoa" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "virheellinen tilastotiedoston koko\n" #~ msgid "cannot write stats file" #~ msgstr "ei voida kirjoittaa tilastotiedostoa" #~ msgid "cannot open stats file for writing" #~ msgstr "ei voida avata tilastotiedostoa kirjoitettavaksi" #~ msgid "program error" #~ msgstr "ohjelmavirhe" #~ msgid "stack overflow" #~ msgstr "pinon ylivuoto" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "tilapäisen hakemiston löytäminen epäonnistui, yritä asettaa $TMPDIR-" #~ "muuttuja" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "ei voida luoda tilapäishakemistoa mallin ”%s” pohjalta" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "ei voida poistaa tilapäistiedostoa %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "ei voida poistaa tilapäishakemistoa %s" #~ msgid "error closing file" #~ msgstr "virhe tiedoston sulkemisessa" #~ msgid "write error" #~ msgstr "kirjoitusvirhe" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "säilytetään oikeudet kohteelle %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "virhe avattaessa tiedostoa %s luettavaksi" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "ei voida avata varmuuskopiotiedostoa %s kirjoitettavaksi" #, c-format #~ msgid "error reading %s" #~ msgstr "virhe luettaessa tiedostoa %s" #, c-format #~ msgid "error writing %s" #~ msgstr "virhe kirjoitettaessa tiedostoa %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "virhe tiedoston %s lukemisen jälkeen" #~ msgid "fdopen() failed" #~ msgstr "fdopen() epäonnistui" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "C#-kääntäjää ei löytynyt, yritä asentaa mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "C#-virtuaalikonetta ei löytynyt, yritä asentaa mono" #~ msgid "unbalanced [" #~ msgstr "pariton [" #~ msgid "invalid character class" #~ msgstr "virheellinen merkkiluokka" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "merkkiluokkasyntaksi on [[:space:]], ei [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "keskeneräinen \\-ohjaussarja" #~ msgid "invalid content of \\{\\}" #~ msgstr "virheellinen \\{\\}:n sisältö" #~ msgid "regular expression too big" #~ msgstr "säännöllinen lauseke on liian suuri" #~ msgid "unbalanced (" #~ msgstr "pariton (" #~ msgid "no syntax specified" #~ msgstr "syntaksia ei ole määritelty" #~ msgid "unbalanced )" #~ msgstr "pariton )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s-aliprosessi epäonnistui" #~ msgid "regular empty file" #~ msgstr "tavallinen tyhjä tiedosto" #~ msgid "regular file" #~ msgstr "tavallinen tiedosto" #~ msgid "directory" #~ msgstr "hakemisto" #~ msgid "symbolic link" #~ msgstr "symbolinen linkki" #~ msgid "message queue" #~ msgstr "viestijono" #~ msgid "semaphore" #~ msgstr "semafori" #~ msgid "shared memory object" #~ msgstr "jaetun muistin objekti" #~ msgid "typed memory object" #~ msgstr "tyypitetty muistiobjekti" #~ msgid "block special file" #~ msgstr "lohkoerikoistiedosto" #~ msgid "character special file" #~ msgstr "merkkierikoistiedosto" #~ msgid "contiguous data" #~ msgstr "yhtenäistä dataa" #~ msgid "fifo" #~ msgstr "putkitiedosto" #~ msgid "door" #~ msgstr "ovi" #~ msgid "multiplexed block special file" #~ msgstr "limitetty lohkoerikoistiedosto" #~ msgid "multiplexed character special file" #~ msgstr "limitetty merkkierikoistiedosto" #~ msgid "multiplexed file" #~ msgstr "limitetty tiedosto" #~ msgid "named file" #~ msgstr "nimetty tiedosto" #~ msgid "network special file" #~ msgstr "verkkoerikoistiedosto" #~ msgid "migrated file with data" #~ msgstr "datallinen siirretty tiedosto" #~ msgid "migrated file without data" #~ msgstr "dataton siirretty tiedosto" #~ msgid "port" #~ msgstr "portti" #~ msgid "socket" #~ msgstr "pistoke" #~ msgid "whiteout" #~ msgstr "himmeä" #~ msgid "weird file" #~ msgstr "outo tiedosto" #~ msgid "Address family for hostname not supported" #~ msgstr "Konenimen osoiteperhe ei ole tuettu" #~ msgid "Temporary failure in name resolution" #~ msgstr "Väliaikainen häiriö nimenselvityksessä" #~ msgid "Bad value for ai_flags" #~ msgstr "Virheellinen arvo ai_flags-kentälle" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Korjautumaton häiriö nimenselvityksessä" #~ msgid "ai_family not supported" #~ msgstr "ai_family ei ole tuettu" #~ msgid "Memory allocation failure" #~ msgstr "Muistinvarausvirhe" #~ msgid "No address associated with hostname" #~ msgstr "Konenimeen ei liity osoitetta" #~ msgid "Name or service not known" #~ msgstr "Nimi tai palvelu on tuntematon" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname ei ole tuettu kohteelle ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype ei ole tuettu" #~ msgid "System error" #~ msgstr "Järjestelmävirhe" #~ msgid "Argument buffer too small" #~ msgstr "Argumenttipuskuri on liian pieni" #~ msgid "Processing request in progress" #~ msgstr "Pyynnön käsittely käynnissä" #~ msgid "Request canceled" #~ msgstr "Pyyntö peruttu" #~ msgid "Request not canceled" #~ msgstr "Pyyntöä ei peruttu" #~ msgid "All requests done" #~ msgstr "Kaikki pyynnöt suoritettu" #~ msgid "Interrupted by a signal" #~ msgstr "Signaalin keskeyttämä" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametrimerkkijono on väärin koodattu" #~ msgid "Unknown error" #~ msgstr "Tuntematon virhe" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: valitsin ”%s%s” on moniselitteinen\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: valitsin ”%s%s” on moniselitteinen; vaihtoehdot:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: tunnistamaton valitsin ”%s%s”\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: valitsin ”%s%s” ei salli argumenttia\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: valitsin ”%s%s” vaatii argumentin\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: virheellinen valitsin -- ”%c”\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: valitsin vaatii argumentin -- ”%c”\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "virheellinen source_version-argumentti kohteelle compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "virheellinen target_version-argumentti kohteelle compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "tiedoston ”%s” luominen epäonnistui" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "virhe kirjoitettaessa tiedostoa ”%s”" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "Java-kääntäjää ei löytynyt, yritä asentaa gcj tai aseta $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Java-virtuaalikonetta ei löytynyt, yritä asentaa gij tai aseta $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s-aliprosessin siirräntävirhe" #, c-format #~ msgid "cannot stat %s" #~ msgstr "tiedoston %s tilaa ei voi lukea" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "tiedoston %s oikeuksien muuttaminen ei onnistu" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "hakemiston %s luominen ei onnistu" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Tiedoston /dev/zero avaaminen lukemista varten epäonnistui" #~ msgid "creation of reading thread failed" #~ msgstr "lukemissäikeen luominen epäonnistui" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "ei-lukitsevan siirron asettaminen aliprosessiin %s epäonnistui" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "viestintä aliprosessin %s kanssa epäonnistui" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "kirjoittaminen aliprosessiin %s epäonnistui" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "lukeminen aliprosessista %s epäonnistui" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "aliprosessi %s päättyi paluuarvolla %d" #~ msgid "creation of threads failed" #~ msgstr "säikeiden luominen epäonnistui" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s-aliprosessi päättyi paluuarvolla %d" #~ msgid "Success" #~ msgstr "Onnistui" #~ msgid "No match" #~ msgstr "Ei täsmäävyyttä" #~ msgid "Invalid regular expression" #~ msgstr "Virheellinen säännöllinen lauseke" #~ msgid "Invalid collation character" #~ msgstr "Virheellinen vertailumerkki" #~ msgid "Invalid character class name" #~ msgstr "Virheellinen merkkiluokan nimi" #~ msgid "Trailing backslash" #~ msgstr "Kenoviiva lopussa" #~ msgid "Invalid back reference" #~ msgstr "Virheellinen takaisinviittaus" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Pariton [, [^, [:, [. tai [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "Pariton ( tai \\(" #~ msgid "Unmatched \\{" #~ msgstr "Pariton \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Virheellinen \\{\\}:n sisältö" #~ msgid "Invalid range end" #~ msgstr "Virheellinen välin loppu" #~ msgid "Memory exhausted" #~ msgstr "Muisti lopussa" #~ msgid "Invalid preceding regular expression" #~ msgstr "Virheellinen edeltävä säännöllinen lauseke" #~ msgid "Premature end of regular expression" #~ msgstr "Ennenaikainen säännöllisen lausekkeen loppu" #~ msgid "Regular expression too big" #~ msgstr "Säännöllinen lauseke on liian suuri" #~ msgid "Unmatched ) or \\)" #~ msgstr "Pariton ) tai \\)" #~ msgid "No previous regular expression" #~ msgstr "Ei edellistä säännöllistä lauseketta" # Kaikkihan muistavat kääntää nämä ja vastaavat juuri näin. Ei pelkkä kK. #~ msgid "^[yY]" #~ msgstr "^[kKyY]" #~ msgid "^[nN]" #~ msgstr "^[eEnN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "asetetaan oikeudet tiedostolle %s" #~ msgid "Hangup" #~ msgstr "Linjankatkaisu" #~ msgid "Interrupt" #~ msgstr "Keskeytys" #~ msgid "Quit" #~ msgstr "Lopetettu" #~ msgid "Illegal instruction" #~ msgstr "Virheellinen käsky" #~ msgid "Trace/breakpoint trap" #~ msgstr "Jäljitys-/katkaisupisteansa" #~ msgid "Aborted" #~ msgstr "Keskeytetty" #~ msgid "Floating point exception" #~ msgstr "Liukulukupoikkeus" #~ msgid "Killed" #~ msgstr "Sammutettu" #~ msgid "Bus error" #~ msgstr "Väylävirhe" #~ msgid "Segmentation fault" #~ msgstr "Muistialueen ylitys" #~ msgid "Broken pipe" #~ msgstr "Katkennut putki" #~ msgid "Alarm clock" #~ msgstr "Herätyskello" #~ msgid "Terminated" #~ msgstr "Päätetty" #~ msgid "Urgent I/O condition" #~ msgstr "Kiireellinen I/O-ehto" #~ msgid "Stopped (signal)" #~ msgstr "Pysäytetty (signaali)" #~ msgid "Stopped" #~ msgstr "Pysäytetty" #~ msgid "Continued" #~ msgstr "Jatkettu" #~ msgid "Child exited" #~ msgstr "Lapsi lopetti" #~ msgid "Stopped (tty input)" #~ msgstr "Pysäytetty (tty-syöte)" #~ msgid "Stopped (tty output)" #~ msgstr "Pysäytetty (tty-tuloste)" #~ msgid "I/O possible" #~ msgstr "I/O mahdollista" #~ msgid "CPU time limit exceeded" #~ msgstr "Suoritinaikaraja ylittynyt" #~ msgid "File size limit exceeded" #~ msgstr "Tiedoston kokoraja ylitetty" #~ msgid "Virtual timer expired" #~ msgstr "Virtuaaliajastin vanhentunut" #~ msgid "Profiling timer expired" #~ msgstr "Profilointiajastin vanhentunut" #~ msgid "Window changed" #~ msgstr "Ikkuna vaihtunut" #~ msgid "User defined signal 1" #~ msgstr "Käyttäjän määrittelemä signaali 1" #~ msgid "User defined signal 2" #~ msgstr "Käyttäjän määrittelemä signaali 2" #~ msgid "EMT trap" #~ msgstr "EMT-ansa" #~ msgid "Bad system call" #~ msgstr "Virheellinen järjestelmäkutsu" #~ msgid "Stack fault" #~ msgstr "Pinovirhe" #~ msgid "Information request" #~ msgstr "Tietopyyntö" #~ msgid "Power failure" #~ msgstr "Sähkökatko" #~ msgid "Resource lost" #~ msgstr "Resurssi menetetty" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "virhe kirjoitettaessa suljettuun putkeen tai pistokkeeseen" #~ msgid "cannot create pipe" #~ msgstr "ei voida luoda putkea" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Reaaliaikasignaali %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Tuntematon signaali %d" #~ msgid "Execution times (seconds)" #~ msgstr "Suoritusajat (sekuntia)" #~ msgid "CPU user" #~ msgstr "Suoritin (käyttäjä)" #~ msgid "CPU system" #~ msgstr "Suoritin (järjestelmä)" #~ msgid "wall clock" #~ msgstr "seinäkello" #~ msgid "iconv function not usable" #~ msgstr "iconv-funktio ei ole käyttökelpoinen" #~ msgid "iconv function not available" #~ msgstr "iconv-funktio ei ole saatavilla" #~ msgid "character out of range" #~ msgstr "merkki sallitun välin ulkopuolella" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "merkin U+%04X muunnos paikalliseen merkistöön ei onnistu" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "merkin U+%04X muunnos paikalliseen merkistöön ei onnistu: %s" #~ msgid "invalid user" #~ msgstr "virheellinen käyttäjä" #~ msgid "invalid group" #~ msgstr "virheellinen ryhmä" #~ msgid "invalid spec" #~ msgstr "virheellinen määrittely" #~ msgid "unable to display error message" #~ msgstr "ei kyetä näyttämään virheilmoitusta" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle epäonnistui" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "ei voi palauttaa tiedostokahvaa %d: dup2 epäonnistui" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s-aliprosessi" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s-aliprosessi vastaanotti fataalin signaalin %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "tiedostokahvan teksti-/binääritilan asettaminen epäonnistui" #~ msgid "stdin" #~ msgstr "vakiosyöte" #~ msgid "stdout" #~ msgstr "vakiotuloste" #~ msgid "stderr" #~ msgstr "vakiovirhetuloste" #~ msgid "unknown stream" #~ msgstr "tuntematon virta" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "kohteen %s avaaminen uudelleen tilassa %s epäonnistui" #~ msgid "string comparison failed" #~ msgstr "merkkijonovertailu epäonnistui" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Aseta LC_ALL='C' ongelman kiertämiseksi." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Vertaillut merkkijonot olivat %s ja %s." #~ msgid "cannot perform formatted output" #~ msgstr "muotoiltua tulostusta ei voitu suorittaa" #~ msgid "standard file descriptors" #~ msgstr "tavalliset tiedostokahvat" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "virheellinen %s%s-argumentti ”%s”" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "virheellinen loppuliite %s%s-argumentissa ”%s”" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "%s%s-argumentti ”%s” on liian suuri" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/fr.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005647�14445132163�012370� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������+��������������������&�����!��� �����> �����W �����v ��;��� ��1��� ��.��� ��*���) ��&���T ��!���{ ����� ����� ����� ����� ����� ��2��� �����9 �����Y ��:���l ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib-4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-21 20:15+0200 Last-Translator: Stéphane Aulery <lkppo@free.fr> Language-Team: French <traduc@traduc.org> Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Lokalize 1.2 �page d'accueil de %s : <%s> � »�©�Aide globale sur les logiciels GNU : <%s> �Licence GPLv3+ : GNU GPL version 3 ou ultérieure <%s> Logiciel libre : vous êtes libre de le modifier ou de le redistribuer. Il n'y a AUCUNE GARANTIE, dans les limites permises par la loi. �Empaqueté par %s �Empaqueté par %s (%s) �Signalez les anomalies de %s à : %s �Signalez toute anomalie à : %s �Erreur système inconnue�Les arguments valables sont :�Écrit par %s et %s. �Écrit par %s, %s, %s, %s, %s, %s, %s, %s, %s et d'autres. �Écrit par %s, %s, %s, %s, %s, %s, %s, %s et %s. �Écrit par %s, %s, %s, %s, %s, %s, %s, et %s. �Écrit par %s, %s, %s, %s, %s, %s, et %s. �Écrit par %s, %s, %s, %s, %s, et %s. �Écrit par %s, %s, %s, %s et %s. �Écrit par %s, %s, %s, et %s. �Écrit par %s, %s et %s. �Écrit par %s. �« �argument %s ambigu pour %s�échec de retour au répertoire initial de travail�argument %s non valable pour %s�mémoire épuisée�impossible de mémoriser le répertoire de travail courant������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/fr.po�������������������������������������������������������������������������0000644�0000000�0000000�00000063624�14445132161�012221� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages français pour GNU concernant gnulib. # Copyright © 1996-, 2008, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996-. # Nicolas Provost <nprovost@quadriv.com>, 2008. # David Prévot <david@tilapin.org>, 2011. # Stéphane Aulery <lkppo@free.fr>, 2019. # msgid "" msgstr "" "Project-Id-Version: gnulib-4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-21 20:15+0200\n" "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n" "Language-Team: French <traduc@traduc.org>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 1.2\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argument %s non valable pour %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argument %s ambigu pour %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Les arguments valables sont :" #: lib/error.c:193 msgid "Unknown system error" msgstr "Erreur système inconnue" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "mémoire épuisée" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "impossible de mémoriser le répertoire de travail courant" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "échec de retour au répertoire initial de travail" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "« " #: lib/quotearg.c:355 msgid "'" msgstr " »" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Empaqueté par %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Empaqueté par %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Licence GPLv3+ : GNU GPL version 3 ou ultérieure <%s>\n" "Logiciel libre : vous êtes libre de le modifier ou de le redistribuer.\n" "Il n'y a AUCUNE GARANTIE, dans les limites permises par la loi.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Écrit par %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Écrit par %s et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Écrit par %s, %s et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Écrit par %s, %s, %s,\n" "et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Écrit par %s, %s, %s,\n" "%s et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Écrit par %s, %s, %s,\n" "%s, %s, et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Écrit par %s, %s, %s,\n" "%s, %s, %s, et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Écrit par %s, %s, %s,\n" "%s, %s, %s, %s,\n" "et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Écrit par %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Écrit par %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s et d'autres.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Signalez toute anomalie à : %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Signalez les anomalies de %s à : %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "page d'accueil de %s : <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Aide globale sur les logiciels GNU : <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT : la valeur %s est inférieure ou égale à %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s : le paramètre ARGP_HELP_FMT nécessite une valeur" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s : paramètre ARGP_HELP_FMT inconnu" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Problème dans ARGP_HELP_FMT : %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Les arguments obligatoires pour la forme longue des options le sont aussi " #~ "pour les formes courtes associées." #~ msgid "Usage:" #~ msgstr "Utilisation :" #~ msgid " or: " #~ msgstr " ou : " #~ msgid " [OPTION...]" #~ msgstr " [OPTION...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "" #~ "Essayez « %s --help » ou « %s --usage » pour obtenir plus de " #~ "renseignements.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Signalez toute anomalie à %s.\n" #~ msgid "give this help list" #~ msgstr "affiche cette aide" #~ msgid "give a short usage message" #~ msgstr "donne un court message d'utilisation" #~ msgid "NAME" #~ msgstr "NOM" #~ msgid "set the program name" #~ msgstr "définit le nom du programme" #~ msgid "SECS" #~ msgstr "SECS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "suspension pendant SECS secondes (par défaut 3600)" #~ msgid "print program version" #~ msgstr "affiche la version du programme" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(Erreur du programme) pas de version connue !" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s : trop d'arguments\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(Erreur du programme) l'option aurait dû être reconnue !" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u libérés (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u cachés (%.2f%%).\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u cachés (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u cachés (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "histogramme par comptage\n" #~ msgid "size log histogram\n" #~ msgstr "histogramme par taille\n" #~ msgid "density histogram\n" #~ msgstr "histogramme par densité\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Statistiques de bitset :\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Lancement cumulés = %u\n" #~ msgid "cannot read stats file" #~ msgstr "impossible de lire les permissions du fichier" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "taille du fichier de permission erroné\n" #~ msgid "cannot write stats file" #~ msgstr "impossible d'écrire les permissions du fichier" #~ msgid "cannot open stats file for writing" #~ msgstr "impossible d'ouvrir les permissions du fichier en écriture" #~ msgid "program error" #~ msgstr "erreur du programme" #~ msgid "stack overflow" #~ msgstr "dépassement de pile" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "impossible de trouver un répertoire temporaire, essayez de définir $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "impossible de créer un répertoire temporaire en utilisant le modèle " #~ "« %s »." #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "impossible de supprimer le ficher temporaire %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "impossible de supprimer le répertoire temporaire %s" #~ msgid "error closing file" #~ msgstr "erreur de fermeture de fichier" #~ msgid "write error" #~ msgstr "erreur d'écriture" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "conservation des permissions de %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "erreur à l'ouverture de %s en lecture" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "impossible d'ouvrir le fichier de sauvegarde %s en écriture" #, c-format #~ msgid "error reading %s" #~ msgstr "erreur de lecture de %s" #, c-format #~ msgid "error writing %s" #~ msgstr "erreur d'écriture de %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "erreur après la lecture de %s" #~ msgid "fdopen() failed" #~ msgstr "échec de fdopen()" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "compilateur C# non trouvé, essayez d'installer mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "machine virtuelle C# non trouvée, essayez d'installer mono" #~ msgid "unbalanced [" #~ msgstr "[ non appairée" #~ msgid "invalid character class" #~ msgstr "nom de classe de caractères non valable" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "" #~ "la syntaxe de la classe de caractères est [[:space:]], et non [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "espace \\ non terminé" #~ msgid "invalid content of \\{\\}" #~ msgstr "le contenu de \\{\\} n'est pas valable" #~ msgid "regular expression too big" #~ msgstr "expression rationnelle trop grande" #~ msgid "unbalanced (" #~ msgstr "( non appairée" #~ msgid "no syntax specified" #~ msgstr "pas de syntaxe spécifiée" #~ msgid "unbalanced )" #~ msgstr ") non appairée" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "échec de sous-processus %s" #~ msgid "regular empty file" #~ msgstr "fichier régulier vide" #~ msgid "regular file" #~ msgstr "fichier régulier" #~ msgid "directory" #~ msgstr "répertoire" #~ msgid "symbolic link" #~ msgstr "lien symbolique" #~ msgid "message queue" #~ msgstr "file de messages" #~ msgid "semaphore" #~ msgstr "sémaphore" #~ msgid "shared memory object" #~ msgstr "objet de mémoire partagée" #~ msgid "typed memory object" #~ msgstr "objet mémoire typé" #~ msgid "block special file" #~ msgstr "fichier spécial de blocs" #~ msgid "character special file" #~ msgstr "fichier spécial de caractères" #~ msgid "contiguous data" #~ msgstr "données contiguës" #~ msgid "fifo" #~ msgstr "PEPS (FIFO)" #~ msgid "door" #~ msgstr "porte" #~ msgid "multiplexed block special file" #~ msgstr "fichier spécial de blocs multipléxé" #~ msgid "multiplexed character special file" #~ msgstr "fichier spécial de caractères mulipléxé" #~ msgid "multiplexed file" #~ msgstr "fichier multipléxé" #~ msgid "named file" #~ msgstr "fichier nommé" #~ msgid "network special file" #~ msgstr "fichier spécial de réseau" #~ msgid "migrated file with data" #~ msgstr "fichier migré avec ses données" #~ msgid "migrated file without data" #~ msgstr "fichier migré sans ses données" #~ msgid "port" #~ msgstr "port" #~ msgid "socket" #~ msgstr "socket" #~ msgid "whiteout" #~ msgstr "sans" #~ msgid "weird file" #~ msgstr "fichier bizarre" #~ msgid "Address family for hostname not supported" #~ msgstr "Famille d'adresses du nom d'hôte non pris en charge" #~ msgid "Temporary failure in name resolution" #~ msgstr "Échec temporaire lors de la résolution de noms" #~ msgid "Bad value for ai_flags" #~ msgstr "Mauvaise valeur pour ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Échec définitif lors de la résolution de noms" #~ msgid "ai_family not supported" #~ msgstr "ai_family non pris en charge" #~ msgid "Memory allocation failure" #~ msgstr "Échec d'allocation mémoire" #~ msgid "No address associated with hostname" #~ msgstr "Aucune adresse associée au nom d'hôte" #~ msgid "Name or service not known" #~ msgstr "Nom ou service inconnu" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Nom de serveur non pris en charge pour ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype non pris en charge" #~ msgid "System error" #~ msgstr "Erreur système" #~ msgid "Argument buffer too small" #~ msgstr "Mémoire tampon d'argument trop petite" #~ msgid "Processing request in progress" #~ msgstr "Traitement de la requête en cours" #~ msgid "Request canceled" #~ msgstr "Requête annulée" #~ msgid "Request not canceled" #~ msgstr "Requête non annulée" #~ msgid "All requests done" #~ msgstr "Requêtes toutes traitées" #~ msgid "Interrupted by a signal" #~ msgstr "Interruption par un signal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Chaîne de paramètre mal encodé" #~ msgid "Unknown error" #~ msgstr "Erreur inconnue" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s : l'option « %s%s » est ambiguë\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s : l'option « %s%s » est ambiguë, possibilités :" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s : option « %s%s » non reconnue\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s : l'option « %s%s » ne prend pas d'argument\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s : l'option « %s%s » nécessite un argument\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s : option non valable -- « %c »\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s : l'option nécessite un argument -- « %c »\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argument source_version non valable pour compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argument target_version non valable pour compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "échec de création de « %s »" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "erreur lors de l'écriture du fichier « %s »" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "compilateur Java non trouvé, essayez d'installer gcj ou de définir $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "machine virtuelle Java non trouvée, essayez d'installer gij ou de définir " #~ "$JAVAC" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "erreur d'entrée sortie du sous-processus %s" #, c-format #~ msgid "cannot stat %s" #~ msgstr "impossible de lire les permissions de %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "impossible de modifier les permissions de %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "impossible de créer le répertoire %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Échec d'ouverture de /dev/zero en lecture" #~ msgid "creation of reading thread failed" #~ msgstr "échec de création du processus de lecture" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "" #~ "impossible de configurer l'entrée sortie non bloquante au sous-processus " #~ "%s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "échec de communication avec le sous-processus %s" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "échec d'écriture vers le sous-processus %s" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "échec de lecture depuis le sous-processus %s" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "le sous-processus %s s'est terminé avec le code de retour %d" #~ msgid "creation of threads failed" #~ msgstr "échec de création de processus" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "le sous-processus de %s s'est terminé avec le code de retour %d" #~ msgid "Success" #~ msgstr "Succès" #~ msgid "No match" #~ msgstr "Pas de correspondance" #~ msgid "Invalid regular expression" #~ msgstr "Expression rationnelle non valable" #~ msgid "Invalid collation character" #~ msgstr "Caractère d'assemblage non valable" #~ msgid "Invalid character class name" #~ msgstr "Nom de classe de caractères non valable" #~ msgid "Trailing backslash" #~ msgstr "Barre oblique inverse en fin de ligne" #~ msgid "Invalid back reference" #~ msgstr "Référence antérieure non valable" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "[, [^, [:, [. ou [= non appairé" #~ msgid "Unmatched ( or \\(" #~ msgstr "( ou \\( non appairée" #~ msgid "Unmatched \\{" #~ msgstr "\\{ non appairée" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Le contenu de \\{\\} n'est pas valable" #~ msgid "Invalid range end" #~ msgstr "Borne finale de l'intervalle non valable" #~ msgid "Memory exhausted" #~ msgstr "Mémoire épuisée" #~ msgid "Invalid preceding regular expression" #~ msgstr "Expression rationnelle précédente non valable" #~ msgid "Premature end of regular expression" #~ msgstr "Fin prématurée d'expression rationnelle" #~ msgid "Regular expression too big" #~ msgstr "Expression rationnelle trop grande" #~ msgid "Unmatched ) or \\)" #~ msgstr ") ou \\) non appairée" #~ msgid "No previous regular expression" #~ msgstr "Pas d'expression rationnelle précédente" #~ msgid "^[yY]" #~ msgstr "^[oOyY].*" #~ msgid "^[nN]" #~ msgstr "^[nN].*" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "impossible de définir les permissions de %s" #~ msgid "Hangup" #~ msgstr "Raccrocher" #~ msgid "Interrupt" #~ msgstr "Interrompre" #~ msgid "Quit" #~ msgstr "Quitter" #~ msgid "Illegal instruction" #~ msgstr "Instruction illégale" #~ msgid "Trace/breakpoint trap" #~ msgstr "Piège de trace ou point de d'arrêt " #~ msgid "Aborted" #~ msgstr "Abandonné" #~ msgid "Floating point exception" #~ msgstr "Exception de virgule flottante" #~ msgid "Killed" #~ msgstr "Tué" #~ msgid "Bus error" #~ msgstr "Erreur de bus" #~ msgid "Segmentation fault" #~ msgstr "Erreur de segmentation" #~ msgid "Broken pipe" #~ msgstr "Tube rompu" #~ msgid "Alarm clock" #~ msgstr "Réveil" #~ msgid "Terminated" #~ msgstr "Terminé" #~ msgid "Urgent I/O condition" #~ msgstr "Condition d'entrée sortie urgente" #~ msgid "Stopped (signal)" #~ msgstr "Arrêté (signal)" #~ msgid "Stopped" #~ msgstr "Arrêté" #~ msgid "Continued" #~ msgstr "Continué" #~ msgid "Child exited" #~ msgstr "Fin du processus fils" #~ msgid "Stopped (tty input)" #~ msgstr "Arrêté (entrée de tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Arrêté (sortie de tty)" #~ msgid "I/O possible" #~ msgstr "Entrée sortie possible" #~ msgid "CPU time limit exceeded" #~ msgstr "Temps limite de processeur dépassé" #~ msgid "File size limit exceeded" #~ msgstr "Taille limite de fichier dépassée" #~ msgid "Virtual timer expired" #~ msgstr "Temporisation virtuelle dépassée" #~ msgid "Profiling timer expired" #~ msgstr "Temporisation de profilage dépassée" #~ msgid "Window changed" #~ msgstr "Fenêtre modifiée" #~ msgid "User defined signal 1" #~ msgstr "Signal 1 défini par utilisateur" #~ msgid "User defined signal 2" #~ msgstr "Signal 2 défini par utilisateur" #~ msgid "EMT trap" #~ msgstr "Piège EMT" #~ msgid "Bad system call" #~ msgstr "Mauvais appel système" #~ msgid "Stack fault" #~ msgstr "Défaut de pile" #~ msgid "Information request" #~ msgstr "Demande de renseignements" #~ msgid "Power failure" #~ msgstr "Échec d'alimentation" #~ msgid "Resource lost" #~ msgstr "Ressource perdue" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "Erreur d'écriture vers un tube ou un socket fermé" #~ msgid "cannot create pipe" #~ msgstr "impossible de créer un tube (« pipe »)" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Signal %d en temps réel" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Signal %d inconnu" #~ msgid "Execution times (seconds)" #~ msgstr "Temps d'exécution (s)" #~ msgid "CPU user" #~ msgstr "Temps utilisateur" #~ msgid "CPU system" #~ msgstr "Temps système" #~ msgid "wall clock" #~ msgstr "horloge murale" #~ msgid "iconv function not usable" #~ msgstr "fonction iconv non utilisable" #~ msgid "iconv function not available" #~ msgstr "fonction iconv non disponible" #~ msgid "character out of range" #~ msgstr "caractère hors limites" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "impossible de convertir U+%04X dans le jeu de caractères local" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "impossible de convertir U+%04X dans le jeu de caractères local : %s" #~ msgid "invalid user" #~ msgstr "utilisateur non valable" #~ msgid "invalid group" #~ msgstr "groupe non valable" #~ msgid "invalid spec" #~ msgstr "spécification non valable" #~ msgid "unable to display error message" #~ msgstr "impossible d'afficher le message d'erreur" #~ msgid "_open_osfhandle failed" #~ msgstr "échec de _open_osfhandle" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "" #~ "impossible de restaurer le descripteur de fichier (fd) %d : échec de dup2" #, c-format #~ msgid "%s subprocess" #~ msgstr "sous-processus %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "le sous-processus %s a reçu un signal fatal %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "" #~ "impossible de définir le mode texte/binaire du descripteur de fichier" #~ msgid "stdin" #~ msgstr "entrée standard (stdin)" #~ msgid "stdout" #~ msgstr "sortie standard (stdout)" #~ msgid "stderr" #~ msgstr "sortie d'erreur (stderr)" #~ msgid "unknown stream" #~ msgstr "flux inconnu" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "impossible de rouvrir %s en mode %s" #~ msgid "string comparison failed" #~ msgstr "échec de comparaison de chaîne" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Définir LC_ALL='C' pour contourner le problème." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Les chaînes comparées étaient %s et %s." #~ msgid "cannot perform formatted output" #~ msgstr "impossible mettre en forme la sortie formatée" #~ msgid "standard file descriptors" #~ msgstr "descripteurs de fichier standards" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "argument %s%s non valable « %s »" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "suffixe non valable dans l'argument %s%s « %s »" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "argument %s%s « %s » trop grand" #~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n" #~ msgstr "page d'accueil de %s : <https://www.gnu.org/software/%s/>\n" ������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ga.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004067�14445132163�012343� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������l���������������������������������;���(��3���d��/�����+�����'�����#��������@�����`�����|������������-���������������*�������0����������!�����#�����=�����Q��B���a��,�����(�����$����� ��������@�����]�����v�����������������+���������������)��� ������������ ���������������������������� �������������������������������� ��� ������������ �����������'�(C)�Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 1.1 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2007-07-20 12:24-0600 Last-Translator: Kevin Scannell <kscanne@gmail.com> Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net> Language: ga MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :(n>6 && n<11) ? 3 : 4; �'��Earrid chrais anaithnid�Na hargint bail:�Le %s agus %s. �Le %s, %s, %s, %s, %s, %s, %s, %s, %s, agus daoine eile nach iad. �Le %s, %s, %s, %s, %s, %s, %s, %s, agus %s. �Le %s, %s, %s, %s, %s, %s, %s, agus %s. �Le %s, %s, %s, %s, %s, %s, agus %s. �Le %s, %s, %s, %s, %s, agus %s. �Le %s, %s, %s, %s, agus %s. �Le %s, %s, %s, agus %s. �Le %s, %s, agus %s. �Le %s. �`�argint dhbhroch %s chun %s�nl aon fhil ar an chad chomhadlann oibre�argint neamhbhail %s chun %s�cuimhne dithe�n fidir an chomhadlann oibre a thaifead��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ga.po�������������������������������������������������������������������������0000644�0000000�0000000�00000051066�14445132161�012176� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Irish translations for gnulib. # Copyright (C) 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Kevin Patrick Scannell <scannell@SLU.EDU>, 2005, 2007. # msgid "" msgstr "" "Project-Id-Version: gnulib 1.1\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2007-07-20 12:24-0600\n" "Last-Translator: Kevin Scannell <kscanne@gmail.com>\n" "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :" "(n>6 && n<11) ? 3 : 4;\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argint neamhbhail %s chun %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argint dhbhroch %s chun %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Na hargint bail:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Earrid chrais anaithnid" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "cuimhne dithe" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "n fidir an chomhadlann oibre a thaifead" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "nl aon fhil ar an chad chomhadlann oibre" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "Ceadnas GPLv3+: GNU GPL leagan 3 n nos nua <http://gnu.org/licenses/gpl." "html>\n" "Is saorbhogearra seo: ceadatear duit a athr agus a athdhileadh.\n" "Nl barnta AR BITH ann, an oiread at ceadaithe de rir dl.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Le %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Le %s agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Le %s, %s, agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Le %s, %s, %s,\n" "agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Le %s, %s, %s,\n" "%s, agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Le %s, %s, %s,\n" "%s, %s, agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Le %s, %s, %s,\n" "%s, %s, %s, agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Le %s, %s, %s,\n" "%s, %s, %s, %s,\n" "agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Le %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Le %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, agus daoine eile nach iad.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "Report bugs to %s.\n" msgid "Report bugs to: %s\n" msgstr "Seol tuairisc fabhtanna chuig %s.\n" #: lib/version-etc.c:251 #, fuzzy, c-format #| msgid "Report bugs to %s.\n" msgid "Report %s bugs to: %s\n" msgstr "Seol tuairisc fabhtanna chuig %s.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: luach %s nos l n n cothrom le %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: luach de dhth ar pharaimadar ARGP_HELP_FMT" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: luach deimhneach de dhth ar pharaimadar ARGP_HELP_FMT" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Paraimadar anaithnid ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Truflais i ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Is riachtanach/roghnach le rogha ghearr aon argint at riachtanach/" #~ "roghnach leis an rogha fhada." #~ msgid "Usage:" #~ msgstr "sid:" #~ msgid " or: " #~ msgstr " n: " #~ msgid " [OPTION...]" #~ msgstr " [ROGHA...]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "Bain triail as `%s --help' n `%s --usage' chun tuilleadh eolais a " #~ "fhil.\n" #~ msgid "give this help list" #~ msgstr "taispein an chabhair seo" #~ msgid "give a short usage message" #~ msgstr "tabhair teachtaireacht bheag side" #~ msgid "NAME" #~ msgstr "AINM" #~ msgid "set the program name" #~ msgstr "socraigh ainm an chlir" #~ msgid "SECS" #~ msgstr "SOIC" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "dan moill SOIC soicind (ramhshocr: 3600)" #~ msgid "print program version" #~ msgstr "taispein leagan an chlir" #, c-format #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(EARRID CHLIR) Leagan anaithnid!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: An iomarca argint\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(EARRID CHLIR) Ba chir an rogha a aithint!?" #~ msgid "program error" #~ msgstr "earrid chlir" #~ msgid "stack overflow" #~ msgstr "cruach thar maoil" #, fuzzy, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "n fidir comhadlann %s a chruth" #, fuzzy, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "n fidir comhadlann %s a chruth" #, fuzzy, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "n fidir comhadlann %s a chruth" #, fuzzy #~ msgid "error closing file" #~ msgstr "earrid agus comhad \"%s\" scrobh" #~ msgid "write error" #~ msgstr "earrid sa scrobh" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "earrid agus \"%s\" oscailt chun a lamh" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "n fidir comhad cltaca \"%s\" a oscailt chun scrobh ann" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "earrid agus \"%s\" lamh" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "earrid agus \"%s\" scrobh" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "earrid tar is \"%s\" lamh" #, c-format #~ msgid "fdopen() failed" #~ msgstr "theip ar fdopen()" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Tiomsaitheoir C# gan aimsi, bain triail as pnet" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "Meaisn foril C# gan aimsi, bain triail as pnet" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "theip ar fhophriseas %s" #~ msgid "regular empty file" #~ msgstr "gnthchomhad folamh" #~ msgid "regular file" #~ msgstr "gnthchomhad" #~ msgid "directory" #~ msgstr "comhadlann" #~ msgid "block special file" #~ msgstr "comhad speisialta den chinel `bloc'" #~ msgid "character special file" #~ msgstr "comhad speisialta den chinel `carachtar'" # `TITA' ?! -KPS #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "nasc siombalach" #~ msgid "socket" #~ msgstr "soicad" #~ msgid "message queue" #~ msgstr "ci teachtaireachta" #~ msgid "semaphore" #~ msgstr "samafr" # FARF --KPS #~ msgid "shared memory object" #~ msgstr "comhad comhchuimhne" #~ msgid "typed memory object" #~ msgstr "comhad cuimhne le cinel" #~ msgid "weird file" #~ msgstr "comhad aisteach" #~ msgid "Address family for hostname not supported" #~ msgstr "Aicme sheolta d'stainm gan tacaocht" #~ msgid "Temporary failure in name resolution" #~ msgstr "Teip shealadach ar riteach na n-ainmneacha" #~ msgid "Bad value for ai_flags" #~ msgstr "Luach neamhbhail do 'ai_flags'" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Teip dhocheartaithe ar riteach na n-ainmneacha" #~ msgid "ai_family not supported" #~ msgstr "n thacatear le 'ai_family'" #~ msgid "Memory allocation failure" #~ msgstr "Theip ar dhil chuimhne" #~ msgid "No address associated with hostname" #~ msgstr "Nl seoladh ar bith ceangailte leis an stainm" #~ msgid "Name or service not known" #~ msgstr "Ainm n seirbhs anaithnid" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "N thacatear le hainm freastalaithe do 'ai_socktype'" #~ msgid "ai_socktype not supported" #~ msgstr "n thacatear le 'ai_socktype'" #~ msgid "System error" #~ msgstr "Earrid chrais" #~ msgid "Argument buffer too small" #~ msgstr "T an argint mhaolin rbheag" #~ msgid "Processing request in progress" #~ msgstr "Iarratas prisela ar sil" #~ msgid "Request canceled" #~ msgstr "Cealaodh an t-iarratas" #~ msgid "Request not canceled" #~ msgstr "Nor cealaodh an t-iarratas" #~ msgid "All requests done" #~ msgstr "Cuireadh gach iarratas i gcrch" #~ msgid "Interrupted by a signal" #~ msgstr "Idirbhriste ag comhartha" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Nl an teaghrn paraimadair ionchdaithe i gceart" #~ msgid "Unknown error" #~ msgstr "Earrid anaithnid" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: T an rogha `%s' dbhroch\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: n cheadatear argint i ndiaidh na rogha `--%s'\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: n cheadatear argint i ndiaidh na rogha `%c%s'\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: t argint de dhth i ndiaidh na rogha `%s'\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: rogha anaithnid `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: rogha anaithnid `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: rogha neamhcheadaithe -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: rogha neamhbhail -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: t argint de dhth i ndiaidh na rogha -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: T an rogha `-W %s' dbhroch\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: n cheadatear argint i ndiaidh na rogha `-W %s'\n" #, fuzzy, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "fophriseas %s" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argint neamhbhail \"source_version\" ar compile_java_class" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argint neamhbhail \"target_version\" ar compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "theip ar chruth \"%s\"" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "earrid agus comhad \"%s\" scrobh" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Tiomsaitheoir Java gan aimsi, bain triail as gcj, n socraigh $JAVAC" #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Meaisn foril Java gan aimsi, bain triail as gij, n socraigh $JAVA" #, c-format #~ msgid "cannot create pipe" #~ msgstr "n fidir popa a chruth" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "n fidir na ceadanna de %s a athr" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "n fidir comhadlann %s a chruth" #~ msgid "Success" #~ msgstr "D'irigh leis" #~ msgid "No match" #~ msgstr "Gan mheaitseil" #~ msgid "Invalid regular expression" #~ msgstr "Slonn ionadaochta neamhbhail" #~ msgid "Invalid collation character" #~ msgstr "Carachtar neamhbhail comhordaithe" #~ msgid "Invalid character class name" #~ msgstr "Ainm neamhbhail ar aicme charachtar" #~ msgid "Trailing backslash" #~ msgstr "Clslais chun deiridh" #~ msgid "Invalid back reference" #~ msgstr "Cltagairt neamhbhail" #~ msgid "Unmatched [ or [^" #~ msgstr "[ n [^ corr" #~ msgid "Unmatched ( or \\(" #~ msgstr "( n \\( corr" #~ msgid "Unmatched \\{" #~ msgstr "\\{ corr" #~ msgid "Invalid content of \\{\\}" #~ msgstr "bhar neamhbhail idir \\{ agus \\}" #~ msgid "Invalid range end" #~ msgstr "Deireadh raoin neamhbhail" #~ msgid "Memory exhausted" #~ msgstr "Cuimhne dithe" #~ msgid "Invalid preceding regular expression" #~ msgstr "Is neamhbhail an slonn ionadaochta roimhe seo" #~ msgid "Premature end of regular expression" #~ msgstr "Deireadh le slonn ionadaochta gan choinne" #~ msgid "Regular expression too big" #~ msgstr "Slonn ionadaochta rmhr" #~ msgid "Unmatched ) or \\)" #~ msgstr ") n \\) corr" #~ msgid "No previous regular expression" #~ msgstr "Nl aon slonn ionadaochta roimhe seo" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Theip ar oscailt /dev/zero chun a lamh" # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # allow yes, but also 'i' as in 'is sea' or 's' for 'sea' -- KPS # neither of these letters is near the 'N' on standard keyboard... # #-#-#-#-# sh-utils-2.0.15.ga.po (sh-utils 2.0.15) #-#-#-#-# # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # allow yes, but also 'i' as in 'is sea' or 's' for 'sea' -- KPS # neither of these letters is near the 'N' on standard keyboard... # #-#-#-#-# textutils-2.1.ga.po (textutils 2.1) #-#-#-#-# # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # allow yes, but also 'i' as in 'is sea' or 's' for 'sea' -- KPS # neither of these letters is near the 'N' on standard keyboard... #~ msgid "^[yY]" #~ msgstr "^[yYiIsS]" # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # fortunately, 'n' for 'no' or 'n hea' - KPS # #-#-#-#-# sh-utils-2.0.15.ga.po (sh-utils 2.0.15) #-#-#-#-# # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # fortunately, 'n' for 'no' or 'n hea' - KPS # #-#-#-#-# textutils-2.1.ga.po (textutils 2.1) #-#-#-#-# # #-#-#-#-# findutils-4.1.7.ga.po (findutils 4.1.7) #-#-#-#-# # fortunately, 'n' for 'no' or 'n hea' - KPS #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "n fidir an fheidhm iconv a sid" #~ msgid "iconv function not available" #~ msgstr "nl an fheidhm iconv ar fil" #~ msgid "character out of range" #~ msgstr "carachtar as raon" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "n fidir U+%04X a thiont chuig an fhoireann carachtar lognta" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "n fidir U+%04X a thiont chuig an fhoireann carachtar lognta: %s" #~ msgid "invalid user" #~ msgstr "sideoir neamhbhail" #~ msgid "invalid group" #~ msgstr "grpa neamhbhail" #~ msgid "invalid spec" #~ msgstr "sonr neamhbhail" #, fuzzy, c-format #~ msgid "preserving permissions for %s" #~ msgstr "n fidir na ceadanna de %s a athr" #, c-format #~ msgid "string comparison failed" #~ msgstr "theip ar chomparid idir teaghrin" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Cuir LC_ALL='C' ionas gur fidir an fhadhb seo a sheachaint." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Rinneadh comparid idir na teaghrin %s agus %s." #, fuzzy, c-format #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "Seol tuairisc fabhtanna chuig %s.\n" #, fuzzy, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "argint neamhbhail %s chun %s" #, fuzzy, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "argint neamhbhail %s chun %s" #, fuzzy, c-format #~ msgid "setting permissions for %s" #~ msgstr "n fidir na ceadanna de %s a athr" #, c-format #~ msgid "%s subprocess" #~ msgstr "fophriseas %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "fuair fophriseas %s comhartha marfach %d" #~ msgid "block size" #~ msgstr "mid bloc" #~ msgid "%s exists but is not a directory" #~ msgstr "T %s ann cheana, ach n comhadlann " #~ msgid "cannot change owner and/or group of %s" #~ msgstr "n fidir an t-inir agus/n an grpa de %s a athr" #~ msgid "cannot chdir to directory %s" #~ msgstr "n fidir chdir a dhanamh go dt an chomhadlann %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "nl aon fhil ar an ghrpa don UID uimhriil seo" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Is saorbhogearra seo. Is fidir leat cipeanna a scaipeadh de rir na\n" #~ "gcoinnollacha den GNU General Public License\n" #~ "<http://www.gnu.org/licenses/gpl.html>.\n" #~ "Nl barnta AR BITH ann, an oiread at ceadaithe de rir dl.\n" #~ "\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/gl.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004602�14445132163�012351� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������@�����A�����U�����W�����[�����k����������������������;�����3�����/���H��+���x��'�����#������������������,�����<�����>��-���[������������*����������������������������������(�������������1�����M��:���c��2�����.�����*������&���+��"���R�����u����������������������9�������� �����9 ��7���J ����������������������������������������� ����������������� ��������������������������������� ������������������������� ��� �������%s home page: <%s> �'�(C)�Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2012-11-11 13:26+0200 Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com> Language-Team: Galician <proxecto@trasno.net> Language: gl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); �Páxina web de %s: <%s> �»�©�Empaquetado por %s �Empaquetado por %s (%s) �Envíe os informes de fallo en %s a %s. �Erro do sistema descoñecido�Os argumentos válidos son:�Escrito por %s e %s. �Escrito por %s, %s, %s, %s, %s, %s, %s, %s, %s, e outros. �Escrito por %s, %s, %s, %s, %s, %s, %s, %s, e %s. �Escrito por %s, %s, %s, %s, %s, %s, %s, e %s. �Escrito por %s, %s, %s, %s, %s, %s, e %s. �Escrito por %s, %s, %s, %s, %s, e %s. �Escrito por %s, %s, %s, %s, e %s. �Escrito por %s, %s, %s, e %s. �Escrito por %s, %s e %s. �Escrito por %s. �«�argumento %s ambiguo para %s�non foi posíbel volver ao directorio de traballo inicial�argumento incorrecto %s para %s�memoria esgotada�non foi posíbel gravar o directorio de traballo actual�������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/gl.po�������������������������������������������������������������������������0000644�0000000�0000000�00000046467�14445132161�012222� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Galician translation of gnulib. # This file is distributed under the same license as the gnulib package. # Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. # Copyright (C) 2012 Leandro Regueiro. # # Jacobo Tarrio <jtarrio@trasno.net>, 2000, 2001, 2002. # Leandro Regueiro <leandro.regueiro@gmail.com>, 2012. # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en http://www.trasno.net # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2012-11-11 13:26+0200\n" "Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n" "Language-Team: Galician <proxecto@trasno.net>\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argumento incorrecto %s para %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumento %s ambiguo para %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Os argumentos válidos son:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Erro do sistema descoñecido" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoria esgotada" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "non foi posíbel gravar o directorio de traballo actual" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "non foi posíbel volver ao directorio de traballo inicial" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "«" #: lib/quotearg.c:355 msgid "'" msgstr "»" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Empaquetado por %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Empaquetado por %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format #| msgid "" #| "\n" #| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #| "html>.\n" #| "This is free software: you are free to change and redistribute it.\n" #| "There is NO WARRANTY, to the extent permitted by law.\n" #| "\n" msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "Licenza GPL3v+: GNU GPL versión3 ou posterior <http://gnu.org/licenses/gpl." "html>\n" "Isto é software libre: pode modificalo e redistribuílo.\n" "Non hai NINGUNHA GARANTÍA, ata onde o permita a lei.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Escrito por %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Escrito por %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Escrito por %s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, e outros.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "Envíe os informes de fallo a: %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Envíe os informes de fallo en %s a %s.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Páxina web de %s: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "Axuda xeral ao usar software GNU: <http://www.gnu.org/gethelp/>\n" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Os argumentos obrigatorios ou opcionais das opcións longas son tamén " #~ "obrigatorios ou opcionais para calquera opción curta que se corresponda." #~ msgid "Usage:" #~ msgstr "Uso:" #~ msgid " or: " #~ msgstr " ou: " #~ msgid " [OPTION...]" #~ msgstr " [OPCIÓN...]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Execute «%s --help» ou «%s --usage» para obter máis información.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Envíe os informes de fallo a %s.\n" #~ msgid "give this help list" #~ msgstr "devolve esta lista de axuda" #~ msgid "give a short usage message" #~ msgstr "devolve unha mensaxe curta sobre o uso" #~ msgid "NAME" #~ msgstr "NOME" #~ msgid "set the program name" #~ msgstr "define o nome do programa" #~ msgid "SECS" #~ msgstr "SECS" #~ msgid "print program version" #~ msgstr "mostra a versión do programa" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Demasiados argumentos\n" #~ msgid "program error" #~ msgstr "erro do programa" #~ msgid "stack overflow" #~ msgstr "desbordamento da pila" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "non é posíbel crear un directorio temporal empregando o patrón «%s»" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "non é posíbel retirar o ficheiro temporal %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "non é posíbel retirar o directorio temporal %s" #~ msgid "error closing file" #~ msgstr "produciuse un erro ao pechar o ficheiro" #~ msgid "write error" #~ msgstr "erro de escritura" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "conservando os permisos para %s" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "produciuse un erro ao abrir «%s» para lectura" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "" #~ "non é posíbel abrir o ficheiro de copia de seguridade «%s» para escribir" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "produciuse un erro ao ler «%s»" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "produciuse un erro ao escribir «%s»" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "produciuse un erro despois de ler «%s»" #, c-format #~ msgid "fdopen() failed" #~ msgstr "fdopen() fallou" #~ msgid "regular empty file" #~ msgstr "ficheiro normal baleiro" #~ msgid "regular file" #~ msgstr "ficheiro normal" #~ msgid "directory" #~ msgstr "directorio" #~ msgid "block special file" #~ msgstr "ficheiro especial de bloque" #~ msgid "character special file" #~ msgstr "ficheiro especial de carácter" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "ligazón simbólica" #~ msgid "message queue" #~ msgstr "cola de mensaxes" #~ msgid "semaphore" #~ msgstr "semáforo" #~ msgid "shared memory object" #~ msgstr "obxecto de memoria compartida" #~ msgid "weird file" #~ msgstr "ficheiro estraño" #~ msgid "ai_family not supported" #~ msgstr "ai_family non admitido" #~ msgid "Name or service not known" #~ msgstr "Nome ou servizo descoñecido" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype non admitido" #~ msgid "System error" #~ msgstr "Erro do sistema" #~ msgid "Request canceled" #~ msgstr "Solicitude cancelada" #~ msgid "Request not canceled" #~ msgstr "Solicitude non cancelada" #~ msgid "Unknown error" #~ msgstr "Erro descoñecido" #, c-format #~ msgid "%s: option '%s' is ambiguous; possibilities:" #~ msgstr "%s: a opción «%s» é ambigua; as posibilidades son:" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: a opción «--%s» non permite ningún argumento\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: a opción «%c%s» non permite ningún argumento\n" #, c-format #~ msgid "%s: option '--%s' requires an argument\n" #~ msgstr "%s: a opción «--%s» require un argumento\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: opción «--%s» non recoñecida\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: opción «%c%s» non recoñecida\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: opción incorrecta -- «%c»\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: a opción require un argumento -- «%c»\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: a opción «-W %s» é ambigua\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: a opción «-W %s» non permite ningún argumento\n" #, c-format #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: a opción «-W %s» require un argumento\n" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "produciuse un erro ao crear «%s»" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "produciuse un erro ao escribir o ficheiro «%s»" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "non foi posíbel cambiar os permisos de %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "non foi posíbel crear o directorio %s" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Produciuse un erro ao abrir /dev/zero para ler" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "Success" #~ msgstr "Éxito" #~ msgid "No match" #~ msgstr "Sen coincidencias" #~ msgid "Invalid regular expression" #~ msgstr "Expresión regular non válida" #~ msgid "Invalid collation character" #~ msgstr "Carácter de ordenación incorrecto" #~ msgid "Invalid character class name" #~ msgstr "Nome da clase de caracteres incorrecto" #~ msgid "Trailing backslash" #~ msgstr "Barra invertida ao final" #~ msgid "Unmatched [ or [^" #~ msgstr "[ ou [^ sen parella" #~ msgid "Unmatched ( or \\(" #~ msgstr "( ou \\( sen parella" #~ msgid "Unmatched \\{" #~ msgstr "\\{ sen parella" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Contido de \\{\\} non válido" #~ msgid "Invalid range end" #~ msgstr "Fin de intervalo non válido" #~ msgid "Memory exhausted" #~ msgstr "Memoria esgotada" #~ msgid "Invalid preceding regular expression" #~ msgstr "Expresión regular precedente non válida" #~ msgid "Premature end of regular expression" #~ msgstr "Fin prematura da expresión regular" #~ msgid "Regular expression too big" #~ msgstr "Expresión regular grande de máis" #~ msgid "Unmatched ) or \\)" #~ msgstr ") ou \\) sen parella" #~ msgid "No previous regular expression" #~ msgstr "Non hai ningunha expresión regular anterior" #~ msgid "^[yY]" #~ msgstr "^[sSyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "definindo os permisos para %s" #~ msgid "Quit" #~ msgstr "Saír" #~ msgid "Illegal instruction" #~ msgstr "Instrución inaceptábel" #~ msgid "Aborted" #~ msgstr "Interrompido" #~ msgid "Floating point exception" #~ msgstr "Excepción de coma flotante" #~ msgid "Killed" #~ msgstr "Matado" #~ msgid "Bus error" #~ msgstr "Erro de bus" #~ msgid "Broken pipe" #~ msgstr "Canalización danada" #~ msgid "Alarm clock" #~ msgstr "Reloxo de alarma" #~ msgid "Terminated" #~ msgstr "Terminado" #~ msgid "Stopped" #~ msgstr "Detido" #~ msgid "Continued" #~ msgstr "Continuado" #~ msgid "Child exited" #~ msgstr "O proceso fillo saíu" #~ msgid "Stopped (tty input)" #~ msgstr "Detido (entrada pola terminal)" #~ msgid "Stopped (tty output)" #~ msgstr "Detido (saída pola terminal)" #~ msgid "I/O possible" #~ msgstr "A E/S é posíbel" #~ msgid "CPU time limit exceeded" #~ msgstr "Excedeuse o límite de tempo de CPU" #~ msgid "File size limit exceeded" #~ msgstr "Excedeuse o límite de tamaño do ficheiro" #~ msgid "Virtual timer expired" #~ msgstr "Temporizador virtual esgotado" #~ msgid "User defined signal 1" #~ msgstr "Sinal 1 definido polo usuario" #~ msgid "User defined signal 2" #~ msgstr "Sinal 2 definido polo usuario" #~ msgid "Bad system call" #~ msgstr "Chamada ao sistema errónea" #~ msgid "Stack fault" #~ msgstr "Fallo de pila" #~ msgid "Information request" #~ msgstr "Solicitude de información" #~ msgid "Power failure" #~ msgstr "Fallo de subministración eléctrica" #~ msgid "Resource lost" #~ msgstr "Recurso perdido" #, c-format #~ msgid "cannot create pipe" #~ msgstr "non é posíbel crear a canalización" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Sinal %d descoñecido" #~ msgid "iconv function not usable" #~ msgstr "a función iconv non é utilizábel" #~ msgid "iconv function not available" #~ msgstr "a función iconv non está dispoñíbel" #~ msgid "character out of range" #~ msgstr "carácter fóra de intervalo" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "non é posíbel converter U+%04X ao xogo de caracteres local" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "non é posíbel converter U+%04X ao xogo de caracteres local: %s" #~ msgid "invalid user" #~ msgstr "usuario incorrecto" #~ msgid "invalid group" #~ msgstr "grupo incorrecto" #, c-format #~ msgid "unable to display error message" #~ msgstr "non é posíbel mostrar a mensaxe de erro" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Páxina web de %s: <http://www.gnu.org/software/%s/>\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle fallou" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "non foi posíbel restaurar o fd %d: dup2 fallou" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "fluxo descoñecido" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "produciuse un erro ao volver abrir %s en modo %s" #, c-format #~ msgid "string comparison failed" #~ msgstr "produciuse un erro ao comparar as cadeas" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Defina LC_ALL='C' para paliar o problema." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "As cadeas que se compararon foron %s e %s." #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "o argumento «%s» de %s%s é incorrecto" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "sufixo incorrecto %s%s no argumento «%s»" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opción incorrecta -- %c\n" #~ msgid "block size" #~ msgstr "tamaño de bloque" #~ msgid "%s exists but is not a directory" #~ msgstr "%s existe pero non é un directorio" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "non se pode cambia-lo propietario e/ou grupo de %s" #~ msgid "cannot chdir to directory %s" #~ msgstr "non se pode cambiar ao directorio %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "non se pode obte-lo grupo de login dun UID numérico" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Este programa é software libre; pode redistribuílo e/ou modificalo baixo\n" #~ "os termos da Licencia Pública Xeral de GNU tal como a publicou a Free\n" #~ "Software Foundation; xa ben a versión 2 ou (á súa elección) calquera\n" #~ "versión posterior.\n" #~ "\n" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/hu.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004671�14445132163�012371� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������@�����A�����U�����W�����[�����k����������������������;�����3�����/���H��+���x��'�����#������������������,�����<�����>��-���[������������*����������������������������������,��������3��*���K�����v��5�����-�����)�����%�����!���=�����_�����}������� ����������9�����9�����<���1 �����n ��5��� ����������������������������������������� ����������������� ��������������������������������� ������������������������� ��� �������%s home page: <%s> �'�(C)�Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2014-06-25 19:51+0200 Last-Translator: Balázs Úr <urbalazs@gmail.com> Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net> Language: hu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Lokalize 1.5 �A(z) %s honlapja: <%s> �”�©�Csomagolta: %s �Csomagolta: %s (%s) �A(z) %s hibái a(z) %s címen jelenthetők. �Ismeretlen rendszerhiba�Az érvényes argumentumok a következők:�Írta: %s és %s. �Írta: %s, %s, %s, %s, %s, %s, %s, %s, %s és mások �Írta: %s, %s, %s, %s, %s, %s, %s, %s és %s �Írta: %s, %s, %s, %s, %s, %s, %s és %s �Írta: %s, %s, %s, %s, %s, %s és %s �Írta: %s, %s, %s, %s, %s és %s �Írta: %s, %s, %s, %s és %s �Írta: %s, %s, %s és %s �Írta: %s, %s és %s �Írta: %s. �„�a(z) „%s” argumentum nem egyértelmű ehhez: „%s”�a visszatérés meghiúsult a kiinduló munkakönyvtárba�a(z) „%s” argumentum érvénytelen a következőhöz: %s�elfogyott a memória�az aktuális munkakönyvtár feljegyzése meghiúsult������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/hu.po�������������������������������������������������������������������������0000644�0000000�0000000�00000060026�14445132161�012217� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Hungarian translation for gnulib. # Copyright (C) 2002, 2003, 2004, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Emese Kovacs <emese@instantweb.hu>, 2004. # Gabor Kelemen <kelemeng@gnome.hu>, 2010. # Balázs Úr <urbalazs@gmail.com>, 2014. msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2014-06-25 19:51+0200\n" "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n" "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.5\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "a(z) „%s” argumentum érvénytelen a következőhöz: %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "a(z) „%s” argumentum nem egyértelmű ehhez: „%s”" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Az érvényes argumentumok a következők:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Ismeretlen rendszerhiba" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "elfogyott a memória" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "az aktuális munkakönyvtár feljegyzése meghiúsult" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "a visszatérés meghiúsult a kiinduló munkakönyvtárba" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "„" #: lib/quotearg.c:355 msgid "'" msgstr "”" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Csomagolta: %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Csomagolta: %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format #| msgid "" #| "\n" #| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #| "html>.\n" #| "This is free software: you are free to change and redistribute it.\n" #| "There is NO WARRANTY, to the extent permitted by law.\n" #| "\n" msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "A licenc GPLv3+: a GNU GPL 3. vagy újabb változata <http://gnu.org/licenses/" "gpl.html>\n" "Ez egy szabad szoftver, terjesztheti és/vagy módosíthatja.\n" "NINCS GARANCIA, a törvény által engedélyezett mértékig.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Írta: %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Írta: %s és %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Írta: %s, %s és %s\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Írta: %s, %s, %s\n" "és %s\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Írta: %s, %s, %s,\n" "%s és %s\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Írta: %s, %s, %s,\n" "%s, %s és %s\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Írta: %s, %s, %s,\n" "%s, %s, %s és %s\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Írta: %s, %s, %s,\n" "%s, %s, %s, %s\n" "és %s\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Írta: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s és %s\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Írta: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s és mások\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "A hibák a(z) %s címen jelenthetők.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "A(z) %s hibái a(z) %s címen jelenthetők.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "A(z) %s honlapja: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "" "Általános segítség a GNU szoftverek használatához: <http://www.gnu.org/" "gethelp/>.\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s értéke nem nagyobb, mint %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: Az ARGP_HELP_FMT paraméter értéket igényel" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Az ARGP_HELP_FMT paraméternek pozitívnak kell lennie" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Ismeretlen ARGP_HELP_FMT paraméter" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Szemét az ARGP_HELP_FMT-ben: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Ha egy hosszú kapcsolóhoz kötelező vagy opcionális argumentumot megadni, " #~ "akkor ez a megfelelő rövid kapcsolónál is kötelező vagy opcionális." #~ msgid "Usage:" #~ msgstr "Használat:" #~ msgid " or: " #~ msgstr " vagy: " #~ msgid " [OPTION...]" #~ msgstr " [KAPCSOLÓ…]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "További információkért lásd a(z) „%s --help” vagy „%s --usage” " #~ "kimenetét.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "A hibák itt jelenthetők: %s.\n" #~ msgid "give this help list" #~ msgstr "ezen súgószöveg megjelenítése" #~ msgid "give a short usage message" #~ msgstr "rövid használati utasítás megjelenítése" #~ msgid "NAME" #~ msgstr "NÉV" #~ msgid "set the program name" #~ msgstr "a program nevének beállítása" #~ msgid "SECS" #~ msgstr "MÁSODPERC" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "szünet MP másodpercre (alapértelmezetten 3600)" #~ msgid "print program version" #~ msgstr "a programverzió kiírása" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMHIBA) A verzió nem ismert!" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Túl sok argumentum\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMHIBA) A kapcsolót ismerni kellene?" #~ msgid "program error" #~ msgstr "olvasási hiba" #~ msgid "stack overflow" #~ msgstr "veremtúlcsordulás" #, c-format #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "nem található átmeneti könyvtár, próbálja beállítani a $TMPDIR változót" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "nem lehet létrehozni átmeneti könyvtárat a(z) „%s” sablon használatával" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "nem lehet eltávolítani a(z) %s átmeneti fájlt" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "nem lehet eltávolítani a(z) %s átmeneti könyvtárat" #~ msgid "error closing file" #~ msgstr "hiba a fájl lezárásakor" #~ msgid "write error" #~ msgstr "írási hiba" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "%s jogosultságainak megőrzése" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "hiba \"%s\" megnyitásakor olvasásra" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "%s mentési fájl megnyitása írásra sikertelen" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "hiba \"%s\" olvasásakor" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "hiba \"%s\" írásakor" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "hiba \"%s\" olvasása után" #, c-format #~ msgid "fdopen() failed" #~ msgstr "az fdopen() sikertelen" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "a C# fordító nem található, próbálja telepíteni a pnetet" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "a C# virtuális gép nem található, próbálja telepíteni a pnetet" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s alfolyamat sikertelen" #~ msgid "regular empty file" #~ msgstr "szabályos üres fájl" #~ msgid "regular file" #~ msgstr "szabályos fájl" #~ msgid "directory" #~ msgstr "könyvtár" #~ msgid "block special file" #~ msgstr "speciális blokkfájl" #~ msgid "character special file" #~ msgstr "speciális karakterfájl" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "szimbolikus link" #~ msgid "socket" #~ msgstr "foglalat" #~ msgid "message queue" #~ msgstr "üzenetsor" #~ msgid "semaphore" #~ msgstr "szemafor" #~ msgid "shared memory object" #~ msgstr "megosztott memóriaobjektum" #~ msgid "typed memory object" #~ msgstr "típusos memóriaobjektum" #~ msgid "weird file" #~ msgstr "szokatlan fájl" #~ msgid "Address family for hostname not supported" #~ msgstr "A gépnév címcsaládja nem támogatott" #~ msgid "Temporary failure in name resolution" #~ msgstr "Átmeneti névfeloldási hiba" #~ msgid "Bad value for ai_flags" #~ msgstr "Az ai_flags értéke hibás" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Helyrehozhatatlan névfeloldási hiba" #~ msgid "ai_family not supported" #~ msgstr "Az ai_family nem támogatott" #~ msgid "Memory allocation failure" #~ msgstr "Memóriafoglalási hiba" #~ msgid "No address associated with hostname" #~ msgstr "A gépnévhez nem tartozik cím" #~ msgid "Name or service not known" #~ msgstr "A név vagy szolgáltatás ismeretlen" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "A kiszolgálónév nem támogatott az ai_socktype-hoz" #~ msgid "ai_socktype not supported" #~ msgstr "Az ai_socktype nem támogatott" #~ msgid "System error" #~ msgstr "Rendszerhiba" #~ msgid "Argument buffer too small" #~ msgstr "A paraméterpuffer túl kicsi" #~ msgid "Processing request in progress" #~ msgstr "Kérés feldolgozása folyamatban" #~ msgid "Request canceled" #~ msgstr "Kérés megszakítva" #~ msgid "Request not canceled" #~ msgstr "Kérés nincs megszakítva" #~ msgid "All requests done" #~ msgstr "Minden kérés kész" #~ msgid "Interrupted by a signal" #~ msgstr "Szignál által megszakítva" #~ msgid "Parameter string not correctly encoded" #~ msgstr "A paraméter-karakterlánc nem megfelelő kódolású" #~ msgid "Unknown error" #~ msgstr "Ismeretlen hiba" #, c-format #~ msgid "%s: option '%s' is ambiguous; possibilities:" #~ msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű; lehetőségek:" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n" #, c-format #~ msgid "%s: option '--%s' requires an argument\n" #~ msgstr "%s: a(z) „--%s” kapcsolóhoz egy argumentum szükséges\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: a(z) „--%s” kapcsoló ismeretlen\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: a(z) „%c%s” kapcsoló ismeretlen\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: érvénytelen kapcsoló -- „%c”\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n" #, c-format #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: a „-W %s” kapcsolóhoz egy argumentum szükséges\n" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "érvénytelen source_version argumentum ehhez: compile_java_class" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "érvénytelen target_version argumentum ehhez: compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "„%s” létrehozása sikertelen" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "hiba a(z) „%s” fájl írásakor" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Java fordító nem található, próbálja meg a gcj telepítését vagy a $JAVAC " #~ "beállítását" #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Java virtuális gép nem található, próbálja meg a gij telepítését vagy a " #~ "$JAVA beállítását" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s alfolyamat I/O hiba" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "nem lehet %s jogosultságait megváltoztatni" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "nem lehet létrehozni a(z) %s könyvtárat" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "A /dev/zero megnyitása olvasásra sikertelen" #, c-format #~ msgid "creation of reading thread failed" #~ msgstr "az olvasási szál létrehozása sikertelen" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "nem sikerült a nem blokkolható I/O beállítása a(z) %s alfolyamathoz" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "a(z) %s alfolyamattal történő kommunikáció sikertelen" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "a(z) %s alfolyamatba való írás sikertelen" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "a(z) %s alfolyamatból való olvasás sikertelen" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "a(z) %s alfolyamat ezzel a hibakóddal fejeződött be: %d" #, c-format #~ msgid "creation of threads failed" #~ msgstr "a szálak létrehozása sikertelen" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "a(z) %s alfolyamat ezzel a hibakóddal fejeződött be: %d" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc,ois Pinard" #~ msgid "Success" #~ msgstr "Sikerült" #~ msgid "No match" #~ msgstr "Nincs találat" #~ msgid "Invalid regular expression" #~ msgstr "Érvénytelen szabályos kifejezés" #~ msgid "Invalid collation character" #~ msgstr "Érvénytelen leválogatási karakter" #~ msgid "Invalid character class name" #~ msgstr "Érvénytelen karakterosztálynév" #~ msgid "Trailing backslash" #~ msgstr "Záró visszaper" #~ msgid "Invalid back reference" #~ msgstr "Érvénytelen visszahivatkozás" #~ msgid "Unmatched [ or [^" #~ msgstr "Pár nélküli [ vagy [^" #~ msgid "Unmatched ( or \\(" #~ msgstr "Pár nélküli ( vagy \\(" #~ msgid "Unmatched \\{" #~ msgstr "Pár nélküli \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "A \\{\\} tartalma érvénytelen" #~ msgid "Invalid range end" #~ msgstr "Érvénytelen tartományvég" #~ msgid "Memory exhausted" #~ msgstr "Elfogyott a memória" #~ msgid "Invalid preceding regular expression" #~ msgstr "Érvénytelen megelőző szabályos kifejezés" #~ msgid "Premature end of regular expression" #~ msgstr "A szabályos kifejezés túl korán véget ért" #~ msgid "Regular expression too big" #~ msgstr "A szabályos kifejezés túl nagy" #~ msgid "Unmatched ) or \\)" #~ msgstr "Pár nélküli ) vagy \\)" #~ msgid "No previous regular expression" #~ msgstr "Nincs megelőző szabályos kifejezés" #~ msgid "^[yY]" #~ msgstr "^[iIyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "%s jogosultságainak beállítása" #~ msgid "Hangup" #~ msgstr "Felfüggesztés" #~ msgid "Interrupt" #~ msgstr "Megszakítás" #~ msgid "Quit" #~ msgstr "Kilépés" #~ msgid "Illegal instruction" #~ msgstr "Illegális utasítás" #~ msgid "Trace/breakpoint trap" #~ msgstr "Nyomkövetési/töréspont csapda" #~ msgid "Aborted" #~ msgstr "Megszakítva" #~ msgid "Floating point exception" #~ msgstr "Lebegőpontos kivétel" #~ msgid "Killed" #~ msgstr "Kilőve" #~ msgid "Bus error" #~ msgstr "Buszhiba" #~ msgid "Segmentation fault" #~ msgstr "Szegmentálási hiba" #~ msgid "Broken pipe" #~ msgstr "Megszakadt csővezeték" #~ msgid "Alarm clock" #~ msgstr "Ébresztőóra" #~ msgid "Terminated" #~ msgstr "Befejeződött" #~ msgid "Urgent I/O condition" #~ msgstr "Sürgős I/O feltétel" #~ msgid "Stopped (signal)" #~ msgstr "Leállítva (szignál)" #~ msgid "Stopped" #~ msgstr "Leállítva" #~ msgid "Continued" #~ msgstr "Folytatva" #~ msgid "Child exited" #~ msgstr "Gyerekfolyamat kilépett" #~ msgid "Stopped (tty input)" #~ msgstr "Leállítva (tty bemenet)" #~ msgid "Stopped (tty output)" #~ msgstr "Leállítva (tty kimenet)" #~ msgid "I/O possible" #~ msgstr "I/O lehetséges" #~ msgid "CPU time limit exceeded" #~ msgstr "CPU-időkorlát túllépve" #~ msgid "File size limit exceeded" #~ msgstr "Fájlméret korlátja túllépve" #~ msgid "Virtual timer expired" #~ msgstr "Virtuális időzítés lejárt" #~ msgid "Profiling timer expired" #~ msgstr "A profilozási időzítő lejárt" #~ msgid "Window changed" #~ msgstr "Ablakméret változott" #~ msgid "User defined signal 1" #~ msgstr "Felhasználói szignál 1" #~ msgid "User defined signal 2" #~ msgstr "Felhasználói szignál 2" #~ msgid "EMT trap" #~ msgstr "EMT csapda" #~ msgid "Bad system call" #~ msgstr "Hibás rendszerhívás" #~ msgid "Stack fault" #~ msgstr "Veremhiba" #~ msgid "Information request" #~ msgstr "Információkérés" #~ msgid "Power failure" #~ msgstr "Tápfeszültség-kimaradás" #~ msgid "Resource lost" #~ msgstr "Erőforrás elveszítve" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "hiba egy lezárt cső vagy foglalat írásakor" #, c-format #~ msgid "cannot create pipe" #~ msgstr "nem hozható létre adatcsatorna" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Valós idejű szignál %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Ismeretlen szignál %d" #~ msgid "iconv function not usable" #~ msgstr "az iconv függvény nem használható" #~ msgid "iconv function not available" #~ msgstr "az iconv függvény nem elérhető" #~ msgid "character out of range" #~ msgstr "tartományon kívüli karakter" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "nem lehet helyi karakterkészletbe átalakítani a következőt: U+%04X" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "az U+%04X nem konvertálható a helyi karakterkészletbe: %s" #~ msgid "invalid user" #~ msgstr "érvénytelen felhasználó" #~ msgid "invalid group" #~ msgstr "érvénytelen csoport" #~ msgid "invalid spec" #~ msgstr "érvénytelen specifikáció" #, c-format #~ msgid "unable to display error message" #~ msgstr "nem jeleníthető meg hibaüzenet" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "A(z) %s honlapja: <http://www.gnu.org/software/%s/>.\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle sikertelen" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "az fd %d visszaállítása nem sikerült: dup2 sikertelen" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s alfolyamat" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s alfolyamat végzetes %d szignált kapott" #~ msgid "stdin" #~ msgstr "szabványos bemenet" #~ msgid "stdout" #~ msgstr "szabványos kimenet" #~ msgid "stderr" #~ msgstr "szabványos hibakimenet" #~ msgid "unknown stream" #~ msgstr "ismeretlen adatfolyam" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "%s újranyitása %s móddal meghiúsult" #, c-format #~ msgid "string comparison failed" #~ msgstr "karakterlánc-összehasonlítás sikertelen" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "" #~ "Állítsa be az LC_ALL='C' környezeti változót a probléma megkerüléséhez." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Az összehasonlított karakterláncok: %s és %s." #, c-format #~ msgid "cannot perform formatted output" #~ msgstr "nem lehet végrehajtani formázott kimenetet" #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "érvénytelen %s%s argumentum: „%s”" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "érvénytelen utótag a(z) %s%s argumentumban: „%s”" #, c-format #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s: a(z) „%s” argumentum túl nagy" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/insert-header.sin�������������������������������������������������������������0000644�0000000�0000000�00000001612�14415562264�014514� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sed script that inserts the file called HEADER before the header entry. # # Copyright (C) 2001 Free Software Foundation, Inc. # Written by Bruno Haible <bruno@clisp.org>, 2001. # This file is free software; the Free Software Foundation gives # unlimited permission to use, copy, distribute, and modify it. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ����������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/it.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005617�14445132163�012372� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������+����������������������� �����% �����= �����[ �����r ��7��� ��0��� ��,��� ��(��� ��$���F �� ���k ����� ����� ����� ����� ����� ��6��� �����( �����G ��6���X ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib-4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-21 14:07+0200 Last-Translator: Milo Casagrande <milo@milo.name> Language-Team: Italian <tp@lists.linux.it> Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.2.1 �Sito web di %s: <%s> �»�©�Aiuto per l'utilizzo di software GNU: <%s> �Licenza GPLv3+: GNU GPL versione 3 o successiva <%s>. Questo programma è software libero: siete liberi di modificarlo e ridistribuirlo. Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative. �Pacchetto creato da %s �Pacchetto creato da %s (%s) �Segnalare i bug di %s a: %s. �Segnalare i bug a: %s �Errore di sistema sconosciuto�Sono argomenti validi:�Scritto da %s e %s. �Scritto da %s, %s, %s, %s, %s, %s, %s, %s, %s e altri. �Scritto da %s, %s, %s, %s, %s, %s, %s, %s e %s. �Scritto da %s, %s, %s, %s, %s, %s, %s e %s. �Scritto da %s, %s, %s, %s, %s, %s e %s. �Scritto da %s, %s, %s, %s, %s e %s. �Scritto da %s, %s, %s, %s e %s. �Scritto da %s, %s, %s e %s. �Scritto da %s, %s e %s. �Scritto da %s. �«�argomento %s ambiguo per %s�ritorno alla directory di lavoro iniziale non riuscito�argomento %s non valido per %s�memoria esaurita�impossibile registrare la directory di lavoro corrente������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/it.po�������������������������������������������������������������������������0000644�0000000�0000000�00000067213�14445132161�012224� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Italian translation of gnulib # Copyright (C) 2008, 2009, 2010, 2011, 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Marco d'Itri <md@linux.it>, 1998, 1999. # Giovanni Bortolozzo <borto@dei.unipd.it>, 1998. # Milo Casagrande <milo@milo.name>, 2008, 2009, 2010, 2011, 2019. # msgid "" msgstr "" "Project-Id-Version: gnulib-4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-21 14:07+0200\n" "Last-Translator: Milo Casagrande <milo@milo.name>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.2.1\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argomento %s non valido per %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argomento %s ambiguo per %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Sono argomenti validi:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Errore di sistema sconosciuto" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memoria esaurita" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "impossibile registrare la directory di lavoro corrente" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "ritorno alla directory di lavoro iniziale non riuscito" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "«" #: lib/quotearg.c:355 msgid "'" msgstr "»" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pacchetto creato da %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pacchetto creato da %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Licenza GPLv3+: GNU GPL versione 3 o successiva <%s>.\n" "Questo programma è software libero: siete liberi di modificarlo e " "ridistribuirlo.\n" "Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Scritto da %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Scritto da %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Scritto da %s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Scritto da %s, %s, %s\n" "e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Scritto da %s, %s, %s,\n" "%s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Scritto da %s, %s, %s,\n" "%s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Scritto da %s, %s, %s,\n" "%s, %s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Scritto da %s, %s, %s,\n" "%s, %s, %s, %s\n" "e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Scritto da %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Scritto da %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s e altri.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" "Segnalare i bug a: %s\n" "\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Segnalare i bug di %s a: %s.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Sito web di %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Aiuto per l'utilizzo di software GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: il valore %s è minore o uguale a %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: il parametro ARGP_HELP_FMT richiede un valore" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: parametro ARGP_HELP_FMT sconosciuto" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Spazzatura in ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Gli argomenti obbligatori o facoltativi per le opzioni estese lo sono " #~ "anche per le corrispondenti opzioni brevi." #~ msgid "Usage:" #~ msgstr "Uso:" #~ msgid " or: " #~ msgstr " o: " #~ msgid " [OPTION...]" #~ msgstr " [OPZIONE...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Provare «%s --help» o «%s --usage» per ulteriori informazioni.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Segnalare i bug a %s.\n" #~ msgid "give this help list" #~ msgstr "Mostra questo aiuto" #~ msgid "give a short usage message" #~ msgstr "Mostra un breve messaggio sull'uso" #~ msgid "NAME" #~ msgstr "NOME" #~ msgid "set the program name" #~ msgstr "Imposta il nome del programma" #~ msgid "SECS" #~ msgstr "SEC" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "Resta in attesa per SEC secondi (predefinito 3600)" #~ msgid "print program version" #~ msgstr "Stampa la versione del programma" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ERRORE DEL PROGRAMMA) Nessuna versione conosciuta." #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: troppi argomenti\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "" #~ "(ERRORE DEL PROGRAMMA) L'opzione dovrebbe essere stata riconosciuta." #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u liberati (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u nella cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u nella cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u nella cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "istogramma registro del conteggio\n" #~ msgid "size log histogram\n" #~ msgstr "istogramma registro delle dimensioni\n" #~ msgid "density histogram\n" #~ msgstr "istogramma densità\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Statistiche bitset:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Esecuzioni accumulate = %u\n" #~ msgid "cannot read stats file" #~ msgstr "impossibile leggere il file delle statistiche" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "dimensione file delle statistiche errata\n" #~ msgid "cannot write stats file" #~ msgstr "impossibile scrivere il file delle statistiche" #~ msgid "cannot open stats file for writing" #~ msgstr "impossibile aprire il file delle statistiche in scrittura" #~ msgid "program error" #~ msgstr "errore del programma" #~ msgid "stack overflow" #~ msgstr "overflow dello stack" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "impossibile trovare una directory temporanea, provare a impostare $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "impossibile creare una directory temporanea usando il modello «%s»" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "impossibile rimuovere il file temporaneo %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "impossibile rimuovere la directory temporanea %s" #~ msgid "error closing file" #~ msgstr "errore nel chiudere il file" #~ msgid "write error" #~ msgstr "errore di scrittura" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "preservazione dei permessi per %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "errore nell'aprire %s in lettura" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "impossibile aprire il file di backup %s in scrittura" #, c-format #~ msgid "error reading %s" #~ msgstr "errore nel leggere %s" #, c-format #~ msgid "error writing %s" #~ msgstr "errore nello scrivere %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "errore dopo la lettura di %s" #~ msgid "fdopen() failed" #~ msgstr "fdopen() non riuscita" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "compilatore C# non trovato, provare a installare mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "macchina virtuale C# non trovata, provare a installare mono" #~ msgid "unbalanced [" #~ msgstr "[ non bilanciata" #~ msgid "invalid character class" #~ msgstr "classe carattere non valida" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "la sintassi per la classe carattere è [[:space:]], non [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "escape \\ incompleto" #~ msgid "invalid content of \\{\\}" #~ msgstr "contenuto di \\{\\} non valido" #~ msgid "regular expression too big" #~ msgstr "espressione regolare troppo grande" #~ msgid "unbalanced (" #~ msgstr "( non bilanciata" #~ msgid "no syntax specified" #~ msgstr "nessuna sintassi specificata" #~ msgid "unbalanced )" #~ msgstr ") non bilanciata" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: sottoprocesso non riuscito" #~ msgid "regular empty file" #~ msgstr "file normale vuoto" #~ msgid "regular file" #~ msgstr "file normale" #~ msgid "directory" #~ msgstr "directory" #~ msgid "symbolic link" #~ msgstr "collegamento simbolico" #~ msgid "message queue" #~ msgstr "coda di messaggi" #~ msgid "semaphore" #~ msgstr "semaforo" #~ msgid "shared memory object" #~ msgstr "oggetto di memoria condivisa" # (ndt) sono accettati: # - suggerimenti # - collegamenti dove si spieghi cosa sia un 'typed memory object' # Ma dove si spieghi VERAMENTE e CONCRETAMENTE cos'è. #~ msgid "typed memory object" #~ msgstr "oggetto di memoria con nome" #~ msgid "block special file" #~ msgstr "file speciale a blocchi" #~ msgid "character special file" #~ msgstr "file speciale a caratteri" #~ msgid "contiguous data" #~ msgstr "dati contigui" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "door" #~ msgstr "door" #~ msgid "multiplexed block special file" #~ msgstr "file speciale a blocchi multiplex" #~ msgid "multiplexed character special file" #~ msgstr "file speciale a caratteri multiplex" #~ msgid "multiplexed file" #~ msgstr "file multiplex" #~ msgid "named file" #~ msgstr "file con nome" #~ msgid "network special file" #~ msgstr "file speciale di rete" #~ msgid "migrated file with data" #~ msgstr "file migrato con dati" #~ msgid "migrated file without data" #~ msgstr "file migrato senza dati" #~ msgid "port" #~ msgstr "porta" #~ msgid "socket" #~ msgstr "socket" #~ msgid "whiteout" #~ msgstr "whiteout" #~ msgid "weird file" #~ msgstr "file strano" #~ msgid "Address family for hostname not supported" #~ msgstr "Famiglia di indirizzi per il nome host non supportata" #~ msgid "Temporary failure in name resolution" #~ msgstr "Errore temporaneo nella risoluzione del nome" #~ msgid "Bad value for ai_flags" #~ msgstr "Valore per ai_flags errato" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Errore irreversibile nella risoluzione del nome" #~ msgid "ai_family not supported" #~ msgstr "ai_family non supportato" #~ msgid "Memory allocation failure" #~ msgstr "Allocazione memoria non riuscita" #~ msgid "No address associated with hostname" #~ msgstr "Nessun indirizzo associato col nome host" #~ msgid "Name or service not known" #~ msgstr "Nome o servizio sconosciuto" # (ndt) # # define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */ #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Nome servizio non supportato per ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype non supportato" #~ msgid "System error" #~ msgstr "Errore di sistema" #~ msgid "Argument buffer too small" #~ msgstr "Buffer argomento troppo piccolo" #~ msgid "Processing request in progress" #~ msgstr "Elaborazione richiesta in corso" #~ msgid "Request canceled" #~ msgstr "Richiesta annullata" #~ msgid "Request not canceled" #~ msgstr "Richiesta non annullata" #~ msgid "All requests done" #~ msgstr "Tutte le richieste completate" #~ msgid "Interrupted by a signal" #~ msgstr "Interrotto da un segnale" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Stringa del parametro non codificata correttamente" #~ msgid "Unknown error" #~ msgstr "Errore sconosciuto" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: l'opzione «%s%s» è ambigua\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: l'opzione «%s%s» è ambigua. Possibilità:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: opzione «%s%s» non riconosciuta\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: l'opzione «%s%s» non accetta un argomento\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: l'opzione «%s%s» richiede un argomento\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: opzione non valida -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: l'opzione richiede un argomento -- %c\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argomento source_version in compile_java_class non valido" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argomento target_version in compile_java_class non valido" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "creazione di \"%s\" non riuscita" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "errore durante la scrittura del file \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "compilatore Java non trovato, provare a installare gcj o impostare $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "macchina virtuale Java non trovato, provare a installare gij o impostare " #~ "$JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "errore di I/O nel sottoprocesso %s" #, c-format #~ msgid "cannot stat %s" #~ msgstr "impossibile eseguire stat di %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "impossibile cambiare i permessi di %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "impossibile creare la directory %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Apertura di /dev/zero in lettura non riuscita" #~ msgid "creation of reading thread failed" #~ msgstr "creazione del thread di lettura non riuscita" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "impossibile impostare I/O non bloccante sul sottoprocesso di %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "comunicazione col sottoprocesso di %s non riuscita" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "scrittura sul sottoprocesso di %s non riuscita" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "lettura dal sottoprocesso di %s non riuscita" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "sottoprocesso %s terminato con codice d'uscita %d" #~ msgid "creation of threads failed" #~ msgstr "creazione dei thread non riuscita" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "sottoprocesso di %s terminato con codice d'uscita %d" #~ msgid "Success" #~ msgstr "Successo" #~ msgid "No match" #~ msgstr "Nessuna corrispondenza" #~ msgid "Invalid regular expression" #~ msgstr "Espressione regolare non valida" # (ndt) http://en.wikipedia.org/wiki/Collation #~ msgid "Invalid collation character" #~ msgstr "Carattere di collazione non valido" #~ msgid "Invalid character class name" #~ msgstr "Nome classe del carattere non valida" #~ msgid "Trailing backslash" #~ msgstr "Backslash finale" #~ msgid "Invalid back reference" #~ msgstr "Riferimento all'indietro non valido" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "[, [^, [:, [. o [= senza corrispondenza" #~ msgid "Unmatched ( or \\(" #~ msgstr "( o \\( senza corrispondenza" #~ msgid "Unmatched \\{" #~ msgstr "\\{ senza corrispondenza" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Contenuto di \\{\\} non valido" #~ msgid "Invalid range end" #~ msgstr "Fine dell'intervallo non valida" #~ msgid "Memory exhausted" #~ msgstr "Memoria esaurita" #~ msgid "Invalid preceding regular expression" #~ msgstr "Espressione regolare precedente non valida" #~ msgid "Premature end of regular expression" #~ msgstr "Fine prematura dell'espressione regolare" #~ msgid "Regular expression too big" #~ msgstr "Espressione regolare troppo grande" #~ msgid "Unmatched ) or \\)" #~ msgstr ") o \\) senza corrispondenza" #~ msgid "No previous regular expression" #~ msgstr "Nessuna espressione regolare precedente" #~ msgid "^[yY]" #~ msgstr "^[sSyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "impostazione dei permessi per %s" # (ndt) ho preferito mettere tra parentesi il vero nome della costante del segnale, sono cose abbastanza tecniche e forse con un riferimento reale più comprensibili # # http://en.wikipedia.org/wiki/SIGHUP #~ msgid "Hangup" #~ msgstr "Chiusura" # http://en.wikipedia.org/wiki/SIGINT_(POSIX) #~ msgid "Interrupt" #~ msgstr "Interruzione" # http://en.wikipedia.org/wiki/SIGQUIT #~ msgid "Quit" #~ msgstr "Uscita (con core dump)" # http://en.wikipedia.org/wiki/SIGILL #~ msgid "Illegal instruction" #~ msgstr "Istruzione non consentita" # http://en.wikipedia.org/wiki/Trap_(computing) # http://en.wikipedia.org/wiki/SIGTRAP #~ msgid "Trace/breakpoint trap" #~ msgstr "Rilevato trace/breakpoint" # http://en.wikipedia.org/wiki/SIGABRT #~ msgid "Aborted" #~ msgstr "Annullato" # http://en.wikipedia.org/wiki/SIGFPE #~ msgid "Floating point exception" #~ msgstr "Eccezione in virgola mobile" #~ msgid "Killed" #~ msgstr "Ucciso" # http://en.wikipedia.org/wiki/Bus_error # http://en.wikipedia.org/wiki/SIGBUS #~ msgid "Bus error" #~ msgstr "Errore di bus" # http://en.wikipedia.org/wiki/Segmentation_fault # http://en.wikipedia.org/wiki/SIGSEGV #~ msgid "Segmentation fault" #~ msgstr "Errore di segmentazione" # http://en.wikipedia.org/wiki/SIGPIPE #~ msgid "Broken pipe" #~ msgstr "Pipe interrotta" # (ndt) non so se convenga lasciarlo invariato... ma forse anche le altre... # http://en.wikipedia.org/wiki/SIGALRM #~ msgid "Alarm clock" #~ msgstr "Sveglia" # http://en.wikipedia.org/wiki/SIGTERM #~ msgid "Terminated" #~ msgstr "Terminato" # http://en.wikipedia.org/wiki/SIGURG #~ msgid "Urgent I/O condition" #~ msgstr "Condizione di I/O urgente" # http://en.wikipedia.org/wiki/SIGSTOP #~ msgid "Stopped (signal)" #~ msgstr "Fermato" # http://en.wikipedia.org/wiki/SIGTSTP #~ msgid "Stopped" #~ msgstr "Fermato (da terminale)" # http://en.wikipedia.org/wiki/SIGCONT #~ msgid "Continued" #~ msgstr "Continuato" # http://en.wikipedia.org/wiki/SIGCHLD #~ msgid "Child exited" #~ msgstr "Processo figlio uscito" # http://en.wikipedia.org/wiki/SIGTTIN #~ msgid "Stopped (tty input)" #~ msgstr "Fermato per input tty" # http://en.wikipedia.org/wiki/SIGTTOU #~ msgid "Stopped (tty output)" #~ msgstr "Fermato per output tty" # (ndt) questa pare non sia posix, wikipedia riporta la stessa di SIGABRT #~ msgid "I/O possible" #~ msgstr "I/O consentito" # http://en.wikipedia.org/wiki/SIGXCPU #~ msgid "CPU time limit exceeded" #~ msgstr "Superato il limite di tempo CPU" # http://en.wikipedia.org/wiki/SIGXFSZ #~ msgid "File size limit exceeded" #~ msgstr "Superato il limite di dimensione file" # http://en.wikipedia.org/wiki/SIGVTALRM #~ msgid "Virtual timer expired" #~ msgstr "Timer virtuale terminato" # http://en.wikipedia.org/wiki/SIGPROF #~ msgid "Profiling timer expired" #~ msgstr "Timer di profiling terminato" # http://en.wikipedia.org/wiki/SIGWINCH #~ msgid "Window changed" #~ msgstr "Finestra modificata" # http://en.wikipedia.org/wiki/SIGUSR1 #~ msgid "User defined signal 1" #~ msgstr "Segnale 1 definito dall'utente" #~ msgid "User defined signal 2" #~ msgstr "Segnale 2 definito dall'utente" # http://en.wikipedia.org/wiki/SIGEMT #~ msgid "EMT trap" #~ msgstr "Rilevato EMT" # http://en.wikipedia.org/wiki/SIGSYS #~ msgid "Bad system call" #~ msgstr "Chiamata di sistema errata" # http://en.wikipedia.org/wiki/SIGSTKFLT #~ msgid "Stack fault" #~ msgstr "Errore sullo stack" # http://en.wikipedia.org/wiki/SIGINFO #~ msgid "Information request" #~ msgstr "Richiesta informazioni" # http://en.wikipedia.org/wiki/SIGPWR #~ msgid "Power failure" #~ msgstr "Mancanza alimentazione elettrica" # http://en.wikipedia.org/wiki/SIGLOST #~ msgid "Resource lost" #~ msgstr "Risorsa persa" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "errore nello scrivere su una pipe o un socket chiusi" #~ msgid "cannot create pipe" #~ msgstr "impossibile creare la pipe" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Segnale real-time %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Segnale %d sconosciuto" #~ msgid "Execution times (seconds)" #~ msgstr "Tempi di esecuzione (secondi)" #~ msgid "CPU user" #~ msgstr "CPU utente" #~ msgid "CPU system" #~ msgstr "CPU sistema" #~ msgid "wall clock" #~ msgstr "tempo reale" #~ msgid "iconv function not usable" #~ msgstr "funzione iconv non utilizzabile" #~ msgid "iconv function not available" #~ msgstr "funzione iconv non disponibile" #~ msgid "character out of range" #~ msgstr "carattere fuori dall'intervallo" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "impossibile convertire U+%04X nel set di caratteri locale" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "impossibile convertire U+%04X nel set di caratteri locale: %s" #~ msgid "invalid user" #~ msgstr "utente non valido" #~ msgid "invalid group" #~ msgstr "gruppo non valido" # (ndt) evinta da un commento al codice: # # /* Set U and G to nonzero length strings corresponding to user and # group specifiers or to NULL. If U is not NULL, it is a newly # allocated string. */ # #~ msgid "invalid spec" #~ msgstr "specificatore non valido" #~ msgid "unable to display error message" #~ msgstr "impossibile visualizzare il messaggio di errore" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle non riuscita" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "impossibile ripristinare fd %d: dup2 non riuscita" #, c-format #~ msgid "%s subprocess" #~ msgstr "sottoprocesso %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "il sottoprocesso %s ha ricevuto un segnale %d fatale" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "" #~ "impostazione del descrittore file in modalità testo/binario non riuscita" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "stream sconosciuto" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "riapertura di %s in modalità %s non riuscita" #~ msgid "string comparison failed" #~ msgstr "confronto delle stringhe non riuscito" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Impostare LC_ALL='C' per aggirare il problema." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Le stringhe confrontate erano %s e %s." #~ msgid "cannot perform formatted output" #~ msgstr "impossibile mostrare l'output formattato" #~ msgid "standard file descriptors" #~ msgstr "descrittori file standard" # (ndt) # quello che viene sostituito pare sia: # * il primo, hypens (con valore '--') # * il secondo, option # * il terzo, arg # quindi qualche cosa del genere: # invalid --option argument 'arg' # # (altre idee sono benvenute!) #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "l'argomento «%3$s» di %1$s%2$s non è valido" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "il suffisso nell'argomento «%3$s» di %1$s%2$s non è valido" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "l'argomento «%3$s» di %1$s%2$s è troppo grande" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ja.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005171�14445132163�012343� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������@�����A�����U�����W�����[�����k����������������������;�����3�����/���H��+���x��'�����#������������������,�����<�����>��-���[������������*�����������������������������"�����4��� �����A�����`�����q��V�����F�����A���*��:���l��4�����.�����)��� ��"���5 �� ���X �����f ��,���h ��?��� ��5��� ��$��� ��H���0 ����������������������������������������� ����������������� ��������������������������������� ������������������������� ��� �������%s home page: <%s> �'�(C)�Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2011-09-02 18:39+0900 Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com> Language-Team: Japanese <translation-team-ja@lists.sourceforge.net> Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=1; plural=0; �%s のホームページ: <%s> �'�(C)�パッケージ作成者: %s �パッケージ作成者: %s (%s) �%s のバグは <%s> に報告してください。 �不明なシステムエラー�有効な引数:�作者 %s および %s。 �作者 %s、 %s、 %s、 %s、 %s、 %s、 %s、 %s、 %s、 および他の方々。 �作者 %s、 %s、 %s、 %s、 %s、 %s、 %s、 %s、および %s。 �作者 %s、 %s、 %s、 %s、 %s、 %s、 %s、 および %s。 �作者 %s、 %s、 %s、 %s、 %s、 %s、および %s。 �作者 %s、 %s、 %s、 %s、 %s、および %s。 �作者 %s、 %s、 %s、 %s、および %s。 �作者 %s、 %s、 %s、 および %s。 �作者 %s、 %s、および %s。 �作者 %s。 �`�%2$s に対する引数 %1$s が曖昧です�初期作業ディレクトリに戻るのに失敗しました�%2$s に対する引数 %1$s が間違っています�メモリを使い果たしました�現在の作業ディレクトリを記録することができません��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ja.po�������������������������������������������������������������������������0000644�0000000�0000000�00000066127�14445132161�012205� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Japanese gnulib messages # Copyright (C) 2000, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Masahito Yamaga <yamaga@ipc.chiba-u.ac.jp>, 2002. # GOTO Masanori <gotom@debian.or.jp>, 2006. # derived from the version by Yasuyuki Furukawa <yasu@on.cs.keio.ac.jp> 1998. # Jun Nishii <jun@flatout.org> 1999. # Daisuke Yamashita <yamad@mb.infoweb.ne.jp> 1999. # Yasuaki Taniguchi <yasuakit@gmail.com>, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2011-09-02 18:39+0900\n" "Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n" "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "%2$s に対する引数 %1$s が間違っています" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "%2$s に対する引数 %1$s が曖昧です" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "有効な引数:" #: lib/error.c:193 msgid "Unknown system error" msgstr "不明なシステムエラー" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "メモリを使い果たしました" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "現在の作業ディレクトリを記録することができません" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "初期作業ディレクトリに戻るのに失敗しました" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "パッケージ作成者: %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "パッケージ作成者: %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "(C)" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format #| msgid "" #| "\n" #| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #| "html>.\n" #| "This is free software: you are free to change and redistribute it.\n" #| "There is NO WARRANTY, to the extent permitted by law.\n" #| "\n" msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "ライセンス GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." "html>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "作者 %s。\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "作者 %s および %s。\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "作者 %s、 %s、および %s。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "作者 %s、 %s、 %s、\n" "および %s。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "作者 %s、 %s、 %s、\n" "%s、および %s。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "作者 %s、 %s、 %s、\n" "%s、 %s、および %s。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "作者 %s、 %s、 %s、\n" "%s、 %s、 %s、および %s。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "作者 %s、 %s、 %s、\n" "%s、 %s、 %s、 %s、\n" "および %s。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "作者 %s、 %s、 %s、\n" "%s、 %s、 %s、 %s、\n" "%s、および %s。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "作者 %s、 %s、 %s、\n" "%s、 %s、 %s、 %s、\n" "%s、 %s、 および他の方々。\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "バグを発見したら <%s> に報告して下さい。\n" "翻訳に関するバグは<translation-team-ja@lists.sourceforge.net>に報告してくださ" "い。\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "%s のバグは <%s> に報告してください。\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s のホームページ: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "" "GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s の値は %s の値以下です" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT パラメータには値が必要です" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT パラメータは正の値でなければいけません" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: 不明な ARGP_HELP_FMT パラメータ" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "ARGP_HELP_FMT 中にごみがあります: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "長い形式のオプションで必須または任意の引数は、それに対応する短い形式のオプ" #~ "ションでも同様に必須または任意です。" #~ msgid "Usage:" #~ msgstr "使用法:" #~ msgid " or: " #~ msgstr "または: " #~ msgid " [OPTION...]" #~ msgstr " [OPTION...]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "詳細は `%s --help' または `%s --usage' を実行して下さい。\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "バグを発見したら <%s> に報告して下さい。\n" #~ "翻訳に関するバグは<translation-team-ja@lists.sourceforge.net>に報告してく" #~ "ださい。\n" #~ msgid "give this help list" #~ msgstr "このヘルプを表示する" #~ msgid "give a short usage message" #~ msgstr "短い使用方法を表示する" #~ msgid "NAME" #~ msgstr "名前" #~ msgid "set the program name" #~ msgstr "プログラム名を設定する" #~ msgid "SECS" #~ msgstr "SECS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "SECS 秒でハング (デフォルト 3600)" #~ msgid "print program version" #~ msgstr "プログラムのバージョンを表示する" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(プログラムエラー) 不明なバージョン!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: 引数が多すぎます\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(プログラムエラー) オプションは認識されているべきです!?" #~ msgid "program error" #~ msgstr "プログラムエラー" #~ msgid "stack overflow" #~ msgstr "スタックオーバーフロー" #, c-format #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "一時ディレクトリを作成できません。 $TMPDIR を設定してみてください" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "テンプレート \"%s\" を使用した一時ディレクトリを作成できません" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "一時ファイル %s を削除できません" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "一時ディレクトリ %s を削除できません" #~ msgid "error closing file" #~ msgstr "ファイルクローズエラー" #~ msgid "write error" #~ msgstr "書き込みエラー" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "%s のパーミッションを保存しています" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "\"%s\"を読込むため開いている際にエラーが発生しました" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "書込み用バックアップファイル\"%s\"を開くことができません" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "\"%s\"の読込み中にエラーが発生しました" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "\"%s\"の書込み中にエラーが発生しました" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "\"%s\"の読込み後にエラーが発生しました" #, c-format #~ msgid "fdopen() failed" #~ msgstr "fdopen()に失敗しました" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "C# コンパイラが見つりません。pnet をインストールしてみてください" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "C# 仮想マシンが見つかりません。pnet をインストールしてみてください" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s サブプロセスが失敗しました" #~ msgid "regular empty file" #~ msgstr "通常の空ファイル" #~ msgid "regular file" #~ msgstr "通常ファイル" #~ msgid "directory" #~ msgstr "ディレクトリ" #~ msgid "block special file" #~ msgstr "ブロックスペシャルファイル" #~ msgid "character special file" #~ msgstr "キャラクタスペシャルファイル" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "シンボリックリンク" #~ msgid "socket" #~ msgstr "ソケット" #~ msgid "message queue" #~ msgstr "メッセージキュー" #~ msgid "semaphore" #~ msgstr "セマフォ" #~ msgid "shared memory object" #~ msgstr "共有メモリオブジェクト" #~ msgid "typed memory object" #~ msgstr "型付メモリオブジェクト" #~ msgid "weird file" #~ msgstr "不明なファイル" #~ msgid "Address family for hostname not supported" #~ msgstr "ホスト名に対する Address family がサポートされていません" #~ msgid "Temporary failure in name resolution" #~ msgstr "名前解決に一時的に失敗しました" #~ msgid "Bad value for ai_flags" #~ msgstr "ai_flags に対する誤った値です" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "名前解決でリカバリできない失敗が発生しました" #~ msgid "ai_family not supported" #~ msgstr "ai_family はサポートされていません" #~ msgid "Memory allocation failure" #~ msgstr "メモリ配置に失敗しました" #~ msgid "No address associated with hostname" #~ msgstr "ホスト名にアドレスが割り当てられていません" #~ msgid "Name or service not known" #~ msgstr "名前またはサービスが不明です" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "ai_socktype に対して Servname がサポートされていません" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype はサポートされていません" #~ msgid "System error" #~ msgstr "システムエラー" #~ msgid "Argument buffer too small" #~ msgstr "引数バッファが小さすぎます" #~ msgid "Processing request in progress" #~ msgstr "要求された処理は実行中です" #~ msgid "Request canceled" #~ msgstr "要求がキャンセルされました" #~ msgid "Request not canceled" #~ msgstr "要求がキャンセルされませんでした" #~ msgid "All requests done" #~ msgstr "すべての要求が完了しました" #~ msgid "Interrupted by a signal" #~ msgstr "シグナル割り込みが発生しました" #~ msgid "Parameter string not correctly encoded" #~ msgstr "パラメーター文字列が正しくエンコードされていません" #~ msgid "Unknown error" #~ msgstr "不明なエラー" #, c-format #~ msgid "%s: option '%s' is ambiguous; possibilities:" #~ msgstr "%s: オプション '%s' は曖昧です:次のものが可能です:" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: オプション '--%s' は引数を取ることができません\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: オプション '%c%s' は引数を取ることができません\n" #, c-format #~ msgid "%s: option '--%s' requires an argument\n" #~ msgstr "%s: オプション '--%s' は引数が必要です\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: オプション '--%s' を認識できません\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: オプション '%c%s' を認識できません\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: 無効なオプション -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: オプションには引数が必要です -- '%c'\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: オプション '-W %s' は曖昧です\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: オプション '-W %s' は引数を取ることができません\n" #, c-format #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: オプション '-W %s' は引数が必要です\n" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "compile_java_class への source_version 引数が無効です" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "compile_java_class への target_version 引数が無効です" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "\"%s\" の作成に失敗しました" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "\"%s\" ファイルの書き込み中にエラーが発生しました" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Java コンパイラが見つかりません。 gcj をインストールするか、または $JAVAC " #~ "を設定してみてください" #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Java 仮想マシンが見つかりません。 gij をインストールするか、または $JAVA " #~ "を設定してみてください" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s サブプロセス I/O エラー" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "%s のパーミッションを変更できません" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "ディレクトリ %s を作成できません" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "/dev/zeroを読込み用に開けません" #, c-format #~ msgid "creation of reading thread failed" #~ msgstr "読み込みスレッドの作成に失敗しました" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "%s 子プロセスへ非ブロック I/O を設定できません" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "%s 子プロセスとの通信に失敗しました" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "%s 子プロセスへの書き込みに失敗しました" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "%s 子プロセスからの読み込みに失敗しました" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "子プロセス %s が終了コード %d で終了しました" #, c-format #~ msgid "creation of threads failed" #~ msgstr "スレッドの作成に失敗しました" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s 子プロセスが終了コード %d で終了しました" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc,ois Pinard" #~ msgid "Success" #~ msgstr "成功です" #~ msgid "No match" #~ msgstr "一致しません" #~ msgid "Invalid regular expression" #~ msgstr "無効な正規表現です" #~ msgid "Invalid collation character" #~ msgstr "無効な照合文字です" #~ msgid "Invalid character class name" #~ msgstr "無効な文字クラス名です" #~ msgid "Trailing backslash" #~ msgstr "終端のバックスラッシュ" #~ msgid "Invalid back reference" #~ msgstr "無効な前方参照です" #~ msgid "Unmatched [ or [^" #~ msgstr "[ または [^ が不一致です" #~ msgid "Unmatched ( or \\(" #~ msgstr "( または \\( が不一致です" #~ msgid "Unmatched \\{" #~ msgstr "\\{ が不一致です" #~ msgid "Invalid content of \\{\\}" #~ msgstr "\\{\\} の中身が無効です" #~ msgid "Invalid range end" #~ msgstr "無効な範囲終了です" #~ msgid "Memory exhausted" #~ msgstr "メモリを使い果たしました" #~ msgid "Invalid preceding regular expression" #~ msgstr "無効な前方正規表現です" #~ msgid "Premature end of regular expression" #~ msgstr "正規表現が途中で終了しました" #~ msgid "Regular expression too big" #~ msgstr "正規表現が大きすぎます" #~ msgid "Unmatched ) or \\)" #~ msgstr ") または \\) が不一致です" #~ msgid "No previous regular expression" #~ msgstr "以前に正規表現がありません" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "%s のパーミッションを設定します" #~ msgid "Hangup" #~ msgstr "Hangup" #~ msgid "Interrupt" #~ msgstr "割り込み" #~ msgid "Quit" #~ msgstr "終了" #~ msgid "Illegal instruction" #~ msgstr "Illegal instruction" #~ msgid "Trace/breakpoint trap" #~ msgstr "Trace/breakpoint trap" #~ msgid "Aborted" #~ msgstr "中止" #~ msgid "Floating point exception" #~ msgstr "浮動小数点例外" #~ msgid "Killed" #~ msgstr "強制終了" #~ msgid "Bus error" #~ msgstr "バスエラー" #~ msgid "Segmentation fault" #~ msgstr "Segmentation fault" #~ msgid "Broken pipe" #~ msgstr "Broken pipe" #~ msgid "Alarm clock" #~ msgstr "Alarm clock" #~ msgid "Terminated" #~ msgstr "Terminated" #~ msgid "Urgent I/O condition" #~ msgstr "緊急 I/O 状態" #~ msgid "Stopped (signal)" #~ msgstr "停止 (シグナル)" #~ msgid "Stopped" #~ msgstr "停止" #~ msgid "Continued" #~ msgstr "継続" #~ msgid "Child exited" #~ msgstr "子プロセス終了" #~ msgid "Stopped (tty input)" #~ msgstr "停止 (tty 入力)" #~ msgid "Stopped (tty output)" #~ msgstr "停止 (tty 出力)" #~ msgid "I/O possible" #~ msgstr "I/O 可能" #~ msgid "CPU time limit exceeded" #~ msgstr "CPU時間制限を超過しました" #~ msgid "File size limit exceeded" #~ msgstr "ファイルサイズ制限を超過しました" #~ msgid "Virtual timer expired" #~ msgstr "仮想タイマーが終了しました" #~ msgid "Profiling timer expired" #~ msgstr "プロファイリングタイマーが終了しました" #~ msgid "Window changed" #~ msgstr "Window が変更されました" #~ msgid "User defined signal 1" #~ msgstr "ユーザー定義シグナル1" #~ msgid "User defined signal 2" #~ msgstr "ユーザー定義シグナル2" #~ msgid "EMT trap" #~ msgstr "EMT トラップ" #~ msgid "Bad system call" #~ msgstr "間違ったシステムコール" #~ msgid "Stack fault" #~ msgstr "スタックエラー" #~ msgid "Information request" #~ msgstr "情報要求" #~ msgid "Power failure" #~ msgstr "電源エラー" #~ msgid "Resource lost" #~ msgstr "リソースが無くなりました" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "閉じたパイプまたはソケットへの書き込みでエラーが発生しました" #, c-format #~ msgid "cannot create pipe" #~ msgstr "パイプを作成できません" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "リアルタイムシグナル %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "不明なシグナル %d" #~ msgid "iconv function not usable" #~ msgstr "iconv 関数が使えません" #~ msgid "iconv function not available" #~ msgstr "iconv 関数が有効ではありません" #~ msgid "character out of range" #~ msgstr "範囲外の文字" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "U+%04X をローカル文字セットに変換できません" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "U+%04X をローカル文字セットに変換できません: %s " #~ msgid "invalid user" #~ msgstr "無効なユーザ" #~ msgid "invalid group" #~ msgstr "無効なグループ" #~ msgid "invalid spec" #~ msgstr "無効な指定" #, c-format #~ msgid "unable to display error message" #~ msgstr "エラーメッセージを表示できません" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s のホームページ: <http://www.gnu.org/software/%s/>\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle に失敗しました" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "ファイル記述子 (fd) %d をリストアできません: dup2 に失敗しました" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s 子プロセス" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s 子プロセスが致命的なシグナル %d を受信しました" #~ msgid "stdin" #~ msgstr "標準入力" #~ msgid "stdout" #~ msgstr "標準出力" #~ msgid "stderr" #~ msgstr "標準エラー出力" #~ msgid "unknown stream" #~ msgstr "不明なストリーム" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "%s をモード %s で再度開くことに失敗しました" #, c-format #~ msgid "string comparison failed" #~ msgstr "文字列の比較に失敗しました" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "問題を回避するために LC_ALL='C' を指定してください." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "比較した文字列は %s と %s です." #, c-format #~ msgid "cannot perform formatted output" #~ msgstr "書式設定を行った出力を実行することができません" #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "引数 `%3$s' に対して %1$s%2$s が無効です" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "引数 `%3$s' に対して無効な接尾辞 %1$s%2$s です" #, c-format #~ msgid "%s%s argument `%s' too large" #~ msgstr "引数 `%3$s' に対する %1$s%2$s が大きすぎます" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: 不正なオプション -- %c\n" #~ msgid "block size" #~ msgstr "ブロックサイズ" #~ msgid "%s exists but is not a directory" #~ msgstr "%s は存在しますがディレクトリではありません" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "%s のオーナーとグループを変更できません" #~ msgid "cannot chdir to directory %s" #~ msgstr "ディレクトリ %s に移動できません" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "数字のUIDのログイングループを取得できません" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "本プログラムはフリーソフトウェアです. GNU一般公有使用許諾\n" #~ "<http://www.gnu.org/licenses/gpl.html> で定められた条項の下で本プログラ\n" #~ "ムのコピーを再配布できます. 適切な法が認る限りにおいて全くの無保証です.\n" #~ "\n" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ka.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000007110�14445132163�012337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������`�����a�����u�����w��&���{����������M�����]�����r�����������������;�����3�����/���:��+���j��'�����#�����������������������.�����0��-���M�����{�������*���������<�����������������������g��3��� ��8���F ��r��� ��A��� ��5���4 ��(���j ��N��� ��C��� ��@���& ��<���g ��8��� ��4��� ��0��� ��,���C �����p ����� ��S��� ��i��� ��J���I ��C��� ��o��� ����������� ��� �������������������������� ����������������� ������������������������������������������������������������ �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2022-12-23 14:32+0100 Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com> Language-Team: Georgian <(nothing)> Language: ka MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 3.2.2 �%s-ის საწყისი გვერდია: <%s> �'�(C)�GNU-ის პროგრამული უზრუნველყოფის საერთო დახმარება: <%s > �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �აწყობილია %s-ის მიერ �აწყობილია %s-ის მიერ (%s) �%s-ის შეცდომების შესახებ მისაწერი ელფოსტა: %s �სისტემის უცნობი შეცდომა�სწორი არგუმენტებია:�ავტორები: %s და %s. �ავტორები: %s, %s, %s, %s, %s, %s, %s %s, %s და სხვ. �ავტორები: %s, %s, %s, %s, %s, %s, %s %s და %s. �ავტორები: %s, %s, %s, %s, %s, %s, %s და %s. �ავტორები: %s, %s, %s, %s, %s, %s და %s. �ავტორები: %s, %s, %s, %s, %s და %s. �ავტორები: %s, %s, %s, %s და %s. �ავტორები: %s, %s, %s და %s. �ავტორები: %s, %s და %s. �ავტორი: %s. �`�%s გაურკვეველი არგუმენტია %s-თვის�საწყისი საქაღალდის დაბრუნების შეცდომა�%s არასწორი არგუმენტია %s-თვის�მეხსიერება გადავსებულია�მიმდინარე საქაღალდის ჩაწერა შეუძლებელია���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ka.po�������������������������������������������������������������������������0000644�0000000�0000000�00000072373�14445132161�012206� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Georgian translation for gnulib. # Copyright (C) 2022 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2022. # msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2022-12-23 14:32+0100\n" "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n" "Language-Team: Georgian <(nothing)>\n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.2.2\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "%s არასწორი არგუმენტია %s-თვის" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "%s გაურკვეველი არგუმენტია %s-თვის" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "სწორი არგუმენტებია:" #: lib/error.c:193 msgid "Unknown system error" msgstr "სისტემის უცნობი შეცდომა" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "მეხსიერება გადავსებულია" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "მიმდინარე საქაღალდის ჩაწერა შეუძლებელია" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "საწყისი საქაღალდის დაბრუნების შეცდომა" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "აწყობილია %s-ის მიერ (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "აწყობილია %s-ის მიერ\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "(C)" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "ავტორი: %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "ავტორები: %s და %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "ავტორები: %s, %s და %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "ავტორები: %s, %s, %s\n" "და %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "ავტორები: %s, %s, %s,\n" "%s და %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "ავტორები: %s, %s, %s,\n" "%s, %s და %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "ავტორები: %s, %s, %s,\n" "%s, %s, %s და %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "ავტორები: %s, %s, %s,\n" "%s, %s, %s, %s\n" "და %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "ავტორები: %s, %s, %s,\n" "%s, %s, %s, %s\n" "%s და %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "ავტორები: %s, %s, %s,\n" "%s, %s, %s, %s\n" "%s, %s და სხვ.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "%s-ის შეცდომების შესახებ მისაწერი ელფოსტა: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "GNU-ის პროგრამული უზრუნველყოფის საერთო დახმარება: <%s >\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s-ის მნიშვნელობა %s-ზე ნაკლები ან ტოლია" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT საჭიროა პარამეტრის მნიშვნელობა" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: ARGP_HELP_FMT-ის უცნობი პარამეტრი" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "ნაგავი ARGP_HELP_FMT-ში: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "გრძელი პარამეტრების აუცილებელი ან არასავალდებულო არგუმენტები ასევე " #~ "აუცილებელი ან არასავალდებულოა მათი მოკლე ვარიანტებისთვისაც." #~ msgid "Usage:" #~ msgstr "გამოყენება:" #~ msgid " or: " #~ msgstr " ან: " #~ msgid " [OPTION...]" #~ msgstr " [პარამეტრი..]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help' ან '%s --usage'.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "შეცდომების შესახებ მიწერეთ: %s\n" #~ msgid "give this help list" #~ msgstr "ამ დახმარების სიის მიღება" #~ msgid "give a short usage message" #~ msgstr "გამოყენების მოკლე შეტყობინების მიღება" #~ msgid "NAME" #~ msgstr "სახელი" #~ msgid "set the program name" #~ msgstr "პროგრამის სახელის დაყენება" #~ msgid "SECS" #~ msgstr "წამი" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "" #~ "დაეკიდება მითითებული წამების რაოდენობის განმავლობაში (ნაგულისხმები: 3600)" #~ msgid "print program version" #~ msgstr "პროგრამის ვერსიის დაბეჭდვა" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAM ERROR) ვერსია უცნობია!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: მეტისმეტად ბევრი არგუმენტი\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAM ERROR) პარამეტრი ნაცნობი უნდა ყოფილიყო!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u freed (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u cached (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u cached (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u cached (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "program error" #~ msgstr "პროგრამის შეცდომა" #~ msgid "stack overflow" #~ msgstr "სტეკის გადავსება" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "დროებითი საქაღალდე ვერ ვიპოვე. სცადეთ $TMPDIR-ის დაყენება" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "შაბლონის გამოყენებით დროებითი საქაღალდის შექმნის შეცდომა: %s" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "დროებითი ფაილის წაშლის შეცდომა: %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "დროებითი საქაღალდის წაშლის შეცდომა: %s" #~ msgid "error closing file" #~ msgstr "ფაილის დახურვის შეცდომა" #~ msgid "write error" #~ msgstr "ჩაწერის შეცდომა" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "%s-ის წვდომების შენახვა" #, c-format #~ msgid "error reading %s" #~ msgstr "შეცდომა '%s'-ის კითხვისას" #, c-format #~ msgid "error writing %s" #~ msgstr "შეცდომა '%s'-ის ჩაწერისას" #~ msgid "unbalanced [" #~ msgstr "დაუბალანსებელი [" #~ msgid "invalid character class" #~ msgstr "სიმბოლოების არასწორი კლასი" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "სიმბოლოების კლასის სწორი სინტაქსია [[:space:]] და არა [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "დაუსრულებელი დასრულების სიმბოლო \\" #~ msgid "invalid content of \\{\\}" #~ msgstr "\\{\\}-ის არასწორი შემცველობა" #~ msgid "regular expression too big" #~ msgstr "რეგულარული გამოსახულება ძალიან დიდია" #~ msgid "unbalanced (" #~ msgstr "დაუბალანსებელი (" #~ msgid "no syntax specified" #~ msgstr "სინტაქსი მითითებული არაა" #~ msgid "unbalanced )" #~ msgstr "დაუბალანსებელი )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s ქვეპროცესის შეცდომა" #~ msgid "regular empty file" #~ msgstr "ჩვეულებრივი ცარიელი ფაილი" #~ msgid "regular file" #~ msgstr "ჩვეულებრივი ფაილი" #~ msgid "directory" #~ msgstr "საქაღალდე" #~ msgid "symbolic link" #~ msgstr "სიმბმული" #~ msgid "message queue" #~ msgstr "შეტყობინებების რიგი" #~ msgid "semaphore" #~ msgstr "სემაფორა" #~ msgid "shared memory object" #~ msgstr "მეხსიერების გაზიარებული ობიექტი" #~ msgid "typed memory object" #~ msgstr "ტიპიზირებული მეხსიერების ობიექტი" #~ msgid "block special file" #~ msgstr "ბლოკური სპეციალური ფაილი" #~ msgid "character special file" #~ msgstr "სიმბოლური სპეციალური ფაილი" #~ msgid "contiguous data" #~ msgstr "განგრძობადი მონაცემები" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "door" #~ msgstr "კარი" #~ msgid "multiplexed block special file" #~ msgstr "მულტიპლექსირებული ბლოკური სპეციალური ფაილი" #~ msgid "multiplexed character special file" #~ msgstr "მულტიპლექსირებული სიმბოლური სპეციალური ფაილი" #~ msgid "multiplexed file" #~ msgstr "მულტიპლექსლური ფაილი" #~ msgid "named file" #~ msgstr "სახელიანი ფაილი" #~ msgid "network special file" #~ msgstr "ქსელური სპეციალური ფაილი" #~ msgid "migrated file with data" #~ msgstr "მიგრირებული ფაილი მონაცემებით" #~ msgid "migrated file without data" #~ msgstr "მიგრირებული ფაილი მონაცემების გარეშე" #~ msgid "port" #~ msgstr "პორტი" #~ msgid "socket" #~ msgstr "სოკეტი" #~ msgid "whiteout" #~ msgstr "სიცარიელე" #~ msgid "weird file" #~ msgstr "უცნაური ფაილი" #~ msgid "Address family for hostname not supported" #~ msgstr "ამ ჰოსტის მისამართის ტიპი მხარდაუჭერელია" #~ msgid "Temporary failure in name resolution" #~ msgstr "სახელის გადაწყვეტის დროებითი შეცდომა" #~ msgid "Bad value for ai_flags" #~ msgstr "არასწორი მნიშვნელობა: ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "სახელის გადაწყვეტის აღუდგენელი შეცდომა" #~ msgid "ai_family not supported" #~ msgstr "ai_family მხარდაუჭერელია" #~ msgid "Memory allocation failure" #~ msgstr "მეხსიერების გამოყოფის შეცდომა" #~ msgid "No address associated with hostname" #~ msgstr "ჰოსტის სახელზე მიბმული არაა" #~ msgid "Name or service not known" #~ msgstr "სახელი ან სერვისი უცნობია" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Ai_socktype-ის სერვერის სახელი მხარდაუჭერელია" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socket-ი მხარდაუჭერელია" #~ msgid "System error" #~ msgstr "სისტემური შეცდომა" #~ msgid "Argument buffer too small" #~ msgstr "არგუმენტის ბუფერი მეტისმეტად პატარაა" #~ msgid "Processing request in progress" #~ msgstr "მიმდინარეობს მოთხოვნის დამუშავება" #~ msgid "Request canceled" #~ msgstr "მოთხოვნა გაუქმებულია" #~ msgid "Request not canceled" #~ msgstr "მოთხოვნა არ გაუქმებულა" #~ msgid "All requests done" #~ msgstr "ყველა მოთხოვნა მზადაა" #~ msgid "Interrupted by a signal" #~ msgstr "შეწყვეტილია სიგნალის მიერ" #~ msgid "Parameter string not correctly encoded" #~ msgstr "პარამეტრის სტრიქონი არასწორადაა კოდირებული" #~ msgid "Unknown error" #~ msgstr "უცნობი შეცდომა" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: პარამეტრი '%s%s' გაურკვეველია\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: პარამეტრი '%s%s' გაურკვეველია; შესაძლო ვარიანტები:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: უცნობი პარამეტრი '%s%s'\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: პარამეტრს \"%s%s' არგუმენტი არ სჭირდება\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: პარამეტრს \"%s%s\" არგუმენტი ესაჭიროება\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: არასწორი პარამეტრი -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: პარამეტრს ესაჭიროება არგუმენტი -- '%c'\n" #, c-format #~ msgid "cannot stat %s" #~ msgstr "%s-ის აღმოჩენის შეცდომა" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "%s-ის წვდომების შეცვლის შეცდომა" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "საქაღალდის შექმნის შეცდომა: %s" #~ msgid "Success" #~ msgstr "წარმატება" #~ msgid "No match" #~ msgstr "არ ემთხვევა" #~ msgid "Invalid regular expression" #~ msgstr "არასწორი რეგულარული გამოსახულება" #~ msgid "Invalid collation character" #~ msgstr "კოლაციის არასწორი სიმბოლო" #~ msgid "Invalid character class name" #~ msgstr "სიმბოლოების არასწორი კლასი" #~ msgid "Trailing backslash" #~ msgstr "ბოლო Backslash" #~ msgid "Invalid back reference" #~ msgstr "არასწორი უკუბმა" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "არ ემთხვევა [, [^, [:, [., ან [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "არ ემთხვევა ( ან \\(" #~ msgid "Unmatched \\{" #~ msgstr "არ ემთხვევა \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "\\{\\}-ის არასწორი შემცელობა" #~ msgid "Invalid range end" #~ msgstr "დიაპაზონის არასწორი დასასრული" #~ msgid "Memory exhausted" #~ msgstr "მეხსიერება გადავსებულია" #~ msgid "Invalid preceding regular expression" #~ msgstr "რეგულარული გამოსახულების არასწორი საწყისი" #~ msgid "Premature end of regular expression" #~ msgstr "რეგულარული გამოსახულების მოულოდნელი დასასრული" #~ msgid "Regular expression too big" #~ msgstr "რეგულარული გამოსახულება ძალიან დიდია" #~ msgid "Unmatched ) or \\)" #~ msgstr "არ ემთხვევა ) ან \\)" #~ msgid "No previous regular expression" #~ msgstr "წინა რეგულარული გამოსახულება არ არსებობს" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "%s-ის წვდომების დაყენება" #~ msgid "Hangup" #~ msgstr "დაკიდება" #~ msgid "Interrupt" #~ msgstr "შეწყვეტა" #~ msgid "Quit" #~ msgstr "გასვლა" #~ msgid "Illegal instruction" #~ msgstr "არასწორი ინსტრუქცია" #~ msgid "Trace/breakpoint trap" #~ msgstr "გამართვის წერტილები" #~ msgid "Aborted" #~ msgstr "შეწყვეტილია" #~ msgid "Floating point exception" #~ msgstr "წილადი რიცხვების ანგარიშის შეცდომა" #~ msgid "Killed" #~ msgstr "მოკვტა" #~ msgid "Bus error" #~ msgstr "მატარებლის შეცდომა" #~ msgid "Segmentation fault" #~ msgstr "სეგმენტაციის შეცდომა" #~ msgid "Broken pipe" #~ msgstr "გაფუჭებული მილი" #~ msgid "Alarm clock" #~ msgstr "მაღვიძარა" #~ msgid "Terminated" #~ msgstr "დასრულებულია" #~ msgid "Urgent I/O condition" #~ msgstr "სასწრაფო I/O პირობა" #~ msgid "Stopped (signal)" #~ msgstr "შეჩერებულია (სიგნალით)" #~ msgid "Stopped" #~ msgstr "შეჩერებულია" #~ msgid "Continued" #~ msgstr "გაგრძელებულია" #~ msgid "Child exited" #~ msgstr "შვილი პროცესი უცაბედად გაითიშა" #~ msgid "Stopped (tty input)" #~ msgstr "გაჩერებულია (tty-ით შეყვანით)" #~ msgid "Stopped (tty output)" #~ msgstr "გაჩერებულია (tty-ით გამოტანით)" #~ msgid "I/O possible" #~ msgstr "შესაძლებელი I/O" #~ msgid "CPU time limit exceeded" #~ msgstr "CPU-ის დროის ლიმიტი გადაჭარბებულია" #~ msgid "File size limit exceeded" #~ msgstr "ფაილის ზომის ლიმიტი გადაჭარბებულია" #~ msgid "Virtual timer expired" #~ msgstr "ვირტუალური ტაიმერის ვადა გავიდა" #~ msgid "Profiling timer expired" #~ msgstr "პროფილირების ტაიმერის ვადა გავიდა" #~ msgid "Window changed" #~ msgstr "ფანჯარა შეიცვალა" #~ msgid "User defined signal 1" #~ msgstr "მომხმარებლის მიერ განსაზღვრული სიგნალი 1" #~ msgid "User defined signal 2" #~ msgstr "მომხმარებლის მიერ განსაზღვრული სიგნალი 2" #~ msgid "EMT trap" #~ msgstr "EMT-ის ხაფანგი" #~ msgid "Bad system call" #~ msgstr "ცუდი სისტემური გამოძახება" #~ msgid "Stack fault" #~ msgstr "სტეკის შეცდომა" #~ msgid "Information request" #~ msgstr "ინფორმაციის მოთხოვნა" #~ msgid "Power failure" #~ msgstr "კვების ჩავარდნა" #~ msgid "Resource lost" #~ msgstr "რესურსი დაკარგულია" #~ msgid "cannot create pipe" #~ msgstr "ფაიფის შექმნის შეცდომა" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "რეალური-დროის სიგნალი %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "უცნობი სიგნალი %d" #~ msgid "CPU user" #~ msgstr "CPU მომხმარებელი" #~ msgid "CPU system" #~ msgstr "CPU სისტემა" #~ msgid "iconv function not usable" #~ msgstr "ფუნქცია iconv-ის გამოყენება შეუძლებელია" #~ msgid "iconv function not available" #~ msgstr "ფუნქცია iconv-ი მიუწვდომელია" #~ msgid "character out of range" #~ msgstr "სიმბოლო დიაპაზონს გარეთაა" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "u+%04X-ის ლოკალურ სიმბოლოებში გარდაქმნა შეუძლებელია" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "u+%04X-ის ლოკალურ სიმბოლოებში გარდაქმნა შეუძლებელია: %s" #~ msgid "invalid user" #~ msgstr "არასწორი მომხმარებელი" #~ msgid "invalid group" #~ msgstr "არასწორი ჯგუფი" #~ msgid "invalid spec" #~ msgstr "არასწორი სპეფიციკაცია" #~ msgid "unable to display error message" #~ msgstr "შეტყობინების გამოტანა შეუძლებელია" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle -ის შეცდომა" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s ქვეპროცესი" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "ფაილის დესკრიპტორის ტექსტური/ბინარული რეჟიმის დაყენების შეცდომა" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "უცნობი ნაკადი" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "%s-ის %s რეჟიმში ხელახალი გახსნიშ ეცდომა" #~ msgid "string comparison failed" #~ msgstr "სტრიქონების შედარება შეუძლებელია" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "პრობლემის მოსაცილებლად დააყენეთ LC_ALL='C'." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "შედარებული სტრიქონებია %s და %s." #~ msgid "cannot perform formatted output" #~ msgstr "ფორმატირებული გამოტანის შესრულება შეუძლებელია" #~ msgid "standard file descriptors" #~ msgstr "ფაილის სტანდარტული დესკტრიპტორები" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "არასწორი %s%s-ის არგუმენტი: '%s'" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "%s%s-ის არგუმენტის, '%s'-ის არასწორი სუფიქსი" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "%s%s-ის არგუმენტი %s ძალიან დიდია" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ko.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000001614�14445132163�012360� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������d��� ���������������������������������� ���������������<�����W����h���������������������&�����>�����@�����]�����|���������������������������� ������������������'�Unknown system error�Valid arguments are:�Written by %s. �`�ambiguous argument %s for %s�invalid argument %s for %s�memory exhausted�Project-Id-Version: GNU textutils 2.0.22 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2002-07-22 20:02+0900 Last-Translator: Changwoo Ryu <cwryu@debian.org> Language-Team: Korean <translation-team-ko@lists.sourceforge.net> Language: ko MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-KR Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. �'� ý �ùٸ ڴ:�%s() ϴ. �`�%2$s ָ %1$s�%2$s %1$s�޸𸮰 ٴڳ���������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ko.po�������������������������������������������������������������������������0000644�0000000�0000000�00000032123�14445132161�012211� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Korean messages for GNU textutils # Copyright (C) 1996, 2001, 2002 Free Software Foundation, Inc. # Bang Jun-Young <bangjy@nownuri.nowcom.co.kr>, 1996-1997. # Changwoo Ryu <cwryu@debian.org>, 2001-2002. # msgid "" msgstr "" "Project-Id-Version: GNU textutils 2.0.22\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2002-07-22 20:02+0900\n" "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" "Language-Team: Korean <translation-team-ko@lists.sourceforge.net>\n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=EUC-KR\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "%2$s %1$s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "%2$s ָ %1$s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "ùٸ ڴ:" #: lib/error.c:193 msgid "Unknown system error" msgstr " ý " #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "޸𸮰 ٴڳ" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "%s 丮 ϴ" #: lib/openat-die.c:57 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "%s 丮 ϴ" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "%s() ϴ.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" "<%s>() ׸ ˷ ֽʽÿ.\n" #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" "<%s>() ׸ ˷ ֽʽÿ.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr " ɼǿ ʿ μ ª ɼǿ ʿմϴ.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr ": %s [<ɼ>] [<>]...\n" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr " `%s --help' Ͻʽÿ.\n" #, fuzzy #~ msgid "Print program version" #~ msgstr "α׷ " #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "μ ʹ " #~ msgid "program error" #~ msgstr "α׷ " #~ msgid "stack overflow" #~ msgstr " ÷ο" #~ msgid "write error" #~ msgstr " " #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "`%s' `%s' ̵ ϴ" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "`%s' `%s' ̵ ϴ" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "%s() д ߻" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "%s ߻" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "%s() д ߻" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr " " #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: " #~ msgid "regular empty file" #~ msgstr "Ϲ " #~ msgid "regular file" #~ msgstr "Ϲ " #~ msgid "directory" #~ msgstr "丮" #~ msgid "block special file" #~ msgstr " Ư " #~ msgid "character special file" #~ msgstr " Ư " #~ msgid "fifo" #~ msgstr "FIFO" #~ msgid "symbolic link" #~ msgstr "ɺ ũ" #~ msgid "socket" #~ msgstr "" #~ msgid "message queue" #~ msgstr "޼ ť" #~ msgid "semaphore" #~ msgstr "" #~ msgid "shared memory object" #~ msgstr " ޸ Ʈ" #, fuzzy #~ msgid "typed memory object" #~ msgstr " ޸ Ʈ" #~ msgid "weird file" #~ msgstr " " #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo ʽϴ" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo ʽϴ" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo ʽϴ" #, fuzzy #~ msgid "System error" #~ msgstr " " #, fuzzy #~ msgid "Unknown error" #~ msgstr " ý " #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: `%s'() ȣ ɼԴϴ\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: `--%s' ɼ μ ʽϴ\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: `%c%s' ɼ μ ʽϴ\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: `%s' ɼ μ ʿմϴ\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: ν ɼ `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: ν ɼ `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ߸ ɼ -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: ɼ -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: ɼ μ ʿմϴ -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: `-W %s'() ȣ ɼԴϴ\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: `-W %s' ɼ μ ʽϴ\n" #~ msgid "block size" #~ msgstr " ũ" #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s() 丮 ƴմϴ" #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "%s ׸/Ȥ ׷ ٲ ϴ" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "%s 丮 ϴ" #, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "%s 丮 chdir ϴ" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "%s 㰡 ٲ ϴ" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s 㰡 ٲ ϴ" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "%s 丮 ϴ" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: Խ: %s" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr " Ŭ `%s'" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "޸𸮰 ٴڳ" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: Խ: %s" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "Խ Ž ߻" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: Խ: %s" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "Խ Ž ߻" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #~ msgid "iconv function not usable" #~ msgstr "iconv Լ ϴ" # not usable not available ̴? #~ msgid "iconv function not available" #~ msgstr "iconv Լ ϴ" #~ msgid "character out of range" #~ msgstr "  " #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "U+%04X() Į ڼ ȯ ϴ" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "U+%04X() Į ڼ ȯ ϴ: %s" #~ msgid "invalid user" #~ msgstr "߸ " #~ msgid "invalid group" #~ msgstr "߸ ׷" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "UID α ׷ ˾ ϴ" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ " α׷ ƮԴϴ. Ʈ Ǿ絵ڴ \n" #~ "Ʈ ǥ GNU General Public License 2 (Ǵ \n" #~ " Ƿ ؼ), α׷ ϰų \n" #~ " ֽϴ.\n" #~ "\n" #~ msgid "string comparison failed" #~ msgstr "ڿ 񱳰 ߽ϴ" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr " LC_ALL='C'Ͻʽÿ." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr " ڿ %s() %sԴϴ." ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ms.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000001775�14445132163�012376� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������l��� ��������������������������������������-�����/��-���L�����z��������������<��!���>�����`�����r������������/���������������������������������� ������ ������������������'�Unknown system error�Valid arguments are:�Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�Project-Id-Version: coreutils 5.0.90 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2003-08-10 16:00+0800 Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com> Language-Team: Malay <translation-team-ms@lists.sourceforge.net> Language: ms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. �`�Ralat sistem yang tidak diketahui�Hujah sah adalah:�Ditulis oleh %s. �`�hujah ambiguous %s bagi %s�gagal untuk kembali ke direktori kerja pemulaan�hujah tidak sah %s bagi %s�memori keletihan����a2ps-4.15.5/po-gnulib/ms.po�������������������������������������������������������������������������0000644�0000000�0000000�00000030725�14445132161�012225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Terjemahan coreutils untuk Bahasa Melayu. # Copyright (C) 2001 Free Software Foundation, Inc. # Hasbullah Bin Pit <sebol@ikhlas.com>, 2003. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.0.90\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2003-08-10 16:00+0800\n" "Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n" "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "hujah tidak sah %s bagi %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "hujah ambiguous %s bagi %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Hujah sah adalah:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Ralat sistem yang tidak diketahui" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memori keletihan" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "gagal untuk kembali ke direktori kerja pemulaan" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "gagal untuk kembali ke direktori kerja pemulaan" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "`" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" "Lapor pepijat ke <%s>.\n" #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Lapor pepijat ke <%s>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Hujah mandatori kepada opsyen panjang andalah mandatori bagi opsyen " #~ "pendek juga.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Pengunaan: %s [OPSYEN]...\n" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Cuba `%s --help' untuk maklumat lanjut .\n" #~ msgid "NAME" #~ msgstr "NAMA" #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "terlalu banyak hujah" #, fuzzy #~ msgid "program error" #~ msgstr "ralat membaca" #~ msgid "write error" #~ msgstr "ralat menulis" #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "tak dapat buka %s untuk dibaca" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "tak dapat buka %s untuk dibaca" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "membaca %s" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "menulis %s" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "membaca %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "pembukaan gagal" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "fail istimewa blok" #~ msgid "regular empty file" #~ msgstr "fail kosong biasa" #~ msgid "regular file" #~ msgstr "fail biasa" #~ msgid "directory" #~ msgstr "direktori" #~ msgid "block special file" #~ msgstr "fail istimewa blok" #~ msgid "character special file" #~ msgstr "fail istimewa aksara" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "pautan simbolik" #~ msgid "socket" #~ msgstr "soket" #~ msgid "message queue" #~ msgstr "giliran mesej" #~ msgid "shared memory object" #~ msgstr "objek memori terkongsi" #, fuzzy #~ msgid "typed memory object" #~ msgstr "objek memori terkongsi" #~ msgid "weird file" #~ msgstr "fail pelik" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fail fifo tidak disokong" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fail fifo tidak disokong" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fail fifo tidak disokong" #, fuzzy #~ msgid "System error" #~ msgstr "ralat menulis" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Ralat sistem yang tidak diketahui" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: opsyen `%s' adalah ambiguous\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: opsyen `--%s' tidak mengizinkan hujah\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: opsyen `%c%s' tidak mengizinkan hujah\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: opsyen `%s' memerlukan hujah\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: opensyen tidak dikenali `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: opensyen tidak dikenali `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opsyen tidak dibenarkan -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: opsyen tidak sah -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: opsyen memerlukan hujah -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: opsyen `-W %s' adalah ambiguous\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: opsyen `-W %s' tidak mengizinkan hujan\n" #~ msgid "block size" #~ msgstr "saiz blok" #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s wujud tapi ianya bukan direktori" #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "tak dapat menukar hakmilik dan/atau kumpulan %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "tak dapat mencipta direktori %s" #, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "tak dapat chdir ke direktori %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "tak dapat menukar keizinan %s" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "gagal mengekalkan keizinan bagi %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "tak boleh mencipta pautan %s" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: ungkapan biasa (regexp) tidak sah: %s" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "aksara tidak sah pada %s pada rentetan mod %s" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "memori keletihan" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: ungkapan biasa (regexp) tidak sah: %s" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "ralat pada carian ungkapan biasa (regexp)" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: ungkapan biasa (regexp) tidak sah: %s" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "ralat pada carian ungkapan biasa (regexp)" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[tT]" #~ msgid "iconv function not usable" #~ msgstr "fungsi iconv tak boleh digunakan" #~ msgid "iconv function not available" #~ msgstr "fungsi iconv tidak ada" #~ msgid "character out of range" #~ msgstr "aksara di luar julat" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "tak dapat menukar U+%04X ke set aksara lokal" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "tak dapat menukar U+%04X ke set aksara lokal: %s" #~ msgid "invalid user" #~ msgstr "pengguna tidak sah" #~ msgid "invalid group" #~ msgstr "kumpulan tidak sah" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "tak boleh mendapatkan kumpulan logmasuk untuk UID numerik" #~ msgid "string comparison failed" #~ msgstr "perbandingan rentetan gagal" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Tetapkan LC_ALL='C' untuk mengatasi masalah." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Rentetan dibandingkan adalah %s dan %s." �������������������������������������������a2ps-4.15.5/po-gnulib/nb.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000001607�14445132163�012350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000���������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������d��� ���������������������������������� ���������������<�����W����h��������������������%�����5�����7�����T�����o���������������������������� ������������������'�Unknown system error�Valid arguments are:�Written by %s. �`�ambiguous argument %s for %s�invalid argument %s for %s�memory exhausted�Project-Id-Version: GNU textutils 2.0.20 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2002-01-27 21:35+0100 Last-Translator: Eivind Tagseth <eivindt@multinet.no> Language-Team: Norwegian <i18n-nb@lister.ping.uio.no> Language: nb MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. ��Ukjent systemfeil�Gyldige argument er:�Skrevet av %s. ��flertydig argument %s for %s�ugyldig argument %s for %s�virtuelt minne oppbrukt��������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/nb.po�������������������������������������������������������������������������0000644�0000000�0000000�00000031141�14445132161�012176� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Norwegian messages for GNU textutils (bokml dialect) # Copyright (C) 1996 Free Software Foundation, Inc. # Eivind Tagseth <eivindt@multinet.no>, 1996, 1997, 1999. # msgid "" msgstr "" "Project-Id-Version: GNU textutils 2.0.20\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2002-01-27 21:35+0100\n" "Last-Translator: Eivind Tagseth <eivindt@multinet.no>\n" "Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "ugyldig argument %s for %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "flertydig argument %s for %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Gyldige argument er:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Ukjent systemfeil" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "virtuelt minne oppbrukt" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "kan ikke opprette katalog %s" #: lib/openat-die.c:57 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "kan ikke opprette katalog %s" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "" #: lib/quotearg.c:355 msgid "'" msgstr "" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "Skrevet av %s.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" "Rapportr feil til <bug-textutils@gnu.org>." #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Rapportr feil til <bug-textutils@gnu.org>." #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Obligatoriske argmenter til lange flagg er obligatoriske ogs for korte.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Bruk: %s [FLAGG] [FIL]...\n" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Prv med %s --help for mer informasjon.\n" #, fuzzy #~ msgid "Print program version" #~ msgstr "lesefeil" #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "for mange argumenter" #, fuzzy #~ msgid "program error" #~ msgstr "lesefeil" #~ msgid "write error" #~ msgstr "feil ved skriving" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "feil ved lesing av %s" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "feil ved skriving til %s" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "feil ved lesing av %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "pning av fil feilet" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: ugyldig mnster" #, fuzzy #~ msgid "regular empty file" #~ msgstr "feil ved lesing" #, fuzzy #~ msgid "regular file" #~ msgstr "feil ved lesing" #, fuzzy #~ msgid "directory" #~ msgstr "%s eksisterer men er ikke en katalog" #, fuzzy #~ msgid "block special file" #~ msgstr "blokkstrrelse" #, fuzzy #~ msgid "character special file" #~ msgstr "tegn-posisjon er null" #, fuzzy #~ msgid "symbolic link" #~ msgstr "kan ikke utfre ioctl p %s" #, fuzzy #~ msgid "weird file" #~ msgstr "feil ved lesing" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "blokkstrrelse" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "blokkstrrelse" #, fuzzy #~ msgid "System error" #~ msgstr "feil ved skriving" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Ukjent systemfeil" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: flagget %s er flertydig\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: flagget --%s trenger et argument\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: flagget %c%s trenger et argument\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: flagget %s trenger et argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: ukjent flagg --%s\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: ukjent flagg %c%s\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: ukjent flagg -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: ukjent flagg -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: flagget trenger et argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: flagget -W %s er flertydig\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: flagget -W %s tillater ikke et argument\n" #~ msgid "block size" #~ msgstr "blokkstrrelse" #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s eksisterer men er ikke en katalog" #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "kan ikke endre eier og/eller gruppe for %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "kan ikke opprette katalog %s" #, fuzzy, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "kan ikke skifte til katalog, %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "kan ikke endre rettigheter til %s" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "kan ikke endre rettigheter til %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "kan ikke opprette katalog %s" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: ugyldig regulrt uttrykk: %s" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "ugyldig tegn-klasse %s" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "virtuelt minne oppbrukt" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: ugyldig regulrt uttrykk: %s" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "feil i sk med regulrt uttrykk" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: ugyldig regulrt uttrykk: %s" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "feil i sk med regulrt uttrykk" #, fuzzy #~ msgid "^[yY]" #~ msgstr "^[jJ]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, fuzzy #~ msgid "iconv function not usable" #~ msgstr "kan ikke skrive ut U+%04X: iconv-funksjonen er ikke brukbar" #, fuzzy #~ msgid "iconv function not available" #~ msgstr "kan ikke skrive ut U+%04X: iconv-funksjon er ikke tilgjengelig" #, fuzzy #~ msgid "character out of range" #~ msgstr "U+%04X: tegn utenfor tillatte verdier" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan ikke konvertere U+%04X til lokalt tegnsett" #, fuzzy, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan ikke konvertere U+%04X til lokalt tegnsett" #~ msgid "invalid user" #~ msgstr "ugyldig bruker" #~ msgid "invalid group" #~ msgstr "ugyldig gruppe" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "kan ikke finne login-gruppen til en numerisk bruker-ID" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Dette programmet er fri programvare. Du kan redistribueret det og/eller\n" #~ "modifisere det under betingelsene gitt av GNU General Public License som\n" #~ "distribuert av Free Software Foundation; enten versjon 2, eller (om du " #~ "vil)\n" #~ "en hvilken som helst senere versjon.\n" #~ msgid "string comparison failed" #~ msgstr "strengsammenligning feilet" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Sett LC_ALL='C' for omg problemet." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Strengene som ble sammenlignet var %s og %s." �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/nl.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000006266�14445132163�012370� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������1������������ ��$���% ��q���J ��l��� �����) �����? �����X ��?���s ��6��� ��2��� ��.��� ��*���L ��&���w ��"��� ����� ����� ����� ��$��� ��3��� �����R �� ���n ��&��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib-4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-29 13:31+0200 Last-Translator: Benno Schulenberg <vertaling@coevern.nl> Language-Team: Dutch <vertaling@vrijschrift.org> Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); �Webpagina van %s: <%s> �’�©�Algemene hulp bij gebruik van GNU-software: <%s> �Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden. De precieze licentie is GPL-3+: GNU General Public License versie 3 of later. Zie <%s> voor de volledige (Engelse) tekst. Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat. �In pakketvorm gebracht door %s �In pakketvorm gebracht door %s (%s) �Rapporteer gebreken in het programma '%s' aan <%s>; meld fouten in de vertaling aan <vertaling@vrijschrift.org>. �Rapporteer gebreken in het programma aan <%s>; meld fouten in de vertaling aan <vertaling@vrijschrift.org>. �Onbekende systeemfout�Geldige argumenten zijn:�Geschreven door %s en %s. �Geschreven door %s, %s, %s, %s, %s, %s, %s, %s, %s en anderen. �Geschreven door %s, %s, %s, %s, %s, %s, %s, %s en %s. �Geschreven door %s, %s, %s, %s, %s, %s, %s en %s. �Geschreven door %s, %s, %s, %s, %s, %s en %s. �Geschreven door %s, %s, %s, %s, %s en %s. �Geschreven door %s, %s, %s, %s en %s. �Geschreven door %s, %s, %s en %s. �Geschreven door %s, %s en %s. �Geschreven door %s. �‘�argument %s van %s is niet eenduidig�kan niet terugkeren naar de oorspronkelijke werkmap�ongeldig argument %s van %s�onvoldoende geheugen beschikbaar�kan de huidige werkmap niet vastleggen�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/nl.po�������������������������������������������������������������������������0000644�0000000�0000000�00000064526�14445132161�012225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Dutch translations for gnulib. # Copyright (C) 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Erick Branderhorst <branderh@debian.org>, 1996. # Ivo Timmermans <ivo@o2w.nl>, 2000. # Freek de Kruijf <f.de.kruijf@hetnet.nl>, 2004, 2005. # Erwin Poeze <erwin.poeze@gmail.com>, 2009, 2010. # Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008, 2010, 2011, 2019. msgid "" msgstr "" "Project-Id-Version: gnulib-4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-29 13:31+0200\n" "Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "ongeldig argument %s van %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argument %s van %s is niet eenduidig" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Geldige argumenten zijn:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Onbekende systeemfout" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "onvoldoende geheugen beschikbaar" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "kan de huidige werkmap niet vastleggen" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "kan niet terugkeren naar de oorspronkelijke werkmap" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "‘" #: lib/quotearg.c:355 msgid "'" msgstr "’" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "In pakketvorm gebracht door %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "In pakketvorm gebracht door %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n" "De precieze licentie is GPL-3+: GNU General Public License versie 3 of " "later.\n" "Zie <%s> voor de volledige (Engelse) tekst.\n" "Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Geschreven door %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Geschreven door %s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Geschreven door %s, %s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Geschreven door %s, %s, %s\n" "en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Geschreven door %s, %s, %s,\n" "%s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Geschreven door %s, %s, %s,\n" "%s, %s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Geschreven door %s, %s, %s,\n" "%s, %s, %s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Geschreven door %s, %s, %s,\n" "%s, %s, %s, %s\n" "en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Geschreven door %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Geschreven door %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s en anderen.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" "Rapporteer gebreken in het programma aan <%s>;\n" "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "" "Rapporteer gebreken in het programma '%s' aan <%s>;\n" "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Webpagina van %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Algemene hulp bij gebruik van GNU-software: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: waarde voor '%s' is kleiner of gelijk aan %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: Parameter in ARGP_HELP_FMT vereist een waarde" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Onbekende parameter in ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Rommel in ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Een argument dat verplicht of optioneel is voor een lange optie, is dat\n" #~ "ook voor de overeenkomstige korte optie." #~ msgid "Usage:" #~ msgstr "Gebruik: " #~ msgid " or: " #~ msgstr " of: " #~ msgid " [OPTION...]" #~ msgstr " [OPTIE...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Typ '%s --help' of '%s --usage' voor meer informatie.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "Rapporteer gebreken in het programma aan %s;\n" #~ "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" #~ msgid "give this help list" #~ msgstr "deze hulptekst tonen" #~ msgid "give a short usage message" #~ msgstr "een korte gebruikssamenvatting tonen" #~ msgid "NAME" #~ msgstr "NAAM" #~ msgid "set the program name" #~ msgstr "de programmanaam instellen" #~ msgid "SECS" #~ msgstr "SECONDEN" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "dit aantal seconden pauzeren (standaard 3600)" #~ msgid "print program version" #~ msgstr "programmaversie tonen" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "**Interne programmafout**: geen versie bekend!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Te veel argumenten\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "**Interne programmafout**: optie had herkend moeten worden!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u vrijgegeven (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u gecached (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u gecached (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u gecached (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "histogram van aantal gezette bits\n" #~ msgid "size log histogram\n" #~ msgstr "histogram van bitset-groottes\n" #~ msgid "density histogram\n" #~ msgstr "histogram van dichtheid aan gezette bits\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Bitset-statistieken:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Aantal uitvoeringen = %u\n" #~ msgid "cannot read stats file" #~ msgstr "kan statistiekenbestand niet lezen" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "statistiekenbestand heeft een verkeerde grootte\n" #~ msgid "cannot write stats file" #~ msgstr "kan statistiekenbestand niet schrijven" #~ msgid "cannot open stats file for writing" #~ msgstr "kan statistiekenbestand niet openen voor schrijven" #~ msgid "program error" #~ msgstr "programmafout" #~ msgid "stack overflow" #~ msgstr "stack-overloop" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "kan geen tijdelijke map vinden; zet $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "kan met sjabloon '%s' geen tijdelijke map aanmaken" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "kan tijdelijk bestand '%s' niet verwijderen" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "kan tijdelijke map '%s' niet verwijderen" #~ msgid "error closing file" #~ msgstr "fout bij sluiten van bestand" #~ msgid "write error" #~ msgstr "schrijffout" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "toegangsrechten van '%s' worden behouden" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "fout bij openen van %s voor lezen" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "kan reservekopiebestand %s niet openen voor schrijven" #, c-format #~ msgid "error reading %s" #~ msgstr "fout bij lezen van %s" #, c-format #~ msgid "error writing %s" #~ msgstr "fout bij schrijven van %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "fout na lezen van %s" #~ msgid "fdopen() failed" #~ msgstr "fdopen() is mislukt" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "C#-compiler is niet gevonden; installeer 'mono'" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "virtuele C#-machine is niet gevonden; installeer 'mono'" #~ msgid "unbalanced [" #~ msgstr "ongepaarde [" #~ msgid "invalid character class" #~ msgstr "ongeldige tekenklasse" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "syntax van tekenklasse is [[:space:]], niet [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "onafgemaakte \\-stuurcode" #~ msgid "invalid content of \\{\\}" #~ msgstr "ongeldige inhoud van \\{\\}" #~ msgid "regular expression too big" #~ msgstr "reguliere expressie is te groot" #~ msgid "unbalanced (" #~ msgstr "ongepaarde (" #~ msgid "no syntax specified" #~ msgstr "geen syntax opgegeven" #~ msgid "unbalanced )" #~ msgstr "ongepaarde )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "subproces %s is mislukt" #~ msgid "regular empty file" #~ msgstr "leeg normaal bestand" #~ msgid "regular file" #~ msgstr "normaal bestand" #~ msgid "directory" #~ msgstr "map" #~ msgid "symbolic link" #~ msgstr "symbolische koppeling" #~ msgid "message queue" #~ msgstr "berichtenwachtrij" #~ msgid "semaphore" #~ msgstr "semafoor" #~ msgid "shared memory object" #~ msgstr "gedeeld geheugenobject" #~ msgid "typed memory object" #~ msgstr "zelfstandig geheugenobject" #~ msgid "block special file" #~ msgstr "blok-apparaat" #~ msgid "character special file" #~ msgstr "byte-apparaat" #~ msgid "contiguous data" #~ msgstr "aaneengesloten gegevens" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "door" #~ msgstr "door" #~ msgid "multiplexed block special file" #~ msgstr "gemultiplexed blok-apparaat" #~ msgid "multiplexed character special file" #~ msgstr "gemultiplexed byte-apparaat" #~ msgid "multiplexed file" #~ msgstr "gemultiplexed bestand" #~ msgid "named file" #~ msgstr "benoemd bestand" #~ msgid "network special file" #~ msgstr "netwerkapparaat" #~ msgid "migrated file with data" #~ msgstr "gemigreerd bestand met gegevens" #~ msgid "migrated file without data" #~ msgstr "gemigreerd bestand zonder gegevens" #~ msgid "port" #~ msgstr "poort" #~ msgid "socket" #~ msgstr "socket" #~ msgid "whiteout" #~ msgstr "whiteout" #~ msgid "weird file" #~ msgstr "merkwaardig bestand" #~ msgid "Address family for hostname not supported" #~ msgstr "Adresfamilie voor hostnaam wordt niet ondersteund" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tijdelijk probleem in naamsherleiding" #~ msgid "Bad value for ai_flags" #~ msgstr "Ongeldige waarde voor 'ai_flags'" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Onherstelbaar probleem in naamsherleiding" #~ msgid "ai_family not supported" #~ msgstr "'ai_family' wordt niet ondersteund" #~ msgid "Memory allocation failure" #~ msgstr "Onvoldoende geheugen beschikbaar" #~ msgid "No address associated with hostname" #~ msgstr "Aan hostnaam is geen adres verbonden" #~ msgid "Name or service not known" #~ msgstr "Naam of dienst is niet bekend" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servicenaam wordt niet ondersteund voor 'ai_socktype'" #~ msgid "ai_socktype not supported" #~ msgstr "'ai_socktype' wordt niet ondersteund" #~ msgid "System error" #~ msgstr "Systeemfout" #~ msgid "Argument buffer too small" #~ msgstr "Argumentenbuffer is te klein" #~ msgid "Processing request in progress" #~ msgstr "Bezig met verwerken van verzoek" #~ msgid "Request canceled" #~ msgstr "Verzoek is geannuleerd" #~ msgid "Request not canceled" #~ msgstr "Verzoek is niet geannuleerd" #~ msgid "All requests done" #~ msgstr "Alle verzoeken zijn gedaan" #~ msgid "Interrupted by a signal" #~ msgstr "Onderbroken door een signaal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametertekst is niet juist gecodeerd" #~ msgid "Unknown error" #~ msgstr "Onbekende fout" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: optie '%s%s' is niet eenduidig\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: optie '%s%s' is niet eenduidig; mogelijkheden zijn:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: onbekende optie '%s%s'\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: optie '%s%s' staat geen argument toe\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: optie '%s%s' vereist een argument\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: ongeldige optie -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: optie vereist een argument -- '%c'\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "ongeldige waarde voor 'source_version' in compile_java_class()" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "ongeldige waarde voor 'target_version' in compile_java_class()" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "aanmaken van '%s' is mislukt" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "fout bij schrijven van bestand '%s'" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "Java-compiler is niet gevonden; installeer 'gcj' of zet $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuele Java-machine is niet gevonden; installeer 'gcj' of zet $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "In-/uitvoerfout in subproces %s" #, c-format #~ msgid "cannot stat %s" #~ msgstr "kan status van '%s' niet opvragen" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "kan de toegangsrechten van %s niet veranderen" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "kan map %s niet aanmaken" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Openen van /dev/zero voor lezen is mislukt" #~ msgid "creation of reading thread failed" #~ msgstr "Het aanmaken van een lees-thread is mislukt" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "kan geen niet-blokkerende in-/uitvoer instellen naar subproces %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "communicatie met subproces %s is mislukt" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "schrijven naar subproces %s is mislukt" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "lezen uit subproces %s is mislukt" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "subproces %s is geëindigd met afsluitwaarde %d" #~ msgid "creation of threads failed" #~ msgstr "aanmaken van threads is mislukt" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "subproces %s is geëindigd met afsluitwaarde %d" #~ msgid "Success" #~ msgstr "Gelukt" #~ msgid "No match" #~ msgstr "Geen overeenkomsten" #~ msgid "Invalid regular expression" #~ msgstr "Ongeldige reguliere expressie" #~ msgid "Invalid collation character" #~ msgstr "Ongeldig samengesteld teken" #~ msgid "Invalid character class name" #~ msgstr "Ongeldige tekenklassenaam" #~ msgid "Trailing backslash" #~ msgstr "Backslash aan het eind" #~ msgid "Invalid back reference" #~ msgstr "Ongeldige terugverwijzing" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Ongepaarde [, [^, [:, [., of [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "Ongepaarde ( of \\(" #~ msgid "Unmatched \\{" #~ msgstr "Ongepaarde \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Ongeldige inhoud van \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Ongeldig bereikeinde" #~ msgid "Memory exhausted" #~ msgstr "Onvoldoende geheugen beschikbaar" #~ msgid "Invalid preceding regular expression" #~ msgstr "Ongeldige voorafgaande reguliere expressie" #~ msgid "Premature end of regular expression" #~ msgstr "Voortijdig einde van reguliere expressie" #~ msgid "Regular expression too big" #~ msgstr "Reguliere expressie is te groot" #~ msgid "Unmatched ) or \\)" #~ msgstr "Ongepaarde ) of \\)" #~ msgid "No previous regular expression" #~ msgstr "Geen eerdere reguliere expressie" #~ msgid "^[yY]" #~ msgstr "^[jJyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "toegangsrechten van %s worden ingesteld" # Vroeger ging dit over het afsluiten van een modemverbinding, # tegenwoordig over het afsluiten van een pseudoterminal. #~ msgid "Hangup" #~ msgstr "Opgehangen" #~ msgid "Interrupt" #~ msgstr "Onderbroken" # Verleden tijd, "Afgesloten", net als de andere actiesignaalnamen. #~ msgid "Quit" #~ msgstr "Afgesloten" #~ msgid "Illegal instruction" #~ msgstr "Ongeldige instructie" #~ msgid "Trace/breakpoint trap" #~ msgstr "Traceer/breekpunt-instructie" #~ msgid "Aborted" #~ msgstr "Afgebroken" #~ msgid "Floating point exception" #~ msgstr "Drijvendekomma-berekeningsfout" #~ msgid "Killed" #~ msgstr "Geëlimineerd" #~ msgid "Bus error" #~ msgstr "Busfout" #~ msgid "Segmentation fault" #~ msgstr "Segmentatiefout" #~ msgid "Broken pipe" #~ msgstr "Gebroken pijp" #~ msgid "Alarm clock" #~ msgstr "Wekker" #~ msgid "Terminated" #~ msgstr "Beëindigd" #~ msgid "Urgent I/O condition" #~ msgstr "Urgente in-/uitvoertoestand" #~ msgid "Stopped (signal)" #~ msgstr "Gepauzeerd (signaal)" #~ msgid "Stopped" #~ msgstr "Gepauzeerd" #~ msgid "Continued" #~ msgstr "Doorgegaan" #~ msgid "Child exited" #~ msgstr "Dochter is afgesloten" #~ msgid "Stopped (tty input)" #~ msgstr "Gepauzeerd (terminalinvoer)" #~ msgid "Stopped (tty output)" #~ msgstr "Gepauzeerd (terminaluitvoer)" #~ msgid "I/O possible" #~ msgstr "In-/uitvoer is mogelijk" #~ msgid "CPU time limit exceeded" #~ msgstr "Limiet op processortijd is overschreden" #~ msgid "File size limit exceeded" #~ msgstr "Limiet op bestandsgrootte is overschreden" #~ msgid "Virtual timer expired" #~ msgstr "Virtuele tijdopnemer is verlopen" #~ msgid "Profiling timer expired" #~ msgstr "Tijdopnemer voor analyse is verlopen" #~ msgid "Window changed" #~ msgstr "Venster is veranderd" #~ msgid "User defined signal 1" #~ msgstr "Gebruikergedefinieerd signaal 1" #~ msgid "User defined signal 2" #~ msgstr "Gebruikergedefinieerd signaal 2" #~ msgid "EMT trap" #~ msgstr "EMT-instructie" #~ msgid "Bad system call" #~ msgstr "Onjuiste systeemaanroep" #~ msgid "Stack fault" #~ msgstr "Stack-fout" #~ msgid "Information request" #~ msgstr "Verzoek om informatie" #~ msgid "Power failure" #~ msgstr "Stroomstoring" #~ msgid "Resource lost" #~ msgstr "Hulpbron verloren" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "fouten bij het schrijven naar een afgesloten 'pipe' of 'socket'" #~ msgid "cannot create pipe" #~ msgstr "kan geen pijp aanmaken" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Realtime-signaal %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Onbekend signaal %d" #~ msgid "Execution times (seconds)" #~ msgstr "Uitvoeringstijden (in seconden)" #~ msgid "CPU user" #~ msgstr "CPU (gebruiker)" #~ msgid "CPU system" #~ msgstr "CPU (systeem)" #~ msgid "wall clock" #~ msgstr "kloktijd" #~ msgid "iconv function not usable" #~ msgstr "de functie iconv() is onbruikbaar" #~ msgid "iconv function not available" #~ msgstr "de functie iconv() is niet beschikbaar" #~ msgid "character out of range" #~ msgstr "teken ligt buiten het toegestane bereik" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan U+%04X niet converteren naar de lokale tekenset" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan U+%04X niet converteren naar de lokale tekenset: %s" #~ msgid "invalid user" #~ msgstr "ongeldige gebruiker" #~ msgid "invalid group" #~ msgstr "ongeldige groep" #~ msgid "invalid spec" #~ msgstr "ongeldige aanduiding" #~ msgid "unable to display error message" #~ msgstr "kan foutmelding niet tonen" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle() is mislukt" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "kan bestandsdescriptor %d niet herstellen: dup2() is mislukt" #, c-format #~ msgid "%s subprocess" #~ msgstr "subproces %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "subproces %s ontving het fatale signaal %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "kan modus van bestandsdescriptor niet instellen op tekst of binair" #~ msgid "stdin" #~ msgstr "standaardinvoer" #~ msgid "stdout" #~ msgstr "standaarduitvoer" #~ msgid "stderr" #~ msgstr "standaardfoutuitvoer" #~ msgid "unknown stream" #~ msgstr "onbekende gegevensstroom" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "opnieuw openen van '%s' met modus %s is mislukt" #~ msgid "string comparison failed" #~ msgstr "vergelijking van tekenreeksen is mislukt" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Zet LC_ALL='C' om het probleem te omzeilen." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "De te vergelijken tekenreeksen waren %s en %s." #~ msgid "cannot perform formatted output" #~ msgstr "kan geen opgemaakte uitvoer aanmaken" #~ msgid "standard file descriptors" #~ msgstr "standaard bestandsdescriptors" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "ongeldig argument '%3$s' van %1$s%2$s" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "ongeldig achtervoegsel in argument '%3$s' van %1$s%2$s" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "argument '%3$s' van %1$s%2$s is te groot" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Parameter in ARGP_HELP_FMT moet positief zijn" #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: optie '--%s' staat geen argument toe\n" #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: onbekende optie '--%s'\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: optie '-W %s' staat geen argument toe\n" #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: optie '-W %s' vereist een argument\n" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Webpagina van %s: <http://www.gnu.org/software/%s/>\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/pl.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000006127�14445132163�012366� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������7��������M����� �����+ ��>���B ����� ����� �����& �����@ ��4���S ��.��� ��*��� ��&��� ��"��� �����, �����K �����f �� ���} ����� ��$��� ��<��� ����� ����� ��7��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-19 20:02+0200 Last-Translator: Jakub Bogusz <qboosh@pld-linux.org> Language-Team: Polish <translation-team-pl@lists.sourceforge.net> Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; �Strona domowa pakietu %s: <%s> �'�(C)�Ogólna pomoc przy używaniu oprogramowania GNU: <%s>. �Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza: <%s>. To jest oprogramowanie wolnodostępne: można je modyfikować i rozpowszechniać. Nie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo. �Pakietujący: %s �Pakietujący: %s (%s) �Błędy pakietującego (%s) prosimy zgłaszać na adres <%s>. �Prosimy zgłaszać błędy na adres <%s>. Błędy w tłumaczeniu prosimy zgłaszać na adres <translation-team-pl@lists.sourceforge.net>. �Nieznany błąd systemowy�Prawidłowe argumenty to:�Autorzy: %s i %s. �Autorzy: %s, %s, %s, %s, %s, %s, %s, %s, %s i inni. �Autorzy: %s, %s, %s, %s, %s, %s, %s, %s i %s. �Autorzy: %s, %s, %s, %s, %s, %s, %s i %s. �Autorzy: %s, %s, %s, %s, %s, %s i %s. �Autorzy: %s, %s, %s, %s, %s i %s. �Autorzy: %s, %s, %s, %s i %s. �Autorzy: %s, %s, %s i %s. �Autorzy: %s, %s i %s. �Autor: %s. �`�niejednoznaczny argument %s opcji %s�nie udało się wrócić do początkowego katalogu roboczego�błędny argument %s opcji %s�pamięć wyczerpana�nie udało się zapisać bieżącego katalogu roboczego������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/pl.po�������������������������������������������������������������������������0000644�0000000�0000000�00000063106�14445132162�012221� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Polish messages for gnulib # Copyright (C) 2005, 2007, 2009, 2010, 2011, 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Jakub Bogusz <qboosh@pld-linux.org>, 2007-2019. # based on translation for GNU Mailutils by: # Sergey Poznyakoff <gray@gnu.org>, 2003,2004,2005. # corrections: Wojciech Polak <polak@gnu.org>, 2003 # msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-19 20:02+0200\n" "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "błędny argument %s opcji %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "niejednoznaczny argument %s opcji %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Prawidłowe argumenty to:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Nieznany błąd systemowy" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "pamięć wyczerpana" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "nie udało się zapisać bieżącego katalogu roboczego" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "nie udało się wrócić do początkowego katalogu roboczego" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pakietujący: %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pakietujący: %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "(C)" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza:\n" "<%s>.\n" "To jest oprogramowanie wolnodostępne: można je modyfikować i " "rozpowszechniać.\n" "Nie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Autor: %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Autorzy: %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Autorzy: %s, %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Autorzy: %s, %s, %s\n" "i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Autorzy: %s, %s, %s,\n" "%s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Autorzy: %s, %s, %s,\n" "%s, %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Autorzy: %s, %s, %s,\n" "%s, %s, %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Autorzy: %s, %s, %s,\n" "%s, %s, %s, %s\n" "i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Autorzy: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Autorzy: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s i inni.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" "Prosimy zgłaszać błędy na adres <%s>.\n" "Błędy w tłumaczeniu prosimy zgłaszać na adres <translation-team-pl@lists." "sourceforge.net>.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Błędy pakietującego (%s) prosimy zgłaszać na adres <%s>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Strona domowa pakietu %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Ogólna pomoc przy używaniu oprogramowania GNU: <%s>.\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: wartość %s jest mniejsza lub równa %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: Parametr ARGP_HELP_FMT wymaga podania wartości" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Nieznany parametr ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Błędne dane w ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumenty obowiązkowe lub opcjonalne dla długich opcji są również " #~ "obowiązkowe lub opcjonalne dla odpowiednich krótkich opcji." #~ msgid "Usage:" #~ msgstr "Składnia:" #~ msgid " or: " #~ msgstr " lub: " #~ msgid " [OPTION...]" #~ msgstr " [OPCJA...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "" #~ "Polecenie '%s --help' lub '%s --usage' pozwoli uzyskać więcej " #~ "informacji.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Prosimy zgłaszać błędy na adres %s.\n" #~ msgid "give this help list" #~ msgstr "wyświetlenie tego tekstu pomocy" #~ msgid "give a short usage message" #~ msgstr "wyświetlenie krótkiej informacji o składni polecenia" #~ msgid "NAME" #~ msgstr "NAZWA" #~ msgid "set the program name" #~ msgstr "określenie nazwy programu" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "zatrzymanie na SEK sekund (domyślnie 3600)" #~ msgid "print program version" #~ msgstr "wyświetlenie wersji programu" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(BŁĄD PROGRAMU) Nieznana wersja!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Za dużo argumentów\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(BŁĄD PROGRAMU) Opcja powinna zostać rozpoznana!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u zwolniono (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u w pamięci podręcznej (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u w pamięci podręcznej (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u w pamięci podręcznej (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "histogram liczników\n" #~ msgid "size log histogram\n" #~ msgstr "histogram rozmiarów\n" #~ msgid "density histogram\n" #~ msgstr "histogram gęstości\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Statystyki operacji bitset:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Uruchomień łącznie = %u\n" #~ msgid "cannot read stats file" #~ msgstr "nie można odczytać pliku statystyk" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "błędny rozmiar pliku statystyk\n" #~ msgid "cannot write stats file" #~ msgstr "nie można zapisać pliku statystyk" #~ msgid "cannot open stats file for writing" #~ msgstr "nie można otworzyć pliku statystyk do zapisu" #~ msgid "program error" #~ msgstr "błąd programu" #~ msgid "stack overflow" #~ msgstr "przepełnienie stosu" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "nie można odnaleźć katalogu tymczasowego, można spróbować ustawić $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "nie można utworzyć katalogu typczasowego z użyciem szablonu \"%s\"" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "nie można usunąć pliku tymczasowego %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "nie można usunąć katalogu tymczasowego %s" #~ msgid "error closing file" #~ msgstr "błąd podczas zamykania pliku" #~ msgid "write error" #~ msgstr "błąd zapisu" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "zachowywanie uprawnień do %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "błąd podczas otwierania %s do odczytu" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "nie można otworzyć pliku zapasowego %s do zapisu" #, c-format #~ msgid "error reading %s" #~ msgstr "błąd odczytu %s" #, c-format #~ msgid "error writing %s" #~ msgstr "błąd zapisu %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "błąd po odczycie %s" #~ msgid "fdopen() failed" #~ msgstr "fdopen() nie powiodło się" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "Nie znaleziono kompilatora C#, proszę spróbować zainstalować mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "" #~ "Nie znaleziono maszyny wirtualnej C#, proszę spróbować zainstalować mono" #~ msgid "unbalanced [" #~ msgstr "niesparowany [" #~ msgid "invalid character class" #~ msgstr "błędna klasa znaków" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "składnia klasy znaków to [[:space:]], nie [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "niedokończona sekwencja \\" #~ msgid "invalid content of \\{\\}" #~ msgstr "błędna zawartość \\{\\}" #~ msgid "regular expression too big" #~ msgstr "wyrażenie regularne zbyt duże" #~ msgid "unbalanced (" #~ msgstr "niesparowany (" #~ msgid "no syntax specified" #~ msgstr "nie określono składni" #~ msgid "unbalanced )" #~ msgstr "niesparowany )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "podproces %s zawiódł" #~ msgid "regular empty file" #~ msgstr "pusty zwykły plik" #~ msgid "regular file" #~ msgstr "zwykły plik" #~ msgid "directory" #~ msgstr "katalog" #~ msgid "symbolic link" #~ msgstr "dowiązanie symboliczne" #~ msgid "message queue" #~ msgstr "kolejka komunikatów" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "obiekt w pamięci współdzielonej" #~ msgid "typed memory object" #~ msgstr "obiekt z typem w pamięci" #~ msgid "block special file" #~ msgstr "blokowy plik specjalny" #~ msgid "character special file" #~ msgstr "znakowy plik specjalny" #~ msgid "contiguous data" #~ msgstr "dane ciągłe" #~ msgid "fifo" #~ msgstr "potok" #~ msgid "door" #~ msgstr "plik door" #~ msgid "multiplexed block special file" #~ msgstr "multipleksowany blokowy plik specjalny" #~ msgid "multiplexed character special file" #~ msgstr "multipleksowany znakowy plik specjalny" #~ msgid "multiplexed file" #~ msgstr "plik multipleksowany" #~ msgid "named file" #~ msgstr "plik nazwany" #~ msgid "network special file" #~ msgstr "sieciowy plik specjalny" #~ msgid "migrated file with data" #~ msgstr "zmigrowany plik z danymi" #~ msgid "migrated file without data" #~ msgstr "zmigrowany plik bez danych" #~ msgid "port" #~ msgstr "port" #~ msgid "socket" #~ msgstr "gniazdo" #~ msgid "whiteout" #~ msgstr "plik whiteout" #~ msgid "weird file" #~ msgstr "dziwny plik" #~ msgid "Address family for hostname not supported" #~ msgstr "Rodzina adresów dla podanej nazwy hosta nie jest obsługiwana" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tymczasowy błąd rozwiązywania nazw" #~ msgid "Bad value for ai_flags" #~ msgstr "Błędna wartość ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Nienaprawialny błąd w rozwiązywaniu nazw" #~ msgid "ai_family not supported" #~ msgstr "ai_family zawiera nie obsługiwaną rodzinę protokołów" #~ msgid "Memory allocation failure" #~ msgstr "Błąd przydzielania pamięci" #~ msgid "No address associated with hostname" #~ msgstr "Brak adresu związanego z nazwą hosta" #~ msgid "Name or service not known" #~ msgstr "Nieznana nazwa lub usługa" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Usługa nie obsługiwana dla danego ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype zawiera nie obsługiwany typ gniazda" #~ msgid "System error" #~ msgstr "Błąd systemowy" #~ msgid "Argument buffer too small" #~ msgstr "Bufor argumentu zbyt mały" #~ msgid "Processing request in progress" #~ msgstr "Przetwarzanie żądania jest w toku" #~ msgid "Request canceled" #~ msgstr "Żądanie anulowane" #~ msgid "Request not canceled" #~ msgstr "Żądanie nie anulowane" #~ msgid "All requests done" #~ msgstr "Wszystkie żądania wykonane" #~ msgid "Interrupted by a signal" #~ msgstr "Przerwane przez sygnał" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Łańcuch parametru niepoprawnie zakodowany" #~ msgid "Unknown error" #~ msgstr "Nieznany błąd" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: opcja '%s%s' jest niejednoznaczna\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: opcja '%s%s' jest niejednoznaczna; możliwości:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: nieznana opcja '%s%s'\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: opcja '%s%s' nie może mieć argumentów\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: opcja '%s%s' musi mieć argument\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: błędna opcja -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: opcja musi mieć argument -- '%c'\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "błędny argument source_version dla compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "błędny argument target_version dla compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "nie udało się utworzyć \"%s\"" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "błąd podczas zapisu pliku \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Nie znaleziono kompilatora Javy, proszę spróbować zainstalować gcj lub " #~ "ustawić $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Nie znaleziono maszyny wirtualnej Javy, proszę spróbować zainstalować gij " #~ "lub ustawić $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "błąd we/wy podprocesu %s" #, c-format #~ msgid "cannot stat %s" #~ msgstr "nie można wykonać stat na %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "nie można zmienić uprawnień do %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "nie można utworzyć katalogu %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Nie udało się otworzyć /dev/zero do odczytu" #~ msgid "creation of reading thread failed" #~ msgstr "tworzenie wątku czytającego nie powiodło sie" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "nie można ustawić nieblokującego we/wy dla podprocesu %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "komunikacja z podprocesem %s nie powiodła się" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "zapis do podprocesu %s nie powiódł się" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "odczyt z podprocesu %s nie powiódł się" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "podproces %s zakończył się z kodem wyjścia %d" #~ msgid "creation of threads failed" #~ msgstr "tworzenie wątków nie powiodło się" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "podproces %s zakończył się kodem wyjścia %d" #~ msgid "Success" #~ msgstr "Sukces" #~ msgid "No match" #~ msgstr "Nic nie pasuje" #~ msgid "Invalid regular expression" #~ msgstr "Błędne wyrażenie regularne" #~ msgid "Invalid collation character" #~ msgstr "Błędny znak sortowany" #~ msgid "Invalid character class name" #~ msgstr "Błędna nazwa klasy znaków" #~ msgid "Trailing backslash" #~ msgstr "Kończący znak `\\'" #~ msgid "Invalid back reference" #~ msgstr "Błędne odniesienie wstecz" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Niesparowane [, [^, [:, [. lub [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "Niesparowane ( lub \\(" #~ msgid "Unmatched \\{" #~ msgstr "Niesparowane \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Błędna zawartość \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Błędny koniec zakresu" #~ msgid "Memory exhausted" #~ msgstr "Pamięć wyczerpana" #~ msgid "Invalid preceding regular expression" #~ msgstr "Błędne poprzedzające wyrażenie regularne" #~ msgid "Premature end of regular expression" #~ msgstr "Przedwczesny koniec wyrażenia regularnego" #~ msgid "Regular expression too big" #~ msgstr "Wyrażenie regularne zbyt duże" #~ msgid "Unmatched ) or \\)" #~ msgstr "Niesparowane ) lub \\)" #~ msgid "No previous regular expression" #~ msgstr "Brak poprzedniego wyrażenia regularnego" #~ msgid "^[yY]" #~ msgstr "^[yYtT]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "ustawianie uprawnień %s" #~ msgid "Hangup" #~ msgstr "Rozłączenie" #~ msgid "Interrupt" #~ msgstr "Przerwanie" #~ msgid "Quit" #~ msgstr "Wyjście" #~ msgid "Illegal instruction" #~ msgstr "Niedozwolona instrukcja" #~ msgid "Trace/breakpoint trap" #~ msgstr "Pułapka debuggera/breakpoint" #~ msgid "Aborted" #~ msgstr "Przerwano" #~ msgid "Floating point exception" #~ msgstr "Błąd w obliczeniach zmiennoprzecinkowych" #~ msgid "Killed" #~ msgstr "Unicestwiono" #~ msgid "Bus error" #~ msgstr "Błąd szyny" #~ msgid "Segmentation fault" #~ msgstr "Naruszenie ochrony pamięci" #~ msgid "Broken pipe" #~ msgstr "Przerwany potok" #~ msgid "Alarm clock" #~ msgstr "Budzik" #~ msgid "Terminated" #~ msgstr "Zakończono" #~ msgid "Urgent I/O condition" #~ msgstr "Nagły stan we/wy" #~ msgid "Stopped (signal)" #~ msgstr "Zatrzymano (sygnał)" #~ msgid "Stopped" #~ msgstr "Zatrzymano" #~ msgid "Continued" #~ msgstr "Kontynuacja" #~ msgid "Child exited" #~ msgstr "Zakończenie procesu potomnego" #~ msgid "Stopped (tty input)" #~ msgstr "Zatrzymano (wejście z tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Zatrzymano (wyjście na tty)" #~ msgid "I/O possible" #~ msgstr "Możliwa operacja we/wy" #~ msgid "CPU time limit exceeded" #~ msgstr "Przekroczony limit czasu procesora" #~ msgid "File size limit exceeded" #~ msgstr "Przekroczony limit rozmiaru pliku" #~ msgid "Virtual timer expired" #~ msgstr "Upłynął czas stopera wirtualnego" #~ msgid "Profiling timer expired" #~ msgstr "Upłynął czas stopera profilującego" #~ msgid "Window changed" #~ msgstr "Okno zmienione" #~ msgid "User defined signal 1" #~ msgstr "Sygnał użytkownika 1" #~ msgid "User defined signal 2" #~ msgstr "Sygnał użytkownika 2" #~ msgid "EMT trap" #~ msgstr "Pułapka EMT" #~ msgid "Bad system call" #~ msgstr "Błędne wywołanie systemowe" #~ msgid "Stack fault" #~ msgstr "Błąd stosu" #~ msgid "Information request" #~ msgstr "Żądanie informacji" #~ msgid "Power failure" #~ msgstr "Awaria zasilania" #~ msgid "Resource lost" #~ msgstr "Utrata zasobów" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "błąd zapisu do zamkniętego potoku lub gniazda" #~ msgid "cannot create pipe" #~ msgstr "nie można utworzyć potoku" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Sygnał czasu rzeczywistego %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Nieznany sygnał %d" #~ msgid "Execution times (seconds)" #~ msgstr "Czasy wykonywania (w sekundach)" #~ msgid "CPU user" #~ msgstr "CPU użytkownika" #~ msgid "CPU system" #~ msgstr "CPU systemu" #~ msgid "wall clock" #~ msgstr "zegarowo" #~ msgid "iconv function not usable" #~ msgstr "nie można użyć funkcji iconv" #~ msgid "iconv function not available" #~ msgstr "funkcja iconv nie jest dostępna" #~ msgid "character out of range" #~ msgstr "znak spoza zakresu" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "nie można przekształcić U+%04X do lokalnego zestawu znaków" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "nie można przekształcić U+%04X do lokalnego zestawu znaków: %s" #~ msgid "invalid user" #~ msgstr "błędny użytkownik" #~ msgid "invalid group" #~ msgstr "błędna grupa" #~ msgid "invalid spec" #~ msgstr "błędna specyfikacja" #~ msgid "unable to display error message" #~ msgstr "nie można wyświetlić komunikatu błędu" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle nie powiodło się" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "nie można odtworzyć fd %d: dup2 nie powiodło się" #, c-format #~ msgid "%s subprocess" #~ msgstr "podproces %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "podproces %s dostał krytyczny sygnał %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "nie udało się ustawić deskryptora pliku w tryb tekstowy/binarny" #~ msgid "stdin" #~ msgstr "standardowego wejścia" #~ msgid "stdout" #~ msgstr "standardowego wyjścia" #~ msgid "stderr" #~ msgstr "standardowego wyjścia diagnostycznego" #~ msgid "unknown stream" #~ msgstr "nieznanego strumienia" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "nie udało się ponownie otworzyć %s w trybie %s" #~ msgid "string comparison failed" #~ msgstr "nie udało się porównanie łańcuchów znaków" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Ustaw LC_ALL='C' żeby obejść problem" #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Porównywane łańcuchy znaków do %s i %s." #~ msgid "cannot perform formatted output" #~ msgstr "nie można sformatować wyjścia" #~ msgid "standard file descriptors" #~ msgstr "standardowe deskryptory plików" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "błędny argument opcji %s%s '%s'" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "błędny przyrostek argumentu opcji %s%s '%s'" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "argument opcji %s%s '%s' zbyt duży" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/pt.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005605�14445132163�012376� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������.��������2��������������� ����� �����5 �����R �����o ��9��� ��1��� ��-��� ��)��� ��%���I ��!���o ����� ����� ����� ����� ����� ��,��� �����& �����E ��-���W ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-26 10:40+0100 Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com> Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net> Language: pt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=n != 1; X-Generator: Gtranslator 2.91.7 �Página inicial %s: <%s> �"�(©)�Ajuda geral para utilizar programas GNU: <%s> �Licença GPLv3+: GNU GPL versão 3 ou posterior <%s> Este é um programa grátis: pode alterá-lo e redistribuí-lo. Não há QUALQUER GARANTIA, até ao limite da Lei. �Empacotado por %s �Empacotado por %s (%s) �Reportar erros %s a: %s �Reportar erros a: %s �Erro de sistema desconhecido�Os argumentos válidos são:�Escrito por %s e %s. �Escrito por %s, %s, %s, %s, %s, %s, %s, %s, %s e outros. �Escrito por %s, %s, %s, %s, %s, %s, %s, %s e %s. �Escrito por %s, %s, %s, %s, %s, %s, %s e %s. �Escrito por %s, %s, %s, %s, %s, %s e %s. �Escrito por %s, %s, %s, %s, %s e %s. �Escrito por %s, %s, %s, %s e %s. �Escrito por %s, %s, %s e %s. �Escrito por %s, %s e %s. �Escrito por %s �"�argumento %s ambíguo para %s�falha ao voltar à pasta de trabalho inicial�argumento %s inválido para %s�memória esgotada�impossível gravar a pasta de trabalho actual����������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/pt.po�������������������������������������������������������������������������0000644�0000000�0000000�00000061375�14445132162�012237� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Portuguese (Portugal) Translation for the gnulib Package. # Copyright (C) 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Pedro Albuquerque <palbuquerque73@gmail.com>, 2019. # msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-26 10:40+0100\n" "Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n" "Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Gtranslator 2.91.7\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argumento %s inválido para %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumento %s ambíguo para %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Os argumentos válidos são:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Erro de sistema desconhecido" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memória esgotada" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "impossível gravar a pasta de trabalho actual" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "falha ao voltar à pasta de trabalho inicial" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "\"" #: lib/quotearg.c:355 msgid "'" msgstr "\"" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Empacotado por %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Empacotado por %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "(©)" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Licença GPLv3+: GNU GPL versão 3 ou posterior <%s>\n" "Este é um programa grátis: pode alterá-lo e redistribuí-lo.\n" "Não há QUALQUER GARANTIA, até ao limite da Lei.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Escrito por %s\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Escrito por %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Escrito por %s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrito por %s, %s, %s\n" "e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s\n" "e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s e outros.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Reportar erros a: %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Reportar erros %s a: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Página inicial %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Ajuda geral para utilizar programas GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: valor %s é menor ou igual que %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: o parâmetro ARGP_HELP_FMT requer um valor" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: parâmetro ARGP_HELP_FMT desconhecido" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Lixo em ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumentos obrigatórios ou opcionais para opções longas são igualmente " #~ "obrigatórios ou opcionais para opções curtas correspondentes." #~ msgid "Usage:" #~ msgstr "Uso:" #~ msgid " or: " #~ msgstr " ou: " #~ msgid " [OPTION...]" #~ msgstr " [OPÇÃO...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Tente \"%s --help\" ou \"%s --usage\" para mais informação.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Reportar erros a %s.\n" #~ msgid "give this help list" #~ msgstr "mostra esta lista de ajuda" #~ msgid "give a short usage message" #~ msgstr "mostrar mensagem curta de uso" #~ msgid "NAME" #~ msgstr "NOME" #~ msgid "set the program name" #~ msgstr "define o nome do programa" #~ msgid "SECS" #~ msgstr "SEGS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "espera SEGS segundos (predefinição 3600)" #~ msgid "print program version" #~ msgstr "mostra versão do programa" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ERRO DO PROGRAMA) Sem versão conhecida!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: demasiados argumentos\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ERRO DO PROGRAMA) A opção devia ter sido reconhecida!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u libertados (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u em cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u em cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u em cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "histograma de diário total\n" #~ msgid "size log histogram\n" #~ msgstr "histograma de diário de tamanho\n" #~ msgid "density histogram\n" #~ msgstr "histograma de densidade\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Estatísticas de bitset:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Execuções acumuladas = %u\n" #~ msgid "cannot read stats file" #~ msgstr "impossível ler ficheiro de estatísticas" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "mau tamanho de ficheiro de estatísticas\n" #~ msgid "cannot write stats file" #~ msgstr "impossível escrever ficheiro de estatísticas" #~ msgid "cannot open stats file for writing" #~ msgstr "impossível abrir ficheiro de estatísticas para escrita" #~ msgid "program error" #~ msgstr "erro de programa" #~ msgid "stack overflow" #~ msgstr "transporte da pilha" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "impossível encontrar uma pasta temporária, tente definir $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "impossível criar uma pasta temporária usando o modelo \"%s\"" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "impossível remover o ficheiro temporário %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "impossível remover a pasta temporária %s" #~ msgid "error closing file" #~ msgstr "erro ao fechar o ficheiro" #~ msgid "write error" #~ msgstr "erro de escrita" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "preservar permissões para %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "erro ao abrir %s para leitura" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "impossível abrir a segurança %s para escrita" #, c-format #~ msgid "error reading %s" #~ msgstr "erro ao ler %s" #, c-format #~ msgid "error writing %s" #~ msgstr "erro ao escrever %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "erro após ler %s" #~ msgid "fdopen() failed" #~ msgstr "fdopen() falhou" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "Compilador C# não encontrado, tente instalar mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "Máquina virtual C# não encontrada, tente instalar mono" #~ msgid "unbalanced [" #~ msgstr "[ sem par" #~ msgid "invalid character class" #~ msgstr "classe de carácter inválida" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "a sintaxe da classe de carácter é [[:espaço:]], não [:espaço:]" #~ msgid "unfinished \\ escape" #~ msgstr "escape \\ não terminado" #~ msgid "invalid content of \\{\\}" #~ msgstr "Conteúdo de \\{\\} inválido" #~ msgid "regular expression too big" #~ msgstr "expressão regular muito grande" #~ msgid "unbalanced (" #~ msgstr "( sem par" #~ msgid "no syntax specified" #~ msgstr "sem sintaxe especificada" #~ msgid "unbalanced )" #~ msgstr ") sem par" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "sub-processo %s falhou" #~ msgid "regular empty file" #~ msgstr "ficheiro normal vazio" #~ msgid "regular file" #~ msgstr "ficheiro normal" #~ msgid "directory" #~ msgstr "pasta" #~ msgid "symbolic link" #~ msgstr "ligação simbólica" #~ msgid "message queue" #~ msgstr "fila de mensagens" #~ msgid "semaphore" #~ msgstr "semáforo" #~ msgid "shared memory object" #~ msgstr "objecto de memória partilhado" #~ msgid "typed memory object" #~ msgstr "objecto de memória tipificado" #~ msgid "block special file" #~ msgstr "ficheiro especial de blocos" #~ msgid "character special file" #~ msgstr "ficheiro especial de caracteres" #~ msgid "contiguous data" #~ msgstr "dados contíguos" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "door" #~ msgstr "porta" #~ msgid "multiplexed block special file" #~ msgstr "ficheiro especial de blocos multiplexado" #~ msgid "multiplexed character special file" #~ msgstr "ficheiro especial de caracteres multiplexado" #~ msgid "multiplexed file" #~ msgstr "ficheiro multiplexado" #~ msgid "named file" #~ msgstr "ficheiro com nome" #~ msgid "network special file" #~ msgstr "ficheiro especial de rede" #~ msgid "migrated file with data" #~ msgstr "ficheiro migrado com dados" #~ msgid "migrated file without data" #~ msgstr "ficheiro migrado sem dados" #~ msgid "port" #~ msgstr "porta" #~ msgid "socket" #~ msgstr "socket" #~ msgid "whiteout" #~ msgstr "whiteout" #~ msgid "weird file" #~ msgstr "ficheiro estranho" #~ msgid "Address family for hostname not supported" #~ msgstr "Família de endereço para nome de servidor não suportado" #~ msgid "Temporary failure in name resolution" #~ msgstr "Falha temporária na resolução de nome" #~ msgid "Bad value for ai_flags" #~ msgstr "Valor errado para ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Falha irrecuperável na resolução de nome" #~ msgid "ai_family not supported" #~ msgstr "ai_family não suportada" #~ msgid "Memory allocation failure" #~ msgstr "Falha de alocação de memória" #~ msgid "No address associated with hostname" #~ msgstr "Sem endereço associado ao nome de anfitrião" #~ msgid "Name or service not known" #~ msgstr "Nome ou serviço desconhecido" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Nome de servidor não suportado para ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype não suportado" #~ msgid "System error" #~ msgstr "Erro de sistema" #~ msgid "Argument buffer too small" #~ msgstr "Buffer de argumentos muito pequeno" #~ msgid "Processing request in progress" #~ msgstr "A processar pedido em curso" #~ msgid "Request canceled" #~ msgstr "Pedido cancelado" #~ msgid "Request not canceled" #~ msgstr "Pedido não cancelado" #~ msgid "All requests done" #~ msgstr "Todos os pedidos feitos" #~ msgid "Interrupted by a signal" #~ msgstr "Interrompido por um sinal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Cadeia de parâmetros incorrectamente codificada" #~ msgid "Unknown error" #~ msgstr "Erro desconhecido" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: a opção \"%s%s\" é ambígua\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: a opção \"%s%s\" é ambígua; possibilidades:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: opção não reconhecida \"%s%s\"\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: a opção \"%s%s\" não permite um argumento\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "\"%s: a opção \"%s%s\" requer um argumento\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: opção inválida -- \"%c\"\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: a opção requer um argumento -- \"%c\"\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argumento source_version inválido para compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argumento target_version inválido para compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "falha ao criar \"%s\"" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "erro ao escrever o ficheiro \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "Compilador Java não encontrado, tente instalar gcj ou defina $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Máquina virtual Java não encontrada, tente instalar gij ou defina $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "erro E/S no sub-processo %s" #, c-format #~ msgid "cannot stat %s" #~ msgstr "impossível obter informação para %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "impossível alterar as permissões de %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "impossível criar a pasta %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Falha ao abrir /dev/zero para leitura" #~ msgid "creation of reading thread failed" #~ msgstr "falha ao criar tópico de leitura" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "impossível configurar E/S não-bloqueadora para sub-pocesso %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "falha ao comunicar com o sub-processo %s" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "falha ao escrever no sub-processo %s" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "falha ao ler do sub-processo %s" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "sub-processo %s terminou com código de saída %d" #~ msgid "creation of threads failed" #~ msgstr "falha ao criar tópicos" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "sub-processo %s terminou com código de saída %d" #~ msgid "Success" #~ msgstr "Sucesso" #~ msgid "No match" #~ msgstr "Sem correspondência" #~ msgid "Invalid regular expression" #~ msgstr "Expressão regular inválida" #~ msgid "Invalid collation character" #~ msgstr "Carácter de agrupamento inválido" #~ msgid "Invalid character class name" #~ msgstr "Nome de classe de carácter inválido" #~ msgid "Trailing backslash" #~ msgstr "Barra invertida final" #~ msgid "Invalid back reference" #~ msgstr "Referência de recuo inválida" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "[, [^, [:, [., ou [= sem par" #~ msgid "Unmatched ( or \\(" #~ msgstr "( ou \\( sem par" #~ msgid "Unmatched \\{" #~ msgstr "\\{ sem par" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Conteúdo de \\{\\} inválido" #~ msgid "Invalid range end" #~ msgstr "Fim de intervalo inválido" #~ msgid "Memory exhausted" #~ msgstr "Memória esgotada" #~ msgid "Invalid preceding regular expression" #~ msgstr "Expressão regular precedente inválida" #~ msgid "Premature end of regular expression" #~ msgstr "Fim prematuro de expressão regular" #~ msgid "Regular expression too big" #~ msgstr "Expressão regular muito grande" #~ msgid "Unmatched ) or \\)" #~ msgstr ") ou \\) sem par" #~ msgid "No previous regular expression" #~ msgstr "Sem expressão regular anterior" #~ msgid "^[yY]" #~ msgstr "^[Ss]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "a definir permissões para %s" #~ msgid "Hangup" #~ msgstr "Desligar" #~ msgid "Interrupt" #~ msgstr "Interromper" #~ msgid "Quit" #~ msgstr "Sair" #~ msgid "Illegal instruction" #~ msgstr "Instrução ilegal" #~ msgid "Trace/breakpoint trap" #~ msgstr "Armadilha de rastreio/ponto de quebra" #~ msgid "Aborted" #~ msgstr "Abortado" #~ msgid "Floating point exception" #~ msgstr "Excepção de vírgula flutuante" #~ msgid "Killed" #~ msgstr "Morto" #~ msgid "Bus error" #~ msgstr "Erro de bus" #~ msgid "Segmentation fault" #~ msgstr "Falha de segmentação" #~ msgid "Broken pipe" #~ msgstr "Túnel quebrado" #~ msgid "Alarm clock" #~ msgstr "Alarme" #~ msgid "Terminated" #~ msgstr "Terminado" #~ msgid "Urgent I/O condition" #~ msgstr "Condição E/S urgente" #~ msgid "Stopped (signal)" #~ msgstr "Parado (sinal)" #~ msgid "Stopped" #~ msgstr "Parado" #~ msgid "Continued" #~ msgstr "Continuado" #~ msgid "Child exited" #~ msgstr "Filho saiu" #~ msgid "Stopped (tty input)" #~ msgstr "Parado (entrada tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Parado (saída tty)" #~ msgid "I/O possible" #~ msgstr "Possível E/S" #~ msgid "CPU time limit exceeded" #~ msgstr "Excedido limite de tempo da CPU" #~ msgid "File size limit exceeded" #~ msgstr "Excedido limite de tamanho do ficheiro" #~ msgid "Virtual timer expired" #~ msgstr "Temporizador virtual expirado" #~ msgid "Profiling timer expired" #~ msgstr "Temporizador de perfil expirado" #~ msgid "Window changed" #~ msgstr "Janela alterada" #~ msgid "User defined signal 1" #~ msgstr "Sinal 1 definido pelo utilizador" #~ msgid "User defined signal 2" #~ msgstr "Sinal 2 definido pelo utilizador" #~ msgid "EMT trap" #~ msgstr "Armadilha EMT" #~ msgid "Bad system call" #~ msgstr "Má chamada de sistema" #~ msgid "Stack fault" #~ msgstr "Falha de pilha" #~ msgid "Information request" #~ msgstr "Pedido de informação" #~ msgid "Power failure" #~ msgstr "Falha de energia" #~ msgid "Resource lost" #~ msgstr "Recurso perdido" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "Erro ao escrever num túnel ou socket fechado" #~ msgid "cannot create pipe" #~ msgstr "impossível criar túnel" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Sinal %d de tempo real" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Sinal %d desconhecido" #~ msgid "Execution times (seconds)" #~ msgstr "Tempos de execução (segundos)" #~ msgid "CPU user" #~ msgstr "utilizador de CPU" #~ msgid "CPU system" #~ msgstr "Sistema de CPU" #~ msgid "wall clock" #~ msgstr "relógio de parede" #~ msgid "iconv function not usable" #~ msgstr "função iconv inutilizável" #~ msgid "iconv function not available" #~ msgstr "função iconv indisponível" #~ msgid "character out of range" #~ msgstr "carácter fora do intervalo" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "impossível converter U+%04X para conjunto de caracteres local" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "impossível converter U+%04X para conjunto de caracteres local: %s" #~ msgid "invalid user" #~ msgstr "utilizador inválido" #~ msgid "invalid group" #~ msgstr "grupo inválido" #~ msgid "invalid spec" #~ msgstr "especificação inválida" #~ msgid "unable to display error message" #~ msgstr "impossível mostrar mensagem de erro" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle falhou" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "impossível restaurar fd %d: dup2 falhou" #, c-format #~ msgid "%s subprocess" #~ msgstr "sub-processo %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "sub-processo %s obteve sinal fatal %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "falha ao definir modo texto/binário do descritor de ficheiro" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "fluxo desconhecido" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "falha ao reabrir %s com modo %s" #~ msgid "string comparison failed" #~ msgstr "erro na comparação da cadeia" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Defina LC_ALL=\"C\" para contornar o problema." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "As cadeias comparadas foram %s e %s." #~ msgid "cannot perform formatted output" #~ msgstr "impossível formatar o resultado de saída" #~ msgid "standard file descriptors" #~ msgstr "descritores de ficheiro padrão" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "argumento %s%s \"%s\" inválido" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "sufixo inválido em %s%s, argumento \"%s\"" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "argumento %s%s \"%s\" muito grande" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/pt_BR.gmo���������������������������������������������������������������������0000644�0000000�0000000�00000006010�14445132163�012750� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������&��������-���������� ����� ��g���; ����� ����� ����� ��9��� ��1���* ��-���\ ��)��� ��%��� ��!��� ����� ����� �����4 �����E �����I ��3���g ����� ����� ��;��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-08-28 15:29-0300 Last-Translator: Rafael Fontenelle <rafaelff@gnome.org> Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net> Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Virtaal 1.0.0-beta1 X-Bugs: Report translation errors to the Language-Team address. �Página do %s: <%s> �”�(C)�Ajuda para uso de softwares GNU: <%s> �Licença GPLv3+: GNU GPL versão 3 ou posterior <%s> Este é um software livre: você é livre para alterá-lo e redistribuí-lo. NÃO HÁ QUALQUER GARANTIA, na máxima extensão permitida em lei. �Empacotado por %s �Empacotado por %s (%s) �Relate erros do %s para: %s �Relate erros para: %s Relate erros de tradução para <https://translationproject.org/team/pt_BR.html> �Erro desconhecido de sistema�Argumentos válidos são:�Escrito por %s e %s. �Escrito por %s, %s, %s, %s, %s, %s, %s, %s, %s e outros. �Escrito por %s, %s, %s, %s, %s, %s, %s, %s e %s. �Escrito por %s, %s, %s, %s, %s, %s, %s e %s. �Escrito por %s, %s, %s, %s, %s, %s e %s. �Escrito por %s, %s, %s, %s, %s e %s. �Escrito por %s, %s, %s, %s e %s. �Escrito por %s, %s, %s e %s. �Escrito por %s, %s e %s. �Escrito por %s. �“�argumento ambíguo %s para %s�falha em retornar ao diretório de trabalho inicial�argumento inválido %s para %s�memória esgotada�não foi possível registrar o diretório de trabalho atual�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/pt_BR.po����������������������������������������������������������������������0000644�0000000�0000000�00000072030�14445132162�012610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Brazilian Portuguese translations for gnulib package # Traduções em português brasileiro para o pacote gnulib # Copyright (C) 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Cyro Mendes De Moraes Neto <neto@conectiva.com.br>, 1998. # Rodrigo Stulzer Lopes <rodrigo@conectiva.com.br>, 2001. # Juan Carlos Castro y Castro <jcastro@vialink.com.br>, 2003. # Rafael Fontenelle <rafaelff@gnome.org>, 2013, 2017, 2019. msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-08-28 15:29-0300\n" "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n" "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge." "net>\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Virtaal 1.0.0-beta1\n" "X-Bugs: Report translation errors to the Language-Team address.\n" # , c-format #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argumento inválido %s para %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumento ambíguo %s para %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Argumentos válidos são:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Erro desconhecido de sistema" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memória esgotada" # , c-format #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "não foi possível registrar o diretório de trabalho atual" # , c-format #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "falha em retornar ao diretório de trabalho inicial" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "“" #: lib/quotearg.c:355 msgid "'" msgstr "”" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Empacotado por %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Empacotado por %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "(C)" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Licença GPLv3+: GNU GPL versão 3 ou posterior <%s>\n" "Este é um software livre: você é livre para alterá-lo e redistribuí-lo.\n" "NÃO HÁ QUALQUER GARANTIA, na máxima extensão permitida em lei.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Escrito por %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Escrito por %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Escrito por %s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrito por %s, %s, %s\n" "e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s\n" "e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Escrito por %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s e outros.\n" # Adicionado endereço de email da equipe, conforme solicitação do desenvolvedor -- Rafael #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" "Relate erros para: %s\n" "Relate erros de tradução para <https://translationproject.org/team/pt_BR." "html>\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Relate erros do %s para: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Página do %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Ajuda para uso de softwares GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: O valor %s é menor do que ou igual a %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: O parâmetro ARGP_HELP_FMT exige um valor" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Parâmetro ARGP_HELP_FMT desconhecido" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Lixo em ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumentos obrigatórios ou opcionais para opções longas também o são para " #~ "quaisquer opções curtas correspondentes." #~ msgid "Usage:" #~ msgstr "Uso:" #~ msgid " or: " #~ msgstr " ou: " # , c-format #~ msgid " [OPTION...]" #~ msgstr " [OPÇÃO...]" # , c-format #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Tente \"%s --help\" ou \"%s --usage\" para mais informação.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Relate erros para %s.\n" #~ msgid "give this help list" #~ msgstr "fornece esta lista de ajuda" #~ msgid "give a short usage message" #~ msgstr "fornece uma mensagem de uso curta" #~ msgid "NAME" #~ msgstr "NOME" #~ msgid "set the program name" #~ msgstr "define o nome do programa" #~ msgid "SECS" #~ msgstr "SEGS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "segura por SEGS segundos (padrão 3600)" #~ msgid "print program version" #~ msgstr "mostra a versão do programa" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ERRO NO PROGRAMA) Nenhuma versão conhecida!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Número excessivo de argumentos\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ERRO NO PROGRAMA) A opção deveria ter sido reconhecida!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u liberados (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u em cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u em cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u em cache (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "histograma de log de contagem\n" #~ msgid "size log histogram\n" #~ msgstr "histograma de log de tamanho\n" #~ msgid "density histogram\n" #~ msgstr "histograma de densidade\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Estatística de bitset:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Execuções acumuladas = %u\n" # , c-format #~ msgid "cannot read stats file" #~ msgstr "não foi possível ler o arquivo de estado" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "tamanho inválido de arquivo de estado\n" # , c-format #~ msgid "cannot write stats file" #~ msgstr "não foi possível escrever o arquivo de estado" #~ msgid "cannot open stats file for writing" #~ msgstr "não foi possível abrir o arquivo de estado para escrita" #~ msgid "program error" #~ msgstr "erro do programa" #~ msgid "stack overflow" #~ msgstr "estouro de pilha" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "não foi possível localizar um diretório temporário, tente definir $TMPDIR" # , c-format #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "não foi possível criar um diretório temporário usando o modelo \"%s\"" # , c-format #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "não foi possível remover o arquivo temporário %s" # , c-format #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "não foi possível remover o diretório temporário %s" #~ msgid "error closing file" #~ msgstr "erro ao fechar o arquivo" #~ msgid "write error" #~ msgstr "erro de escrita" # , c-format #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "preservando permissões de %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "erro ao abrir %s para leitura" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "não foi possível abrir o arquivo backup %s para escrita" # , c-format #, c-format #~ msgid "error reading %s" #~ msgstr "erro ao ler %s" # , c-format #, c-format #~ msgid "error writing %s" #~ msgstr "erro ao escrever %s" # , c-format #, c-format #~ msgid "error after reading %s" #~ msgstr "erro após leitura de %s" #~ msgid "fdopen() failed" #~ msgstr "fdopen() falhou" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "O compilador C# não foi localizado, tente instalar mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "A máquina virtual C# não foi localizada, tente instalar mono" #~ msgid "unbalanced [" #~ msgstr "[ não balanceado" # , c-format #~ msgid "invalid character class" #~ msgstr "classe de caracteres inválida" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "a sintaxe da classe de caracteres é [[:space:]], não [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "escape \\ não finalizado" #~ msgid "invalid content of \\{\\}" #~ msgstr "conteúdo inválido de \\{\\}" # , c-format #~ msgid "regular expression too big" #~ msgstr "expressão regular grande demais" #~ msgid "unbalanced (" #~ msgstr "( não balanceado" #~ msgid "no syntax specified" #~ msgstr "nenhuma sintaxe especificada" #~ msgid "unbalanced )" #~ msgstr ") não balanceado" # , c-format #, c-format #~ msgid "%s subprocess failed" #~ msgstr "subprocesso %s falhou" #~ msgid "regular empty file" #~ msgstr "arquivo comum vazio" #~ msgid "regular file" #~ msgstr "arquivo comum" #~ msgid "directory" #~ msgstr "diretório" #~ msgid "symbolic link" #~ msgstr "link simbólico" #~ msgid "message queue" #~ msgstr "fila de mensagem" #~ msgid "semaphore" #~ msgstr "semáforo" #~ msgid "shared memory object" #~ msgstr "objeto de memória compartilhada" #~ msgid "typed memory object" #~ msgstr "objeto de memória tipificada" #~ msgid "block special file" #~ msgstr "arquivo especial de bloco" #~ msgid "character special file" #~ msgstr "arquivo especial de caractere" #~ msgid "contiguous data" #~ msgstr "dados contíguos" # first-in, first-out; abreviação muito usada no meio computacional em português -- Rafael #~ msgid "fifo" #~ msgstr "fifo" # https://en.wikipedia.org/wiki/Unix_file_types#Door # Não traduzir para porta para evitar confusão com "port" #~ msgid "door" #~ msgstr "door" #~ msgid "multiplexed block special file" #~ msgstr "arquivo multiplexado especial de bloco" #~ msgid "multiplexed character special file" #~ msgstr "arquivo multiplexado especial de caractere" #~ msgid "multiplexed file" #~ msgstr "arquivo multiplexado" #~ msgid "named file" #~ msgstr "arquivo nomeado" #~ msgid "network special file" #~ msgstr "arquivo especial de rede" #~ msgid "migrated file with data" #~ msgstr "arquivo migrado com dados" #~ msgid "migrated file without data" #~ msgstr "arquivo migrado sem dados" #~ msgid "port" #~ msgstr "porta" #~ msgid "socket" #~ msgstr "soquete" #~ msgid "whiteout" #~ msgstr "whiteout" #~ msgid "weird file" #~ msgstr "arquivo estranho" #~ msgid "Address family for hostname not supported" #~ msgstr "Não há suporte para família de endereços para nome de máquina" #~ msgid "Temporary failure in name resolution" #~ msgstr "Falha temporária na resolução de nome" #~ msgid "Bad value for ai_flags" #~ msgstr "Valor inválido para ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Falha irrecuperável na resolução de nome" #~ msgid "ai_family not supported" #~ msgstr "Não há suporte a ai_family" #~ msgid "Memory allocation failure" #~ msgstr "Falha na alocação de memória" #~ msgid "No address associated with hostname" #~ msgstr "Nenhum endereço associado ao nome de máquina" #~ msgid "Name or service not known" #~ msgstr "Nome ou serviço desconhecido" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Sem suporte ao nome de serviço pelo ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "Não há suporte a ai_socktype" #~ msgid "System error" #~ msgstr "Erro de sistema" #~ msgid "Argument buffer too small" #~ msgstr "Buffer de argumentos é pequeno demais" #~ msgid "Processing request in progress" #~ msgstr "Processamento de requisição em andamento" #~ msgid "Request canceled" #~ msgstr "Requisição cancelada" #~ msgid "Request not canceled" #~ msgstr "Requisição não cancelada" #~ msgid "All requests done" #~ msgstr "Todas as requisições foram atendidas" #~ msgid "Interrupted by a signal" #~ msgstr "Interrompido por um sinal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Texto do parâmetro codificado incorretamente" #~ msgid "Unknown error" #~ msgstr "Erro desconhecido" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: a opção \"%s%s\" é ambígua\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: a opção \"%s%s\" é ambígua; possibilidades:" # , c-format #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: opção desconhecida \"%s%s\"\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: a opção \"%s%s\" não permite um argumento\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: a opção \"%s%s\" exige um argumento\n" # , c-format #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: opção inválida -- \"%c\"\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: a opção exige um argumento -- \"%c\"\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argumento source_version inválido para compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argumento target_version inválido para compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "falha ao criar \"%s\"" # , c-format #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "erro ao escrever o arquivo \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "O compilador de Java não foi localizado, tente instalar gcj ou definir " #~ "$JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "A máquina virtual de Java não foi localizada, tente instalar gij ou " #~ "definir $JAVA" # , c-format #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "erro de E/S no subprocesso %s" # , c-format #, c-format #~ msgid "cannot stat %s" #~ msgstr "não foi possível obter estado de %s" # , c-format #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "não foi possível mudar permissões de %s" # , c-format #, c-format #~ msgid "cannot create directory %s" #~ msgstr "não foi possível criar o diretório %s" # , c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Falha ao abrir /dev/zero para leitura" #~ msgid "creation of reading thread failed" #~ msgstr "a criação da thread de leitura falhou" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "não foi possível configurar E/S sem bloqueio para o subprocesso %s" # , c-format #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "a comunicação com o subprocesso %s falhou" # , c-format #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "escrita no subprocesso %s falhou" # , c-format #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "leitura do subprocesso %s falhou" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "o subprocesso %s terminou com o código de saída %d" #~ msgid "creation of threads failed" #~ msgstr "a criação das threads falhou" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "subprocesso %s terminado com código de saída %d" #~ msgid "Success" #~ msgstr "Sucesso" #~ msgid "No match" #~ msgstr "Nenhuma ocorrência do padrão" # , c-format #~ msgid "Invalid regular expression" #~ msgstr "Expressão regular inválida" # , c-format #~ msgid "Invalid collation character" #~ msgstr "Caractere de combinação inválido" # , c-format #~ msgid "Invalid character class name" #~ msgstr "Nome inválido de classe de caracteres" #~ msgid "Trailing backslash" #~ msgstr "Barra invertida no final" #~ msgid "Invalid back reference" #~ msgstr "Retrorreferência inválida" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "[, [^, [:, [., ou [= sem correspondente" #~ msgid "Unmatched ( or \\(" #~ msgstr "( ou \\( sem correspondente" #~ msgid "Unmatched \\{" #~ msgstr "\\{ sem correspondente" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Conteúdo inválido de \\{\\}" # , c-format #~ msgid "Invalid range end" #~ msgstr "Fim de intervalo inválido" #~ msgid "Memory exhausted" #~ msgstr "Memória esgotada" # , c-format #~ msgid "Invalid preceding regular expression" #~ msgstr "A expressão regular precedente é inválida" #~ msgid "Premature end of regular expression" #~ msgstr "Fim prematuro da expressão regular" # , c-format #~ msgid "Regular expression too big" #~ msgstr "Expressão regular grande demais" #~ msgid "Unmatched ) or \\)" #~ msgstr ") ou \\) sem correspondente" #~ msgid "No previous regular expression" #~ msgstr "Nenhuma expressão regular anterior" # Valor exato de 'yesexpr', conforme mensagem do desenvolvedor -- Rafael #~ msgid "^[yY]" #~ msgstr "^[+1SsyY]" # Valor exato de 'noexpr', conforme mensagem do desenvolvedor -- Rafael #~ msgid "^[nN]" #~ msgstr "^[-0nN]" # , c-format #, c-format #~ msgid "setting permissions for %s" #~ msgstr "definindo permissões de %s" # Sinal SIGHUP #~ msgid "Hangup" #~ msgstr "Desconexão" # Sinal SIGINT #~ msgid "Interrupt" #~ msgstr "Interrupção" # Sinal SIGQUIT #~ msgid "Quit" #~ msgstr "Desistência" # Sinal SIGILL #~ msgid "Illegal instruction" #~ msgstr "Instrução ilegal" # AFAIK, o termo em inglês muito utilizado. Aceito sugestões -- Rafael # Sinal SIGTRAP #~ msgid "Trace/breakpoint trap" #~ msgstr "Trap de trace/breakpoint" # Sinal SIGABRT #~ msgid "Aborted" #~ msgstr "Abortado" # Sinal SIGFPE #~ msgid "Floating point exception" #~ msgstr "Exceção de ponto flutuante" # Sinal SIGKILL #~ msgid "Killed" #~ msgstr "Morto" # Sinal SIGBUS #~ msgid "Bus error" #~ msgstr "Erro de barramento" # Sinal SIGSEGV #~ msgid "Segmentation fault" #~ msgstr "Falha de segmentação" # Sinal SIGPIPE #~ msgid "Broken pipe" #~ msgstr "Conexão interrompida" # Sinal SIGALRM #~ msgid "Alarm clock" #~ msgstr "Despertador" # Sinal SIGTERM #~ msgid "Terminated" #~ msgstr "Terminado" # Sinal SIGURG #~ msgid "Urgent I/O condition" #~ msgstr "Condição urgente de E/S" # Sinal SIGSTP #~ msgid "Stopped (signal)" #~ msgstr "Suspenso (sinal)" # Sinal SIGTSTP #~ msgid "Stopped" #~ msgstr "Suspenso" # Sinal SIGCONT #~ msgid "Continued" #~ msgstr "Continuado" # Sinal SIGCHLD #~ msgid "Child exited" #~ msgstr "Processo filho saiu" # Sinal SIGTTIN #~ msgid "Stopped (tty input)" #~ msgstr "Suspenso (entrada tty)" # Sinal SIGTTOU #~ msgid "Stopped (tty output)" #~ msgstr "Suspenso (saída tty)" # Sinal SIGIO #~ msgid "I/O possible" #~ msgstr "E/S possível" # Sinal SIGXCPU #~ msgid "CPU time limit exceeded" #~ msgstr "Tempo na CPU excedido" # Sinal SIGXFSZ #~ msgid "File size limit exceeded" #~ msgstr "Tamanho de arquivo excedido" # Sinal SIGVTALRM #~ msgid "Virtual timer expired" #~ msgstr "Temporizador virtual expirou" # Sinal SIGPROF #~ msgid "Profiling timer expired" #~ msgstr "Temporizador de perfil expirou" #~ msgid "Window changed" #~ msgstr "Janela alterada" #~ msgid "User defined signal 1" #~ msgstr "Sinal 1 definido pelo usuário" #~ msgid "User defined signal 2" #~ msgstr "Sinal 2 definido pelo usuário" #~ msgid "EMT trap" #~ msgstr "Trap de EMT" #~ msgid "Bad system call" #~ msgstr "Chamada de sistema inválida" #~ msgid "Stack fault" #~ msgstr "Falha na pilha" #~ msgid "Information request" #~ msgstr "Requisição de informação" #~ msgid "Power failure" #~ msgstr "Falha de energia" #~ msgid "Resource lost" #~ msgstr "Recurso perdido" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "erro de escrita para um redirecionamento (pipe) ou soquete fechado" # , c-format #~ msgid "cannot create pipe" #~ msgstr "não foi possível criar redirecionamento" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Sinal de tempo real %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Sinal desconhecido %d" #~ msgid "Execution times (seconds)" #~ msgstr "Tempos de execução (segundos)" #~ msgid "CPU user" #~ msgstr "CPU usuário" #~ msgid "CPU system" #~ msgstr "CPU sistema" # Sinal SIGALRM #~ msgid "wall clock" #~ msgstr "relógio de parede" #~ msgid "iconv function not usable" #~ msgstr "função iconv não utilizável" #~ msgid "iconv function not available" #~ msgstr "função iconv não disponível" # , c-format #~ msgid "character out of range" #~ msgstr "caractere fora do intervalo" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "" #~ "não foi possível converter U+%04X para o conjunto de caracteres local" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "" #~ "não foi possível converter U+%04X para o conjunto de caracteres local: %s" #~ msgid "invalid user" #~ msgstr "usuário inválido" #~ msgid "invalid group" #~ msgstr "grupo inválido" #~ msgid "invalid spec" #~ msgstr "especificação inválida" #~ msgid "unable to display error message" #~ msgstr "não foi possível exibir a mensagem de erro" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle falhou" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "não foi possível restaurar descritor de arquivo %d: dup2 falhou" # , c-format #, c-format #~ msgid "%s subprocess" #~ msgstr "subprocesso %s" # , c-format #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "o subprocesso %s recebeu sinal fatal %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "falha ao definir modo texto/binário do descritor de arquivo" #~ msgid "stdin" #~ msgstr "entrada padrão (stdin)" #~ msgid "stdout" #~ msgstr "saída padrão (stdout)" #~ msgid "stderr" #~ msgstr "erro padrão (stderr)" #~ msgid "unknown stream" #~ msgstr "fluxo desconhecido" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "falha ao reabrir %s com modo %s" #~ msgid "string comparison failed" #~ msgstr "a comparação de textos falhou" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Defina LC_ALL='C' para contornar o problema." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Os textos comparados foram %s e %s." #~ msgid "cannot perform formatted output" #~ msgstr "não foi possível fazer a saída formatada" #~ msgid "standard file descriptors" #~ msgstr "descritores de arquivo padrão" # %s%s é hífen e opção, `%s' é o argumento da opção # , c-format #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "argumento inválido para %s%s: \"%s\"" # %s%s é hífen e opção, `%s' é o argumento da opção # , c-format #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "sufixo inválido no argumento para %s%s \"%s\"" # %s%s é hífen e opção, `%s' é o argumento da opção #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "argumento para %s%s \"%s\" é grande demais" #~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n" #~ msgstr "Página do %s: <https://www.gnu.org/software/%s/>\n" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: O parâmetro ARGP_HELP_FMT deve ser positivo" #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: a opção \"--%s\" não permite um argumento\n" # , c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: opção desconhecida \"--%s\"\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: a opção \"-W %s\" não permite um argumento\n" #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: a opção \"-W %s\" exige um argumento\n" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" # , c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: opção inválida -- %c\n" #~ msgid "block size" #~ msgstr "tamanho do bloco" #~ msgid "%s exists but is not a directory" #~ msgstr "%s existe, mas não é um diretório" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "não pode substituir dono e/ou grupo de %s" # , c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "impossível mudar para diretório %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "nao foi possivel obter um grupo e login de um UID numerico " #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Este programa é um software livre, você pode redistribuí-lo e/ou modificá-" #~ "lo\n" #~ "sobre os termos da licença pública geral GNU (GPL - General Public " #~ "License)\n" #~ "publicada pela Free Software Foundation, versão 2 ou posteriores.\n" #~ "\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/quot.sed����������������������������������������������������������������������0000644�0000000�0000000�00000000231�14415562264�012730� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/remove-potcdate.sin�����������������������������������������������������������0000644�0000000�0000000�00000001333�14424520535�015053� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sed script that removes the POT-Creation-Date line in the header entry # from a POT file. # # Copyright (C) 2002, 2020-2023 Free Software Foundation, Inc. # 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. This file is offered as-is, # without any warranty. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ro.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005760�14445132163�012375� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*�����������������1�����5��-���8�����f�����4 �����G �����_ �����} ����� ����� ����� ��9��� ��1��� ��-���P ��)���~ ��%��� ��!��� ����� ����� �� ���& �����4 �����8 ��5���V ����� ����� ��3��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib-4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2022-02-19 23:11+0100 Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org> Language-Team: Romanian <translation-team-ro@lists.sourceforge.net> Language: ro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2); X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 3.0.1 �%s pagina principală: <%s> �”�©�Ajutor general utilizând software GNU: <%s> �Licența GPLv3+: GNU GPL versiunea 3 sau mai mare <%s>. Acesta este software liber: sunteți liber să îl modificați și să îl redistribuiți. NU există NICIO GARANȚIE, în măsura permisă de lege. �Împachetat de %s �Împachetat de %s (%s) �Raportați erorile %s la: %s �Raportați erorile la %s. �Eroare de sistem necunoscută�Argumentele valide sunt:�Scris de %s și %s. �Scris de %s, %s, %s, %s, %s, %s, %s, %s, %s, și alții. �Scris de %s, %s, %s, %s, %s, %s, %s, %s, și %s. �Scris de %s, %s, %s, %s, %s, %s, %s, și %s. �Scris de %s, %s, %s, %s, %s, %s, și %s. �Scris de %s, %s, %s, %s, %s, și %s. �Scris de %s, %s, %s, %s, și %s. �Scris de %s, %s, %s și %s. �Scris de %s, %s și %s. �Scris de %s. �„�argument ambiguu %s pentru %s�întoarcerea la directorul de lucru inițial a eșuat�argument nevalid %s pentru %s�memorie epuizată�nu s-a putut înregistra directorul de lucru curent�����������������a2ps-4.15.5/po-gnulib/ro.po�������������������������������������������������������������������������0000644�0000000�0000000�00000074102�14445132162�012224� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mesajele în limba română pentru pachetul mailutils. # Copyright (C) 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Eugen Hoanca <eugenh@urban-grafx.ro>, 2003. # Traducere făcută de EH, pentru versiunea mailutis 0.4/coreutils 5.2.1. # Notă, R-GC: se pare că în perioada 2000-2005 a făcut parte din suita altor # pachete, înainte de-a deveni un pachet de sine stătător. # Actualizare a mesajelor, de la fișierul „gnulib-4.0.0.2567.pot”. # Actualizare a codării caracteror, la codarea de caractere UTF-8. # Actualizare a diacriticelor de la „cu sedilă” la „cu virgulă”. # Actualizare a algoritmului formelor de plural (de la „două” la „trei”). # NU și a mesajelor traduse (acestea au rămas neschimbate). # Eliminare a mesajelor ce-au dispărut în ultima versiune. # Actualizări realizate de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 15.01.2022. # Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022. # msgid "" msgstr "" "Project-Id-Version: gnulib-4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2022-02-19 23:11+0100\n" "Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n" "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 3.0.1\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "argument nevalid %s pentru %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "argument ambiguu %s pentru %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Argumentele valide sunt:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Eroare de sistem necunoscută" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "memorie epuizată" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "nu s-a putut înregistra directorul de lucru curent" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "întoarcerea la directorul de lucru inițial a eșuat" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "„" #: lib/quotearg.c:355 msgid "'" msgstr "”" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Împachetat de %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Împachetat de %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Licența GPLv3+: GNU GPL versiunea 3 sau mai mare <%s>.\n" "Acesta este software liber: sunteți liber să îl modificați și să îl " "redistribuiți.\n" "NU există NICIO GARANȚIE, în măsura permisă de lege.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Scris de %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Scris de %s și %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Scris de %s, %s și %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Scris de %s, %s, %s\n" "și %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Scris de %s, %s, %s,\n" "%s, și %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Scris de %s, %s, %s,\n" "%s, %s, și %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Scris de %s, %s, %s,\n" "%s, %s, %s, și %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Scris de %s, %s, %s,\n" "%s, %s, %s, %s,\n" "și %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Scris de %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, și %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Scris de %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, și alții.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Raportați erorile la %s.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Raportați erorile %s la: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s pagina principală: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Ajutor general utilizând software GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: valoarea %s este mai mică sau egală cu %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: parametrul ARGP_HELP_FMT necesită o valoare" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Parametru ARGP_HELP_FMT necunoscut" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Gunoi(garbage) în ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumentele obligatorii sau opționale pentru opțiunile lungi sunt de " #~ "asemenea, obligatorii sau opționale pentru oricare dintre opțiunile " #~ "scurte corespunzătoare." #~ msgid "Usage:" #~ msgstr "Utilizare:" #~ msgid " or: " #~ msgstr " sau: " #~ msgid " [OPTION...]" #~ msgstr " [OPȚIUNE...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "" #~ "Încercați «%s --help» sau «%s --usage» pentru mai multe informații.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Raportați erorile la %s.\n" #~ msgid "give this help list" #~ msgstr "afișează această listă de ajutor" #~ msgid "give a short usage message" #~ msgstr "afișează un mesaj scurt de utlizare" #~ msgid "NAME" #~ msgstr "NUME" #~ msgid "set the program name" #~ msgstr "stabilește numele programului" #~ msgid "SECS" #~ msgstr "SECUNDE" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "întrerupe(hang) pentru acest număr de secunde (implicit 3600)" #~ msgid "print program version" #~ msgstr "imprimă versiunea programului" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(EROARE DE PROGRAM) Nici o versiune cunoscută!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Prea multe argumente\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(EROARE DE PROGRAM) Opțiunea ar fi trebuit recunoscută!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u eliberat (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u în memoria tampon (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u în memoria tampon (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u în memoria tampon (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" # R-GC, scrie: # ținînd cont de referința acestui mesaj, și a # următoarelor două # mesaje(lib/bitset/stats.c), # am considerat că traducerea mot-a-mot a # mesajelor(tentantă), nu este cea corectă, # am început să investighez printre # traducerile celorlalte echipe, și cred că am # aflat „dezlegarea misterului”, în traducerea # făcută de Benno Schulenberg din echipa # olandeză: # „histogram van aantal gezette bits” #~ msgid "count log histogram\n" #~ msgstr "histograma numărului seturilor de biți»bitset«\n" #~ msgid "size log histogram\n" #~ msgstr "histograma dimensiunilor seturilor de biți»bitset«\n" #~ msgid "density histogram\n" #~ msgstr "histograma densității seturilor de biți»bitset«\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Statistici set de biți»bitset«:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Cantitatea de execuții = %u\n" #~ msgid "cannot read stats file" #~ msgstr "nu se poate citi fișierul cu statistici" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "dimensiunea fișierului cu statistici, este necorespunzătoare\n" #~ msgid "cannot write stats file" #~ msgstr "nu se poate scrie fișierul cu statistici" #~ msgid "cannot open stats file for writing" #~ msgstr "nu se poate deschide fișierul cu statistici pentru scriere" #~ msgid "program error" #~ msgstr "eroare de program" #~ msgid "stack overflow" #~ msgstr "debordare de stivă" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "nu se poate găsi un director temporar, încercați să stabiliți variabila " #~ "$TMPDIR" # R-GC, scrie: # după ce-a revizat fișierul, DȘ îmi spune: # «→ aici parcă lipsește un „se”, și ar deveni „nu se poate crea...”» # îmi pare rău, mi se făcuse foame de cuvinte.. # :) # - corectare aplicată! #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "nu se poate crea un director temporar utilizând șablonul „%s”" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "nu se poate elimina fișierul temporar %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "nu se poate elimina directorul temporar %s" #~ msgid "error closing file" #~ msgstr "eroare la închiderea fișierului" #~ msgid "write error" #~ msgstr "eroare de scriere" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "se păstrează permisiunile pentru %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "eroare la deschiderea lui %s pentru citire" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "nu se poate deschide fișierul de copie de rezervă %s pentru scriere" #, c-format #~ msgid "error reading %s" #~ msgstr "eroare la citirea din %s" #, c-format #~ msgid "error writing %s" #~ msgstr "eroare la scrierea în %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "eroare după citirea %s" #~ msgid "fdopen() failed" #~ msgstr "fdopen() a eșuat" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "Nu a fost găsit compilatorul C#, încercați să instalați mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "Nu a fost găsită mașina virtuală C#, încercați să instalați mono" #~ msgid "unbalanced [" #~ msgstr "„[” fără pereche" #~ msgid "invalid character class" #~ msgstr "clasă de caractere nevalidă" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "sintaxa de clasă de caractere este [[:spațiu:]], nu [:spațiu]" #~ msgid "unfinished \\ escape" #~ msgstr "eludare » \\ « neterminată" #~ msgid "invalid content of \\{\\}" #~ msgstr "conținut nevalid al \\{\\}" #~ msgid "regular expression too big" #~ msgstr "expresia regulată este prea lungă" #~ msgid "unbalanced (" #~ msgstr "„(” fără pereche" #~ msgid "no syntax specified" #~ msgstr "nu s-a specificat nicio sintaxă" #~ msgid "unbalanced )" #~ msgstr "„)” fără pereche" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "subprocesul %s a eșuat" #~ msgid "regular empty file" #~ msgstr "fișier gol obișnuit" #~ msgid "regular file" #~ msgstr "fișier obișnuit" #~ msgid "directory" #~ msgstr "director" #~ msgid "symbolic link" #~ msgstr "legătură simbolică" #~ msgid "message queue" #~ msgstr "coada de mesaje" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "obiect de memorie partajată" # R-GC, scrie: # investigînd prin: # - http://www.opengroup.org/onlinepubs/000095399/functions/mmap.html # și # - http://www.opengroup.org/austin/papers/posix_faq.html # am ajuns la această traducere; cu o # posibilă variantă: # „obiect de memorie standardizat” # ********* # Ideile sunt binevenite...! #~ msgid "typed memory object" #~ msgstr "obiect de memorie tipizat" #~ msgid "block special file" #~ msgstr "fișier special de blocuri" #~ msgid "character special file" #~ msgstr "fișier special de caractere" #~ msgid "contiguous data" #~ msgstr "date contigue" #~ msgid "fifo" #~ msgstr "primul intrat, primul ieșit(fifo)" # R-GC, scrie: # informații culese de la: # https://en.wikipedia.org/wiki/Unix_file_types#Door (adresă obținută din # comentariul făcut de Rafael Fontenelle, din # echipa braziliană, în fișierul «gnulib-*.pt_BR.po») # și de la: # https://en.wikipedia.org/wiki/Doors_(computing) (adresă obținută prin # amabilitatea lui Jim Meyering, unul din # „băieții” din spatele proiectului «diffutils») #~ msgid "door" #~ msgstr "poartă(de comunicare)" #~ msgid "multiplexed block special file" #~ msgstr "fișier special de blocuri, multiplexat" #~ msgid "multiplexed character special file" #~ msgstr "fișier special de caractere, multiplexat" #~ msgid "multiplexed file" #~ msgstr "fișier multiplexat" #~ msgid "named file" #~ msgstr "fișier numit" #~ msgid "network special file" #~ msgstr "fișier special de rețea" #~ msgid "migrated file with data" #~ msgstr "fișier migrat cu date" #~ msgid "migrated file without data" #~ msgstr "fișier migrat fără date" #~ msgid "port" #~ msgstr "port" #~ msgid "socket" #~ msgstr "soclu" # R-GC, scrie: # am găsit aici: # https://en.wikipedia.org/wiki/Union_mount # date despre «whiteout», folosit de UnionFS #~ msgid "whiteout" #~ msgstr "whiteout" #~ msgid "weird file" #~ msgstr "fișier ciudat" #~ msgid "Address family for hostname not supported" #~ msgstr "Familia de adrese pentru numele de gazdă nu este suportată" #~ msgid "Temporary failure in name resolution" #~ msgstr "Eșec temporar în rezolvarea numelui" #~ msgid "Bad value for ai_flags" #~ msgstr "Valoare greșită pentru ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Eșec nerecuperabil în rezolvarea numelui" #~ msgid "ai_family not supported" #~ msgstr "ai_family nu este suportat" #~ msgid "Memory allocation failure" #~ msgstr "Eșec la alocarea memoriei" #~ msgid "No address associated with hostname" #~ msgstr "Nicio adresă asociată cu numele gazdei" #~ msgid "Name or service not known" #~ msgstr "Nume sau serviciu necunoscut" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Nume de server nesuportat pentru ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype nu este suportat" #~ msgid "System error" #~ msgstr "Eroare de sistem" #~ msgid "Argument buffer too small" #~ msgstr "Memoria tampon pentru argumente este prea mică" #~ msgid "Processing request in progress" #~ msgstr "Procesarea cererii este în curs" #~ msgid "Request canceled" #~ msgstr "Cerere anulată" #~ msgid "Request not canceled" #~ msgstr "Cerere neanulată" #~ msgid "All requests done" #~ msgstr "Toate cererile au fost procesate" # R-GC, scrie: # o altă variantă, ar fi: # „Întrerupt printr-un semnal” # bănuiesc că se referă la un proces sau # un program. # Idei ? #~ msgid "Interrupted by a signal" #~ msgstr "Întrerupt de un semnal" # R-GC, scrie: # după ce-a revizat fișierul, DȘ îmi spune: # «→ ar fi de evitat folosirea lui „e” în loc de „este”» # corecție aplicată!; încă o dată, foamea :) , # de data asta, de litere #~ msgid "Parameter string not correctly encoded" #~ msgstr "Șirul parametrului este codificat greșit" #~ msgid "Unknown error" #~ msgstr "Eroare necunoscută" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: opțiunea „%s%s” este ambiguă\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: opțiunea „%s%s” este ambiguă; posibilități:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: opțiune nerecunoscută „%s%s”\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: opțiunea „%s%s” nu permite un argument\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: opțiunea „%s%s” necesită un argument\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: opțiune nevalidă -- „%c”\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: opțiunea necesită un argument -- „%c”\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "argumentul source_version nu este valid pentru compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "argumentul target_version nu este valid pentru compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "nu s-a putut crea \"%s\"" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "eroare în timpul scrierii fișierului „%s”" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Nu a fost găsit compilatorul Java, încercați să instalați gcj sau " #~ "stabiliți variabila $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Nu a fost găsită mașina virtuală Java, încercați să instalați gij sau " #~ "stabiliți variabila $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "eroare de In/Ieș a subprocesului %s" #, c-format #~ msgid "cannot stat %s" #~ msgstr "nu se poate obține starea lui „%s”" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "nu se pot schimba permisiunile pentru %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "nu se poate crea directorul %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Nu s-a putut deschide „/dev/zero” pentru citire" #~ msgid "creation of reading thread failed" #~ msgstr "crearea firului de citire a eșuat" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "nu se poate configura In/Ieș neblocante la subprocesul %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "comunicarea cu subprocesul %s a eșuat" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "scrierea în subprocesul %s a eșuat" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "citirea din subprocesul %s a eșuat" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "subprocesul %s a terminat cu codul de ieșire %d" #~ msgid "creation of threads failed" #~ msgstr "crearea firelor a eșuat" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "subprocesul %s a terminat cu codul de ieșire %d" #~ msgid "Success" #~ msgstr "Succes" #~ msgid "No match" #~ msgstr "Nicio potrivire" #~ msgid "Invalid regular expression" #~ msgstr "Expresie regulată nevalidă" #~ msgid "Invalid collation character" #~ msgstr "Caracter de colaționare nevalid" #~ msgid "Invalid character class name" #~ msgstr "Nume de clasă de caracter nevalid" #~ msgid "Trailing backslash" #~ msgstr "Bară oblică inversă la sfârșit" #~ msgid "Invalid back reference" #~ msgstr "Referință anterioară nevalidă" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "[, [^, [:, [., sau [= fără pereche" #~ msgid "Unmatched ( or \\(" #~ msgstr "( sau \\( fără pereche" #~ msgid "Unmatched \\{" #~ msgstr "\\{ fără pereche" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Conținut nevalid al \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Sfârșit de interval nevalid" #~ msgid "Memory exhausted" #~ msgstr "Memorie epuizată" #~ msgid "Invalid preceding regular expression" #~ msgstr "Expresie regulată precedentă nevalidă" #~ msgid "Premature end of regular expression" #~ msgstr "Terminare prematură a expresiei regulate" #~ msgid "Regular expression too big" #~ msgstr "Expresie regulată prea lungă" #~ msgid "Unmatched ) or \\)" #~ msgstr ") sau \\) fără pereche" #~ msgid "No previous regular expression" #~ msgstr "Nu există o expresie regulată precedentă" #~ msgid "^[yY]" #~ msgstr "^[dDyY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "se stabilesc permisiunile pentru %s" # R-GC, scrie: # - http://en.wikipedia.org/wiki/SIGHUP # aici, la sfîrșitul articolului, explicația/moti- # vația pentru traducerea aleasă. #~ msgid "Hangup" #~ msgstr "Terminare anormală(Hangup)" #~ msgid "Interrupt" #~ msgstr "Întrerupe" #~ msgid "Quit" #~ msgstr "Termină" #~ msgid "Illegal instruction" #~ msgstr "Instrucțiune ilegală" #~ msgid "Trace/breakpoint trap" #~ msgstr "Capturare punct de întrerupere/traseul(execuției)" #~ msgid "Aborted" #~ msgstr "Renuțare" #~ msgid "Floating point exception" #~ msgstr "Excepție de virgulă mobilă" #~ msgid "Killed" #~ msgstr "Omorît" #~ msgid "Bus error" #~ msgstr "Eroare de magistrală de date(bus)" #~ msgid "Segmentation fault" #~ msgstr "Eroare de segmentare" # R-GC, scrie: # mi s-a părut cea mai bună descriere a # termenilor din mesaj. # - Idei? #~ msgid "Broken pipe" #~ msgstr "Linie de conectare întreruptă" #~ msgid "Alarm clock" #~ msgstr "Ceas cu alarmă" #~ msgid "Terminated" #~ msgstr "Terminat" #~ msgid "Urgent I/O condition" #~ msgstr "Condiție In/Ieș urgentă" #~ msgid "Stopped (signal)" #~ msgstr "Oprit (semnal)" #~ msgid "Stopped" #~ msgstr "Oprit" #~ msgid "Continued" #~ msgstr "Continuare" #~ msgid "Child exited" #~ msgstr "Procesul copil a terminat" #~ msgid "Stopped (tty input)" #~ msgstr "Oprit (intrare tty)" #~ msgid "Stopped (tty output)" #~ msgstr "Oprit (ieșire tty)" #~ msgid "I/O possible" #~ msgstr "In/Ieș posibilă" #~ msgid "CPU time limit exceeded" #~ msgstr "S-a depășit limita de timp CPU" #~ msgid "File size limit exceeded" #~ msgstr "S-a depășit limita de dimensiune a fișierului" #~ msgid "Virtual timer expired" #~ msgstr "Cronometrul virtual a expirat" #~ msgid "Profiling timer expired" #~ msgstr "Cronometrul de creare a profilului a expirat" #~ msgid "Window changed" #~ msgstr "Fereastra s-a schimbat" #~ msgid "User defined signal 1" #~ msgstr "Semnalul »1« definit de utilizator" #~ msgid "User defined signal 2" #~ msgstr "Semnalul »2« definit de utilizator" # R-GC, scrie: # Traducere „copiată” de la italieni, cu # explicația aferentă: # http://en.wikipedia.org/wiki/SIGEMT #~ msgid "EMT trap" #~ msgstr "Detectare EMT" #~ msgid "Bad system call" #~ msgstr "Apel de sistem greșit" #~ msgid "Stack fault" #~ msgstr "Eroare de stivă" #~ msgid "Information request" #~ msgstr "Cerere de informații" #~ msgid "Power failure" #~ msgstr "Pană de curent" #~ msgid "Resource lost" #~ msgstr "Resursă pierdută" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "" #~ "eroare de scriere într-o linie de conectare închisă sau într-un soclu " #~ "închis" #~ msgid "cannot create pipe" #~ msgstr "nu se poate crea linia de conectare" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Semnal în timp real %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Semnal necunoscut %d" #~ msgid "Execution times (seconds)" #~ msgstr "Timpi de execuție (secunde)" #~ msgid "CPU user" #~ msgstr "CPU utilizator" #~ msgid "CPU system" #~ msgstr "CPU sistem" # R-GC, scrie: # traducere inspirată în munca echipelor # italiene și olandeze; traducerea mot-a-mot: # „ceas de perete”, nu mă convingea, Acum, # realizez că intenția autorului era de: # ceas etalon(aproximativ ca GMT). #~ msgid "wall clock" #~ msgstr "timpul real" #~ msgid "iconv function not usable" #~ msgstr "funcție «iconv» inutilizabilă" #~ msgid "iconv function not available" #~ msgstr "funcție «iconv» indisponibilă" #~ msgid "character out of range" #~ msgstr "caracter în afara intervalului" # R-GC, scrie: # varianta inițială, a traducerii acestui mesaj, # era: # „"U+%04X nu poate fi convertit în setul de caractere local” #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "nu se poate converti U+%04X în setul de caractere local" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "nu se poate converti U+%04X în setul de caractere local: %s" #~ msgid "invalid user" #~ msgstr "utilizator nevalid" #~ msgid "invalid group" #~ msgstr "grup nevalid" #~ msgid "invalid spec" #~ msgstr "specificație nevalidă" #~ msgid "unable to display error message" #~ msgstr "imposibil de afișat mesajul de eroare" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle a eșuat" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "nu se poate restaura fd %d: dup2 a eșuat" #, c-format #~ msgid "%s subprocess" #~ msgstr "subprocesul %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "subprocesul %s a primit semnalul fatal %d" # R_GC, scrie: # altă posibilă traducere a mesajului, ar fi: # „nu s-a putut stabili modul de text/binar al descriptorului de fișier” # Opinii/Idei ? # =========================== # La sugestia făcută de DȘ, după revizarea # fișierului, a rămas mesaj valabil, traducerea # inițială a mesajului: # „nu s-a putut stabili descriptorul de fișier în modul text/binar” #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "nu s-a putut stabili descriptorul de fișier în modul text/binar" #~ msgid "stdin" #~ msgstr "stdin»intrarea standard«" #~ msgid "stdout" #~ msgstr "stdout»ieșirea standard«" #~ msgid "stderr" #~ msgstr "stderr»ieșirea standard de erori«" #~ msgid "unknown stream" #~ msgstr "flux necunoscut" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "nu s-a putut redeschide %s în modul %s" #~ msgid "string comparison failed" #~ msgstr "compararea șirurilor a eșuat" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Stabiliți LC_ALL='C' pentru a rezolva problema." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Șirurile comparate au fost %s și %s." #~ msgid "cannot perform formatted output" #~ msgstr "nu se poate afișa ieșirea formatată" #~ msgid "standard file descriptors" #~ msgstr "descriptoare de fișier standard" # R-GC, scrie: # traducerea acestui mesaj, și a celor două # mesaje următoare, a fost inspirată de # traducerile făcute de echipa italiană și cea # spaniolă. # Colegul de TP al echipei italiene, motivează # astfel traducerea făcută: # ========================= # „(ndt)»italian« # quello che viene sostituito pare sia: # * il primo, hypens (con valore '--') # * il secondo, option # * il terzo, arg # quindi qualche cosa del genere: # invalid --option argument 'arg' # # # (altre idee sono benvenute!)” #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "argumentul „%3$s” al %1$s%2$s nu este valid" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "sufixul din argumentul „%3$s” al %1$s%2$s nu este valid" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "argumentul „%3$s” al %1$s%2$s este prea lung" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ru.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000007071�14445132163�012400� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*���������+��������'�����*��E���-��)��s����� ����� ��C��� ��=��� ��6���N �� ��� ��+��� ��U��� ��H���( ��C���q ��?��� ��;��� ��7���1 ��3���i ��/��� ��#��� ����� ��8��� ��d���- ��.��� ��#��� ��S��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-21 18:46+0300 Last-Translator: Yuri Kozlov <yuray@komyakino.ru> Language-Team: Russian <gnu@d07.ru> Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Lokalize 2.0 �Домашняя страница %s: <%s> �»�©�Справка по работе с программами GNU: <%s> �Лицензия GPLv3+: GNU GPL версии 3 или новее <%s>. Это свободное ПО: вы можете изменять и распространять его. Нет НИКАКИХ ГАРАНТИЙ в пределах действующего законодательства. �Упакован %s �Упакован %s (%s) �Об ошибках в %s сообщайте по адресу: %s �Об ошибках сообщайте по адресу: %s �Неизвестная системная ошибка�Верные аргументы:�Авторы программы: %s и %s. �Авторы программы: %s, %s, %s, %s, %s, %s, %s, %s, %s и другие. �Авторы программы: %s, %s, %s, %s, %s, %s, %s, %s и %s. �Авторы программы: %s, %s, %s, %s, %s, %s, %s и %s. �Авторы программы: %s, %s, %s, %s, %s, %s и %s. �Авторы программы: %s, %s, %s, %s, %s и %s. �Авторы программы: %s, %s, %s, %s и %s. �Авторы программы: %s, %s, %s и %s. �Авторы программы: %s, %s и %s. �Автор программы: %s. �«�неоднозначный аргумент %s для %s�не удалось вернуться в первоначальный рабочий каталог�неверный аргумент %s для %s�закончилась память�не удалось запомнить текущий рабочий каталог������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/ru.po�������������������������������������������������������������������������0000644�0000000�0000000�00000077125�14445132162�012242� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of gnulib-2.0.0.3462.e9796.ru.po to Russian # Copyright (C) 2005, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # Sergey Poznyakoff <gray@gnu.org>, 2003,2004,2005. # Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011, 2019. msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-21 18:46+0300\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" "Language-Team: Russian <gnu@d07.ru>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 2.0\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "неверный аргумент %s для %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "неоднозначный аргумент %s для %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Верные аргументы:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Неизвестная системная ошибка" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "закончилась память" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "не удалось запомнить текущий рабочий каталог" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "не удалось вернуться в первоначальный рабочий каталог" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "«" #: lib/quotearg.c:355 msgid "'" msgstr "»" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Упакован %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Упакован %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Лицензия GPLv3+: GNU GPL версии 3 или новее <%s>.\n" "Это свободное ПО: вы можете изменять и распространять его.\n" "Нет НИКАКИХ ГАРАНТИЙ в пределах действующего законодательства.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Автор программы: %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Авторы программы: %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Авторы программы: %s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Авторы программы: %s, %s, %s\n" "и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Авторы программы: %s, %s, %s,\n" "%s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Авторы программы: %s, %s, %s,\n" "%s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Авторы программы: %s, %s, %s,\n" "%s, %s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Авторы программы: %s, %s, %s,\n" "%s, %s, %s, %s\n" "и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Авторы программы: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Авторы программы: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s и другие.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Об ошибках сообщайте по адресу: %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Об ошибках в %s сообщайте по адресу: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Справка по работе с программами GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: значение %s меньше или равно %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: параметр ARGP_HELP_FMT требует значения" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: неизвестный параметр ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Мусор в ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Обязательные или необязательные аргументы к длинным именам параметров " #~ "остаются таковыми и к соответствующим коротким параметрам." #~ msgid "Usage:" #~ msgstr "Использование:" #~ msgid " or: " #~ msgstr " или: " #~ msgid " [OPTION...]" #~ msgstr " [ПАРАМЕТР...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "" #~ "Попробуйте «%s --help» или «%s --usage» для получения более подробного " #~ "описания.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Об ошибках сообщай по адресу %s.\n" #~ msgid "give this help list" #~ msgstr "показать эту справку" #~ msgid "give a short usage message" #~ msgstr "показать короткую справку по использованию" #~ msgid "NAME" #~ msgstr "ИМЯ" #~ msgid "set the program name" #~ msgstr "задать имя программы" #~ msgid "SECS" #~ msgstr "СЕКУНД" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "остановиться на заданное число СЕКУНД (по умолчанию 3600)" #~ msgid "print program version" #~ msgstr "показать номер версии программы" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ОШИБКА ПРОГРАММЫ) Версия неизвестна!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: слишком много аргументов\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ОШИБКА ПРОГРАММЫ) Параметр должен был быть распознан!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u освобождено (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u кэшировано (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u кэшировано (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u кэшировано (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "количественная логарифмическая гистограмма\n" #~ msgid "size log histogram\n" #~ msgstr "размерная логарифмическая гистограмма\n" #~ msgid "density histogram\n" #~ msgstr "гистограмма плотности\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Статистика bitset:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Накопленных запусков = %u\n" #~ msgid "cannot read stats file" #~ msgstr "невозможно прочитать файл stats" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "некорректный размер файла stats\n" #~ msgid "cannot write stats file" #~ msgstr "невозможно записать файл stats" #~ msgid "cannot open stats file for writing" #~ msgstr "невозможно открыть файл stats для записи" #~ msgid "program error" #~ msgstr "программная ошибка" #~ msgid "stack overflow" #~ msgstr "переполнение стека" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "не удалось найти временный каталог, попробуйте задать $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "не удалось создать временный каталог с помощью шаблона «%s»" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "не удалось удалить временный файл %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "не удалось удалить временный каталог %s" #~ msgid "error closing file" #~ msgstr "ошибка закрытия файла" #~ msgid "write error" #~ msgstr "ошибка записи" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "сохраняются права доступа для %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "ошибка при открытии файла %s для чтения" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "не удалось открыть файл резервной копии %s для записи" #, c-format #~ msgid "error reading %s" #~ msgstr "ошибка чтения %s" #, c-format #~ msgid "error writing %s" #~ msgstr "ошибка записи %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "ошибка после чтения %s" #~ msgid "fdopen() failed" #~ msgstr "ошибка при выполнении fdopen()" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "Не найден компилятор C#, попробуйте установить mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "Не найдена виртуальная машина C#, попробуйте установить mono" #~ msgid "unbalanced [" #~ msgstr "несбалансированная [" #~ msgid "invalid character class" #~ msgstr "неправильный класс символов" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "синтаксис класса символов: [[:space:]], а не [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "незавершённая \\ экранирующая последовательность" #~ msgid "invalid content of \\{\\}" #~ msgstr "неправильное содержимое в \\{\\}" #~ msgid "regular expression too big" #~ msgstr "регулярное выражение слишком большое" #~ msgid "unbalanced (" #~ msgstr "несбалансированная (" #~ msgid "no syntax specified" #~ msgstr "не указан синтаксис" #~ msgid "unbalanced )" #~ msgstr "несбалансированная )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "подпроцесс %s завершился с ошибкой" #~ msgid "regular empty file" #~ msgstr "пустой обычный файл" #~ msgid "regular file" #~ msgstr "обычный файл" #~ msgid "directory" #~ msgstr "каталог" #~ msgid "symbolic link" #~ msgstr "символьная ссылка" #~ msgid "message queue" #~ msgstr "очередь сообщений" #~ msgid "semaphore" #~ msgstr "семафор" #~ msgid "shared memory object" #~ msgstr "объект общей памяти" #~ msgid "typed memory object" #~ msgstr "объект типизированной памяти" #~ msgid "block special file" #~ msgstr "блочный специальный файл" #~ msgid "character special file" #~ msgstr "символьный специальный файл" #~ msgid "contiguous data" #~ msgstr "непрерывные данные" #~ msgid "fifo" #~ msgstr "файл-очередь" #~ msgid "door" #~ msgstr "дверь" #~ msgid "multiplexed block special file" #~ msgstr "мультиплексный блочный специальный файл" #~ msgid "multiplexed character special file" #~ msgstr "мультиплексный символьный специальный файл" #~ msgid "multiplexed file" #~ msgstr "мультиплексный файл" #~ msgid "named file" #~ msgstr "именованный файл" #~ msgid "network special file" #~ msgstr "сетевой специальный файл" #~ msgid "migrated file with data" #~ msgstr "переносной файл с данными" #~ msgid "migrated file without data" #~ msgstr "переносной файл без данных" #~ msgid "port" #~ msgstr "порт" #~ msgid "socket" #~ msgstr "сокет" #~ msgid "whiteout" #~ msgstr "замазка" #~ msgid "weird file" #~ msgstr "странный файл" #~ msgid "Address family for hostname not supported" #~ msgstr "Адресное семейство не поддерживается для имени узла" #~ msgid "Temporary failure in name resolution" #~ msgstr "Временная ошибка при определении имени" #~ msgid "Bad value for ai_flags" #~ msgstr "Неверное значение для ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Невосстановимая ошибка при определении имени" #~ msgid "ai_family not supported" #~ msgstr "ai_family не поддерживается" #~ msgid "Memory allocation failure" #~ msgstr "Ошибка при выделении памяти" #~ msgid "No address associated with hostname" #~ msgstr "С именем узла не связано ни одного адреса" #~ msgid "Name or service not known" #~ msgstr "Неизвестное имя или служба" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname не поддерживается для ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype не поддерживается" #~ msgid "System error" #~ msgstr "Системная ошибка" #~ msgid "Argument buffer too small" #~ msgstr "Слишком маленький буфер, указанный в аргументе" #~ msgid "Processing request in progress" #~ msgstr "Выполняется обработка запроса" #~ msgid "Request canceled" #~ msgstr "Запрос отменён" #~ msgid "Request not canceled" #~ msgstr "Запрос не отменён" #~ msgid "All requests done" #~ msgstr "Все запросы выполнены" #~ msgid "Interrupted by a signal" #~ msgstr "Прервано по сигналу" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Строковый параметр неправильно закодирован" #~ msgid "Unknown error" #~ msgstr "Неизвестная ошибка" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: двусмысленный параметр «%s%s»\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: двусмысленный параметр «%s%s»; возможные варианты:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: нераспознанный параметр «%s%s»\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: для параметра «%s%s» нельзя использовать аргумент\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: для параметра «%s%s» требуется аргумент\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: неправильный параметр -- «%c»\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: для параметра требуется аргумент -- «%c»\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "неверный аргумент source_version для compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "неверный аргумент target_version для compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "не удалось создать «%s»" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "ошибка записи в файл «%s»" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Не найден компилятор Java, попробуйте установить gcj или задать $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Не найдена виртуальная машина Java, попробуйте установить gcj или задать " #~ "$JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "ошибка вв/вывода подпроцесса %s" #, c-format #~ msgid "cannot stat %s" #~ msgstr "не удалось выполнить stat для %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "невозможно изменить права доступа %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "невозможно создать каталог %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Не удалось открыть /dev/zero на чтение" #~ msgid "creation of reading thread failed" #~ msgstr "не удалось создать нить для чтения" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "не удалось настроить неблокированный ввод-вывод в подпроцессе %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "не удалось связаться с подпроцессом %s" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "не удалось записать в подпроцесс %s" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "не удалось прочитать из подпроцесса %s" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "подпроцесс %s завершился с кодом выхода %d" #~ msgid "creation of threads failed" #~ msgstr "не удалось создать нити" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "подпроцесс %s завершился с кодом выхода %d" #~ msgid "Success" #~ msgstr "Успешно" #~ msgid "No match" #~ msgstr "Нет совпадений" #~ msgid "Invalid regular expression" #~ msgstr "Неверное регулярное выражение" #~ msgid "Invalid collation character" #~ msgstr "Неверный символ сравнения" #~ msgid "Invalid character class name" #~ msgstr "Неверное имя класса символов" #~ msgid "Trailing backslash" #~ msgstr "Конечная обратная косая черта" #~ msgid "Invalid back reference" #~ msgstr "Неверная обратная ссылка" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Непарная [, [^, [:, [. или [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "Непарная ( или \\(" #~ msgid "Unmatched \\{" #~ msgstr "Непарная \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Недопустимое содержимое в \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Неверный конец диапазона" #~ msgid "Memory exhausted" #~ msgstr "Закончилась память" #~ msgid "Invalid preceding regular expression" #~ msgstr "Недопустимое предшествующее регулярное выражение" #~ msgid "Premature end of regular expression" #~ msgstr "Преждевременное завершение регулярного выражения" #~ msgid "Regular expression too big" #~ msgstr "Слишком большое регулярное выражение" #~ msgid "Unmatched ) or \\)" #~ msgstr "Непарная ) или \\)" #~ msgid "No previous regular expression" #~ msgstr "Отсутствует предыдущее регулярное выражение" #~ msgid "^[yY]" #~ msgstr "^[ДдYy]" #~ msgid "^[nN]" #~ msgstr "^[НнNn]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "задание прав доступа для %s" #~ msgid "Hangup" #~ msgstr "Обрыв терминальной линии" #~ msgid "Interrupt" #~ msgstr "Прерывание" #~ msgid "Quit" #~ msgstr "Аварийное прерывание" #~ msgid "Illegal instruction" #~ msgstr "Недопустимая инструкция" #~ msgid "Trace/breakpoint trap" #~ msgstr "Прерывание на контрольной точке" #~ msgid "Aborted" #~ msgstr "Прервано" #~ msgid "Floating point exception" #~ msgstr "Ошибка операции с плавающей точкой" #~ msgid "Killed" #~ msgstr "Уничтожение" #~ msgid "Bus error" #~ msgstr "Ошибка шины" #~ msgid "Segmentation fault" #~ msgstr "Нарушение сегментирования" #~ msgid "Broken pipe" #~ msgstr "Обрыв канала" #~ msgid "Alarm clock" #~ msgstr "Сигнал по таймеру" #~ msgid "Terminated" #~ msgstr "Завершение" #~ msgid "Urgent I/O condition" #~ msgstr "Срочная операция ввода-вывода" #~ msgid "Stopped (signal)" #~ msgstr "Останов (сигнал)" #~ msgid "Stopped" #~ msgstr "Останов" #~ msgid "Continued" #~ msgstr "Возобновление" #~ msgid "Child exited" #~ msgstr "Потомок завершил работу" #~ msgid "Stopped (tty input)" #~ msgstr "Останов (ввод с терминала)" #~ msgid "Stopped (tty output)" #~ msgstr "Останов (вывод с терминала)" #~ msgid "I/O possible" #~ msgstr "Возможен ввод-вывод" #~ msgid "CPU time limit exceeded" #~ msgstr "Превышен предел по процессорному времени" #~ msgid "File size limit exceeded" #~ msgstr "Превышен предел размера файла" #~ msgid "Virtual timer expired" #~ msgstr "Виртуальное время истекло" #~ msgid "Profiling timer expired" #~ msgstr "Время профилирования истекло" #~ msgid "Window changed" #~ msgstr "Окно изменено" #~ msgid "User defined signal 1" #~ msgstr "Определяемый пользователем сигнал 1" #~ msgid "User defined signal 2" #~ msgstr "Определяемый пользователем сигнал 2" #~ msgid "EMT trap" #~ msgstr "Ловушка EMT" #~ msgid "Bad system call" #~ msgstr "Неправильный системный вызов" #~ msgid "Stack fault" #~ msgstr "Ошибка работы со стеком" #~ msgid "Information request" #~ msgstr "Запрос информации" #~ msgid "Power failure" #~ msgstr "Отказ питания" #~ msgid "Resource lost" #~ msgstr "Ресурс потерян" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "ошибка записи в закрытый канал или сокет" #~ msgid "cannot create pipe" #~ msgstr "не удалось создать канал" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Сигнал реального времени %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Неизвестный сигнал %d" #~ msgid "Execution times (seconds)" #~ msgstr "Время выполнения (секунд)" #~ msgid "CPU user" #~ msgstr "пользовательское время на ЦП" #~ msgid "CPU system" #~ msgstr "системное время на ЦП" #~ msgid "wall clock" #~ msgstr "настенные часы" #~ msgid "iconv function not usable" #~ msgstr "функция iconv неприменима" #~ msgid "iconv function not available" #~ msgstr "функция iconv недоступна" #~ msgid "character out of range" #~ msgstr "символ вне допустимого диапазона" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "невозможно преобразовать U+%04X в локальную кодировку" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "невозможно преобразовать U+%04X в локальную кодировку: %s" #~ msgid "invalid user" #~ msgstr "неверный пользователь" #~ msgid "invalid group" #~ msgstr "неверная группа" #~ msgid "invalid spec" #~ msgstr "неверный spec" #~ msgid "unable to display error message" #~ msgstr "невозможно показать сообщение об ошибке" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle завершилась неудачно" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "не удалось восстановить fd %d: dup2 завершилась неудачно" #, c-format #~ msgid "%s subprocess" #~ msgstr "подпроцесс %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "подпроцесс %s получил сигнал завершения %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "" #~ "не удалось изменить текстовый/двоичный режим у файлового дескриптора" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "неизвестный поток" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "не удалось повторно открыть %s в режиме %s" #~ msgid "string comparison failed" #~ msgstr "сравнение строк завершилось неудачно" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Чтобы обойти эту проблему, установите LC_ALL='C'." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Сравнивались строки %s %s." #~ msgid "cannot perform formatted output" #~ msgstr "невозможно выполнить форматированный вывод" #~ msgid "standard file descriptors" #~ msgstr "стандартные файловые дескрипторы" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "неверный аргумент %s%s в «%s»" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "недопустимый суффикс в аргументе %s%s для «%s»" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "аргумент %s%s слишком велик для «%s»" #~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n" #~ msgstr "Домашняя страница %s: <https://www.gnu.org/software/%s/>\n" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: значение параметра ARGP_HELP_FMT должно быть положительным" #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: для параметра «--%s» аргумент не разрешён\n" #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: нераспознанный параметр «--%s»\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: у параметра «-W %s» не может быть аргумента\n" #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: для параметра «-W %s» требуется аргумент\n" #~ msgid "Franc,ois Pinard" #~ msgstr "Френсис Пинард (Franc,ois Pinard)" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/rw.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000001034�14445132163�012373� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,������<�������P������Q�����S���������������������������'�Project-Id-Version: mailutils 0.6 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2005-04-04 10:55-0700 Last-Translator: Steven Michael Murphy <murf@e-tools.com> Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net> Language: rw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); �'�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/rw.po�������������������������������������������������������������������������0000644�0000000�0000000�00000036066�14445132162�012243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Kinyarwanda translations for mailutils package. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the mailutils package. # Steve Murphy <murf@e-tools.com>, 2005. # Steve performed initial rough translation from compendium built from translations provided by the following translators: # Philibert Ndandali <ndandali@yahoo.fr>, 2005. # Viateur MUGENZI <muvia1@yahoo.fr>, 2005. # Noëlla Mupole <s24211045@tuks.co.za>, 2005. # Carole Karema <karemacarole@hotmail.com>, 2005. # JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005. # Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005. # Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005. # Antoine Bigirimana <antoine@e-tools.com>, 2005. # msgid "" msgstr "" "Project-Id-Version: mailutils 0.6\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2005-04-04 10:55-0700\n" "Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n" "Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n" "Language: rw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/argmatch.c:145 #, fuzzy, c-format msgid "invalid argument %s for %s" msgstr "Sibyo kugirango" #: lib/argmatch.c:146 #, fuzzy, c-format msgid "ambiguous argument %s for %s" msgstr "kugirango" #: lib/argmatch.c:165 lib/argmatch.h:237 #, fuzzy msgid "Valid arguments are:" msgstr "ingingo" #: lib/error.c:193 #, fuzzy msgid "Unknown system error" msgstr "Sisitemu Ikosa" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 #, fuzzy msgid "memory exhausted" msgstr "Ububiko" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Kuri Icyabitswe KIGEZWEHO bushyinguro" #: lib/openat-die.c:57 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Byanze Kuri Garuka Kuri bushyinguro" # basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 #, fuzzy msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "ku" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "ku Na" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "ku Na" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "ku Na" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "ku Na" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "ku Na" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "ku Na" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "ku Na" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "ku Na" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "ku Na Ibindi" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "Kuri" #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "Kuri" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, fuzzy, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "" #~ "%.*Project- Id- Version: basctl\n" #~ "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" #~ "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" #~ "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" #~ "Content- Type: text/ plain; charset= UTF- 8\n" #~ "Content- Transfer- Encoding: 8bit\n" #~ "X- Generator: KBabel 1. 0\n" #~ "." #, fuzzy, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "" #~ "%.*Project- Id- Version: basctl\n" #~ "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" #~ "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" #~ "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" #~ "Content- Type: text/ plain; charset= UTF- 8\n" #~ "Content- Transfer- Encoding: 8bit\n" #~ "X- Generator: KBabel 1. 0\n" #~ "." #, fuzzy, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "in" #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Cyangwa Bitari ngombwa ingingo Kuri Amahitamo Cyangwa Bitari ngombwa " #~ "kugirango Amahitamo" #~ msgid "Usage:" #~ msgstr "Ikoresha:" #, fuzzy #~ msgid " or: " #~ msgstr "Cyangwa" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Cyangwa kugirango Birenzeho Ibisobanuro" #, fuzzy #~ msgid "Give this help list" #~ msgstr "iyi Ifashayobora Urutonde" #, fuzzy #~ msgid "Give a short usage message" #~ msgstr "a Ikoresha: Ubutumwa" #, fuzzy #~ msgid "NAME" #~ msgstr "Izina" #, fuzzy #~ msgid "Set the program name" #~ msgstr "i Porogaramu Izina:" # offmgr/source\offapp\dialog\optgdlg.src:OFA_TP_MISC.FT_HELPAGENT_TIME_UNIT.text #, fuzzy #~ msgid "SECS" #~ msgstr "amasogonda" #, fuzzy #~ msgid "Hang for SECS seconds (default 3600)" #~ msgstr "kugirango amasogonda Mburabuzi" #, fuzzy #~ msgid "Print program version" #~ msgstr "Porogaramu Verisiyo" #, fuzzy #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(Verisiyo" #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "ingingo" #, fuzzy #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(Verisiyo" # 4952 #, fuzzy #~ msgid "program error" #~ msgstr "Ikosa ryo mu Isoma" # svtools/source\misc\errtxt.src:RID_ERRHDL.ERRCODE_CLASS_WRITE.text #, fuzzy #~ msgid "write error" #~ msgstr "Kwandika ikosa" #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "Gufungura kugirango" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "Gufungura kugirango" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "Ikosa" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "Ikosa" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "Ikosa" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "Gufungura Byanze" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s:Byanze" #, fuzzy #~ msgid "regular empty file" #~ msgstr "Ibisanzwe ubusa IDOSIYE" #, fuzzy #~ msgid "regular file" #~ msgstr "Ibisanzwe IDOSIYE" # svtools/source\dialogs\filedlg2.src:STR_FILEDLG_DIR.text #, fuzzy #~ msgid "directory" #~ msgstr "Ububiko" #, fuzzy #~ msgid "block special file" #~ msgstr "Funga Bidasanzwe IDOSIYE" #, fuzzy #~ msgid "character special file" #~ msgstr "Inyuguti Bidasanzwe IDOSIYE" #, fuzzy #~ msgid "symbolic link" #~ msgstr "Ihuza" #, fuzzy #~ msgid "message queue" #~ msgstr "Ubutumwa Umurongo" #, fuzzy #~ msgid "shared memory object" #~ msgstr "Ububiko Igikoresho" #, fuzzy #~ msgid "typed memory object" #~ msgstr "Ububiko Igikoresho" #, fuzzy #~ msgid "weird file" #~ msgstr "IDOSIYE" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "Idosiye OYA" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "Idosiye OYA" #, fuzzy #~ msgid "Memory allocation failure" #~ msgstr "Byanze" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "Idosiye OYA" # svtools/source\misc\errtxt.src:RID_ERRHDL.ERRCODE_CLASS_WRITE.text #, fuzzy #~ msgid "System error" #~ msgstr "Kwandika ikosa" #, fuzzy #~ msgid "Request not canceled" #~ msgstr "Ikintu OYA Byabonetse" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Sisitemu Ikosa" #, fuzzy, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s:Ihitamo ni" #, fuzzy, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s:Ihitamo Kwemerera" #, fuzzy, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s:Ihitamo Kwemerera" #, fuzzy, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s:Ihitamo" #, fuzzy, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s:Ihitamo" #, fuzzy, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s:Ihitamo" #, fuzzy, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s:Ihitamo" #, fuzzy, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s:Sibyo Ihitamo" #, fuzzy, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s:Ihitamo" #, fuzzy, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s:Ihitamo ni" #, fuzzy, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s:Ihitamo Kwemerera" #, fuzzy #~ msgid "block size" #~ msgstr "Funga Ingano" #, fuzzy, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%sni OYA a bushyinguro" #, fuzzy, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "Guhindura>> Na Cyangwa Itsinda Bya" #, fuzzy, c-format #~ msgid "cannot create directory %s" #~ msgstr "Kurema bushyinguro" #, fuzzy, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "Kuri bushyinguro" #, fuzzy, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "Guhindura>> Uruhushya Bya" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s:Byanze Kuri Gufungura kugirango" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "Kurema Ihuza" #~ msgid "Success" #~ msgstr "Ibyatunganye" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s:Sibyo Ibisanzwe imvugo" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "Sibyo Inyuguti ishuri" #, fuzzy #~ msgid "Invalid back reference" #~ msgstr "Umubare utari wo" #, fuzzy #~ msgid "Invalid range end" #~ msgstr "Ipaji Urutonde" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "Ububiko" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s:Sibyo Ibisanzwe imvugo" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "Ikosa in Ibisanzwe imvugo Gushaka" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s:Sibyo Ibisanzwe imvugo" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "Ikosa in Ibisanzwe imvugo Gushaka" #, fuzzy #~ msgid "iconv function not usable" #~ msgstr "Umumaro OYA" #, fuzzy #~ msgid "iconv function not available" #~ msgstr "Umumaro OYA Bihari" #, fuzzy #~ msgid "character out of range" #~ msgstr "Inyuguti Inyuma Bya Urutonde" #, fuzzy, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "GUHINDURA U Kuri Inyuguti Gushyiraho" #, fuzzy, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "GUHINDURA U Kuri Inyuguti Gushyiraho" #, fuzzy #~ msgid "invalid user" #~ msgstr "Sibyo Ukoresha:" #, fuzzy #~ msgid "invalid group" #~ msgstr "Sibyo Itsinda" #, fuzzy #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "Kubona i Ifashayinjira Itsinda Bya a Bikurikije umubare" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Porogaramu ni Kigenga Na Cyangwa i Bya i Nka Verisiyo 2. Cyangwa ku " #~ "Ihitamo Verisiyo" #, fuzzy #~ msgid "string comparison failed" #~ msgstr "Ikurikiranyanyuguti Byanze" #, fuzzy #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Kuri Akazi i" #, fuzzy, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Ikurikiranyanyuguti Na" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/sk.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000001350�14445132163�012361� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������T��� �������������������������������������������������������������������� �����������������������������������������������������'�Unknown system error�Valid arguments are:�Written by %s. �`�memory exhausted�Project-Id-Version: textutils 2.0.14 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2001-06-08 22:10 +02:00 Last-Translator: Stanislav Meduna <stano@trillian.eunet.sk> Language-Team: Slovak <sk-i18n@rak.isternet.sk> Language: sk MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. �'�Neznma systmov chyba�Platn argumenty s:�Napsal %s. �`�vyerpan pam�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/sk.po�������������������������������������������������������������������������0000644�0000000�0000000�00000032552�14445132162�012224� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Slovak translations for GNU textutils # Copyright (C) 1996 Free Software Foundation, Inc. # Miroslav Vasko <vasko@debian.cz>, 1999 # msgid "" msgstr "" "Project-Id-Version: textutils 2.0.14\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2001-06-08 22:10 +02:00\n" "Last-Translator: Stanislav Meduna <stano@trillian.eunet.sk>\n" "Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/argmatch.c:145 #, fuzzy, c-format msgid "invalid argument %s for %s" msgstr "chybn argument %s pre `%s'" #: lib/argmatch.c:146 #, fuzzy, c-format msgid "ambiguous argument %s for %s" msgstr "nejednoznan argument %s pre `%s'" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Platn argumenty s:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Neznma systmov chyba" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "vyerpan pam" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "nie je mon vytvori adresr %s" #: lib/openat-die.c:57 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "nie je mon vytvori adresr %s" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, fuzzy, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "Napsal %s.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" " Chyby v programe oznamujte na adrese <bug-textutils@gnu.org> (iba\n" "anglicky), pripomienky k prekladu zasielajte na adresu <sk@li.org> " "(slovensky)." #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" " Chyby v programe oznamujte na adrese <bug-textutils@gnu.org> (iba\n" "anglicky), pripomienky k prekladu zasielajte na adresu <sk@li.org> " "(slovensky)." #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Pouitie: %s [PREPNA] [SBOR]...\n" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Viac informci zskate prkazom `%s --help'.\n" #, fuzzy #~ msgid "Print program version" #~ msgstr "chyba pri tan" #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "prli vea argumentov" #, fuzzy #~ msgid "program error" #~ msgstr "chyba pri tan" #~ msgid "write error" #~ msgstr "chyba pri zpise" #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "nie je mon otvori %s pre tanie" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "nie je mon otvori %s pre tanie" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "chyba pri tan %s" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "chyba pri zpise %s" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "chyba pri tan %s" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "zlyhalo otvorenie" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: chybn vzor" #, fuzzy #~ msgid "regular empty file" #~ msgstr "zlyhalo tanie" #, fuzzy #~ msgid "regular file" #~ msgstr "zlyhalo tanie" #, fuzzy #~ msgid "directory" #~ msgstr "Adresr: " #, fuzzy #~ msgid "block special file" #~ msgstr "vekos bloku" #, fuzzy #~ msgid "character special file" #~ msgstr "pozcia znaku je nula" #, fuzzy #~ msgid "symbolic link" #~ msgstr "ioctl na `%s' nie je mon vykona" #, fuzzy #~ msgid "weird file" #~ msgstr "zlyhalo tanie" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "tento systm nepodporuje rry" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "tento systm nepodporuje rry" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "tento systm nepodporuje rry" #, fuzzy #~ msgid "System error" #~ msgstr "chyba pri zpise" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Neznma systmov chyba" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: voba `%s' nie je jednoznan\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: prepna `--%s' nepovouje argument\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: prepna `%c%s' nepovouje argument\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: prepna `%s' vyaduje argument\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: neznmy prepna `--%s'\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: neznmy prepna `%c%s'\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: nepovolen prepna -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: chybn prepna -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: prepna vyaduje argument -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: prepna `-W %s' nie je jednoznan\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: prepna `-W %s' nepovouje argument\n" #~ msgid "block size" #~ msgstr "vekos bloku" #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s existuje, ale nie je adresrom" #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "nie je mon zmeni pouvatea a/alebo skupinu %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "nie je mon vytvori adresr %s" #, fuzzy, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "nie je mon vojs do adresra, %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "nie je mon zmeni prva %s" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "nie je mon zmeni prva %s" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "nie je mon vytvori adresr %s" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: chybn regulrny vraz: %s" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "chybn trieda znaku `%s'" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "vyerpan pam" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: chybn regulrny vraz: %s" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "chyba pri vyhadvan pomocou regulrneho vrazu" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: chybn regulrny vraz: %s" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "chyba pri vyhadvan pomocou regulrneho vrazu" #~ msgid "^[yY]" #~ msgstr "^[yYaA]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, fuzzy #~ msgid "iconv function not usable" #~ msgstr "nie je mon vypsa U+%04X: funkcia iconv nie je pouiten" #, fuzzy #~ msgid "iconv function not available" #~ msgstr "nie je mon vypsa U+%04X: funkcia iconv nie je dostupn" #, fuzzy #~ msgid "character out of range" #~ msgstr "U+%04X: znak je mimo rozsah" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "nie je mon konvertova U+%04X do loklnej znakovej sady" #, fuzzy, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "nie je mon konvertova U+%04X do loklnej znakovej sady" #~ msgid "invalid user" #~ msgstr "neplatn pouvate" #~ msgid "invalid group" #~ msgstr "neplatn skupina" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "nie je mon uri skupinu selnho UID" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ " Tento program je von programov vybavenie; mete ho ri a " #~ "modifikova\n" #~ "poda podmienok Veobecnej verejnej licencie GNU, vydvanej Free " #~ "Software\n" #~ "Foundation; a to bu verzie 2 tejto licencie alebo (poda vho " #~ "uvenia),\n" #~ "ktorejkovek neskorej verzie.\n" #~ "\n" #~ " Tento program je rozirovan v ndeji, e bude uiton, avak BEZ " #~ "AKEJKOVEK\n" #~ "ZRUKY; neposkytuj sa ani odvoden zruky PREDAJNOSTI alebo VHODNOSTI " #~ "PRE\n" #~ "NEJAK KONKRTNY EL. aie podrobnosti njdete vo Veobecnej verejnej\n" #~ "licencii GNU.\n" #~ "\n" #~ " Kpia Veobecnej verejnej licencie GNU mala by dodan spolu s tmto\n" #~ "programom; pokia sa tak nestalo, napte do Free Software Foundation, " #~ "Inc.,\n" #~ "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #, fuzzy #~ msgid "string comparison failed" #~ msgstr "zlyhal stat" #, fuzzy, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "nie je mon vytvori odkaz %s" ������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/sl.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004741�14445132163�012371� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������@�����A�����U�����W�����[�����k����������������������;�����3�����/���H��+���x��'�����#������������������,�����<�����>��-���[������������*����������������������������������s���6�����������������6�����/���%��+���U��'�����#������������������ �����! �����2 �����5 ��+���O �����{ ����� ��3��� ����������������������������������������� ����������������� ��������������������������������� ������������������������� ��� �������%s home page: <%s> �'�(C)�Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2012-05-20 13:08+0200 Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com> Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net> Language: sl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0); �Domača stran %s: <%s> �«�©�Priprava paketa: %s �Priprava paketa: %s (%s) �Napake v programu %s sporočite na: %s Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge.net>. �Neznana sistemska napaka�Veljavni argumenti so:�Avtorja: %s in %s. �Avtorji: %s, %s, %s, %s, %s, %s, %s, %s, %s in drugi. �Avtorji: %s, %s, %s, %s, %s, %s, %s, %s in %s. �Avtorji: %s, %s, %s, %s, %s, %s, %s in %s. �Avtorji: %s, %s, %s, %s, %s, %s in %s. �Avtorji: %s, %s, %s, %s, %s in %s. �Avtorji: %s, %s, %s, %s in %s. �Avtorji: %s, %s, %s in %s. �Avtorji: %s, %s in %s. �Avtor(ica): %s. �»�dvoumni argument %s za %s�vrnitev v začetni delovni imenik ni uspela�neveljavni argument %s za %s�zmanjkalo pomnilnika�ni mogoče zabeležiti trenutnega delovnega imenika��������������������������������a2ps-4.15.5/po-gnulib/sl.po�������������������������������������������������������������������������0000644�0000000�0000000�00000061055�14445132162�012225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNUlib. # Copyright (C) 2005, 2007, 2009, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Primož Peterlin <primozz.peterlin@gmail.com>, 2005, 2007, 2009, 2012. # $Id: gnulib-3.0.0.6062.a6b16.sl.po,v 1.5 2012/05/20 11:08:36 peterlin Exp $ # msgid "" msgstr "" "Project-Id-Version: gnulib 3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2012-05-20 13:08+0200\n" "Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n" "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " "n%100==4 ? 3 : 0);\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "neveljavni argument %s za %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "dvoumni argument %s za %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Veljavni argumenti so:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Neznana sistemska napaka" # ! INEXACT #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "zmanjkalo pomnilnika" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "ni mogoče zabeležiti trenutnega delovnega imenika" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "vrnitev v začetni delovni imenik ni uspela" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "»" #: lib/quotearg.c:355 msgid "'" msgstr "«" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Priprava paketa: %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Priprava paketa: %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format #| msgid "" #| "\n" #| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #| "html>.\n" #| "This is free software: you are free to change and redistribute it.\n" #| "There is NO WARRANTY, to the extent permitted by law.\n" #| "\n" msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "GPLv3+: GNU GPL, 3. izdaja ali poznejša <http://www.gnu.org/licenses/gpl." "html>\n" "To je prosto programje; lahko ga redistribuirate in/ali spreminjate.\n" "Za izdelek ni NOBENEGA JAMSTVA, do z zakonom dovoljene meje.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Avtor(ica): %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Avtorja: %s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Avtorji: %s, %s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Avtorji: %s, %s, %s\n" "in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Avtorji: %s, %s, %s,\n" "%s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Avtorji: %s, %s, %s,\n" "%s, %s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Avtorji: %s, %s, %s,\n" "%s, %s, %s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Avtorji: %s, %s, %s,\n" "%s, %s, %s, %s\n" "in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Avtorji: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Avtorji: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s in drugi.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "Poročila o napakah: %s\n" "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge.net>.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "" "Napake v programu %s sporočite na: %s\n" "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge.net>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Domača stran %s: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "Splošna pomoč za rabo programja GNU: <http://www.gnu.org/gethelp/>.\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: vrednost %s je manjša ali enaka %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT parameter zahteva vrednost" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parameter mora biti pozitiven" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Neznan parameter ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Smetje v ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Argumenti, navedeni kot obvezni ali neobvezni pri dolgi obliki izbire, so " #~ "obvezni ali neobvezni tudi pri vseh odgovarjajočih kratkih oblikah." #~ msgid "Usage:" #~ msgstr "Uporaba:" #~ msgid " or: " #~ msgstr " ali: " #~ msgid " [OPTION...]" #~ msgstr " [IZBIRA...]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Poskusite »%s --help« ali »%s --usage« za izčrpnejša navodila.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Poročila o napakah: %s\n" #~ msgid "give this help list" #~ msgstr "poda ta seznam pomoči" #~ msgid "give a short usage message" #~ msgstr "poda kratka navodila" #~ msgid "NAME" #~ msgstr "IME" #~ msgid "set the program name" #~ msgstr "nastavi ime programa" #~ msgid "SECS" #~ msgstr "SEK" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "zastane za SEK sekund (privzeto 3600)" #~ msgid "print program version" #~ msgstr "izpiše različico programa" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMSKA NAPAKA) Različice ni moč ugotoviti?!" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Preveč argumentov\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMSKA NAPAKA) Izbire bi morali prepoznati?!" #~ msgid "program error" #~ msgstr "napaka v programu" #~ msgid "stack overflow" #~ msgstr "prekoračitev sklada" #, c-format #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "začasnega imenika ni moč najti, poskusite nastaviti $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "začasnega imenika z uporabo šablone \"%s\" ni mogoče ustvariti" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "začasne datoteke v %s ni mogoče odstraniti" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "začasnega imenika %s ni mogoče odstraniti" #~ msgid "error closing file" #~ msgstr "napaka pri zapiranju datoteke" #~ msgid "write error" #~ msgstr "napaka pri pisanju" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "ohranjena dovoljenja za %s" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "napaka pri odpiranju datoteke \"%s\" za branje" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "varnostne kopije \"%s\" ni mogoče odpreti za pisanje" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "napaka pri branju \"%s\"" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "napaka pri pisanju na \"%s\"" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "napaka po branju \"%s\"" #, c-format #~ msgid "fdopen() failed" #~ msgstr "klic fdopen() ni uspel" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "prevajalnika za C# ni najti, namestite pnet" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "virtualnega stroja C# ni najti, namestite pnet" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "podproces %s ni uspel" #~ msgid "regular empty file" #~ msgstr "navadna prazna datoteka" #~ msgid "regular file" #~ msgstr "navadna datoteka" #~ msgid "directory" #~ msgstr "imenik" #~ msgid "block special file" #~ msgstr "bločna enota" #~ msgid "character special file" #~ msgstr "znakovna enota" #~ msgid "fifo" #~ msgstr "FIFO" # ! INEXACT #~ msgid "symbolic link" #~ msgstr "simbolna povezava" #~ msgid "socket" #~ msgstr "vtičnica" #~ msgid "message queue" #~ msgstr "vrsta sporočil" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "deljen pomnilniški predmet" #~ msgid "typed memory object" #~ msgstr "tipiziran pomnilniški predmet" #~ msgid "weird file" #~ msgstr "čudna datoteka" #~ msgid "Address family for hostname not supported" #~ msgstr "Družina naslovov za ime gostitelja ni podprta" #~ msgid "Temporary failure in name resolution" #~ msgstr "Razreševanje imena začasno ni uspelo" #~ msgid "Bad value for ai_flags" #~ msgstr "Slaba vrednost ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Nepopravljiv neuspeh pri razreševanju imena" #~ msgid "ai_family not supported" #~ msgstr "ai_family ni podprt" #~ msgid "Memory allocation failure" #~ msgstr "Dodelitev pomnilnika ni uspela" #~ msgid "No address associated with hostname" #~ msgstr "Z imenom gostitelja ni povezan noben naslov" #~ msgid "Name or service not known" #~ msgstr "Ime ali storitev ni poznana" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname ni podprt za ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype ni podprt" #~ msgid "System error" #~ msgstr "Sistemska napaka" #~ msgid "Argument buffer too small" #~ msgstr "Medpomnilnik za argumente premajhen" #~ msgid "Processing request in progress" #~ msgstr "Obdelava zahtevka v teku" #~ msgid "Request canceled" #~ msgstr "Zahtevek preklican" #~ msgid "Request not canceled" #~ msgstr "Zahtevek ni preklican" #~ msgid "All requests done" #~ msgstr "Vsi zahtevki obdelani" #~ msgid "Interrupted by a signal" #~ msgstr "Prekinjeno s signalom" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametrični niz nepravilno kodiran" #~ msgid "Unknown error" #~ msgstr "Neznana napaka" #, c-format #~ msgid "%s: option '%s' is ambiguous; possibilities:" #~ msgstr "%s: izbira »%s« je dvoumna; možnosti:" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n" #, c-format #~ msgid "%s: option '--%s' requires an argument\n" #~ msgstr "%s: izbira »--%s« zahteva argument\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: neprepoznana izbira »--%s«\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: neprepoznana izbira »%c%s«\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: neveljavna izbira -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: izbira zahteva argument -- '%c'\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: izbira »-W %s« je dvoumna\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n" #, c-format #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: izbira »-W %s« zahteva argument\n" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "neveljaven argument source_version za compile_java_class" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "neveljaven argument target_version za compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "ni mogoče ustvariti \"%s\"" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "napaka pri pisanju na datoteko \"%s\"" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "prevajalnika za Javo ni najti, nastavite $JAVAC ali namestite gcj" #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "virtualnega stroja za Javo ni najti, nastavite $JAVA ali namestite gij" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "V/I napaka podprocesa %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "dovoljenj %s ni mogoče spremeniti" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "imenika %s ni mogoče ustvariti" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Datoteke /dev/null ni uspelo odpreti za branje" #, c-format #~ msgid "creation of reading thread failed" #~ msgstr "niti za pisanje ni bilo mogoče ustvariti" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "neblokiranega V/I za podproces %s ni mogoče nastaviti" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "komunikacija s podprocesom %s ni uspela" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "pisanje na podproces %s ni uspelo" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "branje s podprocesa %s ni uspelo" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "podproces %s se je zaključil z izhodno kodo %d" #, c-format #~ msgid "creation of threads failed" #~ msgstr "ustvarjanje niti ni uspelo" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s podproces se je zaključil z izhodno kodo %d" #~ msgid "Franc,ois Pinard" #~ msgstr "François Pinard" #~ msgid "Success" #~ msgstr "Uspešno" #~ msgid "No match" #~ msgstr "Brez zadetkov" #~ msgid "Invalid regular expression" #~ msgstr "Neveljaven regularni izraz" #~ msgid "Invalid collation character" #~ msgstr "Neveljaven razvrščevalni znak" #~ msgid "Invalid character class name" #~ msgstr "Neveljavno ime razreda znakov" #~ msgid "Trailing backslash" #~ msgstr "Zaključna obratna poševnica" #~ msgid "Invalid back reference" #~ msgstr "Neveljaven povratni sklic" #~ msgid "Unmatched [ or [^" #~ msgstr "Uklepaj [ ali [^ brez para" #~ msgid "Unmatched ( or \\(" #~ msgstr "Uklepaj ( ali \\( brez para" #~ msgid "Unmatched \\{" #~ msgstr "Uklepaj \\{ brez para" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Neveljavna vsebina \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Neveljaven konec razpona" # ! INEXACT #~ msgid "Memory exhausted" #~ msgstr "Pomnilnik izčrpan" #~ msgid "Invalid preceding regular expression" #~ msgstr "Neveljaven predhodni regularni izraz" #~ msgid "Premature end of regular expression" #~ msgstr "Predčasen zaključek regularnega izraza" #~ msgid "Regular expression too big" #~ msgstr "Regularni izraz je preobsežen" #~ msgid "Unmatched ) or \\)" #~ msgstr "Zaklepaj ) ali \\) brez para" #~ msgid "No previous regular expression" #~ msgstr "Prejšnjega regularnega izraza ni" #~ msgid "^[yY]" #~ msgstr "^[jJdD]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "nastavljena dovoljenja za %s" #~ msgid "Hangup" #~ msgstr "Odklop" #~ msgid "Interrupt" #~ msgstr "Prekinitev" #~ msgid "Quit" #~ msgstr "Končanje" #~ msgid "Illegal instruction" #~ msgstr "Nedovoljen ukaz" #~ msgid "Trace/breakpoint trap" #~ msgstr "Past" #~ msgid "Aborted" #~ msgstr "Prekinjen" #~ msgid "Floating point exception" #~ msgstr "Prekoračitev plavajoče vejice" #~ msgid "Killed" #~ msgstr "Pobit" #~ msgid "Bus error" #~ msgstr "Napaka vodila" #~ msgid "Segmentation fault" #~ msgstr "Napaka segmentacije" #~ msgid "Broken pipe" #~ msgstr "Prekinjen cevovod" #~ msgid "Alarm clock" #~ msgstr "Budilka" #~ msgid "Terminated" #~ msgstr "Zaključen" #~ msgid "Urgent I/O condition" #~ msgstr "Nujno V/I stanje" #~ msgid "Stopped (signal)" #~ msgstr "Ustavljen (signal)" #~ msgid "Stopped" #~ msgstr "Ustavljen" #~ msgid "Continued" #~ msgstr "Nadaljevan" #~ msgid "Child exited" #~ msgstr "Izhod nasledniškega procesa" #~ msgid "Stopped (tty input)" #~ msgstr "Ustavljen (vhod TTY)" #~ msgid "Stopped (tty output)" #~ msgstr "Ustavljen (izhod TTY)" #~ msgid "I/O possible" #~ msgstr "Mogoč V/I" #~ msgid "CPU time limit exceeded" #~ msgstr "Presežena omejitev procesorskega časa" #~ msgid "File size limit exceeded" #~ msgstr "Presežena omejitev dolžine datoteke" #~ msgid "Virtual timer expired" #~ msgstr "Iztek virtualne štoparice" #~ msgid "Profiling timer expired" #~ msgstr "Iztek profilirne štoparice" #~ msgid "Window changed" #~ msgstr "Zamenjano okno" #~ msgid "User defined signal 1" #~ msgstr "Uporabniški signal 1" #~ msgid "User defined signal 2" #~ msgstr "Uporabniški signal 2" #~ msgid "EMT trap" #~ msgstr "Past EMT" #~ msgid "Bad system call" #~ msgstr "Slab sistemski klic" #~ msgid "Stack fault" #~ msgstr "Napaka sklada" #~ msgid "Information request" #~ msgstr "Informacijski zahtevek" #~ msgid "Power failure" #~ msgstr "Izpad toka" #~ msgid "Resource lost" #~ msgstr "Vir izgubljen" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "napaka pri pisanju na zaprt cevovod ali vtič" #, c-format #~ msgid "cannot create pipe" #~ msgstr "ni mogoče ustvariti cevovoda" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Realnočasovni signal %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Neznani signal %d" #~ msgid "iconv function not usable" #~ msgstr "funkcija iconv ne deluje" #~ msgid "iconv function not available" #~ msgstr "funkcija iconv ni na voljo" #~ msgid "character out of range" #~ msgstr "koda znaka izven obsega" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "znaka s kodo U+%04X ni mogoče pretvoriti v lokalni nabor znakov" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "znaka s kodo U+%04X ni moč pretvoriti v lokalni nabor znakov: %s" #~ msgid "invalid user" #~ msgstr "neveljavno uporabniško ime" #~ msgid "invalid group" #~ msgstr "neveljavno ime skupine" #~ msgid "invalid spec" #~ msgstr "neveljavna specifikacija" #, c-format #~ msgid "unable to display error message" #~ msgstr "sporočila o napaki ni mogoče prikazati" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Spletna stran %s: <http://www.gnu.org/software/%s/>.\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "klic _open_osfhandle ni uspel" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "ni mogoče obnoviti fd %d: klic dup2 ni uspel" #, c-format #~ msgid "%s subprocess" #~ msgstr "podproces %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "podproces %s je prejel terminalni signal %d" #~ msgid "stdin" #~ msgstr "standardni vhod" #~ msgid "stdout" #~ msgstr "standardni izhod" #~ msgid "stderr" #~ msgstr "standardna izhod za napake" #~ msgid "unknown stream" #~ msgstr "neznani tok" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "ponovno odpiranje %s v načinu %s ni uspelo" #, c-format #~ msgid "string comparison failed" #~ msgstr "primerjanje nizov ni uspelo" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Nastavite LC_ALL='C', da bi odpravili težavo." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Primerjana niza sta bila %s in %s." #, c-format #~ msgid "cannot perform formatted output" #~ msgstr "oblikovanega izpisa ni mogoče izvesti" #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "neveljavni %s%s argument »%s«" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "neveljavna pripona pri %s%s argumentu »%s«" #, c-format #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s: argument »%s« je prevelik" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: nedovoljena izbira -- %c\n" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Napake v programu sporočite na %s.\n" #~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge." #~ "net>.\n" #~ msgid "block size" #~ msgstr "velikost bloka" #~ msgid "%s exists but is not a directory" #~ msgstr "%s obstaja, vendar ni imenik" # ! INEXACT #~ msgid "cannot change owner and/or group of %s" #~ msgstr "lastnika in/ali skupine %s ni mogoče spremeniti" #~ msgid "cannot chdir to directory %s" #~ msgstr "dostop do imenika %s ni mogoč" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "imena skupine, ki pripada številčnemu UID, ni mogoče ugotoviti" #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "Ta program je prosta programska oprema; lahko ga redistribuirate in/ali\n" #~ "spreminjate po pogojih, določenih v »GNU General Public License«, \n" #~ "<http://www.gnu.org/licenses/gpl.html>. Za izdelek ni NOBENEGA JAMSTVA, " #~ "do\n" #~ "z zakonom dovoljene meje.\n" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/sr.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000007006�14445132163�012374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*�����#����)��������D�����H��E���K��=������� �� ��� ��C��� ��)���P ��.���z ��)��� �� ��� ��I��� ��=���> ��9���| ��5��� ��1��� ��-��� ��)���L ��%���v ����� ����� ��6��� ��Z��� ��<���K ��(��� ��T��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib-4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2020-04-20 09:38+0200 Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com> Language-Team: Serbian <(nothing)> Language: sr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Virtaal 0.7.1 X-Bugs: Report translation errors to the Language-Team address. �%s матична страница: <%s> �“�©�Општа помоћ користећи ГНУ софтвер: <%s> �Лиценца ОЈЛи3+: ГНУ ОЈЛ издање 3 или новије <%s>. Ово је слободан софтвер: слободни сте да га мењате и расподељујете. Не постоји НИКАКВА ГАРАНЦИЈА, у оквирима дозвољеним законом. �Запаковао је %s �Запаковао је %s (%s) �Грешке програма „%s“ пријавите на: %s �Грешке пријавите на: %s �Непозната грешка система�Исправни аргументи су:�Написали су %s и %s. �Написали су %s, %s, %s, %s, %s, %s, %s, %s, %s, и други. �Написали су %s, %s, %s, %s, %s, %s, %s, %s, и %s. �Написали су %s, %s, %s, %s, %s, %s, %s, и %s. �Написали су %s, %s, %s, %s, %s, %s, и %s. �Написали су %s, %s, %s, %s, %s, и %s. �Написали су %s, %s, %s, %s, и %s. �Написали су %s, %s, %s, и %s. �Написали су %s, %s, и %s. �Написао је %s. �„�нејасан аргумент „%s“ за „%s“�не могу да се вратим у почетни радни директоријум�неисправан аргумент „%s“ за „%s“�меморија је потрошена�не могу да снимим тренутни радни директоријум���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/sr.po�������������������������������������������������������������������������0000644�0000000�0000000�00000076020�14445132162�012231� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Serbian translation of gnulib. # Copyright © 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2013—2020. msgid "" msgstr "" "Project-Id-Version: gnulib-4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2020-04-20 09:38+0200\n" "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Language-Team: Serbian <(nothing)>\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Virtaal 0.7.1\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "неисправан аргумент „%s“ за „%s“" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "нејасан аргумент „%s“ за „%s“" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Исправни аргументи су:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Непозната грешка система" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "меморија је потрошена" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "не могу да снимим тренутни радни директоријум" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "не могу да се вратим у почетни радни директоријум" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "„" #: lib/quotearg.c:355 msgid "'" msgstr "“" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Запаковао је %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Запаковао је %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Лиценца ОЈЛи3+: ГНУ ОЈЛ издање 3 или новије <%s>.\n" "Ово је слободан софтвер: слободни сте да га мењате и расподељујете.\n" "Не постоји НИКАКВА ГАРАНЦИЈА, у оквирима дозвољеним законом.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Написао је %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Написали су %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Написали су %s, %s, и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Написали су %s, %s, %s,\n" "и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Написали су %s, %s, %s,\n" "%s, и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Написали су %s, %s, %s,\n" "%s, %s, и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Написали су %s, %s, %s,\n" "%s, %s, %s, и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Написали су %s, %s, %s,\n" "%s, %s, %s, %s,\n" "и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Написали су %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Написали су %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, и други.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Грешке пријавите на: %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Грешке програма „%s“ пријавите на: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s матична страница: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Општа помоћ користећи ГНУ софтвер: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s вредност је мања од или једнака са %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: „ARGP_HELP_FMT“ параметар захтева вредност" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Непознат параметар „ARGP_HELP_FMT“" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Ђубре у „ARGP_HELP_FMT“-у: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Обавезни или опционални аргументи за дуге опције су такође обавезни или " #~ "опционални за све одговарајуће кратке опције." #~ msgid "Usage:" #~ msgstr "Употреба:" #~ msgid " or: " #~ msgstr " или: " #~ msgid " [OPTION...]" #~ msgstr " [ОПЦИЈА...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Покушајте „%s --help“ или „%s --usage“ за више података.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Грешке пријавите на %s.\n" #~ msgid "give this help list" #~ msgstr "приказује овај списак помоћи" #~ msgid "give a short usage message" #~ msgstr "приказује кратку поруку коришћења" #~ msgid "NAME" #~ msgstr "НАЗИВ" #~ msgid "set the program name" #~ msgstr "поставља назив програма" #~ msgid "SECS" #~ msgstr "СЕКУНДЕ" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "стаје за СЕКУНДЕ секунде (основно је 3600)" #~ msgid "print program version" #~ msgstr "исписује издање програма" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ГРЕШКА ПРОГРАМА) Није познато издање!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Превише аргумената\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ГРЕШКА ПРОГРАМА) Опција треба да буде препозната!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u битсет_доделе, %u ослобођених (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u битсет_поставки, %u кешираних (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u битсет_повраћаја, %u кешираних (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u битсет_тестова, %u кешираних (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u битсет_спискова\n" #~ msgid "count log histogram\n" #~ msgstr "број хистограма дневника\n" #~ msgid "size log histogram\n" #~ msgstr "величина хистограма дневника\n" #~ msgid "density histogram\n" #~ msgstr "хистограм густине\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Статистике битсета:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Нагомиланих покретања = %u\n" #~ msgid "cannot read stats file" #~ msgstr "не могу да читам датотеку стања" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "лоша величина датотеке стања\n" #~ msgid "cannot write stats file" #~ msgstr "не могу да пишем датотеку стања" #~ msgid "cannot open stats file for writing" #~ msgstr "не могу да отворим датотеку стања за упис" #~ msgid "program error" #~ msgstr "грешка програма" #~ msgid "stack overflow" #~ msgstr "стек је препуњен" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "не могу да пронађем привремени директоријум, покушавам да подесим " #~ "„$TMPDIR“" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "не могу да направим привремени директоријум користећи шаблон „%s“" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "не могу да уклоним привремену датотеку „%s“" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "не могу да уклоним привремени директоријум „%s“" #~ msgid "error closing file" #~ msgstr "грешка затварања датотеке" #~ msgid "write error" #~ msgstr "грешка записивања" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "причувавам овлашћења за %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "грешка приликом отварања „%s“ за читање" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "не могу да отворим датотеку резерве „%s“ за упис" #, c-format #~ msgid "error reading %s" #~ msgstr "грешка читања „%s“" #, c-format #~ msgid "error writing %s" #~ msgstr "грешка писања „%s“" #, c-format #~ msgid "error after reading %s" #~ msgstr "грешка након читања „%s“" #~ msgid "fdopen() failed" #~ msgstr "није успела функција „fdopen()“" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "нисам нашао Ц# преводиоца, покушајте да инсталирате моно" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "нисам нашао Ц# виртуелну машину, покушајте да инсталирате моно" #~ msgid "unbalanced [" #~ msgstr "неуравнотежена [" #~ msgid "invalid character class" #~ msgstr "неисправна класа знака" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "синтакса класе знака је [[:space:]], а не [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "недовршена \\ излаза" #~ msgid "invalid content of \\{\\}" #~ msgstr "неисправан садржај \\{\\}" #~ msgid "regular expression too big" #~ msgstr "регуларни израз је превелик" #~ msgid "unbalanced (" #~ msgstr "неуравнотежена (" #~ msgid "no syntax specified" #~ msgstr "није наведена синтакса" #~ msgid "unbalanced )" #~ msgstr "неуравнотежена )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s потпроцес није успео" #~ msgid "regular empty file" #~ msgstr "обична празна датотека" #~ msgid "regular file" #~ msgstr "обична датотека" #~ msgid "directory" #~ msgstr "директоријум" #~ msgid "symbolic link" #~ msgstr "симболичка веза" #~ msgid "message queue" #~ msgstr "ред порука" #~ msgid "semaphore" #~ msgstr "семафор" #~ msgid "shared memory object" #~ msgstr "заједнички меморијски објекат" #~ msgid "typed memory object" #~ msgstr "типски меморијски објекат" #~ msgid "block special file" #~ msgstr "посебна датотека блока" #~ msgid "character special file" #~ msgstr "посебна датотека знака" #~ msgid "contiguous data" #~ msgstr "непрекидни подаци" #~ msgid "fifo" #~ msgstr "пупи" #~ msgid "door" #~ msgstr "врата" #~ msgid "multiplexed block special file" #~ msgstr "специјална датотека мултиплексираног блока" #~ msgid "multiplexed character special file" #~ msgstr "специјална датотека мултиплексираног знака" #~ msgid "multiplexed file" #~ msgstr "мултиплексирана датотека" #~ msgid "named file" #~ msgstr "именована датотека" #~ msgid "network special file" #~ msgstr "посебна датотека мреже" #~ msgid "migrated file with data" #~ msgstr "премештена датотека са подацима" #~ msgid "migrated file without data" #~ msgstr "премештена датотека без података" #~ msgid "port" #~ msgstr "порт" #~ msgid "socket" #~ msgstr "прикључница" #~ msgid "whiteout" #~ msgstr "празнина" #~ msgid "weird file" #~ msgstr "чудна датотека" #~ msgid "Address family for hostname not supported" #~ msgstr "Породица адреса за назив домаћина није подржана" #~ msgid "Temporary failure in name resolution" #~ msgstr "Привремени неуспех одређивања назива" #~ msgid "Bad value for ai_flags" #~ msgstr "Неисправна вредност за аи_опције" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Непоправљива грешка при одређивању назива" #~ msgid "ai_family not supported" #~ msgstr "аи_породица није подржана" #~ msgid "Memory allocation failure" #~ msgstr "Расподела меморије није успела" #~ msgid "No address associated with hostname" #~ msgstr "Ниједна адреса није придружена називу домаћина" #~ msgid "Name or service not known" #~ msgstr "Није позната услуга или назив" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Назив сервера није подржан за аи_врступрикључка" #~ msgid "ai_socktype not supported" #~ msgstr "аи_врстаприкључка није подржана" #~ msgid "System error" #~ msgstr "Системска грешка" #~ msgid "Argument buffer too small" #~ msgstr "Међумеморија аргумента је премала" #~ msgid "Processing request in progress" #~ msgstr "Захтев обрађивања је у току" #~ msgid "Request canceled" #~ msgstr "Захтев је отказан" #~ msgid "Request not canceled" #~ msgstr "Захтев није отказан" #~ msgid "All requests done" #~ msgstr "Сви захтеви су готови" #~ msgid "Interrupted by a signal" #~ msgstr "Прекинуто сигналом" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Ниска параметра није исправно кодирана" #~ msgid "Unknown error" #~ msgstr "Непозната грешка" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: опција „%s%s“ је нејасна\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: опција „%s%s“ је нејасна; могућности:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: непозната опција „%s%s“\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: опција „%s%s“ не дозвољава аргумент\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: опција „%s%s“ захтева аргумент\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: неисправна опција -- „%c“\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: опција захтева аргумент -- „%c“\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "неисправан аргумент издања_извора за преведи_јава_разред" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "неисправан аргумент издања_мете за преведи_јава_разред" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "нисам успео да направим „%s“" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "грешка приликом писања датотеке „%s“" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Нисам нашао Јава преводиоца, покушајте да инсталирате гцј или поставите " #~ "„$JAVAC“" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Нисам нашао виртуелну машину Јаве, покушајте да инсталирате гиј или да " #~ "поставите „$JAVA“" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "У/И грешка %s потпроцеса" #, c-format #~ msgid "cannot stat %s" #~ msgstr "не могу да добавим податке за „%s“" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "не могу да променим овлашћења за „%s“" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "не могу да направим директоријум „%s“" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Нисам успео да отворим „/dev/zero“ за читање" #~ msgid "creation of reading thread failed" #~ msgstr "стварање нити за читање није успело" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "не могу да поставим неблокирајући У/И на потпроцес %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "комуницирање са %s потпроцесом није успело" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "писање у %s потпроцес није успело" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "читање из %s потпроцеса није успело" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "потпроцес %s је окончан са излазном шифром %d" #~ msgid "creation of threads failed" #~ msgstr "стварање нити није успело" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s потпроцес је окончан са излазном шифром %d" #~ msgid "Success" #~ msgstr "Успешно" #~ msgid "No match" #~ msgstr "Нема подударања" #~ msgid "Invalid regular expression" #~ msgstr "Неправилан регуларан израз" #~ msgid "Invalid collation character" #~ msgstr "Неисправан знак поретка" #~ msgid "Invalid character class name" #~ msgstr "Неисправан назив класе знака" #~ msgid "Trailing backslash" #~ msgstr "Пратећа контра коса црта" #~ msgid "Invalid back reference" #~ msgstr "Неисправна повратна упута" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Неупарено [, [^, [:, [., или [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "Неупарено ( или \\(" #~ msgid "Unmatched \\{" #~ msgstr "Неупарено \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Неисправан садржај \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Неисправан крај опсега" #~ msgid "Memory exhausted" #~ msgstr "Меморија је потрошена" #~ msgid "Invalid preceding regular expression" #~ msgstr "Неисправан регуларан израз који претходи" #~ msgid "Premature end of regular expression" #~ msgstr "Прерани крај регуларног израза" #~ msgid "Regular expression too big" #~ msgstr "Регуларни израз је превелик" #~ msgid "Unmatched ) or \\)" #~ msgstr "Непоклопљено ) или \\)" #~ msgid "No previous regular expression" #~ msgstr "Нема претходног регуларног израза" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "подешавам овлашћења за %s" #~ msgid "Hangup" #~ msgstr "Обустави" #~ msgid "Interrupt" #~ msgstr "Прекини" #~ msgid "Quit" #~ msgstr "Изађи" #~ msgid "Illegal instruction" #~ msgstr "Неисправна инструкција" #~ msgid "Trace/breakpoint trap" #~ msgstr "Замка праћења/тачке прекида" #~ msgid "Aborted" #~ msgstr "Прекинуто" #~ msgid "Floating point exception" #~ msgstr "Изузетак са покретним зарезом" #~ msgid "Killed" #~ msgstr "Убијено" #~ msgid "Bus error" #~ msgstr "Грешка сабирнице" #~ msgid "Segmentation fault" #~ msgstr "Грешка сегментације" #~ msgid "Broken pipe" #~ msgstr "Прекинута спојка" #~ msgid "Alarm clock" #~ msgstr "Будилник" #~ msgid "Terminated" #~ msgstr "Окончан" #~ msgid "Urgent I/O condition" #~ msgstr "Хитни У/И услов" #~ msgid "Stopped (signal)" #~ msgstr "Заустављен (сигнал)" #~ msgid "Stopped" #~ msgstr "Заустављен" #~ msgid "Continued" #~ msgstr "Настављен" #~ msgid "Child exited" #~ msgstr "Потпроцес је напуштен" #~ msgid "Stopped (tty input)" #~ msgstr "Заустављен (улаз конзоле)" #~ msgid "Stopped (tty output)" #~ msgstr "Заустављен (излаз конзоле)" #~ msgid "I/O possible" #~ msgstr "I/O је могућ" #~ msgid "CPU time limit exceeded" #~ msgstr "Прекорачено је временско ограничење процесора" #~ msgid "File size limit exceeded" #~ msgstr "Прекорачено је ограничење величине датотеке" #~ msgid "Virtual timer expired" #~ msgstr "Виртуелни одбројавач је истекао" #~ msgid "Profiling timer expired" #~ msgstr "Одбројавач профилисања је истекао" #~ msgid "Window changed" #~ msgstr "Прозор је измењен" #~ msgid "User defined signal 1" #~ msgstr "Кориснички одређени сигнал 1" #~ msgid "User defined signal 2" #~ msgstr "Кориснички одређени сигнал 2" #~ msgid "EMT trap" #~ msgstr "ЕМТ замка" #~ msgid "Bad system call" #~ msgstr "Лош системски позив" #~ msgid "Stack fault" #~ msgstr "Неуспех стека" #~ msgid "Information request" #~ msgstr "Захтев зе информацијама" #~ msgid "Power failure" #~ msgstr "Неуспех напајања" #~ msgid "Resource lost" #~ msgstr "Губитак изворишта" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "грешка писања на затворену спојку или прикључницу" #~ msgid "cannot create pipe" #~ msgstr "не могу да направим спојку" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Сигнал у стварном времену %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Непознати сигнал %d" #~ msgid "Execution times (seconds)" #~ msgstr "Времена извршења (секунди)" #~ msgid "CPU user" #~ msgstr "ЦПЈ корисник" #~ msgid "CPU system" #~ msgstr "ЦПЈ систем" #~ msgid "wall clock" #~ msgstr "зидни сат" #~ msgid "iconv function not usable" #~ msgstr "иконв функција није употребљива" #~ msgid "iconv function not available" #~ msgstr "иконв функција није доступна" #~ msgid "character out of range" #~ msgstr "знак је ван опсега" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "не могу да претворим U+%04X у месни скуп знакова" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "не могу да претворим U+%04X у месни скуп знакова: %s" #~ msgid "invalid user" #~ msgstr "неисправан корисник" #~ msgid "invalid group" #~ msgstr "неисправна група" #~ msgid "invalid spec" #~ msgstr "неисправна одредница" #~ msgid "unable to display error message" #~ msgstr "не могу да прикажем поруку грешке" #~ msgid "_open_osfhandle failed" #~ msgstr "„_open_osfhandle“ није успело" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "не могу да повратим фд %d: „dup2“ није успело" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s потпроцес" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s потпроцес је добио кобни сигнал %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "нисам успео да подесим текстуални/бинарни режим описника датотеке" #~ msgid "stdin" #~ msgstr "стдулаз" #~ msgid "stdout" #~ msgstr "стдизлаз" #~ msgid "stderr" #~ msgstr "стдгрешка" #~ msgid "unknown stream" #~ msgstr "непознат ток" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "нисам успео да поново отворим „%s“ са режимом %s" #~ msgid "string comparison failed" #~ msgstr "није успело поређење ниске" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Поставите LC_ALL='C' да решите проблем." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Поређене ниске су „%s“ и „%s“." #~ msgid "cannot perform formatted output" #~ msgstr "не могу да извршим обликовани излаз" #~ msgid "standard file descriptors" #~ msgstr "стандардни описници датотеке" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "неисправан %s%s аргумент „%s“" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "неисправан суфикс у %s%s аргумент „%s“" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "%s%s аргумент „%s“ је превелик" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: „ARGP_HELP_FMT“ параметар мора бити позитиван" #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: опција „--%s“ не дозвољава аргумент\n" #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: непозната опција „--%s“\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: опција „-W %s“ не дозвољава аргумент\n" #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: опција „-W %s“ захтева аргумент\n" #~ msgid "Franc,ois Pinard" #~ msgstr "Франсуа Пинард" #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s матична страница: <http://www.gnu.org/software/%s/>\n" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/stamp-po����������������������������������������������������������������������0000644�0000000�0000000�00000000012�14445132163�012715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������timestamp ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/sv.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005652�14445132163�012405� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������2�������������������������e��������b �����s ����� ��9��� ��2��� ��.��� ��*���< ��&���g ��"��� ����� ����� ����� ����� ����� ��<��� �����Z �� ���x ��%��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2020-05-28 21:40+0200 Last-Translator: Göran Uddeborg <goeran@uddeborg.se> Language-Team: Swedish <tp-sv-list@lists.sourceforge.net> Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); �Webbsida för %s: <%s> �”�©�Allmän hjälp med att använda GNU-program: <%s> �Licens GPLv3+: GNU GPL version 3 eller senare <%s>. Detta är fri programvara: du får lov att ändra och vidaredistribuera den. Det finns INGEN GARANTI, så långt lagen tillåter. �Paketerat av %s �Paketerat av %s (%s) �Rapportera %s-fel till: %s �Rapportera fel till: %s Skicka synpunkter på översättningen till: tp-sv-list@lists.sourceforg.net �Okänt systemfel�Giltiga argument är:�Skrivet av %s och %s. �Skrivet av %s, %s, %s, %s, %s, %s, %s, %s, %s med flera. �Skrivet av %s, %s, %s, %s, %s, %s, %s, %s och %s. �Skrivet av %s, %s, %s, %s, %s, %s, %s och %s. �Skrivet av %s, %s, %s, %s, %s, %s och %s. �Skrivet av %s, %s, %s, %s, %s och %s. �Skrivet av %s, %s, %s, %s och %s. �Skrivet av %s, %s, %s och %s. �Skrivet av %s, %s och %s. �Skrivet av %s. �”�tvetydigt argument %s till %s�kunde inte återvända till den ursprungliga arbetskatalogen�felaktigt argument %s till %s�minnet slut�kan inte notera aktuell arbetskatalog���������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/sv.po�������������������������������������������������������������������������0000644�0000000�0000000�00000061506�14445132162�012240� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Swedish messages for gnulib. # Copyright © 1997, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2019, 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Peter Antman <peter.antman@abc.se>, 1997. # Thomas Olsson <cid95tho@lustudat.student.lu.se>, 1997. # Daniel Resare <daniel@resare.com>, 1999, 2000. # Göran Uddeborg <goeran@uddeborg.se>, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2019, 2020. # # $Revision: 1.19 $ # msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2020-05-28 21:40+0200\n" "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n" "Language-Team: Swedish <tp-sv-list@lists.sourceforge.net>\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "felaktigt argument %s till %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "tvetydigt argument %s till %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Giltiga argument är:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Okänt systemfel" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "minnet slut" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "kan inte notera aktuell arbetskatalog" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "kunde inte återvända till den ursprungliga arbetskatalogen" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "”" #: lib/quotearg.c:355 msgid "'" msgstr "”" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Paketerat av %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Paketerat av %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Licens GPLv3+: GNU GPL version 3 eller senare <%s>.\n" "Detta är fri programvara: du får lov att ändra och vidaredistribuera den.\n" "Det finns INGEN GARANTI, så långt lagen tillåter.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Skrivet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Skrivet av %s och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Skrivet av %s, %s och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Skrivet av %s, %s, %s\n" "och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Skrivet av %s, %s, %s,\n" "%s och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Skrivet av %s, %s, %s,\n" "%s, %s och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Skrivet av %s, %s, %s,\n" "%s, %s, %s och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Skrivet av %s, %s, %s,\n" "%s, %s, %s, %s\n" "och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Skrivet av %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Skrivet av %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s med flera.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "" "Rapportera fel till: %s\n" "Skicka synpunkter på översättningen till: tp-sv-list@lists.sourceforg.net\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Rapportera %s-fel till: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Webbsida för %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "Allmän hjälp med att använda GNU-program: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: värdet på %s är mindre än eller lika med %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT-parametern kräver ett värde" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Okänd ARGP_HELP_FMT-parameter" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Skräp i ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Obligatoriska eller valfria argument till långa flaggor är obligatoriska " #~ "eller valfria även för motsvarande korta flaggor." #~ msgid "Usage:" #~ msgstr "Användning:" #~ msgid " or: " #~ msgstr " eller: " #~ msgid " [OPTION...]" #~ msgstr " [FLAGGA...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "Försök med ”%s --help” eller ”%s --usage” för mer information.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "" #~ "Rapportera fel till %s.\n" #~ "Skicka synpunkter på översättningen till <tp-sv-list@lists.sourceforge." #~ "net>.\n" #~ msgid "give this help list" #~ msgstr "ge denna hjälplista" #~ msgid "give a short usage message" #~ msgstr "ge ett kort användningsmeddelande" #~ msgid "NAME" #~ msgstr "NAMN" #~ msgid "set the program name" #~ msgstr "ange programnamnet" #~ msgid "SECS" #~ msgstr "S" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "häng i S sekunder (3600 som standard)" #~ msgid "print program version" #~ msgstr "skriv ut programversion" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(PROGRAMFEL) Ingen version känd!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: För många argument\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(PROGRAMFEL) Flaggan borde ha känts igen!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset-allokeringar, %u frigjorda (%.2f %%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset-mängder, %u cachade (%.2f %%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset-återställningar, %u cachade (%.2f %%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset-tester, %u cachade (%.2f %%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset-listor\n" #~ msgid "count log histogram\n" #~ msgstr "antalsloggshistogram\n" #~ msgid "size log histogram\n" #~ msgstr "storleksloggshistogram\n" #~ msgid "density histogram\n" #~ msgstr "densitetshistogram\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Bitset-statistik:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Ackumulerade körningar = %u\n" #~ msgid "cannot read stats file" #~ msgstr "kan inte läsa statistikfilen" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "felaktig storlek på statistikfil\n" #~ msgid "cannot write stats file" #~ msgstr "kan inte skriva statistikfilen" #~ msgid "cannot open stats file for writing" #~ msgstr "kan inte öppna statistikfilen för skrivning" #~ msgid "program error" #~ msgstr "programfel" #~ msgid "stack overflow" #~ msgstr "stackspill" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "kan inte hitta en temporärkatalog, försök sätta $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "kan inte skapa en temporärkatalog med användning av mallen ”%s”" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "kan inte ta bort temporärfil %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "kan inte ta bort temporärkatalog %s" #~ msgid "error closing file" #~ msgstr "fel när fil stängdes" #~ msgid "write error" #~ msgstr "skrivfel" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "bevarar rättigheter på %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "fel när %s öppnades för läsning" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "det går inte att öppna säkerhetskopiefilen %s för skrivning" #, c-format #~ msgid "error reading %s" #~ msgstr "fel vid läsning av %s" #, c-format #~ msgid "error writing %s" #~ msgstr "fel vid skrivning av %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "fel efter läsning av %s" #~ msgid "fdopen() failed" #~ msgstr "fdopen() misslyckades" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "C#-kompilator hittades inte, försök installera mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "den virtuella C#-maskinen hittades inte, försök installera mono" #~ msgid "unbalanced [" #~ msgstr "obalanserad [" #~ msgid "invalid character class" #~ msgstr "ogiltig teckenklass" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "teckenklassyntaxen är [[:space:]], inte [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "oavslutad \\-sekvens" #~ msgid "invalid content of \\{\\}" #~ msgstr "ogiltigt innehåll i \\{\\}" #~ msgid "regular expression too big" #~ msgstr "för stort reguljärt uttryck" #~ msgid "unbalanced (" #~ msgstr "obalanserad (" #~ msgid "no syntax specified" #~ msgstr "ingen syntax angiven" #~ msgid "unbalanced )" #~ msgstr "obalanserad )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s-underprocess misslyckades" #~ msgid "regular empty file" #~ msgstr "tom normal fil" #~ msgid "regular file" #~ msgstr "normal fil" #~ msgid "directory" #~ msgstr "katalog" #~ msgid "symbolic link" #~ msgstr "symbolisk länk" #~ msgid "message queue" #~ msgstr "meddelandekö" #~ msgid "semaphore" #~ msgstr "semafor" #~ msgid "shared memory object" #~ msgstr "objekt av delat minne" #~ msgid "typed memory object" #~ msgstr "objekt av typat minne" #~ msgid "block special file" #~ msgstr "blockspecialfil" #~ msgid "character special file" #~ msgstr "teckenspecialfil" #~ msgid "contiguous data" #~ msgstr "sammanhängande data" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "door" #~ msgstr "dörr" #~ msgid "multiplexed block special file" #~ msgstr "multiplexad blockspecialfil" #~ msgid "multiplexed character special file" #~ msgstr "multiplexad teckenspecialfil" #~ msgid "multiplexed file" #~ msgstr "multiplexad fil" #~ msgid "named file" #~ msgstr "namngiven fil" #~ msgid "network special file" #~ msgstr "nätverksspecialfil" #~ msgid "migrated file with data" #~ msgstr "migrerad fil med data" #~ msgid "migrated file without data" #~ msgstr "migrerad fil utan data" #~ msgid "port" #~ msgstr "port" #~ msgid "socket" #~ msgstr "uttag (socket)" #~ msgid "whiteout" #~ msgstr "övertäckningsfil" #~ msgid "weird file" #~ msgstr "konstig fil" #~ msgid "Address family for hostname not supported" #~ msgstr "Adressfamiljen för värdnamnet stöds inte" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tillfälligt fel i namnuppslagning" #~ msgid "Bad value for ai_flags" #~ msgstr "Felaktigt värde för ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Oreparabelt fel i namnuppslagning" #~ msgid "ai_family not supported" #~ msgstr "ai_family stöds inte" #~ msgid "Memory allocation failure" #~ msgstr "Minnesallokeringsfel" #~ msgid "No address associated with hostname" #~ msgstr "Ingen adress associerad med värdnamnet" #~ msgid "Name or service not known" #~ msgstr "Namn eller tjänst inte känd" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Servname stöds inte för ai_socktype" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype stöds inte" #~ msgid "System error" #~ msgstr "Systemfel" #~ msgid "Argument buffer too small" #~ msgstr "Argumentbufferten för liten" #~ msgid "Processing request in progress" #~ msgstr "Bearbetar pågående begäran" #~ msgid "Request canceled" #~ msgstr "Begäran annullerad" #~ msgid "Request not canceled" #~ msgstr "Begäran inte annullerad" #~ msgid "All requests done" #~ msgstr "Alla begäran utförda" #~ msgid "Interrupted by a signal" #~ msgstr "Avbruten av en signal" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Parametersträng inte korrekt kodad" #~ msgid "Unknown error" #~ msgstr "Okänt fel" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: flaggan ”%s%s” är tvetydig\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: flaggan ”%s%s” är tvetydig: möjligheter:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: okänd flagga ”%s%s”\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: flaggan ”%s%s” tar inget argument\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: flaggan ”%s%s” kräver ett argument\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: ogiltig flagga -- ”%c”\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: flaggan kräver ett argument -- ”%c”\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "ogiltigt source_version-argument till compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "ogiltigt target_version-argument till compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "det gick inte att skapa ”%s”" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "fel vid skrivning av filen ”%s”" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Javakompilator hittades inte, försök installera gcj eller sätta $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Virtuell Javamaskin hittades inte, försök installera gij eller sätta $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s-underprocess I/O-fel" #, c-format #~ msgid "cannot stat %s" #~ msgstr "kan inte ta status på %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "kan inte ändra rättigheter på %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "kan inte skapa katalogen %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Misslyckades att öppna /dev/zero för läsning" #~ msgid "creation of reading thread failed" #~ msgstr "att skapa lästråd misslyckades" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "" #~ "det gick inte att sätta upp icke blockerande I/O till %s-underprocess" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "kommunikation med %s-underprocess misslyckades" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "skrivning till %s-underprocess misslyckades" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "läsning från %s-underprocess misslyckades" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "underprocess %s avslutad med slutstatus %d" #~ msgid "creation of threads failed" #~ msgstr "att skapa trådar misslyckades" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "%s-underprocess avslutad med slutstatus %d" #~ msgid "Success" #~ msgstr "Lyckades" #~ msgid "No match" #~ msgstr "Ingen träff" #~ msgid "Invalid regular expression" #~ msgstr "Felaktigt reguljärt uttryck" #~ msgid "Invalid collation character" #~ msgstr "Ogiltigt sorteringstecken" #~ msgid "Invalid character class name" #~ msgstr "Ogiltigt teckenklassnamn" #~ msgid "Trailing backslash" #~ msgstr "Avslutande bakstreck" #~ msgid "Invalid back reference" #~ msgstr "Ogiltig bakåtreferens" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Ensam [, [^, [:, [. eller [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "Ensam ( eller \\(" #~ msgid "Unmatched \\{" #~ msgstr "Ensam \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Ogiltigt innehåll i \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Ogiltigt intervallslut" #~ msgid "Memory exhausted" #~ msgstr "Minnet slut" #~ msgid "Invalid preceding regular expression" #~ msgstr "Felaktigt föregående reguljärt uttryck" #~ msgid "Premature end of regular expression" #~ msgstr "Förtida slut av reguljärt uttryck" #~ msgid "Regular expression too big" #~ msgstr "För stort reguljärt uttryck" #~ msgid "Unmatched ) or \\)" #~ msgstr "Ensam ) eller \\)" #~ msgid "No previous regular expression" #~ msgstr "Inget föregående reguljärt uttryck" #~ msgid "^[yY]" #~ msgstr "^[yYjJ]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "ändrar rättigheter på %s" #~ msgid "Hangup" #~ msgstr "Avringd" #~ msgid "Interrupt" #~ msgstr "Avbruten" #~ msgid "Quit" #~ msgstr "Lämnad" #~ msgid "Illegal instruction" #~ msgstr "Otillåten instruktion" #~ msgid "Trace/breakpoint trap" #~ msgstr "Spårnings-/brytpunktsfälla" #~ msgid "Aborted" #~ msgstr "Avbruten (abort)" #~ msgid "Floating point exception" #~ msgstr "Flyttalsundantag" #~ msgid "Killed" #~ msgstr "Dödad" #~ msgid "Bus error" #~ msgstr "Bussfel" #~ msgid "Segmentation fault" #~ msgstr "Segmenteringsfel" #~ msgid "Broken pipe" #~ msgstr "Brutet rör" #~ msgid "Alarm clock" #~ msgstr "Alarmklocka" #~ msgid "Terminated" #~ msgstr "Avslutad" #~ msgid "Urgent I/O condition" #~ msgstr "Brådskande I/O-situation" #~ msgid "Stopped (signal)" #~ msgstr "Stoppad (signal)" #~ msgid "Stopped" #~ msgstr "Stoppad" #~ msgid "Continued" #~ msgstr "Återupptagen" #~ msgid "Child exited" #~ msgstr "Barn avslutade" #~ msgid "Stopped (tty input)" #~ msgstr "Stoppad (terminalläsning)" #~ msgid "Stopped (tty output)" #~ msgstr "Stoppad (terminalskrivning)" #~ msgid "I/O possible" #~ msgstr "I/O möjligt" #~ msgid "CPU time limit exceeded" #~ msgstr "Begränsning av CPU-tid överskriden" #~ msgid "File size limit exceeded" #~ msgstr "Begränsning av filstorlek överskriden" #~ msgid "Virtual timer expired" #~ msgstr "Alarmklocka - virtuell tid gick ut" #~ msgid "Profiling timer expired" #~ msgstr "Profileringsklocka gick ut" #~ msgid "Window changed" #~ msgstr "Ändrat fönster" #~ msgid "User defined signal 1" #~ msgstr "Användarsignal 1" #~ msgid "User defined signal 2" #~ msgstr "Användarsignal 2" #~ msgid "EMT trap" #~ msgstr "Emulatorfälla" #~ msgid "Bad system call" #~ msgstr "Felaktigt systemanrop" #~ msgid "Stack fault" #~ msgstr "Stackfel" #~ msgid "Information request" #~ msgstr "Informationsbegäran" #~ msgid "Power failure" #~ msgstr "Strömavbrott" #~ msgid "Resource lost" #~ msgstr "Förlorad resurs" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "fel vid skrivning till ett stängt rör eller uttag" #~ msgid "cannot create pipe" #~ msgstr "kan inte skapa rör" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Realtidssignal %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Okänd signal %d" #~ msgid "Execution times (seconds)" #~ msgstr "Körtider (sekunder)" #~ msgid "CPU user" #~ msgstr "CPU användare" #~ msgid "CPU system" #~ msgstr "CPU system" #~ msgid "wall clock" #~ msgstr "väggklocka" #~ msgid "iconv function not usable" #~ msgstr "iconv-funktion inte användbar" #~ msgid "iconv function not available" #~ msgstr "iconv-funktion inte tillgänglig" #~ msgid "character out of range" #~ msgstr "tecken utanför intervall" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "kan inte konvertera U+%04X till lokal teckenuppsättning" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "kan inte konvertera U+%04X till lokal teckenuppsättning: %s" #~ msgid "invalid user" #~ msgstr "ogiltig användare" #~ msgid "invalid group" #~ msgstr "ogiltig grupp" #~ msgid "invalid spec" #~ msgstr "ogiltig specifikation" #~ msgid "unable to display error message" #~ msgstr "kan inte visa felmeddelande" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle misslyckades" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "kan inte återställa fb %d: dup2 misslyckades" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s-underprocess" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s-underprocess fick ödesdiger signal %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "misslyckades att sätta filbeskrivaren i text-/binärt läge" #~ msgid "stdin" #~ msgstr "standard in" #~ msgid "stdout" #~ msgstr "standard ut" #~ msgid "stderr" #~ msgstr "standard fel" #~ msgid "unknown stream" #~ msgstr "okänd ström" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "det gick inte att öppna om %s i läget %s" #~ msgid "string comparison failed" #~ msgstr "strängjämförelse misslyckades" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Sätt LC_ALL='C' för att gå runt problemet." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "De jämförda strängarna var %s och %s." #~ msgid "cannot perform formatted output" #~ msgstr "kan inte utföra formaterad utmatning" #~ msgid "standard file descriptors" #~ msgstr "standard filbeskrivare" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "felaktigt %s%s-argument ”%s”" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "felaktigt suffix i %s%s-argument ”%s”" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "%s%s-argumentet ”%s” är för stort" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/tr.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000004127�14445132163�012376� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������L����������������������������;�����3���@��/���t��+�����'�����#�������������<�����X�����h�����j��-���������������������������������� �����K�����>���S��:�����5�����1�����-���5��)���c��$���������������!�����2�����"���$�����G������������� ���������������������������� ������������������������������������ ��� ��������� �����������'�Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�Project-Id-Version: coreutils 5.3.0 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2005-03-14 04:17+0200 Last-Translator: Deniz Akkus Kanca <deniz@arayan.com> Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net> Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: KBabel 1.9.1 �'�Bilinmeyen sistem hatası�Geçerli argümanlar:�%s ve %s tarafından yazıldı. �%s, %s, %s, %s, %s, %s, %s, %s, %s ve başkaları tarafından yazıldı. �%s, %s, %s, %s, %s, %s, %s, %s ve %s tarafından yazıldı. �%s, %s, %s, %s, %s, %s, %s ve %s tarafından yazıldı. �%s, %s, %s, %s, %s, %s ve %s tarafından yazıldı. �%s, %s, %s, %s, %s ve %s tarafından yazıldı. �%s, %s, %s, %s ve %s tarafından yazıldı. �%s, %s, %s ve %s tarafından yazıldı. �%s, %s ve %s tarafından yazıldı. �%s tarafından yazıldı. �`�%s argümanı `%s' için belirsiz�başlangıç çalışma dizinine geri dönülemedi�%s argümanı `%s' için geçersiz�bellek tükendi������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/tr.po�������������������������������������������������������������������������0000644�0000000�0000000�00000034133�14445132162�012231� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of coreutils-5.3.0.tr.po to Turkish # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # Ali Devin Sezer <Ali_Sezer@brown.edu>, 2002. # Nilgün Belma Bugüner <nilgun@superonline.com>, 2001, 2002. # Onur Tolga ŞEHİTOĞLU <onur@lcsl.metu.edu.tr>, 1998. # Deniz Akkus Kanca <deniz@arayan.com>, 2001,2003, 2004. # msgid "" msgstr "" "Project-Id-Version: coreutils 5.3.0\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2005-03-14 04:17+0200\n" "Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n" "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.9.1\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "%s argümanı `%s' için geçersiz" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "%s argümanı `%s' için belirsiz" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Geçerli argümanlar:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Bilinmeyen sistem hatası" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "bellek tükendi" #: lib/openat-die.c:38 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "openat: çalışılan dizini kaydedemedi" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "başlangıç çalışma dizinine geri dönülemedi" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "%s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "%s ve %s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "%s, %s ve %s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "%s, %s, %s \n" "ve %s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "%s, %s, %s, %s \n" "ve %s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "%s, %s, %s, %s, \n" "%s ve %s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "%s, %s, %s, %s, \n" "%s, %s ve %s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "%s, %s, %s, \n" "%s, %s, %s, \n" "%s ve %s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "%s, %s, %s, \n" "%s, %s, %s, \n" "%s, %s ve %s tarafından yazıldı.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "%s, %s, %s, \n" "%s, %s, %s, \n" "%s, %s, %s ve başkaları tarafından yazıldı.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format msgid "Report bugs to: %s\n" msgstr "" "\n" "Yazılım hatalarını <%s> adresine,\n" "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildirin.\n" #: lib/version-etc.c:251 #, fuzzy, c-format msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Yazılım hatalarını <%s> adresine,\n" "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildirin.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" # #, fuzzy #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de " #~ "zorunludur.\n" #, fuzzy #~ msgid " [OPTION...]" #~ msgstr "Kullanım: %s [SEÇENEK]...\n" #, fuzzy, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "Daha fazla bilgi için `%s --help' yazın.\n" #~ msgid "NAME" #~ msgstr "İSİM" #, fuzzy, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: çok fazla sağlama satırı" #, fuzzy #~ msgid "program error" #~ msgstr "okuma hatası" #~ msgid "write error" #~ msgstr "yazma hatası" #, fuzzy, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "%s okumak için açılamadı" #, fuzzy, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "%s yazmak için açılamadı" #, fuzzy, c-format #~ msgid "error reading \"%s\"" #~ msgstr "%s'i okunurken hata" #, fuzzy, c-format #~ msgid "error writing \"%s\"" #~ msgstr "%s'e yazarken hata" #, fuzzy, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "%s'i okunurken hata" #, fuzzy #~ msgid "fdopen() failed" #~ msgstr "açma işlemi başarısız" #, fuzzy, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s: arama (seek) başarısız" # #~ msgid "regular empty file" #~ msgstr "normal boş dosya" # #~ msgid "regular file" #~ msgstr "normal dosya" #~ msgid "directory" #~ msgstr "dizin" # #~ msgid "block special file" #~ msgstr "blok özel dosyası" # #~ msgid "character special file" #~ msgstr "karakter özel dosyası" # #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "symbolic link" #~ msgstr "sembolik bağ" #~ msgid "socket" #~ msgstr "soket" #~ msgid "message queue" #~ msgstr "ileti kuyruğu" #~ msgid "semaphore" #~ msgstr "semafor" # #~ msgid "shared memory object" #~ msgstr "paylaşımlı bellek nesnesi" # #~ msgid "typed memory object" #~ msgstr "türlenmiş bellek nesnesi" # #~ msgid "weird file" #~ msgstr "garip dosya" #, fuzzy #~ msgid "Address family for hostname not supported" #~ msgstr "fifo dosyaları desteklenmiyor" #, fuzzy #~ msgid "ai_family not supported" #~ msgstr "fifo dosyaları desteklenmiyor" #, fuzzy #~ msgid "ai_socktype not supported" #~ msgstr "fifo dosyaları desteklenmiyor" #, fuzzy #~ msgid "System error" #~ msgstr "yazma hatası" #, fuzzy #~ msgid "Unknown error" #~ msgstr "Bilinmeyen sistem hatası" #, c-format #~ msgid "%s: option `%s' is ambiguous\n" #~ msgstr "%s: `%s' seçeneği belirsiz\n" #, c-format #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: `--%s' seçeneği argümansız kullanılır\n" #, c-format #~ msgid "%s: option `%c%s' doesn't allow an argument\n" #~ msgstr "%s: seçenek `%c%s' argümansız kullanılır\n" #, c-format #~ msgid "%s: option `%s' requires an argument\n" #~ msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n" #, c-format #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s: `--%s' seçeneği bilinmiyor\n" #, c-format #~ msgid "%s: unrecognized option `%c%s'\n" #~ msgstr "%s: `%c%s' seçeneği bilinmiyor\n" #, c-format #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: kuraldışı seçenek -- %c\n" #, c-format #~ msgid "%s: invalid option -- %c\n" #~ msgstr "%s: geçersiz seçenek -- %c\n" #, c-format #~ msgid "%s: option requires an argument -- %c\n" #~ msgstr "%s: seçenek bir argümanla kullanılır -- %c\n" #, c-format #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s: `-W %s' seçeneği belirsiz\n" #, c-format #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s: `-W %s' seçeneği argümansız kullanılır\n" #~ msgid "block size" #~ msgstr "blok uzunluğu" #, c-format #~ msgid "%s exists but is not a directory" #~ msgstr "%s var ama bir dizin değil" #, c-format #~ msgid "cannot change owner and/or group of %s" #~ msgstr "%s'in sahibi ve/veya grubu değiştirilemiyor" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "%s dizini oluşturulamıyor" #, c-format #~ msgid "cannot chdir to directory %s" #~ msgstr "%s dizinine geçilemedi" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "%s'in erişim izinleri değiştirilemiyor" #, fuzzy #~ msgid "Failed to open /dev/zero for read" #~ msgstr "%s: yazmak için açılamadı" #, fuzzy #~ msgid "cannot create pipe" #~ msgstr "%s bağı oluşturulamadı" #, fuzzy #~ msgid "Invalid regular expression" #~ msgstr "%s: geçersiz düzenli ifade(regular expression): %s" #, fuzzy #~ msgid "Invalid character class name" #~ msgstr "geçersiz karakter sınıfı `%s'" #, fuzzy #~ msgid "Invalid range end" #~ msgstr "Geçersiz sayfa aralığı `%s'" #, fuzzy #~ msgid "Memory exhausted" #~ msgstr "bellek tükendi" #, fuzzy #~ msgid "Invalid preceding regular expression" #~ msgstr "%s: geçersiz düzenli ifade(regular expression): %s" #, fuzzy #~ msgid "Premature end of regular expression" #~ msgstr "düzenli ifade (regular expression) aramasında hata oluştu" #, fuzzy #~ msgid "Regular expression too big" #~ msgstr "%s: geçersiz düzenli ifade(regular expression): %s" #, fuzzy #~ msgid "No previous regular expression" #~ msgstr "düzenli ifade (regular expression) aramasında hata oluştu" #~ msgid "^[yY]" #~ msgstr "^[eE]" #~ msgid "^[nN]" #~ msgstr "^[hH]" # #~ msgid "iconv function not usable" #~ msgstr "iconv işlevi kullanılabilir değil" #~ msgid "iconv function not available" #~ msgstr "iconv işlevi yok" #~ msgid "character out of range" #~ msgstr "karakter kapsamdışı" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "U+%04X yerel karakter kümesine dönüştürülemiyor" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "U+%04X yerel karakter kümesine dönüştürülemiyor: %s" #~ msgid "invalid user" #~ msgstr "kullanıcı geçersiz" #~ msgid "invalid group" #~ msgstr "grup geçersiz" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "bir sayısal kullanıcı-kimliğin grubu alınamıyor" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "Bu, bir serbest yazılımdır; Free Software Foundation tarafından " #~ "yayınlanan\n" #~ "GNU Genel Kamu Lisansı, 2. sürüm (veya sizin seçiminize bağlı olarak) " #~ "daha üst \n" #~ "sürüm koşulları altında değişiklik yapabilir ve/veya yeniden " #~ "dağıtabilirsiniz. \n" #~ "\n" # #~ msgid "string comparison failed" #~ msgstr "dizge karşılaştırması başarısız" # #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Problemi devre dışı bırakmak için LC_ALL='C' tanımlayın." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Karşılaştırılan dizgeler %s ve %s idi." �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/uk.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000007102�14445132163�012364� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*�����!����)��������B�����D�����G���������w ��"��� ��F��� ��/��� ��0���/ ��/���` ����� ��?��� ��5��� ��1���! ��-���S ��)��� ��&��� ��"��� ����� ����� �����% ��8���' ��F���` ��4��� �� ��� ��D��� ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-05-19 14:26+0300 Last-Translator: Yuri Chornoivan <yurchor@ukr.net> Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org> Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Lokalize 19.03.70 �домашня сторінка %s: <%s> �'�©�Загальна довідкова інформація щодо використання програмного забезпечення GNU: <%s> �Умови ліцензування викладено у GPLv3+: GNU GPL версії 3 або новішій, <%s> Це вільне програмне забезпечення: ви можете вільно змінювати і поширювати його. Вам не надається ЖОДНИХ ГАРАНТІЙ, окрім гарантій передбачених законодавством. �Пакет створив %s �Пакет створив %s (%s) �Про помилки у програмі %s звітуйте на %s �Про помилки звітуйте на %s �Невідома системна помилка�Дозволені аргументи такі:�Автори: %s та %s. �Автори: %s, %s, %s %s, %s, %s, %s, %s, %s та інші. �Автори: %s, %s, %s %s, %s, %s, %s, %s та %s. �Автори: %s, %s, %s %s, %s, %s, %s та %s. �Автори: %s, %s, %s %s, %s, %s та %s. �Автори: %s, %s, %s %s, %s та %s. �Автори: %s, %s, %s %s, та %s. �Автори: %s, %s, %s та %s. �Автори: %s, %s та %s. �Автор: %s. �`�неоднозначний аргумент %s для %s�не вдається зберегти поточний каталог�некоректний аргумент %s для %s�пам'ять вичерпано�не вдається змінити поточний каталог���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/uk.po�������������������������������������������������������������������������0000644�0000000�0000000�00000076510�14445132162�012230� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Ukrainian messages for gnulib # This file is distributed under the same license as the gnulib package. # Copyright (C) 2010 Free Software Foundation, Inc. # # Sergey Poznyakoff <gray@gnu.org>, 2010. # Yuri Chornoivan <yurchor@ukr.net>, 2011, 2019. msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-05-19 14:26+0300\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 19.03.70\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "некоректний аргумент %s для %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "неоднозначний аргумент %s для %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Дозволені аргументи такі:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Невідома системна помилка" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "пам'ять вичерпано" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "не вдається змінити поточний каталог" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "не вдається зберегти поточний каталог" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "`" #: lib/quotearg.c:355 msgid "'" msgstr "'" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Пакет створив %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Пакет створив %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Умови ліцензування викладено у GPLv3+: GNU GPL версії 3 або новішій, <%s>\n" "Це вільне програмне забезпечення: ви можете вільно змінювати і поширювати " "його.\n" "Вам не надається ЖОДНИХ ГАРАНТІЙ, окрім гарантій передбачених " "законодавством.\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Автор: %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Автори: %s та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Автори: %s, %s та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Автори: %s, %s, %s\n" "та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Автори: %s, %s, %s\n" "%s, та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Автори: %s, %s, %s\n" "%s, %s та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Автори: %s, %s, %s\n" "%s, %s, %s та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Автори: %s, %s, %s\n" "%s, %s, %s, %s та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Автори: %s, %s, %s\n" "%s, %s, %s, %s,\n" "%s та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Автори: %s, %s, %s\n" "%s, %s, %s, %s,\n" "%s, %s та інші.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "Про помилки звітуйте на %s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "Про помилки у програмі %s звітуйте на %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "домашня сторінка %s: <%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "" "Загальна довідкова інформація щодо використання програмного забезпечення " "GNU: <%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: значення %s є менше ніж або дорівнює %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: параметр ARGP_HELP_FMT вимагає значення" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Невідомий параметр ARGP_HELP_FMT" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Хибні дані в ARGP_HELP_FMT: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Аргументи, обов'язкові для довгих ключів, є обов'язковими й для коротких." #~ msgid "Usage:" #~ msgstr "Використання:" #~ msgid " or: " #~ msgstr " чи: " #~ msgid " [OPTION...]" #~ msgstr " [ПАРАМЕТР...]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "" #~ "Віддайте команду «%s --help» або «%s --usage», щоб дізнатися більше.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Про помилки звітуйте на <%s>.\n" #~ msgid "give this help list" #~ msgstr "вивести цю довідку" #~ msgid "give a short usage message" #~ msgstr "вивести коротке повідомлення про використання" #~ msgid "NAME" #~ msgstr "НАЗВА" #~ msgid "set the program name" #~ msgstr "встановити назву програми" #~ msgid "SECS" #~ msgstr "СЕКУНДИ" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "зачекати вказану кількість секунд (типово 3600)" #~ msgid "print program version" #~ msgstr "вивести версію програми" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Невідома версія!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: забагато аргументів\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Параметр мала бути розпізнана!?" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs, %u звільнено (%.2f%%).\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets, %u кешовано (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets, %u кешовано (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests, %u кешовано (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #~ msgid "count log histogram\n" #~ msgstr "гістограма журналу лічильників\n" #~ msgid "size log histogram\n" #~ msgstr "гістограма журналу розміру\n" #~ msgid "density histogram\n" #~ msgstr "гістограма щільності\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Статистика наборів бітів:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "Акумульовані запуски = %u\n" #~ msgid "cannot read stats file" #~ msgstr "не вдалося прочитати файл статистичних даних" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "помилковий розмір файла статистичних даних\n" #~ msgid "cannot write stats file" #~ msgstr "не вдалося записати файл статистичних даних." #~ msgid "cannot open stats file for writing" #~ msgstr "не вдалося відкрити файл статистичних даних для запису" #~ msgid "program error" #~ msgstr "помилка програми" #~ msgid "stack overflow" #~ msgstr "переповнення стосу" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "не вдається знайти тимчасовий каталог, спробуйте встановити $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "" #~ "не вдається створити тимчасовий каталог використовуючи шаблон \"%s\"" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "не вдається усунути тимчасовий файл %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "не вдається усунути тимчасовий каталог %s" #~ msgid "error closing file" #~ msgstr "помилка закриття файлу" #~ msgid "write error" #~ msgstr "помилка запису" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "збереження прав доступу до %s" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "помилка при відкриванні «%s» для читання" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "не вдається відкрити резервний файл «%s» для запису" #, c-format #~ msgid "error reading %s" #~ msgstr "помилка читання %s" #, c-format #~ msgid "error writing %s" #~ msgstr "помилка запису %s" #, c-format #~ msgid "error after reading %s" #~ msgstr "помилка після читання «%s»" #~ msgid "fdopen() failed" #~ msgstr "помилка fdopen()" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "не знайдено компілятора C#, спробуйте встановити mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "не знайдено віртуальної машини C#, спробуйте встановити mono" #~ msgid "unbalanced [" #~ msgstr "неврівноважена дужка [" #~ msgid "invalid character class" #~ msgstr "некоректний клас символів" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "" #~ "синтаксис класу символів є таким: [[:space:]], — а не таким: [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "незавершене екранування \\" #~ msgid "invalid content of \\{\\}" #~ msgstr "некоректний вміст \\{\\}" #~ msgid "regular expression too big" #~ msgstr "занадто об'ємний формальний вираз" #~ msgid "unbalanced (" #~ msgstr "неврівноважена дужка (" #~ msgid "no syntax specified" #~ msgstr "не вказано синтаксису" #~ msgid "unbalanced )" #~ msgstr "неврівноважена дужка )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "нащадок %s зазнав невдачі" #~ msgid "regular empty file" #~ msgstr "звичайний порожній файл" #~ msgid "regular file" #~ msgstr "звичайний файл" #~ msgid "directory" #~ msgstr "каталог" #~ msgid "symbolic link" #~ msgstr "символьне посилання" #~ msgid "message queue" #~ msgstr "черга повідомлень" #~ msgid "semaphore" #~ msgstr "семафор" #~ msgid "shared memory object" #~ msgstr "спільний об'єкт пам'яті" #~ msgid "typed memory object" #~ msgstr "типізований об'єкт пам'яті" #~ msgid "block special file" #~ msgstr "спеціальний блоковий файл" #~ msgid "character special file" #~ msgstr "спеціальний символьний файл" #~ msgid "contiguous data" #~ msgstr "неперервні дані" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "door" #~ msgstr "двері" #~ msgid "multiplexed block special file" #~ msgstr "спеціальний файл ущільненого блокового пристрою" #~ msgid "multiplexed character special file" #~ msgstr "спеціальний файл ущільненого символьного пристрою" #~ msgid "multiplexed file" #~ msgstr "ущільнений файл" #~ msgid "named file" #~ msgstr "іменований файл" #~ msgid "network special file" #~ msgstr "спеціальний файл мережі" #~ msgid "migrated file with data" #~ msgstr "перенесений файл з даними" #~ msgid "migrated file without data" #~ msgstr "перенесений файл без даних" #~ msgid "port" #~ msgstr "порт" #~ msgid "socket" #~ msgstr "гніздо" #~ msgid "whiteout" #~ msgstr "забілювання" #~ msgid "weird file" #~ msgstr "дивний файл" #~ msgid "Address family for hostname not supported" #~ msgstr "Родина адрес для назви вузла не підтримується" #~ msgid "Temporary failure in name resolution" #~ msgstr "Тимчасова помилка розв'язування назви вузла" #~ msgid "Bad value for ai_flags" #~ msgstr "Недійсне значення ai_flags" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Невиправна помилка розв'язування назви вузла" #~ msgid "ai_family not supported" #~ msgstr "ai_family не підтримується" #~ msgid "Memory allocation failure" #~ msgstr "Помилка розподілу пам'яті" #~ msgid "No address associated with hostname" #~ msgstr "З цією назвою вузла не пов’язано жодної адреси" #~ msgid "Name or service not known" #~ msgstr "Невідоме ім'я або служба" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Підтримки назв служб у ai_socktype не передбачено" #~ msgid "ai_socktype not supported" #~ msgstr "ai_socktype не підтримується" #~ msgid "System error" #~ msgstr "Системна помилка" #~ msgid "Argument buffer too small" #~ msgstr "Замалий буфер для аргументів" #~ msgid "Processing request in progress" #~ msgstr "Виконується обробка запиту" #~ msgid "Request canceled" #~ msgstr "Запит скасовано" #~ msgid "Request not canceled" #~ msgstr "Запит не скасовано" #~ msgid "All requests done" #~ msgstr "Всі запити оброблено" #~ msgid "Interrupted by a signal" #~ msgstr "Переривання сигналом" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Неправильно закодований рядок параметра" #~ msgid "Unknown error" #~ msgstr "Невідома помилка" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s: параметр «%s%s» не є однозначним\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s: неоднозначний параметр «%s%s»; можливі варіанти:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s: невідомий параметр «%s%s»\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s: додавання аргументів до параметра «%s%s» не передбачено\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s: до параметра «%s%s» слід додати аргумент\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: Некоректний параметр -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: параметр вимагає аргументу -- '%c'\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "недійсне значення аргументу source_version для compile_java_class" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "недійсне значення аргументу target_version для compile_java_class" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "не вдалося створити \"%s\"" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "помилка запису у файл \"%s\"" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Не знайдено компілятора java, спробуйте встановити gcj або задати " #~ "значення $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Не знайдено віртуальної машини java, спробуйте встановити gij або задати " #~ "значення $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "помилка вводу-виводу нащадка %s" #, c-format #~ msgid "cannot stat %s" #~ msgstr "не вдалося отримати статистичні дані щодо %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "не вдається змінити права доступу до %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "не вдається створити каталог %s" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Не вдалося відкрити /dev/zero для читання" #~ msgid "creation of reading thread failed" #~ msgstr "не вдалося створити потік читання" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "не вдається встановити неблокуючий ввід-вивід з підпроцесом %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "помилка зв'язку з підпроцесом %s" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "помилка запису у підпроцес %s" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "помилка читання з підпроцесу %s" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "підпроцес %s закінчився кодом %d" #~ msgid "creation of threads failed" #~ msgstr "помилка створення потоків" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "підпроцес %s закінчився кодом %d" #~ msgid "Success" #~ msgstr "Успіх" #~ msgid "No match" #~ msgstr "Брак збігів" #~ msgid "Invalid regular expression" #~ msgstr "Некоректний формальний вираз" #~ msgid "Invalid collation character" #~ msgstr "Некоректний об'єднувальний символ" #~ msgid "Invalid character class name" #~ msgstr "Некоректна назва класу символів" #~ msgid "Trailing backslash" #~ msgstr "Зворотна похила риска наприкінці виразу" #~ msgid "Invalid back reference" #~ msgstr "Недійсне зворотнє посилання" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "Вираз без парних [, [^, [:, [. або [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "Незакрита ( або \\(" #~ msgid "Unmatched \\{" #~ msgstr "Незакрита \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Некоректний вміст \\{\\}" #~ msgid "Invalid range end" #~ msgstr "Некоректний кінець діапазону" #~ msgid "Memory exhausted" #~ msgstr "Пам'ять вичерпана" #~ msgid "Invalid preceding regular expression" #~ msgstr "Некоректний попередній формальний вираз" #~ msgid "Premature end of regular expression" #~ msgstr "Передчасне закінчення формального виразу" #~ msgid "Regular expression too big" #~ msgstr "Завеликий формальний вираз" #~ msgid "Unmatched ) or \\)" #~ msgstr "Неузгоджена ) або \\)" #~ msgid "No previous regular expression" #~ msgstr "Не вказано попереднього формального виразу" #~ msgid "^[yY]" #~ msgstr "^[yYтТ]" #~ msgid "^[nN]" #~ msgstr "^[nNнН]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "встановлення прав доступу до %s" #~ msgid "Hangup" #~ msgstr "Відбій" #~ msgid "Interrupt" #~ msgstr "Переривання" #~ msgid "Quit" #~ msgstr "Закінчення" #~ msgid "Illegal instruction" #~ msgstr "Недійсна інструкція" #~ msgid "Trace/breakpoint trap" #~ msgstr "Перехоплення трасування/контрольної точки" #~ msgid "Aborted" #~ msgstr "Аварійне завершення" #~ msgid "Floating point exception" #~ msgstr "Виняток операції з рухомою крапкою" #~ msgid "Killed" #~ msgstr "Знищено" #~ msgid "Bus error" #~ msgstr "Помилка шини" #~ msgid "Segmentation fault" #~ msgstr "Помилка сегментації" #~ msgid "Broken pipe" #~ msgstr "Розімкнений конвеєр" #~ msgid "Alarm clock" #~ msgstr "Таймер" #~ msgid "Terminated" #~ msgstr "Закінчено" #~ msgid "Urgent I/O condition" #~ msgstr "Екстрена ситуація вводу-виводу" #~ msgid "Stopped (signal)" #~ msgstr "Припинення (сигнал)" #~ msgid "Stopped" #~ msgstr "Припинення" #~ msgid "Continued" #~ msgstr "Продовження" #~ msgid "Child exited" #~ msgstr "Нащадок завершився" #~ msgid "Stopped (tty input)" #~ msgstr "Припинення (ввід з консолі)" #~ msgid "Stopped (tty output)" #~ msgstr "Припинення (вивід на консоль)" #~ msgid "I/O possible" #~ msgstr "Можливий ввід-вивід" #~ msgid "CPU time limit exceeded" #~ msgstr "Перевищення ліміту часу ЦП" #~ msgid "File size limit exceeded" #~ msgstr "Перевищення ліміту розміру файлів" #~ msgid "Virtual timer expired" #~ msgstr "Відлік віртуального таймера завершено" #~ msgid "Profiling timer expired" #~ msgstr "Відлік таймера профілювання завершено" #~ msgid "Window changed" #~ msgstr "Вікно змінилося" #~ msgid "User defined signal 1" #~ msgstr "Визначений користувачем сигнал 1" #~ msgid "User defined signal 2" #~ msgstr "Визначений користувачем сигнал 2" #~ msgid "EMT trap" #~ msgstr "Пастка EMT" #~ msgid "Bad system call" #~ msgstr "Некоректний системний виклик" #~ msgid "Stack fault" #~ msgstr "Збій стосу" #~ msgid "Information request" #~ msgstr "Запит інформації" #~ msgid "Power failure" #~ msgstr "Аварія живлення" #~ msgid "Resource lost" #~ msgstr "Втрата засобу" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "помилка запису у закритий конвеєр або гніздо" #~ msgid "cannot create pipe" #~ msgstr "не вдається створити конвеєр" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Сигнал реального часу %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Невідомий сигнал %d" #~ msgid "Execution times (seconds)" #~ msgstr "Час виконання (у секундах)" #~ msgid "CPU user" #~ msgstr "Користувач процесора" #~ msgid "CPU system" #~ msgstr "Система процесора" #~ msgid "wall clock" #~ msgstr "настінний годинник" #~ msgid "iconv function not usable" #~ msgstr "функція iconv непридатна до вжитку" #~ msgid "iconv function not available" #~ msgstr "функція iconv недоступна" #~ msgid "character out of range" #~ msgstr "символ поза діапазоном" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "не вдається передати U+%04X у локальному зборі знаків" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "не вдається передати U+%04X у локальному зборі знаків: %s" #~ msgid "invalid user" #~ msgstr "Некоректний користувач" #~ msgid "invalid group" #~ msgstr "недійсна група" #~ msgid "invalid spec" #~ msgstr "недійсна специфікація" #~ msgid "unable to display error message" #~ msgstr "не вдається вивести повідомлення про помилку" #~ msgid "_open_osfhandle failed" #~ msgstr "помилка _open_osfhandle" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "не вдається відновити дескриптор %d: помилка dup2" #, c-format #~ msgid "%s subprocess" #~ msgstr "нащадок процесу %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "підпроцес %s отримав фатальний сигнал %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "" #~ "не вдалося встановити текстовий або двійковий режим для дескриптора файла" #~ msgid "stdin" #~ msgstr "stdin" #~ msgid "stdout" #~ msgstr "stdout" #~ msgid "stderr" #~ msgstr "stderr" #~ msgid "unknown stream" #~ msgstr "невідомий потік" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "не вдалося відкрити %s у режимі %s" #~ msgid "string comparison failed" #~ msgstr "невдале порівняння рядків" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Встановити LC_ALL='C', щоб уникнути цієї помилки." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Порівнювалися рядки: \"%s\" та \"%s\"." #~ msgid "cannot perform formatted output" #~ msgstr "неможливо здійснити форматований вивід" #~ msgid "standard file descriptors" #~ msgstr "стандартні дескриптори файлів" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "некоректний аргумент %s%s — «%s»" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "некоректний суфікс в аргументі %s%s: «%s»" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "%s%s, аргумент «%s» є занадто об’ємним" #~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n" #~ msgstr "Домашня сторінка %s: <https://www.gnu.org/software/%s/>\n" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: параметр ARGP_HELP_FMT має бути додатнім" #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: параметр '--%s' не може мати аргументу\n" #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: невідомий параметр '--%s'\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: параметр '-W %s' не може мати аргументу\n" #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: для використання параметра «-W %s» слід вказати аргумент\n" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc,ois Pinard" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/vi.gmo������������������������������������������������������������������������0000644�0000000�0000000�00000005131�14445132163�012363� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������@�����A�����U�����W�����[�����k����������������������;�����3�����/���H��+���x��'�����#������������������,�����<�����>��-���[������������*����������������������������������n���0��%���������������I�����4���D��0���y��,�����&�����$����� ���# �����D �����a �����r ��+���v ��A��� ��'��� ����� ��;��� ����������������������������������������� ����������������� ��������������������������������� ������������������������� ��� �������%s home page: <%s> �'�(C)�Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib-3.0.0.6062.a6b16 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2014-01-13 08:31+0700 Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com> Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net> Language: vi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=1; plural=0; X-Generator: Poedit 1.5.5 X-Poedit-SourceCharset: utf-8 �Trang chủ %s: <%s> �”�©�Gói đóng bởi %s �Gói đóng bởi %s (%s) �Hãy thông báo lỗi %s cho: %s Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>. �Gặp lỗi hệ thống chưa biết�Các đối số hợp lệ:�Tác giả: %s và %s. �Tác giả: %s, %s, %s, %s, %s, %s, %s, %s, %s, và các người khác. �Tác giả: %s, %s, %s, %s, %s, %s, %s, %s, và %s. �Tác giả: %s, %s, %s, %s, %s, %s, %s, và %s. �Tác giả: %s, %s, %s, %s, %s, %s, và %s. �Tác gia: %s, %s, %s, %s, %s, và %s. �Tác giả: %s, %s, %s, %s, và %s. �Tác giả: %s, %s, %s, và %s. �Tác giả: %s, %s, và %s. �Tác giả: %s. �“�đối số chưa rõ ràng %s dành cho %s�gặp lỗi khi quay trở về thư mục làm việc ban đầu�đối số không hợp lệ %s cho %s�hết bộ nhớ�không thể ghi lại thư mục làm việc hiện thời����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/vi.po�������������������������������������������������������������������������0000644�0000000�0000000�00000062727�14445132162�012234� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Vietnamese translation for GNU Lib. # Bản dịch Tiếng Việt dành cho GNU Lib. # Copyright © 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Clytie Siddall <clytie@riverland.net.au>, 2006-2010. # Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2014. # msgid "" msgstr "" "Project-Id-Version: gnulib-3.0.0.6062.a6b16\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2014-01-13 08:31+0700\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.5.5\n" "X-Poedit-SourceCharset: utf-8\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "đối số không hợp lệ %s cho %s" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "đối số chưa rõ ràng %s dành cho %s" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "Các đối số hợp lệ:" #: lib/error.c:193 msgid "Unknown system error" msgstr "Gặp lỗi hệ thống chưa biết" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "hết bộ nhớ" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "không thể ghi lại thư mục làm việc hiện thời" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "gặp lỗi khi quay trở về thư mục làm việc ban đầu" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "“" #: lib/quotearg.c:355 msgid "'" msgstr "”" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Gói đóng bởi %s (%s)\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Gói đóng bởi %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "©" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format #| msgid "" #| "\n" #| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #| "html>.\n" #| "This is free software: you are free to change and redistribute it.\n" #| "There is NO WARRANTY, to the extent permitted by law.\n" #| "\n" msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "GPLv3+: Giấy Phép Công Cộng GNU, phiên bản 3 hay mới hơn <http://gnu.org/" "licenses/gpl.html>\n" "Đây là phần mềm tự do: bạn có quyền thay đổi và phát hành lại nó.\n" "KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép.\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "Tác giả: %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "Tác giả: %s và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Tác giả: %s, %s, và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "Tác giả: %s, %s, %s,\n" "và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Tác giả: %s, %s, %s,\n" "%s, và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "Tác gia: %s, %s, %s,\n" "%s, %s, và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "Tác giả: %s, %s, %s,\n" "%s, %s, %s, và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "Tác giả: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "Tác giả: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "Tác giả: %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, và các người khác.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "Hãy thông báo lỗi cho: %s\n" "Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "" "Hãy thông báo lỗi %s cho: %s\n" "Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "Trang chủ %s: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "" "Trợ giúp chung về cách sử dụng phần mềm GNU: <http://www.gnu.org/gethelp/>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: giá trị %s nhỏ hơn hoặc bằng %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: tham số “ARGP_HELP_FMT” cần được gán giá trị" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: tham số “ARGP_HELP_FMT” phải là số dương" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: Không biết tham số “ARGP_HELP_FMT”" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "Gặp rác trong “ARGP_HELP_FMT”: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "Các đối số là bắt buộc hay chỉ là tùy chọn khi dùng với tùy chọn dài thì " #~ "tùy chọn ngắn tương ứng cũng vậy." #~ msgid "Usage:" #~ msgstr "Cách dùng:" #~ msgid " or: " #~ msgstr " hoặc:" #~ msgid " [OPTION...]" #~ msgstr " [TÙY_CHỌN...]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "" #~ "Hãy chạy “%s --help” (trợ giúp) hay “%s --usage” (cách dùng) để xem thông " #~ "tin thêm.\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "Hãy thông báo lỗi cho %s.\n" #~ msgid "give this help list" #~ msgstr "hiển thị trợ giúp này" #~ msgid "give a short usage message" #~ msgstr "hiển thị cách dùng dạng ngắn gọn" #~ msgid "NAME" #~ msgstr "TÊN" #~ msgid "set the program name" #~ msgstr "đặt tên chương trình" #~ msgid "SECS" #~ msgstr "GIÂY" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "treo trong vòng GIÂY giây (mặc định là 3600)" #~ msgid "print program version" #~ msgstr "in ra phiên bản chương trình" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(LỖI CHƯƠNG TRÌNH) Không có phiên bản đã biết ?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s: Quá nhiều đối số\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(LỖI CHƯƠNG TRÌNH) Tùy chọn đáng ra nên được nhận diện!?" #~ msgid "program error" #~ msgstr "lỗi chương trình" #~ msgid "stack overflow" #~ msgstr "tràn ngăn xếp" #, c-format #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "" #~ "không tìm thấy thư mục tạm thời, hãy thử đặt biến môi trường $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "không thể tạo một thư mục tạm thời dùng mẫu “%s”" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "không thể gỡ bỏ tập tin tạm thời %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "không thể gỡ bỏ thư mục tạm thời %s" #~ msgid "error closing file" #~ msgstr "lỗi đóng tập tin" #~ msgid "write error" #~ msgstr "lỗi ghi" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "đang bảo tồn quyền hạn cho %s" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "gặp lỗi khi mở “%s” để đọc" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "không thể mở tập tin sao lưu dự phòng “%s” để ghi" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "gặp lỗi khi đọc “%s”" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "gặp lỗi khi ghi “%s”" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "gặp lỗi sau khi đọc “%s”" #, c-format #~ msgid "fdopen() failed" #~ msgstr "fdopen() bị lỗi" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "Không tìm thấy trình biên dịch C# nên thử cài đặt pnet" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "Không tìm thấy cơ chế ảo C# nên thử cài đặt pnet" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "Tiến trình con %s bị lỗi" #~ msgid "regular empty file" #~ msgstr "tập tin rỗng kiểu thường" #~ msgid "regular file" #~ msgstr "tập tin thông thường" #~ msgid "directory" #~ msgstr "thư mục" #~ msgid "block special file" #~ msgstr "tập tin đặc biệt khối" #~ msgid "character special file" #~ msgstr "tập tin đặc biệt ký tự" #~ msgid "fifo" #~ msgstr "fifo (vào trước, ra trước)" #~ msgid "symbolic link" #~ msgstr "liên kết mềm" #~ msgid "socket" #~ msgstr "ổ cắm" #~ msgid "message queue" #~ msgstr "hàng đợi thông điệp" #~ msgid "semaphore" #~ msgstr "cờ hiệu" #~ msgid "shared memory object" #~ msgstr "đối tượng bộ nhớ dùng chung" #~ msgid "typed memory object" #~ msgstr "đốí tượng bộ nhớ đánh kiểu" #~ msgid "weird file" #~ msgstr "tập tin kỳ quặc" #~ msgid "Address family for hostname not supported" #~ msgstr "Họ địa chỉ dành cho tên máy không được hỗ trợ" #~ msgid "Temporary failure in name resolution" #~ msgstr "Tạm thời không thể quyết định tên" #~ msgid "Bad value for ai_flags" #~ msgstr "Giá trị sai đối với “ai_flags” (cờ)" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "Lỗi không thể phục hồi khi phân giải tên" #~ msgid "ai_family not supported" #~ msgstr "Không hỗ trợ “ai_family”" #~ msgid "Memory allocation failure" #~ msgstr "Lỗi cấp phát bộ nhớ" #~ msgid "No address associated with hostname" #~ msgstr "Không có địa chỉ liên quan đến tên máy" #~ msgid "Name or service not known" #~ msgstr "Không nhận ra tên hay dịch vụ" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "Không hỗ trợ tên máy phục vụ đối với “ai_socktype” (kiểu ổ cắm)" #~ msgid "ai_socktype not supported" #~ msgstr "Không hỗ trợ “ai-socktype” (kiểu ổ cắm)" #~ msgid "System error" #~ msgstr "Lỗi hệ thống" #~ msgid "Argument buffer too small" #~ msgstr "Vùng đệm đối số quá ngắn" #~ msgid "Processing request in progress" #~ msgstr "Yêu cầu xử lý đang chạy" #~ msgid "Request canceled" #~ msgstr "Yêu cầu bị hủy bỏ" #~ msgid "Request not canceled" #~ msgstr "Yêu cầu chưa bị hủy bỏ" #~ msgid "All requests done" #~ msgstr "Mọi yêu cầu hoàn tất" #~ msgid "Interrupted by a signal" #~ msgstr "bị tín hiệu gián đoạn" #~ msgid "Parameter string not correctly encoded" #~ msgstr "Chuỗi tham số không phải được mã hóa đúng" #~ msgid "Unknown error" #~ msgstr "Gặp lỗi không rõ" #, c-format #~ msgid "%s: option '%s' is ambiguous; possibilities:" #~ msgstr "%s: tùy chọn “%s” chưa rõ ràng; khả năng là:" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: tùy chọn “--%s” không cho phép đối số\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: tùy chọn “%c%s” không cho phép đối số\n" #, c-format #~ msgid "%s: option '--%s' requires an argument\n" #~ msgstr "%s: tùy chọn “--%s” yêu cầu một đối số\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: không nhận ra tùy chọn “--%s”\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: không nhận ra tùy chọn “%c%s”\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: tùy chọn không hợp lệ -- “%c”\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: tùy chọn yêu cầu một đối số -- “%c”\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: tùy chọn “-W %s” chưa rõ ràng\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: tùy chọn “-W %s” không cho phép đối số\n" #, c-format #~ msgid "%s: option '-W %s' requires an argument\n" #~ msgstr "%s: tùy chọn “-W %s” yêu cầu một đối số\n" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "" #~ "đối số phiên bản nguồn “source_version” không hợp lệ đối với hạn Java " #~ "biên dịch “compile_java_class”" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "" #~ "đối số phiên bản đích “source_version” không hợp lệ đối với hạn Java biên " #~ "dịch “compile_java_class”" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "gặp lỗi khi tạo “%s”" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "gặp lỗi khi ghi tập tin “%s”" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "" #~ "Không tìm thấy trình biên dịch Java nên thử cài đặt trình “gcj” hoặc đặt " #~ "biến môi trường “$JAVAC”." #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "" #~ "Không tìm thấy cơ chế ảo Java nên thử cài đặt trình “gcj” hoặc đặt biến " #~ "môi trường “$JAVAC”." #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "Lỗi V/R tiến trình con %s" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "không thể thay đổi quyền hạn của %s" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "không thể tạo thư mục %s" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "Gặp lỗi khi mở thiết bị “/dev/zero” để đọc" #, c-format #~ msgid "creation of reading thread failed" #~ msgstr "gặp lỗi khi tạo tuyến trình đọc" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "không thể cài đặt V/R không chặn đối với tiến trình con %s" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "lỗi liên lạc với tiến trình con %s" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "gặp lỗi khi ghi vào tiến trình con %s" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "gặp lỗi khi đọc từ tiến trình con %s" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "tiến trình con %s đã kết thúc với mã thoát %d" #, c-format #~ msgid "creation of threads failed" #~ msgstr "gặp lỗi khi tạo tuyến trình" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "tiến trình con %s đã kết thúc với mã thoát %d" #~ msgid "Franc,ois Pinard" #~ msgstr "Franc,ois Pinard" #~ msgid "Success" #~ msgstr "Thành công" #~ msgid "No match" #~ msgstr "Không khớp" #~ msgid "Invalid regular expression" #~ msgstr "Biểu thức chính quy không hợp lệ" #~ msgid "Invalid collation character" #~ msgstr "Ký tự đối chiếu không hợp lệ" #~ msgid "Invalid character class name" #~ msgstr "Tên loại ký tự không hợp lệ" #~ msgid "Trailing backslash" #~ msgstr "Có xuyệc ngược theo sau" #~ msgid "Invalid back reference" #~ msgstr "Tham chiếu ngược không hợp lệ" #~ msgid "Unmatched [ or [^" #~ msgstr "Chưa khớp ký tự “[” hay “[^”" #~ msgid "Unmatched ( or \\(" #~ msgstr "Chưa khớp ký tự “(” hay “\\(”" #~ msgid "Unmatched \\{" #~ msgstr "Chưa khớp ký tự “\\{”" #~ msgid "Invalid content of \\{\\}" #~ msgstr "Nội dung của “\\{\\}” không hợp lệ" #~ msgid "Invalid range end" #~ msgstr "Kết thúc phạm vi không hợp lệ" #~ msgid "Memory exhausted" #~ msgstr "Hết bộ nhớ" #~ msgid "Invalid preceding regular expression" #~ msgstr "Biểu thức chính quy đi trước không hợp lệ" #~ msgid "Premature end of regular expression" #~ msgstr "Biểu thức chính quy kết thúc quá sớm" #~ msgid "Regular expression too big" #~ msgstr "Biểu thức chính quy quá lớn" #~ msgid "Unmatched ) or \\)" #~ msgstr "Chưa khớp ký tự “)” hay “\\)”" #~ msgid "No previous regular expression" #~ msgstr "Không có biểu thức chính quy đi trước" #~ msgid "^[yY]" #~ msgstr "^[cC]" #~ msgid "^[nN]" #~ msgstr "^[kK]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "đang đặt quyền hạn cho %s" #~ msgid "Hangup" #~ msgstr "Ngưng" #~ msgid "Interrupt" #~ msgstr "Ngắt" #~ msgid "Quit" #~ msgstr "Thoát" #~ msgid "Illegal instruction" #~ msgstr "Câu lệnh sai" #~ msgid "Trace/breakpoint trap" #~ msgstr "Bẫy vết/điểm ngắt" #~ msgid "Aborted" #~ msgstr "Bị hủy bỏ" #~ msgid "Floating point exception" #~ msgstr "Ngoại lệ số thực dấu chấm động" #~ msgid "Killed" #~ msgstr "Bị buộc kết thúc" #~ msgid "Bus error" #~ msgstr "Lỗi bus" #~ msgid "Segmentation fault" #~ msgstr "Lỗi phân đoạn" #~ msgid "Broken pipe" #~ msgstr "Ống dẫn bị hỏng" #~ msgid "Alarm clock" #~ msgstr "Đồng hồ báo động" #~ msgid "Terminated" #~ msgstr "Bị chấm dứt" #~ msgid "Urgent I/O condition" #~ msgstr "Điều kiện V/R khẩn" #~ msgid "Stopped (signal)" #~ msgstr "Bị ngừng (ký hiệu)" #~ msgid "Stopped" #~ msgstr "Bị ngừng" #~ msgid "Continued" #~ msgstr "Đã tiếp tục" #~ msgid "Child exited" #~ msgstr "Tiến trình con đã thoát" #~ msgid "Stopped (tty input)" #~ msgstr "Bị ngừng (đầu vào TTY)" #~ msgid "Stopped (tty output)" #~ msgstr "Bị ngừng (đầu ra TTY)" #~ msgid "I/O possible" #~ msgstr "Có thể V/R" #~ msgid "CPU time limit exceeded" #~ msgstr "Vượt quá thời hạn CPU" #~ msgid "File size limit exceeded" #~ msgstr "Vượt quá giới hạn kích cỡ tập tin" #~ msgid "Virtual timer expired" #~ msgstr "Hàm đếm thời gian ảo đã hết hạn" #~ msgid "Profiling timer expired" #~ msgstr "Hàm đếm thời gian đo hiệu năng sử dụng đã hết hạn" #~ msgid "Window changed" #~ msgstr "Cửa sổ bị thay đổi" #~ msgid "User defined signal 1" #~ msgstr "Tín hiệu do người dùng xác định 1" #~ msgid "User defined signal 2" #~ msgstr "Tín hiệu do người dùng xác định 2" #~ msgid "EMT trap" #~ msgstr "Bẫy EMT" #~ msgid "Bad system call" #~ msgstr "Cú gọi hệ thống sai" #~ msgid "Stack fault" #~ msgstr "Lỗi ngăn xếp" #~ msgid "Information request" #~ msgstr "Yêu cầu thông tin" #~ msgid "Power failure" #~ msgstr "Bị mất điện đột ngột" #~ msgid "Resource lost" #~ msgstr "Tài nguyên bị mất" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "lỗi ghi vào một đường ống hay ổ cắm bị đóng" #, c-format #~ msgid "cannot create pipe" #~ msgstr "không thể tạo ống dẫn" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "Tín hiệu thời gian thật %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "Không rõ tín hiệu %d" #~ msgid "iconv function not usable" #~ msgstr "hàm iconv không khả dụng" #~ msgid "iconv function not available" #~ msgstr "không có hàm iconv" #~ msgid "character out of range" #~ msgstr "Ký tự ở ngoại phạm vi" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "không thể chuyển đổi U+%04X sang bộ ký tự địa phương" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "không thể chuyển đổi U+%04X sang bộ ký tự địa phương: %s" #~ msgid "invalid user" #~ msgstr "người dùng không hợp lệ" #~ msgid "invalid group" #~ msgstr "nhóm không hợp lệ" #~ msgid "invalid spec" #~ msgstr "đặc tả không hợp lệ" #, c-format #~ msgid "unable to display error message" #~ msgstr "không thể hiển thị thông điệp lỗi" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "Trang chủ %s: <http://www.gnu.org/software/%s/>\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle bị lỗi" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "không thể phục hồi bộ mô tả tập tin %d: “dup2” bị lỗi" #, c-format #~ msgid "%s subprocess" #~ msgstr "Tiến trình con %s" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "Tiến trình con %s đã nhận tín hiệu nghiêm trọng %d" #~ msgid "stdin" #~ msgstr "đầu vào tiêu chuẩn" #~ msgid "stdout" #~ msgstr "đầu ra tiêu chuẩn" #~ msgid "stderr" #~ msgstr "đầu ra lỗi tiêu chuẩn" #~ msgid "unknown stream" #~ msgstr "không hiểu luồng dữ liệu" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "gặp lỗi khi mở lại %s trong chế độ %s" #, c-format #~ msgid "string comparison failed" #~ msgstr "gặp lỗi khi so sánh chuỗi" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "Hãy đặt “LC_ALL='C'” để sửa chữa trục trặc này." #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "Hai chuỗi được so sánh là %s và %s." #, c-format #~ msgid "cannot perform formatted output" #~ msgstr "không thể thực hiện kết xuất có định dạng" #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "đối số %s%s không hợp lệ “%s”" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "hậu tố không hợp lệ trong đối số %s%s “%s”" #, c-format #~ msgid "%s%s argument `%s' too large" #~ msgstr "Đối số %s%s “%s” quá lớn" �����������������������������������������a2ps-4.15.5/po-gnulib/zh_CN.gmo���������������������������������������������������������������������0000644�0000000�0000000�00000004547�14445132163�012760� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������@�����A�����U�����W�����[�����k����������������������;�����3�����/���H��+���x��'�����#������������������,�����<�����>��-���[������������*����������������������������������������������� �����!��I���:��?�����7�����2�����-���/��(���]��"�������������������������!�������� �� ���8 ��!���E ����������������������������������������� ����������������� ��������������������������������� ������������������������� ��� �������%s home page: <%s> �'�(C)�Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 2.0.0.3462.e9796 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2010-02-26 09:54+0800 Last-Translator: Ji ZhengYu <zhengyuji@gmail.com> Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com> Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=1; plural=0; �%s 主页: <%s> �”�(C)�由 %s 打包 �由 %s (%s) 打包 �将 %s 错误报告给: %s �未知的系统错误�有效的参数为:�由 %s 和 %s 编写。 �由 %s、%s、%s、 %s、%s、%s、%s、 %s、%s、和其他人编写。 �由 %s、%s、%s、 %s、%s、%s、%s、 %s、和 %s 编写。 �由 %s、%s、%s、 %s、%s、%s、%s 和 %s 编写。 �由 %s、%s、%s、 %s、%s、%s 和 %s 编写。 �由 %s、%s、%s、 %s、%s 和 %s 编写。 �由 %s、%s、%s、 %s 和 %s 编写。 �由 %s、%s、%s 和 %s 编写。 �由 %s、%s 和 %s 编写。 �由 %s 编写。 �“�%2$s 的参数 %1$s 有歧义�返回到初始工作目录失败�%2$s 的参数 %1$s 无效�内存用尽�无法记录当前工作的目录����������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/zh_CN.po����������������������������������������������������������������������0000644�0000000�0000000�00000055257�14445132162�012617� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# simplified Chinese translation of gnulib. # Copyright (C) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # Yip Chi Lap <clyip@cs.hku.hk>, 1998. # Abel Cheung <maddog@linux.org.hk>, 2002. # Anthony Fok <anthony@thizlinux.com>, 2002. # Funda Wang <fundawang@linux.net.cn>, 2004, 2005. # Ji ZhengYu <zhengyuji@gmail.com>, 2009, 2010. msgid "" msgstr "" "Project-Id-Version: gnulib 2.0.0.3462.e9796\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2010-02-26 09:54+0800\n" "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "%2$s 的参数 %1$s 无效" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "%2$s 的参数 %1$s 有歧义" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "有效的参数为:" #: lib/error.c:193 msgid "Unknown system error" msgstr "未知的系统错误" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "内存用尽" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "无法记录当前工作的目录" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "返回到初始工作目录失败" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "“" #: lib/quotearg.c:355 msgid "'" msgstr "”" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "由 %s (%s) 打包\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "由 %s 打包\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "(C)" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, fuzzy, c-format #| msgid "" #| "\n" #| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." #| "html>.\n" #| "This is free software: you are free to change and redistribute it.\n" #| "There is NO WARRANTY, to the extent permitted by law.\n" #| "\n" msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "\n" "授权协议 GPLv3+: GNU GPL 版本 3 或更新版本 <http://gnu.org/licenses/gpl." "html>\n" "这是自由软件:您可以自由的更改并重新发布它。\n" "在法律允许的范围内,没有任何担保。\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "由 %s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "由 %s 和 %s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "由 %s、%s 和 %s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "由 %s、%s、%s 和\n" "%s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "由 %s、%s、%s、\n" "%s 和 %s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "由 %s、%s、%s、\n" "%s、%s 和 %s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "由 %s、%s、%s、\n" "%s、%s、%s 和 %s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "由 %s、%s、%s、\n" "%s、%s、%s、%s\n" "和 %s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "由 %s、%s、%s、\n" "%s、%s、%s、%s、\n" "%s、和 %s 编写。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "由 %s、%s、%s、\n" "%s、%s、%s、%s、\n" "%s、%s、和其他人编写。\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, fuzzy, c-format #| msgid "" #| "\n" #| "Report bugs to: %s\n" msgid "Report bugs to: %s\n" msgstr "" "\n" "请向 %s 报告错误。向 <i18n-zh@googlegroups.com> 报告翻译错误。\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "将 %s 错误报告给: %s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 主页: <%s>\n" #: lib/version-etc.c:260 #, fuzzy, c-format #| msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgid "General help using GNU software: <%s>\n" msgstr "GNU 软件的通用帮助: <http://www.gnu.org/gethelp/>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT: %s 的值小于或等于 %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s: ARGP_HELP_FMT 参数需要一个值" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT 参数必须为正值" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s: 未知的 ARGP_HELP_FMT 参数" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "ARGP_HELP_FMT 中的无效参数: %s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "" #~ "选项完整形式所必须用的或是可选的参数,在使用选项缩写形式时也是必须的或是可" #~ "选的。" #~ msgid "Usage:" #~ msgstr "用法:" #~ msgid " or: " #~ msgstr " 或者: " #~ msgid " [OPTION...]" #~ msgstr "[选项...]" #, c-format #~ msgid "Try `%s --help' or `%s --usage' for more information.\n" #~ msgstr "请尝试执行“%s --help”或“%s --usage”来获取更多信息。\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "请向 %s 报告错误。\n" #~ msgid "give this help list" #~ msgstr "显示此帮助列表" #~ msgid "give a short usage message" #~ msgstr "显示一份简洁的用法信息" #~ msgid "NAME" #~ msgstr "NAME" #~ msgid "set the program name" #~ msgstr "设定程序名称" #~ msgid "SECS" #~ msgstr "SECS" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "挂起 SECS 秒(默认 3600 秒)" #~ msgid "print program version" #~ msgstr "打印程序版本" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(程序错误)未知版本!?" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s:参数太多\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(程序错误)未知的选项!?" #~ msgid "program error" #~ msgstr "程序错误" #~ msgid "stack overflow" #~ msgstr "堆栈溢出" #, c-format #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "无法找到一个临时目录,请尝试设置 $TMPDIR 环境变量" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "无法以模板“%s”创建一个临时目录" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "无法删除临时文件 %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "无法删除临时目录 %s" #~ msgid "error closing file" #~ msgstr "关闭文件时发生错误" #~ msgid "write error" #~ msgstr "写入错误" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "保留 %s 的权限" #, c-format #~ msgid "error while opening \"%s\" for reading" #~ msgstr "打开“%s”读取数据时发生错误" #, c-format #~ msgid "cannot open backup file \"%s\" for writing" #~ msgstr "无法打开备份文件“%s”写入数据" #, c-format #~ msgid "error reading \"%s\"" #~ msgstr "读入“%s”时错误" #, c-format #~ msgid "error writing \"%s\"" #~ msgstr "写入“%s”时错误" #, c-format #~ msgid "error after reading \"%s\"" #~ msgstr "读入“%s”后错误" #, c-format #~ msgid "fdopen() failed" #~ msgstr "fdopen() 错误" #, c-format #~ msgid "C# compiler not found, try installing pnet" #~ msgstr "未找到 C# 编译器,尝试安装 pnet" #, c-format #~ msgid "C# virtual machine not found, try installing pnet" #~ msgstr "未找到 C# 虚拟机,尝试安装 pnet" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s 子进程错误" #~ msgid "regular empty file" #~ msgstr "一般空文件" #~ msgid "regular file" #~ msgstr "一般文件" #~ msgid "directory" #~ msgstr "目录" #~ msgid "block special file" #~ msgstr "块特殊文件" #~ msgid "character special file" #~ msgstr "字符特殊文件" #~ msgid "fifo" #~ msgstr "先进先出" #~ msgid "symbolic link" #~ msgstr "符号链接" #~ msgid "socket" #~ msgstr "套接字" #~ msgid "message queue" #~ msgstr "消息队列" #~ msgid "semaphore" #~ msgstr "信号量" #~ msgid "shared memory object" #~ msgstr "共享内存对象" #~ msgid "typed memory object" #~ msgstr "标准内存对象" #~ msgid "weird file" #~ msgstr "古怪文件" #~ msgid "Address family for hostname not supported" #~ msgstr "不支持主机名的地址族" #~ msgid "Temporary failure in name resolution" #~ msgstr "名称解析时发生临时错误" #~ msgid "Bad value for ai_flags" #~ msgstr "ai_flags 的值错误" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "名称解析时发生不可恢复的错误" #~ msgid "ai_family not supported" #~ msgstr "不支持 ai_family" #~ msgid "Memory allocation failure" #~ msgstr "内存分配错误" #~ msgid "No address associated with hostname" #~ msgstr "主机名未分配到地址" #~ msgid "Name or service not known" #~ msgstr "未知的名称或服务" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "ai_socktype 不支持的服务名" #~ msgid "ai_socktype not supported" #~ msgstr "不支持 ai_socktype" #~ msgid "System error" #~ msgstr "系统错误" #~ msgid "Argument buffer too small" #~ msgstr "参数缓冲区太小" #~ msgid "Processing request in progress" #~ msgstr "正在处理进程的请求" #~ msgid "Request canceled" #~ msgstr "请求已取消" #~ msgid "Request not canceled" #~ msgstr "请求未取消" #~ msgid "All requests done" #~ msgstr "已处理所有请求" #~ msgid "Interrupted by a signal" #~ msgstr "被一个信号中断" #~ msgid "Parameter string not correctly encoded" #~ msgstr "参数字符串未正确编码" #~ msgid "Unknown error" #~ msgstr "未知错误" #, c-format #~ msgid "%s: option '%s' is ambiguous\n" #~ msgstr "%s: 选项\"%s\"歧义\n" #, c-format #~ msgid "%s: option '--%s' doesn't allow an argument\n" #~ msgstr "%s: 选项\"--%s\"不要参数\n" #, c-format #~ msgid "%s: option '%c%s' doesn't allow an argument\n" #~ msgstr "%s: 选项\"%c%s\"不要参数\n" #, c-format #~ msgid "%s: option '%s' requires an argument\n" #~ msgstr "%s: 选项\"%s\"必须带参数\n" #, c-format #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: 无法识别的选项\"--%s\"\n" #, c-format #~ msgid "%s: unrecognized option '%c%s'\n" #~ msgstr "%s: 无法识别的选项\"%c%s\"\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s: 无效选项 -- \"%c\"\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s: 选项需要参数 -- \"%c\"\n" #, c-format #~ msgid "%s: option '-W %s' is ambiguous\n" #~ msgstr "%s: 选项\"-W %s\"有歧义\n" #, c-format #~ msgid "%s: option '-W %s' doesn't allow an argument\n" #~ msgstr "%s: 选项\"-W %s\"不要带参数\n" #, c-format #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "compile_java_class 的 source_version 参数无效" #, c-format #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "compile_java_class 的 target_version 参数无效" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "无法创建“%s”" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "正在写入“%s”文件时发生错误" #, c-format #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "未找到 Java 编译器,尝试安装 gcj 或是设置 $JAVAC" #, c-format #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "未找到 Java 虚拟机,尝试安装 gij 或是设置 $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s 子进程输入/输出错误" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "无法更改 %s 的权限" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "无法创建目录 %s" #, c-format #~ msgid "Failed to open /dev/zero for read" #~ msgstr "无法以读方式打开 /dev/zero" #, c-format #~ msgid "creation of reading thread failed" #~ msgstr "读线程创建错误" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "无法为 %s 子进程设置非阻塞性 I/O" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "与 %s 子进程通讯错误" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "写入 %s 子进程错误" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "读取 %s 子进程错误" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "子进程 %s 由退出码 %d 终止" #, c-format #~ msgid "creation of threads failed" #~ msgstr "线程创建失败" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "子进程 %s 由退出码 %d 终止" #, c-format #~ msgid "cannot create pipe" #~ msgstr "无法创建管道" #~ msgid "Success" #~ msgstr "成功" #~ msgid "No match" #~ msgstr "不匹配" #~ msgid "Invalid regular expression" #~ msgstr "正则表达式无效" #, fuzzy #~ msgid "Invalid collation character" #~ msgstr "无效的重组字符" #~ msgid "Invalid character class name" #~ msgstr "无效的字符类名" #~ msgid "Trailing backslash" #~ msgstr "多余的反斜杠" #~ msgid "Invalid back reference" #~ msgstr "无效的向后索引" #~ msgid "Unmatched [ or [^" #~ msgstr "[ 或 [^ 不匹配" #~ msgid "Unmatched ( or \\(" #~ msgstr "( 或 \\( 不匹配" #~ msgid "Unmatched \\{" #~ msgstr "\\{ 不匹配" #~ msgid "Invalid content of \\{\\}" #~ msgstr "\\{\\} 的内容无效" #~ msgid "Invalid range end" #~ msgstr "无效的范围结尾" #~ msgid "Memory exhausted" #~ msgstr "内存用尽" #~ msgid "Invalid preceding regular expression" #~ msgstr "前置的正则表达式无效" #~ msgid "Premature end of regular expression" #~ msgstr "正则表达式结尾过早" #~ msgid "Regular expression too big" #~ msgstr "正则表达式太大" #~ msgid "Unmatched ) or \\)" #~ msgstr ") 或 \\) 不匹配" #~ msgid "No previous regular expression" #~ msgstr "没有前次正则表达式" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "设置 %s 的权限" #~ msgid "Hangup" #~ msgstr "挂起" #~ msgid "Interrupt" #~ msgstr "中断" #~ msgid "Quit" #~ msgstr "退出" #~ msgid "Illegal instruction" #~ msgstr "非法指令" #~ msgid "Trace/breakpoint trap" #~ msgstr "跟踪(断点)" #~ msgid "Aborted" #~ msgstr "取消" #~ msgid "Floating point exception" #~ msgstr "浮点溢出" #~ msgid "Killed" #~ msgstr "强行终止" #~ msgid "Bus error" #~ msgstr "总线错误" #~ msgid "Segmentation fault" #~ msgstr "段错误" #~ msgid "Broken pipe" #~ msgstr "管道断开" #~ msgid "Alarm clock" #~ msgstr "时钟警报" #~ msgid "Terminated" #~ msgstr "被终止" #~ msgid "Urgent I/O condition" #~ msgstr "I/O 条件不足" #~ msgid "Stopped (signal)" #~ msgstr "被停止(通过信号)" #~ msgid "Stopped" #~ msgstr "被停止" #~ msgid "Continued" #~ msgstr "继续" #~ msgid "Child exited" #~ msgstr "子进程退出" #~ msgid "Stopped (tty input)" #~ msgstr "被停止(tty 输入)" #~ msgid "Stopped (tty output)" #~ msgstr "被停止(tty 输出)" #~ msgid "I/O possible" #~ msgstr "I/O 可能" #~ msgid "CPU time limit exceeded" #~ msgstr "超出CPU 时间限制" #~ msgid "File size limit exceeded" #~ msgstr "超出文件大小限制" #~ msgid "Virtual timer expired" #~ msgstr "虚拟计时器过期" #, fuzzy #~ msgid "Profiling timer expired" #~ msgstr "数据计时器过期" #~ msgid "Window changed" #~ msgstr "窗口改变" #~ msgid "User defined signal 1" #~ msgstr "用户自定义信号 1" #~ msgid "User defined signal 2" #~ msgstr "用户自定义信号 2" #~ msgid "EMT trap" #~ msgstr "仿真程序陷阱" #~ msgid "Bad system call" #~ msgstr "错误的系统调用" #~ msgid "Stack fault" #~ msgstr "堆栈错误" #~ msgid "Information request" #~ msgstr "信息请求" #~ msgid "Power failure" #~ msgstr "电力问题" #~ msgid "Resource lost" #~ msgstr "资源丢失" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "写入一个已关闭的管道或套接字时发生错误" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "实时信号 %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "未知信号 %d" #~ msgid "iconv function not usable" #~ msgstr "iconv 函数无法使用" #~ msgid "iconv function not available" #~ msgstr "iconv 函数不存在" #~ msgid "character out of range" #~ msgstr "字符值超出可接受的范围以外" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "无法将 U+%04X 转换至用户的字符集" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "无法将 U+%04X 转换至用户的字符集:%s" #~ msgid "invalid user" #~ msgstr "无效的用户" #~ msgid "invalid group" #~ msgstr "无效的组" #~ msgid "invalid spec" #~ msgstr "无效的 spec" #, c-format #~ msgid "unable to display error message" #~ msgstr "无法显示错误信息" #, c-format #~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n" #~ msgstr "%s 主页: <http://www.gnu.org/software/%s/>\n" #, c-format #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle 失败" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "无法恢复文件描述符 %d: dup2 失败" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s 子进程" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s 子进程获得终结信号 %d" #~ msgid "stdin" #~ msgstr "标准输入" #~ msgid "stdout" #~ msgstr "标准输出" #~ msgid "stderr" #~ msgstr "标准错误输出" #~ msgid "unknown stream" #~ msgstr "未知的流" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "无法以 %2$s 模式重新打开 %1$s" #, c-format #~ msgid "string comparison failed" #~ msgstr "字符串比较出现错误" #, c-format #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "请设定 LC_ALL='C' 避免问题出现。" #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "要比较的字符串为 %s 和 %s。" #, c-format #~ msgid "cannot perform formatted output" #~ msgstr "无法执行格式化输出" #, c-format #~ msgid "invalid %s%s argument `%s'" #~ msgstr "%s%s 参数‘%s’无效" #, c-format #~ msgid "invalid suffix in %s%s argument `%s'" #~ msgstr "%s%s 参数‘%s’的后缀无效" #, c-format #~ msgid "%s%s argument `%s' too large" #~ msgstr "%s%s 参数‘%s’太长" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s:非法选项 -- %c\n" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "请向 <%s> 报告错误。\n" #~ msgid "block size" #~ msgstr "块大小" #~ msgid "%s exists but is not a directory" #~ msgstr "%s 存在但并非目录" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "无法更改 %s 的属主和/或组" #~ msgid "cannot chdir to directory %s" #~ msgstr "无法切换到目录 %s" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "无法取得 UID 数值所表示的用户的主组" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/zh_TW.gmo���������������������������������������������������������������������0000644�0000000�0000000�00000005611�14445132163�013003� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%���������p�����q������������&�������������]�����m���������������������������;�����3���*��/���^��+�����'�����#�������������&�����B�����R�����T��-���q������������*������������������������(��������������������"�������� ����� �����, �����B ��B���[ ��<��� ��7��� ��2��� ��-���F ��(���t ��"��� ����� ����� ����� ��$��� ����� ��!���8 �����Z �����j ����������� ��� ������������������������������������������� �������������������������������������������������������� ��� �������%s home page: <%s> �'�(C)�General help using GNU software: <%s> �License GPLv3+: GNU GPL version 3 or later <%s>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. �Packaged by %s �Packaged by %s (%s) �Report %s bugs to: %s �Report bugs to: %s �Unknown system error�Valid arguments are:�Written by %s and %s. �Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others. �Written by %s, %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, %s, and %s. �Written by %s, %s, %s, %s, and %s. �Written by %s, %s, %s, and %s. �Written by %s, %s, and %s. �Written by %s. �`�ambiguous argument %s for %s�failed to return to initial working directory�invalid argument %s for %s�memory exhausted�unable to record current working directory�Project-Id-Version: gnulib 4.0.0.2567 Report-Msgid-Bugs-To: bug-gnulib@gnu.org PO-Revision-Date: 2019-12-15 13:01+0800 Last-Translator: pan93412 <pan93412@gmail.com> Language-Team: Chinese (traditional) <zh-l10n@lists.linux.org.tw> Language: zh_TW MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=1; plural=0; X-Generator: Lokalize 19.12.0 �%s 首頁:<%s> �」�(C)�使用 GNU 軟體的一般說明:<%s> �GPLv3+ 授權:GNU GPL 第三版或更新版本 <%s>。 此為自由軟體:您能自由變更及重散佈。 在法律所允許的範圍之內「沒有任何保證」。 �由 %s 打包 �由 %s (%s) 打包 �請將 %s 的臭蟲匯報至:%s �匯報錯誤至:%s �未知系統錯誤�有效的參數為:�由 %s 和 %s 編寫。 �由 %s、%s、%s、%s、 %s、%s、%s、%s 和 %s 等人編寫。 �由 %s、%s、%s、%s、 %s、%s、%s、%s 和 %s 編寫。 �由 %s、%s、%s、%s、 %s、%s、%s 和 %s 編寫。 �由 %s、%s、%s、%s、 %s、%s 和 %s 編寫。 �由 %s、%s、%s、 %s、%s 和 %s 編寫。 �由 %s、%s、%s、 %s 和 %s 編寫。 �由 %s、%s、%s 和 %s 編寫。 �由 %s、%s 和 %s 編寫。 �由 %s 編寫。 �「�傳入 %2$s 之參數 %1$s 不明確�無法回到初始工作目錄�傳入 %2$s 之參數 %1$s 無效�記憶體用盡�無法記錄目前工作目錄������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/po-gnulib/zh_TW.po����������������������������������������������������������������������0000644�0000000�0000000�00000062362�14445132162�012644� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# traditional Chinese translation of coreutils. # Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the gnulib package. # # # Merged from textutils, sh-utils and fileutils translation: # # # Yip Chi Lap <clyip@cs.hku.hk>, 1998. # # Yuan-Chung Cheng <platin@ms.ccafps.khc.edu.tw>, 1998. # # Abel Cheung <abelcheung@gmail.com>, 2002. # # Pofeng Lee <pofeng@linux.org.tw>, 1998, 2002. # Abel Cheung <abelcheung@gmail.com>, 2005. # pan93412 <pan93412@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: gnulib 4.0.0.2567\n" "Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n" "POT-Creation-Date: 2023-06-22 21:52+0100\n" "PO-Revision-Date: 2019-12-15 13:01+0800\n" "Last-Translator: pan93412 <pan93412@gmail.com>\n" "Language-Team: Chinese (traditional) <zh-l10n@lists.linux.org.tw>\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Lokalize 19.12.0\n" #: lib/argmatch.c:145 #, c-format msgid "invalid argument %s for %s" msgstr "傳入 %2$s 之參數 %1$s 無效" #: lib/argmatch.c:146 #, c-format msgid "ambiguous argument %s for %s" msgstr "傳入 %2$s 之參數 %1$s 不明確" #: lib/argmatch.c:165 lib/argmatch.h:237 msgid "Valid arguments are:" msgstr "有效的參數為:" #: lib/error.c:193 msgid "Unknown system error" msgstr "未知系統錯誤" #: lib/obstack.c:337 lib/obstack.c:339 lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "記憶體用盡" #: lib/openat-die.c:38 #, c-format msgid "unable to record current working directory" msgstr "無法記錄目前工作目錄" #: lib/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" msgstr "無法回到初始工作目錄" #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. The message catalog should translate "`" to a left #. quotation mark suitable for the locale, and similarly for #. "'". For example, a French Unicode local should translate #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE #. QUOTATION MARK), respectively. #. #. If the catalog has no translation, we will try to #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the #. current locale is not Unicode, locale_quoting_style #. will quote 'like this', and clocale_quoting_style will #. quote "like this". You should always include translations #. for "`" and "'" even if U+2018 and U+2019 are appropriate #. for your locale. #. #. If you don't know what to put here, please see #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages> #. and use glyphs suitable for your language. #: lib/quotearg.c:354 msgid "`" msgstr "「" #: lib/quotearg.c:355 msgid "'" msgstr "」" #: lib/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "由 %s (%s) 打包\n" #: lib/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "由 %s 打包\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. #: lib/version-etc.c:83 msgid "(C)" msgstr "(C)" #. TRANSLATORS: The %s placeholder is the web address of the GPL license. #: lib/version-etc.c:88 #, c-format msgid "" "License GPLv3+: GNU GPL version 3 or later <%s>.\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "GPLv3+ 授權:GNU GPL 第三版或更新版本 <%s>。\n" "此為自由軟體:您能自由變更及重散佈。\n" "在法律所允許的範圍之內「沒有任何保證」。\n" "\n" #. TRANSLATORS: %s denotes an author name. #: lib/version-etc.c:105 #, c-format msgid "Written by %s.\n" msgstr "由 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:109 #, c-format msgid "Written by %s and %s.\n" msgstr "由 %s 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #: lib/version-etc.c:113 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "由 %s、%s 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:120 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" "由 %s、%s、%s\n" "和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:127 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "由 %s、%s、%s、\n" "%s 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:134 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" "由 %s、%s、%s、\n" "%s、%s 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:142 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" "由 %s、%s、%s、%s、\n" "%s、%s 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:150 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" "由 %s、%s、%s、%s、\n" "%s、%s、%s 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:159 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" "由 %s、%s、%s、%s、\n" "%s、%s、%s、%s\n" "和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. #: lib/version-etc.c:170 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" "由 %s、%s、%s、%s、\n" "%s、%s、%s、%s\n" "和 %s 等人編寫。\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: lib/version-etc.c:249 #, c-format msgid "Report bugs to: %s\n" msgstr "匯報錯誤至:%s\n" #: lib/version-etc.c:251 #, c-format msgid "Report %s bugs to: %s\n" msgstr "請將 %s 的臭蟲匯報至:%s\n" #: lib/version-etc.c:255 lib/version-etc.c:257 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 首頁:<%s>\n" #: lib/version-etc.c:260 #, c-format msgid "General help using GNU software: <%s>\n" msgstr "使用 GNU 軟體的一般說明:<%s>\n" #, c-format #~ msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" #~ msgstr "ARGP_HELP_FMT:%s 值小於或等於 %s" #, c-format #~ msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgstr "%.*s:ARGP_HELP_FMT 參數需要一個值" #, c-format #~ msgid "%.*s: Unknown ARGP_HELP_FMT parameter" #~ msgstr "%.*s:未知 ARGP_HELP_FMT 參數" #, c-format #~ msgid "Garbage in ARGP_HELP_FMT: %s" #~ msgstr "ARGP_HELP_FMT 中的廢棄內容:%s" #~ msgid "" #~ "Mandatory or optional arguments to long options are also mandatory or " #~ "optional for any corresponding short options." #~ msgstr "長選項所使用的參數,在相對應的短選項也必須使用。" #~ msgid "Usage:" #~ msgstr "用法:" #~ msgid " or: " #~ msgstr " 或:" #~ msgid " [OPTION...]" #~ msgstr " [選項…]" #, c-format #~ msgid "Try '%s --help' or '%s --usage' for more information.\n" #~ msgstr "嘗試「%s --help」或「%s --usage」取得更多資訊。\n" #, c-format #~ msgid "Report bugs to %s.\n" #~ msgstr "請向 %s 匯報錯誤。\n" #~ msgid "give this help list" #~ msgstr "提供此說明清單" #~ msgid "give a short usage message" #~ msgstr "提供短用法訊息" #~ msgid "NAME" #~ msgstr "名稱" #~ msgid "set the program name" #~ msgstr "設定程式名稱" #~ msgid "SECS" #~ msgstr "秒" #~ msgid "hang for SECS seconds (default 3600)" #~ msgstr "掛斷秒數(預設 3600)" #~ msgid "print program version" #~ msgstr "輸出程式版本" #~ msgid "(PROGRAM ERROR) No version known!?" #~ msgstr "(程式錯誤)沒有已知版本?!" #, c-format #~ msgid "%s: Too many arguments\n" #~ msgstr "%s:過多參數\n" #~ msgid "(PROGRAM ERROR) Option should have been recognized!?" #~ msgstr "(程式錯誤)選項應該已被識別?!" #, c-format #~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n" #~ msgstr "%u bitset_allocs,已釋放 %u (%.2f%%)。\n" #, c-format #~ msgid "%u bitset_sets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_sets,已快取 %u (%.2f%%)\n" #, c-format #~ msgid "%u bitset_resets, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_resets,已快取 %u (%.2f%%)\n" #, c-format #~ msgid "%u bitset_tests, %u cached (%.2f%%)\n" #~ msgstr "%u bitset_tests,%u 已快取 (%.2f%%)\n" #, c-format #~ msgid "%u bitset_lists\n" #~ msgstr "%u bitset_lists\n" #, c-format #~ msgid "" #~ "Bitset statistics:\n" #~ "\n" #~ msgstr "" #~ "Bitset 統計:\n" #~ "\n" #, c-format #~ msgid "Accumulated runs = %u\n" #~ msgstr "累積執行次數 = %u\n" #~ msgid "cannot read stats file" #~ msgstr "無法讀取統計檔案" #, c-format #~ msgid "bad stats file size\n" #~ msgstr "統計檔案大小無效\n" #~ msgid "cannot write stats file" #~ msgstr "無法寫入統計檔案" #~ msgid "cannot open stats file for writing" #~ msgstr "無法開啟統計檔案寫入" #~ msgid "program error" #~ msgstr "程式錯誤" #~ msgid "stack overflow" #~ msgstr "堆疊溢出" #~ msgid "cannot find a temporary directory, try setting $TMPDIR" #~ msgstr "未找到暫存目錄,請嘗試設定 $TMPDIR" #, c-format #~ msgid "cannot create a temporary directory using template \"%s\"" #~ msgstr "無法使用「%s」範本建立暫存目錄" #, c-format #~ msgid "cannot remove temporary file %s" #~ msgstr "無法移除暫存檔 %s" #, c-format #~ msgid "cannot remove temporary directory %s" #~ msgstr "無法移除暫存目錄 %s" #~ msgid "error closing file" #~ msgstr "關閉檔案時發生錯誤" #~ msgid "write error" #~ msgstr "寫入時發生錯誤" #, c-format #~ msgid "preserving permissions for %s" #~ msgstr "正在保留 %s 的權限" #, c-format #~ msgid "error while opening %s for reading" #~ msgstr "開啟 %s 讀取時發生錯誤" #, c-format #~ msgid "cannot open backup file %s for writing" #~ msgstr "無法開啟備份檔 %s 寫入" #, c-format #~ msgid "error reading %s" #~ msgstr "讀取 %s 時發生錯誤" #, c-format #~ msgid "error writing %s" #~ msgstr "寫入 %s 時發生錯誤" #, c-format #~ msgid "error after reading %s" #~ msgstr "讀取 %s 後發生錯誤" #~ msgid "fdopen() failed" #~ msgstr "fdopen() 失敗" #~ msgid "C# compiler not found, try installing mono" #~ msgstr "未找到 C# 編譯器,嘗試安裝 mono" #~ msgid "C# virtual machine not found, try installing mono" #~ msgstr "未找到 C# 虛擬機,嘗試安裝 mono" #~ msgid "unbalanced [" #~ msgstr "不對稱的 [" #~ msgid "invalid character class" #~ msgstr "字元類型無效" #~ msgid "character class syntax is [[:space:]], not [:space:]" #~ msgstr "字元類型語法為 [[:space:]] 而非 [:space:]" #~ msgid "unfinished \\ escape" #~ msgstr "未完成的 \\ 跳脫字元" #~ msgid "invalid content of \\{\\}" #~ msgstr "\\{\\} 的內容無效" #~ msgid "regular expression too big" #~ msgstr "正規表示式過長" #~ msgid "unbalanced (" #~ msgstr "不對稱的 (" #~ msgid "no syntax specified" #~ msgstr "未指定語法" #~ msgid "unbalanced )" #~ msgstr "不對稱的 )" #, c-format #~ msgid "%s subprocess failed" #~ msgstr "%s 子執行程序執行失敗" #~ msgid "regular empty file" #~ msgstr "一般空白檔案" #~ msgid "regular file" #~ msgstr "一般檔案" #~ msgid "directory" #~ msgstr "目錄" #~ msgid "symbolic link" #~ msgstr "符號連結" #~ msgid "message queue" #~ msgstr "訊息佇列" #~ msgid "semaphore" #~ msgstr "旗號" #~ msgid "shared memory object" #~ msgstr "共用記憶體物件" #~ msgid "typed memory object" #~ msgstr "具類型記憶體物件" #~ msgid "block special file" #~ msgstr "區塊特殊檔案" #~ msgid "character special file" #~ msgstr "字元特殊檔案" #~ msgid "contiguous data" #~ msgstr "連續資料" #~ msgid "fifo" #~ msgstr "fifo" #~ msgid "door" #~ msgstr "門 (door)" #~ msgid "multiplexed block special file" #~ msgstr "多工區塊特殊檔" #~ msgid "multiplexed character special file" #~ msgstr "多工字元特殊檔" #~ msgid "multiplexed file" #~ msgstr "多工檔案" #~ msgid "named file" #~ msgstr "命名檔案" #~ msgid "network special file" #~ msgstr "網路特殊檔案" #~ msgid "migrated file with data" #~ msgstr "移轉檔(含資料)" #~ msgid "migrated file without data" #~ msgstr "移轉檔(不含資料)" #~ msgid "port" #~ msgstr "連線埠" #~ msgid "socket" #~ msgstr "socket" #~ msgid "whiteout" #~ msgstr "whiteout" #~ msgid "weird file" #~ msgstr "不正常檔案" #~ msgid "Address family for hostname not supported" #~ msgstr "不支援主機名稱的位址家族" #~ msgid "Temporary failure in name resolution" #~ msgstr "解析名稱時發生暫時性錯誤" #~ msgid "Bad value for ai_flags" #~ msgstr "ai_flags 的值無效" #~ msgid "Non-recoverable failure in name resolution" #~ msgstr "解析名稱時發生無法復原錯誤" #~ msgid "ai_family not supported" #~ msgstr "不支援 ai_family" #~ msgid "Memory allocation failure" #~ msgstr "分配記憶體失敗" #~ msgid "No address associated with hostname" #~ msgstr "沒有位址關聯至此主機名稱" #~ msgid "Name or service not known" #~ msgstr "名稱或服務未知" #~ msgid "Servname not supported for ai_socktype" #~ msgstr "ai_socktype 不支援伺服器名稱 (Servname)" #~ msgid "ai_socktype not supported" #~ msgstr "不支援 ai_socktype" #~ msgid "System error" #~ msgstr "系統錯誤" #~ msgid "Argument buffer too small" #~ msgstr "參數緩衝區過小" #~ msgid "Processing request in progress" #~ msgstr "正在處理請求" #~ msgid "Request canceled" #~ msgstr "已取消請求" #~ msgid "Request not canceled" #~ msgstr "未取消請求" #~ msgid "All requests done" #~ msgstr "所有請求完成" #~ msgid "Interrupted by a signal" #~ msgstr "遭信號中斷" #~ msgid "Parameter string not correctly encoded" #~ msgstr "未正確編碼參數字串" #~ msgid "Unknown error" #~ msgstr "未知錯誤" #, c-format #~ msgid "%s: option '%s%s' is ambiguous\n" #~ msgstr "%s:「%s%s」選項不明確\n" #, c-format #~ msgid "%s: option '%s%s' is ambiguous; possibilities:" #~ msgstr "%s:「%s%s」選項不明確;可能是:" #, c-format #~ msgid "%s: unrecognized option '%s%s'\n" #~ msgstr "%s:無法識別「%s%s」選項\n" #, c-format #~ msgid "%s: option '%s%s' doesn't allow an argument\n" #~ msgstr "%s:「%s%s」選項不接受參數\n" #, c-format #~ msgid "%s: option '%s%s' requires an argument\n" #~ msgstr "%s:「%s%s」選項需要參數\n" #, c-format #~ msgid "%s: invalid option -- '%c'\n" #~ msgstr "%s:無效選項 -- '%c'\n" #, c-format #~ msgid "%s: option requires an argument -- '%c'\n" #~ msgstr "%s:選項需要參數 -- '%c'\n" #~ msgid "invalid source_version argument to compile_java_class" #~ msgstr "傳入 compile_java_class 的 source_version 參數無效" #~ msgid "invalid target_version argument to compile_java_class" #~ msgstr "傳入 compile_java_class 的 target_version 參數無效" #, c-format #~ msgid "failed to create \"%s\"" #~ msgstr "無法建立「%s」" #, c-format #~ msgid "error while writing \"%s\" file" #~ msgstr "寫入「%s」檔時發生錯誤" #~ msgid "Java compiler not found, try installing gcj or set $JAVAC" #~ msgstr "未找到 Java 編譯器。嘗試安裝 gcj,或設定 $JAVAC" #~ msgid "Java virtual machine not found, try installing gij or set $JAVA" #~ msgstr "未找到 Java 虛擬機。嘗試安裝 gij,或設定 $JAVA" #, c-format #~ msgid "%s subprocess I/O error" #~ msgstr "%s 子執行程序發生 I/O 錯誤" #, c-format #~ msgid "cannot stat %s" #~ msgstr "無法取得 %s 的資訊" #, c-format #~ msgid "cannot change permissions of %s" #~ msgstr "無法變更 %s 的權限" #, c-format #~ msgid "cannot create directory %s" #~ msgstr "無法建立 %s 目錄" #~ msgid "Failed to open /dev/zero for read" #~ msgstr "無法開啟 /dev/zero 讀取" #~ msgid "creation of reading thread failed" #~ msgstr "建立讀取執行緒失敗" #, c-format #~ msgid "cannot set up nonblocking I/O to %s subprocess" #~ msgstr "無法對 %s 子執行程序設定非封鎖 I/O" #, c-format #~ msgid "communication with %s subprocess failed" #~ msgstr "與 %s 子執行程序通訊失敗" #, c-format #~ msgid "write to %s subprocess failed" #~ msgstr "寫入 %s 子程序失敗" #, c-format #~ msgid "read from %s subprocess failed" #~ msgstr "自 %s 子執行程序讀取失敗" #, c-format #~ msgid "subprocess %s terminated with exit code %d" #~ msgstr "子執行程序 %s 終止,結束碼 %d" #~ msgid "creation of threads failed" #~ msgstr "建立執行緒失敗" #, c-format #~ msgid "%s subprocess terminated with exit code %d" #~ msgstr "子執行程序 %s 終止,結束碼 %d" #~ msgid "Success" #~ msgstr "成功" #~ msgid "No match" #~ msgstr "無符合項目" #~ msgid "Invalid regular expression" #~ msgstr "正規表示式無效" #~ msgid "Invalid collation character" #~ msgstr "定序字元無效" #~ msgid "Invalid character class name" #~ msgstr "字元類型名稱無效" #~ msgid "Trailing backslash" #~ msgstr "末尾反斜線" #~ msgid "Invalid back reference" #~ msgstr "向後參考無效" #~ msgid "Unmatched [, [^, [:, [., or [=" #~ msgstr "不對稱的 [、[^、[:、[. 或 [=" #~ msgid "Unmatched ( or \\(" #~ msgstr "不對稱的 ( 或 \\(" #~ msgid "Unmatched \\{" #~ msgstr "不對稱的 \\{" #~ msgid "Invalid content of \\{\\}" #~ msgstr "\\{\\} 中內容無效" #~ msgid "Invalid range end" #~ msgstr "結束範圍無效" #~ msgid "Memory exhausted" #~ msgstr "記憶體用盡" #~ msgid "Invalid preceding regular expression" #~ msgstr "前置正規表示式無效" #~ msgid "Premature end of regular expression" #~ msgstr "正規表示式過早結束" #~ msgid "Regular expression too big" #~ msgstr "正規表示式過長" #~ msgid "Unmatched ) or \\)" #~ msgstr "不對稱的 ) 或 \\)" #~ msgid "No previous regular expression" #~ msgstr "沒有上一個正規表示式" #~ msgid "^[yY]" #~ msgstr "^[yY]" #~ msgid "^[nN]" #~ msgstr "^[nN]" #, c-format #~ msgid "setting permissions for %s" #~ msgstr "正在設定 %s 的權限" #~ msgid "Hangup" #~ msgstr "掛斷" #~ msgid "Interrupt" #~ msgstr "中斷" #~ msgid "Quit" #~ msgstr "退出" #~ msgid "Illegal instruction" #~ msgstr "無效指令" #~ msgid "Trace/breakpoint trap" #~ msgstr "追蹤 / 斷點陷阱" #~ msgid "Aborted" #~ msgstr "中止" #~ msgid "Floating point exception" #~ msgstr "浮點數例外" #~ msgid "Killed" #~ msgstr "強制結束" #~ msgid "Bus error" #~ msgstr "匯流排錯誤" #~ msgid "Segmentation fault" #~ msgstr "程式記憶體區段錯誤" #~ msgid "Broken pipe" #~ msgstr "管線損壞" #~ msgid "Alarm clock" #~ msgstr "鬧鐘" #~ msgid "Terminated" #~ msgstr "終止" #~ msgid "Urgent I/O condition" #~ msgstr "緊急 I/O 條件" #~ msgid "Stopped (signal)" #~ msgstr "停止(信號)" #~ msgid "Stopped" #~ msgstr "停止" #~ msgid "Continued" #~ msgstr "繼續" #~ msgid "Child exited" #~ msgstr "子程序退出" #~ msgid "Stopped (tty input)" #~ msgstr "停止(tty 輸入)" #~ msgid "Stopped (tty output)" #~ msgstr "停止(tty 輸出)" #~ msgid "I/O possible" #~ msgstr "可能 I/O" #~ msgid "CPU time limit exceeded" #~ msgstr "到達 CPU 時間上限" #~ msgid "File size limit exceeded" #~ msgstr "到達檔案大小上限" #~ msgid "Virtual timer expired" #~ msgstr "虛擬計時器過期" #~ msgid "Profiling timer expired" #~ msgstr "分析計時器過期" #~ msgid "Window changed" #~ msgstr "已變更視窗" #~ msgid "User defined signal 1" #~ msgstr "使用者定義信號 1" #~ msgid "User defined signal 2" #~ msgstr "使用者定義信號 2" #~ msgid "EMT trap" #~ msgstr "EMT 陷阱" #~ msgid "Bad system call" #~ msgstr "無效系統呼叫" #~ msgid "Stack fault" #~ msgstr "堆疊錯誤" #~ msgid "Information request" #~ msgstr "資訊請求" #~ msgid "Power failure" #~ msgstr "電源錯誤" #~ msgid "Resource lost" #~ msgstr "資源遺失" #~ msgid "error writing to a closed pipe or socket" #~ msgstr "寫入已關閉管線或 socket 時發生錯誤" #~ msgid "cannot create pipe" #~ msgstr "無法建立管線" #, c-format #~ msgid "Real-time signal %d" #~ msgstr "即時信號 %d" #, c-format #~ msgid "Unknown signal %d" #~ msgstr "未知信號 %d" #~ msgid "Execution times (seconds)" #~ msgstr "執行次數(秒)" #~ msgid "CPU user" #~ msgstr "CPU 使用者" #~ msgid "CPU system" #~ msgstr "CPU 系統" #~ msgid "wall clock" #~ msgstr "掛鐘" #~ msgid "iconv function not usable" #~ msgstr "iconv 功能沒有用" #~ msgid "iconv function not available" #~ msgstr "iconv 功能不能使用" #~ msgid "character out of range" #~ msgstr "字元超出範圍" #, c-format #~ msgid "cannot convert U+%04X to local character set" #~ msgstr "無法將 U+%04X 轉換至使用者的字元集" #, c-format #~ msgid "cannot convert U+%04X to local character set: %s" #~ msgstr "無法將 U+%04X 轉換至使用者的字元集:%s" #~ msgid "invalid user" #~ msgstr "使用者無效" #~ msgid "invalid group" #~ msgstr "群組無效" #~ msgid "invalid spec" #~ msgstr "規格無效" #~ msgid "unable to display error message" #~ msgstr "無法顯示錯誤訊息" #~ msgid "_open_osfhandle failed" #~ msgstr "_open_osfhandle 失敗" #, c-format #~ msgid "cannot restore fd %d: dup2 failed" #~ msgstr "無法復原 fd %d:dup2 失敗" #, c-format #~ msgid "%s subprocess" #~ msgstr "%s 子執行程序" #, c-format #~ msgid "%s subprocess got fatal signal %d" #~ msgstr "%s 子執行程序收到嚴重錯誤信號 %d" #~ msgid "failed to set file descriptor text/binary mode" #~ msgstr "無法將檔案描述符設定成文字 / 二進位模式" #~ msgid "stdin" #~ msgstr "標準輸入" #~ msgid "stdout" #~ msgstr "標準輸出" #~ msgid "stderr" #~ msgstr "標準錯誤" #~ msgid "unknown stream" #~ msgstr "未知串流" #, c-format #~ msgid "failed to reopen %s with mode %s" #~ msgstr "無法使用 %2$s 模式重開啟 %1$s" #~ msgid "string comparison failed" #~ msgstr "比較字串失敗" #~ msgid "Set LC_ALL='C' to work around the problem." #~ msgstr "請設定 LC_ALL='C' 避免此問題發生。" #, c-format #~ msgid "The strings compared were %s and %s." #~ msgstr "要比較的字串為 %s 和 %s。" #~ msgid "cannot perform formatted output" #~ msgstr "無法執行格式化輸出" #~ msgid "standard file descriptors" #~ msgstr "標準檔案描述符" #, c-format #~ msgid "invalid %s%s argument '%s'" #~ msgstr "%s%s 參數「%s」無效" #, c-format #~ msgid "invalid suffix in %s%s argument '%s'" #~ msgstr "%s%s 參數「%s」有無效後綴" #, c-format #~ msgid "%s%s argument '%s' too large" #~ msgstr "%s%s 參數「%s」過長" #~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n" #~ msgstr "%s 首頁:<https://www.gnu.org/software/%s/>\n" #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s:選項‘--%s’不可配合參數使用\n" #~ msgid "%s: unrecognized option `--%s'\n" #~ msgstr "%s:無法識別的選項‘--%s’\n" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s:不合法的選項 ─ %c\n" #~ msgid "%s: option `-W %s' is ambiguous\n" #~ msgstr "%s:選項‘-W %s’不明確\n" #~ msgid "%s: option `-W %s' doesn't allow an argument\n" #~ msgstr "%s:選項‘-W %s’不可配合參數使用\n" #, fuzzy #~ msgid "block size" #~ msgstr "區塊特殊檔案" #~ msgid "%s exists but is not a directory" #~ msgstr "%s已存在但不是目錄" #~ msgid "cannot change owner and/or group of %s" #~ msgstr "無法更改%s的擁有者和/或所屬群組" #~ msgid "cannot chdir to directory %s" #~ msgstr "無法進入%s目錄" #~ msgid "cannot get the login group of a numeric UID" #~ msgstr "無法取得 UID 數值所代表的登入群組" #, fuzzy #~ msgid "" #~ "\n" #~ "This is free software. You may redistribute copies of it under the terms " #~ "of\n" #~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" #~ "There is NO WARRANTY, to the extent permitted by law.\n" #~ "\n" #~ msgstr "" #~ "本程式是自由軟體;你可以根據 Free Software Foundation 所公佈的 GNU\n" #~ "General Public License 第二版或(自由選擇)較新的版本中的條款去重新\n" #~ "散佈及/或修改本軟體。\n" #~ "\n" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ppd/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132372�010212� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ppd/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000001601�14273213734�012165� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # As a new `feature' :), a2ps uses now even more directories ppddir = $(pkgdatadir)/ppd ppd_DATA = README \ level1.ppd level2.ppd EXTRA_DIST = $(ppd_DATA) �������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ppd/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000162747�14445132055�012216� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = ppd ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(ppddir)" DATA = $(ppd_DATA) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # As a new `feature' :), a2ps uses now even more directories ppddir = $(pkgdatadir)/ppd ppd_DATA = README \ level1.ppd level2.ppd EXTRA_DIST = $(ppd_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ppd/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign ppd/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-ppdDATA: $(ppd_DATA) @$(NORMAL_INSTALL) @list='$(ppd_DATA)'; test -n "$(ppddir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(ppddir)'"; \ $(MKDIR_P) "$(DESTDIR)$(ppddir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ppddir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(ppddir)" || exit $$?; \ done uninstall-ppdDATA: @$(NORMAL_UNINSTALL) @list='$(ppd_DATA)'; test -n "$(ppddir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(ppddir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(ppddir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-ppdDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-ppdDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ppdDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs loc-am loc-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-ppdDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������a2ps-4.15.5/ppd/README������������������������������������������������������������������������������0000644�0000000�0000000�00000000455�14233473143�011015� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Printers directory from the a2ps distribution ============================================= level1.ppd ---------- Fake PPD file which only describes the fonts level 1 PostScript printers know. level2.ppd ---------- Fake PPD file which only describes the fonts level 2 PostScript printers know. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ppd/level1.ppd��������������������������������������������������������������������������0000644�0000000�0000000�00000003544�14233473143�012034� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������*PPD-Adobe: "4.2" *% *% This file is part of a2ps. *% *% This program is free software; you can redistribute it and/or modify *% it under the terms of the GNU General Public License as published by *% the Free Software Foundation; either version 3, or (at your option) *% any later version. *% *% This program is distributed in the hope that it will be useful, *% but WITHOUT ANY WARRANTY; without even the implied warranty of *% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *% GNU General Public License for more details. *% *% You should have received a copy of the GNU General Public License *% along with this program; see the file COPYING. If not, write to *% the Free Software Foundation, 59 Temple Place - Suite 330, *% Boston, MA 02111-1307, USA. *% *% Pseudo PPD file which describes only the 13 standard fonts *% in level 1 PostScript printers *% *FormatVersion: "4.2" *FileVersion: "1.0" *PCFileName: "LEVEL1.PPD" *LanguageVersion: English *Product: "(Level 1)" *PSVersion: "(23.0) 0" *ModelName: "Generic PostScript Level 1 Printer" *NickName: "Generic PostScript Level 1 Printer" *% Font Information ===================== *DefaultFont: Courier *Font Courier-Bold: Standard "(001.000)" Standard ROM *Font Courier-BoldOblique: Standard "(001.000)" Standard ROM *Font Courier-Oblique: Standard "(001.000)" Standard ROM *Font Helvetica: Standard "(001.001)" Standard ROM *Font Helvetica-Bold: Standard "(001.001)" Standard ROM *Font Helvetica-BoldOblique: Standard "(001.000)" Standard ROM *Font Helvetica-Oblique: Standard "(001.000)" Standard ROM *Font Symbol: Special "(001.001)" Special ROM *Font Times-Bold: Standard "(001.001)" Standard ROM *Font Times-BoldItalic: Standard "(001.001)" Standard ROM *Font Times-Italic: Standard "(001.001)" Standard ROM *Font Times-Roman: Standard "(001.000)" Standard ROM *% end of PPD file for Level 1 PostScript printer ������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ppd/level2.ppd��������������������������������������������������������������������������0000644�0000000�0000000�00000005253�14233473143�012034� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������*PPD-Adobe: "4.2" *% *% This file is part of a2ps. *% *% This program is free software; you can redistribute it and/or modify *% it under the terms of the GNU General Public License as published by *% the Free Software Foundation; either version 3, or (at your option) *% any later version. *% *% This program is distributed in the hope that it will be useful, *% but WITHOUT ANY WARRANTY; without even the implied warranty of *% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *% GNU General Public License for more details. *% *% You should have received a copy of the GNU General Public License *% along with this program; see the file COPYING. If not, write to *% the Free Software Foundation, 59 Temple Place - Suite 330, *% Boston, MA 02111-1307, USA. *% *% Pseudo PPD file which describes only the 35 standard fonts *% in level 2 PostScript printers *% *FormatVersion: "4.2" *FileVersion: "1.2" *PCFileName: "LEVEL2.PPD" *LanguageVersion: English *Product: "(Level 2)" *PSVersion: "(2000) 1" *ModelName: "Generic PostScript Level 2 Printer" *NickName: "Generic PostScript Level 2 Printer" *% Font Information ===================== *% Only non Level 1 fonts are included, since we include level1.pdd below. *DefaultFont: Courier *Font AvantGarde-Book: Standard "(001.006S)" Standard ROM *Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM *Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM *Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM *Font Bookman-Demi: Standard "(001.004S)" Standard ROM *Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM *Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM *Font Bookman-Light: Standard "(001.004S)" Standard ROM *Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM *Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM *Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM *Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM *Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM *Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM *Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM *Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM *Font Palatino-Bold: Standard "(001.005S)" Standard ROM *Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM *Font Palatino-Italic: Standard "(001.005S)" Standard ROM *Font Palatino-Roman: Standard "(001.005S)" Standard ROM *Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM *Font ZapfDingbats: Standard "(001.004S)" Standard ROM *% Including PPD Level 1 ================ *Include: "level1.ppd" *% end of PPD file for Level 2 PostScript printer �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/�������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132364�010052� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/Makefile.am��������������������������������������������������������������������������0000644�0000000�0000000�00000002051�14273213734�012024� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # As a new `feature' :), a2ps uses now even more directories psdir = $(pkgdatadir)/ps prologues = bw.pro bold.pro fixed.pro gray.pro color.pro gray2.pro \ matrix.pro diff.pro diffcolor.pro ul.pro procsets = base.ps ehandler.ps headers = a2ps.hdr color.hdr ps_DATA = $(prologues) $(procsets) $(headers) EXTRA_DIST = $(ps_DATA) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/Makefile.in��������������������������������������������������������������������������0000644�0000000�0000000�00000163141�14445132055�012042� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = ps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(psdir)" DATA = $(ps_DATA) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ # As a new `feature' :), a2ps uses now even more directories psdir = $(pkgdatadir)/ps psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ prologues = bw.pro bold.pro fixed.pro gray.pro color.pro gray2.pro \ matrix.pro diff.pro diffcolor.pro ul.pro procsets = base.ps ehandler.ps headers = a2ps.hdr color.hdr ps_DATA = $(prologues) $(procsets) $(headers) EXTRA_DIST = $(ps_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign ps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-psDATA: $(ps_DATA) @$(NORMAL_INSTALL) @list='$(ps_DATA)'; test -n "$(psdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; \ done uninstall-psDATA: @$(NORMAL_UNINSTALL) @list='$(ps_DATA)'; test -n "$(psdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(psdir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(psdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-psDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-psDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-psDATA install-strip installcheck installcheck-am \ installdirs loc-am loc-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-psDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/a2ps.hdr�����������������������������������������������������������������������������0000644�0000000�0000000�00000007450�14233473143�011342� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*- PostScript -*- % Base of a2ps' prologues % % $Id: a2ps.hdr,v 1.1.1.1.2.1 2007/12/29 01:58:26 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Variables and Functions % % Variables from `outside' % v: virtual page number in current page % sx: number of chars in lines' prefix % tab: tab size (in chars) % Functions % title: title % footer: footer % border: border around the body text % Coordinates % x, y: the virtual pages (arrays) % x0, y0: the current line content (x0 does not include % the line numbers) % snx, sny: left footer % dx, dy: the l-footer % lx, ly: the r-header % fnx, fny: the c-footer % scx, scy: the sheet center % Font sizes % fnfs: center title % bfs: body % Fonts % df: footer/header % sf: symbol % fnf: center title % Widths and heigths % cw: a Courier char % pw, ph: page % sw, sh: sheet % th: v.p. title % Margins % hm: header % ury: top % urx: right % llx: left % -- code follows this line -- %%BeginResource: procset a2ps-a2ps-hdr 2.0 2 %%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana %%DocumentProcessColors: Black % Function title: prints page header. % <ct> <rt> <lt> are passed as argument /title { % 1. Draw the background x v get y v get moveto gsave 0 th 2 div neg rmoveto th setlinewidth 0.95 setgray pw 0 rlineto stroke grestore % 2. Border it gsave 0.7 setlinewidth pw 0 rlineto 0 th neg rlineto pw neg 0 rlineto closepath stroke grestore % stk: ct rt lt x v get y v get th sub 1 add moveto %Font: Helvetica fnfs 0.8 mul % 3. The left title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack fnfs 0.8 mul hm rmoveto show % left title grestore exch % stk: ct ltw rt % 4. the right title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack dup pw exch stringwidth pop fnfs 0.8 mul add sub hm rmoveto show % right title grestore % stk: ct ltw rtw % 5. the center title gsave pw 3 1 roll % stk: ct pw ltw rtw 3 copy % Move to the center of the left room sub add 2 div hm rmoveto % What is the available space in here? add sub fnfs 0.8 mul sub fnfs 0.8 mul sub % stk: ct space_left %Font: Helvetica-Bold fnfs cfshow grestore } bind def % Function border: prints virtual page border /border { %def gsave % print four sides 0 setgray x v get y v get moveto 0.7 setlinewidth % of the square pw 0 rlineto 0 ph neg rlineto pw neg 0 rlineto closepath stroke grestore } bind def % Function water: prints a water mark in background /water { %def gsave scx scy moveto rotate %Font: Times-Bold 100 .97 setgray dup stringwidth pop 2 div neg -50 rmoveto show grestore } bind def % Function rhead: prints the right header /rhead { %def lx ly moveto %Font: Helvetica fnfs 0.8 mul l-show } bind def % Function footer (cf rf lf -> -) /footer { %Font: Helvetica fnfs 0.8 mul dx dy moveto show snx sny moveto l-show fnx fny moveto c-show } bind def %%EndResource ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/base.ps������������������������������������������������������������������������������0000644�0000000�0000000�00000025124�14236507210�011246� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% % Base of a2ps' prologues % % $Id: base.ps,v 1.1.1.1.2.2 2007/12/29 01:58:26 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Variables and Functions % % Variables from `outside' % v: virtual page number in current page % sx: number of chars in lines' prefix % tab: tab size (in chars) % Functions % title: title % footer: footer % border: border around the body text % Coordinates % x, y: the virtual pages (arrays) % x0, y0: the current line content (x0 does not include % the line numbers) % snx, sny: left footer % dx, dy: the l-footer % lx, ly: the r-header % fnx, fny: the c-footer % scx, scy: the sheet center % Font sizes % fnfs: center title % bfs: body % dfs: date % Fonts % df: footer/header % sf: symbol % fnf: center title % Widths and heigths % cw: a Courier char % pw, ph: page % sw, sh: sheet % th: v.p. title % Margins % hm: header % ury: top % urx: right % llx: left % -- code follows this line -- %%Copyright: (c) 1988-2017 Free Software Foundation, Inc. %%DocumentProcessColors: Black % Check PostScript language level. /languagelevel where { pop /gs_languagelevel languagelevel def } { /gs_languagelevel 1 def } ifelse % EPSF import as in the Red Book /BeginInclude { /b4_Inc_state save def % Save state for cleanup /dict_count countdictstack def % Count objects on dict stack /op_count count 1 sub def % Count objects on operand stack userdict begin 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath gs_languagelevel 1 ne { false setstrokeadjust false setoverprint } if } bind def /EndInclude { count op_count sub { pos } repeat % Clean up stacks countdictstack dict_count sub { end } repeat b4_Inc_state restore } bind def /BeginEPSF { BeginInclude /showpage { } def } bind def /EndEPSF { EndInclude } bind def % Page prefeed /page_prefeed { % bool -> - statusdict /prefeed known { statusdict exch /prefeed exch put } { pop } ifelse } bind def /deffont { findfont exch scalefont def } bind def /reencode_font { findfont reencode 2 copy definefont pop def } bind def % Function c-show (str => -) % centers text only according to x axis. /c-show { dup stringwidth pop 2 div neg 0 rmoveto show } bind def % Function l-show (str => -) % prints texts so that it ends at currentpoint /l-show { dup stringwidth pop neg 0 rmoveto show } bind def % center-fit show (str w => -) % show centered, and scale currentfont so that the width is less than w /cfshow { exch dup stringwidth pop % If the title is too big, try to make it smaller 3 2 roll 2 copy gt { % if, i.e. too big exch div currentfont exch scalefont setfont } { % ifelse pop pop } ifelse c-show % center title } bind def % Return the y size of the current font % - => fontsize /currentfontsize { currentfont /FontType get 0 eq { currentfont /FontMatrix get 3 get }{ currentfont /FontMatrix get 3 get 1000 mul } ifelse } bind def % reencode the font % <encoding-vector> <fontdict> -> <newfontdict> /reencode { %def dup length 5 add dict begin { %forall % <vector> <key> <val> 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding exch def % - % Use the font's bounding box to determine the ascent, descent, % and overall height; don't forget that these values have to be % transformed using the font's matrix. % We use `load' because sometimes BBox is executable, sometimes not. % Since we need 4 numbers an not an array avoid BBox from being executed /FontBBox load aload pop FontMatrix transform /Ascent exch def pop FontMatrix transform /Descent exch def pop /FontHeight Ascent Descent sub def % Get the underline position and thickness if they're defined. % Use 1 if they are not defined. currentdict /FontInfo 2 copy known { get /UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP 2 copy known { get }{ pop pop 1 } ifelse 0 exch FontMatrix transform exch pop def % <FontInfo> /UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT 2 copy known { get }{ pop pop 1 } ifelse 0 exch FontMatrix transform exch pop def % <FontInfo> pop % - }{ pop pop } ifelse currentdict end } bind def % composite fonts for ASCII-EUC mixed strings % Version 1.2 1/31/1990 % Original Ken'ichi HANDA (handa@etl.go.jp) % Modified Norio Katayama (katayama@rd.nacsis.ac.jp),1998 % Extend & Fix Koji Nakamaru (maru@on.cs.keio.ac.jp), 1999 % Anyone can freely copy, modify, distribute this program. /copyfont { % font-dic extra-entry-count copyfont font-dic 1 index maxlength add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse } forall currentdict end } bind def /compositefont { % ASCIIFontName EUCFontName RomanScale RomanOffset Rot(T/F) compositefont font /RomanRotation exch def /RomanOffset exch def /RomanScale exch def userdict /fixeucfont_dict known not { userdict begin /fixeucfont_dict 2 dict begin /UpperByteEncoding [ 16#00 1 16#20 { pop 0 } for 16#21 1 16#28 { 16#20 sub } for 16#29 1 16#2F { pop 0 } for 16#30 1 16#74 { 16#27 sub } for 16#75 1 16#FF { pop 0 } for ] def /LowerByteEncoding [ 16#00 1 16#A0 { pop /.notdef } for 16#A1 1 16#FE { 16#80 sub 16 2 string cvrs (cXX) dup 1 4 -1 roll putinterval cvn } for /.notdef ] def currentdict end def end } if findfont dup /FontType get 0 eq { 14 dict begin % % 7+8 bit EUC font % 12 dict begin /EUCFont exch def /FontInfo (7+8 bit EUC font) readonly def /PaintType 0 def /FontType 0 def /FontMatrix matrix def % /FontName /Encoding fixeucfont_dict /UpperByteEncoding get def /FMapType 2 def EUCFont /WMode known { EUCFont /WMode get /WMode exch def } { /WMode 0 def } ifelse /FDepVector [ EUCFont /FDepVector get 0 get [ 16#21 1 16#28 {} for 16#30 1 16#74 {} for ] { 13 dict begin /EUCFont EUCFont def /UpperByte exch 16#80 add def % /FontName /FontInfo (EUC lower byte font) readonly def /PaintType 0 def /FontType 3 def /FontMatrix matrix def /FontBBox {0 0 0 0} def /Encoding fixeucfont_dict /LowerByteEncoding get def % /UniqueID % /WMode /BuildChar { gsave exch dup /EUCFont get setfont /UpperByte get 2 string dup 0 4 -1 roll put dup 1 4 -1 roll put dup stringwidth setcharwidth 0 0 moveto show grestore } bind def currentdict end /lowerbytefont exch definefont } forall ] def currentdict end /eucfont exch definefont exch findfont 1 copyfont dup begin RomanRotation { /FontMatrix FontMatrix [ 0 RomanScale neg RomanScale 0 RomanOffset neg 0 ] matrix concatmatrix def }{ /FontMatrix FontMatrix [ RomanScale 0 0 RomanScale 0 RomanOffset ] matrix concatmatrix def /CDevProc {pop pop pop pop 0 exch -1000 exch 2 div 880} def } ifelse end /asciifont exch definefont exch /FDepVector [ 4 2 roll ] def /FontType 0 def /WMode 0 def /FMapType 4 def /FontMatrix matrix def /Encoding [0 1] def /FontBBox {0 0 0 0} def % /FontHeight 1.0 def % XXXX /FontHeight RomanScale 1.0 ge { RomanScale }{ 1.0 } ifelse def /Descent -0.3 def % XXXX currentdict end /tmpfont exch definefont pop /tmpfont findfont }{ pop findfont 0 copyfont } ifelse } def /slantfont { % FontName slant-degree slantfont font' exch findfont 1 copyfont begin [ 1 0 4 -1 roll 1 0 0 ] FontMatrix exch matrix concatmatrix /FontMatrix exch def currentdict end } def % Function print line number (<string> # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def % -------- Some routines to enlight plain b/w printings --------- % Underline % width -- /dounderline { currentpoint gsave moveto 0 currentfont /Descent get currentfontsize mul rmoveto 0 rlineto stroke grestore } bind def % Underline a string % string -- /dounderlinestring { stringwidth pop dounderline } bind def /UL { /ul exch store } bind def % Draw a box of WIDTH wrt current font % width -- /dobox { currentpoint gsave newpath moveto 0 currentfont /Descent get currentfontsize mul rmoveto dup 0 rlineto 0 currentfont /FontHeight get currentfontsize mul rlineto neg 0 rlineto closepath stroke grestore } bind def /BX { /bx exch store } bind def % Box a string % string -- /doboxstring { stringwidth pop dobox } bind def % % ------------- Color routines --------------- % /FG /setrgbcolor load def % Draw the background % width -- /dobackground { currentpoint gsave newpath moveto 0 currentfont /Descent get currentfontsize mul rmoveto dup 0 rlineto 0 currentfont /FontHeight get currentfontsize mul rlineto neg 0 rlineto closepath bgcolor aload pop setrgbcolor fill grestore } bind def % Draw bg for a string % string -- /dobackgroundstring { stringwidth pop dobackground } bind def /BG { dup /bg exch store { mark 4 1 roll ] /bgcolor exch store } if } bind def /Show { bg { dup dobackgroundstring } if ul { dup dounderlinestring } if bx { dup doboxstring } if show } bind def % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add bg { dup currentpoint pop sub dobackground } if ul { dup currentpoint pop sub dounderline } if bx { dup currentpoint pop sub dobox } if y0 moveto } bind def % Function n: move to the next line /n { /y0 y0 bfs sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 bfs sub store x0 y0 moveto } bind def /S { Show } bind def %%BeginSetup /bgcolor [ 0 0 0 ] def /bg false def /ul false def /bx false def %%EndSetup ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/bold.pro�����������������������������������������������������������������������������0000644�0000000�0000000�00000004626�14233473143�011442� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue % % $Id: bold.pro,v 1.1.1.1.2.1 2007/12/29 01:58:26 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation This style is meant to replace the old option code(-b)code of a2ps 4.3. It is a copy of the black and white prologue, but in which all the fonts are in Bold. EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file a2ps.hdr %%BeginResource: procset a2ps-bold-Prolog 2.0 1 % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add y0 moveto } bind def % Function n: move to the next line /n { %def /y0 y0 bfs sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 bfs sub store x0 y0 moveto } bind def /S { Show } bind def /p { false UL false BX %Face: Plain Courier-Bold bfs Show } bind def /sy { false UL false BX %Face: Symbol Symbol bfs Show } bind def /k { false UL false BX %Face: Keyword Courier-BoldOblique bfs Show } bind def /K { false UL false BX %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { false UL false BX %Face: Comment Courier-BoldOblique bfs Show } bind def /C { false UL false BX %Face: Comment_strong Courier-BoldOblique bfs Show } bind def /l { false UL false BX %Face: Label Helvetica-Bold bfs Show } bind def /L { false UL false BX %Face: Label_strong Helvetica-Bold bfs Show } bind def /str{ false UL false BX %Face: String Times-Bold bfs Show } bind def /e{ false UL true BX %Face: Error Helvetica-Bold bfs Show } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup ����������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/bw.pro�������������������������������������������������������������������������������0000644�0000000�0000000�00000004447�14233473143�011133� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue % % $Id: bw.pro,v 1.1.1.1.2.1 2007/12/29 01:58:26 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation Style is plain: pure black and white, with standard fonts. EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file a2ps.hdr %%BeginResource: procset a2ps-black+white-Prolog 2.0 1 % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add y0 moveto } bind def % Function n: move to the next line /n { %def /y0 y0 bfs sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 bfs sub store x0 y0 moveto } bind def /S { Show } bind def /p { false UL false BX %Face: Plain Courier bfs Show } bind def /sy { false UL false BX %Face: Symbol Symbol bfs Show } bind def /k { false UL false BX %Face: Keyword Courier-Oblique bfs Show } bind def /K { false UL false BX %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { false UL false BX %Face: Comment Courier-Oblique bfs Show } bind def /C { false UL false BX %Face: Comment_strong Courier-BoldOblique bfs Show } bind def /l { false UL false BX %Face: Label Helvetica bfs Show } bind def /L { false UL false BX %Face: Label_strong Helvetica-Bold bfs Show } bind def /str{ false UL false BX %Face: String Times-Roman bfs Show } bind def /e{ false UL true BX %Face: Error Helvetica-Bold bfs Show } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/color.hdr����������������������������������������������������������������������������0000644�0000000�0000000�00000007635�14233473143�011620� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*- PostScript -*- % Base of a2ps' prologues % % $Id: color.hdr,v 1.1.1.1.2.1 2007/12/29 01:58:27 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Variables and Functions % % Variables from `outside' % v: virtual page number in current page % sx: number of chars in lines' prefix % tab: tab size (in chars) % Functions % title: title % footer: footer % border: border around the body text % Coordinates % x, y: the virtual pages (arrays) % x0, y0: the current line content (x0 does not include % the line numbers) % snx, sny: left footer % dx, dy: the l-footer % lx, ly: the r-header % fnx, fny: the c-footer % scx, scy: the sheet center % Font sizes % fnfs: center title % bfs: body % Fonts % df: footer/header % sf: symbol % fnf: center title % Widths and heigths % cw: a Courier char % pw, ph: page % sw, sh: sheet % th: v.p. title % Margins % hm: header % ury: top % urx: right % llx: left % -- code follows this line -- %%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana %%DocumentProcessColors: Black % Function title: prints page header. % <ct> <rt> <lt> are passed as argument /title { % 1. Draw the background x v get y v get moveto 0 setgray gsave 0 th 2 div neg rmoveto th setlinewidth 0.5 0.5 1 setrgbcolor pw 0 rlineto stroke grestore % 2. Border it gsave 0.7 setlinewidth pw 0 rlineto 0 th neg rlineto pw neg 0 rlineto closepath stroke grestore % stk: ct rt lt x v get y v get th sub 1 add moveto %Font: Helvetica fnfs 0.8 mul % 3. The left title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack fnfs 0.8 mul hm rmoveto show % left title grestore exch % stk: ct ltw rt % 4. the right title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack dup pw exch stringwidth pop fnfs 0.8 mul add sub hm rmoveto show % right title grestore % stk: ct ltw rtw % 5. the center title gsave pw 3 1 roll % stk: ct pw ltw rtw 3 copy % Move to the center of the left room sub add 2 div hm rmoveto % What is the available space in here? add sub fnfs 0.8 mul sub fnfs 0.8 mul sub % stk: ct space_left %Font: Helvetica-Bold fnfs 1 setgray cfshow grestore } bind def % Function border: prints virtual page border /border { %def gsave % print four sides 0 setgray x v get y v get moveto 0.7 setlinewidth % of the square pw 0 rlineto 0 ph neg rlineto pw neg 0 rlineto closepath stroke grestore } bind def % Function water: prints a water mark in background /water { %def gsave scx scy moveto rotate %Font: Times-Bold 100 .97 setgray dup stringwidth pop 2 div neg -50 rmoveto show grestore } bind def % Function rhead: prints the right header /rhead { %def lx ly moveto %Font: Helvetica fnfs 0.8 mul l-show } bind def % Function footer (cf rf lf -> -) /footer { %Font: Helvetica fnfs 0.8 mul dx dy moveto show snx sny moveto l-show fnx fny moveto c-show } bind def % Function print line number (<string> # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def ���������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/color.pro����������������������������������������������������������������������������0000644�0000000�0000000�00000004601�14233473143�011631� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue for a2ps (Colored) % % $Id: color.pro,v 1.1.1.1.2.1 2007/12/29 01:58:27 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation Colors are used to highlight the keywords. EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file color.hdr %%BeginResource: procset a2ps-color-prolog 2.0 1 %%DocumentProcessColors: Red Green Blue %% Definition of the color faces. /p { 0 0 0 FG false BG false UL false BX %Face: Plain Courier bfs Show } bind def /sy { 0 0 0 FG false BG %Face: Symbol Symbol bfs Show } bind def /k { false BG false UL false BX 0 0 0.9 FG %Face: Keyword Courier bfs Show } bind def /K { false BG false UL false BX 0 0 0.8 FG %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { false BG false UL false BX 0.8 0 0 FG %Face: Comment Courier bfs Show } bind def /C { false BG false UL false BX 0.8 0 0 FG %Face: Comment_strong Courier-Bold bfs Show } bind def /l { 0 0 0 FG 0.8 0.8 0 true BG false UL false BX %Face: Label Courier bfs Show } bind def /L { 0 0 0 FG 1 1 0 true BG false UL false BX %Face: Label_strong Courier-Bold bfs Show } bind def /str { false BG false UL false BX 0 0.5 0 FG %Face: String Times-Roman bfs Show } bind def /e{ 1 0 0 true BG false UL true BX 1 1 1 FG %Face: Error Helvetica-Bold bfs Show } bind def % Function print line number (<string> # -) /# { gsave sx cw mul 2 div neg 0 rmoveto f# setfont 0.8 0.1 0.1 FG c-show grestore } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup �������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/diff.pro�����������������������������������������������������������������������������0000644�0000000�0000000�00000005347�14233473143�011433� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue for a2ps (meant for diffs) % % $Id: diff.pro,v 1.1.1.1.2.1 2007/12/29 01:58:27 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation This style is meant to be used with the code(udiff)code, code(wdiff)code style sheets, to underline the differences. New things are in bold on a diff background, while removed sequences are in italic. EndDocumentation % -- code follows this line -- %%BeginResource: procset a2ps-diff-Prolog 2.0 1 %%IncludeResource: file base.ps %%IncludeResource: file a2ps.hdr % Another version of `dounderline' which strikes through the string, % not under. % width -- /dounderline { currentpoint gsave moveto 0 currentfont /UnderlineThickness get currentfontsize mul setlinewidth % Move to half the height of the font currentfontsize 4 div rmoveto 0 rlineto stroke grestore } bind def /p { 0 0 0 FG false BG false UL false BX %Face: Plain Courier bfs Show } bind def /sy { 0 0 0 FG false BG false UL false BX %Face: Symbol Symbol bfs Show } bind def % Removed /k { 0 0 0 FG false BG true UL false BX %Face: Keyword Courier bfs Show } bind def % Added /K { 0 0 0 FG 0.9 0.9 0.9 true BG false UL false BX %Face: Keyword_strong Courier bfs Show } bind def /c { 0 0 0 FG 0.9 0.9 0.9 true BG false UL false BX %Face: Comment Courier-Oblique bfs Show } bind def /C { 1.0 1.0 1.0 FG false BG false UL false BX %Face: Comment_strong Courier-Bold bfs Show } bind def /l { 0 0 0 FG 0.9 0.9 0.9 true BG false UL false BX %Face: Label Courier bfs Show } bind def /L { 0 0 0 true BG false UL false BX 1.0 1.0 1.0 FG %Face: Label_strong Courier-Bold bfs Show } bind def /str { 0 0 0 FG false BG false UL false BX %Face: String Times-Roman bfs Show } bind def /e{ 0 0 0 true BG false UL false BX 1.0 1.0 1.0 FG %Face: Error Helvetica-Bold bfs Show } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/diffcolor.pro������������������������������������������������������������������������0000644�0000000�0000000�00000004636�14233473143�012472� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue for a2ps (Colored, for diffs) % % $Id: diffcolor.pro,v 1.1.2.2 2007/12/29 01:58:27 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation Colors are used to highlight the keywords (for diffs). EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file color.hdr %%BeginResource: procset a2ps-diffcolor-prolog 2.0 1 %%DocumentProcessColors: Red Green Blue %% Definition of the color faces. /p { 0.9 0 0 FG false BG false UL false BX %Face: Plain Courier bfs Show } bind def /sy { 0 0 0 FG false BG %Face: Symbol Symbol bfs Show } bind def /k { false BG false UL false BX 0 0 0.9 FG %Face: Keyword Courier bfs Show } bind def /K { false BG false UL false BX 0 0.9 0 FG %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { false BG false UL false BX 0 0 0.9 FG %Face: Comment Courier bfs Show } bind def /C { false BG false UL false BX 0 0 0.9 FG %Face: Comment_strong Courier-Bold bfs Show } bind def /l { 0 0 0 FG 0.8 0.8 0 true BG false UL false BX %Face: Label Courier bfs Show } bind def /L { 0 0 0 FG 1 1 0 true BG false UL false BX %Face: Label_strong Courier-Bold bfs Show } bind def /str { false BG false UL false BX 0 0.5 0 FG %Face: String Times-Roman bfs Show } bind def /e{ 1 0 0 true BG false UL true BX 1 1 1 FG %Face: Error Helvetica-Bold bfs Show } bind def % Function print line number (<string> # -) /# { gsave sx cw mul 2 div neg 0 rmoveto f# setfont 0.8 0.1 0.1 FG c-show grestore } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup ��������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/ehandler.ps��������������������������������������������������������������������������0000644�0000000�0000000�00000005405�14233473143�012122� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%!ps % lib/ehandler.ps -- Downloaded Error Break-page handler % GOVERNMENT END USERS: See Notice file in TranScript library directory % -- probably /usr/lib/ps/Notice % RCSID: $Header: /sources/a2ps/a2ps/ps/ehandler.ps,v 1.1.1.1 2002/03/04 18:46:27 akim Exp $ % -- code follows this line -- % assumes serverloop password is the default one /$brkpage where {pop(Error Handler in place - not loaded again\n)print flush stop} {serverdict begin statusdict begin 0000 checkpassword {(Error Handler downloaded.\n)print flush 0000 exitserver} {(Bad Password on loading error handler!!!\n)print flush stop}ifelse }ifelse /$brkpage 64 dict def $brkpage begin /prnt {dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def /=={/cp 0 def typeprint nl}def /typeprint{dup type exec}readonly def /lmargin 72 def /rmargin 72 def /tprint {dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp exch def prnt}readonly def /cvsprint{=string cvs tprint( )tprint}readonly def /integertype{cvsprint}readonly def /realtype{cvsprint}readonly def /booleantype{cvsprint}readonly def /operatortype{(--)tprint =string cvs tprint(-- )tprint}readonly def /marktype{pop(-mark- )tprint}readonly def /dicttype{pop(-dictionary- )tprint}readonly def /nulltype{pop(-null- )tprint}readonly def /filetype{pop(-filestream- )tprint}readonly def /savetype{pop(-savelevel- )tprint}readonly def /fonttype{pop(-fontid- )tprint}readonly def /nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def /stringtype {dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse }readonly def /arraytype {dup rcheck{dup xcheck {({)tprint{typeprint}forall(})tprint} {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse }readonly def /packedarraytype {dup rcheck{dup xcheck {({)tprint{typeprint}forall(})tprint} {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse }readonly def /courier/Courier findfont 10 scalefont def end %$brkpage errordict/handleerror {systemdict begin $error begin $brkpage begin newerror {/newerror false store vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont lmargin 720 moveto(ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt $error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if systemdict/showpage get exec(%%[ Error: )print errorname =print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end end} dup 0 systemdict put dup 4 $brkpage put bind readonly put �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/fixed.pro����������������������������������������������������������������������������0000644�0000000�0000000�00000004640�14233473143�011615� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation This style uses exclusively fixed size fonts. You should use this style if you want the tabulations to be properly printed. There are no means to use a fixed size Symbol font, therefore you should not use the heavy highlighting style. EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file a2ps.hdr %%BeginResource: procset a2ps-black+white-Prolog 2.0 1 % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add y0 moveto } bind def % Function n: move to the next line /n { %def /y0 y0 bfs sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 bfs sub store x0 y0 moveto } bind def /S { Show } bind def /p { false UL false BX %Face: Plain Courier bfs Show } bind def /sy { false UL false BX %Face: Symbol Symbol bfs Show } bind def /k { false UL false BX %Face: Keyword Courier-Oblique bfs Show } bind def /K { false UL false BX %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { false UL false BX %Face: Comment Courier-Oblique bfs Show } bind def /C { false UL false BX %Face: Comment_strong Courier-BoldOblique bfs Show } bind def /l { false UL false BX %Face: Label Courier-Bold bfs Show } bind def /L { false UL false BX %Face: Label_strong Courier-Bold bfs Show } bind def /str{ false UL false BX %Face: String Courier-Oblique bfs Show } bind def /e{ false UL true BX %Face: Error Courier-BoldOblique bfs Show } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup ������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/gray.pro�����������������������������������������������������������������������������0000644�0000000�0000000�00000004313�14233473143�011455� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue for a2ps (Gray shades) % % $Id: gray.pro,v 1.1.1.1.2.1 2007/12/29 01:58:27 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation Gray background is used for comments and labels. EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file a2ps.hdr %%BeginResource: procset a2ps-gray-Prolog 2.0 1 /p { 0 0 0 FG false BG false UL false BX %Face: Plain Courier bfs Show } bind def /sy { 0 0 0 FG false BG false UL false BX %Face: Symbol Symbol bfs Show } bind def /k { 0 0 0 FG false BG false UL false BX %Face: Keyword Courier-Oblique bfs Show } bind def /K { 0 0 0 FG false BG false UL false BX %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { 0 0 0 FG 0.9 0.9 0.9 true BG false UL false BX %Face: Comment Courier bfs Show } bind def /C { 0 0 0 FG 0.8 0.8 0.8 true BG false UL false BX %Face: Comment_strong Courier-Bold bfs Show } bind def /l { 0 0 0 FG 0.9 0.9 0.9 true BG false UL false BX %Face: Label Courier bfs Show } bind def /L { 1 1 1 FG 0 0 0 true BG false UL false BX %Face: Label_strong Courier-Bold bfs Show } bind def /str { 0 0 0 FG false BG false UL false BX %Face: String Times-Roman bfs Show } bind def /e{ 1 1 1 FG 0 0 0 true BG false UL false BX %Face: Error Helvetica-Bold bfs Show } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/gray2.pro����������������������������������������������������������������������������0000644�0000000�0000000�00000004301�14233473143�011534� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue for a2ps (Gray shades) % % $Id: gray2.pro,v 1.1.1.1.2.1 2007/12/29 01:58:27 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation Black background is used for comments and labels. EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file a2ps.hdr %%BeginResource: procset a2ps-gray2-faces 2.0 2 /p { 0 0 0 FG false BG false UL false BX %Face: Plain Courier bfs Show } bind def /sy { 0 0 0 FG false BG false UL false BX %Face: Symbol Symbol bfs Show } bind def /k { 0 0 0 FG false BG false UL false BX %Face: Keyword Courier-Oblique bfs Show } bind def /K { 0 0 0 FG false BG false UL false BX %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { 0 0 0 FG 0.9 0.9 0.9 true BG false UL false BX %Face: Comment Courier bfs Show } bind def /C { 1 1 1 FG 0 0 0 true BG false UL false BX %Face: Comment_strong Courier-Bold bfs Show } bind def /l { 1 1 1 FG 0 0 0 true BG false UL false BX %Face: Label Courier bfs Show } bind def /L { 1 1 1 FG 0 0 0 true BG false UL false BX %Face: Label_strong Courier-Bold bfs Show } bind def /str { 0 0 0 FG false BG false UL false BX %Face: String Times-Roman bfs Show } bind def /e{ 1 1 1 FG 0 0 0 true BG false UL false BX %Face: Error Helvetica-Bold bfs Show } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/matrix.pro���������������������������������������������������������������������������0000644�0000000�0000000�00000005542�14233473143�012024� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% -*-postscript-*- % PostScript Prologue % % $Id: matrix.pro,v 1.1.1.1.2.1 2007/12/29 01:58:27 mhatta Exp $ % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation The layout is the same as samp(bw)samp, but alternating gray and white lines. There are two macros defining the behavior: samp(pro.matrix.cycle)samp defines the length of the cycle (number of white and gray lines). It defaults to 6. samp(pro.matrix.gray)samp defines the number of gray lines. Default is 3. EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file a2ps.hdr %%BeginResource: procset a2ps-matrix-Prolog 2.0 1 % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add y0 moveto } bind def % Function n: move to the next line /n { %def /y0 y0 bfs sub store % Draw a grey background /nline nline 1 add def %Expand: nline #{pro.matrix.cycle:-6} mod #{pro.matrix.gray:-3} ge { gsave newpath x v get y0 currentfont /Descent get currentfontsize mul add moveto pw 0 rlineto 0 bfs rlineto pw neg 0 rlineto closepath 0.9 setgray fill grestore } if x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show n } bind def /S { Show } bind def /p { false UL false BX %Face: Plain Courier bfs Show } bind def /sy { false UL false BX %Face: Symbol Symbol bfs Show } bind def /k { false UL false BX %Face: Keyword Courier-Oblique bfs Show } bind def /K { false UL false BX %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { false UL false BX %Face: Comment Courier-Oblique bfs Show } bind def /C { false UL false BX %Face: Comment_strong Courier-BoldOblique bfs Show } bind def /l { false UL false BX %Face: Label Helvetica bfs Show } bind def /L { false UL false BX %Face: Label_strong Helvetica-Bold bfs Show } bind def /str{ false UL false BX %Face: String Times-Roman bfs Show } bind def /e{ false UL true BX %Face: Error Helvetica-Bold bfs Show } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def /nline 0 def %%EndSetup ��������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/ps/ul.pro�������������������������������������������������������������������������������0000644�0000000�0000000�00000004454�14233473143�011141� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% PostScript Prologue -*- postscript -*- % % % This file is part of a2ps. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3, or (at your option) % any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; see the file COPYING. If not, write to % the Free Software Foundation, 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % Documentation This style uses bold faces and underlines, but never italics. This is particularly meant for printing formatted man pages. EndDocumentation % -- code follows this line -- %%IncludeResource: file base.ps %%IncludeResource: file a2ps.hdr %%BeginResource: procset a2ps-black+white-Prolog 2.0 1 % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add y0 moveto } bind def % Function n: move to the next line /n { %def /y0 y0 bfs sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 bfs sub store x0 y0 moveto } bind def /S { Show } bind def /p { false UL false BX %Face: Plain Courier bfs Show } bind def /sy { false UL false BX %Face: Symbol Symbol bfs Show } bind def /k { true UL false BX %Face: Keyword Courier bfs Show } bind def /K { false UL false BX %Face: Keyword_strong Courier-Bold bfs Show } bind def /c { true UL false BX %Face: Comment Courier bfs Show } bind def /C { true UL false BX %Face: Comment_strong Courier-Bold bfs Show } bind def /l { false UL false BX %Face: Label Helvetica bfs Show } bind def /L { false UL false BX %Face: Label_strong Helvetica-Bold bfs Show } bind def /str{ false UL false BX %Face: String Times-Roman bfs Show } bind def /e{ false UL true BX %Face: Error Helvetica-Bold bfs Show } bind def %%EndResource %%BeginSetup % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def %%EndSetup ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/���������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132371�010721� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/68000.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003066�14445053504�012042� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for 68000 # Copyright (c) 1995-99 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille <akim@freefriends.org> # Regexp for macro processor style 68000 is written by "Akim Demaille <akim@freefriends.org>" version is 1.3 requires a2ps 4.9.7 documentation is "Althought designed at the origin for the 68k's assembler, this style" "sheet seems to handle rather well other dialects." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz." ancestors are cpp end ancestors keywords in Keyword_strong are .data, .globl, .long, .skip, .text, addw, beq, bgt, ble, bne, bra, bset, btst, clrl, cmpl, jmp, jsr, movel, moveb, moveml, movew, movw, rte, rts, subw, subql, tstl end keywords sequences are "|#" Comment_strong, |* Comment_strong, | Comment end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/Makefile.am����������������������������������������������������������������������0000644�0000000�0000000�00000006776�14445053504�012715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # The a2ps of this package xa2ps = $(top_builddir)/src/a2ps TAR = gtar # As a new `feature' :), a2ps uses now even more directories sheetsdir = $(pkgdatadir)/sheets major_sheets = \ ada.ssh c.ssh card.ssh clisp.ssh cpp.ssh cxx.ssh eiffel.ssh elisp.ssh \ for-fixed.ssh for-free.ssh for77-fixed.ssh for77-free.ssh \ for77kwds.ssh for90-fixed.ssh for90-free.ssh for90kwds.ssh fortran.ssh \ gnuc.ssh java.ssh mail.ssh make.ssh objc.ssh ocaml.ssh pascal.ssh \ perl.ssh pre.ssh pretex.ssh scheme.ssh sh.ssh shell.ssh ssh.ssh \ symbols.ssh tcl.ssh texscript.ssh tk.ssh udiff.ssh wdiff.ssh minor_sheets = \ 68000.ssh a2psrc.ssh asn1.ssh autoconf.ssh awk.ssh b.ssh bc.ssh \ caml.ssh chlog.ssh cidl.ssh claire.ssh coqv.ssh csh.ssh csharp.ssh \ dc_shell.ssh eps.ssh gmake.ssh haskell.ssh html.ssh idl.ssh initora.ssh \ is5rul.ssh js.ssh lace.ssh lex.ssh lout.ssh maple.ssh matlab.ssh \ matlab4.ssh mib.ssh mly.ssh modula2.ssh modula3.ssh nasm.ssh o2c.ssh \ oberon.ssh octave.ssh oracle.ssh pic16f84.ssh plsql.ssh pov.ssh ppd.ssh \ ps.ssh prolog.ssh promela.ssh python.ssh rexx.ssh sather.ssh sdl88.ssh \ sed.ssh small.ssh sml.ssh specc.ssh sql.ssh sql92.ssh stratego.ssh \ tclx.ssh tcsh.ssh tex.ssh texinfo.ssh tiger.ssh unity.ssh vba.ssh \ verilog.ssh vhdl.ssh vrml.ssh vtcl.ssh yacc.ssh xs.ssh zsh.ssh \ php.ssh rd.ssh s.ssh st.ssh ruby.ssh if EXTENSIONS sheets_DATA = sheets.map $(major_sheets) $(minor_sheets) else sheets_DATA = sheets.map $(major_sheets) endif EXTRA_DIST = sheets.map $(major_sheets) $(minor_sheets) # An HTML page to present the currently known style sheets sheets.html: sheets.tar.gz . $(top_builddir)/tests/defs && $(xa2ps) --list=html-style-sheets > $@-t chmod 644 $@-t mv $@-t $@ @echo "To install these files, run" @echo "cp *.ssh sheets.map sheets.html sheets.tar.gz <destdir>" @echo "cp sheets.map <destdir>/sheets.mp" # A tar.gz of the current style sheets sheetsdist: sheets.tar.gz # Basic dependencies sheets.tar.gz: Makefile.am distdir=/tmp/sheets ;\ rm -rf $$distdir ; mkdir $$distdir ; \ for file in *.ssh sheets.map; do \ test -f $$distdir/$$file \ || ln $$file $$distdir/$$file 2> /dev/null \ || cp -p $$file $$distdir/$$file; \ done ; \ (cd /tmp ; \ GZIP=$(GZIP) $(TAR) chozf $@ sheets) ;\ rm -rf $$distdir mv /tmp/$@ . # Check that all the sheets are included in the package. check: rm -f check.t check.t1 check.t2 for i in $(major_sheets) $(minor_sheets); do \ echo $$i >> check.t; \ done sort check.t | uniq > check.t1 rm -f check.t for i in `cd $(srcdir) && echo *.ssh`; do \ echo $$i >> check.t; \ done sort check.t | uniq > check.t2 if cmp check.t1 check.t2 >/dev/null; then :; else \ echo "There are differences between available style sheets"; \ echo "and distributed style sheets."; \ diff check.t1 check.t2; \ fi rm -f check.t check.t1 check.t2 ��a2ps-4.15.5/sheets/Makefile.in����������������������������������������������������������������������0000644�0000000�0000000�00000170257�14445132055�012721� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1995-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = sheets ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(sheetsdir)" DATA = $(sheets_DATA) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # The a2ps of this package xa2ps = $(top_builddir)/src/a2ps TAR = gtar # As a new `feature' :), a2ps uses now even more directories sheetsdir = $(pkgdatadir)/sheets major_sheets = \ ada.ssh c.ssh card.ssh clisp.ssh cpp.ssh cxx.ssh eiffel.ssh elisp.ssh \ for-fixed.ssh for-free.ssh for77-fixed.ssh for77-free.ssh \ for77kwds.ssh for90-fixed.ssh for90-free.ssh for90kwds.ssh fortran.ssh \ gnuc.ssh java.ssh mail.ssh make.ssh objc.ssh ocaml.ssh pascal.ssh \ perl.ssh pre.ssh pretex.ssh scheme.ssh sh.ssh shell.ssh ssh.ssh \ symbols.ssh tcl.ssh texscript.ssh tk.ssh udiff.ssh wdiff.ssh minor_sheets = \ 68000.ssh a2psrc.ssh asn1.ssh autoconf.ssh awk.ssh b.ssh bc.ssh \ caml.ssh chlog.ssh cidl.ssh claire.ssh coqv.ssh csh.ssh csharp.ssh \ dc_shell.ssh eps.ssh gmake.ssh haskell.ssh html.ssh idl.ssh initora.ssh \ is5rul.ssh js.ssh lace.ssh lex.ssh lout.ssh maple.ssh matlab.ssh \ matlab4.ssh mib.ssh mly.ssh modula2.ssh modula3.ssh nasm.ssh o2c.ssh \ oberon.ssh octave.ssh oracle.ssh pic16f84.ssh plsql.ssh pov.ssh ppd.ssh \ ps.ssh prolog.ssh promela.ssh python.ssh rexx.ssh sather.ssh sdl88.ssh \ sed.ssh small.ssh sml.ssh specc.ssh sql.ssh sql92.ssh stratego.ssh \ tclx.ssh tcsh.ssh tex.ssh texinfo.ssh tiger.ssh unity.ssh vba.ssh \ verilog.ssh vhdl.ssh vrml.ssh vtcl.ssh yacc.ssh xs.ssh zsh.ssh \ php.ssh rd.ssh s.ssh st.ssh ruby.ssh @EXTENSIONS_FALSE@sheets_DATA = sheets.map $(major_sheets) @EXTENSIONS_TRUE@sheets_DATA = sheets.map $(major_sheets) $(minor_sheets) EXTRA_DIST = sheets.map $(major_sheets) $(minor_sheets) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign sheets/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign sheets/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-sheetsDATA: $(sheets_DATA) @$(NORMAL_INSTALL) @list='$(sheets_DATA)'; test -n "$(sheetsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sheetsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sheetsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sheetsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sheetsdir)" || exit $$?; \ done uninstall-sheetsDATA: @$(NORMAL_UNINSTALL) @list='$(sheets_DATA)'; test -n "$(sheetsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sheetsdir)'; $(am__uninstall_files_from_dir) loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(sheetsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-sheetsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-sheetsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-sheetsDATA install-strip installcheck installcheck-am \ installdirs loc-am loc-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-sheetsDATA .PRECIOUS: Makefile # An HTML page to present the currently known style sheets sheets.html: sheets.tar.gz . $(top_builddir)/tests/defs && $(xa2ps) --list=html-style-sheets > $@-t chmod 644 $@-t mv $@-t $@ @echo "To install these files, run" @echo "cp *.ssh sheets.map sheets.html sheets.tar.gz <destdir>" @echo "cp sheets.map <destdir>/sheets.mp" # A tar.gz of the current style sheets sheetsdist: sheets.tar.gz # Basic dependencies sheets.tar.gz: Makefile.am distdir=/tmp/sheets ;\ rm -rf $$distdir ; mkdir $$distdir ; \ for file in *.ssh sheets.map; do \ test -f $$distdir/$$file \ || ln $$file $$distdir/$$file 2> /dev/null \ || cp -p $$file $$distdir/$$file; \ done ; \ (cd /tmp ; \ GZIP=$(GZIP) $(TAR) chozf $@ sheets) ;\ rm -rf $$distdir mv /tmp/$@ . # Check that all the sheets are included in the package. check: rm -f check.t check.t1 check.t2 for i in $(major_sheets) $(minor_sheets); do \ echo $$i >> check.t; \ done sort check.t | uniq > check.t1 rm -f check.t for i in `cd $(srcdir) && echo *.ssh`; do \ echo $$i >> check.t; \ done sort check.t | uniq > check.t2 if cmp check.t1 check.t2 >/dev/null; then :; else \ echo "There are differences between available style sheets"; \ echo "and distributed style sheets."; \ diff check.t1 check.t2; \ fi rm -f check.t check.t1 check.t2 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/README���������������������������������������������������������������������������0000644�0000000�0000000�00000004561�14445053504�011527� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Here is a list of the changes that occured in the style sheet language. Version 4.9.10 * Enforced the rule that the last read is wining. Before sequences are "%%" Comment, "%" Comment end sequence had %% checked first, and sequences are "%" Comment end sequence sequences are "%%" Comment, end sequence had %% checked first. Now, no matter if it comes from an ancestor, or a previous definition block, or it is after another in the same block, it is *always* the last one which wins. * Regex can be spread on several lines. E.g. (from mail.ssh) /^\\(From: \\)/ # \1. The From /\\([[:blank:]]*\\)/ # \2. Some blanks /\\([^(]+(\\)/ # \3. The email /\\([^)]+\\)/ # \4. Name of the sender (between paren) /\\().*\n\\)/ # \5. End of line \1 Keyword_strong, \2 Plain, \3 Label_strong, \4 (Label_strong + Tag2), \5 Label_strong) * Matching is now first on strings, then on regexp. This makes easier to handle exceptions in regex. I noticed no difference with the existing style sheets. * The "default" face is no longer Plain, but Invisible. In pratice this means that "Foo" Tag1 with former a2pses was "Foo" Plain + Tag1 and now it is "Foo" Invisible + Tag1 Version 4.9.8 * Special constructs in documentation: - url(address)url(name)url (cf. claire.ssh) - @example Blah @end example For text that must not be justified (cf gnuc.ssh). - @itemize @item Blah @item Blah 2 @end itemize For enumerations (cf. claire.ssh). Version 4.9.7 * "alphabets are" can be used as a shortcut. * "ancestors are" to extend existing style sheets. * "comment is" is replaced by "documentation is", which is more explicit. * "closers are" for closing alternatives of sequences. * "requires" to specify needed a2ps version. Version 4.9.6 * There can be several strings ("string1" "string2" ...) in "comments are". An end-of-line is inserted between each one (string1\nstring2..."). Version 4.9.5 * The name of the files *must* (please respect this) be 8+3, with no special chars. They *all* should be lower case, alphanumerical. Nothing more! This is of course for portability issues. *Note* The name of the style is not related to this. It can be anything you want. Version 4.9.4 * "version is" is new. * "written by" is new. �����������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/a2psrc.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000003462�14445053504�012557� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for a2ps configuration files # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: a2psrc.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:27 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille <akim@freefriends.org> # Added MacroMetaSequences: and PageLabelFormat: ## 1.2 Akim Demaille <akim@freefriends.org> # Added (Append|<nothing>|Prepend)LibraryPath: ## 1.3 Akim Demaille <akim@freefriends.org> # Added FileCommand: and TemporaryDirectory: style "a2ps configuration file" is written by "Akim Demaille <akim@freefriends.org>" version is 1.3 case sensitive requires a2ps 4.12a documentation is "Meant to print files such as samp(a2ps.cfg)samp, or samp(.a2ps/a2psrc)samp, etc." end documentation operators in Keyword_strong are /^(Append|Prepend|)LibraryPath:/, /^DefaultPrinter:/, /^Delegation:/, /^FileCommand:/, /^MacroMetaSequence:/, /^Medium:/, /^Options:/, /^PageLabelFormat:/, /^Printer:/, /^TemporaryDirectory:/, /^UnknownPrinter:/, /^UserOption:/ end operators sequences are /^#/ Comment end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/ada.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000006302�14445053504�012106� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for ada # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: ada.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:27 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille # Adapted sequences to the new handling in a2ps ## 1.2 Akim Demaille # Fixed handling of char litterals ## 1.3 Akim Demaille # Fixed appearance of return is function declarations ## TODO # Use more subtle regexps instead of brain dead sequences for # functions/procedures style Ada is written by "Akim Demaille <akim@freefriends.org>" version is 1.3 requires a2ps version 4.12a documentation is "This style sheets cover Ada 95. If you feel the need for Ada 83," "you'll have to design another style sheet." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_)" second alphabet is "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_\'" keywords in Keyword_strong are abort, abs, abstract, accept, access, "access function", "access procedure", aliased, all, and, array, at, begin, body, "case", constant, declare, delay, delta, digits, do, else, elsif, "end", entry, exception, exit, for, function, generic, goto, if, "in", "is", limited, loop, mod, new, not, null, of, or, others, out, package, pragma, private, procedure, protected, raise, range, record, rem, renames, requeue, return, reverse, select, separate, subtype, tagged, task, terminate, then, type, until, use, when, while, with, xor end keywords optional operators are != \neq, == \equiv, <= \leq, >= \geq, => \Rightarrow end operators operators are # Handling of Ada character literals (/'(.)'/ "'" Plain, \1 String, "'" Plain) end operators sequences are -- Comment, "\"" Plain String "\"" Plain exceptions are "\"\"" end exceptions, # Special highlighting of some declarations "package " Keyword_strong Label_strong closers are " is" Keyword_strong, " renames" Keyword_strong end closers, "package body " Keyword_strong Label_strong " is" Keyword_strong, "procedure " Keyword_strong Label closers are " renames" Keyword_strong, " is" Keyword_strong, " (" Plain, "(" Plain, /$/ Plain, ; Plain end closers, "function " Keyword_strong Label closers are " return" Keyword_strong, " renames" Keyword_strong, " is" Keyword_strong, " (" Plain, "(" Plain, /$/ Plain, ; Plain end closers end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/asn1.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000005055�14445053504�012227� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # Style sheet for ASN.1 (Abstract Syntax Notation One) # (Extended ASN.1) # Copyright (c) 1999 Philippe Coucaud # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # 1.0 Philippe Coucaud # Initial release # 1.1 Philippe Coucaud # Added "" as an exception for strings. style ASN.1 is written by "Philippe Coucaud <coucaud@loria.fr>" version is 1.1 requires a2ps version 4.10 # # TODO : - some keywords are allowed only inside macro definitions # documentation is "ASN.1 (Abstract Syntax Notation One) is used to define the protocol data" "units (PDUs) of all application layer protocols to date." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-" # ASN.1 is case sensitive case sensitive keywords in Keyword_strong are ANY, APPLICATION, ABSENT, BEGIN, BIT, BOOLEAN, BY, CHOICE, COMPONENTS, COMPONENT, DEFAULT, DEFINITIONS, DEFINED, END, EXTERNAL, ENUMERATED, EXPLICIT, EXPORTS, FALSE, FROM, IDENTIFIER, INTEGER, IMPLICIT, IMPORTS, INCLUDES, MIN, MINUS-INFINITY, MAX, MACRO NULL, NOTATION, OBJECT, OCTET, OF, OPTIONAL, PRIVATE, PRESENT, PLUS-INFINITY, REAL, SET, SEQUENCE, STRING, SIZE, TRUE, TAGS, TYPE, UNIVERSAL, VALUE, WITH end keywords keywords in Keyword are administration, ccitt, GraphicString, GeneralString, GeneralizedTime, ISO646String, IA5String, identified-organization, iso, joint-iso-ccitt, PrintableString, member-body, NumericString, network-operator, ObjectDescriptor, question, recommandation, registration-authority, standard, TeletexString, T61String, UTCTime, VideotexString, VisibleString end keywords sequences are -- Comment, "\"" Plain String "\"" Plain exceptions are "\"\"" end exceptions, [ Keyword_strong ] end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/autoconf.ssh���������������������������������������������������������������������0000644�0000000�0000000�00000002527�14445053504�013204� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Autoconf scripts # Copyright (c) 1999-2000 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Autoconf is written by "Akim Demaille <akim@freefriends.org>" version is 1.1 requires a2ps 4.12i documentation is "Suitable for both code(configure.ac)code and library code(m4)code files." end documentation ancestors are sh end ancestors sequences are "dnl" Keyword Comment end sequences keywords in Keyword_strong are /\\b_?A[CM]_[A-Za-z0-9_]*/ end keywords # It is fairly common in Autoconf to have strings like # Define if your system supports `foo' operators are /`[^"`']+'/ Plain end operators end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/awk.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000003370�14445053504�012145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# awk.ssh --- Sheet definitions for AWK ascripts # Copyright (c) 1999 Edward Arthur, Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. ## 1.0 Edward Arthur # Initial implementation. style AWK is written by "Edward Arthur <eda@ultranet.com>" version is 1.0 requires a2ps version 4.9.7 documentation is "This style is devoted to the AWK pattern scanning and processing language." "It is supposed to support classic awk, nawk and gawk." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0" case sensitive keywords in Keyword_strong are atan2, atof, break, close, continue, cos, delete, do, else, exit, exp, for, function, getline, gsub, if, "in", index, int, length, log, match, next, print, printf, rand, return, setlocale, sin, split, sprintf, sqrt, srand, sub, substr, system, tolower, toupper, while, ARGC, ARGV, BEGIN, CONVFMT, END, ENVIRON, FILENAME, FNR, FS, LENGTH, NF, NR, OFMT, OFS, ORS, RS, RSTART, SUBSEP end keywords sequences are "#" Comment, C-string end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/b.ssh����������������������������������������������������������������������������0000644�0000000�0000000�00000005436�14445053504�011611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # Style sheet for the B language # Copyright (c) 1999 Philippe Coucaud # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style B is written by "Philippe Coucaud <coucaud@loria.fr>" requires a2ps 4.12a version is 1.1 # 1.0 initial release # 1.1 new operators added (/=, : {, ||, &) documentation is "B is a formal specification method mostly used to describe critical" "systems. It is based on the mathematical sets theory." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_" # B is case sensitive case sensitive keywords in Keyword_strong are ANY, ASSERTIONS, BE, BEGIN, BOOL, CASE, CHOICE, CONSTANTS, CONSTRAINTS, DEFINITIONS, DO, EITHER, ELSE, ELSIF, END, EXTENDS, FALSE, FIN, FIN1, IF, IMPLEMENTATION, IMPORTS, IN, INCLUDES, INITIALISATION, INT, INTEGER, INTER, INVARIANT, LET, MACHINE, MAXINT, MININT, NAT, NAT1, NATURAL, NATURAL1, OF, OPERATIONS, OR, PI, POW, POW1, PRE, PROMOTES, PROPERTIES, REFINES, REFINEMENT, SEES, SELECT, SETS, SIGMA, STRING, THEN, TRUE, USES, UNION, VALUES, VAR, VARIABLES, VARIANT, WHEN, WHERE, WHILE end keywords keywords in Keyword_strong are bool, card, closure, closure1, conc, dom, "first", fnc, front, id, iseq, iseq1, iterate, inter, last, max, min, mod, not, or, perm, pred, prj1, prj2, ran, rel, rev, seq, seq1, size, skip, succ, tail, union end keywords operators are <-- \leftarrow, --> \rightarrow, := , :: , # try to use the mathematical notation for sets # (/:([ \t]*)(\{)/ \in , \1 Plain, \2 Plain ), # "/:" is not ambigous (no need to see if a set definition follows) "/:" \not\in, <=> \Leftrightarrow, => \Rightarrow, <= \leq, >= \geq, <, >, # don't know if B users would appreciate a mathematical \/ (using the # symbol font) for the || operator (a la C)? || \vee, # same question for the & operator ( /\ ??) & \wedge, "/=" \neq end operators sequences are "/*" Comment "*/" end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/bc.ssh���������������������������������������������������������������������������0000644�0000000�0000000�00000003202�14445053504�011741� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for BC # Copyright (c) 1999 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style BC is requires a2ps 4.12c written by "Akim Demaille <akim@freefriends.org>" version is 0.1 documentation is "bc is an arbitrary precision calculator language." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword_strong are break, quit, length, return, for, if, while, sqrt, scale, ibase, obase, auto, else, read, halt, last, history, warranty, continue, print, limits end keywords # Function declarations operators are (/(define)([[:space:]])([[:alnum:]]+)/ \1 Keyword_strong, \2 Plain, \3 Label_strong) end operators # Some operators optional operators are & \wedge, | \vee, <> \neq, <= \leq, >= \geq #FIXME: ! \not I'm not sure. end operators sequences are "/*" Comment "*/", C-string end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/c.ssh����������������������������������������������������������������������������0000644�0000000�0000000�00000004446�14445053504�011612� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for C # Copyright (c) 1995-2000 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style C is requires a2ps 4.12c written by "Akim Demaille <akim@freefriends.org>" version is 1.6 documentation is "This style does not highlight the function definitions." "Another style which highlights them, GNUish C, is provided (gnuc.ssh)." "It works only if you respect some syntactic conventions." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" case sensitive ancestors are cpp end ancestors keywords in Keyword are double, enum, void, int, long, FILE, struct, char, signed, float, short, unsigned end keywords keywords in Keyword_strong are auto, "case", const, continue, do, inline, extern, for, register, return, switch, union, goto, typedef, sizeof, typeof, volatile, static, NULL, default, break, if, while, else end keywords optional operators are (/(case)([ ]+)(.+)([ ]*:)/ \1 Keyword_strong, \2 Plain, \3 Label, \4 Plain) end operators optional operators are -> \rightarrow, && \wedge, || \vee, != \neq, == \equiv, # We need to protect these, so that <= is not replaced in <<= <<=, >>=, <= \leq, >= \geq, ! \not end operators sequences are "/*" Comment "*/", "//" Comment, C-string, # We do not want C-string in ASM to be declared as string, # since it pollutes the layout. (/(asm)([[:blank:]]*\\([[:blank:]]*")/ \1 Keyword_strong, \2 Plain) Plain "\"" Plain exceptions are (/(\\\\.)/ \1) end exceptions, C-char end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/caml.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000001731�14445053504�012276� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for caml # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style CAML is version is 1.0 documentation is "This style is obsolete: use OCaml instead." end documentation ancestors are "ocaml" end ancestors end style ���������������������������������������a2ps-4.15.5/sheets/card.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000004556�14445053504�012303� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for producing reference card out `--help' outputs # # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: card.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:28 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Reference Card" is written by "Akim Demaille <akim@freefriends.org>" version is 1.1 requires a2ps version 4.12a documentation is "This style sheet is meant to process help messages generated by" "Unix applications. It highlights the options (-short or --long)," "and their arguments." "Normal use of this style sheet is through the shell script card" "(part of the a2ps package), but a typical hand-driven use is:" "@example" "program --help | a2ps -Ecard" "@end example" end documentation alphabets are "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\\_-/" case sensitive # Exceptions keywords in Plain are "GNU", "GDB" end keywords operators in Keyword_strong are # Sections are lines (i) ended by `:', (ii) with no punctation # And (iii) not starting with a blank # Add a line so that it gets easier to read (/^([^[:blank:]:][^:,.]*):[[:blank:]]*$/ "\n", \1 Label), # Highlight the options # Short that may remain /-[[:graph:]]/, # Long options /--?[^\t =,<([]+/, # Words (at least 2 chars) in upper case are supposed to be arguments /[[:upper:]]{2,}\\b/ Keyword, # Idem with <words> /<[^>]+>/ Keyword end operators sequences are "card_label(" Invisible Label_strong ")" Invisible, "card_title(" Invisible (Invisible + Tag1) ")" Invisible, "card_footer(" Invisible (Invisible + Tag2) ")" Invisible end sequences end style # Card ��������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/chlog.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003403�14445053504�012454� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for ChangeLog # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: chlog.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:28 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # This is a tutorial on a2ps' style sheets style ChangeLog is written by "Akim Demaille <akim@freefriends.org>" version is 1.2 requires a2ps 4.12a documentation is "This style covers the usual ChangeLog files." end documentation sequences are "(" Plain Label ")" Plain exceptions are ", " Plain, "," Plain end exceptions, "* " Plain Label_strong ":" Plain exceptions are ", " Plain, "," Plain end exceptions, "* " Plain Label_strong " " Plain end sequences keywords in Keyword_strong are add, added, remove, removed end keywords # We want to highlight the date and the maintainer name optional operators are (/^([^\t ].*[0-9])/ /([ \t]+)/ /([[:alpha:]]+([ \t]+[[:alpha:]]+)*)/ /(.+)/ /(<[^>]+>)/ \1 Keyword, \2 Plain, \3 Keyword_strong, \5 Plain, \6 Keyword) end operators end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/cidl.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000007105�14445053504�012276� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for CORBA IDL # Copyright (c) 1999 Bob Phillips, Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## IDL 0.1 Bob Phillips # Derived an OMG CORBA IDL style sheet from Akim Demaille's C style sheet # Disclaimer: I don't know what I'm doing -- I seem to be passably faking # it for my own IDL code and for OMG standards 98-03-01.idl (CORBA base IDL) # and 98-10-01.idl (COSS). I'm reasonably happy with most things, but I'm # open to suggestions. I definitely want to hear about things that # don't work, since my IDL usage is sporadic (intense for brief periods, # then almost non-existent). Thanks for your help, bobp@fpk.hp.com . style "CORBA IDL" is requires a2ps 4.12e written by "Bob Phillips <bobp@fpk.hp.com>" version is 0.1 documentation is "A first attempt at a style sheet for OMG CORBA IDL." "I believe I captured all the keywords for CORBA 2.2 IDL." "I also stole code from gnuc.ssh to print the method names" "in bold face. I'm not sure I quite like my own choices" "for Keyword_strong and Keyword, so I'm looking for feedback." "Note that, as with gnuc.ssh, for a method name to be noted as such," "the left parenthesis associated with the argument list for the method" "must appear on the same line as the method name. " end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" case sensitive # the IDL I've seen is a bit loose about starting the line off with a hash # character. So... I've tweaked the regex slightly. The benefit/drawback # is that it will make the matched expressions Keyword_strong in comments, # or any other statements in which they occur. I think it is less annoying # than missing the expressions because the hash character doesn't start the # line. keywords in Keyword_strong are defined, /#[ ]*(define|e(l(if|se)|ndif|rror|x)|i(f(|def|ndef)|mport|nclude)|line|pragma|undef)/ end keywords keywords in Keyword are short, long, long, unsigned, float, double, char, wchar, string, void, wstring, boolean, octet, any, enum, Object, struct, sequence, union, switch, context end keywords keywords in Keyword_strong are module, interface, readonly, attribute, exception, oneway, "in", out, inout, const, typedef, TRUE, FALSE, raises, native, pseudo end keywords operators in Plain are # Original from gnuc.ssh # (/^([a-zA-Z_][a-zA-Z_0-9]*)([ \t]*)(/ # \1 Label_strong, \2 Plain, "(" Plain) # Early trial -- didn't like Label_strong #(/([a-zA-Z_0-9]*)([ \t]*)\\(/\1 Label_strong, \2 Plain, "(" Plain) # Handles the discriminated union properly (/(switch)([ \t]*)\\(/\1 Keyword , \2 Plain, "(" Plain) , # Function declaration # This uses GNU C convention of TYPE\nFnName(args) (/([a-zA-Z_0-9]*)([ \t]*)\\(/\1 Label , \2 Plain, "(" Plain) end operators sequences are "/*" Comment "*/", "//" Comment, C-char end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/claire.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000006420�14445053504�012621� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for claire # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: claire.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:28 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille # Fixed strong comments ## 1.2 Akim Demaille # Fixed the order for the comments style Claire is written by "Akim Demaille <akim@freefriends.org>" version is 1.2 requires a2ps version 4.9.10 documentation is "Claire is a high-level functional and object-oriented language with " "advanced rule processing capabilities. It is intended to allow the " "programmer to express complex algorithms with fewer lines and in an " "elegant and readable manner. " "" "To provide a high degree of expressivity, Claire uses: " "@itemize" "@item" " A very rich type system including type intervals and second-order " " types (with dual static/dynamic typing)," "@item" " Parametric classes and methods, " "@item" " An object-oriented logic with set extensions, " "@item" " Dynamic versioning that supports easy exploration of search spaces. " "@end itemize" "To achieve its goal of readability, Claire uses " "@itemize" "@item" " set-based programming with an intuitive syntax, " "@item" " simple-minded object-oriented programming, " "@item" " truly polymorphic and parametric functional programming, " "@item" " a powerful-yet-readable extension of DATALOG to express logical conditions," "@item" " an entity-relation approach with explicit relations, inverses, " " unknown values and relational" "@item" " operations. " "@end itemize" "More information on claire can be found on " "url(https://en.wikipedia.org/wiki/Claire_(programming_language))url(Wikipedia)url." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!%&*+-/:^_<=>|" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!%&\'*+-/:^_<=>|" case sensitive keywords in Keyword_strong are forall, none, catch, "in", as, printf, assert, return, break, trace, else, for, "case", while, until, let, when, try, if, Zif, exists, <:, =>, ->, :: end keywords optional keywords are forall \forall, exists \exists, % \in, :=, = \equiv, != \neq, <= \leq, >= \geq, -> \rightarrow, => \Rightarrow, U \cup, not \not end keywords optional operators are {} \emptyset end operators sequences are ;; Comment, "//" Comment, "//*" Comment_strong, C-string, C-char, # Some declarations ^[ Plain Label_strong closers are <: Plain, [ Plain, "(" Plain end closers end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/clisp.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000005230�14445053504�012472� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for common-lisp # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.2 Akim Demaille # Beware of \", highlight defvar. style "Common Lisp" is written by "Juliusz Chroboczek <jec@dcs.ed.ac.uk>" version 1.3 requires a2ps 4.12a documentation is "It is not very clear what should be considered as a `keyword' in" "Common Lisp. I like binders, control structures and declarations to" "be highlighted, but not assignments." "" "Names of defstructs are not highlighted because this would not work" "with defstruct options." end documentation # what's a sensible way of handling `:', `\' and `|' ? first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-%$+*&-/<=>@_!?.[]^{}~" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789-%$+*&-/<=>@_!?#.[]^{}~" keywords in Keyword_strong are block, catch, "case", ccase, ecase, typecase, etypecase, ctypecase, cond, define-modify-macro, define-setf-method, defstruct, destructuring-bind, do, do*, dolist, dotimes, eval-when, flet, labels, macrolet, if, lambda, let, let*, compiler-let, locally, multiple-value-bind, prog, prog*, prog1, prog2, progn, progv, return, return-from, tagbody, throw, unless, unwind-protect, when, loop, in-package, defpackage, declare, declaim, proclaim, multiple-value-prog1 end keywords optional keywords are lambda \lambda, "/=" \neq, "<=" \leq, ">=" \geq end keywords operators are # Protect `"' behind `\' (/\\\\(.)/ "\\" Plain, \1 Plain) end operators sequences are ";;;" Comment_strong, ";" Comment, "#|" Comment Comment "|#" Comment, (/\\(/ /(def(/ /constant|parameter|un|var|macro|generic|method|/ /type|class|setf/ /))/ /([ \t]+)/ "(" Plain, \1 Keyword_strong, \3 Plain) Label_strong /[)[:space:]]/ Plain, C-string end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/coqv.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000004130�14445053504�012326� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for coq-vernacular # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: coqv.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:28 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Coq Vernacular" is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 documentation is "This style is devoted to the Coq v 5.10 vernacular language." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_!" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_!" case sensitive keywords in Keyword_strong are Require, Declare end keywords keywords in Keyword are with end keywords keywords in Keyword_strong are Variable, Inductive, CoInductive, Fixpoint, CoFixpoint, Definition, Lemma, Theorem, Axiom, Local, Save, Grammar, Syntax, Intro, Trivial, Qed, Intros, Symmetry, Simpl, Rewrite, Apply, Elim, Assumption, Left, Cut, Case, Auto, Unfold, Exact, Right end keywords keywords in Keyword are Set end keywords optional keywords are not \not, and \wedge, or \vee end keywords optional operators are <> \neq, -> \rightarrow, <= \leq, >= \geq end operators sequences are "(*" Plain Comment "*)" Plain, C-string, "Section " Keyword_strong Label_strong . Plain, "End " Keyword_strong Label_strong . Plain end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/cpp.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000002465�14445053504�012151� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for CPP # Copyright (c) 1999 Akim Demaille, Miguel Santana # $Id: cpp.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:28 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "CPP" is written by "Akim Demaille <akim@gnu.org>" version is 1.0 documentation is "C traditional preprocessor handling, mostly meant to be inherited." end documentation requires a2ps 4.12a alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" case sensitive keywords in Keyword_strong are defined, /^#[ ]*(define|e(l(if|se)|ndif|rror|x)|i(f(|def|ndef)|mport|nclude)|line|pragma|undef)/ end keywords end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/csh.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000003275�14445053504�012144� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for csh # Copyright (c) 1997 Jim Diamond, Akim Demaille, Miguel Santana # $Id: csh.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:28 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille # Inherit shell.ssh style "C Shell" is written by "Jim Diamond <jdiamond@fox.nstn.ca>" version is 1.1 ancestors are shell end ancestors documentation is "Some classical program names, and/or builtins, are highlighted in" "the second level of pretty-printing." end documentation keywords in Keyword_strong are break, breaksw, "case", continue, default, else, "end", endif, endsw, eval, exec, exit, foreach, glob, goto, if, onintr, repeat, set, setenv, shift, source, switch, then, umask, unset, unsetenv, wait, while end keywords optional keywords in Keyword_strong are alias, alloc, bg, cd, chdir, dirs, echo, fg, hashstat, history, jobs, kill, limit, login, logout, nice, nohup, notify, popd, pushd, rehash, stop, suspend, time, unalias, unhash, unlimit end keywords end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/csharp.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000007103�14445053504�012641� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for C# # Copyright (c) 2002-2006 Karen Christenson # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # 1.0 Karen Christenson # Implemented Class/Interface/Struct decl as operator style "C#" is version is 1.0 requires a2ps version 4.13 written by "Karen Christenson <kchristenson@mac.com>" documentation is "This style is for the .NET object-oriented language C#, and is based" "on the C# Language Specification published in 2002 by Microsoft in" "the MSDN library." "XML comments are mapped to strong comments, and any other comment is a plain" "comment." "The C style-sheet was not selected as an ancestor in order to treat" "a struct the same as a class or an interface. The CPP style-sheet was not" "selected as an ancestor because C# set of preprocessor directives is much" "smaller." "Keywords, XML comments, preprocessor directives, label statements, and" "[] style attributes are high-lighted." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_@" second alphabet is "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._" case sensitive # Specifies primitive types, literals, and special variables. keywords in Keyword are "base", "bool", "byte", "char", "decimal", "double", "enum", "false", "float", "int", "long", "null", "object", "sbyte", "short", "string", "this", "true", "uint", "ulong", "ushort", "value", "void" end keywords # The remaining keywords (except for class, interface, and struct). keywords in Keyword_strong are "abstract", "as", "break", "case", "catch", "checked", "const", "continue", "default", "delegate", "do", "else", "event", "explicit", "extern", "finally", "fixed", "for", "foreach", "get", "goto", "if", "implicit", "in", "internal", "is", "lock", "namespace", "new", "operator", "out", "override", "params", "private", "protected", "public", "readonly", "ref", "return", "sealed", "set", "sizeof", "stackalloc", "static", "switch", "throw", "try", "typeof", "unchecked", "unsafe", "using", "virtual", "volatile", "while" end keywords optional operators are -> \rightarrow, <<=, >>=, <= \leq, >= \geq end operators operators are # class/interface/struct declarations. (/(class|interface|struct)/ # keyword /([[:space:]]+)/ # whitespace /([^[:space:]]+)/ # class/interface/struct name \1 Keyword_strong, \2 Plain, \3 Label_strong), # [] attribute-section /^[[:space:]]*\\[[[:alpha:]_][^\]]*\\][[:space:]]*/ Label_strong, # this-access or base-access /(this|base)\./ Keyword, # preprocessor directives /^[[:space:]]*#[[:space:]]*(define|e(l(if|se)|nd(|region|if)|rror)|if|line|warning|region|undef|warning)/ Keyword end operators sequences are "/*" Comment Comment "*/" Comment, "//" Comment, "///" Comment, C-string, C-char end sequences end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/cxx.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000003633�14445053504�012167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for C++ # Copyright (c) 1995-2000 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # Thanks to Edouard Jactat and Falk Hueffner for their comments. style "C++" is written by "Akim Demaille <akim@freefriends.org>" version is 1.6 requires a2ps version 4.12l documentation is "Should handle all known variations of C++. Most declarations (classes" "etc.) are not highlighted as they should be. Please, step forward!" end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" case sensitive ancestors are c end ancestors # Some types that are not part of C keywords in Keyword are bool, const_cast, dynamic_cast, explicit, false, mutable, reinterpret_cast, static_cast, true, typeid, typename, wchar_t end keywords # Some keywords not in C keywords in Keyword_strong are catch, class, delete, export, friend, namespace, new, operator, private, protected, public, template, this, throw, try, using, virtual end keywords # English operators keywords in Keyword_strong are and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq end keywords # C style yet defines `//' because it is common today in plain C end style �����������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/dc_shell.ssh���������������������������������������������������������������������0000644�0000000�0000000�00000005025�14445053504�013137� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for scripts_files of synopsys # Copyright (c) 1999 Akim Demaille, Miguel Santana, Philippe Le Van # $Id: dc_shell.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:29 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "dc_shell" is written by "Philippe Le Van <levan@francemel.com>" version is 0.2 case sensitive first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_/0123456789" documentation is "Synopsys Design Compiler is a synthesis tool used by " "electronic companies for the design of their chips." "This sheet is very incomplete, we have a lot of keywords to" "add, eventually options to highlight..." "The Label_strong style is used for commands which change the design." end documentation keywords in Keyword_strong are current_design, characterize, set_dont_touch, link, set_fix_hold, reset_design, ungroup, set_dont_touch_network, group, set_dont_use, remove_constraint, set_structure, set_flatten, remove_attribute, set_unconnected, create_clock, set_clock_skew, set_input_delay, set_output_delay, set_false_path, set_drive, set_max_delay, set_min_delay, balance_buffer, set_disable_timing, set_driving_cell, set_load, set_fanout_load, define_name_rules, change_names, define_design_lib, set_layer, report_constraint, report_area, report_timing, report_clock, report_cell, report_port, write_script, write, write_timing, alias, find, echo, all_registers, all_fanout, all_clocks, all_inputs, all_outputs, all_fanin, all_critical_pins, all_critical_cells end keywords keywords in Label_strong are compile, uniquify, remove_design, free, read, quit, include, analyze, elaborate end keywords sequences are "/*" Comment "*/", "/**" Comment_strong "*/", C-string end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/eiffel.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000005255�14445053504�012621� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for eiffel # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # $Id: eiffel.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:29 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille # Added doc. style Eiffel is written by "Akim Demaille <akim@freefriends.org>" version is 1.1 requires a2ps version 4.9.5 documentation is "Eiffel is an object oriented language that also includes a" "comprehensive approach to software construction: a method." "" "The language itself is not just a programming language but also covers" "analysis, design and implementation." "" "Heavy highlight uses symbols to represent common math operators." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" keywords in Keyword_strong are all, alias, as, and, check, class, current, debug, deferred, do, else, elseif, "end", ensure, expanded, export, external, false, feature, from, if, implies, indexing, infix, inherit, inspect, invariant, "is", language, like, local, loop, none, not, creation, obsolete, old, once, or, prefix, redefine, require, rename, rescue, result, retry, select, separate, strip, then, true, undefine, unique, until, variant, void, when, xor end keywords keywords in Keyword are bit, boolean, character, double, integer, pointer, real, string end keywords optional keywords are "or else" "or else" Keyword_strong, "and then" "and then" Keyword_strong, not \not, or \vee, and \wedge, implies \Rightarrow end keywords optional operators are :=, = \equiv, "/=" \neq, <= \leq, >= \geq end operators sequences are -- Comment, "\"" Plain String "\"" Plain exceptions are %%, "%\"", "%\'" end exceptions, "\'" Plain String "\'" Plain exceptions are %%, "%\"", "%\'" end exceptions end sequences end style ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/elisp.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000005744�14445053504�012506� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Emacs Lisp # Copyright (c) 1998-99 Akim Demaille, Miguel Santana # $Id: elisp.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:29 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Emacs Lisp" is version is 2.1 written by "Didier Verna <verna@infres.enst.fr>" requires a2ps version 4.12a documentation is "This style sheet includes support for some extensions dumped with XEmacs." end documentation alphabets are # Problem: the other characters, I mean ALL of them are allowed in symbol # names, but should appear quoted. For instance, it's theoretically # possible to have a symbol `f o o'. Only it's written `f\ o\ o' # It seems that the current `alphabet' logic is not powerfull enough to # describe this. "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-+=*/_~!@$%^&:<>{}" # This should really be the default case sensitive keywords in Keyword are # Special values t, nil, # Special argument markers &optional, &rest, # Scheme-like keywords, ie beginning with `:'. # We often find this in custom code. /:[^ \t\n]+/, # Characters /\\?[^ \t\n]+/ end keywords keywords in Keyword_strong are # Logical connectors if, when, unless, while, cond, and, or, not, do, dolist, loop, # Blocks let, let*, letf, letf*, prog1, prog2, progn, progv, lambda end keywords optional keywords in Keyword_strong are # Assignement set, setq, setq-default, setf, setcar, setcdr, # Constructors list, list*, cons, append, conc, nconc, push, pop, # Predicate tests eq, eql, equal, equalp, listp, consp, null end keywords sequences are # Comments ";" Comment, ";;" Comment_strong, # Strings C-string, # Declarations (/\\(/ /(def(/ /setf|subst|subst\\*|math|type|/ /un|un\\*|foo|/ /const|var|varalias|voo|/ /advice|alias|/ /macro|macro\\*|/ /subst|subst\\*|/ /|custom|face|group)/ /)/ /([ \t]+)/ "(" Plain, \1 Keyword_strong, \3 Plain) Label_strong /[ \t\n]/ Plain, # Special sequences # CAVEAT: this regexp is actually wrong because in theory, I could have a # `)' in the feature name, provided that it be quoted properly. (/\\((require|provide|featurep)([ \t]+)([^)]*)\\)/ "(" Plain, \1 Keyword_strong, \2 Plain, \3 Label, ")" Plain) Label /[ \t\n]/ Plain end sequences end style ����������������������������a2ps-4.15.5/sheets/eps.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000002600�14445053504�012145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Encapsulated PostScript files # Copyright (c) 1997-99 Akim Demaille, Miguel Santana # $Id: eps.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:29 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Encapsulated PostScript" is requires a2ps 4.12a written by "Akim Demaille <akim@freefriends.org>" version is 1.1 documentation is "Illegal PostScript operators are highlighted as Errors." end documentation ancestors are ps end ancestors keywords in Error are banddevice, clear, cleardiststack, copypage, erasepage, exitserver, framedevice, grestoreall, initclip, initgraphics, initmatrix, quit, renderbands, setglobal, setpagedevice, setshared, startjob end keywords end style ��������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/for-fixed.ssh��������������������������������������������������������������������0000644�0000000�0000000�00000002554�14445053504�013251� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Fortran fixed source form # date 199901?? # last modified 19990122 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Fortran Fixed" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.21 requires a2ps version 4.10.4 documentation is "Implements comments of Fortran in fixed form, i.e., comments are" "lines starting with c, C, or *, and only those lines are comments." "No other highlighting is done. " "" "See the documentation of the style sheet code(fortran)code for more details." end documentation # Comments sequences are /^[c*]/ Comment, /^ {72,}/ Comment end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/for-free.ssh���������������������������������������������������������������������0000644�0000000�0000000�00000002312�14445053504�013063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Fortran free source form # date 199901?? # last modified 19990122 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Fortran Free" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.2 requires a2ps version 4.10.4 documentation is "Dedicated to Fortran in free form, i.e., comments are introduced by !" "anywhere on the line, and nothing else is a comment." end documentation # Comments sequences are "!" Comment end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/for77-fixed.ssh������������������������������������������������������������������0000644�0000000�0000000�00000002336�14445053504�013425� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Fortran 77 keywords and fixed source form # date 199901?? # last modified 19990122 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Fortran 77 Fixed" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.1 requires a2ps version 4.10.4 documentation is "Dedicated to Fortran 77 in fixed form, i.e., comments are" "lines starting with c, C, or *, and only those lines are comments." end documentation ancestors are for77kwds, for-fixed end ancestors end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/for77-free.ssh�������������������������������������������������������������������0000644�0000000�0000000�00000002334�14445053504�013245� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Fortran 77 keywords and free source form # date 199901?? # last modified 19990122 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Fortran 77 Free" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.1 requires a2ps version 4.10.4 documentation is "Dedicated to Fortran 77 in free form, i.e., comments are introduced by !" "anywhere on the line, and nothing else is a comment." end documentation ancestors are for77kwds, for-free end ancestors end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/for77kwds.ssh��������������������������������������������������������������������0000644�0000000�0000000�00000007436�14445053504�013227� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Fortran 77 keywords # last modified 19990520 # While it is advised to print "using" the larger set of Fortran # 90/95 keywords, the handling of legacy code is done better # with this almost pure Fortran 77 set. # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Fortran 77 Keywords" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.60 requires a2ps version 4.12a documentation is "This sheet implements only Fortran 77 keywords, and avoids implementing" "comments support. This is to allow for implementation of either fixed" "or free source form." "" "See the documentation of the style sheet code(fortran)code for more details." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_" # 'case insensitive' is default but set here explicitly case insensitive # "call" is missing by intention here; see below keywords in Keyword_strong are assign, backspace, block, character, close, continue, common, complex, data, dimension, /double *precision/, do, entry, equivalence, external, else, /else *if/, "end", endfile, /end *if/, format, /go *to/, if, implicit, inquire, integer, intrinsic, logical, none, open, parameter, pause, print, read, real, return, rewind, save, sequence, stop, then, write end keywords # intrinsics and others # I'd like to switch to 'Keyword' instead of 'Keyword_strong' here ?! keywords in Keyword_strong are abs, acos, aimag, alog10, amax0, amax1, amin0, amin1, amod, anint, asin, atan, atan2, cabs, ccos, cexp, clog, cmplx, conjg, cos, cosh, csin, csqrt, dabs, dacos, dasin, datan, datan2, dble, dcos, dcosh, ddim, dexp, dim, dint, dlog, dlog10, dmax0, dmax1, dmin0, dmin1, dmod, dprod, dsign, dsin, dsqrt, dtan, dtanh, exp, float, fmt, ichar, idim, idint, ifix, index, int, isign, len, lge, lgt, lle, llt, log, log10, max, max0, max1, min, min0, min1, mod, real, sign, sin, sngl, sqrt, tan, tanh end keywords # Named parameters for built-in commands keywords in Keyword are formatted, unformatted, unit end keywords # Fortran operators operators in Keyword_strong are .not., .or., .and., .ge., .gt., .lt., .le., .eq., .ne., .eqv., .neqv. end operators optional operators are .not. \not, .or. \vee, .and. \wedge, .ge. \geq, .gt. >, .lt. <, .le. \leq, .eq. \equiv, .ne. \neq, .eqv. \equiv, .neqv. \neq end operators # Implementation of highlighting of procedures etc. operators in Plain are # labelled entities: program, subroutine and function (# 1. The keyword /(program|subroutine|function)/ # 2. Spaces /([[:space:]]+)/ # 3. The label /([^[:space:](]+)/ \1 Keyword_strong, \2, \3 Label_strong), # Subroutine calls ( # 1. The keyword /(call)/ # 2. Spaces /([[:space:]]+)/ # 3. The label /([^[:space:](]+)/ \1 Keyword_strong, \2, \3 Label) end operators # Strings sequences are C-char, C-string end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/for90-fixed.ssh������������������������������������������������������������������0000644�0000000�0000000�00000002337�14445053504�013421� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Fortran 90 keywords and fixed source form # date 199901?? # last modified 19990122 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Fortran 90 Fixed" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.1 requires a2ps version 4.10 documentation is "Dedicated to Fortran 90/95 in fixed form, i.e., comments are" "lines starting with c, C, or *, and only those lines are comments." end documentation ancestors are for90kwds, for-fixed end ancestors end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/for90-free.ssh�������������������������������������������������������������������0000644�0000000�0000000�00000002335�14445053504�013241� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Fortran 90 keywords and free source form # date 199901?? # last modified 19990122 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Fortran 90 Free" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.1 requires a2ps version 4.10 documentation is "Dedicated to Fortran 90/95 in free form, i.e., comments are introduced by !" "anywhere on the line, and nothing else is a comment." end documentation ancestors are for90kwds, for-free end ancestors end style ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/for90kwds.ssh��������������������������������������������������������������������0000644�0000000�0000000�00000011763�14445053504�013220� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Fortran 90 keywords # last modified 1999 08 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Fortran 90 Keywords" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.52 requires a2ps version 4.12a documentation is "This sheet implements the superset which Fortran 90 and Fortran 95 provide" "over Fortran 77." "" "See the documentation of the style sheet code(fortran)code for more details." end documentation # get the Fortran 77 stuff ancestors are for77kwds end ancestors keywords in Keyword_strong are allocatable, allocate, "case", contains, continue, cycle, deallocate, elemental, /end *block *data/, /end *do/, /end *file/, /end *if/, /end *select/, /end *type/, /end *where/, exit, forall, include, intent, kind, namelist, nullify, only, "optional", pointer, pure, recursive, result, /select *case/, target, type, where, while end keywords # Intrinsics and others keywords in Keyword_strong are # Shall we use 'Keyword' instead !? adjustl, adjustr, advance, all, allocated, any, associated, bit_size, blank, btest, ceiling, char, cshift, date_and_time, dot_product, dprod, eoshift, epsilon, exponent, floor, fraction, huge, iachar, iand, ichar, ieor, ifix, index, ior, ishft, ishftc, lbound, len_trim, matmul, maxexponent, maxloc, maxval, merge, minexponent, minloc, minval, modulo, mvbits, nearest, nint, not, pack, precision, present, product, random_number, random_seed, range, repeat, reshape, rrspacing, scale, scan, selected_int_kind, selected_real_kind, set_exponent, shape, size, spacing, spread, sum, system_clock, tiny, transfer, transpose, trim, ubound, unpack, verify end keywords # Other keywords which are not so important keywords in Keyword are private, public end keywords operators are # Intent Attributes ( # 1. opening bracket /(\\( *)/ # 2. keyword /(in|inout|out)/ # 3. closing bracket /( *\\))/ \1 Plain , \2 Keyword, \3 Plain), # Named parameters for built-in commands ( #1. keyword /(access|action|blank|delim|err|file|form|iostat|name|named|nextrec/ /|pad|position|recl|sequential|size|status)/ # 2. space and '=' /([[:space:]]+=)/ \1 Keyword, \2) end operators # Nice additions to F77 optional operators are ">=" \geq, "<=" \leq, "/=" \neq, "=>" \Rightarrow end operators operators are # end of named entities (including keyword) (# 1. keyword /(end)/ # 2. Spaces /([[:space:]]+)/ # 3. keyword /(program|subroutine|function|module|interface)/ \1 Keyword_strong, \2, \3 Keyword_strong), # end of named entities (including keyword & name) (# 1. keyword /(end)/ # 2. Spaces /([[:space:]]+)/ # 3. keyword /(program|subroutine|function|module|interface)/ # 4. Spaces /([[:space:]]+)/ # 5. The label /([^[:space:];!]+)/ \1 Keyword_strong, \2, \3 Keyword_strong, \4, \5 Label_strong), # Module (# 1. The keyword /(module)/ # 2. Spaces /([[:space:]]+)/ # 3. The label /([^[:space:]]+)/ # 4. empty rest of line /([[:space:]]+$)/ \1 Keyword_strong, \2, \3 Label_strong, \4), # Module procedure (# 1, 2, 3. The keywords /(module)([[:space:]]+)(procedure)/ # 4. Spaces /([[:space:]]+)/ # 5. The label /([^[:space:]]+)/ \1 Keyword_strong, \2, \3 Keyword_strong, \4, \5 Label_strong), # Interface block without name (# 1, The keyword /(interface)/ # 2 spaces /([[:space:]]*)/ \1 Keyword_strong, \2), # Interfaces with generic name (# 1. The keyword /(interface)/ # 2. Spaces /([[:space:]]+)/ # 3. The label /([^[:space:](]+)/ \1 Keyword_strong, \2, \3 Label_strong), # Assignment/Operator Interfaces (# 1, 2, 3. The keywords /(interface)([[:space:]]+)(assignment|operator)/ # 4. Spaces and opening `(' /([[:space:]]*\\()/ # 5. The operator /([^[:space:])]+)/ # 6. The closing ')' /(\\)[[:space:]]*)/ \1 Keyword_strong, \2, \3 Keyword_strong, \4, \5 Label, \6), # Use; here is room for improvements since it # may take more arguments than only a single label ... (# 1. The keyword /(use)/ # 2. Spaces /([[:space:]]+)/ # 3. The label /([^[:space:](]+)/ \1 Keyword_strong, \2, \3 Label) end operators end style �������������a2ps-4.15.5/sheets/fortran.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000003347�14445053504�013042� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������############################## -*- Mode: a2ps -*- ############################# ## Fortran.ssh --- Sheet definitions for Fortran files ## ## Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> ## Created the : Thu Oct 10 18:35:36 1996 ## Last mod. by : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> ## Last mod. the : Fri Apr 10 11:38:35 1998 ############################################################################### style "Fortran" is written by "Denis Girou <Denis.Girou@idris.fr>, Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 2.0 requires a2ps version 4.10.4 documentation is "There are several Fortran dialects, depending whether, on the one" "hand, you use Fortran 77 or Fortran 90/95, and, on the other hand," "Fixed form comments, or Free form comments." "" "The style sheets code(for77kwds)code and code(for90kwds)code implements keywords only," "while the style sheets code(for-fixed)code and code(for-free)code implements comments" "only." "" "This style sheet tries to support any of the various flavors" "(Fortran 77/90/95, fixed or free form). For more specific uses, you" "should use either:" "@itemize" "@item" "for77-fixed, for Fortran 77 fixed form," "@item" "for77-free, for Fortran 77 free form," "@item" "for90-fixed, for Fortran 90/95 fixed form," "@item" "for90-free, for Fortran 90/95 free form." "@end itemize" end documentation ancestors are for90kwds end ancestors # nice mixture of free and fixed source style comments ... sequences are ! Comment, # ! anywhere /^[c*]+$/ Comment, /^[c*]+[ \t]/ Comment, /^[c*].*==/ Comment end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/gmake.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003267�14445053504�012454� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for GNUmakefiles # # Copyright (c) 1999 Alexander Mai # $Id: gmake.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:29 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # 0.3 am # += fixed, %.:%. added style GNUMakefile is requires a2ps 4.12a written by "Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.4 documentation is "Special tokens of GNUmakefiles and non terminal declarations are highlighted." end documentation # First get the common stuff from make ancestors are make end ancestors # extensions unique to GNU make operators are # += assignment to variables (/^( *)/ # \1. Leadings spaces /([a-zA-Z0-9_-]+)/ # \2. variable name /( *\\+=)/ # \3. spaces and += \1 Plain, \2 Label, \3 Plain), # Pattern rules (e.g., `%.o : %.c') (/^(%[.][a-zA-Z0-9_-]+)/ # \1. to-pattern /( *: *)/ # \2. colon and spaces /(%\\.[a-zA-Z0-9_-]+)/ # \3. from-pattern \1 Label_strong, \2 Plain, \3 Label_strong) end operators end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/gnuc.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000003330�14445053504�012313� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for C enhanced # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: gnuc.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:30 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # 1.1 Akim Demaille # Added \' and \" as operators, so that it does not # break lex files with rules including them as regexp. style "GNUish C" is requires a2ps 4.12a written by "Akim Demaille <akim@freefriends.org>" version is 1.3 documentation is "Declaration of functions are highlighted emph(only)emph if you start" "the function name in the first column, and it is followed by an" "opening parenthesis. In other words, if you write" "@example" "int main (void)" "@end example" "it won't work. Write:" "@example" "int" "main (void)" "@end example" end documentation ancestors are c end ancestors # Function declaration operators in Plain are (/^([a-zA-Z_][a-zA-Z_0-9]*)([ \t]*)\\(/ \1 Label_strong, \2 Plain, "(" Plain) end operators end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/haskell.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000005544�14445053504�013013� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# a2ps style sheet for Haskell # Copyright (c) 1999-2000 Ilya Beylin, Akim Demaille, Miguel Santana # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # this file: ftp://ftp.cs.chalmers.se/pub/users/ilya/a2ps/haskell.ssh style Haskell is written by "Ilya Beylin <ilya@cs.chalmers.se>" version is 1.3 requires a2ps 4.12k documentation is "Haskell: non-strict functional programming language" " https://www.haskell.org/" #Notes: #- Haskell strings are not parsed properly. C-strings are used instead #- maximal-munch rule is not followed in examples like ::: or --- #- Only 7bit characters are recognised in places like operator names #- literal Haskell (inverted commentary) is not at all supported # Perhaps one should instead write a proper Haskell parser which would # produce PreTeX # A typical "sheets.map" entry: # # Haskell programs # *.hs haskell end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_\'0123456789" case sensitive keywords in Keyword_strong are # the keywords of Haskell 98 "case", "class", "data", "default", "deriving", "do", "else", "if", "import", "in", "infix", "infixl", "infixr", "instance", "let", "module", "newtype", "of", "then", "type", "where", # "_", "as", # these should not be highlighted "qualified", "hiding" # special words (not reserved) end keywords keywords in Keyword are # Constructors /A-Z[a-zA-z0-9\'_]*/ end keywords operators in Keyword_strong are /->/, "[", "]",/`[a-zA-z0-9\'_]+`/, # Constructor operators /:[-!@#$%^&*+<>\/?\\=|:]*/, # type signatures (/^[a-z][a-zA-Z0-9\'_, ]*::.*$/ Comment_strong) end operators # use symbol font with -g optional operators are # does not look nice, and cannot be not protected #/\\\\/ \lambda, /->/ \rightarrow, /<-/ \leftarrow, /=>/ \Rightarrow, /\/=/ \neq, /<=/ \leq, />=/ \geq, "::" \in end operators operators are /[-!@#$%^&*+<>\/?\\=|]{3,}/ end operators sequences are # preprocessor directives /^#/ Comment_strong, "{-" Comment Comment "-}" Comment, "--" Comment, "{-#" Comment_strong Comment_strong "-}" Comment_strong, C-string # not quite, but actual syntax is too involved end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/html.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000004047�14445053504�012331� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for HTML # Copyright (c) 1997, 98 Jim Diamond, Akim Demaille, Miguel Santana, Wesley Chun # $Id: html.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:30 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # 0.1 akim@freefriends.org: # first version # # 1.0 wesc@alpha.ece.ucsb.edu: # added comments and bolded HTML tags # # FIXME: Beware of < and > for regex. # # style HTML is written by "Akim Demaille <akim@freefriends.org>, Wesley J. Chun <wesc@alpha.ece.ucsb.edu>" version is 1.1 requires a2ps 4.12a documentation is "This style is meant to pretty print HTML source files, not to simulate" "its interpretation (i.e., samp(<bold>foo</bold>)samp does not print samp(foo)samp" "in bold). If you really meant to print the result of the HTML file" "emph(interpreted)emph, then you should turn the delegations on, and make sure" "samp(a2ps)samp has HTML delegations." end documentation operators in Keyword_strong are (/<([^>]*)>/ "<", \1, ">") end operators sequences are # HTML comments "<!--" Comment "-->", # Tags with arguments (E.g., <a>, <img>, <table>...) (/<([[:alpha:]]+) / "<" Keyword_strong, \1 Keyword_strong, " " Plain) Keyword ">" Keyword_strong # Exceptions are double-quoted strings inside tags exceptions are (/"(([^"]|\\\\.)*)"/ "\"" Plain, \1 String, "\"" Plain) end exceptions end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/idl.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000034315�14445053504�012136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sheet definitions for IDL (Interactive Data Language) # Copyright (c) 1997-2000 Robert S. Mallozzi, Manfred Schwarb, Akim Demaille # Miguel Santana. # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style IDL is written by "Robert S. Mallozzi <Robert.Mallozzi@msfc.nasa.gov>, Manfred Schwarb <schwarb@geo.umnw.ethz.ch>" version is 1.1 requires a2ps version 4.12 documentation is "Style sheet for IDL 5.2 (Interactive Data Language)." "Obsolete routines are not supported." "https://www.rsinc.com." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_.01234567889" case insensitive keywords in Keyword_strong are # statements: "if", "then", "else", "endif", "for", "do", "endfor", "while", "endwhile", "endelse", "repeat", "until", "endrep", "case", "of", "endcase", "goto", "begin", "end", "common", "pro", "function", "forward_function", "procedure_name", # operators: "mod", "not", "or", "and", "ge", "gt", "lt", "le", "eq", "ne", "xor", ">", "<", # general routines: "a_correlate", "abs", "acos", "alog", "alog10", "amoeba", "annotate", "arg_present", "arrow", "ascii_template", "asin", "assoc", "atan", "axis", "bar_plot", "beseli", "beselj", "besely", "beta", "bilinear", "bin_date", "bindgen", "binomial", "blas_axpy", "blk_con", "box_cursor", "breakpoint", "broyden", "bytarr", "byte", "byteorder", "bytscl", "c_correlate", "caldat", "calendar", "call_external", "call_function", "call_method", "call_procedure", "catch", "cd", "ceil", "chebyshev", "check_math", "chisqr_cvf", "chisqr_pdf", "choldc", "cholsol", "cindgen", "cir_3pnt", "close", "clust_wts", "cluster", "color_convert", "color_quan", "comfit", "complex", "complexarr", "complexround", "compute_mesh_normals", "cond", "congrid", "conj", "constrained_min", "contour", "convert_coord", "convol", "coord2to3", "correlate", "cos", "cosh", "cramer", "create_struct", "create_view", "crossp", "crvlength", "ct_luminance", "cti_test", "cursor", "curvefit", "cv_coord", "cw_animate", "cw_animate_load", "cw_animate_run", "cw_animate_getp", "cw_arcball", "cw_bgroup", "cw_clr_index", "cw_colorsel", "cw_defroi", "cw_dice", "cw_field", "cw_form", "cw_fslider", "cw_orient", "cw_pdmenu", "cw_rgbslider", "cw_tmpl", "cw_zoom", "dblarr", "dcindgen", "dcomplex", "dcomplexarr", "define_key", "defroi", "defsysv", "delvar", "demo_mode", "deriv", "derivsig", "determ", "device", "dfpmin", "dialog_message", "dialog_pickfile", "dialog_printjob", "dialog_printersetup", "digital_filter", "dilate", "dindgen", "dissolve", "dist", "do_apple_script", "doc_library", "double", "efont", "eigenql", "eigenvec", "elmhes", "empty", "eof", "erase", "erode", "errorf", "errplot", "execute", "exit", "exp", "expand", "expand_path", "expint", "extrac", "extract_slice", "f_cvf", "f_pdf", "factorial", "fft", "filepath", "findfile", "findgen", "finite", "fix", "flick", "float", "floor", "flow3", "fltarr", "flush", "format_axis_values", "free_lun", "fstat", "fulstr", "funct", "fv_test", "fx_root", "fz_roots", "gamma", "gamma_ct", "gauss_cvf", "gauss_pdf", "gauss2dfit", "gaussfit", "gaussint", "get_kbrd", "get_lun", "getenv", "grid3", "gs_iter", "h_eq_ct", "h_eq_int", "hanning", "hdf_browser", "hdf_read", "heap_gc", "help", "hilbert", "hist_2d", "hist_equal", "histogram", "hls", "hqr", "hsv", "ibeta", "identity", "igamma", "image_cont", "imaginary", "indgen", "int_2d", "int_3d", "int_tabulated", "intarr", "interpol", "interpolate", "invert", "ioctl", "ishft", "journal", "julday", "keyword_set", "krig2d", "kurtosis", "kw_test", "l64indgen", "label_region", "ladfit", "leefilt", "linbcg", "lindgen", "linfit", "linkimage", "live_contour", "live_control", "live_destroy", "live_export", "live_image", "live_info", "live_line", "live_oplot", "live_plot", "live_print", "live_rect", "live_style", "live_surface", "live_text", "ljlct", "ll_arc_distance", "lmfit", "lmgr", "lngamma", "lnp_test", "loadct", "lonarr", "long", "lon64arr", "long64", "lsode", "lu_complex", "ludc", "lumprove", "lusol", "m_correlate", "machar", "make_array", "map_continents", "map_grid", "map_image", "map_patch", "map_set", "max", "md_test", "mean", "meanabsdev", "median", "mesh_obj", "message", "min", "min_curve_surf", "mk_html_help", "modifyct", "moment", "mpeg_close", "mpeg_open", "mpeg_put", "mpeg_save", "multi", "n_elements", "n_params", "n_tags", "newton", "norm", "obj_class", "obj_destroy", "obj_isa", "obj_new", "obj_valid", "objarr", "on_error", "on_ioerror", "online_help", "open", "openr", "openu", "openw", "oplot", "oploterr", "p_correlate", "pcomp", "plot", "plot_3dbox", "plot_field", "ploterr", "plots", "pnt_line", "point_lun", "polar_contour", "polar_surface", "poly", "poly_2d", "poly_area", "poly_fit", "polyfill", "polyfillv", "polyfitw", "polyshade", "polywarp", "popd", "powell", "primes", "print", "printf", "printd", "profile", "profiler", "profiles", "project_vol", "ps_show_fonts", "psafm", "pseudo", "ptr_free", "ptr_new", "ptr_valid", "ptrarr", "pushd", "qromb", "qromo", "qsimp", "query_bmp", "query_dicom", "query_jpeg", "query_pict", "query_png", "query_ppm", "query_srf", "query_tiff", "r_correlate", "r_test", "randomn", "randomu", "ranks", "rdpix", "read", "readf", "read_ascii", "read_bmp", "read_dicom", "read_gif", "read_interfile", "read_jpeg", "read_pict", "read_png", "read_ppm", "read_spr", "read_srf", "read_sylk", "read_tiff", "read_wave", "read_x11_bitmap", "read_xwd", "reads", "readu", "rebin", "recall_commands", "recon3", "reduce_colors", "reform", "regress", "replicate", "replicate_inplace", "resolve_all", "resolve_routine", "restore", "retall", "return", "reverse", "rewind", "riemann", "rk4", "roberts", "rot", "rotate", "round", "routine_info", "rs_test", "rstrpos", "s_test", "save", "scale3", "scale3d", "search2d", "search3d", "set_plot", "set_shading", "set_symbol", "setup_keys", "sfit", "shade_surf", "shade_surf_irr", "shade_volume", "shift", "show3", "showfont", "sin", "sindgen", "sinh", "size", "skewness", "skipf", "slicer3", "slide_image", "smooth", "sobel", "sort", "spawn", "sph_4pnt", "sph_scat", "spl_init", "spl_interp", "spline", "spline_p", "sprsab", "sprsax", "sprsin", "sqrt", "standardize", "stddev", "stop", "str_sep", "strarr", "strcompress", "stretch", "string", "strlen", "strlowcase", "strmessage", "strmid", "strpos", "strput", "strtrim", "struct_assign", "strupcase", "surface", "surfr", "svdc", "svdfit", "svsol", "swap_endian", "systime", "t_cvf", "t_pdf", "t3d", "tag_names", "tan", "tanh", "taprd", "tapwrt", "tek_color", "temporary", "thin", "threed", "time_test2", "tm_test", "total", "trace", "transpose", "tri_surf", "triangulate", "trigrid", "triql", "trired", "trisol", "trnlog", "ts_coef", "ts_diff", "ts_fcast", "ts_smooth", "tv", "tvcrs", "tvlct", "tvrd", "tvscl", "uindgen", "uint", "uintarr", "ul64indgen", "ulindgen", "ulon64arr", "ulonarr", "ulong", "ulong64", "uniq", "usersym", "variance", "vax_float", "vel", "velovect", "vert_t3d", "voigt", "voronoi", "voxel_proj", "wait", "warp_tri", "wdelete", "weof", "wf_draw", "where", "widget_base", "widget_button", "widget_control", "widget_draw", "widget_droplist", "widget_event", "widget_info", "widget_label", "widget_list", "widget_slider", "widget_table", "widget_text", "window", "write_bmp", "write_gif", "write_jpeg", "write_nrif", "write_pict", "write_png", "write_ppm", "write_spr", "write_srf", "write_sylk", "write_tiff", "write_wave", "writeu", "wset", "wshow", "wtn", "xbm_edit", "xdisplayfile", "xfont", "xinteranimate", "xloadct", "xmanager", "xmng_tmpl", "xmtool", "xpalette", "xregistered", "xsq_test", "xsurface", "xvaredit", "xyouts", "zoom", "zoom_24", # scientific routines: "cdf_attcreate", "cdf_attdelete", "cdf_attexists", "cdf_attget", "cdf_attinq", "cdf_attnum", "cdf_attput", "cdf_attrename", "cdf_close", "cdf_control", "cdf_create", "cdf_delete", "cdf_doc", "cdf_encode_epoch", "cdf_epoch", "cdf_error", "cdf_exists", "cdf_inquire", "cdf_lib_info", "cdf_open", "cdf_parse_epoch", "cdf_varcreate", "cdf_vardelete", "cdf_varget", "cdf_varget1", "cdf_varinq", "cdf_varnum", "cdf_varput", "cdf_varrename", "hdf_close", "hdf_deldd", "hdf_df24_addimage", "hdf_df24_getimage", "hdf_df24_getinfo", "hdf_df24_lastref", "hdf_df24_nimages", "hdf_df24_readref", "hdf_df24_restart", "hdf_dfan_addfds", "hdf_dfan_addfid", "hdf_dfan_getdesc", "hdf_dfan_getfds", "hdf_dfan_getfid", "hdf_dfan_getlabel", "hdf_dfan_lablist", "hdf_dfan_lastref", "hdf_dfan_putdesc", "hdf_dfan_putlabel", "hdf_dfp_addpal", "hdf_dfp_getpal", "hdf_dfp_lastref", "hdf_dfp_npals", "hdf_dfp_putpal", "hdf_dfp_readref", "hdf_dfp_restart", "hdf_dfp_writeref", "hdf_dfr8_addimage", "hdf_dfr8_getimage", "hdf_dfr8_getinfo", "hdf_dfr8_lastref", "hdf_dfr8_nimages", "hdf_dfr8_putimage", "hdf_dfr8_readref", "hdf_dfr8_restart", "hdf_dfr8_setpalette", "hdf_dfsd_adddata", "hdf_dfsd_dimget", "hdf_dfsd_dimset", "hdf_dfsd_endslice", "hdf_dfsd_getdata", "hdf_dfsd_getinfo", "hdf_dfsd_getslice", "hdf_dfsd_putslice", "hdf_dfsd_readref", "hdf_dfsd_setinfo", "hdf_dfsd_startslice", "hdf_dupdd", "hdf_exists", "hdf_ishdf", "hdf_lib_info", "hdf_newref", "hdf_number", "hdf_open", "hdf_gr_attrinfo", "hdf_sd_attrfind", "hdf_sd_attrinfo", "hdf_sd_attrset", "hdf_sd_create", "hdf_sd_dimget", "hdf_sd_dimgetid", "hdf_sd_dimset", "hdf_sd_end", "hdf_sd_endaccess", "hdf_sd_fileinfo", "hdf_sd_getdata", "hdf_sd_getinfo", "hdf_sd_idtoref", "hdf_sd_iscoordvar", "hdf_sd_nametoindex", "hdf_sd_reftoindex", "hdf_sd_select", "hdf_sd_setextfile", "hdf_sd_setinfo", "hdf_sd_start", "hdf_vd_attach", "hdf_vd_detach", "hdf_vd_fdefine", "hdf_vd_fexist", "hdf_vd_find", "hdf_vd_get", "hdf_vd_getid", "hdf_vd_getinfo", "hdf_vd_getnext", "hdf_vd_insert", "hdf_vd_isvd", "hdf_vd_isvg", "hdf_vd_lone", "hdf_vd_read", "hdf_vd_seek", "hdf_vd_setinfo", "hdf_vd_write", "hdf_vg_addtr", "hdf_vg_attach", "hdf_vg_detach", "hdf_vg_getid", "hdf_vg_getinfo", "hdf_vg_getnext", "hdf_vg_gettr", "hdf_vg_gettrs", "hdf_vg_inqtr", "hdf_vg_insert", "hdf_vg_isvd", "hdf_vg_isvg", "hdf_vg_lone", "hdf_vg_number", "hdf_vg_setinfo", "ncdf_attcopy", "ncdf_attdel", "ncdf_attget", "ncdf_attinq", "ncdf_attname", "ncdf_attput", "ncdf_attrename", "ncdf_close", "ncdf_control", "ncdf_create", "ncdf_dimdef", "ncdf_dimid", "ncdf_diminq", "ncdf_dimrename", "ncdf_exists", "ncdf_inquire", "ncdf_open", "ncdf_vardef", "ncdf_varget", "ncdf_varget1", "ncdf_varid", "ncdf_varinq", "ncdf_varput", "ncdf_varrename" end keywords optional operators are NOT \not, OR \vee, XOR, AND \wedge, GE \geq, GT >, LT <, LE \leq, EQ \equiv, NE \neq, <, >, \# end operators sequences are ; Comment, # IDL strings and char are not exactly C-char, since 'Foo''bar' # represents "Foo'bar" "\'" Plain String "\'" Plain exceptions are "\'\'" end exceptions, "\"" Plain String "\"" Plain exceptions are "\"\"" end exceptions end sequences end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/initora.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000007333�14445053504�013033� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������style "Oracle parameter file" is written by "Pierre Mareschal <pmaresch@be.oracle.com>" version is 1.0 requires a2ps 4.9.5 documentation is "For init.ora parameter files." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" keywords in Keyword_strong are # Hold your breath and say it in once ! always_anti_join, audit_trail, background_dump_dest, bitmap_merge_area_size, blank_trimming, cache_size_threshold, checkpoint_process, cleanup_rollback_entries, close_cached_open_cursors, commit_point_strength, compatible, compatible_no_recovery, control_files, cpu_count, create_bitmap_area_size, cursor_space_for_time, db_block_buffers, db_block_checkpoint_batch, db_block_checksum, db_block_lru_extended_statistics, db_block_lru_latches, db_block_lru_statistics, db_block_size, db_domain, db_file_multiblock_read_count, db_file_simultaneous_writes, db_file_standby_name_convert, db_files, db_name, dblink_encrypt_login, delayed_logging_block_cleanouts, discrete_transactions_enabled, distributed_lock_timeout, distributed_recovery_connection_hold_time, distributed_transactions, dml_locks, enqueue_resources, event, fixed_date, gc_db_locks, gc_files_to_locks, gc_freelist_groups, gc_lck_procs, gc_releasable_locks, gc_rollback_locks, gc_rollback_segments, gc_save_rollback_locks, gc_segments, gc_tablespaces, global_names, hash_area_size, hash_join_enabled, hash_multiblock_io_count, ifile, instance_number, job_queue_interval, job_queue_keep_connections, job_queue_processes, license_max_sessions, license_max_users, license_sessions_warning, log_archive_buffer_size, log_archive_buffers, log_archive_dest, log_archive_format, log_archive_start, log_block_checksum, log_buffer, log_checkpoint_interval, log_checkpoint_timeout, log_checkpoints_to_alert, log_file_standby_name_convert, log_files, log_simultaneous_copies, log_small_entry_max_size, max_commit_propagation_delay, max_dump_file_size, max_enabled_roles, max_rollback_segments, max_transaction_branches, mts_dispatchers, mts_listener_address, mts_max_dispatchers, mts_max_servers, mts_multiple_listeners, mts_servers, mts_service, nls_currency, nls_date_format, nls_date_language, nls_iso_currency, nls_language, nls_numeric_characters, nls_sort, nls_territory, open_cursors, open_links, optimizer_mode, optimizer_percent_parallel, oracle_trace_collection_name, oracle_trace_collection_path, oracle_trace_collection_size, oracle_trace_enable, oracle_trace_facility_name, oracle_trace_facility_path, os_authent_prefix, os_roles, parallel_default_max_instances, parallel_max_servers, parallel_min_percent, parallel_min_servers, parallel_server_idle_time, partition_view_enabled, pre_page_sga, processes, recovery_parallelism, remote_dependencies_mode, remote_login_passwordfile, remote_os_authent, remote_os_roles, resource_limit, rollback_segments, row_cache_cursors, row_locking, sequence_cache_entries, sequence_cache_hash_buckets, serializable, session_cached_cursors, sessions, shared_pool_reserved_min_alloc, shared_pool_reserved_size, shared_pool_size, snapshot_refresh_interval, snapshot_refresh_keep_connections, snapshot_refresh_processes, sort_area_retained_size, sort_area_size, sort_direct_writes, sort_read_fac, sort_spacemap_size, sort_write_buffer_size, sort_write_buffers, sql92_security, sql_trace, temporary_table_locks, text_enable, thread, timed_statistics, transactions, transactions_per_rollback_segment, user_dump_dest, utl_file_dir end keywords sequences are "#" Comment, C-string, C-char end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/is5rul.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000037140�14445053504�012610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Install Shield 5 # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "InstallShield 5" is written by "Alex <alex@brainstorm.fr>" version is 1.0 requires a2ps version 4.9.7 documentation is "InstallShield5 _TM_ RUL script." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#" case sensitive ancestors are cpp end ancestors keywords in Keyword are BOOL, BYREF, CHAR, HWND, INT, LIST, LONG, NUMBER, POINTER, QUAD, SHORT, STRINGLIST, STRING end keywords keywords in Label_strong are abort, begin, call, "case", declare, default, downto, elseif, else, endfor, endif, endprogram, endswitch, endwhile, "end", exit, external, for, function, goto, if, program, prototype, repeat, return, step, switch, then, to, typedef, until, void, while end keywords keywords in Keyword are BATCH_INSTALL, CMDLINE, COMMONFILES, ERRORFILENAME, FOLDER_DESKTOP, FOLDER_PROGRAMS, FOLDER_STARTMENU, FOLDER_STARTUP, INFOFILENAME, ISRES, ISUSER, ISVERSION, MEDIA, MODE, PROGRAMFILES, SELECTED_LANGUAGE, SRCDIR, SRCDISK, SUPPORTDIR, TARGETDIR, TARGETDISK, UNINST, WINDIR, WINDISK, WINSYSDIR, WINSYSDISK end keywords keywords in Keyword_strong are AddFolderIcon, AddProfString, AppCommand, AskDestPath, AskOptions, AskPath, AskText, AskYesNo, BatchAdd, BatchDeleteEx, BatchFileLoad, BatchFileSave, BatchFind, BatchGetFileName, BatchMoveEx, BatchSetFileName, CallDLLFx, ChangeDirectory, CloseFile, CmdGetHwndDlg, CommitSharedFiles, ComponentAddItem, ComponentCompareSizeRequired, ComponentDialog, ComponentError, ComponentFileEnum, ComponentFileInfo, ComponentFilterLanguage, ComponentFilterOS, ComponentGetData, ComponentGetItemSize, ComponentIsItemSelected, ComponentListItems, ComponentMoveData, ComponentSelectItem, ComponentSetData, ComponentSetTarget, ComponentSetupTypeEnum, ComponentSetupTypeGetData, ComponentSetupTypeSet, ComponentTotalSize, ComponentValidate, ConfigAdd, ConfigDelete, ConfigFileLoad, ConfigFileSave, ConfigFind, ConfigGetFileName, ConfigGetInt, ConfigMove, ConfigSetFileName, ConfigSetInt, CopyBytes, CopyFile, CreateDir, CreateFile, CreateProgramFolder, CtrlClear, CtrlDir, CtrlGetCurSel, CtrlGetMLEText, CtrlGetMultCurSel, CtrlGetState, CtrlGetSubCommand, CtrlGetText, CtrlPGroups, CtrlSelectText, CtrlSetCurSel, CtrlSetFont, CtrlSetList, CtrlSetMLEText, CtrlSetMultCurSel, CtrlSetState, CtrlSetText, DefineDialog, DeinstallSetReference, DeinstallStart, Delay, DeleteDir, DeleteFile, DeleteFolderIcon, DeleteProgramFolder, DialogSetInfo, Disable, Do, DoInstall, Enable, EndDialog, EnterDisk, ExistsDir, ExistsDisk, ExitProgMan, EzBatchAddPath, EzBatchAddString, EzBatchReplace, EzConfigAddDriver, EzConfigAddString, EzConfigGetValue, EzConfigSetValue, EzDefineDialog, FileCompare, FileDeleteLine, FileGrep, FileInsertLine, FindAllDirs, FindAllFiles, FindFile, FindWindow, GetDir, GetDisk, GetDiskSpace, GetEnvVar, GetExtents, GetFileInfo, GetFolderNameList, GetFont, GetGroupNameList, GetItemNameList, GetLine, GetMemFree, GetMode, GetProfInt, GetProfString, GetSystemInfo, GetValidDrivesList, GetWindowHandle, Handler, HIWORD, InstallationInfo, Is, LaunchApp, LaunchAppAndWait, ListAddItem, ListAddString, ListCount, ListCreate, ListCurrentItem, ListCurrentString, ListDeleteItem, ListDeleteString, ListDestroy, ListFindItem, ListFindString, ListGetFirstItem, ListGetFirstString, ListGetNextItem, ListGetNextString, ListReadFromFile, ListSetCurrentItem, ListSetCurrentString, ListSetIndex, ListWriteToFile, LongPathFromShortPath, LongPathToQuote, LongPathToShortPath, LOWORD, MessageBeep, MessageBox, NumToStr, OpenFile, OpenFileMode, ParsePath, PathAdd, PathDelete, PathFind, PathGet, PathMove, PathSet, PlaceBitmap, PlaceWindow, PlayMMedia, ProgDefGroupType, QueryProgGroup, QueryProgItem, QueryShellMgr, ReadBytes, RebootDialog, RegDBConnectRegistry, RegDBCreateKeyEx, RegDBDeleteKey, RegDBDeleteValue, RegDBDisConnectRegistry, RegDBGetAppInfo, RegDBGetItem, RegDBGetKeyValueEx, RegDBKeyExist, RegDBQueryKey, RegDBSetAppInfo, RegDBSetDefaultRoot, RegDBSetItem, RegDBSetKeyValueEx, ReleaseDialog, ReloadProgGroup, RenameFile, ReplaceFolderIcon, ReplaceProfString, RGB, SdAskDestPath, SdAskOptions, SdAskOptionsList, SdBitmap, SdComponentDialog, SdComponentDialog2, SdComponentDialogAdv, SdComponentMult, SdConfirmNewDir, SdConfirmRegistration, SdDisplayTopics, SdFinish, SdFinishReboot, SdLicense, SdMakeName, SdOptionsButtons, SdProductName, SdRegisterUser, SdRegisterUserEx, SdSelectFolder, SdSetupType, SdSetupTypeEx, SdShowAnyDialog, SdShowDlgEdit1, SdShowDlgEdit2, SdShowDlgEdit3, SdShowFileMods, SdShowInfoList, SdShowMsg, SdStartCopy, SdWelcome, SeekBytes, SelectDir, SelectFolder, SendMessage, SetColor, SetDialogTitle, SetDisplayEffect, SetErrorMsg, SetErrorTitle, SetFileInfo, SetFont, SetStatusWindow, SetTitle, SetupType, ShowGroup, ShowProgramFolder, SilentReadData, SilentWriteData, SizeWindow, Sprintf, SprintfBox, StatusUpdate, StrCompare, StrFind, StrGetTokens, StrLength, StrRemoveLastSlash, StrSub, StrToLower, StrToNum, StrToUpper, System, UnUseDLL, UseDLL, VarRestore, VarSave, VerCompare, VerFindFileVersion, VerGetFileVersion, VerSearchAndUpdateFile, VerUpdateFile, WaitOnDialog, Welcome, WriteBytes, WriteLine, WriteProfString, XCopyFile end keywords optional keywords in Keyword are AFTER, ALLCONTENTS, ALLCONTROLS, APPEND, BACKGROUNDCAPTION, BACKGROUND, BACKBUTTON, BACK, BASEMEMORY, BEFORE, BILLBOARD, BITMAPFADE, BITMAP256COLORS, BITMAPICON, BK_BLUE, BK_GREEN, BK_MAGENTA, BK_RED, BK_SMOOTH, BK_SOLIDBLUE, BK_SOLIDGREEN, BK_SOLIDMAGENTA, BK_SOLIDRED, BK_SOLIDYELLOW, BK_YELLOW, BLACK, BLUE, BOOTUPDRIVE, BUTTON_CHECKED, BUTTON_UNCHECKED, CANCEL, CC_ERR_FILEFORMATERROR, CC_ERR_FILEREADERROR, CC_ERR_NOCOMPONENTLIST, CC_ERR_OUTOFMEMORY, CDROM, CDROM_DRIVE, CENTERED, CHECKBOX, CHECKBOX95, CHECKLINE, CHECKMARK, CMD_CLOSE, CMD_MAXIMIZE, CMD_MINIMIZE, CMD_PUSHDOWN, CMD_RESTORE, COLORS, COMMANDEX, COMMAND, COMMON, COMP_NORMAL, COMP_UPDATE_DATE, COMP_UPDATE_SAME, COMP_UPDATE_VERSION, COMPACT, COMPARE_DATE, COMPARE_SIZE, COMPARE_VERSION, COMPONENT_FIELD_DESTINATION, COMPONENT_FIELD_DISPLAYNAME, COMPONENT_FIELD_FILENEED, COMPONENT_FIELD_FTPLOCATION, COMPONENT_FIELD_HTTPLOCATION, COMPONENT_FIELD_INSTALLATION, COMPONENT_FIELD_MISC, COMPONENT_FIELD_OVERWRITE, COMPONENT_FIELD_PASSWORD, COMPONENT_FIELD_SELECTED, COMPONENT_FIELD_SIZE, COMPONENT_FIELD_STATUS, COMPONENT_FIELD_TARGET, COMPONENT_FIELD_TARGET_CDROM, COMPONENT_FIELD_UNINSTALLABLE, COMPONENT_FIELD_VISIBLE, COMPONENT_INFO_ATTRIBUTE, COMPONENT_INFO_COMPSIZE, COMPONENT_INFO_DATE, COMPONENT_INFO_DATE_EX, COMPONENT_INFO_LANGUAGE, COMPONENT_INFO_ORIGSIZE, COMPONENT_INFO_OS, COMPONENT_INFO_TIME, COMPONENT_INFO_VERSIONLS, COMPONENT_INFO_VERSIONMS, COMPONENT_INFO_VERSIONSTR, COMPONENT_VALUE_ALWAYSOVERWRITE, COMPONENT_VALUE_CRITICAL, COMPONENT_VALUE_HIGHLYRECOMMENDED, COMPONENT_VALUE_NEVEROVERWRITE, COMPONENT_VALUE_NEWERDATE, COMPONENT_VALUE_NEWERVERSION, COMPONENT_VALUE_OLDERDATE, COMPONENT_VALUE_OLDERVERSION, COMPONENT_VALUE_SAMEORNEWDATE, COMPONENT_VALUE_SAMEORNEWERVERSION, COMPONENT_VALUE_STANDARD, CONTINUE, COPY_ERR_CREATEDIR, COPY_ERR_MEMORY, COPY_ERR_NODISKSPACE, COPY_ERR_OPENINPUT, COPY_ERR_OPENOUTPUT, COPY_ERR_TARGETREADONLY, CORECOMPONENTHANDLING, CPU, CUSTOM, DATA_COMPONENT, DATA_LIST, DATA_NUMBER, DATA_STRING, DATE, DEFWINDOWMODE, DELETE_EOF, DEFWINDOWMODE, DIALOGCACHE, DIR_WRITEABLE, DISABLE, DISK_TOTALSPACE, DLG_ASK_OPTIONS, DLG_ASK_PATH, DLG_ASK_TEXT, DLG_ASK_YESNO, DLG_CENTERED, DLG_CLOSE, DLG_DIR_DIRECTORY, DLG_DIR_DRIVE, DLG_DIR_FILE, DLG_ENTER_DISK, DLG_ERR, DLG_ERR_ALREADY_EXISTS, DLG_ERR_ENDDLG, DLG_INFO_ALTIMAGE, DLG_INFO_CHECKSELECTION, DLG_INFO_KUNITS, DLG_INFO_USEDECIMAL, DLG_INIT, DLG_MSG_INFORMATION, DLG_MSG_SEVERE, DLG_MSG_STANDARD, DLG_MSG_WARNING, DLG_STATUS, DLG_USER_CAPTION, DRIVE, EDITBOX_CHANGE, EFF_BOXSTRIPE, EFF_FADE, EFF_HORZREVEAL, EFF_HORZSTRIPE, EFF_NONE, EFF_REVEAL, EFF_VERTSTRIPE, ENABLE, END_OF_FILE, END_OF_LIST, ENHANCED, ENVSPACE, EQUALS, ERR_BOX_BADPATH, ERR_BOX_BADTAGFILE, ERR_BOX_DISKID, ERR_BOX_DRIVEOPEN, EXCLUDE_SUBDIR, EXCLUSIVE, EXISTS, EXIT, EXTENDEDMEMORY, EXTENSION_ONLY, FAILIFEXISTS, FALSE, FEEDBACK_FULL, FEEDBACK, FILE_ATTR_ARCHIVED, FILE_ATTR_HIDDEN, FILE_ATTR_NORMAL, FILE_ATTR_READONLY, FILE_ATTR_SYSTEM, FILE_ATTRIBUTE, FILE_BIN_CUR, FILE_BIN_END, FILE_BIN_START, FILE_DATE, FILE_EXISTS, FILE_INSTALLED, FILE_IS_LOCKED, FILE_LINE_LENGTH, FILE_LOCKED, FILE_MODE_APPEND, FILE_MODE_BINARY, FILE_MODE_BINARYREADONLY, FILE_MODE_NORMAL, FILE_NO_VERSION, FILE_NOT_FOUND, FILE_RD_ONLY, FILE_SIZE, FILE_SRC_OLD, FILE_TIME, FILE_WRITEABLE, FILENAME, FILENAME_ONLY, FIXED_DRIVE, FREEENVSPACE, FULLSCREEN, FULLSCREENSIZE, FULLWINDOWMODE, FULL, GREEN, HELP, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HOURGLASS, HWND_DESKTOP, HWND_INSTALL, INCLUDE_SUBDIR, INDVFILESTATUS, INFOFILENAME, INFORMATION, IS_286, IS_386, IS_486, IS_ALPHA, IS_CDROM, IS_EGA, IS_FIXED, IS_FOLDER, IS_ITEM, IS_MIPS, IS_PENTIUM, IS_POWERPC, IS_REMOTE, IS_REMOVABLE, IS_SVGA, IS_UNKNOWN, IS_UVGA, IS_VGA, IS_WIN32S, IS_WINDOWS, IS_WINDOWS95, IS_WINDOWSNT, IS_XVGA, ISLANG_AFRIKAANS, ISLANG_AFRIKAANS_STANDARD, ISLANG_ALBANIAN, ISLANG_ALBANIAN_STANDARD, ISLANG_ALL, ISLANG_ARABIC, ISLANG_ARABIC_ALGERIA, ISLANG_ARABIC_BAHRAIN, ISLANG_ARABIC_EGYPT, ISLANG_ARABIC_IRAQ, ISLANG_ARABIC_JORDAN, ISLANG_ARABIC_KUWAIT, ISLANG_ARABIC_LEBANON, ISLANG_ARABIC_LIBYA, ISLANG_ARABIC_MOROCCO, ISLANG_ARABIC_OMAN, ISLANG_ARABIC_QATAR, ISLANG_ARABIC_SAUDIARABIA, ISLANG_ARABIC_SYRIA, ISLANG_ARABIC_TUNISIA, ISLANG_ARABIC_UAE, ISLANG_ARABIC_YEMEN, ISLANG_BASQUE, ISLANG_BASQUE_STANDARD, ISLANG_BELARUSIAN, ISLANG_BELARUSIAN_STANDARD, ISLANG_BULGARIAN, ISLANG_BULGARIAN_STANDARD, ISLANG_CATALAN, ISLANG_CATALAN_STANDARD, ISLANG_CHINESE, ISLANG_CHINESE_HONGKONG, ISLANG_CHINESE_PRC, ISLANG_CHINESE_SINGAPORE, ISLANG_CHINESE_TAIWAN, ISLANG_CROATIAN, ISLANG_CROATIAN_STANDARD, ISLANG_CZECH, ISLANG_CZECH_STANDARD, ISLANG_DANISH_STANDARD, ISLANG_DANISH6, ISLANG_DUTCH, ISLANG_DUTCH_BELGIAN, ISLANG_DUTCH_STANDARD, ISLANG_ENGLISH, ISLANG_ENGLISH_AUSTRALIAN, ISLANG_ENGLISH_BELIZE, ISLANG_ENGLISH_CANADIAN, ISLANG_ENGLISH_CARIBBEAN, ISLANG_ENGLISH_IRELAND, ISLANG_ENGLISH_JAMAICA, ISLANG_ENGLISH_NEWZEALAND, ISLANG_ENGLISH_SOUTHAFRICA, ISLANG_ENGLISH_TRINIDAD, ISLANG_ENGLISH_UNITEDKINGDOM, ISLANG_ENGLISH_UNITEDSTATES, ISLANG_ESTONIAN, ISLANG_ESTONIAN_STANDARD, ISLANG_FAEROESE, ISLANG_FAEROESE_STANDARD, ISLANG_FARSI, ISLANG_FARSI_STANDARD, ISLANG_FINNISH, ISLANG_FINNISH_STANDARD, ISLANG_FRENCH, ISLANG_FRENCH_BELGIAN, ISLANG_FRENCH_CANADIAN, ISLANG_FRENCH_LUXEMBOURG, ISLANG_FRENCH_STANDARD, ISLANG_FRENCH_SWISS, ISLANG_GERMAN, ISLANG_GERMAN_AUSTRIAN, ISLANG_GERMAN_LIECHTENSTEIN, ISLANG_GERMAN_LUXEMBOURG, ISLANG_GERMAN_STANDARD, ISLANG_GERMAN_SWISS, ISLANG_GREEK, ISLANG_GREEK_STANDARD, ISLANG_HEBREW, ISLANG_HEBREW_STANDARD, ISLANG_HUNGARIAN, ISLANG_HUNGARIAN_STANDARD, ISLANG_ICELANDIC, ISLANG_ICELANDIC_STANDARD, ISLANG_INDONESIAN, ISLANG_INDONESIAN_STANDARD, ISLANG_ITALIAN, ISLANG_ITALIAN_STANDARD, ISLANG_ITALIAN_SWISS, ISLANG_JAPANESE, ISLANG_JAPANESE_STANDARD, ISLANG_KOREAN, ISLANG_KOREAN_JOHAB, ISLANG_KOREAN_STANDARD, ISLANG_LATVIAN, ISLANG_LATVIAN_STANDARD, ISLANG_LITHUANIAN, ISLANG_LITHUANIAN_STANDARD, ISLANG_NORWEGIAN, ISLANG_NORWEGIAN_BOKMAL, ISLANG_NORWEGIAN_NYNORSK, ISLANG_POLISH, ISLANG_POLISH_STANDARD, ISLANG_PORTUGUESE, ISLANG_PORTUGUESE_BRAZILIAN, ISLANG_PORTUGUESE_STANDARD, ISLANG_ROMANIAN, ISLANG_ROMANIAN_STANDARD, ISLANG_RUSSIAN, ISLANG_RUSSIAN_STANDARD, ISLANG_SERBIAN, ISLANG_SERBIAN_CYRILLIC, ISLANG_SERBIAN_LATIN, ISLANG_SLOVAK, ISLANG_SLOVAK_STANDARD, ISLANG_SLOVENIAN, ISLANG_SLOVENIAN_STANDARD, ISLANG_SPANISH, ISLANG_SPANISH_ARGENTINA, ISLANG_SPANISH_BOLIVIA, ISLANG_SPANISH_CHILE, ISLANG_SPANISH_COLOMBIA, ISLANG_SPANISH_COSTARICA, ISLANG_SPANISH_DOMINICANREPUBLIC, ISLANG_SPANISH_ECUADOR, ISLANG_SPANISH_ELSALVADOR, ISLANG_SPANISH_GUATEMALA, ISLANG_SPANISH_HONDURAS, ISLANG_SPANISH_MEXICAN, ISLANG_SPANISH_MODERNSORT, ISLANG_SPANISH_NICARAGUA, ISLANG_SPANISH_PANAMA, ISLANG_SPANISH_PARAGUAY, ISLANG_SPANISH_PERU, ISLANG_SPANISH_PUERTORICO, ISLANG_SPANISH_TRADITIONALSORT, ISLANG_SPANISH_URUGUAY, ISLANG_SPANISH_VENEZUELA, ISLANG_SWEDISH, ISLANG_SWEDISH_FINLAND, ISLANG_SWEDISH_STANDARD, ISLANG_THAI, ISLANG_THAI_STANDARD, ISLANG_TURKISH, ISLANG_TURKISH_STANDARD, ISLANG_UKRAINIAN, ISLANG_UKRAINIAN_STANDARD, ISLANG_VIETNAMESE, ISLANG_VIETNAMESE_STANDARD, ISOSL_ALL, ISOSL_NT351, ISOSL_NT351_ALPHA, ISOSL_NT351_MIPS, ISOSL_NT40, ISOSL_NT40_ALPHA, ISOSL_NT40_MIPS, ISOSL_WIN31, ISOSL_WIN95, ISTYPE, LANGUAGE_DRV, LINE_NUMBER, LIST_NULL, LISTBOX_ENTER, LISTBOX_SELECT, LISTFIRST, LISTLAST, LISTNEXT, LISPREV, LOCKEDFILE, LOGGING, LOWER_LEFT, LOWER_RIGHT, MAGENTA, MATH_COPROCESSOR, METAFILE, MMEDIA_AVI, MMEDIA_MIDI, MMEDIA_PLAYASYNCH, MMEDIA_PLAYCONTINUOUS, MMEDIA_PLAYSYNCH, MMEDIA_STOP, MMEDIA_WAVE, MODE, MOUSE, MOUSE_DRV, NETWORK, NETWORK_DRV, NEXTBUTTON, NEXT, NONEXCLUSIVE, NORMALMODE, NOSET, NO_SUBDIR, NO, NOTEXISTS, NOWAIT, NULL, OFF, ON, OK, ONLYDIR, OSMAJOR, OSMINOR, OTHER_FAILURE, OUT_OF_DISK_SPACE, PARALLEL, PARTIAL, PATH_EXISTS, PATH, PERSONAL, PROGMAN, RED, REGDB_APPPATH_DEFAULT, REGDB_APPPATH, REGDB_BINARY, REGDB_ERR_CONNECTIONEXISTS, REGDB_ERR_CORRUPTEDREGISTRY, REGDB_ERR_INITIALIZATION, REGDB_ERR_INVALIDHANDLE, REGDB_ERR_INVALIDNAME, REGDB_KEYS, REGDB_NAMES, REGDB_NUMBER, REGDB_STRING, REGDB_STRING_EXPAND, REGDB_STRING_MULTI, REGDB_UNINSTALL_NAME, REGDB_VALUE, REMOTE_DRIVE, REMOVE, REMOVEABLE_DRIVE, REPLACE_ITEM, REPLACE, RESET, RESTART, ROOT, RUN_MAXIMIZED, RUN_MINIMIZED, RUN_SEPARATEMEMORY, SELFREGISTER, SELFREGISTERBATCH, SELFREGISTRATIONPROCESS, SERIAL, SETUPTYPE_INFO_DESCRIPTION, SETUPTYPE_INFO_DISPLAYNAME, SET, SEVERE, SH_SHOW, SHARE, SHAREDFILE, SILENTMODE, SRCTARGETDIR, STANDARD, STATUSOLD, STATUSDLG, STATUSBAR, STATUS, STYLE_BOLD, STYLE_ITALIC, STYLE_NORMAL, STYLE_SHADOW, STYLE_UNDERLINE, SW_MAXIMIZE, SW_MINIMIZE, SW_NORMAL, SW_RESTORE, SW_SHOW, SW_SHOWMINIMIZED, SW_SHOWMINNOACTIVE,SW_SHOWNA, SW_SHOWNOACTIVATE, SYS_BOOTMACHINE, SYS_BOOTWIN, SYS_TODOS, TILED, TIME, TRUE, TYPICAL, UPPER_LEFT, UPPER_RIGHT, USER_ADMINISTRATOR, USERPROFILE, VALID_PATH, VER_DLL_NOT_FOUND, VER_UPDATE_ALWAYS, VER_UPDATE_COND, VER_UPDATE_CONDFILE_INSTALLED, VOLUMELABEL, WARNING, WIN32SINSTALLED, WIN32SMAJOR, WIN32SMINOR, WINDOWS_SHARED, WINMAJOR, WINMINOR, YELLOW, YES end keywords #optional keywords are # "in" \in, # not \not, # and \wedge, # or \vee #end keywords optional operators are -> \rightarrow, && \wedge, || \vee, <= \leq, >= \geq, # << \leq, # >> \geq, # =, != \neq, ! \not # = \equiv end operators sequences are "/*" Comment_strong Comment_strong "*/" Comment_strong, "//" Comment, C-string, C-char # "case " Keyword_strong Label : Plain # /(unit|interface|implementation|program) / Keyword_strong # Label_strong /$/ Plain end sequences operators in Plain are (/^([\t ]*)([a-zA-Z0-9_]*)([\t ]*:)/ \1 Plain, \2 Label_strong, \3 Plain), (/(@)([a-zA-Z0-9_]*)/ \1 Label_strong, \2 Label_strong) end operators end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/java.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000004740�14445053504�012306� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for java # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # $Id: java.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:30 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.2 Akim Demaille # Implemented Class/Interface decl as operator style Java is version is 1.3 requires a2ps version 4.12a written by "Steve Alexander <s.alexander@lancaster.ac.uk>" first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" second alphabet is "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._#$%" case sensitive documentation is "Documentation comments are mapped to strong comments, and any other" "comment is plain comment." end documentation keywords in Keyword are byte, float, int, short, char, void, boolean, double, long, null, this, true, false end keywords keywords in Keyword_strong are abstract, break, byvalue, "case", cast, catch, const, continue, default, do, else, extends, final, finally, for, future, generic, goto, if, implements, import, inner, instanceof, native, new, operator, outer, package, private, protected, public, rest, return, static, super, switch, synchronized, throw, throws, transient, try, var, volatile, while end keywords optional operators are -> \rightarrow, && \wedge, || \vee, != \neq, == \equiv, <<=, >>=, <= \leq, >= \geq, ! \not end operators # Class/Interface declarations operators are (/(class|interface)/ # 1. Keyword /([[:space:]]+)/ # 2. Spaces /([^[:space:]]+)/ # 3. Class name \1 Keyword_strong, \2 Plain, \3 Label_strong) end operators sequences are "/*" Comment Comment "*/" Comment, "/**" Comment_strong Comment_strong "*/" Comment_strong, "//" Comment, C-string end sequences end style ��������������������������������a2ps-4.15.5/sheets/js.ssh���������������������������������������������������������������������������0000644�0000000�0000000�00000005555�14445053504�012006� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for JavaScript # Copyright (C) 1999 Scott Pakin # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style JavaScript is written by "Scott Pakin <pakin@uiuc.edu>" version is 1.1 requires a2ps version 4.12g first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789" case sensitive documentation is "Keywords used are everything listed in the Client-Side JavaScript" "Reference 1.3, plus \"undefined\" (why isn't that listed?) and" "\"prototype\". I omitted the semi-standard a2ps optional operators for" "equality, because JavaScript's use of both strict- and non-strict equality" "might ambiguate the output. Finally, regular expressions are formatted" "like strings." end documentation keywords in Keyword are abstract, boolean, byte, char, const, debugger, double, false, float, int, long, null, prototype, short, this, true, undefined, void end keywords keywords in Keyword_strong are break, "case", catch, class, continue, default, delete, do, else, enum, export, extends, final, finally, for, goto, if, implements, import, "in", instanceof, interface, native, new, package, private, protected, public, return, static, super, switch, synchronized, throw, throws, transient, try, typeof, var, volatile, while, with end keywords operators are (/(function)([[:blank:]]+)([^ \t(]+)/ \1 Keyword_strong, \2 Plain, \3 Label) end operators optional operators are # Actual && \wedge, || \vee, <= \leq, >= \geq, ! \not, # Protected from the above <<<=, <<=, >>=, >>>=, !=, !== end operators sequences are # Regular expressions (/(=)/ # \1 = assignment /([[:blank:]]+)/ # \2 = spaces /(\/)/ # \3 = "/" /([^*\/])/ # \4 = first character of regexp \1 Plain, \2 Plain, \3 Plain, \4 String) String "/" Plain exceptions are "\\\\", "\\/" end exceptions, "/*" Comment Comment "*/" Comment, "//" Comment, C-string, "'" Plain String "'" Plain exceptions are "\\\\", "\\'" end exceptions end sequences end style ���������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/lace.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000003550�14445053504�012267� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for lace # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: lace.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:30 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style LACE is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 requires a2ps version 4.9.5 documentation is "This is meant for the Eiffel equivalent of the Makefiles." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" keywords in Keyword_strong are "end", system, root, cluster, use, include, precompiled, exclude, adapt, ignore, rename, as, default, option, collect, assertion, debug, optimize, trace, yes, no, all, require, ensure, invariant, loop, check, external, object, make, generate, visible, creation, export end keywords keywords in Keyword are eiffel, ada, pascal, fortran, c end keywords sequences are -- Comment, "\"" Plain String "\"" Plain exceptions are %%, "%\"", "%\'" end exceptions, "\'" Plain String "\'" Plain exceptions are %%, "%\"", "%\'" end exceptions end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/lex.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000003337�14445053504�012156� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Lex files # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: lex.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:30 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Lex is requires a2ps 4.12a written by "Akim Demaille <akim@freefriends.org>" version is 1.3 documentation is "In addition to the C constructs, it highlights the declaration of" "states, and some special samp(%)samp commands." end documentation ancestors are c end ancestors sequences are # Declaration of states /^%[sx] +/ Keyword_strong Label exceptions are / +/ Plain end exceptions end sequences keywords in Keyword_strong are BEGIN, INITIAL, /^%(option|array|pointer)/ end keywords operators are # Definition of the states a` la flex (/^<([^>]*)>/ < Plain, \1 Label_strong, > Plain) end operators # Add \' and \" as operators, so that it does not break lex files with # rules including them as regexp. operators in Plain are "\\\"", "\\\'" end operators end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/lout.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000016556�14445053504�012360� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Lout # Copyright (c) 2000 Jean-Baptiste Nivoit # Inspired by other a2ps style sheets, most notably the TeX one. # # This style sheet is meant to work with Basser Lout # document formatting system files. # Further information about Lout is available at # <URL:https://github.com/william8000/lout/> # # It should work for Lout version 3.17 and above. # # This steals some stuff from lout-mode.el, an Emacs # major-mode for editing Lout source, which is GPL'ed and # Copyright (C) 1997-1999 Eric Marsden <emarsden@mail.dotcom.fr> # See <URL:https://github.com/emacsattic/lout-mode> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Lout is written by "Jean-Baptiste Nivoit <jbnivoit@multimania.com>" version is 1.0 requires a2ps version 4.12 documentation is "This is the style for Lout files." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#%@" case sensitive keywords in Keyword are extend, export, def, named, left, right, force, into, horizontally, macro, body, precedence, import end keywords # this list of keywords comes as is from lout-mode.el keywords in Keyword_strong are @Abstract, @AL, @AlignedDisplay, @AlphaList, @And, @Angle, @Appendix, @Arc, @Arrow, @B, @BaseOf, @Begin, @BeginAlignedDisplays, @BeginAppendices, @BeginSubSections, @BeginSubSubAppendices, @BeginSubSubSections, @BI, @BL, @Book, @BookLayout, @BoundaryMarks, @Box, @Break, @BulletList, @CC, @CD, @CDot, @Center, @CenteredDisplay, @CenteredList, @ChapCite, @ChapRef, @ChapRefListTitle @Chapter, @Char, @Circle, @Cite, @CL, @Claim, @CNP, @Color, @Colour, @ColumnGap, @ColumnNumber, ContentsGoesHere, @ContentsGap, @ContentsGapAbove, @ContentsGapBelow, @ContentsLeader, @ContentsLeaderGap, @ContentsRightWidth, @CoverSheet, @CP, @CPrint @Corollary, @CurveBox, @D, @DashList, @Data, @Database, @Date, @DefaultIndent, @Definition, @Diamond, @Display, @DisplayGap, @DisplayIndent, @Distance, @DL, @DLI, @Doc, @Document, @DocumentLayout, @DotJoin, @DotSep, @DP, @DropListItem @DropTagItem, @DTI, @El, @Ellipse, @End, @EndList, @EndAlignedDisplays, @EndAppendicies, @EndChapters, @EndNote, @EndOverheads, @EndProof, @EndSections, @EndSubAppendices, @EndSubSections, @EndSubSubAppendices, @EndSubSubSections, @Eq, @EvenLeftMargin, @EvenRightMargin, @Example, @Fig, @Figure, @FigureCaptionPos, @FigureLocation, @FigureNumbers, @FigurePageNumber, @FirstPageNumber, @Fmta, @Font, @FootMargin, @FootAboveGap, @FootGap, @FootLen, @FootNote, @FootNoteBreak, @FootNoteFont, @FootNoteLocation, @FootNoteNumbers, @FootNoteThrough, @Frame, @FullWidth @Graph, @GraphCircle, @GraphCross, @GraphDashed, @GraphDiamond, @GraphDotted, @GraphFilledCircle, @GraphFilledDiamond, @GraphFilledSquare, @GraphFilledTriangle, @GraphNoLine, @GraphPlus, @GraphSolid, @GraphSquare, @GraphTriangle, @HArrow, @Heading, @HeadingFont, @HLine, @I, @ID, @If, @IL, @Illustration, @Include, @IncludeGraphic, @IndentedDisplay, @IndentedList, @IndexBlanks, @IndexBreak, @IndexColumnGap, @IndexColumnNumber, @IndexFont, @InitialBreak, @InitialFont, @InitialLanguage, @InitialSpace, @IntroFirstPageNumber, @IntroPageNumbers, @Introduction, @JoinFigures, @L, @Label, @Language, @LD, @Lecture, @LeftDisplay, @LeftList, @LeftNote, @Lemma, @LI, @Line, @List, @ListItem, @LL, @LLP, @Location, @LP, @MajorNum, @MajorTitle, @MakeContents, @MakeIndex, @MakeReferences, @MarkOf, @MarkRow, @MinorNum, @MinorTitle, @Minute, @Multiply, @NL, @NoChapCite, @NoChapRef, @NoCite, @NoRef, @Not, @NP, @Null, @NumberedDisplay, @NumberedList, @NumberedOf, @OddLeftMargin, @OddRightMargin, @Or, @OrdinaryLayout, @OuterNote, @Over, @Overhead, @OverheadLayout, @OverheadTransparencies, @OverStrike, @PageBackground, @PageBoxType, @PageHeaders, @PageHeight, @PageNum, @PageNumbers, @PageOrientation, @PageType, @PageWidth, @PageMark, @PageOf, @PAL, @ParaGap, @ParaIndent, @ParenAlphaList, @ParenNumberedList, @ParenRomanList, @ParenUCAlphaList, @ParenUCRomanList, @ParSym, @ParNumber, @ParText, @ParTitle, @Pas, @Place, @PNL, @Polygon, @PP, @Preface, @Prev, @PRL, @Proof, @Proposition, @PUCAL, @PUCRL, @QD, @QL, @QuotedDisplay, @QuotedList, @R, @RawEndList, @RawList, @Ref, @RefPrint, @RefStyle, @RefCiteLabels, @RefCiteStyle, @Reference, @ReferencesBeforeAppendices, @RefListBreak, @RefListFont, @RefListFormat, @RefListGap, @RefListIndent, @RefListLabels, @RefListLabelWidth, @RefListRightIndent, @RefListSortKey, @RefListTitle, @RefNumbers, @Register, @Report, @ReportLayout, @Right, @RightDisplay, @RightNote, @RL, @RomanList, @Rotate, @Rowa, @RR, @RunningTitle, @S, @Scale, @Second, @Section, @SectSym, @SeparateIntoNumbering, @SetColour, @ShadowBox, @ShowLabels, @SL@Square, @Star, @StarList, @SubAppendix, @SubSection, @SubSubAppendix, @SubSubSection, @Sym, @SysDatabase, @SysInclude, @Tab, @Table, @TableCaptionPos, @TableLocation, @TableNumbers, @Tag, @TaggedList, @TagItem, @Theorem, @TI, @Time, @Title, @TitlePageFont, @TL, @TopMargin, @True, @Type, @UCAL, @UCAlphaList, @UCRL, @UCRomanList, @Underline, @Use, @VArrow, @Verbatim, @VeryWideTaggedList, @VLine, @VShift, @VWTL, @Wide, @WideTaggedList, @WTL, @XDistance, @YDistance, @Bullet, @ParSym, @Dagger, @CDot, @Yen, @Degree, @Second, @Multiply, @CopyRight, @TradeMark, @Start, @SectSym, @DaggerDbl, @Sterling, @Florin, @Minute, @Lozenge, @Divide, @Register, @B, @I, @BI, @R, @F, @S, @Chapter, @Section, @SubSection, @Abstract, @BeginSections, @EndSections, @BeginSubSections, @EndSubSections, @Appendix, @BeginSubAppendices, @EndSubAppendices, @SubAppendix, @Preface end keywords #(defconst lout-font-lock-keywords # (list # # 1 font-lock-function-name-face) # '("@\\(Begin\\)[ ]+\\([a-zA-Z]+\\)" # (1 font-lock-keyword-face) (2 font-lock-function-name-face)) # '("@\\([a-zA-Z]+\\)" 1 font-lock-keyword-face) # '("{||?\\|//?}{[0-9]+[cipmfsvx]}?" . font-lock-type-face) # '("@B[ ]+{\\([^}]*\\)}" 1 'bold keep) # '("@B[ ]+\\(\\w+\\)" 1 'bold keep) # '("@I[ ]+{\\([^}]*\\)" 1 'italic keep) # '("@I[ ]+\\(\\w+\\)" 1 'italic keep) # '("@BI[ ]+{\\([^}]*\\)}" 1 'bold-italic keep) # '("@BI[ ]+\\(\\w+\\)" 1 'bold-italic keep) # '("@Title +{\\([^}]*\\)}" 1 'bold keep) # '("def\||macro" . font-lock-function-name-face)) # "Additional expressions to highlight in Lout mode.") operators are # (/def[\t ]*(\\@[a-zA-Z0-9_]+)/ \1 Keyword_strong) (/(\\@[a-zA-Z0-9_]+)/ \1 Keyword_strong), "//", "/", "^/", "&", "^|", "|" end operators sequences are "#" Comment, C-string end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/mail.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000026160�14445053504�012307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for mailfolder # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: mail.ssh,v 1.1.1.1.2.2 2007/12/29 01:58:30 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.13 Jonathan Flynn # Added GMT date qualifier. ## 1.12 Akim Demaille # Cleaned up some of the Strong_comment in order to have a better # support of --strip-level=1 ## 1.11 Akim Demaille # Handle `From: "Foo Bar" <my@email>' ## 1.10 Akim Demaille # Aligned to 4.9.10 (order of sequences) ## 1.9 Akim Demaille # Added Resent-*, and Precedence. ## 1.8 Akim Demaille # Improved the author's tag style "Mail Folder" is written by "Akim Demaille <akim@freefriends.org>" version is 1.14 requires a2ps version 4.12a documentation is "To use from elm and others, it is better to specify samp(-g -Email)samp," "since the file sent to printer is no longer truly a mail folder." "This style also suits to news. samp(--strip)samp options are also useful" "(they strip \"useless\" headers)." "" "Whenever the changes of encoding are clear, a2ps sets itself the" "encoding for the parts concerned." "" "Tag 1 is the subject, and Tag 2 the author of the mail/news." "" "Note: This style sheet is _very_ difficult to write. Please don't" "report behavior you don't like. Just send me improvements," "or write a Bison parser for mails." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:_-" case sensitive # main () { # int i; # for (i = 160 ; i < 256 ; i++) { # if (!((i - 160) % 5)) # printf ("\n "); # printf (" =%X \"\\x%x\", ", i, i); # } # putchar ('\n'); # } optional operators are =A0 "\xa0", =A1 "\xa1", =A2 "\xa2", =A3 "\xa3", =A4 "\xa4", =A5 "\xa5", =A6 "\xa6", =A7 "\xa7", =A8 "\xa8", =A9 "\xa9", =AA "\xaa", =AB "\xab", =AC "\xac", =AD "\xad", =AE "\xae", =AF "\xaf", =B0 "\xb0", =B1 "\xb1", =B2 "\xb2", =B3 "\xb3", =B4 "\xb4", =B5 "\xb5", =B6 "\xb6", =B7 "\xb7", =B8 "\xb8", =B9 "\xb9", =BA "\xba", =BB "\xbb", =BC "\xbc", =BD "\xbd", =BE "\xbe", =BF "\xbf", =C0 "\xc0", =C1 "\xc1", =C2 "\xc2", =C3 "\xc3", =C4 "\xc4", =C5 "\xc5", =C6 "\xc6", =C7 "\xc7", =C8 "\xc8", =C9 "\xc9", =CA "\xca", =CB "\xcb", =CC "\xcc", =CD "\xcd", =CE "\xce", =CF "\xcf", =D0 "\xd0", =D1 "\xd1", =D2 "\xd2", =D3 "\xd3", =D4 "\xd4", =D5 "\xd5", =D6 "\xd6", =D7 "\xd7", =D8 "\xd8", =D9 "\xd9", =DA "\xda", =DB "\xdb", =DC "\xdc", =DD "\xdd", =DE "\xde", =DF "\xdf", =E0 "\xe0", =E1 "\xe1", =E2 "\xe2", =E3 "\xe3", =E4 "\xe4", =E5 "\xe5", =E6 "\xe6", =E7 "\xe7", =E8 "\xe8", =E9 "\xe9", =EA "\xea", =EB "\xeb", =EC "\xec", =ED "\xed", =EE "\xee", =EF "\xef", =F0 "\xf0", =F1 "\xf1", =F2 "\xf2", =F3 "\xf3", =F4 "\xf4", =F5 "\xf5", =F6 "\xf6", =F7 "\xf7", =F8 "\xf8", =F9 "\xf9", =FA "\xfa", =FB "\xfb", =FC "\xfc", =FD "\xfd", =FE "\xfe", =FF "\xff" end operators operators in Comment are # I have seen some `Received:' on a single line... # it has `by' followed by parentheses on the same line. # So we have to protect the corresponding sequences to avoid # getting the whole mail being recognized as part of the Received. /^Received: .*by.*\\([^)]*\\)\n/ end operators sequences are /^>/ Plain Keyword, # "\n" is specified to avoid it to be included in the Tag1 # (what would result in a ^J in the title). ############################## The subject ############################## /^Subject: / Keyword_strong (Label_strong + Tag1) "\n" Label_strong exceptions are (/=\\?(ISO|iso)-8859-[0-9]\\?Q\\?/ Invisible, "latin1" Encoding), /\\?=/ Invisible, =A0 "\xa0", =A1 "\xa1", =A2 "\xa2", =A3 "\xa3", =A4 "\xa4", =A5 "\xa5", =A6 "\xa6", =A7 "\xa7", =A8 "\xa8", =A9 "\xa9", =AA "\xaa", =AB "\xab", =AC "\xac", =AD "\xad", =AE "\xae", =AF "\xaf", =B0 "\xb0", =B1 "\xb1", =B2 "\xb2", =B3 "\xb3", =B4 "\xb4", =B5 "\xb5", =B6 "\xb6", =B7 "\xb7", =B8 "\xb8", =B9 "\xb9", =BA "\xba", =BB "\xbb", =BC "\xbc", =BD "\xbd", =BE "\xbe", =BF "\xbf", =C0 "\xc0", =C1 "\xc1", =C2 "\xc2", =C3 "\xc3", =C4 "\xc4", =C5 "\xc5", =C6 "\xc6", =C7 "\xc7", =C8 "\xc8", =C9 "\xc9", =CA "\xca", =CB "\xcb", =CC "\xcc", =CD "\xcd", =CE "\xce", =CF "\xcf", =D0 "\xd0", =D1 "\xd1", =D2 "\xd2", =D3 "\xd3", =D4 "\xd4", =D5 "\xd5", =D6 "\xd6", =D7 "\xd7", =D8 "\xd8", =D9 "\xd9", =DA "\xda", =DB "\xdb", =DC "\xdc", =DD "\xdd", =DE "\xde", =DF "\xdf", =E0 "\xe0", =E1 "\xe1", =E2 "\xe2", =E3 "\xe3", =E4 "\xe4", =E5 "\xe5", =E6 "\xe6", =E7 "\xe7", =E8 "\xe8", =E9 "\xe9", =EA "\xea", =EB "\xeb", =EC "\xec", =ED "\xed", =EE "\xee", =EF "\xef", =F0 "\xf0", =F1 "\xf1", =F2 "\xf2", =F3 "\xf3", =F4 "\xf4", =F5 "\xf5", =F6 "\xf6", =F7 "\xf7", =F8 "\xf8", =F9 "\xf9", =FA "\xfa", =FB "\xfb", =FC "\xfc", =FD "\xfd", =FE "\xfe", =FF "\xff" end exceptions, ############################## The author ############################## # 4. "Foo Bar" <foo@fu.bar> # 3. Foo Bar <foo@fu.bar> # 2. foo@fu.bar (Foo Bar) # 1. the rest # 1. Default matching of the author. Try to remove the escapes /^From: / Keyword_strong (Label_strong + Tag2) "\n" Label_strong exceptions are /=\\?(ISO|iso)-8859-[0-9]\\?Q\\?/ Invisible, /\\?=/ Invisible, =A0 "\xa0", =A1 "\xa1", =A2 "\xa2", =A3 "\xa3", =A4 "\xa4", =A5 "\xa5", =A6 "\xa6", =A7 "\xa7", =A8 "\xa8", =A9 "\xa9", =AA "\xaa", =AB "\xab", =AC "\xac", =AD "\xad", =AE "\xae", =AF "\xaf", =B0 "\xb0", =B1 "\xb1", =B2 "\xb2", =B3 "\xb3", =B4 "\xb4", =B5 "\xb5", =B6 "\xb6", =B7 "\xb7", =B8 "\xb8", =B9 "\xb9", =BA "\xba", =BB "\xbb", =BC "\xbc", =BD "\xbd", =BE "\xbe", =BF "\xbf", =C0 "\xc0", =C1 "\xc1", =C2 "\xc2", =C3 "\xc3", =C4 "\xc4", =C5 "\xc5", =C6 "\xc6", =C7 "\xc7", =C8 "\xc8", =C9 "\xc9", =CA "\xca", =CB "\xcb", =CC "\xcc", =CD "\xcd", =CE "\xce", =CF "\xcf", =D0 "\xd0", =D1 "\xd1", =D2 "\xd2", =D3 "\xd3", =D4 "\xd4", =D5 "\xd5", =D6 "\xd6", =D7 "\xd7", =D8 "\xd8", =D9 "\xd9", =DA "\xda", =DB "\xdb", =DC "\xdc", =DD "\xdd", =DE "\xde", =DF "\xdf", =E0 "\xe0", =E1 "\xe1", =E2 "\xe2", =E3 "\xe3", =E4 "\xe4", =E5 "\xe5", =E6 "\xe6", =E7 "\xe7", =E8 "\xe8", =E9 "\xe9", =EA "\xea", =EB "\xeb", =EC "\xec", =ED "\xed", =EE "\xee", =EF "\xef", =F0 "\xf0", =F1 "\xf1", =F2 "\xf2", =F3 "\xf3", =F4 "\xf4", =F5 "\xf5", =F6 "\xf6", =F7 "\xf7", =F8 "\xf8", =F9 "\xf9", =FA "\xfa", =FB "\xfb", =FC "\xfc", =FD "\xfd", =FE "\xfe", =FF "\xff" end exceptions, # 2. foo@fu.bar (Foo Bar) # Try to keep only the name, and not the adress in the tag # We refuse the =, because I don't see how to translate them :( # It is implemented as a sequence, because they have priority # over operators, hence, here is the only place where we can # override the following rule. # Try not to include data that is after a `,'. (/^(From: )/ # \1. The From /([[:blank:]]*)/ # \2. Some blanks /([^(]+\\()/ # \3. The email /([^),]+)/ # \4. Name of the sender (between paren) /(.*\\).*\n)/ # \5. End of line \1 Keyword_strong, \2 Plain, \3 Label_strong, \4 (Label_strong + Tag2), \5 Label_strong) Label_strong // Plain, # 3. Foo Bar <foo@fu.bar> (/^(From: )/ # \1. The From /([[:blank:]]*)/ # \2. Some blanks /([^<=]+)/ # \3. Name (with no =) /([[:blank:]]+)/ # \4. Blanks /(<.+\n)/ # \5. email and end of line \1 Keyword_strong, \2 Plain, \3 (Label_strong + Tag2), \4 Label_strong, \5 Label_strong) Label_strong // Plain, # 4. "Foo Bar" <foo@fu.bar> (/^(From: )/ # \1. The From /([[:blank:]]*")/ # \2. Some blanks /([^<=]+)/ # \3. Name (with no =) /("[[:blank:]]+)/ # \4. Blanks /(<.+\n)/ # \5. email and end of line \1 Keyword_strong, \2 Plain, \3 (Label_strong + Tag2), \4 Label_strong, \5 Label_strong) Label_strong // Plain, ######################## Others of interest ########################### /^Apparently-To: / Comment_strong, /^T[Oo]: / Comment_strong, /^Date: / Comment_strong, /^Organization: / Comment_strong, /^Address: / Comment_strong, ######################## Others NO interest ########################### # Some headers with really poor interest. /^Alternate-Recipient: / Comment, /^Approved: / Comment, /^Autoforwarded: / Comment, /^Auto-Submitted: / Comment, /^[Cc]ontent-[[:alnum:]-]*: / Comment, # Catch the charset name, and switch to it (/^Content-Type: .*charset="?([^;"$\n]*).*\n/ Comment, \1 (Invisible + Encoding)) Comment, /^Conversion[[:alpha:]-]*: / Comment, /^Delivery-Date: / Comment, /^Distribution: / Comment, /^Email-Version: / Comment, /^Errors-To: / Comment, /^>From 65535/ Comment, /^Followup-To: / Comment, /^Importance: / Comment, /^In-[Rr]eply-[Tt]o: / Comment, /^Lines: / Comment, /^Mailer: / Comment, /^Message-([Ii][Dd]|Type): / Comment, /^Mime-[Vv]ersion: / Comment, /^MIME-[Vv]ersion: / Comment, /^Newsgroups: / Comment, /^NNTP-Posting-Host: / Comment, /^Nntp-Posting-Host: / Comment, /^Organisation: / Comment, /^Original-Encoded-Information-Types: / Comment, /^Path: / Comment, /^Precedence: / Comment, /^Priority: / Comment, /^Phone: / Comment, /^Received: / Comment closers are /(DST|EDT|GMT).*\n$/, /[+-][01][0-9]00.*\n$/, # As a security, if there is a white line, then we've # been skipping too much yet... /^\n$/ end closers, /^References: / Comment, /^Reply-To: / Comment, /^Resent-(Date|Message-Id|From|Sender): / Comment, /^Return-Path: / Comment, /^Return-Receipt-To: / Comment, /^Sender: / Comment, /^Sensitivity: / Comment, /^Sent: / Comment, /^Status: / Comment, /^Telefax: / Comment, /^Transport-Options: / Comment, /^Ua-Content-Id: / Comment, /^User-Agent: / Comment, /^Via: / Comment, /^Warnings-To: / Comment, /^X-[^:]+: / Comment, /^X400-[[:alpha:]-]*: / Comment, /^Xref: / Comment end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/make.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000004033�14445053504�012275� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Makefiles # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: make.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:30 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 0.1 Akim Demaille # The labeleling is smarter # ## 1.0 Akim Demaille # It is not necessarily an error to have a line starting with spaces: # think of a continuation like: # OBJS = foo.o\ # bar.o # Reported by Alexander Mai. Idem with tab only lines. style Makefile is requires a2ps 4.12a written by "Akim Demaille <akim@freefriends.org>" version is 1.3 documentation is "Special tokens, and non terminal declarations are highlighted." end documentation # We want to highlight the shell code from the commands. # Let's pretend this is a un*x shell (sh) ancestors are sh end ancestors operators are # We want to see the variables declared (/^([a-zA-Z0-9_-]+)([\t ]*=)/ \1 Label, \2 Plain), # We want to see the names of the rules defined # rules starting with targets like .foo are excluded here! (/^([a-zA-Z0-9_-][a-zA-Z0-9_.-]*)([\t ]*:)/ \1 Label_strong, \2 Plain), # We want to see the names of the rules defined # this matches rules starting with a variable like $(foo): bar (/^(\\$\\([a-zA-Z0-9_-][a-zA-Z0-9_.-]*\\))([\t ]*:)/ \1 Label_strong, \2 Plain) end operators end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/maple.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003473�14445053504�012465� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for maple # Copyright (c) 2000 Richard J Mathar, Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Maple" is written by "Richard J Mathar <mathar@mpia-hd.mpg.de>" version is 1.0 requires a2ps 4.12 first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-/$" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_/$#" case sensitive documentation is "Some classical program names, and/or builtins, are highlighted in" "the second level of pretty-printing." end documentation keywords in Keyword_strong are "RETURN", "and", "break", "by", "continue", "do", "elif", "else", "end", "fi", "for", "from", "global", "if", "local", "then", "od", "op", "or", "proc", "quit", "to", "while" end keywords optional keywords in Keyword_strong are array, assume, coeff, collect, combine, conjugate, cos, degree, denom, exp, expand, evalf, factor, ifactor, igcd, infinity, int, integer, interface, ldegree, list, nops, print, printf, sin, simplify, subs, sqrt end keywords sequences are "#" Comment, C-string, C-char end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/matlab.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000004762�14445053504�012631� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Matlab # Copyright (c) 2002, Joakim Lbeck # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Matlab" is written by "Joakim Lbeck <joa@maths.lth.se>" version is 0.93 requires a2ps 4.13 documentation is "This style highlights function definitions and a limited" "number of keywords, mostly control constructs, and is" "therefore usable for many Matlab versions. Special care" "have been taken to distinguish string delimiters from the" "transpose operator (which is the same symbol) and to" "recognize comments." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789" case sensitive keywords in Label_strong are dbclear, dbcont, dbdown, dbmex, dbquit, dbstack, dbstatus, dbstep, dbstop, dbtype, dbup end keywords keywords in Keyword_strong are break, builtin, "case", catch, else, elseif, "end", error, eval, evalc, evalin, feval, for, global, if, otherwise, persistent, return, switch, try, warning, while end keywords sequences are "%" Comment, ' Plain String ' Plain exceptions are '' end exceptions end sequences operators are # Transpose /[A-z0-9_]*[]A-Za-z0-9_.)}']'/, ... \ldots, # function without output arguments (/(function)/ /([ \t]+)/ /([a-zA-z][a-zA-Z0-9_]*)/ \1 Keyword_strong, \2 Plain, \3 Label_strong), # function with output arguments (/(function)/ /([ \t]+[^=]+=[ \t]*)/ /([a-zA-z][a-zA-Z0-9_]*)/ \1 Keyword_strong, \2 Plain, \3 Label_strong) end operators optional keywords in Plain are Inf \infty, inf \infty, pi \pi end keywords optional operators are ~ \not, | \vee, & \wedge, ~= \neq, <= \leq, >= \geq, == \equiv end operators end style ��������������a2ps-4.15.5/sheets/matlab4.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000015543�14445053504�012714� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for MATLAB 4.x (matlab4.ssh) # Copyright (c) 1998-1999 Akim Demaille, Miguel Santana, Marco De la Cruz # $Id: matlab4.ssh,v 1.1.1.1.2.3 2007/12/29 01:58:30 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. style "MATLAB 4" is written by "Marco De la Cruz <marco@atmosp.physics.utoronto.ca>" version is 1.2 requires a2ps version 4.9.9 #################################################################### documentation is "Note that comments in the code should have a space after the %." end documentation #################################################################### first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789" case sensitive keywords in Label_strong are function end keywords keywords in Keyword_strong are eval, feval, global, nargchk, break, else, elseif, "end", error, for, if, return, while, input, keyboard, menu, pause, dbclear, dbcont, dbdown, dbquit, dbstack, dbstatus, dbstep, dbstop, dbtype, dbup, mexdebug end keywords keywords in Keyword are demo, expo, help, info, lasterr, lookfor, path, subscribe, type, ver, "version", what, whatsnew, which, clear, disp, length, load, pack, save, size, who, whos, cd, cedit, delete, diary, dir, getenv, hostid, ls, matlabroot, pwd, tempdir, tempname, terminal, unix, clc, echo, format, home, more, matlabrc, quit, startup, all, any, exist, find, finite, isempty, ishold, isieee, isinf, isletter, isnan, isreal, issparse, isstr, eye, gallery, linspace, logspace, meshgrid, ones, rand, randn, zeros, ans, computer, flops, nargin, nargout, realmax, realmin, clock, cputime, date, etime, tic, toc, diag, fliplr, flipud, isreal, reshape, rot90, tril, triu, compan, hadamard, hankel, hilb, invhilb, magic, pascal, rosser, toeplitz, vander, wilkinson, abs, acos, acosh, acot, acoth, acsc, acsch, angle, asec, asech, asin, asinh, atan, atan2, atanh, ceil, conj, cos, cosh, cot, coth, csc, csch, exp, fix, floor, gcd, imag, lcm, log, log10, real, rem, round, sec, sech, sign, sin, sinh, sqrt, tan, tanh, bessel, besseli, besselj, besselk, bessely, beta, betainc, betaln, ellipj, ellipke, erfcx, erfinv, expint, gamma, gammainc, gammaln, legendre, log2, pow2, rat, erf, erfc, rats, cond, det, norm, null, orth, rcond, rank, rref, subspace, trace, chol, inv, lscov, lu, nnls, pinv, qr, balance, cdf2rdf, eig, hess, poly, qz, rsf2csf, schur, svd, expm, funm, logm, sqrtm, qrdelete, qrinsert, cross, dot, cumprod, cumsum, max, mean, median, min, prod, sort, std, sum, trapz, del2, diff, gradient, corrcoef, cov, conv, conv2, deconv, filter, filter2, abs, angle, cplxpair, fft, fft2, fftshift, ifft, ifft2, nextpow2, unwrap, polyder, polyeig, polyfit, polyval, polyvalm, residue, roots, griddata, interp1, interp2, interpft, fmin, fmins, fplot, fzero, ode23, ode45, quad, quad8, spdiags, speye, sprandn, sprandsym, find, full, sparse, spconvert, issparse, nnz, nonzeros, nzmax, spalloc, spfun, spones, gplot, spy, colperm, dmperm, randperm, colmmd, symmmd, symrcm, condest, normest, sprank, entree, spaugment, spparms, symbfact, fill, loglog, plot, semilogx, semilogy, bar, comet, hist, polar, compass, errorbar, feather, fplot, rose, stairs, stem, grid, gtext, legend, text, title, xlabel, ylabel, cart2pol, pol2cart, zoom, comet3, fill3, plot3, clabel, contour, contour3, contourc, image, imagesc, pcolor, quiver, slice, mesh, meshc, meshz, slice, surf, surfc, surfl, waterfall, axis, caxis, colormap, hidden, shading, view, viewmtx, zlabel, cylinder, sphere, cart2sph, sph2cart, capture, clf, close, figure, gcf, graymon, newplot, refresh, whitebg, axes, cla, gca, hold, ishold, subplot, line, patch, surface, uicontrol, uimenu, drawnow, gco, get, reset, rotate, set, uigetfile, uiputfile, orient, print, printopt, getframe, movie, moviein, ginput, rbbox, bone, contrast, cool, copper, flag, gray, hsv, hot, jet, pink, prism, white, brighten, colorbar, hsv2rgb, rgb2hsv, rgbplot, spinmap, diffuse, specular, surfnorm, saxis, sound, auread, auwrite, lin2mu, mu2lin, wavread, wavwrite, blanks, deblank, findstr, setstr, str2mat, string, strrep, strtok, isletter, lower, strcmp, upper, int2str, num2str, sprintf, sscanf, str2num, dec2hex, hex2dec, hex2num, fclose, fopen, fread, fwrite, fgetl, fgets, fprintf, fscanf, feof, ferror, frewind, fseek, ftell, csvread, csvwrite, wk1read, wk1write, kron, xor, ButtonDownFcn, Clipping, Interruptible, Parent, Userdata, Visible, CaptureRect, CurrentFigure, Diary, DiaryFile, Echo, Format, FormatSpacing, PointerLocation, ScreenDepth, TerminalOneWindow, TerminalProtocol, Units, BackingStore, Color, Colormap, CurrentAxes, CurrentObject, InvertHardcopy, KeyPressFcn, MenuBar, MinColormap, Name, NextPlot, NumberTitle, PaperUnits, PaperOrientation, PaperPosition, PaperType, Pointer, Position, Resize, ShareColors, WindowButtonDownFcn, WindowButtonMotionFcn, WindowButtonUpFcn, AspectRatio, Box, CLim, CLimMode, ColorOrder, DrawMode, FontAngle, FontName, FontSize, FontWeight, GridLineStyle, LineStyleOrder, LineWidth, NextPlot, TickLength, TickDir, Title, View, XColor, XDir, Xform, XGrid, XLabel, XLim, XLimMode, XScale, XTick, XTickLabels, XTickLabelMode, XTickMode, YColor, YDir, YGrid, YLabel, YLim, YLimMode, YScale, YTick, YTickLabels, YTickLabelMode, YTickMode, ZColor, ZDir, ZGrid, ZLabel, ZLim, ZLimMode, ZScale, ZTick, ZTickLabels, ZTickLabelMode, ZTickMode, BackgroundColor, CallBack, ForegroundColor, HorizontalAlignment, Max, Min, "String", Style, Value, Accelerator, Checked, Enable, "Label", Separator, EraseMode, LineStyle, LineWidth, MarkerSize, Xdata, Ydata, Zdata, Rotation, VerticalAlignment, CData, EdgeColor, FaceColor, MeshStyle, XData, YData, ZData end keywords optional operators are ~ \not, | \vee, & \wedge, ~= \neq, <= \leq, >= \geq, == \equiv, xor \oplus end operators sequences are "% " Comment, "disp" Keyword Plain "')", "error" Keyword Plain "')", "fprintf" Keyword Plain "'," end sequences end style �������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/mib.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000003466�14445053504�012140� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Management Information Base (MIB) # Copyright (c) 1998 Kelly Wiles # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Management Information Base" is requires a2ps 4.9.7 written by "Kelly Wiles <kelly@xactinc.com>" version is 1.1 documentation is "The MIB file is of ASN.1 syntax." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_#$%" case sensitive ancestors are cpp end ancestors keywords in Keyword are INTEGER, Counter32, Counter64, TruthValue, OwnerString, TestAndIncr, IpAddress, AutonomousType, PhysAddress, Unsigned32, OCTET, STRING, OBJECT, IDENTIFIER, RouteTag, RowStatus, DisplayString, TimeStamp, Gauge, TimeTicks, SIZE, Integer32, current end keywords keywords in Label_strong are BEGIN, END, IMPORTS, FORM end keywords keywords in Keyword_strong are OBJECT-TYPE, SYNTAX, ACCESS, STATUS, DESCRIPTION, SEQUENCE, OF, "MAX-ACCESS", "MODULE-IDENTITY" end keywords optional operators are # We need to protect these, so that <= is not replaced in <<= ::= end operators sequences are "--" Comment, C-string end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/mly.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000002501�14445053504�012157� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for ML parser # Copyright (c) 2000 Jean-Baptiste Nivoit # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "OCaml Yacc" is written by "Jean-Baptiste Nivoit <jbnivoit@multimania.com>" version is 1.0 requires a2ps version 4.12 documentation is "Should handle CAML Special Light parser files." end documentation ancestors are "ocaml" end ancestors keywords in Keyword_strong are "token", "start", "type", "left", "right", "nonassoc" end keywords sequences are /($[0-9]+)/ Keyword_strong, # these are not comments at all, but that what I want them to come # out as... "%%" Comment, "%{" Comment, "%}" Comment end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/modula2.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000002405�14445053504�012724� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for modula-2 # Copyright (c) 1997, Peter Bartke # $Id: modula2.ssh,v 1.1.1.1 2002/03/04 18:46:27 akim Exp $ # style "Modula 2" is written by "Peter Bartke <bartke@inf.fu-berlin.de>" version is 1.0 requires a2ps version 4.9.7 alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive # Common to Modula 2 and Modula 3 keywords in Keyword_strong are AND, ARRAY, BEGIN, BY, CASE, CONST, DIV, DO, ELSE, ELSIF, END, EXIT, FOR, FROM, IF, IMPORT, IN, LOOP, MOD, MODULE, NOT, OF, OR, PROCEDURE, RECORD, REPEAT, RETURN, SET, THEN, TO, TYPE, UNTIL, VAR, WHILE, WITH end keywords # Modula 2 only keywords in Keyword_strong are DEFINITION, EXPORT, IMPLEMENTATION, POINTER, QUALIFIED end keywords keywords in Keyword are ADDRESS, BITSET, BOOLEAN, CARDINAL, CHAR, INTEGER, LONGINT, LONGREAL, WORD, PROC, REAL, FALSE, TRUE, NIL, ABS, CAP, CHR, FLOAT, HIGH, MAX, MIN, ODD, ORD, SIZE, TRUNC, VAL, DEC, INC, INCL, EXCL, HALT end keywords optional keywords are IN \in, NOT \not, AND \wedge, OR \vee end keywords optional operators are ^ \uparrow, <= \leq, >= \geq, <> \neq, "#" \neq, & \wedge end operators sequences are "(*" Plain Comment "*)" Plain, C-string, C-char end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/modula3.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000006124�14445053504�012727� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for modula-3 # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: modula3.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:31 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille # Added Doc. style "Modula 3" is written by "Akim Demaille <akim@freefriends.org>" version is 1.1 requires a2ps version 4.9.7 documentation is "Modula-3 is a member of the Pascal family of languages. Designed in" "the late 1980s at Digital Equipment Corporation and Olivetti, Modula-3" "corrects many of the deficiencies of Pascal and Modula-2 for practical" "software engineering. In particular, Modula-3 keeps the simplicity of" "type safety of the earlier languages, while providing new facilities" "for exception handling, concurrency, object-oriented programming, and" "automatic garbage collection. Modula-3 is both a practical" "implementation language for large software projects and an excellent" "teaching language." "" "This sheet was designed based on url(http://www.modula3.org/)url(Modula 3 home page)url." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive # Common to Modula 2 and Modula 3 keywords in Keyword_strong are AND, ARRAY, BEGIN, BY, CASE, CONST, DIV, DO, ELSE, ELSIF, END, EXIT, FOR, FROM, IF, IMPORT, IN, LOOP, MOD, MODULE, NOT, OF, OR, PROCEDURE, RECORD, REPEAT, RETURN, SET, THEN, TO, TYPE, UNTIL, VAR, WHILE, WITH end keywords # Modula 3 only keywords in Keyword_strong are ANY, AS, BITS, BRANDED, EVAL, EXCEPT, EXCEPTION, EXPORTS, FINALLY, GENERIC, INTERFACE, LOCK, METHODS, OBJECT, OVERRIDES, RAISE, RAISES, READONLY, REF, REVEAL, ROOT, TRY, TYPECASE, UNSAFE, UNTRACED, VALUE end keywords keywords in Keyword are ABS, BYTESIZE, EXTENDED, INTEGER, MIN, NUMBER, TEXT, ADDRESS, CARDINAL, FALSE, ISTYPE, MUTEX, ORD, TRUE, ADR, CEILING, FIRST, LAST, NARROW, REAL, TRUNC, ADRSIZE, CHAR, FLOAT, LONGREAL, NEW, REFANY, TYPECODE, BITSIZE, DEC, FLOOR, LOOPHOLE, NIL, ROUND, VAL, BOOLEAN, DISPOSE, INC, MAX, NULL, SUBARRAY end keywords optional keywords are IN \in, NOT \not, AND \wedge, OR \vee end keywords optional operators are -> \rightarrow, <= \leq, >= \geq, :=, "#" \neq, = \equiv end operators sequences are "(*" Plain Comment "*)" Plain, C-string, C-char end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/nasm.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000011262�14445053504�012320� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for NASM ASM # Copyright (c) 2001, Aleksandar Veselinovic # $Id: nasm.ssh,v 1.1.2.2 2007/12/29 01:58:31 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style masm is requires a2ps 4.10 written by "Aleksandar Veselinovic <alexa@galeb.etf.bg.ac.yu>" version is 1.0 documentation is "This style highlights MASM ASM code." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%01234567890." case insensitive # MASM - Register # keywords in Plain are # ax, bx, cx, dx, si, di, bp, sp, es, ds, ss, cs, ah, bh, ch, dh, al, bl, cl, # dl, eax, ebx, ecx, edx, esi, edi, ebp, esp # end keywords # MASM - Macro; use Label face keywords in Label are /\\.[[:alpha:]][[:alnum:]_]*/ end keywords # MASM - Operator keywords in Keyword_strong are and, byte, ptr, codeptr, dataptr, dup, dword, eq, far, fword, ge, gt, high, large, le, low, lt, mod, ne, near, not, offset, or, proc, pword, qword, seg, short, tbyte, type, word, para end keywords # MASM - OpCode: these are current as of the 486 keywords in Keyword are aaa, aad, aam, aas, adc, add, and, arpl, bound, bsf, bsr, bswap, bt, btc, btr, bts, bswap, bt, btc, btr, bts, call, cbw, cdq, clc, cld, cli, clts, cmc, cmp, cmps, cmpsb, cmpsw, cmpsd, cmpxchg, cwd, cwde, daa, das, dec, div, enter, hlt, idiv, imul, "in", inc, ins, insb, insw, insd, int, into, invd, invlpg, iret, iretd, ja, jae, jb, jbe, jc, jcxz, jecxz, je, jz, jg, jge, jl, jle, jna, jnae, jnb, jnbe, jnc, jne, jng, jnge, jnl, jnle, jno, jnp, jns, jnz, jo, jp, jpe, jpo, js, jz, jmp, lahf, lar, lea, leave, lgdt, lidt, lgs, lss, lfs, lods, lodsb, lodsw, lodsd, loop, loope, loopz, loone, loopne, retf, retn, lds, les, lldt, lmsw, lock, lsl, ltr, mov, movs, movsb, movsw, movsd, movsx, movzx, mul, neg, nop, not, or, out, outs, outsb, outsw, outsd, pop, popa, popd, popf, popfd, push, pusha, pushad, pushf, pushfd, rcl, rcr, rol, ror, rep, repe, repz, repne, repnz, ret, sahf, sal, sar, shl, shr, sbb, scas, scasb, scasw, scasd, seta, setae, setb, setbe, setc, sete, setg, setge, setl, setle, setna, setnae, setnb, setnbe, setnc, setne, setng, setnge, setnl, setnle, setno, setnp, setns, setnz, seto, setp, setpe, setpo, sets, setz, sgdt, sidt, shld, shrd, sldt, smsw, stc, std, sti, stos, stosb, stosw, stosd, str, sub, test, verr, verw, wait, wbinvd, xadd, xchg, xlat, xlatb, xor end keywords # MASM - OpFloat: floating point coprocessor as of 487 keywords in Keyword are f2xm1, fabs, fadd, faddp, fbld, fbstp, fchs, fclex, fnclex, fcom, fcomp, fcompp, fcos, fdecstp, fdisi, fndisi, fdiv, fdivp, fdivr, fdivrp, feni, fneni, ffree, fiadd, ficom, ficomp, fidiv, fidivr, fild, fimul, fincstp, finit, fninit, fist, fistp, fisub, fisubr, fld, fldcw, fldenv, fldlg2, fldln2, fldl2e, fldl2t, fldpi, fldz, fld1, fmul, fmulp, fnop, fpatan, fprem, fprem1, fptan, frndint, frstor, fsave, fnsave, fscale, fsetpm, fsin, fsincos, fsqrt, fst, fstcw, fnstcw, fstenv, fnstenv, fstp, fstsw, fnstsw, fsub, fsubp, fsubr, fsubrp, ftst, fucom, fucomp, fucompp, fwait, fxam, fxch, fxtract, fyl2x, fyl2xp1, /fstsw[ \t]\+ax/, /fnstsw[ \t]\+ax/ end keywords # MASM - Directive keywords in Keyword_strong are align, arg, assume, codeseg, comm, const, dataseg, db, dd, df, display, dosseg, dp, dq, dt, dw, else, elseif, emul, "end", endif, endm, endp, ends, enum, equ, proc, public, publicdll, radix, extrn, fardata, global, record, segment, smallstack, group, if, if1, if2, ifb, ifdef, ifdif, ifdifi, ife, ifidn, ifidni, ifnb, ifndef, include, includlib, label, largestack, stack, struc, subttl, title, model, name, noemul, union, uses, "version", org, flat, ".model", ".186", ".286", ".286c", ".286p", ".287", ".386", ".386c", ".386p", ".387", ".486", ".486c", ".486p", ".8086", ".8087", ".alpha", ".code", ".stack", ".data" end keywords sequences are ";" Comment, /^;/ Comment_strong, C-string, C-char end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/o2c.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000003326�14445053504�012047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for o2c # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: o2c.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:31 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille <akim@freefriends.org> # Inherits from c.ssh style o2c is version 1.1 requires a2ps version 4.9.7 ancestors are c end ancestors keywords in Keyword_strong are class, inherit, public, application, modify, "end", program, body, method, o2, "in", new, o2query, name, function, abort, commit, quit, validate, schema, base end keywords sequences are "application " Keyword_strong Label_strong /$/ Plain, "class " Keyword_strong Label_strong /$/ Plain, "method body " Keyword_strong Label_strong " in " Keyword_strong, "transaction body " Keyword_strong Label_strong " in " Keyword_strong, "program body " Keyword_strong Label_strong " in " Keyword_strong, "program public " Keyword_strong Label_strong " in " Keyword_strong end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/oberon.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000004704�14445053504�012651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for oberon # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # $Id: oberon.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:31 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.2 Akim Demaille # Added Doc style Oberon is version is 1.3 requires a2ps version 4.9.7 written by "Akim Demaille <akim@freefriends.org>" documentation is "Created by N. Wirth, Oberon is the successor of the Pascal and" "Modula-2 family of programming languages. It was specifically designed" "for systems programming, and was used to create the Oberon system in" "cooperation with J. Gutknecht. A few years later, the Oberon language" "was extended with additional object-oriented features to result in the" "programming language Oberon-2." "" "Implementation of the sheet based on url(http://www.projectoberon.com/)url(The Project Oberon Site)url." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" case sensitive keywords in Keyword_strong are ARRAY, IS, TO, BEGIN, LOOP, TYPE, CASE, MOD, UNTIL, CONST, MODULE, VAR, DIV, NIL, WHILE, DO, OF, WITH, ELSE, OR, ELSIF, POINTER, END, PROCEDURE, EXIT, RECORD, IF, REPEAT, IMPORT, RETURN, IN, THEN end keywords keywords in Keyword are ABS, LEN, ASH, LONG, BOOLEAN, LONGINT, BYTE, LONGREAL, CAP, MAX, CHAR, MIN, CHR, NEW, DEC, ODD, ENTIER, ORD, EXCL, REAL, FALSE, SET, HALT, SHORT, INC, SHORTINT, INCL, SIZE, INTEGER, TRUE end keywords optional keywords are IN \in, NOT \not, AND \wedge, OR \vee end keywords optional operators are -> \rightarrow, <= \leq, >= \geq, :=, "#" \neq, = \equiv end operators sequences are "(*" Plain Comment "*)" Plain, C-string, C-char end sequences end style ������������������������������������������������������������a2ps-4.15.5/sheets/objc.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000003367�14445053504�012306� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Objective C # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # $Id: objc.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:31 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.0 Paul Shum <pshum@ali.bc.ca> # Created ## 1.1 Akim Demaille <akim@freefriends.org> # Made it inherit from c.ssh style "Objective C" is written by "Paul Shum <pshum@ali.bc.ca>" version is 1.2 requires a2ps version 4.9.7 first alphabet is "@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" case sensitive ancestors are c end ancestors keywords in Keyword are id end keywords keywords in Keyword_strong are @interface, @end, @implementation, @protocol, @class, @public, @protected, @private, "in", out, inout, bycopy, oneway, self, _cmd, super, @selector, @encode, @defs end keywords sequences are /^\\+/ Keyword_strong Keyword_strong /[{;]/ Plain, /^-/ Keyword_strong Keyword_strong /[{;]/ Plain end sequences end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/ocaml.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000004023�14445053504�012452� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for OCaml # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # Copyright (c) 1999 Markus Mottl # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style OCaml is version is 1.0 written by "Markus Mottl" documentation is "This style should also suit other versions of ML (caml light, SML etc.)." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_!" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_\'!" case sensitive keywords in Keyword_strong are and, as, asr, assert, begin, class, constraint, do, done, downto, else, "end", exception, external, false, for, fun, function, functor, if, "in", include, inherit, initializer, land, lazy, let, lor, lsl, lxor, match, method, module, mod, mutable, new, not, object, of, open, or, parser, private, raise, rec, sig, struct, then, to, true, try, type, val, value, virtual, when, while, with end keywords keywords in Keyword are array, bool, char, exn, float, format, int, list, option, string, unit end keywords optional keywords are not \not, or \vee end keywords optional operators are && \wedge, & \wedge, || \vee, <> \neq, -> \rightarrow, <- \leftarrow, <= \leq, >= \geq end operators sequences are "(*" Comment Comment "*)" Comment, C-string end sequences end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/octave.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000001512�14445053504�012640� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������style "Octave" is written by "C.P. Earls <cpearls@mit.edu>" version is 1.0 requires a2ps 4.9.5 first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword_strong are all_va_args, endwhile, break, for, "case", function, catch, global, continue, gplot, else, gsplot, elseif, if, "end", otherwise, end_try_catch, return, end_unwind_protect, switch, endfor, try, endfunction, unwind_protect, endif, unwind_protect_cleanup, endswitch, while end keywords optional keywords are not \not, and \wedge, or \vee end keywords optional operators are <> \neq, != \neq, <= \leq, >= \geq, == \equiv end operators sequences are "#" Comment, C-string end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/oracle.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000010007�14445053504�012623� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Last changed: Mon Aug 18 1997 Christian Mondrup (reccmo@sc03.sctp.dk) # # Last edited: # # Mon Aug 18 1997 Christian Mondrup (reccmo@sc03.sctp.dk) # Added "rem" as comment. Changed case to insensitive. # Added keywords "define", "spool", "btitle", "ttitle" style "Oracle SQL-PL/SQL-SQL*Plus" is written by "Pierre Mareschal <pmaresch@be.oracle.com>" version is 1.0 documentation is "18-MAR-97 " "For comments, support for -- /*..*/ and //." "This style is to be checked." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case insensitive keywords in Keyword_strong are abort, accept, access, add, admin, after, all, allocate, alter, analyze, and, any, archive, archivelog, array, arraylen, as, asc, assert, assign, at, audit, authorization, avg, backup, base_table, become, before, begin, between, binary_integer, block, body, boolean, btitle, "by", cache, cancel, cascade, "case", change, char, char_base, character, check, checkpoint, close, cluster, clusters, cobol, colauth, column, columns, "comment", commit, compile, compress, connect, constant, constraint, constraints, contents, continue, controlfile, count, crash, create, current, currval, cursor, cycle, data_base, database, datafile, date, dba, debugoff, debugon, dec, decimal, declare, default, define, definition, delay, delete, delta, desc, digits, disable, dismount, dispose, distinct, do, double, drop, dump, each, else, elsif, enable, "end", entry, escape, events, except, exception, exception_init, "exceptions", exclusive, exec, execute, exists, exit, explain, extent, externally, false, fetch, file, float, flush, for, force, foreign, form, fortran, found, freelist, freelists, from, function, generic, go, goto, grant, group, groups, having, identified, if, immediate, "in", including, increment, index, indexes, indicator, initial, initrans, insert, instance, int, integer, interface, intersect, into, "is", key, language, layer, level, like, limited, link, lists, lock, logfile, long, loop, manage, manual, max, maxdatafiles, maxextents, maxinstances, maxlogfiles, maxloghistory, maxlogmembers, maxtrans, maxvalue, min, minextents, minus, minvalue, mlslabel, mod, mode, modify, module, mount, natural, naturaln, new, next, nextval, noarchivelog, noaudit, nocache, nocompress, nocycle, nomaxvalue, nominvalue, none, noorder, noresetlogs, normal, nosort, not, notfound, nowait, null, number, number_base, numeric, of, off, offline, old, on, online, only, open, optimal, option, or, order, others, out, own, package, parallel, partition, pctfree, pctincrease, pctused, plan, pli, pls_integer, positive, positiven, pragma, precision, primary, prior, private, privileges, procedure, profile, public, quota, raise, range, raw, read, real, record, recover, ref, references, referencing, release, remr, rename, resetlogs, resource, restricted, return, reuse, reverse, revoke, role, roles, rollback, row, rowid, rowlabel, rownum, rows, rowtype, run, savepoint, schema, scn, section, segment, select, separate, sequence, session, set, share, shared, size, smallint, snapshot, some, sort, space, spool, sql, sqlbuf, sqlcode, sqlerrm, sqlerror, sqlstate, start, statement, statement_id, statistics, stddev, stop, storage, subtype, successful, sum, switch, synonym, sysdate, system, tabauth, table, tables, tablespace, task, temporary, terminate, then, thread, time, to, tracing, transaction, trigger, triggers, true, truncate, ttitle, type, uid, under, union, unique, unlimited, until, update, use, user, using, validate, values, varchar, varchar2, variance, view, views, when, whenever, where, while, with, work, write, xor end keywords sequences are "/*+" Comment_strong Comment_strong "*/" Comment_strong, -- Comment, rem Comment, "/*" Comment Comment "*/" Comment, "//" Comment, C-string, C-char end sequences end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/pascal.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000005575�14445053504�012637� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Pascal # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: pascal.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:31 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.8 Akim Demaille <akim@freefriends.org> # Added `destructor' (reported by Daniel.Meier@ascom.ch) ## 1.7 Akim Demaille <akim@freefriends.org> # Highlights functions and procedures. # Removed write and so one. # Fixed strings. style Pascal is written by "Akim Demaille <akim@freefriends.org>" version is 1.9 requires a2ps version 4.12a documentation is "The standard Pascal is covered by this style." "But some extension have been added too, hence modern Pascal programs" "should be correctly handled." "Heavy highlighting maps mathematical symbols to their typographic" "equivalents." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" keywords in Keyword_strong are and, array, begin, constructor, const, dec, destructor, downto, do, else, "end", exit, false, file, forward, for, goto, halt, if, inc, "in", label, new, nil, not, object, of, or, packed, record, repeat, set, shl, shr, then, to, true, type, until, uses, var, while, with, xor end keywords keywords in Keyword are abs, boolean, byte, div, integer, length, mod, odd, pointer, real, registers, string, text, trunc, word end keywords keywords in Label are interface end keywords optional keywords are "in" \in, not \not, and \wedge, or \vee end keywords optional operators are -> \rightarrow, <= \leq, >= \geq, :=, <> \neq, = \equiv end operators # Highlighting the functions and procedures operators are (/(procedure|function)([[:blank:]]+)([^ \t(;]+)/ \1 Keyword_strong, \2 Plain, \3 Label), (/(unit|interface|implementation|program)([[:blank:]]+)([^ \t(;]+)/ \1 Keyword_strong, \2 Plain, \3 Label_strong) end operators sequences are "(*" Comment_strong "*)", { Comment }, # Pascal strings are not exactly C-char, since 'Foo''bar' # represents "Foo'bar" "\'" Plain String "\'" Plain exceptions are "\'\'" end exceptions end sequences end style �����������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/perl.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000015020�14445053504�012320� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# perl.ssh --- Sheet definitions for Perl files # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-2000 Akim Demaille, Miguel Santana, Denis Girou # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. ## TODO # Finer grained sub, require etc. handling (regexps?) # Make the difference between a proto and a def # Generic s/// handling? style Perl is written by "Denis Girou <Denis.Girou@idris.fr>" version is 2.11 requires a2ps version 4.13 documentation is "As most interpreted languages, Perl is very free on its syntax, what" "leads to significant problems for a pretty printer. Please, be kind" "with our try. Any improvement is most welcome." end documentation first alphabet is "$@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword_strong are if, BEGIN, CORE, END, __FILE__, __LINE__, abs, accept, alarm, and, atan, atan2, bind, binmode, bless, caller, chdir, chmod, chop, chown, chr, chroot, close, closedir, cmp, connect, continue, cos, crypt, dbmclose, dbmopen, defined, delete, die, do, dump, each, else, elsif, endgrent, endhostent, endnetent, endprotoent, endpwent, endservent, eof, eq, eval, exec, exit, exp, fcntl, fileno, flock, for, foreach, fork, formline, ge, getc, getgrent, getgrgid, getgrnam, gethostbyaddr, gethostbyname, gethostent, getlogin, getnetbyaddr, getnetbyname, getnetent, getpeername, getpgrp, getppid, getpriority, getprotobyname, getprotobynumber, getprotoent, getpwent, getpwnam, getpwuid, getservbyname, getservbyport, getservent, getsockname, getsockopt, glob, gmtime, goto, grep, gt, hex, index, int, ioctl, join, keys, kill, last, lc, lcfirst, le, length, link, listen, local, localtime, log, lstat, lt, mkdir, msgctl, msgget, msgrcv, msgsnd, my, ne, next, not, oct, open, opendir, or, ord, pack, package, pipe, pop, print, printf, push, q, qq, quotemeta, qw, rand, read, readdir, readline, readlink, readpipe, recv, redo, ref, rename, require, reset, return, reverse, rewinddir, rindex, rmdir, seek, seekdir, select, semctl, semget, semop, send, setgrent, sethostent, setnetent, setpgrp, setpriority, setprotoent, setpwent, setservent, setsockopt, shift, shmctl, shmget, shmread, shmwrite, shutdown, sin, sleep, socket, socketpair, sort, split, sprintf, sqrt, srand, stat, study, sub, substr, symlink, syscall, sysread, system, syswrite, tell, telldir, time, times, truncate, uc, ucfirst, umask, undef, unless, unlink, unpack, unshift, until, use, utime, values, vec, wait, waitpid, wantarray, warn, while, write, x, xor end keywords # Since regex cannot be spread upon several lines, they are # handled thanks to operators, not sequences. operators are # I'd be damned. $' is not starting a string :( "$'" Plain, # and $# does not start a comment. "$#" Plain, # There can be quoted characters in the test. /\\\\./ Plain, # Functions calls /(&[[:alnum:]_]+)/ Label, # Regular expressions: chars not (`/' and '\') or `\.' between `/'. /\/([^\\\/]|\\\\.)*\// Plain, # Matching: # One regexp with a single char as delimiter (/(m)/ # 1. The command: `m' /([[:punct:]])/ # 2. The delimiter /(/ # 3. The regexp /(.|\\\\.)*/ /)/ /\\2/ # Closer \1 Keyword_strong, \2 Plain, \3 Plain, \2 Plain), # Substitution and transliteration: # two regexps with a single char as delimiter (/(s|tr)/ # 1. The command: `tr' or `s' /(([[:punct:]])/ # 2. The delimiter /(/ # 3. The *two* regexps /(.|\\\\.)*/ # First regexp /\\3/ # Separator /(.|\\\\.)*/ # Second Regexp /)/ # /\\3)/ # Closer \1 Keyword_strong, \2 Plain), # Substitution and transliteration: # two regexps with ()() as delimiter (/(s|tr)/ # The command: `tr' or `s' /(\\(/ # The delimiter /([^)]|\\\\.)*/ # First part /\\)[^(]*\\(/ # The separation /([^)]|\\\\.)*/ # Second part /\\))/ # Closer \1 Keyword_strong, \2 Plain), # Substitution and transliteration: # two regexps with {}{} as delimiter (/(s|tr)/ # The command: `tr' or `s' /(\\{/ # The delimiter /([^}]|\\\\.)*/ # First part /\\}[^{]*\\{/ # The separation /([^}]|\\\\.)*/ # Second part /\\})/ # Closer \1 Keyword_strong, \2 Plain), # Substitution and transliteration: # two regexps with [][] as delimiter (/(s|tr)/ # The command: `tr' or `s' /(\\[/ # The delimiter /([^]]|\\\\.)*/ # First part /\\][^[]*\\[/ # The separation /([^]]|\\\\.)*/ # Second part /\\])/ # Closer \1 Keyword_strong, \2 Plain) end operators sequences are # Strings C-string, "'" Plain String "'" Plain exceptions are /\\\\./ end exceptions, "`" Plain String "`" Plain exceptions are /\\\\./ end exceptions, # A few << Constructs seen in html2ps and help2man "<<EOC" Plain /^EOC/, "<<EOD" Plain /^EOD/, "<<EOT" Plain /^EOT/, "<<'EOR'" Plain /^EOR/, # Comments "#" Comment, /^=/ Comment_strong /^=cut/, # Some declarations (/(sub|require|use)/ # \1. the keyword /([[:blank:]]+)/ # \2. blanks \1 Keyword_strong, \2 Plain) (Label_strong + Index1) closers are /$/ Plain, /[ ;{]/ Plain end closers end sequences # Trying to support Some regexp from here sequences are # Regular expressions: m{}, m(), and m[] ("m(" "m" Keyword_strong, "(") Plain ")" exceptions are /\\\\./ end exceptions, ("m{" "m" Keyword_strong, "{") Plain "}" exceptions are /\\\\./ end exceptions, ("m[" "m" Keyword_strong, "[") Plain "]" exceptions are /\\\\./ end exceptions end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/php.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000005530�14445053504�012152� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for PHP # Copyright (c) 2000 Hartmut Holzgraefe # $Id: php.ssh,v 1.1.2.2 2007/12/29 01:58:31 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style PHP is requires a2ps 4.12 written by "Hartmut Holzgraefe <hartmut@six.de>" version is 0.1 documentation is "This is a a2ps stylesheet for PHP syntax highlighting " "(just the PHP part, HTML is left 'as is'). " "This is my first try on a2ps stylesheets. " "It works OK for me. If it doesn't come up to " "your expectatios, then please tell me." end documentation first alphabet is "abcdefghijklmnopqrstuvwxyz_" second alphabet is "0123456789abcdefghijklmnopqrstuvwxyz_" case insensitive keywords in Keyword are class, extends, include, require, new end keywords keywords in Keyword_strong are true, false, return, continue, for, switch, do "case", default, break, if, while, else, elseif, endif, endfor, endwhile, endswitch, print, echo end keywords optional operators are -> \rightarrow, && \wedge, || \vee, != \neq, == \equiv, # We need to protect these, so that <= is not replaced in <<= <= \leq, >= \geq, ! \not end operators # Function declaration operators in Plain are # variables /\\$[a-z_][a-z_0-9]*/ Label_strong, # Functions calls /\\(&[[:alnum:]_]+\\)/ Label_strong, # Function defs. (/^\\([ \t]*\\)\\(function\\)\\([ \t]*\\)\\([a-z_][a-z_0-9]*\\)\\([ \t]*\\)/ \1 Plain , \2 Label_strong , \3 Plain , \4 Label_strong , \5 Plain , "(" Plain) end operators operators in Keyword_strong are "<?", "<?php", "<?=", "?>", "<%", "%>", (/<\\([^>]*\\)>/ "<", \1, ">") end operators sequences are "/*" Comment "*/", "//" Comment, "#" Comment, "<!--" Comment "-->", C-string, C-char, "case " Keyword_strong Label : Plain exceptions are "':'" end exceptions, # Tags with arguments (E.g., <a>, <img>, <table>...) (/<\\([[:alpha:]]+\\) / "<" Keyword_strong, \1 Keyword_strong, " " Plain) Keyword ">" Keyword_strong # Exceptions are double-quoted strings inside tags exceptions are (/"\\(\\([^"]\\|\\\\.\\)*\\)"/ "\"" Plain, \1 String, "\"" Plain) end exceptions end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/pic16f84.ssh���������������������������������������������������������������������0000644�0000000�0000000�00000005120�14445053504�012622� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for PIC16F84 ASM # Copyright (c) 2001, Aleksandar Veselinovic # $Id: pic16f84.ssh,v 1.1.2.2 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style pic16f84 is requires a2ps 4.10 written by "Aleksandar Veselinovic <alexa@galeb.etf.bg.ac.yu>" version is 1.0 documentation is "This style highlights PIC16F84 ASM code." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" case insensitive # PIC - Register keywords in Plain are indf, tmr0, pcl, status, fsr, porta, portb, eedata, eeadr, pclath, intcon, indf, option_reg, pcl, fsr, trisa, trisb, eecon1, eecon2, intcon, option end keywords # PIC - Register Bits keywords in Plain are gie, eeie, t0ie, inte, rbie, t0if, intf, rbif, rbpu, intedg, t0cs, t0se, psa, ps2, ps1, ps0, eeif, wrerr, wren, wr, rd, gie, eeie, t0ie, inte, rbie, t0if, intf, rbif, int, t0cki, irp, rp1, rp0, to, pd, z, dc, c, /rb[01234567]/, /ra[01234]/ end keywords # PIC - Opcode keywords in Keyword are addwf, andwf, clrf, clrw, comf, decf, decfsz, incf, incfsz, iorwf, movf, movwf, nop, rlf, rrf, subwf, swapf, xorwf, bcf, bsf, btfsc, btfss, addlw, andlw, call, clrwdt, goto, iorlw, movlw, retfie, retlw, return, sleep, sublw, xorlw, goto end keywords # PIC - Directive keywords in Keyword_strong are __badram, bankisel, banksel, cblock, code, __config, constant, data, db, de, dt, dw, else, "end", endc, /endif/, endm, endw, equ, error, errorlevel, exitm, expand, extern, fill, global, idata, __idlocs, if, ifdef, ifndef, include, list, local, macro, __maxram, messg, noexpand, nolist, org, page, pagesel, processor, radix, res, set, space, subtitle, title, udata, udata_ovr, udata_shr, variable, while, include, /^#[ ]*include/, /^#[ ]*\\(un\\)*define/, define, undefine end keywords sequences are ";" Comment, /^;/ Comment_strong end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/plsql.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000005102�14445053504�012511� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Last changed: Mon Aug 18 1997 Christian Mondrup (reccmo@sc03.sctp.dk) # # Last edited: # # Mon Aug 18 1997 Christian Mondrup (reccmo@sc03.sctp.dk) # Added "rem" as comment. Changed case to insensitive. style "Oracle PL/SQL" is written by "Pierre Mareschal <pmaresch@be.oracle.com>" version is 1.0 documentation is "This style is to be checked." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case insensitive keywords in Keyword_strong are abort, accept, access, add, all, alter, and, any, array, arraylen, as, asc, assert, assign, at, audit, authorization, avg, base_table, begin, between, binary_integer, body, boolean, "by" , "case", char, char_base, check, close, cluster, clusters, colauth, column, "comment", commit, compress, connect, constant, crash, create, current, currval, cursor, data_base, database, date, dba, debugoff, debugon, decimal, declare, default, definition, delay, delete, delta, desc, digits, dispose, distinct, do, drop, else, elsif, "end", entry, exception, exception_init, exclusive, exists, exit, false, fetch, file, float, for, form, from, function, generic, goto, grant, group, having, identified, if, immediate, "in", increment, index, indexes, indicator, initial, insert, integer, interface, intersect, into, "is", level, like, limited, lock, long, loop, max, maxextents, min, minus, mlslabel, mod, mode, modify, natural, naturaln, new, nextval, noaudit, nocompress, not, nowait, null, number, number_base, of, offline, on, online, open, option, or, order, others, out, package, partition, pctfree, pls_integer, positive, positiven, pragma, prior, private, privileges, procedure, public, raise, range, raw, real, record, ref, release, remr, rename, resource, return, reverse, revoke, rollback, row, rowid, rowlabel, rownum, rows, rowtype, run, savepoint, schema, select, separate, session, set, share, size, smallint, space, sql, sqlcode, sqlerrm, start, statement, stddev, subtype, successful, sum, synonym, sysdate, tabauth, table, tables, task, terminate, then, to, trigger, true, type, uid, union, unique, update, use, user, validate, values, varchar, varchar2, variance, view, views, when, whenever, where, while, with, work, write, xor end keywords sequences are "/*+" Comment_strong Comment_strong "*/" Comment_strong, -- Comment, rem Comment, "/*" Comment Comment "*/" Comment, "//" Comment, C-string, C-char end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/pov.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000011560�14445053504�012167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Pov-Ray # Copyright (c) 2000 Jean-Baptiste Nivoit # Inspired by c.ssh & cpp.ssh # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Pov-Ray" is written by "Jean-Baptiste Nivoit <jbnivoit@multimania.com>" version is 1.0 requires a2ps version 4.12l documentation is "Should handle Persistence Of Vision input files." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#%" case sensitive # Looks a lot like C preprocessor keywords... keywords in Keyword are /^#[ ]*(declare|debug|version|e(l(if|se)|nd)|i(f(|def|ndef)|nclude)|undef)/ end keywords # tokens taken from source/tokenize.c in povray3 source keywords in Keyword_strong are aa_level, aa_threshold, abs, acos, acsh, adaptive, adc_bailout, agate, agate_turb, all, alpha, ambient_light, ambient, angle, aperture, arc_angle, area_light, asc, asin, asinh, assumed_gamma, atan, atan2, atanh, atmosphere, atmospheric_attenuation, attenuating, average, background, bicubic_patch, black_hole, blob, blue, blur_samples, bounded_by, box_mapping, box, bozo, break, brick_size, brick, brightness, brilliance, bumps, bump_map, bump_size, camera, "case", caustics, ceil, checker, chr, clipped_by, clock, colour, color_map, color, component, composite, concat, cone, confidence, conic_sweep, constant, cos, cosh, count, crackle, crand, cube, cubic_spline, cubic, cylinder, cylindrical_mapping, default, degrees, dents, difference, diffuse, direction, disc, distance_maximum, distance, div, dust, dust_type, else, emitting, error_bound, error, eccentricity, exponent, exp, fade_distance, fade_power, falloff_angle, falloff, false, file_exists, shadowless, filter, finish, fisheye, flatness, flip, float, floor, focal_point, fog_alt, fog, fog_offset, fog_type, frequency, gif, global_settings, glowing, gradient, granite, gray_threshold, green, halo, height_field, hexagon, hf_gray_16, hierarchy, hollow, hypercomplex, iff, image_map, incidence, interpolate, intersection, int, inverse, ior, irid, irid_wavelength, jitter, julia_fractal, lambda, lathe, leopard, light_source, linear_spline, linear_sweep, linear, location, log, looks_like, look_at, low_error_factor, mandel, map_type, marble, material_map, matrix, max_intersections, max_iteration, max, max_trace_level, max_value, merge, mesh, metallic, minimum_reuse, min, mod, mortar, nearest_count, normal_map, no_shadow, no, number_of_waves, object, octaves, offset, off, omega, omnimax, once, onion, on, open, orthographic, panoramic, perspective, pgm, phase, phong_size, phong, pigment_map, pigment, pi, planar_mapping, plane, png, point_at, polygon, poly, pot, pow, ppm, precision, prism, pwr, quadratic_spline, quadric, quartic, quaternion, quick_color, quick_colour, quilted, radial, radians, radiosity, radius, rainbow, ramp_wave, rand, range, reciprocal, recursion_limit, red, reflection, refraction, render, repeat, rgbft, rgbf, rgbt, rgb, right, ripples, rotate, roughness, samples, scale, scallop_wave, scattering, seed, sine_wave, sin, sinh, sky_sphere, sky, slice, slope_map, smooth, smooth_triangle, sor, specular, sphere, spherical_mapping, spiral, spotlight, spotted, sqr, sqrt, statistics, strcmp, strength, string, strlen, strlwr, strupr, str, sturm, substr, superellipsoid, switch, sys, t, tan, tanh, texture_map, texture, text, tga, thickness, threshold, tightness, tiles, normal, torus, track, transform, translate, transmit, triangle, triangle_wave, true, ttf, turbulence, turb_depth, type, ultra_wide_angle, union, up, use_color, use_colour, use_index, u_steps, u, val, variance, vaxis_rotate, vcross, vdot, vector, vlength, vnormalize, volume_object, volume_rendered, vol_with_light, vrotate, v_steps, v, warning, warp, water_level, waves, while, width, wood, wrinkles, x, yes, y, z end keywords optional operators are "&", "@", "`", # \\, "|", ":", "-", "$", "=", "^", "<", "(", "[", "%", ".", "+", "?", ">=", "<=", "!=", ">", "}", ")", ";", "'", "]", "*", "/", "~", ! \not end operators sequences are "/*" Comment "*/", "//" Comment, C-string end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/ppd.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000004113�14445053504�012142� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for PostScript Printer Description files # Copyright (c) 1998-99 Akim Demaille, Miguel Santana # # $Id: ppd.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "PostScript Printer Description" is requires a2ps 4.12a written by "Akim Demaille <akim@freefriends.org>" version is 1.0 documentation is "Support for Adobe's PPD files." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_\\-" case sensitive operators are # Printer ModelName (/^\\*ModelName(:[ \t]*")([^"]+)"/ * Plain, ModelName Keyword_strong, \1 Plain, \2 (Tag1 + String), "\"" Plain), # UI section (/^\\*OpenUI([ \t]+\\*)([^:]+)(:[ \t]+)(.+)/ * Plain, OpenUi Keyword_strong, \1 Plain, \2 Label, \3 Keyword), (/^\\*CloseUI(:[ \t]*\\*)(.+)/ * Plain, CloseUI Keyword_strong, \1 Plain, \2 Label), # Some definitions (/^\\*([^ :]+)([\t ]+)([^:]+):/ * Plain, \1 Keyword_strong, \2 Plain, \3 Label, : Plain), (/^\\*([^ :]+):/ * Plain, \1 Keyword_strong, : Plain), # I think *End is the last one (/^\\*([^ :]+)/ * Plain, \1 Keyword_strong), /^\\*%.*/ Comment end operators sequences are # Strings are exactly the C-strings, though we don't want to # have them in the "string" face # "\"" Plain Plain "\"" Plain # exceptions are # "\\\\", "\\\"" # end exceptions C-string end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/pre.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000004711�14445053504�012151� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for PreScript # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: pre.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.3 Akim Demaille # Added \error, and \symbol. ## 2.0 Akim Demaille # Removed any TeX like commands. Use TeXScript to have both. style PreScript is written by "Akim Demaille <akim@freefriends.org>" version is 2.0 requires a2ps version 4.9.10 ancestors are symbols end ancestors documentation is "This style defines commands in the canonic syntax of a2ps." "It is meant to be used either as an input language, and to " "highlight the table of contents etc." "" "It can be a good choice of destination language for people who" "want to produce text to print (e.g. pretty-printing, automated" "documentation etc.) but who definitely do not want to learn" "PostScript, nor to require the use of LaTeX." end documentation operators are # Comments /%.*\n/ Invisible end operators sequences are # Dynamic encoding switching "\\encoding{" Invisible (Invisible + Encoding) } Invisible, # Special tags "\\header{" Invisible (Invisible + Tag1) "}\n" Invisible, "\\footer{" Invisible (Invisible + Tag2) "}\n" Invisible, # Ssh likes "\\keyword{" Invisible Keyword } Invisible, "\\Keyword{" Invisible Keyword_strong } Invisible, "\\comment{" Invisible Comment } Invisible, "\\Comment{" Invisible Comment_strong } Invisible, "\\label{" Invisible Label } Invisible, "\\Label{" Invisible Label_strong } Invisible, "\\string{" Invisible String } Invisible, "\\symbol{" Invisible Symbol } Invisible, "\\error{" Invisible Error } Invisible end sequences end style # PreScript �������������������������������������������������������a2ps-4.15.5/sheets/pretex.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000006327�14445053504�012677� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for PreTeX # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: pretex.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style PreTeX is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 requires a2ps version 4.9.7 ancestors are symbols end ancestors documentation is "This style sheets provides LaTeX-like commands to format text." "It is an alternative to the PreScript style sheet, in which formating" "commands are specified in a more a2ps related syntax." "" "It provides by the use of LaTeX like commands, a way to describe the " "pages that this program should produce." end documentation # Some LaTeX commands we don't want to see keywords are "\\begin{document}" Invisible, "\\end{document}" Invisible, "\\begin{itemize}" Invisible, "\\end{itemize}" Invisible, "\\begin{enumerate}" Invisible, "\\end{enumerate}" Invisible, "\\begin{description}" Invisible, "\\end{description}" Invisible end keywords # Some LaTeX escapes operators are "\\$" $, "\\_" _, "\\%" %, "\\&" &, "\\#" "#", "\\(" "(", "\\)" ")", "\\[" [, "\\]" ], "\\{" {, "\\|" |, "\\}" }, $ Invisible end operators sequences are "\\encoding{" Invisible (Invisible + Encoding) } Invisible, # Here we hard code `$' as `\n', because the character # `\n' will receive a special treatment (Invisible). # Remember that `$' matches the null string anchored at the # end-of-line: it does not match the end-of-line character. % Invisible "\n", "\\item[" Invisible Label ] Invisible, "\\section{" Invisible Label_strong } Invisible, "\\subsection{" Invisible Label } Invisible, "\\subsubsection{" Invisible Label } Invisible, # LaTeX likes "\\textbf{" Invisible Keyword_strong } Invisible, "\\textit{" Invisible Keyword } Invisible, "\\textbi{" Invisible Keyword_strong } Invisible, "\\textrm{" Invisible String } Invisible, "\\textsy{" Invisible Symbol } Invisible, "\\texttt{" Invisible Plain } Invisible, # Special tags "\\header{" Invisible (Invisible + Tag1) "}\n" Invisible, "\\footer{" Invisible (Invisible + Tag2) "}\n" Invisible, # Quotings "\\verb+" Invisible Plain "+" Invisible, "\\verb!" Invisible Plain ! Invisible, "\\verb|" Invisible Plain | Invisible, "\\verb#" Invisible Plain "#" Invisible, "\\verb=" Invisible Plain = Invisible end sequences end style # PreTeX ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/prolog.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000003623�14445053504�012666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for prolog # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: prolog.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Prolog is written by "Akim Demaille <akim@freefriends.org>" version is 1.1 documentation is "Help is needed on this sheet." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" keywords in Keyword_strong are abort, "ancestors", arg, ascii, ask, asserta, assertz, assert, atomic, atom, char, clause, close, concat, consult, ed, ef, em, eof, fail, file, findall, functor, getc, integer, "is", length, listing, load, mod, name, nl, nonvar, not, numbervars, op, or, pp, print, prin, private, prompt, putc, ratom, read_from_this_file, read, rename, repeat, retractall, retract, save, seeing, seen, see, sh, skip, statistics, subgoal_of, system, tab, telling, tell, time, told, trace, true, unload, untrace, var, write end keywords sequences are % Comment, "/*" Comment "*/", C-string, C-char end sequences end style �������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/promela.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000003735�14445053504�013027� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Promela # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: promela.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Promela is written by "Akim Demaille <akim@freefriends.org>" version is 1.5 documentation is "There is no way for this program to highlight send and receive primitives." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" keywords in Keyword are bit, bool, byte, chan end keywords keywords in Keyword_strong are active, assert, atomic, break, d_step, progress, do, else, empty, enabled, fi, full, goto, hidden, if, init, int, len, accept, mtype, nempty, never, nfull, od, of, pc_value, printf, proctype, run, short, skip, timeout, typedef, unless, xr, xs, priority, "#define", "#if", "#endif" end keywords optional operators are -> \rightarrow, && \wedge, || \vee, != \neq, == \equiv, <= \leq, >= \geq end operators sequences are "/*" Comment Comment "*/" Comment, "//" Comment, C-string, C-char, "case " Keyword_strong Label : Plain end sequences end style �����������������������������������a2ps-4.15.5/sheets/ps.ssh���������������������������������������������������������������������������0000644�0000000�0000000�00000004520�14445053504�012003� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for PostScript # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # $Id: ps.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.3 Akim Demaille # Define Comment_strong after comments. style PostScript is written by "Akim Demaille <akim@freefriends.org>" requires a2ps version 4.12a version is 1.4 documentation is "Only some keywords are highlighted, because otherwise listings are quickly" "becoming a big bold spot." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_\\-" case sensitive keywords in Keyword_strong are add, arc, array, begin, bind, clip, charpath, closepath, copy, currentdict, currentfont, curveto, def, definefont, dict, div, dup, "end", eq, exch, fill, for, forall, findfont, get, ge, grestore, gsave, gt, if, ifelse, index, known, length, le, lineto, lt, moveto, mul, neg, newpath, pop, put, restore, rlineto, rmoveto, roll, rotate, save, scale, scalefont, setcachedevice, setfont, setgray, setlinewidth, show, showpage, stringwidth, stroke, sub, translate, where, xor end keywords operators in Label_strong are # We make the bet that '\name {' is a function declaration (/^(\/[-a-z_A-Z]*)([ \t]*\\{)/ \1, \2 Plain) end operators keywords in Keyword are true, false end keywords optional keywords are le \leq, ge \geq, eq \equiv, ne \neq end keywords sequences are % Comment, "(" Plain String ")" Plain exceptions are "\\\\", "\\(", "\\)" end exceptions, %! Comment_strong, %% Comment_strong end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/python.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000005641�14445053504�012707� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for python # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: python.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille # Fixed the ''' strings ''' (Reported by Lorenzo M. Catucci) ## 1.2 Akim Demaille # Documentation style Python is written by "Akim Demaille <akim@freefriends.org>" version is 1.2 requires a2ps version 4.9.5 documentation is "Python is an easy to learn, powerful programming language. It has" "efficient high-level data structures and a simple but effective" "approach to object-oriented programming. Python's elegant syntax and" "dynamic typing, together with its interpreted nature, make it an ideal" "language for scripting and rapid application development in many areas" "on most platforms." "" "The Python interpreter and the extensive standard library are freely" "available in source or binary form for all major platforms from the" "url(https://www.python.org)url(Python web site)url, and can be freely distributed." "" "The same site also contains distributions of and pointers to many free" "third party Python modules, programs and tools, and additional" "documentation." "" "The Python interpreter is easily extended with new functions and data" "types implemented in C or C++ (or other languages callable from" "C). Python is also suitable as an extension language for customizable" "applications." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword_strong are and, elif, from, lambda, return, break, else, global, not, try, class, except, if, or, while, continue, exec, import, pass, def, finally, "in", print, del, "is", raise, for end keywords optional keywords are not \not, and \wedge, or \vee end keywords optional operators are <> \neq, != \neq, <= \leq, >= \geq, == \equiv end operators sequences are "#" Comment, "\"\"\"" Plain String "\"\"\"" Plain, "'''" Plain String "'''" Plain, C-string, C-char end sequences end style �����������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/rd.ssh���������������������������������������������������������������������������0000644�0000000�0000000�00000004146�14445053504�011772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# $Id: rd.ssh,v 1.1.2.2 2007/12/29 01:58:32 mhatta Exp $ # Style sheet for the GNU R documentation style (.Rd file) # GNU R (www.r-project.org) is an implementation of S, a language # for statistical computing and graphics. # # A suitable sheets.map entry would be # GNU R documentation files # rd: /*.[Rr]d/ # # Copyright (c) 2000, 2001 Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Rd -- Documentation for GNU R" is written by "Torsten Hothorn <Torsten.Hothorn@rzmail.uni-erlangen.de>, Kurt Hornik <hornik@ci.tuwien.ac.at>, Dirk Eddelbuettel <edd@debian.org>" version is 0.2 requires a2ps 4.9.5 documentation is "R is a system for statistical computation and graphics. It consists of" "a language plus a run-time environment with graphics, a debugger, access" "to certain system functions, and the ability to run programs stored in" "script files." "" "R has a home page at `https://www.r-project.org/'. It is free software" "distributed under a GNU-style copyleft, and an official part of the GNU" "project ("GNU S")." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%=-&/" case sensitive sequences are "#" Comment, "\"" Plain String "\"" Plain, "\\" Keyword_strong "{" Plain end sequences operators are <- \leftarrow end operators optional sequences are < Plain Keyword > Plain end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/rexx.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000005050�14445053504�012346� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for REXX # # Copyright (c) 1999, Alexander Mai # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "REXX" is requires a2ps version 4.10.4 written by "Alexander Mai <st002279@hrzpub.tu-darmstadt.de>" version is 0.22 documentation is "This style sheet supports REXX." "You can get information about REXX from the url(https://www.rexxla.org)url(REXX Language Association)url." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_." case insensitive # REXX-Keywords keywords in Keyword_strong are address, arg, call, do, drop, else, "end", exit, expose, goto, if, interpret, leave, nop, numeric, on, options, otherwise, parse, pull, push, queue, return, say, select, signal, source, then, trace, until, var, value, when, while end keywords # REXX-builtin functions keywords in Keyword are abbrev, abs, beep, bitand, bitor, bitxor, b2x, center, centre, charin, charout, chars, compare, condition, copies, c2d, c2x, datatype, date, delstr, delword, d2c, d2x, directory, errortext, endlocal, filespec, forever, form, format, fuzz, insert, lastpos, left, length, linein, lineout, lines max, min, overlay, pos, queued, random, reverse, right, setlocal, sign, sourceline, space, stream, strip, substr, subword, symbol, time, translate, trunc, value, verify, word, wordindex, wordlength, wordpos, words, xrange, x2b, x2c, x2d end keywords optional operators are || \vee, <> \neq, \= \neq, \\ \not end operators sequences are "/*" Comment "*/", "\"" Plain String "\"" Plain, "'" Plain String "'" Plain, # call to subprograms "call " Keyword_strong Label closers are " " Plain, "(" Plain, /$/ Plain end closers, # procedures /^[a-z_]+: *$/ Label, "procedure " Keyword_strong (Label + Index1) end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/ruby.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000003575�14445053504�012353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for ruby style Ruby is written by "Noritsugu Nakamura <>" version is 0.0.2 first alphabet is "$@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword_strong are alias, begin, BEGIN, break, "case", defined?, do, else, elsif, "end", END, ensure, for, if, "in", loop, next, raise, redo, rescue, retry, return, super, then, undef, unless, until, when, while, yield, false, nil, true, __FILE__, __LINE__, # built-in function abort, at_exit, autoload, binding, caller, callcc, catch, chop, chop!, chomp, chomp!, eval, exec, exit, exit!, fork, gets, global_variables, gsub, gsub!, iterator?, block_given?, load, local_variables, loop, open, print, printf, proc, lambda, putc, puts, raise, fail, rand, readline, readlines, require, scan, select, set_trace_func, sleep, split, sprintf, format, srand, sub, sub!, syscall, system, test, throw, trace_var, trap, untrace_var, #/[^.][ ]*\\(gets\\|print\\|puts\\)/ # Module private method alias_method, append_features, attr, attr_accessor, attr_reader, attr_writer, define_method, extend_object, include, included, method_added, method_removed, method_undefined, module_function, private, protected, public, remove_class_variable, remove_const, remove_method, undef_method end keywords sequences are # Strings C-string, "'" Plain String "'" Plain exceptions are "\\'", "\\\\" end exceptions, # Comments "#" Comment, /^=begin/ Comment_strong /^=end/, # Some declarations (/\\(def\\|class\\|module\\)/ # \1. the keyword /\\([[:blank:]]+\\)/ # \2. blanks \1 Keyword_strong, \2 Plain) (Label_strong + Index1) closers are /$/ Plain, /[ ;{(]/ Plain end closers end sequences end style �����������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/s.ssh����������������������������������������������������������������������������0000644�0000000�0000000�00000004711�14445053504�011625� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for the S language -- GNU R (www.r-project.org) is an # implementation of S, a language for statistical computing and graphics. # # A suitable sheets.map entry would be # GNU R files, as well as S language files # s: /*.[RSrsq]/ /*.Rin/ # # Copyright (c) 2000 - 2002 Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "S language" is written by "Torsten Hothorn <Torsten.Hothorn@rzmail.uni-erlangen.de>, Kurt Hornik <hornik@ci.tuwien.ac.at>, Dirk Eddelbuettel <edd@debian.org>" version is 0.2 requires a2ps 4.9.5 documentation is "Should handle code for interpreters of S, a language for statistical" "computating and graphics, such as R." "" "R consists of a language plus a run-time environment with graphics, a" "debugger, access to certain system functions, and the ability to run" "programs stored in script files." "" "R has a home page at `https://www.r-project.org/'. It is free software" "distributed under a GNU-style copyleft, and an official part of the GNU" "project (`GNU S')." end documentation first alphabet is "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ." second alphabet is "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789" case sensitive sequences are "#" Comment, C-string end sequences keywords in Keyword_strong are if, else, break, while, for, function, next, return, FALSE, TRUE, "in", repeat, switch, NA, NULL, NaN, Inf, stop, warning end keywords operators are <- \leftarrow, -> \rightarrow, <<- \Leftarrow, != \neq, == \equiv, # We need to protect these, so that <= is not replaced in <<= <<=, >>=, <= \leq, >= \geq end operators optional sequences are < Plain Keyword > Plain end sequences end style �������������������������������������������������������a2ps-4.15.5/sheets/sather.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000006277�14445053504�012662� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for sather # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # $Id: sather.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:32 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille # Added doc. style Sather is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 requires a2ps version 4.9.5 documentation is "Sather is an object oriented language designed to be simple," "efficient, safe, flexible and non-proprietary. One way of placing it" "in the `space of languages' is to say that it aims to be as efficient" "as C, C++, or Fortran, as elegant as and safer than Eiffel, and" "support higher-order functions and iteration abstraction as well as" "Common Lisp, CLU or Scheme." "" "Implementation of the sheet based on the url(https://www.gnu.org/software/sather/)url(Sather home page)url." "" "Heavy highlighting uses symbols for common mathematical operators." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_!" case sensitive keywords in Keyword_strong are abstract, and, any, assert, attr, bind, break!, builtin, "case", class, clusters, clusters!, cohort, const, else, elsif, "end", exception, external, false, far, fork, guard, if, immutable, inout, include, initial, "is", ITER, lock, loop, near, new, once, or, out, par, parloop, post, pre, private, protect, quit, raise, readonly, result, return, ROUT, SAME, self, shared, sync, then, true, typecase, unlock, until!, void, when, while!, with, yield end keywords keywords in Keyword are BOOL, CHAR, STR, INT, INTI, FLT, FLTD, FLTI, F_REAL, F_DOUBLE, F_INTEGER, F_COMPLEX, F_DOUBLE_COMPLEX, F_LOGICAL, F_CHARACTER, F_REAL_ARR, F_DOUBLE_ARR, F_INTEGER_ARR, F_COMPEX_ARR, F_DOUBLE_COMPLEX_ARR, F_LOGICAL_ARR, C_CHAR, C_UNSIGNED_CHAR_PTR, C_UNSIGNED_CHAR, C_SIGNED_CHAR_PTR, C_SIGNED_CHAR, C_SHORT_PTR, C_SHORT, C_INT_PTR, C_INT, C_LONG_PTR, C_LONG, C_UNSIGNED_SHORT_PTR, C_UNSIGNED_SHORT, C_UNSIGNED_INT_PTR, C_UNSIGNED_INT, C_UNSIGNED_LONG_PTR, C_UNSIGNED_LONG, C_FLOAT_PTR, C_FLOAT, C_DOUBLE_PTR, C_DOUBLE, C_LONG_DOUBLE_PTR, C_LONG_DOUBLE, C_SIZE_T, C_PTR, C_PTRDIFF_T, C_CHAR_PTR end keywords optional keywords are and \wedge, or \vee end keywords optional operators are "/=" \neq, <= \leq, >= \geq end operators sequences are -- Comment, C-string, C-char end sequences end style ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/scheme.ssh�����������������������������������������������������������������������0000644�0000000�0000000�00000003651�14445053504�012631� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# scheme.ssh -- Style sheet for Scheme # # Copyright (c) 1998-99 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Scheme is written by "Akim Demaille <akim@freefriends.org>" version 1.2 requires a2ps version 4.9.7 documentation is "This style sheet is looking for a maintainer and/or comments." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&*+-./<=>?@_" keywords in Keyword_strong are access, define-syntax, macro, and, delay, make-environment, begin, do, named-lambda, bkpt, fluid-let, or, "case", if, quasiquote, cond, in-package, quote, cons-stream, lambda, scode-quote, declare, let, sequence, default-object?, let*, set!, define, let-syntax, the-environment, define-integrable, letrec, unassigned?, define-macro, local-declare, using-syntax, define-structure, define-public, define*-public, define*, defmacro, defmacro-public, lambda*, define-module, use-module, use-modules, define-scwm-option, use-scwm-modules end keywords keywords in Keyword are "#f", "#t" end keywords optional keywords are lambda \lambda end keywords sequences are ; Comment, "#|" Comment "|#", "#!" Comment "!#", C-string end sequences end style ���������������������������������������������������������������������������������������a2ps-4.15.5/sheets/sdl88.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000005706�14445053504�012332� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for SDL-88 # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: sdl88.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:33 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style SDL-88 is written by "Jean-Philippe Cottin <cottin@inf.enst.fr>" version is 1.0 documentation is "--strip-level=2 is very useful: it cancels the graphical information " "left by graphic editors. Only the pure specification is then printed." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" keywords in Keyword_strong are active, adding, all, alternative, any, as, atleast, axioms, block, call, channel, "comment", connect, connection, constant, constants, create, dcl, decision, default, else, endalternative, endblock, endchannel, endconnection, enddecision, endgenerator, endnewtype, endoperator, endpackage, endprocedure, endprocess, endrefinement, endselect, endservice, endstate, endsubstructure, endsyntype, endsystem, enum, env, error, export, exported, external, fi, finalized, for, fpar, from, gate, generator, if, import, imported, "in", inherits, input, interface, join, literal, literals, map, nameclass, newtype, nextstate, nodelay, noequality, none, now, offspring, operator, "operators", ordering, out, output, package, parent, priority, procedure, process, provided, redefined, referenced, refinement, remote, reset, return, returns, revealed, reverse, save, select, self, sender, service, set, signal, signallist, signalroute, signalset, spelling, start, state, stop, struct, substructure, synonym, syntype, system, task, then, this, timer, to, type, use, variant, varstruct, via, view, viewed, virtual, with, or, xor, and, mod, rem, not, "end", macrodefinition, =>, "/=", >, >=, <, <=, "+", -, "//", ==>, ==, ->, :=, *, :, "/", =, ! end keywords optional operators are -> \rightarrow, => \Rightarrow, "/=" \neq, == \equiv, <= \leq, >= \geq, ! \not end operators sequences are "/*" Comment Comment "*/" Comment, C-string, C-char, "(." Plain Plain ".)" Plain, << Plain Plain >> Plain end sequences end style ����������������������������������������������������������a2ps-4.15.5/sheets/sed.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000002354�14445053504�012137� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for SED scripts # Copyright (c) 1999 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.0 Akim Demaille # Initial creation style "Sed" is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 requires a2ps 4.12a documentation is "Comments and labels are highlighted. Other ideas are welcome!" "A lot of work is still needed." end documentation sequences are /^#/ Comment end sequences operators are # Labels (/^(:[[:space:]]+)([[:alpha:]]+)/ \1 Plain, \2 Label) end operators end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/sh.ssh���������������������������������������������������������������������������0000644�0000000�0000000�00000003426�14445053504�011777� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for sh # Copyright (c) 1988-1993 Miguel Santana # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # $Id: sh.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:33 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.6 Akim Demaille # Inherit from shell.ssh ## 1.5 Akim Demaille # Shar files here docs support ## 1.4 Akim Demaille # More general handling of the `<< EOF' constructs ## 1.3 Akim Demaille # Beware of \" etc. ## 1.2 Akim Demaille # Function declarations style "Bourne Shell" is written by "Akim Demaille <akim@freefriends.org>" version is 1.7 requires a2ps 4.12a ancestors are shell end ancestors documentation is "Some classical program names, or builtin, are highlighted in the" "second level of pretty-printing." end documentation keywords in Keyword_strong are break, "case", continue, done, do, elif, else, esac, eval, exec, exit, export, fi, for, if, "in", readonly, read, return, set, shift, source, stop, test, then, trap, type, umask, unset, until, wait, while end keywords optional keywords in Keyword_strong are echo, times, cd end keywords end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/sheets.map�����������������������������������������������������������������������0000644�0000000�0000000�00000022374�14445053504�012643� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sheets.map - Guessing the type of a file -*- Makefile -*- # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # Style Sheet Files # ================= # # The style sheets are defined in various files. See *note Pretty # Printing:: for the structure of these files. As for most other # features, there is main file, a road map, which defines in which # condition a style sheet should be used (*note Map Files::). This file # is `sheets.map'. # # Its format is simple: # STYLE-KEY: PATTERNS # or # include(FILE) # # The PATTERNS need not be on separate lines. There are two kinds of # patterns: # # /PATTERN/FLAGS # if the current file name matches PATTERN, then select style # STYLE-KEY (i.e. file `STYLE-KEY.ssh'). # # <PATTERN>FLAGS # if the result of a call to `file(1)' matches PATTERN, then select # style STYLE-KEY. # # Currently FLAGS can only be `i', standing for an insentive match. # Please note that the matching is not truly case insensitive: rather, a # lower case version of the string is compared to the PATTERN as is, # i.e., the PATTERN should itself be lower case. # The special STYLE-KEY `binary' tells a2ps to consider that the file # should not be printed, and will be ignored, unless option # `--print-anyway' is given. # # If a style name can't be found, the plain style is used. # # The map file is read bottom up, so that the "last" match is honored. # # Two things are to retain from this: # # 1. if the file is presented through `stdin', then a2ps will run # `file(1)'. However, unless you specify a fake file name with # `--stdin', pattern matching upon the name is turn off. In general # you can expect correct delegations, but almost never pretty # printing. # # 2. if `file' is wrong on some files, a2ps may use bad style sheets. # In this case, do try option `--guess', compare it with the output # of `file', and if the culprit is `file', go and complain to your # system administrator :-), or fix it by defining your own filename # pattern matching rules. # # Consider the case of Texinfo files as an example (the language in # which this documentation is written). Files are usually named # `foo.texi', `bar.txi', or even `baz.texinfo'. `file(1)' is able to # recognize Texinfo files: # # doc % file a2ps.texi # a2ps.texi: Texinfo source text # # Therefore the sheets.map would look like: # # # Texinfo files # texinfo: /*.txi/ /*.texi/ /*.texinfo/ # <Texinfo source*> # Default language plain: /*/ # Some binary files we probably don't want to print binary: /*.tar.*/ /*.tar/ /*.tgz/ /*.[ao]/ <ELF*> <data> <PA-RISC*> # Backup files binary: /*~/ /*.bak/ /*.bk[0-9]/ # SCCS files # FIXME: SCCS is dead, and I'm not sure what this rule meant anyway. # Also, the adverse effect is really bad...so I simply commented this out now. #binary: /[sp].*/ # /*\/[sp].*/ # Troff, Nroff, and Groff files # We put them at the top, because it is common to see file(1) say a file # is a roff file. So let's first give a chance to the other rules. Also, # compressed files should be check first so that /usr/man/man1/a2ps.1.gz # is correctly recognized as compressed. roff: /man\/man*\/*/ /*\/man\/man*\/*/ <troff*> # Compressed files gzip: /*.gz/ <gzip compressed*> bzip: /*.bz/ <bzip compressed*> bzip2: /*.bz2/ <bzip2 compressed*> compress: /*.Z/ <compress*> # a2ps configuration files a2psrc: /a2ps*.cfg/ /*\/a2ps*.cfg/ /.a2psrc/ /*\/.a2psrc/ /a2psrc/ /*\/a2psrc/ # Makefile's make: /*.mk/ /[Mm]akefile/ /*\/[Mm]akefile/ /[Mm]akefile.*/ /*\/[Mm]akefile.*/ # GNUMakefiles gmake: /GNUmakefile/ /*\/GNUmakefile/ # Don't let file try to guess something else than `plain' # (Some file(1) can easily reply `data' on such files). plain: /*.doc/ /*.txt/ # Ada files ada: /*.ad[abs]/ # ASN.1 files asn1: /*.asn1/ # Autoconf files autoconf: /configure.ac/ /*\/configure.ac/ /ac*.m4/ /*\/ac*.m4/ # AWK scripts awk: <*awk*> /*.awk/ /*.nawk/ # B files b: /*.mch/ # BC files bc: /*.b/ # C files c: /*.[chi]/ /*._c/ /*.h.in/ # C++ files # Some people use C and H, but it is much more useful not to consider # the case, so we just can't here. cxx: /*.cc/ /*.hh/ /*.[ch]++/ /*.[ch]pp/ /*.[ch]xx/ /*.pdb/ # C# files csharp: /*.cs/ # SpecC specc: /*.sc/ /*.sh/ # OCaml files ocaml: /*.ml/ /*.ml[il]/ # ChangeLog files chlog: /ChangeLog*/ /*\/ChangeLog*/ # CORBA IDL cidl: /*.idl/ # claire files claire: /*.cl/ # common-lisp files clisp: /*.l/ /*.lisp/ /*.lsp/ /*.clisp/ # Small files small: /*.sma/ # coq-vernacular files coqv: /*.coq/ # DVI files # a2ps is not supposed to print them, but it proves useful # to define them for the delegations dvi: /*.dvi/i <TeX DVI file> # eiffel files eiffel: /*.e/ # Emacs lisp files elisp: /*.el/ # Encapsulated PostScript files eps: /*.eps/i /*.eps[fi]/i /*.pstex/i # Fortran files # By default a2ps chooses the style sheet `fortran' which tries to # support both fixed and free forms of comments. Nevertheless, this # cannot match all your needs, so you may want to specify other rules # that map to # - for77-fixed, Fortran 77 Fixed form # - for77-free, Fortran 77 Free form # - for90-fixed, Fortran 90/95 Fixed form # - for90-free, Fortran 90/95 Free form fortran: /*.f9[50]/i /*.f77/i /*.f/i /*.for/i # GIF Images gif: /*.gif/i <GIF image*> # Haskell programs haskell: /*.hs/ <*/runhugs> # HTML documents html: <HTML*> /*.html/i /*.htm/i /*.cgi/ # initora files initora: /init.ora/ /*\/init.ora/ # Java files java: /*.java/ # JavaScripts js: /*.js/ # JPEG images jpeg: /*.jpg/i /*.jpeg/i <JPEG*> # Lace files lace: /*.ace/ /Ace.*/ /*\/Ace.*/ # (F)Lex files lex: /*.l/ /*.lex/ # 68000 files 68000: /*.68000/ /*.[sS]/ # NASM files nasm: /*.asm/ # mailfolder files mail: /*.news/ /*.mail/ <mail *> <news *> <RFC 822 mail text> <Emacs RMAIL text> # Tmp files from elm. /\/tmp\/snd.*/ /\/tmp\/print.*/ # ASN.1 mib files mib: /*.mib/ # OCaml Yacc mly: /*.mly/ # modula-2 files (mocka and default extensions) modula2: /*.m[di]/ /*.def/ /*.mod/ # modula-3 files modula3: /*.[im]3/ # Matlab file matlab: /*.m/ # o2c files o2c: /*.o2/ /*.o2c/ # oberon files oberon: /*.oberon/ # octave files octave: /*.octavescript/ # oracle files oracle: /*.ora/ # Pascal files pascal: /*.pas/ /*.p/ # PDF documents pdf: /*.pdf/i <PDF document*> # Perl files perl: /*.p[ml]/ <*perl*> # PHP files php: /*.php/ # plsql files plsql: /*.pk[sb]/ /*.pls/ # PNG files png: /*.png/i <PNG image*> # Portable Object (Gettext) po: /*.po/ # Pov-Ray pov: /*.pov/ # PostScript Printer Description files ppd: /*.ppd/i # PostScript files ps: /*.ps/i /*.prn/i <[pP]ost[Ss]cript*> # PreScript files pre: /*.prescript/ /*.biftex/ /*.bif/ /*.pre/ /*.ptf/ # prolog files prolog: /*.plg/ /*.pro/ # Promela files promela: /*.pml/ # python files python: <*/python> <*python script*> /*.py/ # GNU R files, as well as S language files s: /*.[RSrsq]/ # GNU R documentation files rd: /*.[Rr]d/ # Ruby files ruby: /*.rb/ # GNU R (and S language) transscript files st: /*.St/ /*.Rout/ # REXX command files rexx: /*.cmd/i # sather files sather: /*.sa/ # scheme files scheme: /*.scm/ # SDL-88 files sdl88: /*.pr/ /*.sdl/ # Sed scripts # Be very careful not to introduce <*sed*>, which would match `compressed' # too! sed: /*.sed/ <*/sed*> # a2ps' style sheet files ssh: /*.ssh/ # sh files sh: <*/sh*> <*[Ss]hell*> # Ash files sh: <Neil Brown*> # Bash files sh: <Bourne-Again*> <*bash*> # Csh files csh: /.csh*/ /*\/.csh*/ <C [Ss]hell*> <c-shell*> <*csh*> # Ksh sh: <Korn *> <*ksh*> # Tcsh tcsh: /.tcsh*/ /*\/.tcsh*/ <Tenex C shell*> <*tcsh*> # Zsh files zsh: <*zsh*> <Paul Falstad*> /.zsh*/ /*\/.zsh*/ # Standard ML sml: /*.sml/ /*.sig/ /*.fun/ # sql files sql: /*.sql/ # sql92 files sql92: /*.sql92/ # Synopsis scripts synopsis: /*.scr/ /*.wscr/ /*.con/ /.synopsys_dc.setup/ /*\/.synopsys_dc.setup/ # (La)TeX files tex: /*.[dl]tx/ /*.cl[os]/ /*.sty/ /*.tex/ /*.pstex_t/ <TeX document *> <LaTeX *> # Texinfo files texinfo: /*.txi/ /*.texi/ /*.texinfo/ <Texinfo source*> # tcl files tcl: /*.tcl/ /*.tclscript/ # Extended Tcl tclx: /*.tclx/ <*tclx*> # Visual Tcl vtcl: /*.vtcl/ <*vtcl*> # TIFF images tiff: /.tif/i /.tiff/i <TIFF image*> # tk files tk: /*.tk/ /*.wish/ # Tiger tiger: /*.tig/ # Unity files unity: /*.unity/ # VERILOG files verilog: /*.v/ /*.vh/ # VHDL files vhdl: /*.vhdl/i /*.vhd/i # VRML files vrml: /*.wrl/ # XBM images xbm: /*.xbm/i # XPM images xpm: /*.xpm/i # Perl XS files xs: /*.xs/ # Yacc/Bison grammars yacc: /*.y/ /*.yacc/ # Stratego files stratego: /*.r/ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/shell.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003754�14445053504�012500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for common shell constructs # Used by sh, csh, tcsh, zsh # # Copyright (c) 1999 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 0.1 Akim Demaille # Initial creation style "Shell" is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 requires a2ps 4.12a first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-/$." second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_/$#." case sensitive documentation is "This style sheet is not meant to be used directly, but rather an as" "ancestor for shell style sheets." end documentation sequences are "#" Comment, C-string, C-char, # Here documents. I take as a rule, something which starts with # EO[CHARACTERS IN UPPERCASE] and ends with the same pattern # (hence not necessarily the same tag, but it seems to be a good # guess) /<<[[:blank:]]*\\\\?EO[A-Z]+/ Plain /^EO[A-Z]+/, # This is a type of here-docs met in shar files /<<[[:blank:]]*________This_Is_The_END________/ Plain /^________This_Is_The_END________$/ end sequences operators are # Definition of a function (/^([a-zA-Z_][a-zA-Z0-9_]*)\\(\\)/ \1 Label, "()" Plain), # Beware of \", \` and \' alone. Lets make general /\\\\./ end operators end style ��������������������a2ps-4.15.5/sheets/small.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003730�14445053504�012473� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Small 2.1.0 # https://www.compuphase.com/small.htm # # Copyright (C) Christophe Continente, Akim Demaille, Miguel Santana. # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Small is written by "Christophe Continente <contin_c@epita.fr>" version is 0.2 requires a2ps version 4.13c documentation is "This style does not highlight the function definitions." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_@" case sensitive keywords in Keyword are const, enum, forward, native, new, operator, public, static, stock, /^#[ ]*(assert|define|e(l(if|se)|ndif|mit|ndinput)|include|pragma)/ end keywords keywords in Keyword_strong are assert, break, "case", continue, default, do, else, exit, for, goto, if, return, sleep, switch, while end keywords optional operators are (/(case)([ ]+)(.+)([ ]*:)/ \1 Keyword_strong, \2 Plain, \3 Label, \4 Plain) end operators optional operators are -> \rightarrow, && \wedge, || \vee, != \neq, == \equiv, <= \leq, >= \geq, ! \not, # We need to protect these, so that <= is not replaced in <<= <<=, >>=, >>>=, >>>, char, defined, sizeof end operators sequences are "/*" Comment "*/", "//" Comment, C-string end sequences end style ����������������������������������������a2ps-4.15.5/sheets/sml.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000004462�14445053504�012161� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Standard ML # Copyright (c) 1999 Franklin Chen, Daniel Wang, Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # This was based on caml.ssh. style "Standard ML" is written by "Franklin Chen <Franklin.Chen@cs.cmu.edu>, Daniel Wang <danwang@CS.Princeton.EDU>" version is 1.1 documentation is "This style sheet takes advantage of the Symbol font to replace many" "ASCII operators with their natural graphical representation. This" "is enabled only at heavy highlighting." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_!" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_\'!" case sensitive keywords in Keyword are int, char, string, real, unit, list, bool, vector, word, option, nil, false, true end keywords keywords in Keyword_strong are abstraction, and, abstype, as, "case", do, datatype, else, eqtype, "end", exception, fn, fun, handle, if, "in", include, infix, infixr, let, local, nonfix, of, o, op, open, raise, rec, ref, sharing, sig, signature, struct, structure, functor, funsig, then, type, val, where, while, withtype end keywords operators in Keyword_strong are :: end operators operators are -> \rightarrow, => \Rightarrow end operators optional keywords are fn \lambda, not \not, andalso \wedge, orelse \vee, o \circ end keywords optional operators are <> \neq, <= \leq, >= \geq, * \times, 'a \alpha, 'b \beta, 'c \gamma, 'd \delta end operators sequences are "(*" Comment Comment "*)" Comment, C-string end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/specc.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000005060�14445053504�012456� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for SpecC 1.0 # http://www.ics.uci.edu/~specc/reference/ # $Id: specc.ssh,v 1.1.2.2 2007/12/29 01:58:33 mhatta Exp $ # # Copyright (C) Hideaki Yokota, FUJI Research Institute Corp. # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style SpecC is written by "Hideaki Yokota <h.yokota@ieee.org>" version is 0.1 requires a2ps version 4.13b documentation is "Non-textual operators are not highlighted." "Some logical operators are printed as graphical symbols" "in the second level of pretty-printing." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword are double, enum, void, int, long, FILE, struct, char, signed, float, short, unsigned end keywords keywords in Keyword_strong are auto, "case", const, continue, do, inline, extern, for, register, return, switch, union, goto, typedef, sizeof, typeof, volatile, static, NULL, default, break, if, while, else, behavior, bit, bool, channel, delta, event, false, fsm, implements, import, "in", inout, interface, interrupt, note, notify, notifyone, out, par, pipe, piped, range, this, timing, trap, true, try, wait, waitfor end keywords optional operators are (/(case)([ ]+)(.+)([ ]*:)/ \1 Keyword_strong, \2 Plain, \3 Label, \4 Plain) end operators optional operators are -> \rightarrow, && \wedge, || \vee, != \neq, == \equiv, # We need to protect these, so that <= is not replaced in <<= <<=, >>=, <= \leq, >= \geq, ! \not end operators sequences are "/*" Comment "*/", "//" Comment, C-string, # We do not want C-string in ASM to be declared as string, # since it polutes the layout. (/(asm)([[:blank:]]*\\([[:blank:]]*")/ \1 Keyword_strong, \2 Plain) Plain "\"" Plain exceptions are (/(\\\\.)/ \1) end exceptions, C-char end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/sql.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000003413�14445053504�012160� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Last changed: Mon Aug 18 1997 Christian Mondrup (reccmo@sc03.sctp.dk) # # Last edited: # # Mon Aug 18 1997 Christian Mondrup (reccmo@sc03.sctp.dk) # Added "rem" as comment. Changed case to insensitive. style "Oracle SQL" is written by "Pierre Mareschal <pmaresch@be.oracle.com>" version is 1.0 documentation is "a2ps-sql Pretty Printer Version 1.0.0 beta - 18-MAR-97" "For comments, support for -- /*..*/ and //." "This style is to be checked." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case insensitive keywords in Keyword_strong are access, add, all, alter, and, any, arraylen, as, asc, audit, between, "by", char, check, cluster, column, "comment", compress, connect, create, current, date, decimal, default, delete, desc, distinct, drop, else, exclusive, exists, file, float, for, from, grant, group, having, identified, immediate, "in", increment, index, initial, insert, integer, intersect, into, "is", level, like, lock, long, maxextents, minus, mode, modify, noaudit, nocompress, not, notfound, nowait, null, number, of, offline, on, online, option, or, order, pctfree, prior, privileges, public, raw, rename, resource, revoke, row, rowid, rowlabel, rownum, rows, select, session, set, share, size, smallint, sqlbuf, start, successful, synonym, sysdate, table, then, to, trigger, uid, union, unique, update, user, validate, values, varchar, varchar2, view, whenever, where, with end keywords sequences are "/*+" Comment_strong Comment_strong "*/" Comment_strong, -- Comment, rem Comment, "/*" Comment Comment "*/" Comment, "//" Comment, C-string, C-char end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/sql92.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000004632�14445053504�012337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������style "SQL 92" is written by "Pierre Mareschal <pmaresch@be.oracle.com>" version is 1.0 documentation is "18-MAR-97" "This style is to be checked." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword_strong are action, add, all, allocate, alter, and, any, "are", as, asc, assertion, at, authorization, avg, begin, between, bit, bit_length, both, "by", cascade, cascaded, "case", cast, catalog, char, char_length, character, character_length, check, close, coalesce, collate, collation, column, commit, connect, connection, constraint, constraints, continue, convert, corresponding, count, create, cross, current, current_date, current_time, current_timestamp, current_user, cursor, date, day, deallocate, dec, decimal, declare, default, deferrable, deferred, delete, desc, describe, descriptor, diagnostics, disconnect, distinct, domain, double, drop, else, "end", end-exec, escape, except, exception, exec, execute, exists, external, extract, false, fetch, "first", float, for, foreign, found, from, full, get, global, go, goto, grant, group, having, hour, identity, immediate, "in", indicator, initially, inner, input, "insensitive", insert, int, integer, intersect, interval, into, "is", isolation, join, key, language, last, leading, left, level, like, local, lower, match, max, min, minute, module, month, names, national, natural, nchar, next, no, not, null, nullif, numeric, octet_length, of, on, only, open, option, or, order, outer, output, overlaps, pad, partial, position, precision, prepare, preserve, primary, prior, privileges, procedure, public, read, real, references, relative, restrict, revoke, right, rollback, rows, schema, scroll, "second", section, select, session, session_user, set, size, smallint, some, space, sql, sqlcode, sqlerror, sqlstate, substring, sum, system_user, table, temporary, then, time, timestamp, timezone_hour, timezone_minute, to, trailing, transaction, translate, translation, trim, true, union, unique, unknown, update, upper, usage, user, using, value, values, varchar, varying, view, when, whenever, where, with, work, write, year, zone end keywords sequences are "/*" Comment Comment "*/" Comment, C-string, C-char end sequences end style ������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/ssh.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000016534�14445053504�012166� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for a2ps style sheet files # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: ssh.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:33 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.0 Akim Demaille <akim@freefriends.org> # Created # ## 1.1 Akim Demaille <akim@freefriends.org> # In level 2, substitute the latex symbols # ## 1.2 Akim Demaille <akim@freefriends.org> # New keywords: closers, documentation, ancestors, alphabets. # New sequence: /regex/ style "a2ps style sheet" is written by "Akim Demaille <akim@freefriends.org>" version is 1.2 requires a2ps 4.9.5 documentation is "Second level of highligthing (option samp(-g)samp)) substitutes the LaTeX symbols." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\\_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive # Support for the main keywords keywords in Keyword_strong are "a2ps", "alphabet", "alphabets", "ancestors", "are", "by", "case", "closers", "C-char", "C-string", "documentation", "end", "exceptions", "first", "in", "insensitive", "is", "keywords", "requires", "second", "sensitive", "operators", "optional", "sequences", "style", "version", "written", "Plain", "Keyword", "Keyword_strong", "Comment", "Comment_strong", "Label", "Label_strong", "String", "Symbol", "Tag1", "Tag2", "Tag3", "Tag4", "Index1", "Index2", "Index3", "Index4", "Encoding", "Invisible", "Error" end keywords # Support for the predefined symbols keywords in Keyword are "\\forall", "\\exists", "\\suchthat", "\\cong", "\\Alpha", "\\Beta", "\\Chi", "\\Delta", "\\Epsilon", "\\Phi", "\\Gamma", "\\Eta", "\\Iota", "\\vartheta", "\\Kappa", "\\Lambda", "\\Mu", "\\Nu", "\\Omicron", "\\Pi", "\\Theta", "\\Rho", "\\Sigma", "\\Tau", "\\Upsilon", "\\varsigma", "\\Omega", "\\Xi", "\\Psi", "\\Zeta", "\\therefore", "\\perp", "\\radicalex", "\\alpha", "\\beta", "\\chi", "\\delta", "\\epsilon", "\\phi", "\\gamma", "\\eta", "\\iota", "\\varphi", "\\kappa", "\\lambda", "\\mu", "\\nu", "\\omicron", "\\pi", "\\theta", "\\rho", "\\sigma" "\\tau", "\\upsilon", "\\varpi", "\\omega", "\\xi", "\\psi", "\\zeta", "\\sim", "\\varUpsilon", "\\prime", "\\leq", "\\infty", "\\florin", "\\clubsuit", "\\diamondsuit", "\\heartsuit", "\\spadesuit", "\\leftrightarrow", "\\leftarrow", "\\uparrow", "\\rightarrow", "\\downarrow", "\\circ", "\\pm", "\\geq", "\\times", "\\propto", "\\partial", "\\bullet", "\\div", "\\neq", "\\equiv", "\\approx", "\\ldots", "---", "\\carriagereturn", "\\aleph", "\\Im", "\\Re", "\\wp", "\\otimes", "\\oplus", "\\emptyset", "\\cap", "\\cup", "\\supset", "\\supseteq", "\\not\\subset", "\\subset", "\\subseteq", "\\in", "\\not\\in", "\\angle", "\\nabla", "\\varregister", "\\varcopyright", "\\vartrademark", "\\prod", "\\surd", "\\cdot", "\\not", "\\wedge", "\\vee", "\\Leftrightarrow", "\\Leftarrow", "\\Uparrow", "\\Rightarrow", "\\Downarrow", "\\vardiamondsuit", "\\langle", "\\register", "\\copyright", "\\trademark", "\\sum", "\\lceil", "\\lfloor", "\\rangle", "\\int", "\\rceil", "\\rfloor" end keywords # At level 2 of pretty printing, we want to _see_ the symbols optional keywords are "\\to" \rightarrow, "\\item" \bullet, "\\backslash" "\\", "\\forall" \forall, "\\exists" \exists, "\\suchthat" \suchthat, "\\cong" \cong, "\\Alpha" \Alpha, "\\Beta" \Beta, "\\Chi" \Chi, "\\Delta" \Delta, "\\Epsilon" \Epsilon, "\\Phi" \Phi, "\\Gamma" \Gamma, "\\Eta" \Eta, "\\Iota" \Iota, "\\vartheta" \vartheta, "\\Kappa" \Kappa, "\\Lambda" \Lambda, "\\Mu" \Mu, "\\Nu" \Nu, "\\Omicron" \Omicron, "\\Pi" \Pi, "\\Theta" \Theta, "\\Rho" \Rho, "\\Sigma" \Sigma, "\\Tau" \Tau, "\\Upsilon" \Upsilon, "\\varsigma" \varsigma, "\\Omega" \Omega, "\\Xi" \Xi, "\\Psi" \Psi, "\\Zeta" \Zeta, "\\therefore" \therefore, "\\perp" \perp, "\\radicalex" \radicalex, "\\alpha" \alpha, "\\beta" \beta, "\\chi" \chi, "\\delta" \delta, "\\epsilon" \epsilon, "\\phi" \phi, "\\gamma" \gamma, "\\eta" \eta, "\\iota" \iota, "\\varphi" \phi, "\\kappa" \kappa, "\\lambda" \lambda, "\\mu" \mu, "\\nu" \nu, "\\omicron" \omicron, "\\pi" \pi, "\\theta" \theta, "\\rho" \rho, "\\sigma" \sigma, "\\tau" \tau, "\\upsilon" \upsilon, "\\varpi" \varpi, "\\omega" \omega, "\\xi" \xi, "\\psi" \psi, "\\zeta" \zeta, "\\sim" \sim, "\\varUpsilon" \varUpsilon, "\\prime" \prime, "\\leq" \leq, "\\infty" \infty, "\\florin" \florin, "\\clubsuit" \clubsuit, "\\diamondsuit" \diamondsuit, "\\heartsuit" \heartsuit, "\\spadesuit" \spadesuit, "\\leftrightarrow" \leftrightarrow, "\\leftarrow" \leftarrow, "\\uparrow" \uparrow, "\\rightarrow" \rightarrow, "\\downarrow" \downarrow, "\\circ" \circ, "\\pm" \pm, "\\geq" \geq, "\\times" \times, "\\propto" \propto, "\\partial" \partial, "\\bullet" \bullet, "\\div" \div, "\\neq" \neq, "\\equiv" \equiv, "\\approx" \approx, "\\ldots" \ldots, "---" ---, "\\carriagereturn" \carriagereturn, "\\aleph" \aleph, "\\Im" \Im, "\\Re" \Re, "\\wp" \wp, "\\otimes" \otimes, "\\oplus" \oplus, "\\emptyset" \emptyset, "\\cap" \cap, "\\cup" \cup, "\\supset" \supset, "\\supseteq" \supseteq, "\\not\\subset" \not\subset, "\\subset" \subset, "\\subseteq" \subseteq, "\\in" \in, "\\not\\in" \not\in, "\\angle" \angle, "\\nabla" \nabla, "\\varregister" \register, "\\varcopyright" \copyright, "\\vartrademark" \trademark, "\\prod" \prod, "\\surd" \surd, "\\cdot" \cdot, "\\not" \not, "\\wedge" \wedge, "\\vee" \vee, "\\Leftrightarrow" \Leftrightarrow, "\\Leftarrow" \Leftarrow, "\\Uparrow" \Uparrow, "\\Rightarrow" \Rightarrow, "\\Downarrow" \Downarrow, "\\lozenge" \diamondsuit, "\\langle" \langle, "\\register" \register, "\\copyright" \copyright, "\\trademark" \trademark, "\\sum" \sum, "\\lceil" \lceil, "\\lfloor" \lfloor, "\\rangle" \rangle, "\\int" \int, "\\rceil" \rceil, "\\rfloor" \rfloor end keywords sequences are # The comments "#" Comment, # The name of the style sheet "style " Keyword_strong (Label + Index1) " is" Keyword_strong, # Strings are exactly the C-strings, though we don't want to # have them in the "string" face "\"" Plain Plain "\"" Plain exceptions are "\\\\", "\\\"" end exceptions, # Regexps "/" Plain Plain "/" Plain exceptions are "\\\\", "\\\/" end exceptions end sequences end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/st.ssh���������������������������������������������������������������������������0000644�0000000�0000000�00000004463�14445053504�012015� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for S transscripts -- GNU R (www.r-project.org) is an # implementation of S, a language for statistical computing and graphics. # # A suitable sheets.map entry would be # R/S transscript files # st: /*.St/ /*.Rout/ # # Copyright (c) 2000, 2001 Torsten Hothorn, Kurt Hornik, Dirk Eddelbuettel # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "S transscript" is written by "Torsten Hothorn <Torsten.Hothorn@rzmail.uni-erlangen.de>, Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>, Dirk Eddelbuettel <edd@debian.org>" version is 0.1 requires a2ps 4.9.5 documentation is "Should handle transscripts from interpreters of S, a language for" "statistical computing and graphics, such as R." "" "R consists of a language plus a run-time environment with graphics, a" "debugger, access to certain system functions, and the ability to run" "programs stored in script files." "" "R has a home page at `https://www.r-project.org/'. It is free software" "distributed under a GNU-style copyleft, and an official part of the GNU" "project (`GNU S')." end documentation first alphabet is "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ." second alphabet is "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789" case sensitive #ancestors are # s #end ancestors sequences are "#" Comment, "\"" Plain String "\"" Plain end sequences operators are (/((R?>|\\+).*)$/ \1 Keyword), (/^(Dumped|Error:|Syntax error:|Warning messages?:)/ \1 Keyword_strong), (/^(In addition: Warning messages?:) *$/ \1 Keyword_strong), (/^(Error in.* :)( )/ \1 Keyword_strong, \2 Plain) end operators end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/stratego.ssh���������������������������������������������������������������������0000644�0000000�0000000�00000005456�14445053504�013222� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for stratego # Copyright (c) 2002 Nicolas Tisserand # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # # This style sheet is based on the stratego grammar: # http://strategoxt.org/ # style "stratego" is written by "Nicolas Tisserand <tisser_n@lrde.epita.fr>" version is 1.0 requires a2ps 4.9.5 documentation is "Highlights stratego source code" end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.-_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.-_'" case sensitive keywords in Keyword_strong are "all", "constructors", "fail", "id", "imports", "in", "let", "module", "not", "one", "overlays", "override", "prim", "rules", "script", "signature", "some", "sorts", "strategies", "stratego", "test", "thread", "where" end keywords # common keywords from the stratego library keywords in Keyword are "try", "if", "ior", "eq", "repeat", "repeat-until", "while", "do-while", "for", "topdown", "bottomup", "downup", "minus", "plus", "add", "subt", "mul", "div", "mod", "geq", "gt", "lt", "leq", "max", "min", "int", "is-int", "int-to-string", "string-to-int", "new", "is-string", "lower-case", "upper-case", "init-name-space", "exit-name-space", "begin-scope", "end-scope", "scope", "assert", "rewrite", "list", "map", "is-list", "length", "fetch", "lookup", "last", "init", "copy", "take", "take-while", "take-until", "drop", "drop-while", "drop-until", "substitute", "diff", "pattern-match", "unify", "equal", "print", "WriteToTextFile", "WriteToBinaryFile", "open-file", "append-file", "close-file", "say", "echo", "trace", "error", "fatal-error", "printchar", "print-string", "iowrap", "pipe", "exit", "call" end keywords operators in Keyword_strong are -> \rightarrow, -->, =, #, @, _, |, ], [, ^, }, { , "+" , "<" , "<+" , "<++" , ">" , "+>" , "++>" , (/^([\t ]*[a-zA-Z0-9'._\-]*)([\t ]*[:=])/ \1 Label_strong, \2 Plain) end operators sequences are "/*" Comment "*/", "//" Comment, "(*" Comment "*)", "\\literate" Comment "\\begin{code}", "\\end{code}" Comment "\\begin{code}", C-string end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/symbols.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000010513�14445053504�013050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Symbols, a precursor of PreScript # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: symbols.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:33 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Symbols is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 requires a2ps version 4.9.7 documentation is "This style sheet should be a precursor for any style sheet which" "uses LaTeX like symbols." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\\_" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords are "\\to" \rightarrow, "\\item" \bullet, "\\backslash" "\\", "\\forall" \forall, "\\exists" \exists, "\\suchthat" \suchthat, "\\cong" \cong, "\\Alpha" \Alpha, "\\Beta" \Beta, "\\Chi" \Chi, "\\Delta" \Delta, "\\Epsilon" \Epsilon, "\\Phi" \Phi, "\\Gamma" \Gamma, "\\Eta" \Eta, "\\Iota" \Iota, "\\vartheta" \vartheta, "\\Kappa" \Kappa, "\\Lambda" \Lambda, "\\Mu" \Mu, "\\Nu" \Nu, "\\Omicron" \Omicron, "\\Pi" \Pi, "\\Theta" \Theta, "\\Rho" \Rho, "\\Sigma" \Sigma, "\\Tau" \Tau, "\\Upsilon" \Upsilon, "\\varsigma" \varsigma, "\\Omega" \Omega, "\\Xi" \Xi, "\\Psi" \Psi, "\\Zeta" \Zeta, "\\therefore" \therefore, "\\perp" \perp, "\\radicalex" \radicalex, "\\alpha" \alpha, "\\beta" \beta, "\\chi" \chi, "\\delta" \delta, "\\epsilon" \epsilon, "\\phi" \phi, "\\gamma" \gamma, "\\eta" \eta, "\\iota" \iota, "\\varphi" \phi, "\\kappa" \kappa, "\\lambda" \lambda, "\\mu" \mu, "\\nu" \nu, "\\omicron" \omicron, "\\pi" \pi, "\\theta" \theta, "\\rho" \rho, "\\sigma" \sigma, "\\tau" \tau, "\\upsilon" \upsilon, "\\varpi" \varpi, "\\omega" \omega, "\\xi" \xi, "\\psi" \psi, "\\zeta" \zeta, "\\sim" \sim, "\\varUpsilon" \varUpsilon, "\\prime" \prime, "\\leq" \leq, "\\infty" \infty, "\\florin" \florin, "\\clubsuit" \clubsuit, "\\diamondsuit" \diamondsuit, "\\heartsuit" \heartsuit, "\\spadesuit" \spadesuit, "\\leftrightarrow" \leftrightarrow, "\\leftarrow" \leftarrow, "\\uparrow" \uparrow, "\\rightarrow" \rightarrow, "\\downarrow" \downarrow, "\\circ" \circ, "\\pm" \pm, "\\geq" \geq, "\\times" \times, "\\propto" \propto, "\\partial" \partial, "\\bullet" \bullet, "\\div" \div, "\\neq" \neq, "\\equiv" \equiv, "\\approx" \approx, "\\ldots" \ldots, "---" ---, "\\carriagereturn" \carriagereturn, "\\aleph" \aleph, "\\Im" \Im, "\\Re" \Re, "\\wp" \wp, "\\otimes" \otimes, "\\oplus" \oplus, "\\emptyset" \emptyset, "\\cap" \cap, "\\cup" \cup, "\\supset" \supset, "\\supseteq" \supseteq, "\\not\\subset" \not\subset, "\\subset" \subset, "\\subseteq" \subseteq, "\\in" \in, "\\not\\in" \not\in, "\\angle" \angle, "\\nabla" \nabla, "\\varregister" \register, "\\varcopyright" \copyright, "\\vartrademark" \trademark, "\\prod" \prod, "\\surd" \surd, "\\cdot" \cdot, "\\not" \not, "\\wedge" \wedge, "\\vee" \vee, "\\Leftrightarrow" \Leftrightarrow, "\\Leftarrow" \Leftarrow, "\\Uparrow" \Uparrow, "\\Rightarrow" \Rightarrow, "\\Downarrow" \Downarrow, "\\lozenge" \diamondsuit, "\\langle" \langle, "\\register" \register, "\\copyright" \copyright, "\\trademark" \trademark, "\\sum" \sum, "\\lceil" \lceil, "\\lfloor" \lfloor, "\\rangle" \rangle, "\\int" \int, "\\rceil" \rceil, "\\rfloor" \rfloor end keywords end style # Symbols �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/tcl.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000005464�14445053504�012153� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for tcl # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: tcl.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:33 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille <akim@freefriends.org> # Cleaned up, and made it a base for tk. ## 1.2 Larry W. Virden <lvirden@cas.org> # Cleaned up, included Tcl 8.0 keywords style "Tool Command Language" is written by "Akim Demaille <akim@freefriends.org>, Larry W. Virden <lvirden@cas.org>" version is 1.2 documentation is "Since everything, or almost, is a string, what is printed is not" "always what you would like." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._#$%" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._#$%" case sensitive keywords in Keyword_strong are after, append, array, auto_execok, auto_load, auto_mkindex, auto_reset, bgerror, binary, break, "case", catch, cd, clock, close, concat, continue, default, else, elseif, eof, error, eval, exec, exit, expr, fblocked, fconfigure, fcopy, file, fileevent, filename, flush, for, foreach, format, gets, glob, global, history, http, if, incr, info, interp, join, lappend, lindex, linsert, llength, lrange, lreplace, lsearch, lsort, library, list, load, memory, namespace, open, optproc, package, parray, pid, pkg_mkIndex, proc, puts, pwd, read, regexp, registry, regsub, rename, resource, return, safe, scan, seek, set, socket, source, split, string, subst, switch, tell, then, time, trace, unknown, unset, update, uplevel, upvar, variable, vwait, while end keywords optional keywords are argc, argv, arg0, env, errorCode, errorInfo, tcl_library, tcl_patchLevel, tcl_pkgPath, tcl_platform, tcl_precision, tcl_rcFileName, tcl_rcRsrcName, tcl_traceCompile, tcl_traceExec, tcl_version end keywords optional operators are :: , && \wedge, || \vee, != \neq, == \equiv, <= \leq, >= \geq, ! \not end operators sequences are "#" Comment, C-string end sequences end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/tclx.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000003767�14445053504�012347� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Extended Tcl # Mods by Phil Hollenback (philiph@pobox.com) 1998 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Extended Tcl" is written by "Phil Hollenback <philiph@pobox.com>" version is 1.0 requires a2ps version 4.10 ancestors are tcl end ancestors documentation is "Extensions to plain Tcl." end documentation keywords in Keyword_strong are keyldel, keylget, keylkeys, keylset, commandloop, loop, cmdtrace, edprocs, profile, profrep, saveprocs, bsearch, chgrp, chmod, chown, chroot, copyfile, dup, echo, fcntl, flock, for_file, for_recursive_glob, frename, fstat, funlock, lgets, link, mkdir, pipe, read_file, readdir, recursive_glob, rmdir, select, server_info, server_open, sync, unlink, write_file, scancontext, scanfile, scanmatch, catclose, catgets, catopen, auto_commands, auto_load, auto_loadfile, auto_packages, buildpackageindex, convert_lib, loadlibindex, searchpath, intersect, intersect3, lassign, lempty, lmatch, lrmdups, lvarcat, lvarpop, lvarpush, union, max, min, random, execl, fork, kill, nice, pid, signal, system, wait, dirs, id, infox, popd, pushd, showproc, umask, cequal, cexpand, cindex, clength, crange, csubstr, ctoken, ctype, replicate, translit, alarm, convertclock, fmtclock, getclock, sleep, times, for_array_keys end keywords end style ���������a2ps-4.15.5/sheets/tcsh.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000006446�14445053504�012333� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for tcsh # Copyright (c) 1997 Jim Diamond, Akim Demaille, Miguel Santana # $Id: tcsh.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:33 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "TC Shell" is written by "Jim Diamond <jdiamond@fox.nstn.ca>" version is 1.1 requires a2ps 4.9.7 documentation is "C shell with file name completion and command line editing." end documentation ancestors are csh end ancestors keywords in Keyword_strong are bindkey, complete, log, sched, settc, setty, uncomplete, watchlog end keywords optional keywords in Keyword_strong are builtins, bye, echotc, filetest, hup, inlib, ls-F, migrate, newgrp, printenv, telltc, wait, where, which, # The following are all bindkey arguments: backward-char, backward-delete-char, backward-delete-word, backward-kill-line, backward-word, beginning-of-line, capitalize-word, change-case, change-till-end-of-line, clear-screen, complete-word, complete-word-fwd, complete-word-back, complete-word-raw, copy-prev-word, copy-region-as-kill, dabbrev-expand, delete-char, delete-char-or-eof, delete-char-or-list, delete-char-or-list-or-eof, delete-word, digit, digit-argument, down-history, downcase-word, end-of-file, end-of-line, exchange-point-and-mark, expand-glob, expand-history, expand-line, expand-variables, forward-char, forward-word, gosmacs-transpose-chars, history-search-backward, history-search-forward, insert-last-word, i-search-fwd, i-search-back, keyboard-quit, kill-line, kill-region, kill-whole-line, list-choices, list-choices-raw, list-glob, list-or-eof, load-average, magic-space, newline, normalize-path, normalize-command, overwrite-mode, prefix-meta, quoted-insert, redisplay, run-fg-editor, run-help, self-insert-command, sequence-lead-in, set-mark-command, spell-word, spell-line, stuff-char, toggle-literal-history, transpose-chars, transpose-gosling, tty-dsusp, tty-flush-output, tty-sigintr, tty-sigquit, tty-sigtsusp, tty-start-output, tty-stop-output, undefined-key, universal-argument, up-history, upcase-word, vi-beginning-of-next-word, vi-add, vi-add-at-eol, vi-chg-case, vi-chg-meta, vi-chg-to-eol, vi-cmd-mode, vi-cmd-mode-complete, vi-delprev, vi-delmeta, vi-endword, vi-eword, vi-char-back, vi-char-fwd, vi-charto-back, vi-charto-fwd, vi-insert, vi-insert-at-bol, vi-repeat-char-fwd, vi-repeat-char-back, vi-repeat-search-fwd, vi-repeat-search-back, vi-replace-char, vi-replace-mode, vi-search-back, vi-search-fwd, vi-substitute-char, vi-substitute-line, vi-word-back, vi-word-fwd, vi-undo, vi-zero, which-command, yank end keywords end style ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/tex.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000010435�14445053504�012163� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������############################## -*- Mode: a2ps -*- ############################# ## tex.ssh --- Sheet definitions for (La)TeX files ## ## Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> ## Created the : Wed May 6 15:35:36 1997 ## Last mod. by : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> ## Last mod. the : Thu Jun 26 11:18:14 1997 ############################################################################### ## 1.10 Akim # * Inherit from symbols.ssh for \Alpha and the like # * Make sure that specific rules are always _after_ generic rules # (see the \def section) # * Cleaner handling of \begin et \end, \newcommand and the like # (as operators not sequences) # * Highlight title given to environment (\begin{foo}[title]) # * Support (sub)*sections, chapter and part ## 1.9 Akim # Case sensitive, updated to new syntax for closers, and requirement ## 1.8 Akim # The prescript-like symbols are keywords, not operators. # Put them as optional style TeX is written by "Denis Girou <Denis.Girou@idris.fr>" version is 1.11 requires a2ps version 4.12a ancestors are symbols end ancestors case sensitive documentation is "This is the style for (La)TeX files." "It's mainly useful for people who develop (La)TeX packages." "With samp(-g)samp, common mathematical symbols are represented graphically." end documentation operators are # It happens to see \' or \" outside a string, for instance in \catcodes. "\\\'", "\\\"", # LaTeX environments (/\\\\(begin|end)([[:blank:]]*)\\{/ /([^}]+)\\}/ "\\" Keyword_strong, \1 Keyword_strong, \2 Plain, "{" Plain, \3 Label, "}" Plain), # LaTeX environments with title (/\\\\(begin|end)([[:blank:]]*)\\{/ # \1 and \2 /([^}]+)\\}([[:blank:]]*)\\[/ # \3, \4 /([^]]+)\\]/ # \5 "\\" Keyword_strong, \1 Keyword_strong, \2 Plain, "{" Plain, \3 Label, "}" Plain, \4 Plain, "[" Plain, \5 Label, "]" Plain), # LaTeX sections (/\\\\((sub)*section|part|chapter)([[:blank:]]*)\\{/ /([^}]+)\\}/ "\\" Keyword_strong, \1 Keyword_strong, \3 Plain, "{" Plain, \4 Label_strong, "}" Plain), # LaTeX macros definitions (/\\\\/ /((new|renew|provide)command|environment)/ # \1 /([[:blank:]]*)\\{/ # \3 /([^}]+)\\}/ # \4 "\\" Keyword_strong, \1 Keyword_strong, \3 Plain, "{" Plain, \4 (Label_strong + Index1), "}" Plain) end operators sequences are # (La)TeX comments % Comment, # Strings "\"" Plain String "\"" Plain, # TeX macros definitions "\\def" Keyword_strong (Label_strong + Index1) closers are "{" Plain, " " Plain, "\#" Plain end closers, "\\edef" Keyword_strong (Label_strong + Index1) closers are "{" Plain, " " Plain, "\#" Plain end closers, "\\gdef" Keyword_strong (Label_strong + Index1) closers are "{" Plain, " " Plain, "\#" Plain end closers, "\\xdef" Keyword_strong (Label_strong + Index1) closers are "{" Plain, " " Plain, "\#" Plain end closers, # We must not mark other commands beginning by \def ! "\\defaulthyphenchar" Keyword_strong Keyword_strong "" Plain, "\\defaultskewchar" Keyword_strong Keyword_strong "" Plain, "\\definecolor" Keyword_strong Keyword_strong "" Plain, "\\define@key" Keyword_strong Keyword_strong "" Plain, "\\defineshortverb" Keyword_strong Keyword_strong "" Plain, "\\defineverbatimenvironment" Keyword_strong Keyword_strong "" Plain, # LaTeX class of document "\\documentclass" Keyword_strong Label_strong closers are " " Plain, /$/ Plain end closers, "\\documentclass{" Keyword_strong Label_strong "}" Plain, # LaTeX packages "\\usepackage" Keyword_strong Label_strong closers are " " Plain, /$/ Plain end closers, "\\usepackage{" Keyword_strong Label_strong "}" Plain, # (La)TeX macros usage "\\\\" Keyword_strong Keyword_strong closers in Plain are /[-{}%[(),=<>+]/, "\#", "\$", "/$/" end closers end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/texinfo.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000011510�14445053504�013032� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Texinfo files # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: texinfo.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:34 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Texinfo is requires a2ps 4.12a written by "Akim Demaille <akim@freefriends.org>" version is 1.0 documentation is "Heavy highlighting prints the nodes on separate pages" "which title is the name of the node." end documentation first alphabet is "@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%\\" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%" case sensitive keywords in Keyword_strong are # A keyword from TeX \input, @@, @^, @`, @AA, @aa, @AE, @ae, @afourpaper, @appendix, @appendixsec, @appendixsection, @appendixsubsec, @appendixsubsubsec, @apply, @asis, @author, @b, @bye, @cartouche, @center, @centerchap, @chapheading, @cindex, @cite, @clear, @columnfractions, @comment, @contents, @cropmarks, @defcodeindex, @defcv, @deffn, @deffnx, @defindex, @definfoenclose, @defivar, @defmac, @defmethod, @defop, @defopt, @defspec, @deftp, @deftypefn, @deftypefun, @deftypevar, @deftypevr, @defun, @defvar, @defvr, @dfn, @dircategory, @direntry, @display, @dmn, @dotaccent, @dotless, @dots, @email, @emph, @end, @enumerate, @evenfooting, @evenheading, @everyfooting, @everyheading, @example, @exclamdown, @exdent, @file, @filll, @finalout, @findex, @flushleft, @flushright, @foobar, @footnote, @footnotestyle, @format, @forward-word, @ftable, @group, @H, @heading, @headings, @html, @hyphenation, @ifclear, @ifhtml, @ifinfo, @ifnothtml, @ifnotinfo, @ifnottex, @ifset, @iftex, @ignore, @image, @include, @inforef, @item, @itemize, @kbd, @kbdinputstyle, @key, @kindex, @l, @L, @lisp, @lowersections, @macro, @mag, @majorheading, @makeinfo-buffer, @math, @menu, @minus, @multitable, @need, @noindent, @o, @O, @oddfooting, @oddheading, @OE, @oe, @page, @paragraphindent, @pindex, @pounds, @printindex, @pxref, @questiondown, @quotation, @raisesections, @ref, @refill, @ringaccent, @set, @setchapternewpage, @setfilename, @settitle, @shortcontents, @shorttitlepage, @smallbook, @smallexample, @smalllisp, @sp, @ss, @strong, @subheading, @subsubheading, @subtitle, @summarycontents, @syncodeindex, @synindex, @t, @table, @tex, @thischapter, @thischaptername, @thisfile, @thispage, @thistitle, @tieaccent, @tindex, @title, @titlefont, @titlepage, @today, @top, @u, @ubaraccent, @udotaccent, @unmacro, @up-list, @uref, @url, @v, @value, @var, @vindex, @vskip, @vtable, @w, @xref, @{, @}, @~ end keywords # Too much bold is a bit painful keywords in Keyword are /@itemx?/ end keywords # Some special characters keywords in Keyword are /@copyright(\\{\\})?/, /@bullet/ end keywords # They might look like dupicates, but they are not: # Then can appear as an argument to @table keywords in Keyword_strong are /@(strong|sc|code|email|emph|samp|i|r|var|file)/ Keyword_strong end keywords sequences are # The comments /@c / Comment, /@comment / Comment, # Font formatting commands /@(strong|sc|code|email|emph|samp|i|r|var|file)\\{/ Keyword_strong String } Keyword_strong exceptions are @@, @} end exceptions, # Sectionning /@chapter +/ Keyword_strong Label_strong, /@section +/ Keyword_strong Label, /@subsection +/ Keyword_strong Label, /@subsubsection +/ Keyword_strong Label, /@unnumbered +/ Keyword_strong Label_strong, /@unnumberedsec +/ Keyword_strong Label, /@unnumberedsubsec +/ Keyword_strong Label, /@unnumberedsubsubsec +/ Keyword_strong Label, # The nodes /@node +/ Keyword_strong Label "," Plain, # Open environments "@table " Keyword_strong Keyword, # End environment "@end " Keyword_strong Keyword end sequences # In -g mode, we want node to start on a new page, and give the name # of the node as page title. optional sequences are (/@node +/ "\f" Plain, Keyword_strong) (Label + Tag1) closers in Plain are ",", /$/ end closers end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/texscript.ssh��������������������������������������������������������������������0000644�0000000�0000000�00000004031�14445053504�013403� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for TeXScript # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: texscript.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:34 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style TeXScript is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 requires a2ps version 4.9.10 ancestors are pre, pretex end ancestors documentation is "TeXScript is the new name of what used to be called PreScript." "New PreScript has pure a2ps names, PreTeX has pure TeX names," "and TeXScript mixes both." end documentation sequences are # Here we hard code `$' as `\n', because the character # `\n' will receive a special treatment (Invisible). # Remember that `$' matches the null string anchored at the # end-of-line: it does not match the end-of-line character. %%TeXScript:skip Invisible "%%TeXScript:piks\n" , # Compatibility %%prescript:skip Invisible "%%prescript:piks\n" , # Seen only by a2ps, not LaTeX "\\magicbf{" Invisible Keyword_strong } Invisible, "\\magicit{" Invisible Keyword } Invisible, "\\magicbi{" Invisible Keyword_strong } Invisible, "\\magicrm{" Invisible String } Invisible, "\\magicsy{" Invisible Symbol } Invisible, "\\magictt{" Invisible Plain } Invisible end sequences end style # TeXScript �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/tiger.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003201�14445053504�012466� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Tiger # # Copyright (c) 1999 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Tiger is requires a2ps 4.10 written by "Akim Demaille <akim@freefriends.org>" version is 0.1 documentation is "Tiger is a toy language that serves as example of the book " "url(https://www.cs.princeton.edu/~appel/modern/)url(Modern Compiler Implementation)url" "by Andrew W. Appel." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword_strong are if, then, else, while, for, to, do, let, "in", "end", of, break, function, var, type, nil end keywords # Types keywords in Keyword are string, int, array end keywords # Some operators optional operators are & \wedge, | \vee, <> \neq, <= \leq, >= \geq #FIXME: ! \not I'm not sure. end operators sequences are "/*" Comment "*/", C-string end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/tk.ssh���������������������������������������������������������������������������0000644�0000000�0000000�00000004040�14445053504�011774� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for tk # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: tk.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:34 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille <akim@freefriends.org> # Inherits from tcl. ## 1.2 Larry W. Virden <lvirden@cas.org> # Cleaned up, included Tk 8.0 keywords style tk is written by "Akim Demaille <akim@freefriends.org>, Larry W. Virden <lvirden@cas.org>" version is 1.2 ancestors are tcl end ancestors documentation is "Since everything, or almost, is a string, what is printed is not" "always what you would like." end documentation keywords in Keyword_strong are bell, bind, bindtags, button, canvas, checkbutton, clipboard, destroy, dialog, entry, event, focus, font, frame, grab, grid, image, label, lbSingSel, listbox, lower, menu, menubar, menubutton, message, option, pack, place, radiobutton, raise, scale, scrollbar, selection, send, text, tk, tkerror, tkwait, tk_bisque, tk_chooseColor, tk_dialog, tk_focus_next, tk_focusPrev, tk_focusFollowsMouse, tk_getOpenFile, tk_getSaveFile, tk_messageBox, tk_optionMenu, tk_popup, tk_setPalette, toplevel, winfo, wm end keywords optional keywords are tk_library, tk_patchLevel, tkPriv, tk_strictMotif, tk_version end keywords end style ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/udiff.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003665�14445053504�012467� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for udiff output # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: udiff.ssh,v 1.1.1.1.2.2 2007/12/29 01:58:34 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.1 Akim Demaille # Make -g suppress unwanted labels of diff sections style "Unified Diff" is written by "Akim Demaille <akim@freefriends.org>" version is 1.2 requires a2ps 4.12a documentation is "This style is meant to be used onto the output unidiffs, that is to say" "output from samp(diff -u)samp." "" "Typical use of this style is:" "@example" "diff -u old new | a2ps -Eudiff" "@end example" "" "The prologue code(diff)code helps to highlight the differences " "(samp(a2ps -Ewdiff --prologue=diff)samp)." end documentation operators are # This proves I forgot a case here after # (/.*/ Error), # Something not changed, remove the first space (/ (.*)/ \1 Plain), # Header (/^(diff .*)/ \1 Comment), # Removed (/^-(.*)/ \1 Keyword), (/^(---)( .*)/ \1 Keyword, \2 Comment), # Added (/^\\+(.*)/ \1 Keyword_strong), (/^(\\+{3})( .*)/ \1 Keyword_strong, \2 Comment), # Section /@@([^@]*)@@/ Label end operators optional operators are # Section /^@@([^@]*)@@$/ Invisible end operators end style # udiff.ssh ���������������������������������������������������������������������������a2ps-4.15.5/sheets/unity.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003511�14445053504�012530� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Unity # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: unity.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:34 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style Unity is written by "Jean-Philippe Cottin <cottin@inf.enst.fr>" version is 1.0 documentation is "The graphic conversion of the symbols (option samp(-g)samp) is nice." end documentation first alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_<>=/\\|" second alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_<>=/\\|" case sensitive keywords in Keyword_strong are assign, co, const, constant, declare, "end", ensures, if, "in", initially, invariant, program, stable, transient, type, unless, var end keywords keywords in Keyword are boolean end keywords optional keywords are "\\/" \vee, "/\\" \wedge, ==> \Rightarrow, <= \leq, >= \geq, <== \Uparrow end keywords optional operators are ~ \not, ~= \neq end operators sequences are "//" Comment, "program " Keyword_strong Label_strong /$/ Plain end sequences end style ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/vba.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000004417�14445053504�012136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Visual Basic for Applications # # Copyright (c) 1999 Dirk Eddelbuettel # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Visual Basic for Applications" is written by "Dirk Eddelbuettel <edd@debian.org>" version is 1.0 requires a2ps 4.10 alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" case sensitive keywords in Keyword_strong are Abs, And, Any, As, Boolean, ByRef, ByVal, Call, Case, CBool, CCur, CDate, CDbl, CDecl, CInt, Circle, CLng, Close, Const, CSng, CStr, CurDirrase, Currency, CVar, CVDate, CVErr, Date, Debug, Declare, DefBool, DefCur, DefDate, DefInt, DefObj, DefSng, DefStr, DefVar, Dim, Dir, Do, Double, Each, Else, Elself, Empty, End, EndIf, Eqv, Erase, "Error", Exit, False, Fix, For, Format, FreeFile, Function, Get, Global, GoSub, GoTo, If, Imp, In, Input, InputB, Instr, InstrB, Int, Integer Is, LBound, Len, LenB, Let, Like, Line, Load, Local, Lock, Long, Loop, LSet, Me, Mid, MidB, Mod, Name, New, Next, Not, Nothing, Null, Object, On, Open, Option, Or, Point, Preserve, Print, Private, Property, PSet, Public, Put, ReDim, Rem, Resume, Return, RSet, Scale, Seek, Select, Set, Sgn, Shared, Single, Spc, Static, Stop, StrComp, "String", Sub, Tab, Then, To, True, Type, TypeOf, UBound, Unload, Unlock, Until, Variant, Wend, While, Width, With, Write, Xor end keywords optional keywords are Not \not, And \wedge, Or \vee end keywords optional operators are <> \neq, != \neq, <= \leq, >= \geq, == \equiv end operators sequences are "'" Comment, C-string end sequences end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/verilog.ssh����������������������������������������������������������������������0000644�0000000�0000000�00000003602�14445053504�013030� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������style VERILOG is written by "Edward Arthur <eda@ultranet.com>" version is 1.0 requires a2ps version 4.9.7 documentation is "This style is devoted to the VERILOG hardware description language." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_`\'$0" case sensitive keywords in Keyword_strong are always, and, assign, begin, buf, bufif0, bufif1, "case", casex, casez, cmos, deassign, default, defparam, disable, edge, else, "end", endcase, endmodule, endfunction, endprimitive, endspecify, endtable, endtask, event, for, force, forever, fork, function, highz0, highz1, if, initial, inout, input, integer, join, large, macromodule, medium, module, nand, negedge, nmos, nor, not, notif0, notif1, or, output, parameter, pmos, posedge, primitive, pull0, pull1, pullup, pulldown, rcmos, reg, release, repeat, rnmos, rpmos, rtran, rtranif0, rtranif1, scalared, small, specify, specparam, strength, strong0, strong1, supply0, supply1, table, task, time, tran, tranif0, tranif1, tri, tri0, tri1, triand, trior, trireg, vectored, wait, wand, weak0, weak1, while, wire, wor, xnor, xor end keywords keywords in Keyword are `accelerate, `autoexpand_vectornets, `celldefine, `default_nettype, `define, `else, `endcelldefine, `endif, `endprotect, `endprotected, `expand_vectornets, `ifdef, `include, `noaccelerate, `noexpand_vectornets, `noremove_gatenames, `noremove_netnames, `nounconnected_drive, `protect, `protected, `remove_gatenames, `remove_netnames, `resetall, `timescale, `unconnected_drive, `uselib end keywords optional keywords are not \not, or \vee, and \wedge, implies \Rightarrow end keywords sequences are "//" Comment, "/*" Comment Comment "*/" Comment, C-string, "$\\" Keyword Keyword closers are /[ ;(]/ Plain, /$/ Plain, " " Plain end closers end sequences end style ������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/vhdl.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000003421�14445053504�012315� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������style VHDL is written by "Thomas Parmelan <Thomas.Parmelan@efrei.fr>" version is 1.2 requires a2ps version 4.9.7 documentation is "Non-textual operators are not highlighted." "Some logical operators are printed as graphical symbols" "in the second level of pretty-printing." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_" keywords in Keyword_strong are abs, access, after, alias, all, and, architecture, array, assert, attribute, begin, block, body, buffer, bus, "case", component, configuration, constant, disconnect, downto, else, elsif, "end", entity, exit, file, for, function, generate, generic, guarded, if, inout, "in", "is", label, library, linkage, loop, map, mod, nand, new, next, nor, not, null, of, on, open, or, others, out, package, port, procedure, process, range, record, register, rem, report, return, select, severity, signal, subtype, then, to, transport, type, units, until, use, variable, wait, when, while, with, xor end keywords operators are # Handling of Ada-like character literals (/'(.)'/ "'" Plain, \1 String, "'" Plain) end operators keywords in Keyword are std_ulogic, std_ulogic_vector, signed, unsigned end keywords optional keywords are not \not, or \vee, and \wedge, implies \Rightarrow end keywords sequences are -- Comment, # Strings (escaping is a` la ada, not as in C) "\"" Plain String "\"" Plain exceptions are "\"\"" end exceptions, # Protect the << ' >> of the attributes /'[a-z][a-z_]*/ Plain /[^a-z_]/ Plain, # Libraries "library" Keyword_strong Label ";" Plain, # Entities /(entity|architecture|function)/ Keyword_strong Label /[ \t]*(is|of)/ Keyword_strong end sequences end style �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/vrml.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000004505�14445053504�012344� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for VRML files # Copyright (c) 1995-2000 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style VRML is written by "Nadine Richard <Nadine.Richard@ada.eu.org>" version is 1.0 requires a2ps 4.12 case sensitive documentation is "According to" " url(https://www.web3d.org/documents/specifications/14772/V2.0/part1/grammar.html)url(Grammar Definition Version 2.0 ISO/IEC CD 14772)url." end documentation # Support for the main keywords keywords in Keyword_strong are eventIn, eventOut, field, exposedField, EXTERNPROTO, ROUTE, TO, IS, DEF, USE end keywords # Node names optional keywords in Keyword are Shape, Anchor, Billboard, Collision, Group, Transform, Inline, LOD, Switch, Box, Cone, Cylinder, ElevationGrid, Extrusion, IndexedFaceSet, IndexedLineSet, PointSet, Sphere, Text, Appearance, Color, Coordinate, FontStyle, ImageTexture, Material, MovieTexture, Normal, PixelTexture, TextureCoordinate, TextureTransform, Sound, AudioClip, CylinderSensor, PlaneSensor, TimeSensor, ProximitySensor, SphereSensor, TouchSensor, VisibilitySensor, Script, ColorInterpolator, CoordinateInterpolator, NormalInterpolator, OrientationInterpolator, PositionInterpolator, ScalarInterpolator end keywords # Support for the predefined symbols keywords in Keyword are SFNode, MFNode, SFBool, SFColor, MFColor, SFFloat, MFFloat, SFImage, SFInt32, MFInt32, SFRotation, MFRotation, SFString, MFString, SFTime, MFTime, SFVect2f, MFVect2f, SFVect3f, NFVect3f end keywords sequences are # The comments "#" Comment, C-string, "DEF " Keyword_strong Label " " Plain end sequences end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/vtcl.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000004767�14445053504�012346� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Visual Tcl # Mods by Phil Hollenback (philiph@pobox.com) 1998 # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style "Visual Tcl" is written by "Phil Hollenback <philiph@pobox.com>" version is 1.0 requires a2ps version 4.10 ancestors are tclx end ancestors documentation is "All the Vtcl keywords that aren't in Tcl or TclX." end documentation keywords in Keyword are VtAddInput, VtAddTimeOut, VtBeep, VtCheckBox, VtClose, VtComboBox, VtControl, VtDestroy, VtDestroyDialog, VtDisplayHelp, VtDrawnList, VtDrawnListAddItem, VtDrawnListDeleteItem, VtDrawnListDeselectItem, VtDrawnListGetItem, VtDrawnListGetSelectedItem, VtDrawnListSelectItem, VtDrawnListSetItem, VtDrawnListSetItemValues, VtErrorDialog, VtFileSelectionDialog, VtForm, VtFormDialog, VtFrame, VtGetValues, VtHide, VtHideDialog, VtInfo, VtInformationDialog, VtLabel, VtList, VtListAddItem, VtListDeleteItem, VtListDeselectItem, VtListGetItem, VtListGetSelectedItem, VtListSelectItem, VtListSetItem, VtLock, VtMenuBar, VtMessageDialog, VtOpen, VtOptionMenu, VtPullDown, VtPushButton, VtQuestionDialog, VtQuitServer, VtRadioBox, VtRaiseDialog, VtRemoveInput, VtRemoveTimeout, VtRemoveWorkProc, VtRowColumn, VtScale, VtSelectionDialog, VtSeparator, VtSetAppValues, VtSetFocus, VtSetSensitive, VtSetValues, VtShow, VtShowDialog, VtText, VtToggleButton, VtUnLock, VtWarningDialog, VtWorkingDialog, VxAlignBaseLines, VxAlignedForm, VxCenterVertically, VxCheckBox, VxComboBox, VxEndFormCB, VxGetShortName, VxGetVar, VxList, VxMenu, VxMenuGetButton, VxOptionMenu, VxOptionMenuGetSelected, VxOptionReplaceOptions, VxOptionMenuSetSelected, VxRadioBox, VxRowColumn, VxSetLeftOffsets, VxSetVar, VxSpinButton, VxSpinButtonSetMaxValue, VxSpinButtonSetMinValue, VxText, VxWidgetVarRef, VtMainLoop end keywords end style ���������a2ps-4.15.5/sheets/wdiff.ssh������������������������������������������������������������������������0000644�0000000�0000000�00000003646�14445053504�012470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for wdiff output # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: wdiff.ssh,v 1.1.1.1.2.1 2007/12/29 01:58:34 mhatta Exp $ # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style wdiff is written by "Akim Demaille <akim@freefriends.org>" version is 1.0 documentation is "This style is meant to be used onto the output of Franc,ois Pinard's" "program code(wdiff)code. code(wdiff)code is a utility that underlines the differences" "of words between to files. Where code(diff)code make only the difference between" "lines that have changed, code(wdiff)code reports words that have changed inside the lines." "" "Typical use of this style is:" "@example" "wdiff old new | a2ps -Ewdiff" "@end example" "" "code(wdiff)code can be found in usual GNU repositories. The prologue code(diff)code" "helps to highlight the differences (samp(a2ps -Ewdiff --prologue=diff)samp)." end documentation optional sequences are "{+" Invisible Keyword_strong "+}" Invisible, "[-" Invisible Keyword "-]" Invisible end sequences sequences are "{wd+" Invisible Keyword_strong "+wd}" Invisible, "[wd-" Invisible Keyword "-wd]" Invisible end sequences end style ������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/xs.ssh���������������������������������������������������������������������������0000644�0000000�0000000�00000003503�14445053504�012013� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Perl XS # Copyright 1999 Kestutis Kupciunas. # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # style XS is requires a2ps 4.12a written by "Kestutis Kupciunas <kesha@soften.ktu.lt>" version is 0.1 documentation is "This style covers Perl XS language." end documentation case sensitive ancestors are gnuc end ancestors keywords in Keyword are SV, SVREF, PV, IV, AV, HV, CV, I32, I16, I8, U32, U16, U8, STRLEN, Result, Boolean, double, SysRet, SysRetLong, FileHandle, InputStream, InOutStream, OutputStream, caddr_t, wchar_t, bool_t, size_t, ssize_t, time_t, bool, Time_t end keywords keywords in Keyword_strong are # standard keywords: currently ALL available OUTPUT, CODE, INIT, NO_INIT, PREINIT, SCOPE, INPUT, C_ARGS, PPCODE, REQUIRE, CLEANUP, BOOT, VERSIONCHECK, PROTOTYPES, PROTOTYPE, ALIAS, INTERFACE, INTERFACE_MACRO, INCLUDE, CASE, # XS special functions to highlight. probably will expand in the future EXTEND, PUSHs, ST end keywords # these are not really labels. but it's good to have them # highlighted differently than keywords are keywords in Label_strong are MODULE, PACKAGE, PREFIX end keywords end style ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/yacc.ssh�������������������������������������������������������������������������0000644�0000000�0000000�00000003155�14445053504�012303� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for Yacc/Bison files # Copyright (c) 1995-1999 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.2 Akim Demaille # Added the dot to the label and the alphabets. ## 1.1 Akim Demaille # The labelling is smarter. style Yacc is requires a2ps 4.12a written by "Akim Demaille <akim@freefriends.org>" version is 1.3 documentation is "Special tokens, and non terminal declarations are highlighted." end documentation alphabets are "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#$%." ancestors are c end ancestors # Special keywords keywords in Keyword_strong are %union, %token, %right, %left, %nonassoc, %type, %start, %expect, %pure_parser, %no_lines, %raw, %token_table end keywords # We want to see the names of the rules defined. I've seen dots # used int the C++ grammar of GCC. operators are (/^([a-zA-Z0-9_.]*)([\t ]*:)/ \1 Label_strong, \2 Plain) end operators end style �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/sheets/zsh.ssh��������������������������������������������������������������������������0000644�0000000�0000000�00000004436�14445053504�012173� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Style sheet for zsh # Copyright (c) 1995-2000 Akim Demaille, Miguel Santana # # # This file is part of a2ps. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # ## 1.2 Akim Demaille # Inherit sh.ssh style "Z Shell" is version is 1.3 ancestors are sh end ancestors documentation is "Zsh is a UNIX command interpreter (shell) usable as an interactive" "login shell and as a shell script command processor. Of the standard" "shells, zsh most closely resembles ksh but includes many enhancements." "Zsh has comand line editing, builtin spelling correction, programmable" "command completion, shell functions (with autoloading), a history" "mechanism, and a host of other features." "" "This style sheet highlights some classical program names and builtins" "in the second level of pretty-printing." end documentation keywords in Keyword_strong are alias, autoload, bg, bindkey, builtin, bye, chdir, compctl, declare, dirs, disable, disown, echotc, emulate, enable, false, fc, fg, functions, getln, getopts, hash, history, integer, jobs, kill, let, limit, local, log, logout, popd, print, pushd, pushln, pwd, r, read, readonly, rehash, return, sched, setopt, suspend, test, times, true, ttyctl, typeset, ulimit, unalias, unfunction, unhash, unlimit, unsetopt, vared, wait, whence, where, which, noglob, nocorrect, command, foreach, "end", repeat, select, function, time, coproc end keywords optional keywords are && \wedge, || \vee, ^^ \oplus, != \neq, == \equiv, <= \leq, >= \geq end keywords optional operators are ! \not end operators sequences are "#" Comment, C-string, C-char end sequences end style ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14445132366�010221� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000003637�14445053504�012202� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # I don't really understand why I have to put srcdir here, but # it is needed for yacc and lex files (seems related to #line, but # I really don't understand why)... AM_CPPFLAGS = -I.. -I$(srcdir) -I$(top_srcdir)/liba2ps \ -I$(top_srcdir)/lib -I$(top_builddir)/lib -DLOCALEDIR=\"$(localedir)\" AM_CFLAGS = $(WARN_CFLAGS) $(BDW_GC_FLAGS) bin_SCRIPTS = a2ps-lpr-wrapper bin_PROGRAMS = a2ps a2ps_SOURCES = main.c \ read.c sshread.c ssheet.c select.c generate.c \ delegate.c buffer.c versions.c ffaces.c noinst_HEADERS = main.h \ read.h sshread.h ssheet.h select.h generate.h \ delegate.h buffer.h versions.h ffaces.h \ yy2ssh.h lexps.h noinst_LIBRARIES = libparse.a libparse_a_SOURCES = parsessh.y lexssh.l lexps.l sheets-map.l libparse_a_CFLAGS = $(BDW_GC_FLAGS) BUILT_SOURCES = parsessh.c lexssh.c lexps.c sheets-map.c AM_YFLAGS = -dtv LEX = @LEX@ a2ps_LDADD = $(top_builddir)/liba2ps/liba2ps.la $(top_builddir)/liba2ps/libnowarnings.a libparse.a $(LIBINTL) ../lib/libgnu.la -lm $(BDW_GC_LIBS) -lpaper # FIXME: hard coded. loc-local: cd $(srcdir) && $(CLOC) $(CLOC_OPTS) $(a2ps_SOURCES) $(noinst_HEADERS) $(libparse_a_SOURCES) $(bin_SCRIPTS) EXTRA_DIST = $(BUILT_SOURCES) parsessh.h $(bin_SCRIPTS) �������������������������������������������������������������������������������������������������a2ps-4.15.5/src/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000235266�14445132055�012217� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1988-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = a2ps$(EXEEXT) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) LIBRARIES = $(noinst_LIBRARIES) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libparse_a_AR = $(AR) $(ARFLAGS) libparse_a_LIBADD = am_libparse_a_OBJECTS = libparse_a-parsessh.$(OBJEXT) \ libparse_a-lexssh.$(OBJEXT) libparse_a-lexps.$(OBJEXT) \ libparse_a-sheets-map.$(OBJEXT) libparse_a_OBJECTS = $(am_libparse_a_OBJECTS) am_a2ps_OBJECTS = main.$(OBJEXT) read.$(OBJEXT) sshread.$(OBJEXT) \ ssheet.$(OBJEXT) select.$(OBJEXT) generate.$(OBJEXT) \ delegate.$(OBJEXT) buffer.$(OBJEXT) versions.$(OBJEXT) \ ffaces.$(OBJEXT) a2ps_OBJECTS = $(am_a2ps_OBJECTS) am__DEPENDENCIES_1 = a2ps_DEPENDENCIES = $(top_builddir)/liba2ps/liba2ps.la \ $(top_builddir)/liba2ps/libnowarnings.a libparse.a \ $(am__DEPENDENCIES_1) ../lib/libgnu.la $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } SCRIPTS = $(bin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/buffer.Po ./$(DEPDIR)/delegate.Po \ ./$(DEPDIR)/ffaces.Po ./$(DEPDIR)/generate.Po \ ./$(DEPDIR)/libparse_a-lexps.Po \ ./$(DEPDIR)/libparse_a-lexssh.Po \ ./$(DEPDIR)/libparse_a-parsessh.Po \ ./$(DEPDIR)/libparse_a-sheets-map.Po ./$(DEPDIR)/main.Po \ ./$(DEPDIR)/read.Po ./$(DEPDIR)/select.Po \ ./$(DEPDIR)/ssheet.Po ./$(DEPDIR)/sshread.Po \ ./$(DEPDIR)/versions.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) AM_V_LEX = $(am__v_LEX_@AM_V@) am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) am__v_LEX_0 = @echo " LEX " $@; am__v_LEX_1 = YLWRAP = $(top_srcdir)/build-aux/ylwrap am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ -e s/c++$$/h++/ -e s/c$$/h/ YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) AM_V_YACC = $(am__v_YACC_@AM_V@) am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) am__v_YACC_0 = @echo " YACC " $@; am__v_YACC_1 = SOURCES = $(libparse_a_SOURCES) $(a2ps_SOURCES) DIST_SOURCES = $(libparse_a_SOURCES) $(a2ps_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp $(top_srcdir)/build-aux/ylwrap \ lexps.c lexssh.c parsessh.c sheets-map.c DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # I don't really understand why I have to put srcdir here, but # it is needed for yacc and lex files (seems related to #line, but # I really don't understand why)... AM_CPPFLAGS = -I.. -I$(srcdir) -I$(top_srcdir)/liba2ps \ -I$(top_srcdir)/lib -I$(top_builddir)/lib -DLOCALEDIR=\"$(localedir)\" AM_CFLAGS = $(WARN_CFLAGS) $(BDW_GC_FLAGS) bin_SCRIPTS = a2ps-lpr-wrapper a2ps_SOURCES = main.c \ read.c sshread.c ssheet.c select.c generate.c \ delegate.c buffer.c versions.c ffaces.c noinst_HEADERS = main.h \ read.h sshread.h ssheet.h select.h generate.h \ delegate.h buffer.h versions.h ffaces.h \ yy2ssh.h lexps.h noinst_LIBRARIES = libparse.a libparse_a_SOURCES = parsessh.y lexssh.l lexps.l sheets-map.l libparse_a_CFLAGS = $(BDW_GC_FLAGS) BUILT_SOURCES = parsessh.c lexssh.c lexps.c sheets-map.c AM_YFLAGS = -dtv a2ps_LDADD = $(top_builddir)/liba2ps/liba2ps.la $(top_builddir)/liba2ps/libnowarnings.a libparse.a $(LIBINTL) ../lib/libgnu.la -lm $(BDW_GC_LIBS) -lpaper # FIXME: hard coded. EXTRA_DIST = $(BUILT_SOURCES) parsessh.h $(bin_SCRIPTS) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .l .lo .o .obj .y $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libparse.a: $(libparse_a_OBJECTS) $(libparse_a_DEPENDENCIES) $(EXTRA_libparse_a_DEPENDENCIES) $(AM_V_at)-rm -f libparse.a $(AM_V_AR)$(libparse_a_AR) libparse.a $(libparse_a_OBJECTS) $(libparse_a_LIBADD) $(AM_V_at)$(RANLIB) libparse.a a2ps$(EXEEXT): $(a2ps_OBJECTS) $(a2ps_DEPENDENCIES) $(EXTRA_a2ps_DEPENDENCIES) @rm -f a2ps$(EXEEXT) $(AM_V_CCLD)$(LINK) $(a2ps_OBJECTS) $(a2ps_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delegate.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffaces.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libparse_a-lexps.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libparse_a-lexssh.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libparse_a-parsessh.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libparse_a-sheets-map.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssheet.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sshread.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/versions.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libparse_a-parsessh.o: parsessh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -MT libparse_a-parsessh.o -MD -MP -MF $(DEPDIR)/libparse_a-parsessh.Tpo -c -o libparse_a-parsessh.o `test -f 'parsessh.c' || echo '$(srcdir)/'`parsessh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparse_a-parsessh.Tpo $(DEPDIR)/libparse_a-parsessh.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parsessh.c' object='libparse_a-parsessh.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -c -o libparse_a-parsessh.o `test -f 'parsessh.c' || echo '$(srcdir)/'`parsessh.c libparse_a-parsessh.obj: parsessh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -MT libparse_a-parsessh.obj -MD -MP -MF $(DEPDIR)/libparse_a-parsessh.Tpo -c -o libparse_a-parsessh.obj `if test -f 'parsessh.c'; then $(CYGPATH_W) 'parsessh.c'; else $(CYGPATH_W) '$(srcdir)/parsessh.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparse_a-parsessh.Tpo $(DEPDIR)/libparse_a-parsessh.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parsessh.c' object='libparse_a-parsessh.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -c -o libparse_a-parsessh.obj `if test -f 'parsessh.c'; then $(CYGPATH_W) 'parsessh.c'; else $(CYGPATH_W) '$(srcdir)/parsessh.c'; fi` libparse_a-lexssh.o: lexssh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -MT libparse_a-lexssh.o -MD -MP -MF $(DEPDIR)/libparse_a-lexssh.Tpo -c -o libparse_a-lexssh.o `test -f 'lexssh.c' || echo '$(srcdir)/'`lexssh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparse_a-lexssh.Tpo $(DEPDIR)/libparse_a-lexssh.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lexssh.c' object='libparse_a-lexssh.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -c -o libparse_a-lexssh.o `test -f 'lexssh.c' || echo '$(srcdir)/'`lexssh.c libparse_a-lexssh.obj: lexssh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -MT libparse_a-lexssh.obj -MD -MP -MF $(DEPDIR)/libparse_a-lexssh.Tpo -c -o libparse_a-lexssh.obj `if test -f 'lexssh.c'; then $(CYGPATH_W) 'lexssh.c'; else $(CYGPATH_W) '$(srcdir)/lexssh.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparse_a-lexssh.Tpo $(DEPDIR)/libparse_a-lexssh.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lexssh.c' object='libparse_a-lexssh.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -c -o libparse_a-lexssh.obj `if test -f 'lexssh.c'; then $(CYGPATH_W) 'lexssh.c'; else $(CYGPATH_W) '$(srcdir)/lexssh.c'; fi` libparse_a-lexps.o: lexps.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -MT libparse_a-lexps.o -MD -MP -MF $(DEPDIR)/libparse_a-lexps.Tpo -c -o libparse_a-lexps.o `test -f 'lexps.c' || echo '$(srcdir)/'`lexps.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparse_a-lexps.Tpo $(DEPDIR)/libparse_a-lexps.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lexps.c' object='libparse_a-lexps.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -c -o libparse_a-lexps.o `test -f 'lexps.c' || echo '$(srcdir)/'`lexps.c libparse_a-lexps.obj: lexps.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -MT libparse_a-lexps.obj -MD -MP -MF $(DEPDIR)/libparse_a-lexps.Tpo -c -o libparse_a-lexps.obj `if test -f 'lexps.c'; then $(CYGPATH_W) 'lexps.c'; else $(CYGPATH_W) '$(srcdir)/lexps.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparse_a-lexps.Tpo $(DEPDIR)/libparse_a-lexps.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lexps.c' object='libparse_a-lexps.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -c -o libparse_a-lexps.obj `if test -f 'lexps.c'; then $(CYGPATH_W) 'lexps.c'; else $(CYGPATH_W) '$(srcdir)/lexps.c'; fi` libparse_a-sheets-map.o: sheets-map.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -MT libparse_a-sheets-map.o -MD -MP -MF $(DEPDIR)/libparse_a-sheets-map.Tpo -c -o libparse_a-sheets-map.o `test -f 'sheets-map.c' || echo '$(srcdir)/'`sheets-map.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparse_a-sheets-map.Tpo $(DEPDIR)/libparse_a-sheets-map.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sheets-map.c' object='libparse_a-sheets-map.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -c -o libparse_a-sheets-map.o `test -f 'sheets-map.c' || echo '$(srcdir)/'`sheets-map.c libparse_a-sheets-map.obj: sheets-map.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -MT libparse_a-sheets-map.obj -MD -MP -MF $(DEPDIR)/libparse_a-sheets-map.Tpo -c -o libparse_a-sheets-map.obj `if test -f 'sheets-map.c'; then $(CYGPATH_W) 'sheets-map.c'; else $(CYGPATH_W) '$(srcdir)/sheets-map.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparse_a-sheets-map.Tpo $(DEPDIR)/libparse_a-sheets-map.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sheets-map.c' object='libparse_a-sheets-map.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparse_a_CFLAGS) $(CFLAGS) -c -o libparse_a-sheets-map.obj `if test -f 'sheets-map.c'; then $(CYGPATH_W) 'sheets-map.c'; else $(CYGPATH_W) '$(srcdir)/sheets-map.c'; fi` .l.c: $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) .y.c: $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs loc-local: ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(SCRIPTS) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f lexps.c -rm -f lexssh.c -rm -f parsessh.c -rm -f sheets-map.c -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool \ clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/buffer.Po -rm -f ./$(DEPDIR)/delegate.Po -rm -f ./$(DEPDIR)/ffaces.Po -rm -f ./$(DEPDIR)/generate.Po -rm -f ./$(DEPDIR)/libparse_a-lexps.Po -rm -f ./$(DEPDIR)/libparse_a-lexssh.Po -rm -f ./$(DEPDIR)/libparse_a-parsessh.Po -rm -f ./$(DEPDIR)/libparse_a-sheets-map.Po -rm -f ./$(DEPDIR)/main.Po -rm -f ./$(DEPDIR)/read.Po -rm -f ./$(DEPDIR)/select.Po -rm -f ./$(DEPDIR)/ssheet.Po -rm -f ./$(DEPDIR)/sshread.Po -rm -f ./$(DEPDIR)/versions.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-binSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/buffer.Po -rm -f ./$(DEPDIR)/delegate.Po -rm -f ./$(DEPDIR)/ffaces.Po -rm -f ./$(DEPDIR)/generate.Po -rm -f ./$(DEPDIR)/libparse_a-lexps.Po -rm -f ./$(DEPDIR)/libparse_a-lexssh.Po -rm -f ./$(DEPDIR)/libparse_a-parsessh.Po -rm -f ./$(DEPDIR)/libparse_a-sheets-map.Po -rm -f ./$(DEPDIR)/main.Po -rm -f ./$(DEPDIR)/read.Po -rm -f ./$(DEPDIR)/select.Po -rm -f ./$(DEPDIR)/ssheet.Po -rm -f ./$(DEPDIR)/sshread.Po -rm -f ./$(DEPDIR)/versions.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS .MAKE: all check install install-am install-exec install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool \ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-binSCRIPTS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs loc-am loc-local \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-binSCRIPTS .PRECIOUS: Makefile loc-local: cd $(srcdir) && $(CLOC) $(CLOC_OPTS) $(a2ps_SOURCES) $(noinst_HEADERS) $(libparse_a_SOURCES) $(bin_SCRIPTS) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/a2ps-lpr-wrapper��������������������������������������������������������������������0000754�0000000�0000000�00000001643�14415540605�013204� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # # a2ps-lpr-wrapper - lp/lpr wrapper script for GNU a2ps set -e usage() { echo "Usage: $(basename "$0") [-d printer] FILE..." >&2 exit 1 } printer="" while getopts d: flag; do case "$flag" in d) printer=$OPTARG ;; *) usage ;; esac done shift $((OPTIND - 1)) if [ $# -eq 0 ]; then usage; fi # If lp (from CUPS) exists, just use it. if command -pv lp > /dev/null; then printer_opt=-d command="lp" elif command -pv lpr >/dev/null; then # In case lp is not available, then fall back to lpr. printer_opt=-P command="lpr" elif command -pv rlpr >/dev/null; then # In case lpr is not available, then fall back to rlpr. printer_opt=-P command="rlpr" else # If none of lp, lpr and rlpr is available, then fail echo "$0: no program found to print files" exit 1 fi # Run the command opts="" if [ "$printer" != "" ]; then opts="$printer_opt $printer" fi command -p "$command" $opts "$@" ���������������������������������������������������������������������������������������������a2ps-4.15.5/src/buffer.c����������������������������������������������������������������������������0000644�0000000�0000000�00000030162�14251171120�011542� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* buffer.c - read line by line with conversion of EOL types Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* FIXME: There is a case where the behavior is probably wrong: mixed string/stream buffers. It may happen that the last char of the string part be a '\n' (or '\r') and buffer wants to see the next char (to see if is a '\r' (or '\n')), but the next char is in the stream, not the string. Currently it does not fetch that next char. */ #include <config.h> #include "a2ps.h" #include "routines.h" #include "argmatch.h" #include "buffer.h" /****************************************************************/ /* Handling of the various eol styles */ /****************************************************************/ const char * eol_to_string (enum eol_e eol) { switch (eol) { case eol_r: return "\\r"; case eol_n: return "\\n"; case eol_rn: return "\\r\\n"; case eol_nr: return "\\n\\r"; case eol_auto: /* TRANS: the type of the end-of-line rules, is `any type', i.e. lines ended by \n, or \r, or \r\n, or \n\r are OK */ return _ ("any type"); default: abort (); } return NULL; /* -Wall */ } /* * What about the bools */ static const char *const eol_args[] = { "r", "mac", "n", "unix", "nr", "rn", "pc", "auto", "any", "4x4", 0 }; static const enum eol_e eol_types[] = { eol_r, eol_r, eol_n, eol_n, eol_nr, eol_rn, eol_rn, eol_auto, eol_auto, eol_auto }; enum eol_e option_string_to_eol (const char *option, const char *arg) { //ARGMATCH_VERIFY (eol_args, eol_types); return XARGMATCH (option, arg, eol_args, eol_types); } /****************************************************************/ /* buffer_t Service routines */ /****************************************************************/ static inline void buffer_internal_set (buffer_t * buffer, FILE * stream, const char * buf, size_t bufsize, bool pipe_p, enum eol_e eol) { buffer->buf = buf; buffer->bufsize = bufsize; buffer->bufoffset = 0; buffer->stream = stream; buffer->pipe_p = pipe_p; buffer->content = NULL; buffer->eol = eol; buffer->lower_case = false; /* By default, no lower case version. */ buffer->value = NULL; buffer->line = 0; buffer->allocsize = 0; buffer->len = 0; buffer->curr = 0; obstack_init (&buffer->obstack); } void buffer_stream_set (buffer_t * buffer, FILE * stream, enum eol_e eol) { buffer_internal_set (buffer, stream, NULL, 0, false, eol); } void buffer_pipe_set (buffer_t * buffer, FILE * stream, enum eol_e eol) { buffer_internal_set (buffer, stream, NULL, 0, true, eol); } void buffer_string_set (buffer_t * buffer, const char * string, enum eol_e eol) { buffer_internal_set (buffer, NULL, string, strlen (string), false, eol); } void buffer_buffer_set (buffer_t * buffer, const char * buf, size_t bufsize, enum eol_e eol) { buffer_internal_set (buffer, NULL, buf, bufsize, false, eol); } /* getc and ungetc on the stream of Buf. */ #define sgetc(Buf) (getc ((Buf)->stream)) #define sungetc(Char, Buf) (ungetc (Char, (Buf)->stream)) /* getc and ungetc on the buffer of Buf. It is much more tricky, especially if Buf is mixed buffer/stream. Even when the buffer was completely read, the oofset must be increased. */ #define bgetc(Buf) \ (((Buf)->bufoffset < (Buf)->bufsize) \ ? ((Buf)->buf[(Buf)->bufoffset++]) \ : ((Buf)->bufoffset++, EOF)) #define bungetc(Char, Buf) ((Buf)->bufoffset--) void buffer_self_print (buffer_t * buffer, FILE * stream) { if (buffer->buf) fprintf (stream, "A string buffer. Bufoffset %zu\n", buffer->bufoffset); if (buffer->stream) fprintf (stream, "A stream buffer (%s).\n", buffer->pipe_p ? "pipe" : "file"); fprintf (stream, "Len = %zu, Lower case = %d, Line = %zu\n", buffer->len, buffer->lower_case, buffer->line); if (buffer->len) fprintf (stream, "Content = `%s'\n", buffer->content); } void buffer_set_lower_case (buffer_t * buffer, bool sensitive) { buffer->lower_case = sensitive; } /* * Get a line from BUFFER->STREAM. * Returns true if a full line has been read, * false if EOF was met before */ static inline bool buffer_stream_get_line (buffer_t * buffer) { int c, d; while ((c = sgetc (buffer)) != EOF) switch (c) { case '\n': switch (buffer->eol) { case eol_r: case eol_rn: /* \n plain char */ goto stream_plain_char; case eol_auto: /* If the next char is a \r, eat it */ if ((d = sgetc (buffer)) != '\r') sungetc (d, buffer); break; case eol_n: /* This is a good eol */ break; case eol_nr: if ((d = sgetc (buffer)) != '\r') { /* This is \n, but eol is \n\r: make it a plain char */ sungetc (d, buffer); goto stream_plain_char; } /* This is eol=\n\r, just return \n */ break; } /* End it. No need to NUL-terminate */ obstack_1grow (&buffer->obstack, (char) c); return true; case '\r': switch (buffer->eol) { case eol_n: case eol_nr: /* \r plain char */ goto stream_plain_char; case eol_r: /* This is a good eol, but the lib uses \n */ c = '\n'; break; case eol_auto: /* If the next char is a \n, eat it */ if ((d = sgetc (buffer)) != '\n') sungetc (d, buffer); c = '\n'; break; case eol_rn: if ((d = sgetc (buffer)) != '\n') { /* This is \r, but eol is \r\n: make it a plain char */ sungetc (d, buffer); goto stream_plain_char; } /* This is eol = \r\n: just return \n */ c = '\n'; break; } /* End it. No need to NUL-terminate */ obstack_1grow (&buffer->obstack, (char) c); return true; default: stream_plain_char: obstack_1grow (&buffer->obstack, (char) c); break; } /* If we are here, it's because there is nothing more to read, and the last char was not an eol: report the line is not complete. */ return false; } /* * Get a line from BUFFER->BUF * * Note that we could have made it destuctive. * But would have caused problem if some day we want to use * mmap. * * Returns true if a full line has been read, * false if EOF (i.e. offset >= bufsize) was met before */ static inline bool buffer_string_get_line (buffer_t * buffer) { int c, d; while ((c = bgetc (buffer)) != EOF) switch (c) { case '\n': switch (buffer->eol) { case eol_r: case eol_rn: /* \n plain char */ goto string_plain_char; case eol_auto: /* If the next char is a \r, eat it */ if ((d = bgetc (buffer)) != '\r') bungetc (d, buffer); break; case eol_n: /* This is a good eol */ break; case eol_nr: if ((d = bgetc (buffer)) != '\r') { /* This is \n, but eol is \n\r: make it a plain char */ bungetc (d, buffer); goto string_plain_char; } /* This is eol=\n\r, just return \n */ break; } /* End it. No need to NUL-terminate */ obstack_1grow (&buffer->obstack, (char) c); return true; case '\r': switch (buffer->eol) { case eol_n: case eol_nr: /* \r plain char */ goto string_plain_char; case eol_r: /* This is a good eol, but the lib uses \n */ c = '\n'; break; case eol_auto: /* If the next char is a \n, eat it */ if ((d = bgetc (buffer)) != '\n') bungetc (d, buffer); c = '\n'; break; case eol_rn: if ((d = bgetc (buffer)) != '\n') { /* This is \r, but eol is \r\n: make it a plain char */ bungetc (d, buffer); goto string_plain_char; } /* This is eol = \r\n: just return \n */ c = '\n'; break; } /* End it. No need to NUL-terminate */ obstack_1grow (&buffer->obstack, (char) c); return true; default: string_plain_char: obstack_1grow (&buffer->obstack, (char) c); break; } /* If we are here, it's because there is nothing more to read, and the last char was not an eol: report the line is not complete. */ return false; } /* buffer_get * if the language is case insensitive, * build a lower case version of the buffer */ void buffer_get (buffer_t * buffer) { bool line_ended_p = false; /* the line read finishes by eol */ /* If there is something to read from the buffered string, fetch it */ if (buffer->buf && buffer->bufoffset < buffer->bufsize) line_ended_p = buffer_string_get_line (buffer); /* If the line was not finished, continue the reading but in the stream. This includes the case where there is no buf */ if (buffer->stream && !line_ended_p) line_ended_p = buffer_stream_get_line (buffer); /* A full line has been read. Close the obstack, get the content. We NUL terminate because it helps the parsing functions such as match_keyword, which looks one char after the current char. With this sentinel, which is probably not in the alphabet, we save a test on the length of the buffer. */ buffer->len = obstack_object_size (&buffer->obstack); obstack_1grow (&buffer->obstack, '\0'); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wsign-conversion" buffer->content = obstack_finish (&buffer->obstack); #pragma GCC diagnostic pop /* One more line read */ buffer->line++; /* If the eol char is preceded by a \f, then just forget the eol, so that there won't be a blank line at the top of the next page */ if ((buffer->len >= 2) && buffer->content[buffer->len - 2] == '\f') { buffer->content[--(buffer->len)] = '\0'; } if (buffer->lower_case) { size_t i; if (buffer->allocsize <= buffer->len) buffer->allocsize = buffer->len + 1; buffer->value = xnrealloc (buffer->value, buffer->allocsize, sizeof(unsigned char)); for (i = 0; i <= buffer->len; i++) buffer->value[i] = (char) tolower (buffer->content[i]); } else { buffer->value = buffer->content; } buffer->curr = 0; } /* buffer_sample_get * extract a piece of a BUFFER's stream into FILENAME * * The piece that has been extracted is taken as buf in BUFFER, so that * we still can use it. */ void buffer_sample_get (buffer_t * buffer, const char *filename) { /* I think that most file(1) just use the 512 first bytes */ #define SAMPLE_SIZE 512 FILE *out = xwfopen (filename); size_t cur = 0; int c; char *sample_buffer = XNMALLOC (SAMPLE_SIZE, char); for (; (cur < SAMPLE_SIZE) && ((c = sgetc (buffer)) != EOF); cur++) { sample_buffer[cur] = (char) c; putc (c, out); } /* Put the sample into the buffer for later use */ buffer->buf = sample_buffer; buffer->bufsize = cur; fclose (out); } /* buffer_save * save the content of BUFFER to the file FILENAME * if BUFFER has a buf, dump it * then if it has a stream, dump its content * * Note that the buffer is no longer usable: we don't rewind it, * because it can be stdin. */ void buffer_save (buffer_t * buffer, const char *filename) { FILE *out = xwfopen (filename); if (buffer->buf) { size_t cur; for (cur = 0; cur < buffer->bufsize; cur++) putc (buffer->buf[cur], out); } if (buffer->stream) streams_copy (buffer->stream, out); fclose (out); } /* * Check if sample + dump are OK. Only for debug purpose */ #if BUFFER_TEST void buffer_test (const char *filename) { FILE *in = xrfopen (filename); buffer_t buffer; buffer_stream_set (&buffer, in, eol_n); buffer_sample_get (&buffer, "/tmp/sample"); buffer_save (&buffer, "/tmp/dump"); buffer_release (&buffer); } #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/buffer.h����������������������������������������������������������������������������0000644�0000000�0000000�00000005775�14251132535�011572� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* buffer.h - read line by line with conversion of EOL types Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _BUFFER_H_ #define _BUFFER_H_ #include "xobstack.h" /****************************************************************/ /* buffer_t Service routines */ /****************************************************************/ /* * How the eol should be handled */ enum eol_e { eol_r, /* \r only */ eol_n, /* \n */ eol_rn, /* \r\n */ eol_nr, /* \n\r */ eol_auto /* Any of the previous */ }; const char * eol_to_string (enum eol_e eol); enum eol_e option_string_to_eol (const char * option, const char * arg); /* * The buffer structure, which encloses a lower case version to * speed up case insensitive parsing * There are two types: * - buf != NULL : input comes from stream_string, read line by line. * - stream != NULL : input comes from stream, read line by line. * - both non NULL : first read buf, then stream. * */ typedef struct buffer_s { const char * buf; /* != 0 -> buffer on a string */ size_t bufsize; /* size of buf */ size_t bufoffset; /* Used when a buffer string */ FILE * stream; /* != 0 -> a buffer on a stream */ bool pipe_p; /* true -> stream has been popened */ char *content; /* Exactly what is read */ enum eol_e eol; /* What is an end of line? */ bool lower_case; char * value; /* if LOWER_CASE, then lower case of content */ size_t line; /* Num of the current line */ size_t allocsize; /* Used to know how big lower_case is */ size_t len; size_t curr; struct obstack obstack; } buffer_t; void buffer_stream_set (buffer_t * buffer, FILE * stream, enum eol_e eol); void buffer_pipe_set (buffer_t * buffer, FILE * stream, enum eol_e eol); void buffer_string_set (buffer_t * buffer, const char * string, enum eol_e eol); void buffer_buffer_set (buffer_t * buffer, const char * buf, size_t bufsize, enum eol_e eol); void buffer_set_lower_case (buffer_t * buffer, bool lower_case); void buffer_self_print (buffer_t * buffer, FILE * stream); void buffer_release (buffer_t * buffer); void buffer_get (buffer_t * buffer); void buffer_sample_get (buffer_t * buffer, const char * filename); void buffer_save (buffer_t * buffer, const char * filename); #define buffer_is_empty(Buf) (Buf->curr >= Buf->len) #endif ���a2ps-4.15.5/src/delegate.c��������������������������������������������������������������������������0000644�0000000�0000000�00000027177�14251132535�012066� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* delegate.c - handling the delegations Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "fjobs.h" #include "output.h" #include "delegate.h" #include "message.h" #include "routines.h" #include "metaseq.h" #include "dsc.h" #include "buffer.h" #include "lister.h" #include "quotearg.h" /* Priviledge access to job and delegations */ extern struct a2ps_job *job; extern struct hash_table_s *delegation_table; /************************************************************************/ /* Handling of the hash table of the delegations */ /************************************************************************/ /* * The hashing is done on the contract, not the name (who * cares the name of the contract!) */ static unsigned long delegate_hash_1 (void const *key) { return_STRING_HASH_1 (((const struct delegation *) key)->contract); } static unsigned long delegate_hash_2 (void const *key) { return_STRING_HASH_2 (((const struct delegation *) key)->contract); } static int delegate_hash_cmp (void const *x, void const *y) { return_STRING_COMPARE (((const struct delegation *) x)->contract, ((const struct delegation *) y)->contract); } static int delegate_hash_qcmp (const struct delegation **x, const struct delegation **y) { return_STRING_COMPARE ((*x)->name, (*y)->name); } static size_t delegate_name_len (struct delegation *delegation) { return strlen (delegation->name); } static int delegate_name_fputs (struct delegation *delegation, FILE * stream) { return fputs (delegation->name, stream); } /* * Create the table handling the subcontracts */ struct hash_table_s * delegation_table_new (void) { struct hash_table_s * res = XMALLOC (struct hash_table_s); hash_init (res, 8, delegate_hash_1, delegate_hash_2, delegate_hash_cmp); return res; } /************************************************************************/ /* Use of the subcontracts */ /************************************************************************/ /* * Read a (PS) file, and extract the NeededResources etc. * To include in the whole file Prolog. * Get the number of pages too. */ /* * Read a line "Delegation: <CONTRACT_LINE>" in a config file */ #define error_if_null(_str_) \ if (_str_ == NULL) \ error_at_line (1, 0, filename, line, \ _("missing argument for `%s'"), quotearg (contract_line)); void add_delegation (const char *filename, unsigned line, char *contract_line) { char *cp, *cp2; struct delegation *contract; contract = XMALLOC (struct delegation); /* Structure of the line: <name of contract> <source type>:<destination type> <command> */ cp = strtok (contract_line, " \t\n"); error_if_null (cp); contract->name = xstrdup (cp); cp = strtok (NULL, " \t\n:"); error_if_null (cp); cp2 = strtok (NULL, " \t\n"); error_if_null (cp2); contract->contract = XNMALLOC (strlen (cp) + strlen (cp2) + 2, char); sprintf (contract->contract, "%s:%s", cp, cp2); cp = strtok (NULL, "\n"); error_if_null (cp); contract->command = xstrdup (cp + strspn (cp, "\t ")); /* Put it in the table */ hash_insert (delegation_table, contract); } /* * Return the subcontract if there is, otherwise NULL */ struct delegation * get_subcontract (const char *src_type, const char *dest_type) { struct delegation token; token.contract = ALLOCA (char, strlen (src_type) + strlen (dest_type) + 2); sprintf (token.contract, "%s:%s", src_type, dest_type); return (struct delegation *) hash_find_item (delegation_table, &token); } /* * Return the command associated a sub contract. * if EVALUATE, return the evaluated command. * The result is not malloc'ed, and must be used before * any other call to expand_user_string. */ char * get_delegate_command (struct delegation *contract, struct file_job *file, int evaluate) { if (evaluate) return (char *) expand_user_string (job, file, "delegating command", contract->command); else return contract->command; } /* * Subcontract FILE to CONTRACTOR * This should produce a tmp file, then insert in the OUTPUT struture * the routine to dump and remove it. * Return true open success, false otherwise */ enum continuation_e { no_continuation, needed_resource }; int subcontract (struct file_job *fjob, buffer_t * buffer, struct delegation *contractor) { char *command, *stdin_content_filename = NULL; FILE *in_stream, *out_stream; int lines_read = 0; char buf[512]; /* Here we store the type of the last %%??Resource: tag we saw, * to be ready to handle continuation (%%+ ) */ enum continuation_e continuation = no_continuation; /* This is an awful kludge. I dunno how to do it nicely... The problem is that a2ps can be fed by stdin, but delegations cannot. So we first dump stdin into a temporary file. */ if (fjob->name == job->stdin_filename) /* not strcmp */ { /* Dump the content of the buffer */ tempname_ensure (fjob->stdin_tmpname); stdin_content_filename = fjob->stdin_tmpname; buffer_save (buffer, stdin_content_filename); /* We change the name of the file so that the correct file name is used in the command (that of the temporary file containing stdin). */ fjob->name = stdin_content_filename; command = get_delegate_command (contractor, fjob, 1); fjob->name = job->stdin_filename; } else { command = get_delegate_command (contractor, fjob, 1); } /* First, before it break :), say what you do */ message (msg_file, (stderr, "Delegating `%s' to `%s' (%s)\n", fjob->name, contractor->name, command)); /* Open a pipe from the delegation, and the temp file in which * the result is stored */ tempname_ensure (fjob->delegation_tmpname); out_stream = fopen (fjob->delegation_tmpname, "w"); if (!out_stream) { error (0, errno, _("cannot create file `%s'"), quotearg (fjob->delegation_tmpname)); return false; } in_stream = popen (command, "r"); if (!in_stream) { fclose (out_stream); error (0, errno, _("cannot open a pipe on `%s'"), quotearg (command)); return false; } /* Make the file know its first page/sheet */ file_job_synchronize_sheets (job); file_job_synchronize_pages (job); /* Now, read the file, update the PS info, and store the result in * out_stream */ while (fgets (buf, sizeof (buf), in_stream)) { /* This is not exactely the number of lines, * but anyway it is only used to be sure something was read, * to track the failure of a delegation */ lines_read++; #define PAGE_TAG "%%Page: " if (strprefix (PAGE_TAG, buf)) { /* We suppose that it has respected the number of virtual * pages per sheet */ job->pages += job->rows * job->columns; job->sheets++; file_job_synchronize_sheets (job); file_job_synchronize_pages (job); } #define NEEDED_RES_TAG "%%DocumentNeededResources: " else if (strprefix (NEEDED_RES_TAG, buf)) { /* The needed resources must be included too. * Take care of the %%+ continuation tag */ char *value, *res, *buf_copy; continuation = needed_resource; astrcpy (buf_copy, buf + strlen (NEEDED_RES_TAG)); res = strtok (buf_copy, " \n\t"); /* This while saves us from a special case of * %%DocumentNeededResources: (atend) */ while ((value = strtok (NULL, " \n\t"))) add_needed_resource (job, res, value); } #define CONTINUATION_TAG "%%+ " else if (strprefix (CONTINUATION_TAG, buf)) { char *value, *res, *buf_copy; astrcpy (buf_copy, buf + strlen (CONTINUATION_TAG)); res = strtok (buf_copy, " \n\t"); while ((value = strtok (NULL, " \n\t"))) switch (continuation) { case needed_resource: add_needed_resource (job, res, value); break; default: break; } } /* The content should be left untouched */ fputs (buf, out_stream); } pclose (in_stream); fclose (out_stream); /* If a temporary file was created to deal with stdin, unlink it. */ if (stdin_content_filename) unlink (stdin_content_filename); /* FIXME: This is a trial to see when there is an error */ if (lines_read == 0) return false; /* This one must not be cut by the page selection */ { int saved_redirection_of_output; saved_redirection_of_output = output_is_to_void (job->divertion); output_to_void (job->divertion, false); /* Protect the rest of the file and give sane environment */ output (job->divertion, "BeginInclude\n"); output (job->divertion, "%%%%BeginDocument: %s\n", fjob->name); output_delayed_routine (job->divertion, (delayed_routine_t) stream_dump, (void *) fjob->delegation_tmpname); /* remove the file after its use */ output_delayed_routine (job->divertion, (delayed_routine_t) unlink2, (void *) fjob->delegation_tmpname); output (job->divertion, "%%%%EndDocument\n"); output (job->divertion, "EndInclude\n"); output_to_void (job->divertion, saved_redirection_of_output); } /* The pages are no longer ordered. Respect DSC */ job->status->page_are_ordered = false; return true; } /************************************************************************/ /* "Visible" interface of the subcontracts */ /************************************************************************/ /* * Print a single contract on STREAM */ static void dump_contract (FILE * stream, struct delegation *contract) { char *cp, *cp2; cp = xstrdup (contract->contract); cp = strtok (cp, ":"); cp2 = strtok (NULL, ":"); /* E.g.: Delegation `PsNup', from ps to ps */ fprintf (stream, _("Delegation `%s', from %s to %s\n"), contract->name, cp, cp2); fprintf (stream, "\t%s\n", contract->command); } /* * List the subcontracts for --list-subcontracts */ void delegations_list_long (struct hash_table_s *contracts, FILE * stream) { int i; struct delegation **ordered_contracts; ordered_contracts = ((struct delegation **) hash_dump (contracts, NULL, (qsort_cmp_t) delegate_hash_qcmp)); fputs (_("Applications configured for delegation"), stream); putc ('\n', stream); for (i = 0; ordered_contracts[i]; i++) dump_contract (stream, ordered_contracts[i]); putc ('\n', stream); } /* * For --list-features */ void delegations_list_short (struct hash_table_s *contracts, FILE * stream) { struct delegation **ordered_contracts; ordered_contracts = ((struct delegation **) hash_dump (contracts, NULL, (qsort_cmp_t) delegate_hash_qcmp)); fputs (_("Applications configured for delegation"), stream); putc ('\n', stream); lister_fprint_vertical (NULL, stream, (void *) ordered_contracts, (size_t) -1, (lister_width_t) delegate_name_len, (lister_print_t) delegate_name_fputs); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/delegate.h��������������������������������������������������������������������������0000644�0000000�0000000�00000003464�14251132535�012064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* delegate.h - handling the delegations Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _DELEGATE_H_ #define _DELEGATE_H_ #include "hashtab.h" #include "buffer.h" struct file_job; struct delegation { char *name; /* e.g. groff */ char *contract; /* e.g. roff:ps */ char *command; /* e.g. groff -man $f */ }; struct hash_table_s *delegation_table_new (void); void add_delegation (const char *filename, unsigned line, char *contract_line); struct delegation *get_subcontract (const char *src_type, const char *dest_type); char *get_delegate_command (struct delegation * contract, struct file_job * file, int evaluate); /* Execute the sub contract */ int subcontract (struct file_job * file, buffer_t * buffer, struct delegation * contractor); /* * For the command line interface */ void delegations_list_long (struct hash_table_s * contracts, FILE * stream); void delegations_list_short (struct hash_table_s * contracts, FILE * stream); #endif /* !defined(_DELEGATE_H_) */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/ffaces.c����������������������������������������������������������������������������0000644�0000000�0000000�00000005453�14235572622�011543� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ffaces.c - definition of the flagged faces used by a2ps Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "ffaces.h" #include "routines.h" #include "jobs.h" /* * List of the fflags and their readable names. */ struct fflag_and_name { /* Auxialiary struct just for the following list */ const char * name; enum fflag_e flag; }; static const struct fflag_and_name fflag_and_name [] = { { "Invisible",ff_Invisible }, { "Tag1", ff_Tag1 }, { "Tag2", ff_Tag2 }, { "Tag3", ff_Tag3 }, { "Tag4", ff_Tag4 }, { "Index1", ff_Index1 }, { "Index2", ff_Index2 }, { "Index3", ff_Index3 }, { "Index4", ff_Index4 }, { "Encoding", ff_Encoding }, { NULL, ff_No_fflag } }; /* * Some predefined ffaces. */ struct fface_s String_fface = { String, ff_No_fflag }; struct fface_s Plain_fface = { Plain, ff_No_fflag }; struct fface_s Symbol_fface = { Symbol, ff_No_fflag }; struct fface_s No_fface = { No_face, ff_No_fflag }; /* * Report the flagged face (included the face) */ void fflag_self_print (enum fflag_e flags, FILE * stream) { int i; int first = true; putc ('(', stream); if (flags == ff_No_fflag) fputs ("No_fflag", stream); else { /* Report the flags: make a loop onto the bits */ for (i = 0 ; fflag_and_name [i].flag ; i++) if (fflag_and_name [i].flag & flags) { if (!first) fputs (" + ", stream); else first = false; fputs (fflag_and_name [i].name, stream); } } putc (')', stream); } /* * Report the flagged face (included the face) */ void fface_self_print (struct fface_s fface, FILE * stream) { int i; if (fface.flags) { putc ('(', stream); /* Report the base face */ face_self_print (fface.face, stream); /* Report the flags: make a loop onto the bits */ for (i = 0 ; fflag_and_name [i].flag ; i++) if (fflag_and_name [i].flag & fface.flags) { fputs (" + ", stream); fputs (fflag_and_name [i].name, stream); } putc (')', stream); } else /* There is nothing but the pure face to report */ face_self_print (fface.face, stream); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/ffaces.h����������������������������������������������������������������������������0000644�0000000�0000000�00000005741�14235572622�011550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ffaces.h - definition of the flagged faces used by a2ps Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _FFACES_H_ #define _FFACES_H_ #include "faces.h" /* * These flags can be seen as an extension of the faces: they * offer a way to have more information about the way the text * should be processed by adding special flags _not_ to be * seen by liba2ps. * * Many things used to be implemented as pure face_e, but it is * better like this, and removes from liba2ps code/defs that were * ment to a2ps-prog only */ enum fflag_e { ff_No_fflag = 0, /* Make the text invisible (don't print it) */ ff_Invisible = 1 << 0, /* Grabbing from the text (used for headings etc) */ ff_Tag1 = 1 << 1, ff_Tag2 = 1 << 2, ff_Tag3 = 1 << 3, ff_Tag4 = 1 << 4, /* Store in the Indexes */ ff_Index1 = 1 << 5, ff_Index2 = 1 << 6, ff_Index3 = 1 << 7, ff_Index4 = 1 << 8, /* Grab an Encoding (Dynamic encoding switches) */ ff_Encoding = 1 << 9 }; void fflag_self_print (enum fflag_e flags, FILE * stream); /************************************************************************/ /* Flagged faces */ /************************************************************************/ struct fface_s { enum face_e face; /* The part which is the face to give to liba2ps */ enum fflag_e flags; /* The special flags for prog-a2ps */ }; void fface_self_print (struct fface_s face, FILE * stream); /* * Read/Set the face part */ #define fface_set_face(ff,fa) \ ((ff).face) = (fa) #define fface_reset_face(ff) \ ((ff).face) = (No_face) #define fface_get_face(ff) \ ((ff).face) /* * Read/Set the flags part */ #define fface_set_flags(ff,fl) \ ((ff).flags) = (fl) #define fface_reset_flags(ff) \ ((ff).flags) = ff_No_fflag #define fface_get_flags(ff) \ ((ff).flags) /* Here I cast, because for MIPSpro, enum | enum => int */ #define fface_add_flags(ff,fl) \ fface_set_flags (ff, ((enum fflag_e) fface_get_flags (ff) | (fl))) /* * Compare two ffaces */ #define fface_squ(ff1,ff2) \ (((ff1).face == (ff2).face) && ((ff1).flags == (ff2).flags)) /* * Some predefined ffaces. */ extern struct fface_s String_fface; extern struct fface_s Plain_fface; extern struct fface_s Symbol_fface; extern struct fface_s No_fface; #endif /* !defined(_FFACES_H_) */ �������������������������������a2ps-4.15.5/src/generate.c��������������������������������������������������������������������������0000644�0000000�0000000�00000023465�14445053504�012105� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* generate.c - input files and pretty printing Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "main.h" #include "isdir.h" /* Name of the file in which the tmp sample file is stored. */ char *sample_tmpname = NULL; /* * What kind of treatement should be applied */ enum style_kind_e { no_style, binary, sshparser, unprintable, delegate }; static enum style_kind_e string_to_style_kind (const char * string) { if (STREQ (string, "binary")) return binary; else if (STREQ (string, "UNPRINTABLE")) return unprintable; else if (STREQ (string, "plain")) return no_style; else if (STREQ (string, "delegate")) return delegate; return sshparser; } /************************************************************************/ /* The inputs */ /************************************************************************/ static buffer_t * input_new (char * name) { buffer_t * res = XMALLOC (buffer_t); struct file_job * file_job; struct stat statbuf; /* to get file modification time */ struct tm *tm; a2ps_open_input_session (job, name); file_job = CURRENT_FILE (job); /* Retrieve file modification date and hour */ if (IS_EMPTY(name) || STREQ (name, "-")) { file_job->is_stdin = true; file_job->name = job->stdin_filename; /* Create the buffer in charge of stdin */ buffer_stream_set (res, stdin, end_of_line); /* Ask it to make a sample of the file. */ tempname_ensure (sample_tmpname); buffer_sample_get (res, sample_tmpname); } else { FILE * input_stream; /* This is a true file (not stdin) */ file_job->is_stdin = false; /* Printing a file given by its path */ if (isdir ((char *) name)) { error (0, 0, _("`%s' is a directory"), quotearg ((char *) name)); file_job->printable = false; } file_job->name = name; if ((input_stream = fopen (name, "r")) == NULL) { error (0, errno, _("cannot open file `%s'"), quotearg (name)); file_job->printable = false; } else if (stat (name, &statbuf) == -1) { error (0, errno, _("cannot get informations on file `%s'"), quotearg (name)); file_job->printable = false; } else { time_t tim = statbuf.st_mtime; tm = localtime (&tim); memcpy (&(file_job->mod_tm), tm, sizeof (*tm)); } /* Create the buffer in charge of the input stream */ buffer_stream_set (res, input_stream, end_of_line); } /* * What should be done out of this file? * Find the command associated to that file * - UNPRINTABLE for unprintable * - requested style sheet key * - style sheet key */ if (!file_job->printable) file_job->type = "UNPRINTABLE"; else if (!IS_EMPTY (style_request)) file_job->type = style_request; else file_job->type = get_command (file_job->name, (sample_tmpname ? sample_tmpname : file_job->name)); /* Remove the sample file */ if (sample_tmpname) unlink (sample_tmpname); return res; } static void input_end (buffer_t * buffer) { if (buffer->stream && buffer->stream!= stdin) fclose (buffer->stream); a2ps_close_input_session (job); } /************************************************************************/ /* The producers */ /************************************************************************/ /* * Make on message on what we did */ static void msg_file_pages_printed (a2ps_job * Job, const char * stylename) { size_t sheets; sheets = CURRENT_FILE (Job)->sheets; if (Job->duplex) sheets = (sheets + 1) / 2; if (CURRENT_FILE (Job)->pages == 1) /* 1 page on 1 sheet */ message (msg_report2, (stderr, _("[%s (%s): 1 page on 1 sheet]\n"), CURRENT_FILE (Job)->name, stylename)); else if (sheets == 1) /* several pages on 1 sheet */ message (msg_report2, (stderr, _("[%s (%s): %zu pages on 1 sheet]\n"), CURRENT_FILE (Job)->name, stylename, CURRENT_FILE (Job)->pages)); else /* several sheets */ message (msg_report2, (stderr, _("[%s (%s): %zu pages on %zu sheets]\n"), CURRENT_FILE (Job)->name, stylename, CURRENT_FILE (Job)-> pages, sheets)); } /* * Total printed */ void msg_job_pages_printed (a2ps_job * Job) { size_t sheets; char *cp; sheets = Job->sheets; if (Job->duplex) sheets = (sheets + 1) / 2; /* Make a nice message to tell where the output is sent */ cp = a2ps_destination_to_string (Job); /* Report the pages */ if (Job->pages == 1) /* 1 page on 1 sheet "sent to the default printer" etc. */ message (msg_report1, (stderr, _("[Total: 1 page on 1 sheet] %s\n"), cp)); else if (sheets == 1) /* several pages on 1 sheet */ message (msg_report1, (stderr, _("[Total: %zu pages on 1 sheet] %s\n"), Job->pages, cp)); else /* several sheets */ message (msg_report1, (stderr, _("[Total: %zu pages on %zu sheets] %s\n"), Job->pages, sheets, cp)); /* Report the number of lines that were too long. */ if (macro_meta_sequence_get (Job, "cfg.wrapped") && Job->lines_folded) { if (Job->lines_folded == 1) message (msg_report1, (stderr, _("[1 line wrapped]\n"))); else message (msg_report1, (stderr, _("[%zu lines wrapped]\n"), Job->lines_folded)); } } /* * Total printed */ void msg_nothing_printed (void) { message (msg_report1, (stderr, _("[No output produced]\n"))); } void print_toc (const char * name, const char * value, int * native_jobs) { buffer_t toc_buffer; char * toc_content; /* Create a entry for the toc, as if it were a regular file */ a2ps_open_input_session (job, xstrdup (name)); /* But it is not a regular file: we need to be able to know * that it is indeed a toc, so that --pages=toc can be honored */ CURRENT_FILE (job)->is_toc = true; astrcpy (toc_content, expand_user_string (job, CURRENT_FILE (job), name, value)); buffer_string_set (&toc_buffer, toc_content, end_of_line); /* We typeset it with PreScript */ ssh_print_postscript (job, &toc_buffer, get_style_sheet ("pre")); (*native_jobs)++; a2ps_close_input_session (job); } /* * Called by the main loop. * The file to print is the last of the darray job->jobs. * Return true if was a success, false otherwise */ void print (char * filename, int * native_jobs, int * delegated_jobs) { char buf[512]; struct delegation * contract = NULL; struct style_sheet * sheet; buffer_t * input_buffer; enum style_kind_e style_kind; struct file_job * file_job; /* * First, open that file and get info about it * It may seem useless in some cases (e.g. the file will be delegated) * but it ensures that readbility, and stat can be correctly done. */ input_buffer = input_new (filename); /* Get the file_job _after_ it has been created by input_new */ file_job = CURRENT_FILE (job); if (delegate_p && (contract = get_subcontract (file_job->type, output_format_to_key (job->output_format)))) style_kind = delegate; else style_kind = string_to_style_kind (file_job->type); message (msg_file, (stderr, "Getting ready to print file `%s', with command `%s'\n", file_job->name, file_job->type)); /* * Then do it */ switch (style_kind) { case delegate: /* In ps generation, we must begin a new page */ page_flush (job); sprintf (buf, _("%s, delegated to %s"), file_job->type, contract->name); if (subcontract (file_job, input_buffer, contract)) { (*delegated_jobs)++; msg_file_pages_printed (job, buf); } else message (msg_report2, (stderr, _("[%s (%s): failed. Ignored]\n"), file_job->name, buf)); break; case unprintable: /* The job will not be processed correctly */ message (msg_report2, (stderr, _("[%s (unprintable): ignored]\n"), file_job->name)); break; case binary: if (job->print_binaries) goto plain_print; message (msg_report2, (stderr, _("[%s (binary): ignored]\n"), file_job->name)); break; case sshparser: /* If highlight_level == none, don't */ if (highlight_level == 0) goto plain_print; sheet = get_style_sheet (file_job->type); if (!sheet) goto plain_print; buffer_set_lower_case (input_buffer, sheet->sensitiveness == case_insensitive); ssh_print_postscript (job, input_buffer, sheet); msg_file_pages_printed (job, (const char *) sheet->name); (*native_jobs)++; break; plain_print: case no_style: plain_print_postscript (job, input_buffer); msg_file_pages_printed (job, _("plain")); (*native_jobs)++; break; } input_end (input_buffer); } /* * Called by the main loop. * Almost like the above `PRINT' function, but just reports the guesses. * This is a dirty hack of sth OK in 4.11 */ void guess (char * filename) { buffer_t * buffer; struct file_job * file_job; buffer = input_new (filename); file_job = CURRENT_FILE (job); printf ("[%s (%s)]\n", file_job->name, file_job->type); /* Close the files. */ if (buffer->stream && buffer->stream != stdin) fclose (buffer->stream); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/generate.h��������������������������������������������������������������������������0000644�0000000�0000000�00000002175�14445053504�012105� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* generate.h - input files and pretty printing Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef GENERATE_H_ # define GENERATE_H_ void print (char * name, int * native_jobs, int * delegated_jobs); void print_toc (const char * name, const char * value, int * native_jobs); void msg_job_pages_printed (a2ps_job * job); void msg_nothing_printed (void); void guess (char * name); #endif /* not defined(GENERATE_H_) */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/lexps.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000144467�14415562601�011454� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#line 2 "lexps.c" /* -*- c -*- */ /* A Simple Lexer for PostScript. Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2002 Akim Demaille, Miguel Santana */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <config.h> #include "main.h" #include "lexps.h" #line 33 "lexps.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer ps_create_buffer #define yy_delete_buffer ps_delete_buffer #define yy_scan_buffer ps_scan_buffer #define yy_scan_string ps_scan_string #define yy_scan_bytes ps_scan_bytes #define yy_init_buffer ps_init_buffer #define yy_flush_buffer ps_flush_buffer #define yy_load_buffer_state ps_load_buffer_state #define yy_switch_to_buffer ps_switch_to_buffer #define yypush_buffer_state pspush_buffer_state #define yypop_buffer_state pspop_buffer_state #define yyensure_buffer_stack psensure_buffer_stack #define yy_flex_debug ps_flex_debug #define yyin psin #define yyleng psleng #define yylex pslex #define yylineno pslineno #define yyout psout #define yyrestart psrestart #define yytext pstext #define yywrap pswrap #define yyalloc psalloc #define yyrealloc psrealloc #define yyfree psfree #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define ps_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer ps_create_buffer #endif #ifdef yy_delete_buffer #define ps_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer ps_delete_buffer #endif #ifdef yy_scan_buffer #define ps_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer ps_scan_buffer #endif #ifdef yy_scan_string #define ps_scan_string_ALREADY_DEFINED #else #define yy_scan_string ps_scan_string #endif #ifdef yy_scan_bytes #define ps_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes ps_scan_bytes #endif #ifdef yy_init_buffer #define ps_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer ps_init_buffer #endif #ifdef yy_flush_buffer #define ps_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer ps_flush_buffer #endif #ifdef yy_load_buffer_state #define ps_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state ps_load_buffer_state #endif #ifdef yy_switch_to_buffer #define ps_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer ps_switch_to_buffer #endif #ifdef yypush_buffer_state #define pspush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state pspush_buffer_state #endif #ifdef yypop_buffer_state #define pspop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state pspop_buffer_state #endif #ifdef yyensure_buffer_stack #define psensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack psensure_buffer_stack #endif #ifdef yylex #define pslex_ALREADY_DEFINED #else #define yylex pslex #endif #ifdef yyrestart #define psrestart_ALREADY_DEFINED #else #define yyrestart psrestart #endif #ifdef yylex_init #define pslex_init_ALREADY_DEFINED #else #define yylex_init pslex_init #endif #ifdef yylex_init_extra #define pslex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra pslex_init_extra #endif #ifdef yylex_destroy #define pslex_destroy_ALREADY_DEFINED #else #define yylex_destroy pslex_destroy #endif #ifdef yyget_debug #define psget_debug_ALREADY_DEFINED #else #define yyget_debug psget_debug #endif #ifdef yyset_debug #define psset_debug_ALREADY_DEFINED #else #define yyset_debug psset_debug #endif #ifdef yyget_extra #define psget_extra_ALREADY_DEFINED #else #define yyget_extra psget_extra #endif #ifdef yyset_extra #define psset_extra_ALREADY_DEFINED #else #define yyset_extra psset_extra #endif #ifdef yyget_in #define psget_in_ALREADY_DEFINED #else #define yyget_in psget_in #endif #ifdef yyset_in #define psset_in_ALREADY_DEFINED #else #define yyset_in psset_in #endif #ifdef yyget_out #define psget_out_ALREADY_DEFINED #else #define yyget_out psget_out #endif #ifdef yyset_out #define psset_out_ALREADY_DEFINED #else #define yyset_out psset_out #endif #ifdef yyget_leng #define psget_leng_ALREADY_DEFINED #else #define yyget_leng psget_leng #endif #ifdef yyget_text #define psget_text_ALREADY_DEFINED #else #define yyget_text psget_text #endif #ifdef yyget_lineno #define psget_lineno_ALREADY_DEFINED #else #define yyget_lineno psget_lineno #endif #ifdef yyset_lineno #define psset_lineno_ALREADY_DEFINED #else #define yyset_lineno psset_lineno #endif #ifdef yywrap #define pswrap_ALREADY_DEFINED #else #define yywrap pswrap #endif #ifdef yyalloc #define psalloc_ALREADY_DEFINED #else #define yyalloc psalloc #endif #ifdef yyrealloc #define psrealloc_ALREADY_DEFINED #else #define yyrealloc psrealloc #endif #ifdef yyfree #define psfree_ALREADY_DEFINED #else #define yyfree psfree #endif #ifdef yytext #define pstext_ALREADY_DEFINED #else #define yytext pstext #endif #ifdef yyleng #define psleng_ALREADY_DEFINED #else #define yyleng psleng #endif #ifdef yyin #define psin_ALREADY_DEFINED #else #define yyin psin #endif #ifdef yyout #define psout_ALREADY_DEFINED #else #define yyout psout #endif #ifdef yy_flex_debug #define ps_flex_debug_ALREADY_DEFINED #else #define yy_flex_debug ps_flex_debug #endif #ifdef yylineno #define pslineno_ALREADY_DEFINED #else #define yylineno pslineno #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart ( FILE *input_file ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); void yy_delete_buffer ( YY_BUFFER_STATE b ); void yy_flush_buffer ( YY_BUFFER_STATE b ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); void yypop_buffer_state ( void ); static void yyensure_buffer_stack ( void ); static void yy_load_buffer_state ( void ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); void *yyalloc ( yy_size_t ); void *yyrealloc ( void *, yy_size_t ); void yyfree ( void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif #define yytext_ptr yytext static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 4 #define YY_END_OF_BUFFER 5 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[26] = { 0, 2, 2, 3, 3, 5, 2, 4, 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 7, 1, 8, 1, 1, 1, 1, 9, 1, 10, 1, 1, 1, 11, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const YY_CHAR yy_meta[13] = { 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const flex_int16_t yy_base[31] = { 0, 25, 0, 24, 23, 24, 0, 28, 20, 0, 0, 18, 0, 15, 13, 11, 9, 12, 10, 4, 2, 3, 10, 9, 28, 28, 3, 5, 9, 0, 7 } ; static const flex_int16_t yy_def[31] = { 0, 26, 26, 27, 27, 25, 28, 25, 28, 29, 28, 28, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 30, 30, 25, 0, 25, 25, 25, 25, 25 } ; static const flex_int16_t yy_nxt[41] = { 0, 12, 7, 8, 6, 6, 9, 9, 23, 23, 10, 24, 24, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 11, 25, 7, 7, 7, 5, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25 } ; static const flex_int16_t yy_chk[41] = { 0, 29, 2, 2, 26, 26, 27, 27, 30, 30, 28, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 11, 8, 5, 4, 3, 1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "lexps.l" #line 33 "lexps.l" int yylex (void); void yyerror (const char *); /* Initilizes the obstacks */ void pslex_initialize (void); #line 750 "lexps.c" #line 752 "lexps.c" #define INITIAL 0 #define FINISH 1 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( void ); int yyget_debug ( void ); void yyset_debug ( int debug_flag ); YY_EXTRA_TYPE yyget_extra ( void ); void yyset_extra ( YY_EXTRA_TYPE user_defined ); FILE *yyget_in ( void ); void yyset_in ( FILE * _in_str ); FILE *yyget_out ( void ); void yyset_out ( FILE * _out_str ); int yyget_leng ( void ); char *yyget_text ( void ); int yyget_lineno ( void ); void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( void ); #else extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT static void yyunput ( int c, char *buf_ptr ); #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( void ); #else static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ if ( yyleng > 0 ) \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ (yytext[yyleng - 1] == '\n'); \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } { #line 46 "lexps.l" #line 976 "lexps.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 26 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 28 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: /* rule 1 can match eol */ YY_RULE_SETUP #line 48 "lexps.l" { ECHO; pagedevice_dump (yyout, job); BEGIN FINISH; } YY_BREAK case 2: YY_RULE_SETUP #line 54 "lexps.l" ECHO; YY_BREAK case 3: YY_RULE_SETUP #line 57 "lexps.l" ECHO; YY_BREAK case 4: YY_RULE_SETUP #line 59 "lexps.l" ECHO; YY_BREAK #line 1061 "lexps.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(FINISH): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { yy_state_type yy_current_state; char *yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 26 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; char *yy_cp = (yy_c_buf_p); YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 26 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 25); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT static void yyunput (int c, char * yy_bp ) { char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf ); yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr ) { return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg ) { fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param _line_number line number * */ void yyset_lineno (int _line_number ) { yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str ) { yyin = _in_str ; } void yyset_out (FILE * _out_str ) { yyout = _out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int _bdebug ) { yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 59 "lexps.l" int yywrap (void) { return 1; } /* Dump the file FILENAME on STREAM, while inserting the special pagedevice requests of JOB. */ void pslex_dump (FILE *stream, const char *filename) { yyin = xrfopen (filename); yyout = stream; pslex (); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/lexps.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000001754�14235572622�011454� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lexps.h - a simple lexer for PostScript Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef LEXPS_H_ # define LEXPS_H_ /* Dump the file FILENAME on STREAM, while inserting the special pagedevice requests of JOB. */ void pslex_dump (FILE *stream, const char *filename); #endif ��������������������a2ps-4.15.5/src/lexps.l�����������������������������������������������������������������������������0000644�0000000�0000000�00000003065�14251132535�011446� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%top{ /* -*- c -*- */ /* A Simple Lexer for PostScript. Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2002 Akim Demaille, Miguel Santana */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <config.h> #include "main.h" #include "lexps.h" } %{ int yylex (void); void yyerror (const char *); /* Initilizes the obstacks */ void pslex_initialize (void); %} %option prefix="ps" %option outfile="lex.yy.c" %x FINISH begin_setup ^%%BeginSetup.*\n %% {begin_setup} { ECHO; pagedevice_dump (yyout, job); BEGIN FINISH; } .* ECHO; <FINISH>{ .* ECHO; } %% int yywrap (void) { return 1; } /* Dump the file FILENAME on STREAM, while inserting the special pagedevice requests of JOB. */ void pslex_dump (FILE *stream, const char *filename) { yyin = xrfopen (filename); yyout = stream; pslex (); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/lexssh.c����������������������������������������������������������������������������0000644�0000000�0000000�00000315511�14445131351�011612� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#line 2 "lexssh.c" /* -*- c -*- */ /* * Lexer for a2ps. * * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * $Id: lexssh.l,v 1.1.1.1.2.1 2007/12/29 01:58:35 mhatta Exp $ */ #include <config.h> #include "main.h" #include "yy2ssh.h" #include "parsessh.h" #include "xobstack.h" #line 42 "lexssh.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer ssh_create_buffer #define yy_delete_buffer ssh_delete_buffer #define yy_scan_buffer ssh_scan_buffer #define yy_scan_string ssh_scan_string #define yy_scan_bytes ssh_scan_bytes #define yy_init_buffer ssh_init_buffer #define yy_flush_buffer ssh_flush_buffer #define yy_load_buffer_state ssh_load_buffer_state #define yy_switch_to_buffer ssh_switch_to_buffer #define yypush_buffer_state sshpush_buffer_state #define yypop_buffer_state sshpop_buffer_state #define yyensure_buffer_stack sshensure_buffer_stack #define yy_flex_debug ssh_flex_debug #define yyin sshin #define yyleng sshleng #define yylex sshlex #define yylineno sshlineno #define yyout sshout #define yyrestart sshrestart #define yytext sshtext #define yywrap sshwrap #define yyalloc sshalloc #define yyrealloc sshrealloc #define yyfree sshfree #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define ssh_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer ssh_create_buffer #endif #ifdef yy_delete_buffer #define ssh_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer ssh_delete_buffer #endif #ifdef yy_scan_buffer #define ssh_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer ssh_scan_buffer #endif #ifdef yy_scan_string #define ssh_scan_string_ALREADY_DEFINED #else #define yy_scan_string ssh_scan_string #endif #ifdef yy_scan_bytes #define ssh_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes ssh_scan_bytes #endif #ifdef yy_init_buffer #define ssh_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer ssh_init_buffer #endif #ifdef yy_flush_buffer #define ssh_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer ssh_flush_buffer #endif #ifdef yy_load_buffer_state #define ssh_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state ssh_load_buffer_state #endif #ifdef yy_switch_to_buffer #define ssh_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer ssh_switch_to_buffer #endif #ifdef yypush_buffer_state #define sshpush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state sshpush_buffer_state #endif #ifdef yypop_buffer_state #define sshpop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state sshpop_buffer_state #endif #ifdef yyensure_buffer_stack #define sshensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack sshensure_buffer_stack #endif #ifdef yylex #define sshlex_ALREADY_DEFINED #else #define yylex sshlex #endif #ifdef yyrestart #define sshrestart_ALREADY_DEFINED #else #define yyrestart sshrestart #endif #ifdef yylex_init #define sshlex_init_ALREADY_DEFINED #else #define yylex_init sshlex_init #endif #ifdef yylex_init_extra #define sshlex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra sshlex_init_extra #endif #ifdef yylex_destroy #define sshlex_destroy_ALREADY_DEFINED #else #define yylex_destroy sshlex_destroy #endif #ifdef yyget_debug #define sshget_debug_ALREADY_DEFINED #else #define yyget_debug sshget_debug #endif #ifdef yyset_debug #define sshset_debug_ALREADY_DEFINED #else #define yyset_debug sshset_debug #endif #ifdef yyget_extra #define sshget_extra_ALREADY_DEFINED #else #define yyget_extra sshget_extra #endif #ifdef yyset_extra #define sshset_extra_ALREADY_DEFINED #else #define yyset_extra sshset_extra #endif #ifdef yyget_in #define sshget_in_ALREADY_DEFINED #else #define yyget_in sshget_in #endif #ifdef yyset_in #define sshset_in_ALREADY_DEFINED #else #define yyset_in sshset_in #endif #ifdef yyget_out #define sshget_out_ALREADY_DEFINED #else #define yyget_out sshget_out #endif #ifdef yyset_out #define sshset_out_ALREADY_DEFINED #else #define yyset_out sshset_out #endif #ifdef yyget_leng #define sshget_leng_ALREADY_DEFINED #else #define yyget_leng sshget_leng #endif #ifdef yyget_text #define sshget_text_ALREADY_DEFINED #else #define yyget_text sshget_text #endif #ifdef yyget_lineno #define sshget_lineno_ALREADY_DEFINED #else #define yyget_lineno sshget_lineno #endif #ifdef yyset_lineno #define sshset_lineno_ALREADY_DEFINED #else #define yyset_lineno sshset_lineno #endif #ifdef yywrap #define sshwrap_ALREADY_DEFINED #else #define yywrap sshwrap #endif #ifdef yyalloc #define sshalloc_ALREADY_DEFINED #else #define yyalloc sshalloc #endif #ifdef yyrealloc #define sshrealloc_ALREADY_DEFINED #else #define yyrealloc sshrealloc #endif #ifdef yyfree #define sshfree_ALREADY_DEFINED #else #define yyfree sshfree #endif #ifdef yytext #define sshtext_ALREADY_DEFINED #else #define yytext sshtext #endif #ifdef yyleng #define sshleng_ALREADY_DEFINED #else #define yyleng sshleng #endif #ifdef yyin #define sshin_ALREADY_DEFINED #else #define yyin sshin #endif #ifdef yyout #define sshout_ALREADY_DEFINED #else #define yyout sshout #endif #ifdef yy_flex_debug #define ssh_flex_debug_ALREADY_DEFINED #else #define yy_flex_debug ssh_flex_debug #endif #ifdef yylineno #define sshlineno_ALREADY_DEFINED #else #define yylineno sshlineno #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires * access to the local variable yy_act. Since yyless() is a macro, it would break * existing scanners that call yyless() from OUTSIDE yylex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-yylineno scanner, because yy_act is * normally declared as a register variable-- so it is not worth it. */ #define YY_LESS_LINENO(n) \ do { \ int yyl;\ for ( yyl = n; yyl < yyleng; ++yyl )\ if ( yytext[yyl] == '\n' )\ --yylineno;\ }while(0) #define YY_LINENO_REWIND_TO(dst) \ do {\ const char *p;\ for ( p = yy_cp-1; p >= (dst); --p)\ if ( *p == '\n' )\ --yylineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart ( FILE *input_file ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); void yy_delete_buffer ( YY_BUFFER_STATE b ); void yy_flush_buffer ( YY_BUFFER_STATE b ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); void yypop_buffer_state ( void ); static void yyensure_buffer_stack ( void ); static void yy_load_buffer_state ( void ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); void *yyalloc ( yy_size_t ); void *yyrealloc ( void *, yy_size_t ); void yyfree ( void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif #define yytext_ptr yytext static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 217 #define YY_END_OF_BUFFER 218 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[901] = { 0, 2, 2, 0, 0, 0, 0, 218, 185, 2, 2, 3, 1, 186, 185, 4, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 201, 200, 187, 217, 216, 215, 202, 217, 185, 2, 1, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 137, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 143, 185, 185, 185, 185, 185, 185, 152, 154, 185, 185, 185, 185, 185, 185, 185, 201, 199, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 216, 214, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 91, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 94, 185, 185, 185, 185, 21, 22, 185, 185, 24, 185, 95, 185, 185, 185, 185, 185, 185, 32, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 107, 185, 185, 185, 185, 185, 185, 185, 50, 185, 185, 185, 51, 185, 185, 185, 185, 185, 185, 53, 80, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 96, 61, 185, 185, 185, 185, 142, 185, 185, 185, 149, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 188, 189, 203, 204, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 175, 176, 177, 178, 185, 185, 11, 185, 185, 185, 16, 185, 185, 185, 185, 185, 185, 185, 14, 33, 26, 185, 185, 28, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 100, 185, 185, 40, 185, 185, 185, 185, 101, 185, 185, 86, 185, 185, 185, 185, 45, 185, 185, 185, 185, 81, 185, 185, 134, 185, 185, 185, 185, 185, 185, 185, 67, 185, 185, 87, 117, 185, 185, 185, 185, 185, 185, 43, 185, 185, 62, 185, 185, 185, 185, 185, 55, 185, 185, 64, 185, 185, 185, 130, 185, 185, 57, 185, 185, 185, 185, 185, 185, 119, 185, 185, 138, 185, 185, 144, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 188, 189, 203, 204, 185, 185, 185, 185, 168, 185, 185, 185, 169, 165, 185, 185, 185, 10, 185, 185, 185, 185, 17, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 34, 185, 185, 185, 185, 39, 185, 185, 116, 79, 185, 8, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 46, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 36, 185, 114, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 115, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 63, 185, 185, 185, 185, 185, 151, 185, 185, 185, 185, 185, 185, 185, 185, 162, 185, 185, 146, 185, 185, 185, 179, 180, 181, 182, 185, 185, 185, 171, 172, 9, 12, 185, 185, 15, 19, 185, 185, 185, 31, 185, 185, 27, 25, 185, 185, 93, 38, 109, 185, 185, 185, 185, 185, 41, 185, 185, 185, 185, 88, 185, 185, 185, 44, 185, 68, 48, 185, 185, 131, 90, 185, 185, 185, 110, 185, 185, 60, 185, 98, 185, 185, 66, 185, 185, 185, 135, 185, 185, 185, 56, 185, 185, 185, 185, 185, 54, 82, 185, 185, 185, 185, 185, 185, 185, 59, 185, 185, 185, 185, 118, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 157, 185, 185, 185, 185, 185, 173, 185, 185, 166, 185, 185, 185, 20, 185, 185, 185, 185, 185, 185, 89, 85, 185, 185, 185, 185, 185, 185, 185, 6, 69, 5, 185, 49, 126, 185, 185, 132, 108, 185, 185, 97, 185, 83, 185, 133, 185, 136, 185, 185, 105, 185, 102, 185, 185, 185, 185, 185, 185, 185, 47, 185, 185, 185, 185, 185, 185, 145, 185, 185, 185, 185, 185, 185, 185, 185, 185, 163, 164, 147, 185, 183, 185, 185, 185, 185, 13, 185, 185, 23, 185, 122, 29, 185, 185, 185, 185, 185, 185, 42, 185, 185, 185, 185, 52, 84, 185, 185, 185, 185, 185, 185, 185, 185, 185, 76, 58, 185, 185, 185, 185, 185, 185, 185, 139, 185, 185, 185, 185, 155, 185, 160, 156, 185, 185, 185, 184, 185, 185, 185, 185, 185, 185, 185, 70, 185, 185, 185, 99, 185, 185, 185, 185, 185, 127, 185, 185, 106, 7, 103, 185, 185, 185, 185, 185, 185, 30, 18, 185, 140, 141, 185, 185, 185, 159, 158, 161, 185, 185, 185, 124, 121, 185, 185, 185, 128, 185, 78, 72, 75, 185, 185, 37, 185, 73, 35, 129, 185, 185, 185, 185, 185, 185, 150, 185, 185, 185, 185, 185, 123, 185, 185, 185, 104, 77, 65, 185, 185, 185, 185, 185, 153, 185, 185, 170, 185, 185, 71, 185, 185, 185, 111, 185, 185, 185, 185, 185, 185, 185, 112, 185, 113, 148, 174, 167, 185, 185, 185, 185, 120, 92, 74, 125, 0 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 5, 1, 1, 1, 1, 6, 6, 1, 6, 6, 7, 1, 8, 9, 10, 11, 12, 13, 9, 9, 9, 14, 14, 1, 1, 1, 1, 1, 1, 1, 15, 16, 17, 18, 19, 20, 21, 1, 22, 1, 23, 24, 25, 26, 27, 28, 1, 29, 30, 31, 32, 1, 1, 33, 1, 34, 1, 35, 1, 1, 36, 1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const YY_CHAR yy_meta[62] = { 0, 1, 2, 3, 4, 2, 2, 1, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const flex_int16_t yy_base[913] = { 0, 0, 0, 59, 61, 63, 64, 1012, 0, 66, 71, 1013, 0, 1013, 1004, 1013, 63, 26, 961, 968, 971, 960, 21, 969, 113, 164, 945, 40, 954, 29, 958, 31, 961, 950, 959, 42, 958, 945, 0, 1013, 1013, 209, 0, 1013, 1013, 260, 0, 87, 0, 990, 47, 948, 956, 941, 51, 933, 954, 954, 937, 941, 945, 93, 940, 945, 941, 43, 60, 947, 62, 946, 80, 926, 925, 932, 132, 137, 934, 72, 927, 932, 935, 136, 138, 151, 139, 151, 45, 156, 934, 69, 937, 186, 917, 192, 157, 237, 193, 209, 199, 921, 163, 173, 926, 929, 918, 917, 928, 925, 0, 911, 914, 924, 922, 922, 907, 905, 0, 898, 190, 905, 228, 896, 902, 909, 0, 1013, 283, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 0, 0, 1013, 294, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 0, 0, 909, 897, 903, 900, 899, 907, 902, 888, 904, 899, 898, 904, 276, 890, 885, 894, 891, 879, 882, 898, 886, 0, 878, 881, 883, 888, 0, 0, 212, 884, 0, 883, 0, 877, 883, 882, 868, 882, 155, 0, 867, 267, 878, 869, 864, 871, 188, 867, 871, 862, 858, 210, 862, 865, 218, 853, 859, 855, 852, 870, 861, 855, 851, 855, 850, 864, 221, 845, 848, 167, 857, 847, 268, 849, 0, 857, 842, 838, 0, 238, 845, 846, 837, 836, 843, 0, 0, 266, 842, 272, 845, 842, 837, 833, 839, 279, 844, 285, 824, 838, 830, 840, 277, 823, 834, 834, 0, 0, 818, 818, 827, 829, 0, 828, 814, 811, 0, 825, 811, 823, 805, 809, 816, 804, 809, 804, 801, 809, 801, 799, 330, 0, 335, 0, 816, 799, 810, 810, 796, 789, 793, 796, 798, 795, 794, 792, 0, 0, 0, 0, 797, 803, 0, 784, 789, 792, 0, 788, 798, 783, 795, 777, 788, 791, 0, 0, 0, 785, 780, 0, 772, 773, 780, 787, 772, 778, 774, 767, 782, 771, 0, 764, 761, 0, 776, 776, 770, 752, 0, 756, 762, 0, 760, 753, 762, 761, 0, 751, 751, 766, 754, 0, 748, 745, 0, 762, 747, 759, 753, 750, 739, 738, 0, 742, 744, 0, 755, 746, 749, 731, 738, 730, 733, 0, 735, 286, 0, 737, 738, 735, 734, 728, 0, 733, 728, 0, 735, 720, 729, 0, 718, 731, 0, 275, 729, 729, 715, 722, 317, 0, 723, 728, 0, 727, 709, 0, 721, 713, 709, 704, 709, 707, 719, 705, 709, 704, 707, 710, 709, 704, 693, 1013, 1013, 1013, 1013, 694, 701, 696, 699, 0, 340, 698, 689, 705, 0, 697, 692, 701, 0, 700, 699, 688, 697, 0, 696, 692, 203, 694, 677, 674, 691, 690, 673, 678, 0, 680, 686, 681, 671, 0, 679, 674, 0, 0, 664, 0, 664, 679, 665, 677, 653, 665, 654, 655, 664, 661, 670, 651, 645, 0, 667, 663, 655, 654, 646, 321, 649, 661, 280, 660, 643, 641, 653, 648, 0, 651, 0, 636, 651, 642, 641, 633, 636, 630, 647, 642, 641, 626, 639, 0, 638, 641, 623, 635, 622, 627, 622, 622, 626, 310, 629, 624, 316, 627, 0, 629, 611, 612, 623, 608, 0, 608, 608, 605, 610, 605, 617, 601, 606, 0, 604, 612, 0, 603, 596, 601, 0, 0, 0, 0, 611, 608, 593, 0, 0, 0, 0, 593, 595, 0, 0, 607, 590, 597, 0, 591, 603, 0, 0, 589, 588, 0, 0, 0, 578, 581, 598, 578, 588, 0, 583, 578, 576, 579, 0, 574, 578, 579, 0, 571, 0, 0, 587, 582, 0, 0, 569, 576, 567, 0, 570, 562, 0, 567, 0, 562, 578, 0, 564, 576, 571, 0, 556, 557, 572, 0, 554, 552, 562, 550, 562, 0, 0, 555, 552, 551, 546, 548, 561, 552, 0, 553, 552, 553, 556, 0, 551, 541, 536, 540, 543, 542, 546, 535, 547, 542, 0, 537, 542, 531, 530, 535, 541, 533, 528, 538, 518, 519, 522, 0, 517, 526, 519, 514, 508, 516, 0, 0, 521, 518, 519, 521, 507, 518, 509, 0, 0, 0, 501, 0, 0, 503, 512, 0, 0, 516, 504, 0, 505, 0, 504, 0, 509, 0, 496, 492, 506, 509, 504, 494, 506, 484, 492, 495, 479, 490, 0, 492, 488, 480, 494, 478, 479, 0, 476, 480, 474, 474, 474, 479, 471, 467, 482, 0, 0, 0, 468, 0, 480, 462, 459, 460, 0, 453, 454, 0, 444, 0, 0, 449, 27, 56, 136, 234, 244, 0, 284, 282, 291, 305, 0, 0, 320, 309, 310, 319, 313, 311, 315, 320, 322, 0, 0, 329, 324, 328, 325, 343, 344, 341, 329, 330, 348, 337, 342, 0, 334, 0, 0, 348, 336, 336, 0, 337, 343, 336, 337, 341, 347, 345, 0, 344, 344, 343, 0, 347, 345, 349, 364, 347, 0, 357, 353, 0, 0, 0, 368, 364, 361, 367, 364, 359, 0, 0, 367, 0, 0, 361, 363, 361, 0, 0, 0, 366, 367, 372, 0, 0, 385, 365, 383, 0, 380, 0, 0, 0, 389, 372, 0, 370, 0, 0, 0, 380, 387, 391, 391, 396, 389, 0, 394, 386, 387, 395, 386, 0, 385, 386, 389, 0, 0, 0, 399, 390, 392, 393, 397, 0, 399, 400, 0, 397, 395, 0, 399, 398, 398, 0, 409, 407, 414, 415, 409, 407, 411, 0, 417, 0, 0, 0, 0, 405, 415, 407, 411, 0, 0, 0, 0, 1013, 466, 473, 480, 487, 494, 500, 507, 513, 476, 477, 478, 479 } ; static const flex_int16_t yy_def[913] = { 0, 900, 1, 901, 901, 902, 902, 900, 903, 900, 900, 900, 904, 900, 903, 900, 903, 903, 903, 903, 903, 903, 903, 903, 900, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 905, 900, 900, 906, 907, 900, 900, 908, 903, 900, 904, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 905, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 909, 907, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 910, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 900, 911, 900, 912, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 900, 900, 900, 900, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 903, 0, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 } ; static const flex_int16_t yy_nxt[1075] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 8, 8, 8, 8, 8, 8, 8, 8, 16, 8, 17, 8, 8, 18, 19, 20, 8, 8, 8, 21, 8, 22, 23, 8, 8, 8, 24, 8, 25, 26, 27, 28, 29, 30, 8, 8, 31, 32, 8, 8, 8, 33, 8, 8, 34, 35, 8, 8, 36, 37, 8, 8, 8, 39, 40, 39, 40, 43, 43, 47, 47, 50, 44, 44, 47, 47, 52, 58, 109, 112, 53, 115, 59, 791, 120, 167, 116, 151, 110, 113, 47, 47, 156, 212, 168, 41, 213, 41, 121, 45, 45, 792, 152, 61, 61, 61, 61, 61, 61, 157, 187, 172, 169, 173, 51, 46, 170, 188, 175, 217, 218, 46, 176, 61, 61, 61, 61, 61, 61, 62, 63, 64, 65, 66, 46, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 46, 46, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 46, 96, 97, 98, 99, 100, 101, 102, 46, 103, 104, 180, 181, 183, 195, 204, 184, 185, 192, 205, 193, 182, 194, 197, 206, 793, 198, 322, 214, 196, 199, 200, 215, 201, 207, 254, 202, 208, 209, 255, 230, 210, 203, 231, 323, 211, 105, 232, 106, 256, 358, 359, 107, 126, 126, 126, 126, 126, 220, 257, 221, 222, 223, 224, 226, 240, 272, 241, 227, 242, 243, 249, 244, 245, 331, 563, 332, 228, 250, 251, 273, 127, 128, 229, 129, 130, 131, 252, 313, 246, 341, 564, 314, 132, 337, 247, 338, 133, 354, 134, 248, 135, 275, 136, 139, 139, 139, 139, 139, 233, 342, 355, 276, 234, 368, 277, 235, 236, 369, 794, 237, 297, 298, 299, 300, 238, 239, 281, 281, 281, 281, 281, 140, 141, 795, 142, 143, 144, 283, 283, 283, 283, 283, 325, 145, 362, 375, 378, 146, 397, 147, 376, 148, 326, 149, 363, 379, 385, 388, 389, 601, 497, 386, 511, 796, 512, 398, 797, 390, 602, 798, 391, 498, 392, 422, 422, 422, 422, 422, 424, 424, 424, 424, 424, 517, 547, 548, 549, 550, 630, 631, 518, 519, 597, 799, 634, 800, 801, 802, 803, 804, 805, 806, 520, 635, 521, 522, 523, 807, 598, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 38, 38, 38, 38, 38, 38, 38, 42, 42, 42, 42, 42, 42, 42, 46, 282, 284, 423, 425, 46, 46, 48, 48, 790, 48, 48, 48, 48, 124, 124, 789, 788, 124, 124, 125, 125, 787, 125, 125, 125, 125, 137, 137, 786, 137, 785, 137, 138, 138, 784, 138, 138, 138, 138, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 633, 632, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 600, 599, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 516, 515, 514, 513, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 396, 395, 394, 393, 387, 384, 383, 382, 381, 380, 377, 374, 373, 372, 371, 370, 367, 366, 365, 364, 361, 360, 357, 356, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 340, 339, 336, 335, 334, 333, 330, 329, 328, 327, 324, 321, 320, 319, 318, 317, 316, 315, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 280, 279, 278, 274, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 253, 225, 219, 216, 191, 190, 189, 186, 179, 178, 177, 174, 171, 166, 165, 164, 163, 162, 161, 160, 159, 158, 155, 154, 153, 150, 123, 122, 119, 118, 117, 114, 111, 108, 60, 57, 56, 55, 54, 49, 900, 7, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 } ; static const flex_int16_t yy_chk[1075] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 5, 6, 9, 9, 16, 5, 6, 10, 10, 17, 22, 27, 29, 17, 31, 22, 741, 35, 65, 31, 50, 27, 29, 47, 47, 54, 86, 65, 3, 86, 4, 35, 5, 6, 742, 50, 61, 61, 61, 61, 61, 61, 54, 77, 68, 66, 68, 16, 24, 66, 77, 70, 89, 89, 24, 70, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 74, 74, 75, 82, 84, 75, 75, 81, 84, 81, 74, 81, 83, 84, 743, 83, 189, 87, 82, 83, 83, 87, 83, 85, 100, 83, 85, 85, 100, 94, 85, 83, 94, 189, 85, 25, 94, 25, 101, 220, 220, 25, 41, 41, 41, 41, 41, 91, 101, 91, 91, 91, 91, 93, 96, 118, 96, 93, 96, 96, 98, 96, 96, 197, 447, 197, 93, 98, 98, 118, 41, 41, 93, 41, 41, 41, 98, 179, 97, 205, 447, 179, 41, 202, 97, 202, 41, 217, 41, 97, 41, 120, 41, 45, 45, 45, 45, 45, 95, 205, 217, 120, 95, 230, 120, 95, 95, 230, 744, 95, 163, 163, 163, 163, 95, 95, 126, 126, 126, 126, 126, 45, 45, 745, 45, 45, 45, 139, 139, 139, 139, 139, 192, 45, 223, 238, 240, 45, 253, 45, 238, 45, 192, 45, 223, 240, 246, 248, 248, 489, 376, 246, 394, 747, 394, 253, 748, 248, 489, 749, 248, 376, 248, 281, 281, 281, 281, 281, 283, 283, 283, 283, 283, 399, 431, 431, 431, 431, 520, 520, 399, 399, 486, 750, 523, 753, 754, 755, 756, 757, 758, 759, 399, 523, 399, 399, 399, 760, 486, 761, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 777, 780, 781, 782, 784, 785, 786, 787, 788, 789, 790, 792, 793, 794, 796, 797, 798, 799, 800, 802, 803, 807, 808, 809, 810, 811, 812, 815, 818, 819, 820, 824, 825, 826, 829, 830, 831, 833, 837, 838, 840, 844, 845, 846, 847, 848, 849, 851, 852, 853, 854, 855, 857, 858, 859, 863, 864, 865, 866, 867, 869, 870, 872, 873, 875, 876, 877, 879, 880, 881, 882, 883, 884, 885, 887, 892, 893, 894, 895, 901, 901, 901, 901, 901, 901, 901, 902, 902, 902, 902, 902, 902, 902, 903, 909, 910, 911, 912, 903, 903, 904, 904, 740, 904, 904, 904, 904, 905, 905, 737, 735, 905, 905, 906, 906, 734, 906, 906, 906, 906, 907, 907, 732, 907, 731, 907, 908, 908, 730, 908, 908, 908, 908, 729, 727, 723, 722, 721, 720, 719, 718, 717, 716, 715, 713, 712, 711, 710, 709, 708, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 693, 691, 689, 687, 686, 683, 682, 679, 675, 674, 673, 672, 671, 670, 669, 666, 665, 664, 663, 662, 661, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 635, 634, 633, 632, 630, 629, 628, 627, 626, 625, 624, 621, 620, 619, 618, 617, 615, 614, 613, 611, 610, 609, 607, 606, 604, 602, 601, 599, 598, 597, 594, 593, 590, 588, 587, 586, 584, 583, 582, 581, 579, 578, 577, 576, 575, 571, 570, 567, 566, 564, 563, 562, 559, 558, 553, 552, 551, 546, 545, 544, 542, 541, 539, 538, 537, 536, 535, 534, 533, 532, 530, 529, 528, 527, 526, 524, 522, 521, 519, 518, 517, 516, 515, 514, 513, 512, 511, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 496, 494, 493, 492, 491, 490, 488, 487, 485, 484, 483, 482, 481, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 465, 462, 461, 459, 458, 457, 456, 454, 453, 452, 451, 450, 449, 448, 446, 445, 443, 442, 441, 440, 438, 437, 436, 434, 433, 432, 429, 428, 427, 426, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 405, 404, 402, 401, 398, 397, 396, 395, 392, 391, 389, 388, 387, 385, 384, 382, 381, 380, 379, 378, 375, 373, 372, 371, 370, 369, 368, 367, 365, 364, 362, 361, 360, 359, 358, 357, 356, 354, 353, 351, 350, 349, 348, 346, 345, 344, 343, 341, 340, 338, 337, 336, 335, 333, 332, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 319, 318, 314, 313, 312, 311, 310, 309, 308, 306, 305, 304, 302, 301, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 266, 265, 264, 262, 261, 260, 259, 256, 255, 254, 252, 251, 250, 249, 247, 245, 244, 243, 242, 241, 239, 235, 234, 233, 232, 231, 228, 227, 226, 224, 222, 221, 219, 218, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 204, 203, 201, 200, 199, 198, 196, 195, 194, 193, 191, 188, 187, 186, 185, 184, 182, 180, 176, 175, 174, 173, 171, 170, 169, 168, 167, 166, 165, 164, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 123, 122, 121, 119, 117, 115, 114, 113, 112, 111, 110, 109, 107, 106, 105, 104, 103, 102, 99, 92, 90, 88, 80, 79, 78, 76, 73, 72, 71, 69, 67, 64, 63, 62, 60, 59, 58, 57, 56, 55, 53, 52, 51, 49, 37, 36, 34, 33, 32, 30, 28, 26, 23, 21, 20, 19, 18, 14, 7, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 } ; /* Table of booleans, true if rule could match eol. */ static const flex_int32_t yy_rule_can_match_eol[218] = { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, }; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "lexssh.l" #line 43 "lexssh.l" /* Defines if the comments are printed or not */ extern int strip_level; /* #define YY_DECL yylex (YYSTYPE *lvalp);*/ int yylex (void); void yyerror (const char *); /* Initilizes the obstacks */ void sshlex_initialize (void); /* Obstack for strings reading */ static struct obstack string_stack; /* The file we scan. */ const char * sshfilename; #define LATEX_SYM_RETURN(Str) \ yylval.string = (unsigned char *) xstrdup (Str) ; return tLATEXSYMBOL ; #define RETURN_FACE(_f_)\ {yylval.face = _f_ ; return tFACE ;} #define RETURN_FFLAGS(_f_)\ {yylval.fflags = _f_ ; return tFFLAGS ;} #line 1339 "lexssh.c" #line 1341 "lexssh.c" #define INITIAL 0 #define STATE_STRING 1 #define STATE_REGEXP 2 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( void ); int yyget_debug ( void ); void yyset_debug ( int debug_flag ); YY_EXTRA_TYPE yyget_extra ( void ); void yyset_extra ( YY_EXTRA_TYPE user_defined ); FILE *yyget_in ( void ); void yyset_in ( FILE * _in_str ); FILE *yyget_out ( void ); void yyset_out ( FILE * _out_str ); int yyget_leng ( void ); char *yyget_text ( void ); int yyget_lineno ( void ); void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( void ); #else extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT static void yyunput ( int c, char *buf_ptr ); #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( void ); #else static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } { #line 82 "lexssh.l" #line 1563 "lexssh.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 901 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 1013 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { int yyl; for ( yyl = 0; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) yylineno++; ; } do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: YY_RULE_SETUP #line 84 "lexssh.l" { ; } YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP #line 85 "lexssh.l" { ; } YY_BREAK case 3: YY_RULE_SETUP #line 87 "lexssh.l" { BEGIN STATE_STRING; } YY_BREAK case 4: YY_RULE_SETUP #line 88 "lexssh.l" { BEGIN STATE_REGEXP; } YY_BREAK case 5: YY_RULE_SETUP #line 90 "lexssh.l" LATEX_SYM_RETURN ("\042"); YY_BREAK case 6: YY_RULE_SETUP #line 91 "lexssh.l" LATEX_SYM_RETURN ("\044"); YY_BREAK case 7: YY_RULE_SETUP #line 92 "lexssh.l" LATEX_SYM_RETURN ("\047"); YY_BREAK case 8: YY_RULE_SETUP #line 93 "lexssh.l" LATEX_SYM_RETURN ("\100"); YY_BREAK case 9: YY_RULE_SETUP #line 94 "lexssh.l" LATEX_SYM_RETURN ("\101"); YY_BREAK case 10: YY_RULE_SETUP #line 95 "lexssh.l" LATEX_SYM_RETURN ("\102"); YY_BREAK case 11: YY_RULE_SETUP #line 96 "lexssh.l" LATEX_SYM_RETURN ("\103"); YY_BREAK case 12: YY_RULE_SETUP #line 97 "lexssh.l" LATEX_SYM_RETURN ("\104"); YY_BREAK case 13: YY_RULE_SETUP #line 98 "lexssh.l" LATEX_SYM_RETURN ("\105"); YY_BREAK case 14: YY_RULE_SETUP #line 99 "lexssh.l" LATEX_SYM_RETURN ("\106"); YY_BREAK case 15: YY_RULE_SETUP #line 100 "lexssh.l" LATEX_SYM_RETURN ("\107"); YY_BREAK case 16: YY_RULE_SETUP #line 101 "lexssh.l" LATEX_SYM_RETURN ("\110"); YY_BREAK case 17: YY_RULE_SETUP #line 102 "lexssh.l" LATEX_SYM_RETURN ("\111"); YY_BREAK case 18: YY_RULE_SETUP #line 103 "lexssh.l" LATEX_SYM_RETURN ("\112"); YY_BREAK case 19: YY_RULE_SETUP #line 104 "lexssh.l" LATEX_SYM_RETURN ("\113"); YY_BREAK case 20: YY_RULE_SETUP #line 105 "lexssh.l" LATEX_SYM_RETURN ("\114"); YY_BREAK case 21: YY_RULE_SETUP #line 106 "lexssh.l" LATEX_SYM_RETURN ("\115"); YY_BREAK case 22: YY_RULE_SETUP #line 107 "lexssh.l" LATEX_SYM_RETURN ("\116"); YY_BREAK case 23: YY_RULE_SETUP #line 108 "lexssh.l" LATEX_SYM_RETURN ("\117"); YY_BREAK case 24: YY_RULE_SETUP #line 109 "lexssh.l" LATEX_SYM_RETURN ("\120"); YY_BREAK case 25: YY_RULE_SETUP #line 110 "lexssh.l" LATEX_SYM_RETURN ("\121"); YY_BREAK case 26: YY_RULE_SETUP #line 111 "lexssh.l" LATEX_SYM_RETURN ("\122"); YY_BREAK case 27: YY_RULE_SETUP #line 112 "lexssh.l" LATEX_SYM_RETURN ("\123"); YY_BREAK case 28: YY_RULE_SETUP #line 113 "lexssh.l" LATEX_SYM_RETURN ("\124"); YY_BREAK case 29: YY_RULE_SETUP #line 114 "lexssh.l" LATEX_SYM_RETURN ("\125"); YY_BREAK case 30: YY_RULE_SETUP #line 115 "lexssh.l" LATEX_SYM_RETURN ("\126"); YY_BREAK case 31: YY_RULE_SETUP #line 116 "lexssh.l" LATEX_SYM_RETURN ("\127"); YY_BREAK case 32: YY_RULE_SETUP #line 117 "lexssh.l" LATEX_SYM_RETURN ("\130"); YY_BREAK case 33: YY_RULE_SETUP #line 118 "lexssh.l" LATEX_SYM_RETURN ("\131"); YY_BREAK case 34: YY_RULE_SETUP #line 119 "lexssh.l" LATEX_SYM_RETURN ("\132"); YY_BREAK case 35: YY_RULE_SETUP #line 120 "lexssh.l" LATEX_SYM_RETURN ("\134"); YY_BREAK case 36: YY_RULE_SETUP #line 121 "lexssh.l" LATEX_SYM_RETURN ("\136"); YY_BREAK case 37: YY_RULE_SETUP #line 122 "lexssh.l" LATEX_SYM_RETURN ("\140"); YY_BREAK case 38: YY_RULE_SETUP #line 123 "lexssh.l" LATEX_SYM_RETURN ("\141"); YY_BREAK case 39: YY_RULE_SETUP #line 124 "lexssh.l" LATEX_SYM_RETURN ("\142"); YY_BREAK case 40: YY_RULE_SETUP #line 125 "lexssh.l" LATEX_SYM_RETURN ("\143"); YY_BREAK case 41: YY_RULE_SETUP #line 126 "lexssh.l" LATEX_SYM_RETURN ("\144"); YY_BREAK case 42: YY_RULE_SETUP #line 127 "lexssh.l" LATEX_SYM_RETURN ("\145"); YY_BREAK case 43: YY_RULE_SETUP #line 128 "lexssh.l" LATEX_SYM_RETURN ("\146"); YY_BREAK case 44: YY_RULE_SETUP #line 129 "lexssh.l" LATEX_SYM_RETURN ("\147"); YY_BREAK case 45: YY_RULE_SETUP #line 130 "lexssh.l" LATEX_SYM_RETURN ("\150"); YY_BREAK case 46: YY_RULE_SETUP #line 131 "lexssh.l" LATEX_SYM_RETURN ("\151"); YY_BREAK case 47: YY_RULE_SETUP #line 132 "lexssh.l" LATEX_SYM_RETURN ("\152"); YY_BREAK case 48: YY_RULE_SETUP #line 133 "lexssh.l" LATEX_SYM_RETURN ("\153"); YY_BREAK case 49: YY_RULE_SETUP #line 134 "lexssh.l" LATEX_SYM_RETURN ("\154"); YY_BREAK case 50: YY_RULE_SETUP #line 135 "lexssh.l" LATEX_SYM_RETURN ("\155"); YY_BREAK case 51: YY_RULE_SETUP #line 136 "lexssh.l" LATEX_SYM_RETURN ("\156"); YY_BREAK case 52: YY_RULE_SETUP #line 137 "lexssh.l" LATEX_SYM_RETURN ("\157"); YY_BREAK case 53: YY_RULE_SETUP #line 138 "lexssh.l" LATEX_SYM_RETURN ("\160"); YY_BREAK case 54: YY_RULE_SETUP #line 139 "lexssh.l" LATEX_SYM_RETURN ("\161"); YY_BREAK case 55: YY_RULE_SETUP #line 140 "lexssh.l" LATEX_SYM_RETURN ("\162"); YY_BREAK case 56: YY_RULE_SETUP #line 141 "lexssh.l" LATEX_SYM_RETURN ("\163"); YY_BREAK case 57: YY_RULE_SETUP #line 142 "lexssh.l" LATEX_SYM_RETURN ("\164"); YY_BREAK case 58: YY_RULE_SETUP #line 143 "lexssh.l" LATEX_SYM_RETURN ("\165"); YY_BREAK case 59: YY_RULE_SETUP #line 144 "lexssh.l" LATEX_SYM_RETURN ("\166"); YY_BREAK case 60: YY_RULE_SETUP #line 145 "lexssh.l" LATEX_SYM_RETURN ("\167"); YY_BREAK case 61: YY_RULE_SETUP #line 146 "lexssh.l" LATEX_SYM_RETURN ("\170"); YY_BREAK case 62: YY_RULE_SETUP #line 147 "lexssh.l" LATEX_SYM_RETURN ("\171"); YY_BREAK case 63: YY_RULE_SETUP #line 148 "lexssh.l" LATEX_SYM_RETURN ("\172"); YY_BREAK case 64: YY_RULE_SETUP #line 149 "lexssh.l" LATEX_SYM_RETURN ("\176"); YY_BREAK case 65: YY_RULE_SETUP #line 150 "lexssh.l" LATEX_SYM_RETURN ("\241"); YY_BREAK case 66: YY_RULE_SETUP #line 151 "lexssh.l" LATEX_SYM_RETURN ("\242"); YY_BREAK case 67: YY_RULE_SETUP #line 152 "lexssh.l" LATEX_SYM_RETURN ("\243"); YY_BREAK case 68: YY_RULE_SETUP #line 153 "lexssh.l" LATEX_SYM_RETURN ("\245"); YY_BREAK case 69: YY_RULE_SETUP #line 154 "lexssh.l" LATEX_SYM_RETURN ("\246"); YY_BREAK case 70: YY_RULE_SETUP #line 155 "lexssh.l" LATEX_SYM_RETURN ("\247"); YY_BREAK case 71: YY_RULE_SETUP #line 156 "lexssh.l" LATEX_SYM_RETURN ("\250"); YY_BREAK case 72: YY_RULE_SETUP #line 157 "lexssh.l" LATEX_SYM_RETURN ("\251"); YY_BREAK case 73: YY_RULE_SETUP #line 158 "lexssh.l" LATEX_SYM_RETURN ("\252"); YY_BREAK case 74: YY_RULE_SETUP #line 159 "lexssh.l" LATEX_SYM_RETURN ("\253"); YY_BREAK case 75: YY_RULE_SETUP #line 160 "lexssh.l" LATEX_SYM_RETURN ("\254"); YY_BREAK case 76: YY_RULE_SETUP #line 161 "lexssh.l" LATEX_SYM_RETURN ("\255"); YY_BREAK case 77: YY_RULE_SETUP #line 162 "lexssh.l" LATEX_SYM_RETURN ("\256"); YY_BREAK case 78: YY_RULE_SETUP #line 163 "lexssh.l" LATEX_SYM_RETURN ("\257"); YY_BREAK case 79: YY_RULE_SETUP #line 164 "lexssh.l" LATEX_SYM_RETURN ("\260"); YY_BREAK case 80: YY_RULE_SETUP #line 165 "lexssh.l" LATEX_SYM_RETURN ("\261"); YY_BREAK case 81: YY_RULE_SETUP #line 166 "lexssh.l" LATEX_SYM_RETURN ("\263"); YY_BREAK case 82: YY_RULE_SETUP #line 167 "lexssh.l" LATEX_SYM_RETURN ("\264"); YY_BREAK case 83: YY_RULE_SETUP #line 168 "lexssh.l" LATEX_SYM_RETURN ("\265"); YY_BREAK case 84: YY_RULE_SETUP #line 169 "lexssh.l" LATEX_SYM_RETURN ("\266"); YY_BREAK case 85: YY_RULE_SETUP #line 170 "lexssh.l" LATEX_SYM_RETURN ("\267"); YY_BREAK case 86: YY_RULE_SETUP #line 171 "lexssh.l" LATEX_SYM_RETURN ("\270"); YY_BREAK case 87: YY_RULE_SETUP #line 172 "lexssh.l" LATEX_SYM_RETURN ("\271"); YY_BREAK case 88: YY_RULE_SETUP #line 173 "lexssh.l" LATEX_SYM_RETURN ("\272"); YY_BREAK case 89: YY_RULE_SETUP #line 174 "lexssh.l" LATEX_SYM_RETURN ("\273"); YY_BREAK case 90: YY_RULE_SETUP #line 175 "lexssh.l" LATEX_SYM_RETURN ("\274"); YY_BREAK case 91: YY_RULE_SETUP #line 176 "lexssh.l" LATEX_SYM_RETURN ("\276"); YY_BREAK case 92: YY_RULE_SETUP #line 177 "lexssh.l" LATEX_SYM_RETURN ("\277"); YY_BREAK case 93: YY_RULE_SETUP #line 178 "lexssh.l" LATEX_SYM_RETURN ("\300"); YY_BREAK case 94: YY_RULE_SETUP #line 179 "lexssh.l" LATEX_SYM_RETURN ("\301"); YY_BREAK case 95: YY_RULE_SETUP #line 180 "lexssh.l" LATEX_SYM_RETURN ("\302"); YY_BREAK case 96: YY_RULE_SETUP #line 181 "lexssh.l" LATEX_SYM_RETURN ("\303"); YY_BREAK case 97: YY_RULE_SETUP #line 182 "lexssh.l" LATEX_SYM_RETURN ("\304"); YY_BREAK case 98: YY_RULE_SETUP #line 183 "lexssh.l" LATEX_SYM_RETURN ("\305"); YY_BREAK case 99: YY_RULE_SETUP #line 184 "lexssh.l" LATEX_SYM_RETURN ("\306"); YY_BREAK case 100: YY_RULE_SETUP #line 185 "lexssh.l" LATEX_SYM_RETURN ("\307"); YY_BREAK case 101: YY_RULE_SETUP #line 186 "lexssh.l" LATEX_SYM_RETURN ("\310"); YY_BREAK case 102: YY_RULE_SETUP #line 187 "lexssh.l" LATEX_SYM_RETURN ("\311"); YY_BREAK case 103: YY_RULE_SETUP #line 188 "lexssh.l" LATEX_SYM_RETURN ("\312"); YY_BREAK case 104: YY_RULE_SETUP #line 189 "lexssh.l" LATEX_SYM_RETURN ("\313"); YY_BREAK case 105: YY_RULE_SETUP #line 190 "lexssh.l" LATEX_SYM_RETURN ("\314"); YY_BREAK case 106: YY_RULE_SETUP #line 191 "lexssh.l" LATEX_SYM_RETURN ("\315"); YY_BREAK case 107: YY_RULE_SETUP #line 192 "lexssh.l" LATEX_SYM_RETURN ("\316"); YY_BREAK case 108: YY_RULE_SETUP #line 193 "lexssh.l" LATEX_SYM_RETURN ("\317"); YY_BREAK case 109: YY_RULE_SETUP #line 194 "lexssh.l" LATEX_SYM_RETURN ("\320"); YY_BREAK case 110: YY_RULE_SETUP #line 195 "lexssh.l" LATEX_SYM_RETURN ("\321"); YY_BREAK case 111: YY_RULE_SETUP #line 196 "lexssh.l" LATEX_SYM_RETURN ("\322"); YY_BREAK case 112: YY_RULE_SETUP #line 197 "lexssh.l" LATEX_SYM_RETURN ("\324"); YY_BREAK case 113: YY_RULE_SETUP #line 198 "lexssh.l" LATEX_SYM_RETURN ("\324"); YY_BREAK case 114: YY_RULE_SETUP #line 199 "lexssh.l" LATEX_SYM_RETURN ("\325"); YY_BREAK case 115: YY_RULE_SETUP #line 200 "lexssh.l" LATEX_SYM_RETURN ("\326"); YY_BREAK case 116: YY_RULE_SETUP #line 201 "lexssh.l" LATEX_SYM_RETURN ("\327"); YY_BREAK case 117: YY_RULE_SETUP #line 202 "lexssh.l" LATEX_SYM_RETURN ("\330"); YY_BREAK case 118: YY_RULE_SETUP #line 203 "lexssh.l" LATEX_SYM_RETURN ("\331"); YY_BREAK case 119: YY_RULE_SETUP #line 204 "lexssh.l" LATEX_SYM_RETURN ("\332"); YY_BREAK case 120: YY_RULE_SETUP #line 205 "lexssh.l" LATEX_SYM_RETURN ("\333"); YY_BREAK case 121: YY_RULE_SETUP #line 206 "lexssh.l" LATEX_SYM_RETURN ("\334"); YY_BREAK case 122: YY_RULE_SETUP #line 207 "lexssh.l" LATEX_SYM_RETURN ("\335"); YY_BREAK case 123: YY_RULE_SETUP #line 208 "lexssh.l" LATEX_SYM_RETURN ("\336"); YY_BREAK case 124: YY_RULE_SETUP #line 209 "lexssh.l" LATEX_SYM_RETURN ("\337"); YY_BREAK case 125: YY_RULE_SETUP #line 210 "lexssh.l" LATEX_SYM_RETURN ("\340"); YY_BREAK case 126: YY_RULE_SETUP #line 211 "lexssh.l" LATEX_SYM_RETURN ("\341"); YY_BREAK case 127: YY_RULE_SETUP #line 212 "lexssh.l" LATEX_SYM_RETURN ("\342"); YY_BREAK case 128: YY_RULE_SETUP #line 213 "lexssh.l" LATEX_SYM_RETURN ("\342"); YY_BREAK case 129: YY_RULE_SETUP #line 214 "lexssh.l" LATEX_SYM_RETURN ("\344"); YY_BREAK case 130: YY_RULE_SETUP #line 215 "lexssh.l" LATEX_SYM_RETURN ("\345"); YY_BREAK case 131: YY_RULE_SETUP #line 216 "lexssh.l" LATEX_SYM_RETURN ("\351"); YY_BREAK case 132: YY_RULE_SETUP #line 217 "lexssh.l" LATEX_SYM_RETURN ("\353"); YY_BREAK case 133: YY_RULE_SETUP #line 218 "lexssh.l" LATEX_SYM_RETURN ("\361"); YY_BREAK case 134: YY_RULE_SETUP #line 219 "lexssh.l" LATEX_SYM_RETURN ("\362"); YY_BREAK case 135: YY_RULE_SETUP #line 220 "lexssh.l" LATEX_SYM_RETURN ("\371"); YY_BREAK case 136: YY_RULE_SETUP #line 221 "lexssh.l" LATEX_SYM_RETURN ("\373"); YY_BREAK case 137: YY_RULE_SETUP #line 223 "lexssh.l" { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; yylval.integer = value; return tBACK_REF; } YY_BREAK case 138: YY_RULE_SETUP #line 233 "lexssh.l" return tA2PS; YY_BREAK case 139: YY_RULE_SETUP #line 234 "lexssh.l" return tALPHABET; YY_BREAK case 140: YY_RULE_SETUP #line 235 "lexssh.l" return tALPHABETS; YY_BREAK case 141: YY_RULE_SETUP #line 236 "lexssh.l" return tANCESTORS; YY_BREAK case 142: YY_RULE_SETUP #line 237 "lexssh.l" return tARE; YY_BREAK case 143: YY_RULE_SETUP #line 238 "lexssh.l" return tBY; YY_BREAK case 144: YY_RULE_SETUP #line 239 "lexssh.l" return tCASE; YY_BREAK case 145: YY_RULE_SETUP #line 240 "lexssh.l" return tCLOSERS; YY_BREAK case 146: YY_RULE_SETUP #line 241 "lexssh.l" return tCCHAR; YY_BREAK case 147: YY_RULE_SETUP #line 242 "lexssh.l" return tCSTRING; YY_BREAK case 148: YY_RULE_SETUP #line 243 "lexssh.l" return tDOCUMENTATION; YY_BREAK case 149: YY_RULE_SETUP #line 244 "lexssh.l" return tEND; YY_BREAK case 150: YY_RULE_SETUP #line 245 "lexssh.l" return tEXCEPTIONS; YY_BREAK case 151: YY_RULE_SETUP #line 246 "lexssh.l" return tFIRST; YY_BREAK case 152: YY_RULE_SETUP #line 247 "lexssh.l" return tIN; YY_BREAK case 153: YY_RULE_SETUP #line 248 "lexssh.l" { yylval.sensitiveness = case_insensitive ; return tSENSITIVENESS; } YY_BREAK case 154: YY_RULE_SETUP #line 251 "lexssh.l" return tIS; YY_BREAK case 155: YY_RULE_SETUP #line 252 "lexssh.l" return tKEYWORDS; YY_BREAK case 156: YY_RULE_SETUP #line 253 "lexssh.l" return tREQUIRES; YY_BREAK case 157: YY_RULE_SETUP #line 254 "lexssh.l" return tSECOND; YY_BREAK case 158: YY_RULE_SETUP #line 255 "lexssh.l" { yylval.sensitiveness = case_sensitive ; return tSENSITIVENESS; } YY_BREAK case 159: YY_RULE_SETUP #line 258 "lexssh.l" return tOPERATORS; YY_BREAK case 160: YY_RULE_SETUP #line 259 "lexssh.l" return tOPTIONAL; YY_BREAK case 161: YY_RULE_SETUP #line 260 "lexssh.l" return tSEQUENCES; YY_BREAK case 162: YY_RULE_SETUP #line 261 "lexssh.l" return tSTYLE; YY_BREAK case 163: YY_RULE_SETUP #line 262 "lexssh.l" return tVERSION; YY_BREAK case 164: YY_RULE_SETUP #line 263 "lexssh.l" return tWRITTEN; YY_BREAK case 165: YY_RULE_SETUP #line 265 "lexssh.l" RETURN_FACE (Plain) YY_BREAK case 166: YY_RULE_SETUP #line 266 "lexssh.l" RETURN_FACE (Keyword) YY_BREAK case 167: YY_RULE_SETUP #line 267 "lexssh.l" RETURN_FACE (Keyword_strong) YY_BREAK case 168: YY_RULE_SETUP #line 268 "lexssh.l" RETURN_FACE (Error) YY_BREAK case 169: YY_RULE_SETUP #line 269 "lexssh.l" RETURN_FACE (Label) YY_BREAK case 170: YY_RULE_SETUP #line 270 "lexssh.l" RETURN_FACE (Label_strong) YY_BREAK case 171: YY_RULE_SETUP #line 271 "lexssh.l" RETURN_FACE (String) YY_BREAK case 172: YY_RULE_SETUP #line 272 "lexssh.l" RETURN_FACE (Symbol) YY_BREAK case 173: YY_RULE_SETUP #line 273 "lexssh.l" { /* Strip if required */ if ((strip_level == 1) || (strip_level == 3)) RETURN_FFLAGS (ff_Invisible) else RETURN_FACE (Comment) } YY_BREAK case 174: YY_RULE_SETUP #line 279 "lexssh.l" { /* Strip if required */ if ((strip_level == 2) || (strip_level == 3)) RETURN_FFLAGS (ff_Invisible) else RETURN_FACE (Comment_strong) } YY_BREAK case 175: YY_RULE_SETUP #line 286 "lexssh.l" RETURN_FFLAGS (ff_Tag1) YY_BREAK case 176: YY_RULE_SETUP #line 287 "lexssh.l" RETURN_FFLAGS (ff_Tag2) YY_BREAK case 177: YY_RULE_SETUP #line 288 "lexssh.l" RETURN_FFLAGS (ff_Tag3) YY_BREAK case 178: YY_RULE_SETUP #line 289 "lexssh.l" RETURN_FFLAGS (ff_Tag4) YY_BREAK case 179: YY_RULE_SETUP #line 290 "lexssh.l" RETURN_FFLAGS (ff_Index1) YY_BREAK case 180: YY_RULE_SETUP #line 291 "lexssh.l" RETURN_FFLAGS (ff_Index2) YY_BREAK case 181: YY_RULE_SETUP #line 292 "lexssh.l" RETURN_FFLAGS (ff_Index3) YY_BREAK case 182: YY_RULE_SETUP #line 293 "lexssh.l" RETURN_FFLAGS (ff_Index4) YY_BREAK case 183: YY_RULE_SETUP #line 294 "lexssh.l" RETURN_FFLAGS (ff_Encoding) YY_BREAK case 184: YY_RULE_SETUP #line 295 "lexssh.l" RETURN_FFLAGS (ff_Invisible) YY_BREAK case 185: YY_RULE_SETUP #line 297 "lexssh.l" { yylval.string = xstrdup (yytext); return tSTRING; } YY_BREAK case 186: YY_RULE_SETUP #line 301 "lexssh.l" { return yytext[0]; } YY_BREAK /* string of characters */ case 187: YY_RULE_SETUP #line 304 "lexssh.l" { /* return the string */ unsigned char * string; obstack_1grow (&string_stack, '\0'); string = (unsigned char *) obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.string = xstrdup (string); return tSTRING; } YY_BREAK case 188: YY_RULE_SETUP #line 317 "lexssh.l" { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 189: YY_RULE_SETUP #line 326 "lexssh.l" { int value = 0; char *cursor = yytext + 2; while (*cursor) if (*cursor >= 'a' && *cursor <= 'f') value = 16 * value + *cursor++ - 'a' + 10; else if (*cursor >= 'A' && *cursor <= 'F') value = 16 * value + *cursor++ - 'A' + 10; else value = 16 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 190: YY_RULE_SETUP #line 340 "lexssh.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 191: YY_RULE_SETUP #line 341 "lexssh.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 192: YY_RULE_SETUP #line 342 "lexssh.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 193: YY_RULE_SETUP #line 343 "lexssh.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 194: YY_RULE_SETUP #line 344 "lexssh.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 195: YY_RULE_SETUP #line 345 "lexssh.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 196: YY_RULE_SETUP #line 346 "lexssh.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 197: YY_RULE_SETUP #line 347 "lexssh.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 198: YY_RULE_SETUP #line 348 "lexssh.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 199: YY_RULE_SETUP #line 349 "lexssh.l" { obstack_1grow (&string_stack, yytext[1]); } YY_BREAK case 200: /* rule 200 can match eol */ YY_RULE_SETUP #line 351 "lexssh.l" { yyerror (_("end-of-line in string constant")); } YY_BREAK case 201: YY_RULE_SETUP #line 355 "lexssh.l" { obstack_grow (&string_stack, yytext, yyleng); } YY_BREAK /* a regular expression */ case 202: YY_RULE_SETUP #line 361 "lexssh.l" { /* return the string */ char * pattern; int pattern_len; /* I'm not sure I got the 0 terminate the pattern */ obstack_1grow (&string_stack, '\0'); pattern_len = obstack_object_size (&string_stack); pattern = (char *) obstack_finish (&string_stack); obstack_free (&string_stack, pattern); yylval.pattern = XMALLOC (struct pattern); /* len - 1, because the NUL must not be part of the pattern that * will be compiled. We put tough, to be able to use the pattern * in regular C strings manipulations. */ yylval.pattern->len = pattern_len - 1; yylval.pattern->pattern = XNMALLOC (pattern_len, char); memcpy (yylval.pattern->pattern, pattern, pattern_len); BEGIN INITIAL; /* Return to the regular scanning */ return tREGEX; } YY_BREAK case 203: YY_RULE_SETUP #line 383 "lexssh.l" { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 204: YY_RULE_SETUP #line 392 "lexssh.l" { int value = 0; char *cursor = yytext + 2; while (*cursor) if (*cursor >= 'a' && *cursor <= 'f') value = 16 * value + *cursor++ - 'a' + 10; else if (*cursor >= 'A' && *cursor <= 'F') value = 16 * value + *cursor++ - 'A' + 10; else value = 16 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 205: YY_RULE_SETUP #line 406 "lexssh.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 206: YY_RULE_SETUP #line 407 "lexssh.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 207: YY_RULE_SETUP #line 408 "lexssh.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 208: YY_RULE_SETUP #line 409 "lexssh.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 209: YY_RULE_SETUP #line 410 "lexssh.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 210: YY_RULE_SETUP #line 411 "lexssh.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 211: YY_RULE_SETUP #line 412 "lexssh.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 212: YY_RULE_SETUP #line 413 "lexssh.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 213: YY_RULE_SETUP #line 414 "lexssh.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 214: YY_RULE_SETUP #line 415 "lexssh.l" { obstack_1grow (&string_stack, yytext[1]); } YY_BREAK case 215: /* rule 215 can match eol */ YY_RULE_SETUP #line 417 "lexssh.l" { error_at_line (1, 0, sshfilename, sshlineno, _("end of line inside a %s"), "\"..\""); } YY_BREAK case 216: YY_RULE_SETUP #line 422 "lexssh.l" { obstack_grow (&string_stack, yytext, yyleng); } YY_BREAK case 217: YY_RULE_SETUP #line 427 "lexssh.l" ECHO; YY_BREAK #line 2824 "lexssh.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(STATE_STRING): case YY_STATE_EOF(STATE_REGEXP): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { yy_state_type yy_current_state; char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 901 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; char *yy_cp = (yy_c_buf_p); YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 901 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 900); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT static void yyunput (int c, char * yy_bp ) { char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; if ( c == '\n' ){ --yylineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) yylineno++; ; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf ); yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr ) { return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg ) { fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param _line_number line number * */ void yyset_lineno (int _line_number ) { yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str ) { yyin = _in_str ; } void yyset_out (FILE * _out_str ) { yyout = _out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int _bdebug ) { yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ /* We do not touch yylineno unless the option is enabled. */ yylineno = 1; (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 427 "lexssh.l" int yywrap (void) { return 1; } /* * Initialize the obstacks */ void sshlex_initialize (void) { static int first_time = 1; if (first_time) { first_time = 0; obstack_init (&string_stack); } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/lexssh.l����������������������������������������������������������������������������0000644�0000000�0000000�00000031344�14445053504�011625� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%top{ /* -*- c -*- */ /* * Lexer for a2ps. * * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * $Id: lexssh.l,v 1.1.1.1.2.1 2007/12/29 01:58:35 mhatta Exp $ */ #include <config.h> #include "main.h" #include "yy2ssh.h" #include "parsessh.h" #include "xobstack.h" } %{ /* Defines if the comments are printed or not */ extern int strip_level; /* #define YY_DECL yylex (YYSTYPE *lvalp);*/ int yylex (void); void yyerror (const char *); /* Initilizes the obstacks */ void sshlex_initialize (void); /* Obstack for strings reading */ static struct obstack string_stack; /* The file we scan. */ const char * sshfilename; #define LATEX_SYM_RETURN(Str) \ yylval.string = (unsigned char *) xstrdup (Str) ; return tLATEXSYMBOL ; #define RETURN_FACE(_f_)\ {yylval.face = _f_ ; return tFACE ;} #define RETURN_FFLAGS(_f_)\ {yylval.fflags = _f_ ; return tFFLAGS ;} %} %option yylineno %option prefix="ssh" %option outfile="lex.yy.c" %x STATE_STRING STATE_REGEXP comment #.* blank [ \t\r\f\n]* naked_string [^/#, \t\r\f\n\"()+]* %% {comment} { ; } {blank} { ; } \" { BEGIN STATE_STRING; } \/ { BEGIN STATE_REGEXP; } "\\forall" LATEX_SYM_RETURN ("\042"); "\\exists" LATEX_SYM_RETURN ("\044"); "\\suchthat" LATEX_SYM_RETURN ("\047"); "\\cong" LATEX_SYM_RETURN ("\100"); "\\Alpha" LATEX_SYM_RETURN ("\101"); "\\Beta" LATEX_SYM_RETURN ("\102"); "\\Chi" LATEX_SYM_RETURN ("\103"); "\\Delta" LATEX_SYM_RETURN ("\104"); "\\Epsilon" LATEX_SYM_RETURN ("\105"); "\\Phi" LATEX_SYM_RETURN ("\106"); "\\Gamma" LATEX_SYM_RETURN ("\107"); "\\Eta" LATEX_SYM_RETURN ("\110"); "\\Iota" LATEX_SYM_RETURN ("\111"); "\\vartheta" LATEX_SYM_RETURN ("\112"); "\\Kappa" LATEX_SYM_RETURN ("\113"); "\\Lambda" LATEX_SYM_RETURN ("\114"); "\\Mu" LATEX_SYM_RETURN ("\115"); "\\Nu" LATEX_SYM_RETURN ("\116"); "\\Omicron" LATEX_SYM_RETURN ("\117"); "\\Pi" LATEX_SYM_RETURN ("\120"); "\\Theta" LATEX_SYM_RETURN ("\121"); "\\Rho" LATEX_SYM_RETURN ("\122"); "\\Sigma" LATEX_SYM_RETURN ("\123"); "\\Tau" LATEX_SYM_RETURN ("\124"); "\\Upsilon" LATEX_SYM_RETURN ("\125"); "\\varsigma" LATEX_SYM_RETURN ("\126"); "\\Omega" LATEX_SYM_RETURN ("\127"); "\\Xi" LATEX_SYM_RETURN ("\130"); "\\Psi" LATEX_SYM_RETURN ("\131"); "\\Zeta" LATEX_SYM_RETURN ("\132"); "\\therefore" LATEX_SYM_RETURN ("\134"); "\\perp" LATEX_SYM_RETURN ("\136"); "\\radicalex" LATEX_SYM_RETURN ("\140"); "\\alpha" LATEX_SYM_RETURN ("\141"); "\\beta" LATEX_SYM_RETURN ("\142"); "\\chi" LATEX_SYM_RETURN ("\143"); "\\delta" LATEX_SYM_RETURN ("\144"); "\\epsilon" LATEX_SYM_RETURN ("\145"); "\\phi" LATEX_SYM_RETURN ("\146"); "\\gamma" LATEX_SYM_RETURN ("\147"); "\\eta" LATEX_SYM_RETURN ("\150"); "\\iota" LATEX_SYM_RETURN ("\151"); "\\varphi" LATEX_SYM_RETURN ("\152"); "\\kappa" LATEX_SYM_RETURN ("\153"); "\\lambda" LATEX_SYM_RETURN ("\154"); "\\mu" LATEX_SYM_RETURN ("\155"); "\\nu" LATEX_SYM_RETURN ("\156"); "\\omicron" LATEX_SYM_RETURN ("\157"); "\\pi" LATEX_SYM_RETURN ("\160"); "\\theta" LATEX_SYM_RETURN ("\161"); "\\rho" LATEX_SYM_RETURN ("\162"); "\\sigma" LATEX_SYM_RETURN ("\163"); "\\tau" LATEX_SYM_RETURN ("\164"); "\\upsilon" LATEX_SYM_RETURN ("\165"); "\\varpi" LATEX_SYM_RETURN ("\166"); "\\omega" LATEX_SYM_RETURN ("\167"); "\\xi" LATEX_SYM_RETURN ("\170"); "\\psi" LATEX_SYM_RETURN ("\171"); "\\zeta" LATEX_SYM_RETURN ("\172"); "\\sim" LATEX_SYM_RETURN ("\176"); "\\varUpsilon" LATEX_SYM_RETURN ("\241"); "\\prime" LATEX_SYM_RETURN ("\242"); "\\leq" LATEX_SYM_RETURN ("\243"); "\\infty" LATEX_SYM_RETURN ("\245"); "\\florin" LATEX_SYM_RETURN ("\246"); "\\clubsuit" LATEX_SYM_RETURN ("\247"); "\\diamondsuit" LATEX_SYM_RETURN ("\250"); "\\heartsuit" LATEX_SYM_RETURN ("\251"); "\\spadesuit" LATEX_SYM_RETURN ("\252"); "\\leftrightarrow" LATEX_SYM_RETURN ("\253"); "\\leftarrow" LATEX_SYM_RETURN ("\254"); "\\uparrow" LATEX_SYM_RETURN ("\255"); "\\rightarrow" LATEX_SYM_RETURN ("\256"); "\\downarrow" LATEX_SYM_RETURN ("\257"); "\\circ" LATEX_SYM_RETURN ("\260"); "\\pm" LATEX_SYM_RETURN ("\261"); "\\geq" LATEX_SYM_RETURN ("\263"); "\\times" LATEX_SYM_RETURN ("\264"); "\\propto" LATEX_SYM_RETURN ("\265"); "\\partial" LATEX_SYM_RETURN ("\266"); "\\bullet" LATEX_SYM_RETURN ("\267"); "\\div" LATEX_SYM_RETURN ("\270"); "\\neq" LATEX_SYM_RETURN ("\271"); "\\equiv" LATEX_SYM_RETURN ("\272"); "\\approx" LATEX_SYM_RETURN ("\273"); "\\ldots" LATEX_SYM_RETURN ("\274"); "---" LATEX_SYM_RETURN ("\276"); "\\carriagereturn" LATEX_SYM_RETURN ("\277"); "\\aleph" LATEX_SYM_RETURN ("\300"); "\\Im" LATEX_SYM_RETURN ("\301"); "\\Re" LATEX_SYM_RETURN ("\302"); "\\wp" LATEX_SYM_RETURN ("\303"); "\\otimes" LATEX_SYM_RETURN ("\304"); "\\oplus" LATEX_SYM_RETURN ("\305"); "\\emptyset" LATEX_SYM_RETURN ("\306"); "\\cap" LATEX_SYM_RETURN ("\307"); "\\cup" LATEX_SYM_RETURN ("\310"); "\\supset" LATEX_SYM_RETURN ("\311"); "\\supseteq" LATEX_SYM_RETURN ("\312"); "\\not\\subset" LATEX_SYM_RETURN ("\313"); "\\subset" LATEX_SYM_RETURN ("\314"); "\\subseteq" LATEX_SYM_RETURN ("\315"); "\\in" LATEX_SYM_RETURN ("\316"); "\\not\\in" LATEX_SYM_RETURN ("\317"); "\\angle" LATEX_SYM_RETURN ("\320"); "\\nabla" LATEX_SYM_RETURN ("\321"); "\\varregister" LATEX_SYM_RETURN ("\322"); "\\varcopyright" LATEX_SYM_RETURN ("\324"); "\\vartrademark" LATEX_SYM_RETURN ("\324"); "\\prod" LATEX_SYM_RETURN ("\325"); "\\surd" LATEX_SYM_RETURN ("\326"); "\\cdot" LATEX_SYM_RETURN ("\327"); "\\not" LATEX_SYM_RETURN ("\330"); "\\wedge" LATEX_SYM_RETURN ("\331"); "\\vee" LATEX_SYM_RETURN ("\332"); "\\Leftrightarrow" LATEX_SYM_RETURN ("\333"); "\\Leftarrow" LATEX_SYM_RETURN ("\334"); "\\Uparrow" LATEX_SYM_RETURN ("\335"); "\\Rightarrow" LATEX_SYM_RETURN ("\336"); "\\Downarrow" LATEX_SYM_RETURN ("\337"); "\\vardiamondsuit" LATEX_SYM_RETURN ("\340"); "\\langle" LATEX_SYM_RETURN ("\341"); "\\register" LATEX_SYM_RETURN ("\342"); "\\copyright" LATEX_SYM_RETURN ("\342"); "\\trademark" LATEX_SYM_RETURN ("\344"); "\\sum" LATEX_SYM_RETURN ("\345"); "\\lceil" LATEX_SYM_RETURN ("\351"); "\\lfloor" LATEX_SYM_RETURN ("\353"); "\\rangle" LATEX_SYM_RETURN ("\361"); "\\int" LATEX_SYM_RETURN ("\362"); "\\rceil" LATEX_SYM_RETURN ("\371"); "\\rfloor" LATEX_SYM_RETURN ("\373"); \\[0-9]+ { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; yylval.integer = value; return tBACK_REF; } "a2ps" return tA2PS; "alphabet" return tALPHABET; "alphabets" return tALPHABETS; "ancestors" return tANCESTORS; "are" return tARE; "by" return tBY; "case" return tCASE; "closers" return tCLOSERS; "C-char" return tCCHAR; "C-string" return tCSTRING; "documentation" return tDOCUMENTATION; "end" return tEND; "exceptions" return tEXCEPTIONS; "first" return tFIRST; "in" return tIN; "insensitive" { yylval.sensitiveness = case_insensitive ; return tSENSITIVENESS; } "is" return tIS; "keywords" return tKEYWORDS; "requires" return tREQUIRES; "second" return tSECOND; "sensitive" { yylval.sensitiveness = case_sensitive ; return tSENSITIVENESS; } "operators" return tOPERATORS; "optional" return tOPTIONAL; "sequences" return tSEQUENCES; "style" return tSTYLE; "version" return tVERSION; "written" return tWRITTEN; "Plain" RETURN_FACE (Plain) "Keyword" RETURN_FACE (Keyword) "Keyword_strong" RETURN_FACE (Keyword_strong) "Error" RETURN_FACE (Error) "Label" RETURN_FACE (Label) "Label_strong" RETURN_FACE (Label_strong) "String" RETURN_FACE (String) "Symbol" RETURN_FACE (Symbol) "Comment" { /* Strip if required */ if ((strip_level == 1) || (strip_level == 3)) RETURN_FFLAGS (ff_Invisible) else RETURN_FACE (Comment) } "Comment_strong" { /* Strip if required */ if ((strip_level == 2) || (strip_level == 3)) RETURN_FFLAGS (ff_Invisible) else RETURN_FACE (Comment_strong) } "Tag1" RETURN_FFLAGS (ff_Tag1) "Tag2" RETURN_FFLAGS (ff_Tag2) "Tag3" RETURN_FFLAGS (ff_Tag3) "Tag4" RETURN_FFLAGS (ff_Tag4) "Index1" RETURN_FFLAGS (ff_Index1) "Index2" RETURN_FFLAGS (ff_Index2) "Index3" RETURN_FFLAGS (ff_Index3) "Index4" RETURN_FFLAGS (ff_Index4) "Encoding" RETURN_FFLAGS (ff_Encoding) "Invisible" RETURN_FFLAGS (ff_Invisible) {naked_string} { yylval.string = xstrdup (yytext); return tSTRING; } . { return yytext[0]; } <STATE_STRING>{ /* string of characters */ \" { /* return the string */ unsigned char * string; obstack_1grow (&string_stack, '\0'); string = (unsigned char *) obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.string = xstrdup (string); return tSTRING; } \\[0-7]{1,3} { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } \\x[0-9a-fA-F]{1,2} { int value = 0; char *cursor = yytext + 2; while (*cursor) if (*cursor >= 'a' && *cursor <= 'f') value = 16 * value + *cursor++ - 'a' + 10; else if (*cursor >= 'A' && *cursor <= 'F') value = 16 * value + *cursor++ - 'A' + 10; else value = 16 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } \\a { obstack_1grow (&string_stack, '\007'); } \\b { obstack_1grow (&string_stack, '\b'); } \\d { obstack_1grow (&string_stack, 127); } \\e { obstack_1grow (&string_stack, 27); } \\f { obstack_1grow (&string_stack, '\f'); } \\n { obstack_1grow (&string_stack, '\n'); } \\r { obstack_1grow (&string_stack, '\r'); } \\t { obstack_1grow (&string_stack, '\t'); } \\v { obstack_1grow (&string_stack, '\v'); } \\. { obstack_1grow (&string_stack, yytext[1]); } \n { yyerror (_("end-of-line in string constant")); } [^\"\n\\]+ { obstack_grow (&string_stack, yytext, yyleng); } } <STATE_REGEXP>{ /* a regular expression */ \/ { /* return the string */ char * pattern; int pattern_len; /* I'm not sure I got the 0 terminate the pattern */ obstack_1grow (&string_stack, '\0'); pattern_len = obstack_object_size (&string_stack); pattern = (char *) obstack_finish (&string_stack); obstack_free (&string_stack, pattern); yylval.pattern = XMALLOC (struct pattern); /* len - 1, because the NUL must not be part of the pattern that * will be compiled. We put tough, to be able to use the pattern * in regular C strings manipulations. */ yylval.pattern->len = pattern_len - 1; yylval.pattern->pattern = XNMALLOC (pattern_len, char); memcpy (yylval.pattern->pattern, pattern, pattern_len); BEGIN INITIAL; /* Return to the regular scanning */ return tREGEX; } \\[0-7]{1,3} { int value = yytext[1] - '0'; char *cursor = yytext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } \\x[0-9a-fA-F]{1,2} { int value = 0; char *cursor = yytext + 2; while (*cursor) if (*cursor >= 'a' && *cursor <= 'f') value = 16 * value + *cursor++ - 'a' + 10; else if (*cursor >= 'A' && *cursor <= 'F') value = 16 * value + *cursor++ - 'A' + 10; else value = 16 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } \\a { obstack_1grow (&string_stack, '\007'); } \\b { obstack_1grow (&string_stack, '\b'); } \\d { obstack_1grow (&string_stack, 127); } \\e { obstack_1grow (&string_stack, 27); } \\f { obstack_1grow (&string_stack, '\f'); } \\n { obstack_1grow (&string_stack, '\n'); } \\r { obstack_1grow (&string_stack, '\r'); } \\t { obstack_1grow (&string_stack, '\t'); } \\v { obstack_1grow (&string_stack, '\v'); } \\. { obstack_1grow (&string_stack, yytext[1]); } \n { error_at_line (1, 0, sshfilename, sshlineno, _("end of line inside a %s"), "\"..\""); } [^\n\\\/]+ { obstack_grow (&string_stack, yytext, yyleng); } } %% int yywrap (void) { return 1; } /* * Initialize the obstacks */ void sshlex_initialize (void) { static int first_time = 1; if (first_time) { first_time = 0; obstack_init (&string_stack); } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/main.c������������������������������������������������������������������������������0000644�0000000�0000000�00000104607�14445053504�011235� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* main.c - main loop, and interface with user Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /************************************************************************/ /* */ /* I n c l u d e f i l e s */ /* */ /************************************************************************/ #include <config.h> #include <signal.h> #include <locale.h> #include "a2ps.h" #include "argmatch.h" #include "confg.h" #include "options.h" #include "pathwalk.h" #include "select.h" #include "generate.h" #include "printers.h" #include "delegate.h" #include "metaseq.h" #include "regex.h" #include "buffer.h" #include "psgen.h" #include "prolog.h" #include "stream.h" #include "getnum.h" #include "title.h" #include "useropt.h" #include "main.h" #include "routines.h" #include "lexps.h" #include "sig2str.h" #include "version-etc.h" /* From basename.c */ char *base_name (const char *path); /************************************************************************/ /* */ /* G l o b a l d e f i n i t i o n s */ /* */ /************************************************************************/ /************************************************************************ * The various global behaviors */ enum behavior { b_ps, /* postscript generator (usual PS converter) */ b_guess, /* do as file(1) does: return the ssh file name */ b_help, b_version, b_expand, /* Expand the strings given as arguments. */ b_which, /* Look for the args in the path, and report. */ b_glob, /* Same, but with globbing. */ b_list_options, b_list_features, b_list_media, b_list_style_sheets, b_list_html_style_sheets, b_list_texinfo_style_sheets, b_list_printers, b_list_delegations, b_list_macro_meta_sequences, b_list_encodings, b_list_texinfo_encodings, b_list_user_options, b_list_prologues, b_list_texinfo_prologues, b_list_ppd }; /* Stores the task to execute. Default: a2ps. */ enum behavior behavior = b_ps; /* Name under which this program is called. To understand why it is defined twice, see lib/confg.gperf, handling of `Options:'. */ char *program_name; /* Stores the data of liba2ps. */ a2ps_job *job = NULL; /* Syntax table for regex. */ char *re_syntax_table = NULL; #define RE_SYNTAX_A2PS \ (/* Allow char classes. */ \ RE_CHAR_CLASSES \ /* Be picky. */ \ | RE_CONTEXT_INVALID_OPS \ /* Allow intervals with `{' and `}', forbid invalid ranges. */\ | RE_INTERVALS | RE_NO_BK_BRACES | RE_NO_EMPTY_RANGES \ /* `(' and `)' are the grouping operators. */ \ | RE_NO_BK_PARENS \ /* `|' is the alternation. */ \ | RE_NO_BK_VBAR) /************************************************************************/ /* Related to the config files */ /************************************************************************/ /* * Hash table of the delegations */ struct hash_table_s *delegation_table; /* * Content of sheets.map */ struct darray *sheets_map = NULL; /* * Hash table of the sheet yet read */ struct hash_table_s *style_sheets = NULL; /************************************************************************/ /* Related to the options */ /************************************************************************/ /* * Delegate files to other applications. */ bool delegate_p = true; /* * --toc[=format], generate a table of content */ char *toc = NULL; /* * -E: style sheet to use. NULL => automated */ char *style_request = NULL; /* * -g/--highlight-level: 0, 1 or 2 */ int highlight_level = 1; /* * --strip=NUM, don't write the comments */ int strip_level = 0; /* * --end-of-line=TYPE, specify what are the sequences of chars to * interpret as end of line */ enum eol_e end_of_line = eol_auto; /************************************************************************/ /* Service routines */ /************************************************************************/ /* * Unlink all the used files. Used for atexit */ static void exit_handler (void) { if (job) a2ps_job_unlink_tmpfiles (job); if (sample_tmpname) unlink (sample_tmpname); } static void signal_handler (int signum) { /* Error calls exit which calls atexit which removes the files. */ char strsignal[SIG2STR_MAX]; sig2str (signum, strsignal); error (EXIT_FAILURE, 0, _("received SIG%s"), strsignal); } /************************************************************************ * Read the highlighting level */ static const char *const highlight_level_args[] = { "none", "off", "0", "normal", "light", "1", "heavy", "symbols", "2", 0 }; static const int highlight_level_types[] = { 0, 0, 0, 1, 1, 1, 2, 2, 2 }; /* * Return the highlight_level value */ static int get_highlight_level (const char *option, const char *arg) { //ARGMATCH_VERIFY (highlight_level_args, highlight_level_types); return XARGMATCH (option, arg, highlight_level_args, highlight_level_types); } static char * highlight_level_to_string (int level) { switch (level) { case 2: /* TRANS: highlighting level = heavy (2/2) */ return _("heavy"); case 1: /* TRANS: highlighting level = normal (1/2) */ return _("normal"); case 0: /* TRANS: highlighting level = none (0/2) */ return _("none"); } return NULL; /* For -Wall */ } /************************************************************************ * Read the --list argument */ static const char *const behavior_args[] = { "defaults", "options", "settings", "features", "plugins", "delegations", "encodings", "charsets", "variables", "macro-meta-sequences", "media", "printers", "outputs", "style-sheets", "languages", "user-options", "shortcuts", "prologues", "texinfo-style-sheets", "ssh-texi", "html-style-sheets", "ssh-html", "texinfo-encodings", "edf-texi", "texinfo-prologues", "pro-texi", "ppd", "version", "release", "help", "usage", "expand", "which", "find", "glob", "ps", NULL }; static const enum behavior behavior_types[] = { b_list_options, b_list_options, b_list_options, b_list_features, b_list_features, b_list_delegations, b_list_encodings, b_list_encodings, b_list_macro_meta_sequences, b_list_macro_meta_sequences, b_list_media, b_list_printers, b_list_printers, b_list_style_sheets, b_list_style_sheets, b_list_user_options, b_list_user_options, b_list_prologues, b_list_texinfo_style_sheets, b_list_texinfo_style_sheets, b_list_html_style_sheets, b_list_html_style_sheets, b_list_texinfo_encodings, b_list_texinfo_encodings, b_list_texinfo_prologues, b_list_texinfo_prologues, b_list_ppd, b_version, b_version, b_help, b_help, b_expand, b_which, b_which, b_glob, b_ps }; /************************************************************************/ /* Interface */ /************************************************************************/ /*------------------------------------------------------------------. | Print information depending on the installation. It is also used | | to store useful information in the output to help us debuging the | | users :). | `------------------------------------------------------------------*/ static void list_options (struct a2ps_job *a_job, FILE *stream) { #if 0 /* This is just so that gettext knows I use those two strings. */ static char *yes = N_("yes"); static char *no = N_("no"); #endif #define bool_to_string(bool) ((bool) ? _("yes") : _("no")) char buf[256], buf2[256]; const char *cp = NULL, *cp2 = NULL; /* Title of --list-options (%s%s is `a2ps' `version' */ title (stream, '=', true, _("Configuration status of %s %s\n"), program_name, VERSION); putc ('\n', stream); title (stream, '-', false, _("Sheets:\n")); fprintf (stream, _("\ medium = %s, %s\n\ page layout = %zu x %zu, %s\n\ borders = %s\n\ file alignment = %s\n\ interior margin = %u\n"), a_job->medium->name, (a_job->orientation == portrait) ? _("portrait") : _("landscape"), a_job->columns, a_job->rows, madir_to_string (a_job->madir), bool_to_string (a_job->border), file_align_to_string (a_job->file_align), a_job->margin); putc ('\n', stream); if (a_job->columns_requested > 0) sprintf ((char *) buf, _("%u characters per line"), a_job->columns_requested); else if (a_job->lines_requested > 0) sprintf ((char *) buf, _("%u lines per page"), a_job->lines_requested); else sprintf ((char *) buf, _("font size is %gpt"), (double) a_job->fontsize); switch (a_job->numbering) { case 0: strcpy (buf2, _("no")); break; case 1: /* number line: each line */ strcpy (buf2, _("each line")); break; default: /* number line: each %d line */ sprintf ((char *) buf2, _("each %u lines"), a_job->numbering); } title (stream, '-', false, _("Virtual pages:\n")); fprintf (stream, _("\ number lines = %s\n\ format = %s\n\ tabulation size = %u\n\ non printable format = %s\n"), buf2, buf, a_job->tabsize, unprintable_format_to_string (a_job->unprintable_format)); putc ('\n', stream); title (stream, '-', false, _("Headers:\n")); fprintf (stream, _("\ header = %s\n\ left footer = %s\n\ footer = %s\n\ right footer = %s\n\ left title = %s\n\ center title = %s\n\ right title = %s\n\ under lay = %s\n"), UNNULL (a_job->header), UNNULL (a_job->left_footer), UNNULL (a_job->footer), UNNULL (a_job->right_footer), UNNULL (a_job->left_title), UNNULL (a_job->center_title), UNNULL (a_job->right_title), UNNULL (a_job->water)); putc ('\n', stream); title (stream, '-', false, _("Input:\n")); fprintf (stream, _("\ truncate lines = %s\n\ interpret = %s\n\ end of line = %s\n\ encoding = %s\n\ document title = %s\n\ prologue = %s\n\ print anyway = %s\n\ delegating = %s\n"), bool_to_string (!a_job->folding), bool_to_string (a_job->interpret), eol_to_string (end_of_line), encoding_get_name (a_job->requested_encoding), a_job->title, a_job->prolog, bool_to_string (a_job->print_binaries), bool_to_string (delegate_p)); putc ('\n', stream); /* * Pretty printing */ if (IS_EMPTY (style_request)) /* TRANS: a2ps -E --list=options. Warning, this answer is also used for the PPD file. Make it compatible with both. */ strcpy (buf, _("selected automatically")); else strcpy (buf, style_request); title (stream, '-', false, _("Pretty-printing:\n")); fprintf (stream, _("\ style sheet = %s\n\ highlight level = %s\n\ strip level = %d\n"), buf, highlight_level_to_string (highlight_level), strip_level); putc ('\n', stream); /* * Information on where will go the output */ /* Make a nice message to tell where the output is sent */ cp2 = a2ps_flag_destination_to_string (a_job); /* Make a nice message to tell what version control is used */ switch (a_job->backup_type) { case no_backups: cp = _("never make backups"); break; case simple_backups: cp = _("simple backups of every file"); break; case numbered_existing_backups: /* appears in a2ps --version-=existing --list=defaults */ cp = _("numbered backups of files already numbered,\n\ and simple of others"); break; case numbered_backups: cp = _("numbered backups of every file"); break; } title (stream, '-', false, _("Output:\n")); fprintf (stream, _("\ destination = %s\n\ version control = %s\n\ backup suffix = %s\n"), cp2, cp, simple_backup_suffix); putc ('\n', stream); /* * PostScript report. * TRANS: to be aligned with `page prefeed =' */ cp = a2ps_printers_request_ppdkey_get (a_job->printers); title (stream, '-', false, _("PostScript:\n")); fprintf (stream, _("\ magic number = %s\n\ Printer Description (PPD) = %s\n\ default PPD = %s\n\ page label format = %s\n\ number of copies = %u\n\ sides per sheet = %s\n\ page device definitions = "), a_job->status->magic_number, cp ? cp : _("selected automatically"), a2ps_printers_default_ppdkey_get (a_job->printers), a_job->status->page_label_format, a_job->copies, (a_job->duplex == simplex ? "Simplex" : (a_job->duplex == duplex ? "Duplex" : "DuplexTumble"))); list_pagedevice (a_job, stream); fprintf (stream, _("\ statusdict definitions = ")); list_statusdict (a_job, stream); fprintf (stream, _("\ page prefeed = %s\n"), bool_to_string (a_job->page_prefeed)); putc ('\n', stream); /* * Internal Details */ title (stream, '-', false, _("Internals:\n")); fprintf (stream, _("\ verbosity level = %u\n\ file command = %s\n\ library path = \n"), msg_verbosity, UNNULL (a_job->file_command)); pw_fprintf_path (stream, "\t%s\n", a_job->common.path); } /*------------------------------------------------------------------. | This is used in psgen to push into the PostScript the report of | | the state of a2ps when it produced the file. I'm tired of | | fighting with users who don't really say everything on the state | | of their a2ps when something goes wrong. Now I can ask a ps file | | generated with --debug, and got everything I need. | `------------------------------------------------------------------*/ static void spy_user (struct a2ps_job *a_job, FILE * stream) { #define PREFIX "% " FILE *spy; char *spyname; char buf[BUFSIZ]; /* Use one of the temp file names so that cleanup can be correctly done. */ tempname_ensure (job->tmp_filenames[0]); spyname = job->tmp_filenames[0]; spy = fopen (spyname, "w"); if (!spy) error (1, errno, _("cannot open file `%s'"), quotearg (spyname)); /* Well, this is the information I've been fighting with some users to get them exact... I hate doing that, but I need to save part of my time. */ fputs ("SPY-BEGIN\n", spy); fputs ((char *) expand_user_string (job, CURRENT_FILE (job), "Debugging info", "%V was called with #!$|| |\n\n"), spy); list_options (a_job, spy); putc ('\n', spy); macro_meta_sequences_list_long (a_job, spy); fputs ("SPY-END\n", spy); /* Yes, I know, there are certainly better means. Just teach them to me... */ fclose (spy); spy = fopen (spyname, "r"); if (!spy) error (1, errno, _("cannot open file `%s'"), quotearg (spyname)); while (fgets (buf, sizeof (buf), spy)) { fputs (PREFIX, stream); fputs (buf, stream); } fputs (PREFIX, stream); putc ('\n', stream); fclose (spy); unlink (spyname); } /*--------------------------------------------------. | Print information depending on the installation. | `--------------------------------------------------*/ static void list_features (struct a2ps_job *a_job, FILE * stream) { /* Known languages */ list_style_sheets_short (stream); putc ('\n', stream); /* Known char sets */ list_encodings_short (a_job, stream); putc ('\n', stream); /* Known media */ list_media_short (a_job, stream); putc ('\n', stream); /* Known prologues */ prologues_list_short (a_job, stream); putc ('\n', stream); /* Known PPD files */ a2ps_ppd_list_short (a_job, stream); putc ('\n', stream); /* Known "printers" */ a2ps_printers_list_short (a_job, stream); putc ('\n', stream); /* Known "delegates" */ delegations_list_short (delegation_table, stream); putc ('\n', stream); /* Known user options */ user_options_list_short (a_job, stream); putc ('\n', stream); /* Macro meta seq. */ macro_meta_sequences_list_short (a_job, stream); } /*------------------------. | Print a usage message. | `------------------------*/ static void usage (int status) { /* TRANSLATORS: In version 4.14.93, strings in this file were reformatted with whitespace changes only! Changes to the corresponding strings in your language would be much appreciated, but is not important for user understanding. */ printf (_("\ Usage: %s [OPTION]... [FILE]...\n\ \n\ Convert FILE(s) or standard input to PostScript. By default, the output is\n\ sent to the default printer. An output file may be specified with -o.\n\ \n\ Mandatory arguments to long options are mandatory for short options too.\n\ Long options marked with `*' require a yes/no argument, corresponding short\n\ options stand for `yes'.\n"), program_name); /* * Does not print, and exits with success */ putchar ('\n'); puts (_("Tasks:\n")); puts (_("\ --version display version\n\ --help display this help\n\ --guess report guessed types of FILES\n\ --which report the full path of library files named\n\ FILES\n\ --glob report the full path of library files matching\n\ FILES\n\ --list=defaults display default settings and parameters\n\ --list=TOPIC detailed list on TOPIC (delegations,\n\ encodings, features, variables, media, ppd,\n\ printers, prologues, style-sheets,\n\ user-options)\n")); putchar ('\n'); puts (_("\ After having performed the task, exit successfully. Detailed lists may provide\n\ additional help on specific features.\n")); /* * Applies to the whole behavior */ putchar ('\n'); puts (_("Global:\n")); puts (_("\ -q, --quiet, --silent be really quiet\n\ -v, --verbose[=LEVEL] set verbosity on, or to LEVEL\n\ -=, --user-option=OPTION use the user defined shortcut OPTION\n\ --debug enable debugging features\n\ -D, --define=KEY[:VALUE] unset variable KEY or set to VALUE\n")); putchar ('\n'); puts (_("Sheets:\n")); puts (_("\ -M, --medium=NAME use output medium NAME\n\ -r, --landscape print in landscape mode\n\ -R, --portrait print in portrait mode\n\ --columns=NUM number of columns per sheet\n\ --rows=NUM number of rows per sheet\n\ --major=DIRECTION first fill (DIRECTION=) rows, or columns\n\ -1, -2, ..., -9 predefined font sizes and layouts for 1..9\n\ virtuals\n\ -A, --file-align=MODE align separate files according to MODE (fill,\n\ rank page, sheet, or a number)\n\ -j, --borders* print borders around columns\n\ --margin[=NUM] define an interior margin of size NUM\n")); putchar ('\n'); puts (_("\ The options -1.. -9 affect several primitive parameters to set up predefined\n\ layouts with 80 columns. Therefore the order matters: `-R -f40 -2' is\n\ equivalent to `-2'. To modify the layout, use `-2Rf40', or compose primitive\n\ options (`--columns', `--font-size' etc.).\n")); putchar ('\n'); puts (_("Virtual pages:\n")); puts (_("\ --line-numbers=NUM precede each NUM lines with its line number\n\ -C alias for --line-numbers=5\n\ -f, --font-size=SIZE use font SIZE (float) for the body text\n\ -L, --lines-per-page=NUM scale the font to print NUM lines per virtual\n\ -l, --chars-per-line=NUM scale the font to print NUM columns per virtual\n\ -m, --catman process FILE as a man page (same as -L66)\n\ -T, --tabsize=NUM set tabulator size to NUM\n\ --non-printable-format=FMT specify how non-printable chars are printed\n")); putchar ('\n'); puts (_("Headings:\n")); /* xgettext:no-c-format */ puts (_("\ -B, --no-header no page headers at all\n\ -b, --header[=TEXT] set page header\n\ -u, --underlay[=TEXT] print TEXT under every page\n\ --center-title[=TEXT] set page title to TITLE\n\ --left-title[=TEXT] set left and right page title to TEXT\n\ --right-title[=TEXT]\n\ --left-footer[=TEXT] set sheet footers to TEXT\n\ --footer[=TEXT]\n\ --right-footer[=TEXT]\n")); putchar ('\n'); puts (_("\ The TEXTs may use special escapes.\n")); putchar ('\n'); puts (_("Input:\n")); puts (_("\ -a, --pages[=RANGE] select the pages to print\n\ -c, --truncate-lines* cut long lines\n\ -i, --interpret* interpret tab, bs and ff chars\n\ --end-of-line=TYPE specify the eol char (TYPE: r, n, nr, rn, any)\n\ -X, --encoding=NAME use input encoding NAME\n\ -t, --title=NAME set the name of the job\n\ --stdin=NAME set the name of the input file stdin\n\ --print-anyway* force binary printing\n\ -Z, --delegate* delegate files to another application\n\ --toc[=TEXT] generate a table of content\n")); putchar ('\n'); puts (_("\ When delegations are enabled, a2ps may use other applications to handle the\n\ processing of files that should not be printed as raw information, e.g., HTML\n\ PostScript, PDF etc.\n")); putchar ('\n'); puts (_("Pretty-printing:\n")); puts (_("\ -E, --pretty-print[=LANG] enable pretty-printing (set style to LANG)\n\ --highlight-level=LEVEL set pretty printing highlight LEVEL\n\ LEVEL can be none, normal or heavy\n\ -g alias for --highlight-level=heavy\n\ --strip-level=NUM level of comments stripping\n")); putchar ('\n'); puts (_("Output:\n")); puts (_("\ -o, --output=FILE leave output to file FILE. If FILE is `-',\n\ leave output to stdout.\n\ --version-control=WORD override the usual version control\n\ --suffix=SUFFIX override the usual backup suffix\n\ -P, --printer=NAME send output to printer NAME\n\ -d send output to the default printer\n\ (this is the default behavior)\n")); putchar ('\n'); puts (_("PostScript:\n")); puts (_("\ --prologue=FILE include FILE.pro as PostScript prologue\n\ --ppd[=KEY] automatic PPD selection or set to KEY\n\ -n, --copies=NUM print NUM copies of each page\n\ -s, --sides=MODE set the duplex MODE (`1' or `simplex',\n\ `2' or `duplex', `tumble')\n\ -S, --setpagedevice=K[:V] pass a page device definition to output\n\ --statusdict=K[:[:]V] pass a statusdict definition to the output\n\ -k, --page-prefeed enable page prefeed\n\ -K, --no-page-prefeed disable page prefeed\n")); /* A short documentation. */ putchar ('\n'); puts (_("\ By default a2ps is tuned to do what you want to, so trust it. To pretty print\n\ the content of the `src' directory and a table of content, and send the result\n\ to the printer `lw',\n\ \n\ $ a2ps -P lw --toc src/*\n\ \n\ To process the files `sample.ps' and `sample.html' and display the result,\n\ \n\ $ a2ps -P display sample.ps sample.html\n\ \n\ To process a mailbox in 4 up,\n\ \n\ $ a2ps -=mail -4 mailbox\n\ \n\ To print as a booklet on the default printer, which is duplex capable,\n\ \n\ $ a2ps -=book paper.dvi.gz -d")); /* Finally, some addresses. */ emit_bug_reporting_address (); exit (status); } /*----------------------------------------------------------------. | Handle the options that a2ps understands (not liba2ps) Return 1 | | for success | `----------------------------------------------------------------*/ static int handle_a2ps_option (int option, char *optional_arg) { switch (option) { case 'E': /* --pretty-print select language */ xstrcpy (style_request, optional_arg); break; case 'g': /* Symbol translation */ highlight_level = 2; break; case 154: /* Symbol translation */ highlight_level = a2ps_get_bool ("--graphic-symbols", optional_arg); break; case 173: /* Level of high lighting */ highlight_level = get_highlight_level ("--highlight-level", optional_arg); break; case 'h': /* --help */ behavior = b_help; break; case 'V': /* version and configuration info */ behavior = b_version; break; case 'Z': /* --delegate */ delegate_p = true; break; case 138: behavior = b_guess; break; case 137: behavior = b_which; break; case 150: behavior = b_glob; break; case 139: behavior = b_list_options; break; case 145: //ARGMATCH_VERIFY (behavior_args, behavior_types); behavior = XARGMATCH ("--list", optional_arg, behavior_args, behavior_types); break; case 148: /* --strip-level */ strip_level = get_integer_in_range ("--strip-level", optional_arg, 0, 3, range_min_max); break; case 160: /* --delegate=BOOL */ delegate_p = a2ps_get_bool ("--delegate", optional_arg); break; case 161: /* --list-media */ behavior = b_list_media; break; case 162: /* --list-style-sheets */ behavior = b_list_style_sheets; break; case 167: /* --toc[=toc format] */ /* If no argument is given, use #{toc}. */ xstrcpy (toc, optional_arg ? optional_arg : "#{toc}"); break; case 169: /* --end-of-line=TYPE */ end_of_line = option_string_to_eol ("--end-of-line", optional_arg); break; default: return 0; } return 1; } /************************************************************************/ /* Main routine for this program. */ /************************************************************************/ int main (int argc, char *argv[]) { int argn; /* Name under which this program was called. */ program_name = base_name (argv[0]); /* program_invocation_name = xstrdup (program_name); */ /* Set the NLS on */ setlocale (LC_TIME, ""); setlocale (LC_MESSAGES, ""); setlocale (LC_CTYPE, ""); bindtextdomain (PACKAGE, LOCALEDIR); bindtextdomain (PACKAGE "-gnulib", LOCALEDIR); textdomain (PACKAGE); /* Catch the exits and signals to cleanup the mess. We do it now, though there is no tmp files before long, because I find it beautiful to see `received signal blah blah' even if it is even before a2ps could make a move. */ atexit (exit_handler); #define signal_set(Sig, Handler) \ do { \ if (signal (Sig, Handler) == SIG_IGN) \ signal (Sig, SIG_IGN); \ } while (0) /* There are warnings on Solaris. This is due to their definition of SIG_IGN as `(void (*)())1'. Please ignore ;) */ signal_set (SIGINT, signal_handler); #ifdef SIGHUP signal_set (SIGHUP, signal_handler); #endif signal_set (SIGTERM, signal_handler); #ifdef SIGPIPE signal (SIGPIPE, signal_handler); #endif /* Hooks for reading the config files */ delegation_hook = add_delegation; /* Hook when reading the options */ handle_option_hook = handle_a2ps_option; /* Prepare to receive in the hash table of the delegations */ delegation_table = delegation_table_new (); /* Set the a2ps-specific regex syntax */ re_set_syntax (RE_SYNTAX_A2PS); /* The spine of a2ps */ job = a2ps_job_new (); /* System's config. */ a2_read_sys_config (job); /* Personal config.: only when installed, because there may be incompatibilities between config files versions. */ if (!getenv ("NO_HOME_CONF")) /* Home's */ a2_read_config (job, macro_meta_sequence_get (job, VAR_USER_HOME), ".a2ps/a2psrc"); /* Local config. */ a2_read_config (job, ".", ".a2psrc"); /* Prepare the sheets map structure and the hash table that receives yet read sheets. */ sheets_map = sheets_map_new (); style_sheets = new_style_sheets (); /* Process the command line options. */ argn = a2ps_handle_options (job, argc, argv); switch (behavior) { case b_version: version_etc (stdout, NULL, GNU_PACKAGE, VERSION, "Akim Demaille", "Miguel Santana", "Reuben Thomas", NULL); return (EXIT_SUCCESS); break; case b_help: usage (EXIT_SUCCESS); break; default: /* Ignore other options for now. */ break; } /* Once a2ps.cfg is read, finish the building of a2ps_job */ a2ps_job_finalize (job); /* If we are debugging, then install a hook called after having generated the PostScript comments. */ if (job->debug) ps_comment_hook = spy_user; /* Attach the arguments to the JOB */ job->argv = argv; job->argc = argc; switch (behavior) { case b_guess: /* Act like file(1) does: report guessed ssh key */ if (argn < argc) for (; argn < argc; argn++) guess (argv[argn]); else /* A guess is asked upon stdin */ guess (NULL); break; /* FIXME: for expand, which, and glob, should we give an error when no arguments are given? */ case b_expand: /* Expand the strings given as arguments. */ for (; argn < argc; argn++) { puts (expand_user_string (job, FIRST_FILE (job), "--list=expand", argv[argn])); putchar ('\n'); } break; case b_which: /* Look for the arguments in the library, and report the full paths. */ for (; argn < argc; argn++) { char *cp; cp = pw_find_file (job->common.path, argv[argn], NULL); if (cp) { puts (cp); putchar ('\n'); } } break; case b_glob: /* Glob the arguments in the library, and report the full paths. */ for (; argn < argc; argn++) pw_glob_print (job->common.path, argv[argn], stdout); break; case b_list_options: list_options (job, stdout); break; case b_list_features: list_features (job, stdout); break; case b_list_media: list_media_long (job, stdout); break; case b_list_style_sheets: list_style_sheets_long (stdout); break; case b_list_html_style_sheets: /* This is done to ease the update of a2ps' web page */ list_style_sheets_html (stdout); break; case b_list_texinfo_style_sheets: /* This is done to ease the update of a2ps' Texinfo doc */ list_style_sheets_texinfo (stdout); break; case b_list_printers: a2ps_printers_list_long (job, stdout); break; case b_list_delegations: delegations_list_long (delegation_table, stdout); break; case b_list_macro_meta_sequences: macro_meta_sequences_list_long (job, stdout); break; case b_list_encodings: list_encodings_long (job, stdout); break; case b_list_texinfo_encodings: list_texinfo_encodings_long (job, stdout); break; case b_list_user_options: user_options_list_long (job, stdout); break; case b_list_prologues: prologues_list_long (job, stdout); break; case b_list_texinfo_prologues: prologues_list_texinfo (job, stdout); break; case b_list_ppd: /* Report PPD files */ a2ps_ppd_list_long (job, stdout); break; /* * Text to PostScript generator */ case b_ps: { /* Count the number of jobs done */ int delegated_jobs = 0, native_jobs = 0; a2ps_open_output_session (job); if (argn == argc) /* Print stdin */ print (NULL, &native_jobs, &delegated_jobs); else /* Print following files */ for (; argn < argc; argn++) print (argv[argn], &native_jobs, &delegated_jobs); if (!IS_EMPTY (toc)) print_toc (_("Table of Content"), toc, &native_jobs); if ((native_jobs == 0) && (delegated_jobs == 1)) { /* a2ps has only been used to delegate a single job. * Hence its prologue is superfluous */ /* FIXME: if there were other files but which failed, * then there is _no_reason_ that the file we're interested * in is this one! * To this end, we need to put more information in file_job * on how its processing went. */ struct file_job * file_job; size_t len; /* 'delegation_tmpname' is necessary not null else it is a failed job and we ignore it */ file_job = CURRENT_FILE (job); len = job->jobs->len; while (!file_job->delegation_tmpname) { len--; file_job = job->jobs->content[len - 1]; } a2ps_open_output_stream (job); pslex_dump (job->output_stream->fp, file_job->delegation_tmpname); unlink (file_job->delegation_tmpname); a2ps_close_output_stream (job); msg_job_pages_printed (job); } else if (native_jobs || delegated_jobs) { /* The whole stuff is needed */ a2ps_close_output_session (job); msg_job_pages_printed (job); } else { /* Nothing has been printed. * Don't close the job, so that nothing is sent to the printer, * not even the PS prologue */ msg_nothing_printed (); } } break; default: /* A case has not been recognized. */ abort (); } job = NULL; return (EXIT_SUCCESS); } �������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/main.h������������������������������������������������������������������������������0000644�0000000�0000000�00000003301�14445053504�011227� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* main.h - main loop, and interface with user Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _MAIN_H_ #define _MAIN_H_ #include "system.h" #include "darray.h" #include "hashtab.h" #include "message.h" #include "quotearg.h" #include "jobs.h" #include "fjobs.h" #include "generate.h" #include "psgen.h" #include "sshread.h" #include "read.h" #include "routines.h" #include "select.h" #include "delegate.h" #include "gen.h" #include "printers.h" #include "metaseq.h" /* Defined in main.c. */ extern struct hash_table_s * files; /* --stdin=NAME name of the file given by stdin */ extern unsigned char * stdin_filename; extern struct a2ps_job * job; /* Shall we delegate */ extern bool delegate_p; /* Highlighting model */ extern int highlight_level; /* Requested style sheet */ extern char *style_request; /* Type of eol. */ extern enum eol_e end_of_line; /* Defined in generate.c. */ /* The file in which samples of files are put. */ extern char *sample_tmpname; #endif /* !defined(_MAIN_H_) */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/parsessh.c��������������������������������������������������������������������������0000644�0000000�0000000�00000245367�14445131351�012147� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output, and Bison version. */ #define YYBISON 30802 /* Bison version string. */ #define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* First part of user prologue. */ #line 1 "parsessh.y" /* -*- c -*- */ /* * Grammar for parsing the style sheets * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * $Id: parsessh.y,v 1.1.1.1.2.2 2007/12/29 01:58:35 mhatta Exp $ */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "ffaces.h" #include "ssheet.h" #include "message.h" #include "routines.h" #include "yy2ssh.h" #define YYDEBUG 1 #define YYERROR_VERBOSE 1 #define YYPRINT(file, type, value) yyprint (file, type, value) /* We need to use the same `const' as bison, to avoid the following prototypes to diverge from the function declarations */ #undef const #ifndef __cplusplus # ifndef __STDC__ # define const # endif #endif /* Comes from the parser */ extern int sshlineno; /* Comes from the caller */ extern FILE * sshin; extern struct a2ps_job * job; extern const char * sshfilename; /* Local prototypes */ void yyerror (const char *msg); static void yyprint (); /* Initilizes the obstacks */ void sshlex_initialize (void); /* Comes from main.c */ extern int highlight_level; int yylex (void); struct style_sheet * parse_style_sheet (const char * filename); /* Defines the style sheet being loaded */ static struct style_sheet * parsed_style_sheet = NULL; #line 152 "parsessh.c" # ifndef YY_CAST # ifdef __cplusplus # define YY_CAST(Type, Val) static_cast<Type> (Val) # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) # else # define YY_CAST(Type, Val) ((Type) (Val)) # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) # endif # endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # else # define YY_NULLPTR ((void*)0) # endif # endif /* Use api.header.include to #include this header instead of duplicating it here. */ #ifndef YY_YY_PARSESSH_H_INCLUDED # define YY_YY_PARSESSH_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif #if YYDEBUG extern int yydebug; #endif /* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { YYEMPTY = -2, YYEOF = 0, /* "end of file" */ YYerror = 256, /* error */ YYUNDEF = 257, /* "invalid token" */ tSTYLE = 258, /* tSTYLE */ tIS = 259, /* tIS */ tEND = 260, /* tEND */ tKEYWORDS = 261, /* tKEYWORDS */ tARE = 262, /* tARE */ tIN = 263, /* tIN */ tOPERATORS = 264, /* tOPERATORS */ tSEQUENCES = 265, /* tSEQUENCES */ tFIRST = 266, /* tFIRST */ tSECOND = 267, /* tSECOND */ tALPHABET = 268, /* tALPHABET */ tALPHABETS = 269, /* tALPHABETS */ tDOCUMENTATION = 270, /* tDOCUMENTATION */ tEXCEPTIONS = 271, /* tEXCEPTIONS */ tCASE = 272, /* tCASE */ tCSTRING = 273, /* tCSTRING */ tCCHAR = 274, /* tCCHAR */ tOPTIONAL = 275, /* tOPTIONAL */ tCLOSERS = 276, /* tCLOSERS */ tWRITTEN = 277, /* tWRITTEN */ tBY = 278, /* tBY */ tVERSION = 279, /* tVERSION */ tREQUIRES = 280, /* tREQUIRES */ tA2PS = 281, /* tA2PS */ tANCESTORS = 282, /* tANCESTORS */ tFACE = 283, /* tFACE */ tFFLAGS = 284, /* tFFLAGS */ tSTRING = 285, /* tSTRING */ tLATEXSYMBOL = 286, /* tLATEXSYMBOL */ tREGEX = 287, /* tREGEX */ tSENSITIVENESS = 288, /* tSENSITIVENESS */ tBACK_REF = 289 /* tBACK_REF */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ #define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 #define tSTYLE 258 #define tIS 259 #define tEND 260 #define tKEYWORDS 261 #define tARE 262 #define tIN 263 #define tOPERATORS 264 #define tSEQUENCES 265 #define tFIRST 266 #define tSECOND 267 #define tALPHABET 268 #define tALPHABETS 269 #define tDOCUMENTATION 270 #define tEXCEPTIONS 271 #define tCASE 272 #define tCSTRING 273 #define tCCHAR 274 #define tOPTIONAL 275 #define tCLOSERS 276 #define tWRITTEN 277 #define tBY 278 #define tVERSION 279 #define tREQUIRES 280 #define tA2PS 281 #define tANCESTORS 282 #define tFACE 283 #define tFFLAGS 284 #define tSTRING 285 #define tLATEXSYMBOL 286 #define tREGEX 287 #define tSENSITIVENESS 288 #define tBACK_REF 289 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 82 "parsessh.y" int integer; char * string; struct pattern * pattern; struct style_sheet * sheet; struct rule * rule; struct sequence * sequence; struct darray * array; struct words * words; struct faced_string * faced_string; enum face_e face; /* Face */ enum fflag_e fflags; /* Flags for faces */ struct fface_s fface; /* Flagged face */ enum case_sensitiveness sensitiveness; #line 289 "parsessh.c" }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; int yyparse (void); #endif /* !YY_YY_PARSESSH_H_INCLUDED */ /* Symbol kind. */ enum yysymbol_kind_t { YYSYMBOL_YYEMPTY = -2, YYSYMBOL_YYEOF = 0, /* "end of file" */ YYSYMBOL_YYerror = 1, /* error */ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ YYSYMBOL_tSTYLE = 3, /* tSTYLE */ YYSYMBOL_tIS = 4, /* tIS */ YYSYMBOL_tEND = 5, /* tEND */ YYSYMBOL_tKEYWORDS = 6, /* tKEYWORDS */ YYSYMBOL_tARE = 7, /* tARE */ YYSYMBOL_tIN = 8, /* tIN */ YYSYMBOL_tOPERATORS = 9, /* tOPERATORS */ YYSYMBOL_tSEQUENCES = 10, /* tSEQUENCES */ YYSYMBOL_tFIRST = 11, /* tFIRST */ YYSYMBOL_tSECOND = 12, /* tSECOND */ YYSYMBOL_tALPHABET = 13, /* tALPHABET */ YYSYMBOL_tALPHABETS = 14, /* tALPHABETS */ YYSYMBOL_tDOCUMENTATION = 15, /* tDOCUMENTATION */ YYSYMBOL_tEXCEPTIONS = 16, /* tEXCEPTIONS */ YYSYMBOL_tCASE = 17, /* tCASE */ YYSYMBOL_tCSTRING = 18, /* tCSTRING */ YYSYMBOL_tCCHAR = 19, /* tCCHAR */ YYSYMBOL_tOPTIONAL = 20, /* tOPTIONAL */ YYSYMBOL_tCLOSERS = 21, /* tCLOSERS */ YYSYMBOL_tWRITTEN = 22, /* tWRITTEN */ YYSYMBOL_tBY = 23, /* tBY */ YYSYMBOL_tVERSION = 24, /* tVERSION */ YYSYMBOL_tREQUIRES = 25, /* tREQUIRES */ YYSYMBOL_tA2PS = 26, /* tA2PS */ YYSYMBOL_tANCESTORS = 27, /* tANCESTORS */ YYSYMBOL_tFACE = 28, /* tFACE */ YYSYMBOL_tFFLAGS = 29, /* tFFLAGS */ YYSYMBOL_tSTRING = 30, /* tSTRING */ YYSYMBOL_tLATEXSYMBOL = 31, /* tLATEXSYMBOL */ YYSYMBOL_tREGEX = 32, /* tREGEX */ YYSYMBOL_tSENSITIVENESS = 33, /* tSENSITIVENESS */ YYSYMBOL_tBACK_REF = 34, /* tBACK_REF */ YYSYMBOL_35_ = 35, /* ',' */ YYSYMBOL_36_ = 36, /* '(' */ YYSYMBOL_37_ = 37, /* ')' */ YYSYMBOL_38_ = 38, /* '+' */ YYSYMBOL_YYACCEPT = 39, /* $accept */ YYSYMBOL_file = 40, /* file */ YYSYMBOL_style_sheet = 41, /* style_sheet */ YYSYMBOL_definition_list = 42, /* definition_list */ YYSYMBOL_requirement = 43, /* requirement */ YYSYMBOL_documentation = 44, /* documentation */ YYSYMBOL_long_string = 45, /* long_string */ YYSYMBOL_authors = 46, /* authors */ YYSYMBOL_version = 47, /* version */ YYSYMBOL_ancestors_def = 48, /* ancestors_def */ YYSYMBOL_ancestors_list = 49, /* ancestors_list */ YYSYMBOL_case_def = 50, /* case_def */ YYSYMBOL_regex = 51, /* regex */ YYSYMBOL_rhs = 52, /* rhs */ YYSYMBOL_a_rhs = 53, /* a_rhs */ YYSYMBOL_rhs_list = 54, /* rhs_list */ YYSYMBOL_fface = 55, /* fface */ YYSYMBOL_fface_sxp = 56, /* fface_sxp */ YYSYMBOL_rule = 57, /* rule */ YYSYMBOL_keywords_def = 58, /* keywords_def */ YYSYMBOL_keywords_rule_list = 59, /* keywords_rule_list */ YYSYMBOL_keyword_regex = 60, /* keyword_regex */ YYSYMBOL_operators_def = 61, /* operators_def */ YYSYMBOL_operators_rule_list = 62, /* operators_rule_list */ YYSYMBOL_operator_regex = 63, /* operator_regex */ YYSYMBOL_sequence_def = 64, /* sequence_def */ YYSYMBOL_sequence_list = 65, /* sequence_list */ YYSYMBOL_sequence = 66, /* sequence */ YYSYMBOL_closers_opt = 67, /* closers_opt */ YYSYMBOL_exception_def_opt = 68 /* exception_def_opt */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; #ifdef short # undef short #endif /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure <limits.h> and (if available) <stdint.h> are included so that the code can choose integer types of a good width. */ #ifndef __PTRDIFF_MAX__ # include <limits.h> /* INFRINGES ON USER NAME SPACE */ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include <stdint.h> /* INFRINGES ON USER NAME SPACE */ # define YY_STDINT_H # endif #endif /* Narrow types that promote to a signed type and that can represent a signed or unsigned integer of at least N bits. In tables they can save space and decrease cache pressure. Promoting to a signed type helps avoid bugs in integer arithmetic. */ #ifdef __INT_LEAST8_MAX__ typedef __INT_LEAST8_TYPE__ yytype_int8; #elif defined YY_STDINT_H typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef __INT_LEAST16_MAX__ typedef __INT_LEAST16_TYPE__ yytype_int16; #elif defined YY_STDINT_H typedef int_least16_t yytype_int16; #else typedef short yytype_int16; #endif /* Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants. This workaround can likely be removed in 2023, as HPE has promised support for HP-UX 11.23 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */ #ifdef __hpux # undef UINT_LEAST8_MAX # undef UINT_LEAST16_MAX # define UINT_LEAST8_MAX 255 # define UINT_LEAST16_MAX 65535 #endif #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ && UINT_LEAST8_MAX <= INT_MAX) typedef uint_least8_t yytype_uint8; #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX typedef unsigned char yytype_uint8; #else typedef short yytype_uint8; #endif #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ typedef __UINT_LEAST16_TYPE__ yytype_uint16; #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ && UINT_LEAST16_MAX <= INT_MAX) typedef uint_least16_t yytype_uint16; #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX typedef unsigned short yytype_uint16; #else typedef int yytype_uint16; #endif #ifndef YYPTRDIFF_T # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ # define YYPTRDIFF_T __PTRDIFF_TYPE__ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ # elif defined PTRDIFF_MAX # ifndef ptrdiff_t # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # endif # define YYPTRDIFF_T ptrdiff_t # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX # else # define YYPTRDIFF_T long # define YYPTRDIFF_MAXIMUM LONG_MAX # endif #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM \ YY_CAST (YYPTRDIFF_T, \ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ ? YYPTRDIFF_MAXIMUM \ : YY_CAST (YYSIZE_T, -1))) #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) /* Stored state numbers (used for stacks). */ typedef yytype_uint8 yy_state_t; /* State numbers in computations. */ typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define YY_ATTRIBUTE_PURE # endif #endif #ifndef YY_ATTRIBUTE_UNUSED # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YY_USE(E) ((void) (E)) #else # define YY_USE(E) /* empty */ #endif /* Suppress an incorrect diagnostic about yylval being uninitialized. */ #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ # if __GNUC__ * 100 + __GNUC_MINOR__ < 407 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") # else # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ # define YY_IGNORE_USELESS_CAST_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") # define YY_IGNORE_USELESS_CAST_END \ _Pragma ("GCC diagnostic pop") #endif #ifndef YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_END #endif #define YY_ASSERT(E) ((void) (0 && (E))) #if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 218 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 39 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 30 /* YYNRULES -- Number of rules. */ #define YYNRULES 92 /* YYNSTATES -- Number of states. */ #define YYNSTATES 200 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 289 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK \ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 37, 2, 38, 35, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { 0, 130, 130, 137, 146, 149, 157, 163, 171, 177, 182, 186, 190, 196, 201, 206, 209, 212, 215, 218, 233, 234, 237, 239, 240, 253, 256, 257, 262, 269, 277, 284, 292, 296, 307, 315, 319, 323, 327, 331, 335, 342, 348, 359, 364, 371, 381, 386, 391, 397, 411, 416, 422, 434, 438, 445, 450, 455, 460, 472, 477, 484, 494, 498, 505, 511, 517, 522, 534, 539, 545, 555, 558, 564, 587, 595, 603, 611, 619, 627, 635, 643, 651, 659, 666, 674, 678, 686, 694, 700, 706, 715, 718 }; #endif /** Accessing symbol of state STATE. */ #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) #if YYDEBUG || 0 /* The user-facing name of the symbol whose (internal) number is YYSYMBOL. No bounds checking. */ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"end of file\"", "error", "\"invalid token\"", "tSTYLE", "tIS", "tEND", "tKEYWORDS", "tARE", "tIN", "tOPERATORS", "tSEQUENCES", "tFIRST", "tSECOND", "tALPHABET", "tALPHABETS", "tDOCUMENTATION", "tEXCEPTIONS", "tCASE", "tCSTRING", "tCCHAR", "tOPTIONAL", "tCLOSERS", "tWRITTEN", "tBY", "tVERSION", "tREQUIRES", "tA2PS", "tANCESTORS", "tFACE", "tFFLAGS", "tSTRING", "tLATEXSYMBOL", "tREGEX", "tSENSITIVENESS", "tBACK_REF", "','", "'('", "')'", "'+'", "$accept", "file", "style_sheet", "definition_list", "requirement", "documentation", "long_string", "authors", "version", "ancestors_def", "ancestors_list", "case_def", "regex", "rhs", "a_rhs", "rhs_list", "fface", "fface_sxp", "rule", "keywords_def", "keywords_rule_list", "keyword_regex", "operators_def", "operators_rule_list", "operator_regex", "sequence_def", "sequence_list", "sequence", "closers_opt", "exception_def_opt", YY_NULLPTR }; static const char * yysymbol_name (yysymbol_kind_t yysymbol) { return yytname[yysymbol]; } #endif #define YYPACT_NINF (-150) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) #define YYTABLE_NINF (-1) #define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { 11, -2, 31, -150, 39, -150, -150, 98, 66, 126, 183, 56, 62, 65, 75, 91, 40, 175, 77, 7, 80, 109, -150, -150, -150, -150, -150, -150, -150, -150, 69, 60, 132, 94, 60, 133, 35, 131, 142, 140, 167, -150, 126, 183, -150, 168, 169, -150, 8, 170, 129, -150, 18, 120, -150, 1, -150, -150, -150, 154, 189, -150, 18, 120, -150, 4, -150, 194, -150, -150, -150, 138, 34, 143, 10, -150, 172, 173, -150, -150, 5, 198, 196, -150, -150, 176, -150, -150, 14, 60, -150, 60, -150, -150, -150, 129, 120, -150, -150, -150, 69, -150, -150, 155, 69, 120, -150, -150, 94, 94, 60, 60, 111, 129, 120, 60, 111, 197, 35, -150, -150, 146, -150, -150, -150, -150, 181, 179, -150, -150, -150, 92, 118, -150, -150, -150, 166, 21, 127, -150, -150, 22, 111, 38, 183, 148, 38, -150, -150, 195, 151, 152, 111, 38, 195, -150, -150, -150, -150, -150, 129, -150, -150, -150, -150, -150, -150, -150, 38, 195, 195, 191, 195, 183, -150, 60, 60, 38, 195, 195, -150, -150, 195, -150, -150, -150, -150, 199, 38, 38, 195, -150, -150, -150, -150, 195, 195, -150, -150, -150 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_int8 yydefact[] = { 0, 0, 0, 2, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 16, 17, 18, 11, 15, 10, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 9, 0, 0, 27, 0, 0, 51, 32, 0, 60, 55, 0, 56, 43, 44, 0, 0, 6, 0, 69, 64, 0, 65, 0, 8, 85, 86, 0, 0, 0, 0, 72, 0, 0, 12, 23, 0, 0, 0, 25, 26, 0, 20, 29, 0, 36, 40, 39, 50, 34, 37, 0, 0, 33, 59, 54, 0, 46, 47, 0, 0, 0, 68, 63, 0, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 13, 14, 0, 24, 5, 7, 21, 0, 0, 35, 38, 41, 0, 0, 57, 58, 45, 0, 0, 0, 66, 67, 0, 87, 87, 0, 0, 87, 88, 89, 91, 0, 0, 87, 87, 91, 71, 73, 22, 28, 30, 0, 52, 61, 48, 49, 53, 70, 62, 87, 91, 91, 0, 91, 0, 78, 0, 0, 87, 91, 91, 82, 42, 91, 77, 74, 90, 76, 0, 87, 87, 91, 81, 80, 75, 92, 91, 91, 79, 83, 84 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -28, -41, -46, 23, -31, -150, -17, 171, 106, 114, -42, 107, -15, 200, -150, 100, -91, -149 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_uint8 yydefgoto[] = { 0, 2, 3, 7, 22, 23, 80, 24, 25, 26, 88, 27, 63, 92, 130, 131, 94, 103, 147, 32, 55, 56, 35, 65, 148, 28, 74, 75, 149, 174 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint8 yytable[] = { 60, 82, 53, 67, 93, 180, 99, 93, 73, 107, 121, 46, 98, 54, 1, 117, 64, 93, 66, 126, 183, 184, 106, 186, 96, 154, 165, 167, 4, 191, 192, 5, 85, 193, 105, 122, 100, 47, 86, 108, 112, 197, 116, 6, 114, 118, 198, 199, 95, 127, 51, 169, 170, 69, 70, 172, 100, 108, 128, 144, 129, 178, 179, 36, 113, 71, 51, 51, 50, 29, 51, 72, 53, 41, 62, 37, 53, 182, 38, 142, 143, 146, 39, 133, 152, 153, 190, 54, 57, 58, 73, 139, 64, 140, 66, 40, 59, 195, 196, 50, 45, 51, 171, 8, 9, 52, 48, 10, 11, 12, 13, 168, 14, 15, 181, 16, 49, 105, 17, 132, 18, 177, 19, 20, 50, 21, 51, 160, 138, 161, 62, 187, 144, 30, 31, 76, 150, 151, 61, 57, 58, 50, 68, 51, 188, 189, 77, 145, 57, 58, 89, 90, 97, 160, 91, 162, 59, 57, 58, 89, 90, 157, 160, 91, 166, 59, 57, 58, 110, 111, 78, 57, 58, 115, 59, 97, 101, 102, 95, 59, 51, 42, 101, 102, 43, 11, 160, 160, 175, 176, 33, 34, 135, 136, 163, 164, 104, 79, 83, 84, 87, 109, 119, 120, 123, 124, 125, 155, 158, 159, 137, 173, 185, 81, 134, 194, 141, 44, 156 }; static const yytype_uint8 yycheck[] = { 31, 43, 30, 34, 50, 154, 5, 53, 36, 5, 5, 4, 53, 30, 3, 5, 33, 63, 33, 5, 169, 170, 63, 172, 52, 116, 5, 5, 30, 178, 179, 0, 24, 182, 62, 30, 35, 30, 30, 35, 71, 190, 73, 4, 72, 35, 195, 196, 30, 35, 32, 142, 143, 18, 19, 146, 35, 35, 89, 21, 91, 152, 153, 7, 30, 30, 32, 32, 30, 3, 32, 36, 100, 33, 36, 13, 104, 168, 13, 110, 111, 112, 7, 100, 115, 116, 177, 104, 28, 29, 118, 108, 109, 108, 109, 4, 36, 188, 189, 30, 23, 32, 144, 5, 6, 36, 26, 9, 10, 11, 12, 142, 14, 15, 160, 17, 7, 145, 20, 96, 22, 152, 24, 25, 30, 27, 32, 35, 105, 37, 36, 173, 21, 7, 8, 4, 113, 114, 6, 28, 29, 30, 9, 32, 175, 176, 4, 36, 28, 29, 30, 31, 32, 35, 34, 37, 36, 28, 29, 30, 31, 15, 35, 34, 37, 36, 28, 29, 30, 31, 30, 28, 29, 30, 36, 32, 28, 29, 30, 36, 32, 6, 28, 29, 9, 10, 35, 35, 37, 37, 7, 8, 37, 38, 28, 29, 7, 30, 30, 30, 30, 7, 30, 30, 6, 9, 30, 10, 27, 30, 104, 16, 21, 42, 100, 16, 109, 17, 118 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_int8 yystos[] = { 0, 3, 40, 41, 30, 0, 4, 42, 5, 6, 9, 10, 11, 12, 14, 15, 17, 20, 22, 24, 25, 27, 43, 44, 46, 47, 48, 50, 64, 3, 7, 8, 58, 7, 8, 61, 7, 13, 13, 7, 4, 33, 6, 9, 64, 23, 4, 30, 26, 7, 30, 32, 36, 51, 57, 59, 60, 28, 29, 36, 55, 6, 36, 51, 57, 62, 63, 55, 9, 18, 19, 30, 36, 51, 65, 66, 4, 4, 30, 30, 45, 58, 61, 30, 30, 24, 30, 30, 49, 30, 31, 34, 52, 53, 55, 30, 51, 32, 52, 5, 35, 28, 29, 56, 7, 51, 52, 5, 35, 7, 30, 31, 55, 30, 51, 30, 55, 5, 35, 30, 30, 5, 30, 6, 9, 30, 5, 35, 55, 55, 53, 54, 54, 57, 60, 37, 38, 59, 54, 57, 63, 62, 55, 55, 21, 36, 55, 57, 63, 67, 54, 54, 55, 55, 67, 10, 66, 15, 27, 30, 35, 37, 37, 28, 29, 5, 37, 5, 55, 67, 67, 61, 67, 16, 68, 37, 37, 55, 67, 67, 68, 53, 67, 68, 68, 21, 68, 61, 55, 55, 67, 68, 68, 68, 16, 67, 67, 68, 68, 68 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int8 yyr1[] = { 0, 39, 40, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 53, 53, 53, 53, 54, 54, 55, 55, 55, 56, 56, 56, 56, 57, 57, 57, 58, 58, 59, 59, 59, 59, 60, 60, 60, 61, 61, 62, 62, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 68, 68 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ static const yytype_int8 yyr2[] = { 0, 2, 1, 6, 0, 5, 4, 5, 4, 3, 2, 2, 4, 5, 5, 2, 2, 2, 2, 2, 3, 4, 5, 1, 2, 3, 3, 2, 5, 1, 3, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 3, 2, 1, 4, 5, 3, 1, 1, 3, 3, 2, 1, 4, 5, 3, 1, 1, 3, 3, 2, 1, 4, 5, 1, 3, 5, 6, 5, 5, 4, 6, 5, 5, 4, 7, 7, 1, 1, 0, 1, 1, 3, 0, 3 }; enum { YYENOMEM = -2 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYNOMEM goto yyexhaustedlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Backward compatibility with an undocumented macro. Use YYerror or YYUNDEF. */ #define YYERRCODE YYUNDEF /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Kind, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; YY_USE (yyoutput); if (!yyvaluep) return; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyo, "%s %s (", yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); yy_symbol_value_print (yyo, yykind, yyvaluep); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), &yyvsp[(yyi + 1) - (yynrhs)]); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, Rule); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) ((void) 0) # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ int yyparse (void) { yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus = 0; /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ YYPTRDIFF_T yystacksize = YYINITDEPTH; /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; yy_state_t *yyss = yyssa; yy_state_t *yyssp = yyss; /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; /*------------------------------------------------------------. | yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; /*--------------------------------------------------------------------. | yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE YYNOMEM; #else { /* Get the current used size of the three stacks, in elements. */ YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * YYSIZEOF (*yyssp), &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yy_state_t *yyss1 = yyss; union yyalloc *yyptr = YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) YYNOMEM; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YY_IGNORE_USELESS_CAST_BEGIN YYDPRINTF ((stderr, "Stack size increased to %ld\n", YY_CAST (long, yystacksize))); YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { yychar = YYEOF; yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else if (yychar == YYerror) { /* The scanner already issued an error message, process directly to error recovery. But do not keep the error token as lookahead, it is too special and may lead us to an endless loop in error recovery. */ yychar = YYUNDEF; yytoken = YYSYMBOL_YYerror; goto yyerrlab1; } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Discard the shifted token. */ yychar = YYEMPTY; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: /* file: style_sheet */ #line 131 "parsessh.y" { parsed_style_sheet = (yyvsp[0].sheet); } #line 1468 "parsessh.c" break; case 3: /* style_sheet: tSTYLE tSTRING tIS definition_list tEND tSTYLE */ #line 138 "parsessh.y" { (yyvsp[-2].sheet)->name = (yyvsp[-4].string); (yyvsp[-2].sheet)->key = "<No key yet>"; (yyval.sheet) = (yyvsp[-2].sheet); } #line 1478 "parsessh.c" break; case 4: /* definition_list: %empty */ #line 146 "parsessh.y" { (yyval.sheet) = new_style_sheet ((const unsigned char *) "<no name>"); } #line 1486 "parsessh.c" break; case 5: /* definition_list: definition_list tOPTIONAL tKEYWORDS keywords_def tKEYWORDS */ #line 150 "parsessh.y" { if (highlight_level == 2) { words_set_no_face ((yyvsp[-1].words), Plain_fface); words_merge_rules_unique ((yyvsp[-4].sheet)->keywords, (yyvsp[-1].words)); } (yyval.sheet) = (yyvsp[-4].sheet); } #line 1498 "parsessh.c" break; case 6: /* definition_list: definition_list tKEYWORDS keywords_def tKEYWORDS */ #line 158 "parsessh.y" { words_set_no_face ((yyvsp[-1].words), Plain_fface); words_merge_rules_unique ((yyvsp[-3].sheet)->keywords, (yyvsp[-1].words)); (yyval.sheet) = (yyvsp[-3].sheet); } #line 1508 "parsessh.c" break; case 7: /* definition_list: definition_list tOPTIONAL tOPERATORS operators_def tOPERATORS */ #line 164 "parsessh.y" { if (highlight_level == 2) { words_set_no_face ((yyvsp[-1].words), Plain_fface); words_merge_rules_unique ((yyvsp[-4].sheet)->operators, (yyvsp[-1].words)); } (yyval.sheet) = (yyvsp[-4].sheet); } #line 1520 "parsessh.c" break; case 8: /* definition_list: definition_list tOPERATORS operators_def tOPERATORS */ #line 172 "parsessh.y" { words_set_no_face ((yyvsp[-1].words), Plain_fface); words_merge_rules_unique ((yyvsp[-3].sheet)->operators, (yyvsp[-1].words)); (yyval.sheet) = (yyvsp[-3].sheet); } #line 1530 "parsessh.c" break; case 9: /* definition_list: definition_list tOPTIONAL sequence_def */ #line 177 "parsessh.y" { if (highlight_level == 2) da_concat ((yyvsp[-2].sheet)->sequences, (yyvsp[0].array)); (yyval.sheet) = (yyvsp[-2].sheet); } #line 1540 "parsessh.c" break; case 10: /* definition_list: definition_list sequence_def */ #line 182 "parsessh.y" { da_concat ((yyvsp[-1].sheet)->sequences, (yyvsp[0].array)); (yyval.sheet) = (yyvsp[-1].sheet); } #line 1549 "parsessh.c" break; case 11: /* definition_list: definition_list ancestors_def */ #line 186 "parsessh.y" { da_concat ((yyvsp[-1].sheet)->ancestors, (yyvsp[0].array)); (yyval.sheet) = (yyvsp[-1].sheet); } #line 1558 "parsessh.c" break; case 12: /* definition_list: definition_list tALPHABETS tARE tSTRING */ #line 190 "parsessh.y" { string_to_array ((yyvsp[-3].sheet)->alpha1, (yyvsp[0].string)); string_to_array ((yyvsp[-3].sheet)->alpha2, (yyvsp[0].string)); (yyvsp[0].string) = NULL; (yyval.sheet) = (yyvsp[-3].sheet); } #line 1569 "parsessh.c" break; case 13: /* definition_list: definition_list tFIRST tALPHABET tIS tSTRING */ #line 196 "parsessh.y" { string_to_array ((yyvsp[-4].sheet)->alpha1, (yyvsp[0].string)); (yyvsp[0].string) = NULL; (yyval.sheet) = (yyvsp[-4].sheet); } #line 1579 "parsessh.c" break; case 14: /* definition_list: definition_list tSECOND tALPHABET tIS tSTRING */ #line 201 "parsessh.y" { string_to_array ((yyvsp[-4].sheet)->alpha2, (yyvsp[0].string)); (yyvsp[0].string) = NULL; (yyval.sheet) = (yyvsp[-4].sheet); } #line 1589 "parsessh.c" break; case 15: /* definition_list: definition_list case_def */ #line 206 "parsessh.y" { (yyvsp[-1].sheet)->sensitiveness = (yyvsp[0].sensitiveness); } #line 1597 "parsessh.c" break; case 16: /* definition_list: definition_list documentation */ #line 209 "parsessh.y" { (yyvsp[-1].sheet)->documentation = (yyvsp[0].string); } #line 1605 "parsessh.c" break; case 17: /* definition_list: definition_list authors */ #line 212 "parsessh.y" { (yyvsp[-1].sheet)->author = (yyvsp[0].string); } #line 1613 "parsessh.c" break; case 18: /* definition_list: definition_list version */ #line 215 "parsessh.y" { style_sheet_set_version ((yyvsp[-1].sheet), (const char *) (yyvsp[0].string)); } #line 1621 "parsessh.c" break; case 19: /* definition_list: definition_list requirement */ #line 218 "parsessh.y" { /* Make sure now that we won't encounter new tokens. * This avoids nasty error messages, or worse: * unexpected behavior at run time */ if (!style_sheet_set_requirement ((yyvsp[-1].sheet), (const char *) (yyvsp[0].string))) error (1, 0, _("cannot process `%s' which requires a2ps version %s"), sshfilename, (yyvsp[0].string)); } #line 1635 "parsessh.c" break; case 20: /* requirement: tREQUIRES tA2PS tSTRING */ #line 233 "parsessh.y" { (yyval.string) = (yyvsp[0].string) ; } #line 1641 "parsessh.c" break; case 21: /* requirement: tREQUIRES tA2PS tVERSION tSTRING */ #line 234 "parsessh.y" { (yyval.string) = (yyvsp[0].string) ; } #line 1647 "parsessh.c" break; case 22: /* documentation: tDOCUMENTATION tIS long_string tEND tDOCUMENTATION */ #line 237 "parsessh.y" { (yyval.string) = (yyvsp[-2].string) ; } #line 1653 "parsessh.c" break; case 23: /* long_string: tSTRING */ #line 239 "parsessh.y" { (yyval.string) = (yyvsp[0].string); } #line 1659 "parsessh.c" break; case 24: /* long_string: long_string tSTRING */ #line 241 "parsessh.y" { size_t len1; size_t len2; len1 = strlen ((yyvsp[-1].string)); (yyvsp[-1].string)[len1] = '\n'; len2 = strlen ((yyvsp[0].string)); (yyval.string) = XNMALLOC (len1 + len2 + 2, unsigned char); stpcpy (stpncpy ((yyval.string), (yyvsp[-1].string), len1 + 1), (yyvsp[0].string)); } #line 1674 "parsessh.c" break; case 25: /* authors: tWRITTEN tBY tSTRING */ #line 253 "parsessh.y" { (yyval.string) = (yyvsp[0].string) ; } #line 1680 "parsessh.c" break; case 26: /* version: tVERSION tIS tSTRING */ #line 256 "parsessh.y" { (yyval.string) = (yyvsp[0].string) ; } #line 1686 "parsessh.c" break; case 27: /* version: tVERSION tSTRING */ #line 257 "parsessh.y" { (yyval.string) = (yyvsp[0].string) ; } #line 1692 "parsessh.c" break; case 28: /* ancestors_def: tANCESTORS tARE ancestors_list tEND tANCESTORS */ #line 263 "parsessh.y" { /* The list of keys of style sheets from which it inherits */ (yyval.array) = (yyvsp[-2].array); } #line 1701 "parsessh.c" break; case 29: /* ancestors_list: tSTRING */ #line 270 "parsessh.y" { /* Create a list of ancestors, and drop the new one in */ (yyval.array) = da_new ("Ancestors tmp", 2, da_linear, 2, (da_print_func_t) da_str_print, NULL); da_append ((yyval.array), (yyvsp[0].string)); } #line 1713 "parsessh.c" break; case 30: /* ancestors_list: ancestors_list ',' tSTRING */ #line 278 "parsessh.y" { da_append ((yyvsp[-2].array), (yyvsp[0].string)); (yyval.array) = (yyvsp[-2].array); } #line 1722 "parsessh.c" break; case 31: /* case_def: tCASE tSENSITIVENESS */ #line 284 "parsessh.y" { (yyval.sensitiveness) = (yyvsp[0].sensitiveness) ; } #line 1728 "parsessh.c" break; case 32: /* regex: tREGEX */ #line 293 "parsessh.y" { (yyval.pattern) = (yyvsp[0].pattern); } #line 1736 "parsessh.c" break; case 33: /* regex: regex tREGEX */ #line 297 "parsessh.y" { /* Concatenate $2 to $1 makes $$ */ (yyval.pattern) = (yyvsp[-1].pattern); (yyval.pattern)->pattern = xnrealloc ((yyval.pattern)->pattern, (yyvsp[-1].pattern)->len + (yyvsp[0].pattern)->len + 1, sizeof(char)); strncpy ((yyval.pattern)->pattern + (yyval.pattern)->len, (yyvsp[0].pattern)->pattern, (yyvsp[0].pattern)->len); (yyval.pattern)->len += (yyvsp[0].pattern)->len; } #line 1748 "parsessh.c" break; case 34: /* rhs: a_rhs */ #line 308 "parsessh.y" { (yyval.array) = rhs_new (); rhs_add ((yyval.array), (yyvsp[0].faced_string)); } #line 1757 "parsessh.c" break; case 35: /* a_rhs: tSTRING fface */ #line 316 "parsessh.y" { (yyval.faced_string) = faced_string_new ((yyvsp[-1].string), 0, (yyvsp[0].fface)); } #line 1765 "parsessh.c" break; case 36: /* a_rhs: tSTRING */ #line 320 "parsessh.y" { (yyval.faced_string) = faced_string_new ((yyvsp[0].string), 0, No_fface); } #line 1773 "parsessh.c" break; case 37: /* a_rhs: fface */ #line 324 "parsessh.y" { (yyval.faced_string) = faced_string_new (NULL, 0, (yyvsp[0].fface)); } #line 1781 "parsessh.c" break; case 38: /* a_rhs: tBACK_REF fface */ #line 328 "parsessh.y" { (yyval.faced_string) = faced_string_new (NULL, (yyvsp[-1].integer), (yyvsp[0].fface)); } #line 1789 "parsessh.c" break; case 39: /* a_rhs: tBACK_REF */ #line 332 "parsessh.y" { (yyval.faced_string) = faced_string_new (NULL, (yyvsp[0].integer), No_fface); } #line 1797 "parsessh.c" break; case 40: /* a_rhs: tLATEXSYMBOL */ #line 336 "parsessh.y" { (yyval.faced_string) = faced_string_new ((yyvsp[0].string), 0, Symbol_fface); } #line 1805 "parsessh.c" break; case 41: /* rhs_list: a_rhs */ #line 343 "parsessh.y" { (yyval.array) = rhs_new (); rhs_add ((yyval.array), (yyvsp[0].faced_string)); } #line 1814 "parsessh.c" break; case 42: /* rhs_list: rhs_list ',' a_rhs */ #line 349 "parsessh.y" { rhs_add ((yyvsp[-2].array), (yyvsp[0].faced_string)); (yyval.array) = (yyvsp[-2].array); } #line 1823 "parsessh.c" break; case 43: /* fface: tFACE */ #line 360 "parsessh.y" { fface_set_face ((yyval.fface), (yyvsp[0].face)); fface_reset_flags ((yyval.fface)); } #line 1832 "parsessh.c" break; case 44: /* fface: tFFLAGS */ #line 365 "parsessh.y" { fface_reset_face ((yyval.fface)); fface_set_flags ((yyval.fface), (yyvsp[0].fflags)); /* If there is no face, then set Invisible */ fface_add_flags ((yyval.fface), ff_Invisible); } #line 1843 "parsessh.c" break; case 45: /* fface: '(' fface_sxp ')' */ #line 372 "parsessh.y" { (yyval.fface) = (yyvsp[-1].fface); /* If there is no face, then set Invisible */ if (fface_get_face ((yyval.fface)) == No_face) fface_add_flags ((yyval.fface), ff_Invisible); } #line 1854 "parsessh.c" break; case 46: /* fface_sxp: tFACE */ #line 382 "parsessh.y" { fface_set_face((yyval.fface), (yyvsp[0].face)); fface_reset_flags((yyval.fface)); } #line 1863 "parsessh.c" break; case 47: /* fface_sxp: tFFLAGS */ #line 387 "parsessh.y" { fface_reset_face((yyval.fface)); fface_set_flags((yyval.fface), (yyvsp[0].fflags)); } #line 1872 "parsessh.c" break; case 48: /* fface_sxp: fface_sxp '+' tFACE */ #line 392 "parsessh.y" { /* FIXME: Overloading of the face should be forbidden */ (yyval.fface) = (yyvsp[-2].fface); fface_set_face((yyval.fface), (yyvsp[0].face)); } #line 1882 "parsessh.c" break; case 49: /* fface_sxp: fface_sxp '+' tFFLAGS */ #line 398 "parsessh.y" { (yyval.fface) = (yyvsp[-2].fface); fface_add_flags((yyval.fface), (yyvsp[0].fflags)); } #line 1891 "parsessh.c" break; case 50: /* rule: tSTRING rhs */ #line 412 "parsessh.y" { (yyval.rule) = rule_new ((yyvsp[-1].string), NULL, (yyvsp[0].array), sshfilename, sshlineno); } #line 1900 "parsessh.c" break; case 51: /* rule: tSTRING */ #line 417 "parsessh.y" { (yyval.rule) = rule_new ((yyvsp[0].string), NULL, rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno); } #line 1910 "parsessh.c" break; case 52: /* rule: '(' tSTRING rhs_list ')' */ #line 423 "parsessh.y" { (yyval.rule) = rule_new ((yyvsp[-2].string), NULL, (yyvsp[-1].array), sshfilename, sshlineno); } #line 1919 "parsessh.c" break; case 53: /* keywords_def: tIN fface tARE keywords_rule_list tEND */ #line 434 "parsessh.y" { words_set_no_face ((yyvsp[-1].words), (yyvsp[-3].fface)); (yyval.words) = (yyvsp[-1].words); } #line 1928 "parsessh.c" break; case 54: /* keywords_def: tARE keywords_rule_list tEND */ #line 438 "parsessh.y" { /* First of all, the No_face must be turned into Plain */ (yyval.words) = (yyvsp[-1].words); } #line 1937 "parsessh.c" break; case 55: /* keywords_rule_list: rule */ #line 446 "parsessh.y" { (yyval.words) = words_new ("Keywords: Strings", "Keywords: Regexps", 100, 100); words_add_string ((yyval.words), (yyvsp[0].rule)); } #line 1946 "parsessh.c" break; case 56: /* keywords_rule_list: keyword_regex */ #line 451 "parsessh.y" { (yyval.words) = words_new ("Keywords: Strings", "Keywords: Regexps", 100, 100); words_add_regex ((yyval.words), (yyvsp[0].rule)); } #line 1955 "parsessh.c" break; case 57: /* keywords_rule_list: keywords_rule_list ',' rule */ #line 456 "parsessh.y" { words_add_string ((yyvsp[-2].words), (yyvsp[0].rule)); (yyval.words) = (yyvsp[-2].words); } #line 1964 "parsessh.c" break; case 58: /* keywords_rule_list: keywords_rule_list ',' keyword_regex */ #line 461 "parsessh.y" { words_add_regex ((yyvsp[-2].words), (yyvsp[0].rule)); (yyval.words) = (yyvsp[-2].words); } #line 1973 "parsessh.c" break; case 59: /* keyword_regex: regex rhs */ #line 473 "parsessh.y" { (yyval.rule) = keyword_rule_new (NULL, (yyvsp[-1].pattern), (yyvsp[0].array), sshfilename, sshlineno); } #line 1982 "parsessh.c" break; case 60: /* keyword_regex: regex */ #line 478 "parsessh.y" { (yyval.rule) = keyword_rule_new (NULL, (yyvsp[0].pattern), rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno); } #line 1993 "parsessh.c" break; case 61: /* keyword_regex: '(' regex rhs_list ')' */ #line 485 "parsessh.y" { (yyval.rule) = keyword_rule_new (NULL, (yyvsp[-2].pattern), (yyvsp[-1].array), sshfilename, sshlineno); } #line 2002 "parsessh.c" break; case 62: /* operators_def: tIN fface tARE operators_rule_list tEND */ #line 494 "parsessh.y" { words_set_no_face ((yyvsp[-1].words), (yyvsp[-3].fface)); (yyval.words) = (yyvsp[-1].words); } #line 2011 "parsessh.c" break; case 63: /* operators_def: tARE operators_rule_list tEND */ #line 498 "parsessh.y" { /* First of all, the No_face must be turned into Plain */ (yyval.words) = (yyvsp[-1].words); } #line 2020 "parsessh.c" break; case 64: /* operators_rule_list: rule */ #line 506 "parsessh.y" { (yyval.words) = words_new ("Operators: Strings", "Operators: Regexps", 100, 100); words_add_string ((yyval.words), (yyvsp[0].rule)); } #line 2030 "parsessh.c" break; case 65: /* operators_rule_list: operator_regex */ #line 512 "parsessh.y" { (yyval.words) = words_new ("Operators: Strings", "Operators: Regexps", 100, 100); words_add_regex ((yyval.words), (yyvsp[0].rule)); } #line 2040 "parsessh.c" break; case 66: /* operators_rule_list: operators_rule_list ',' rule */ #line 518 "parsessh.y" { words_add_string ((yyvsp[-2].words), (yyvsp[0].rule)); (yyval.words) = (yyvsp[-2].words); } #line 2049 "parsessh.c" break; case 67: /* operators_rule_list: operators_rule_list ',' operator_regex */ #line 523 "parsessh.y" { words_add_regex ((yyvsp[-2].words), (yyvsp[0].rule)); (yyval.words) = (yyvsp[-2].words); } #line 2058 "parsessh.c" break; case 68: /* operator_regex: regex rhs */ #line 535 "parsessh.y" { (yyval.rule) = rule_new (NULL, (yyvsp[-1].pattern), (yyvsp[0].array), sshfilename, sshlineno); } #line 2067 "parsessh.c" break; case 69: /* operator_regex: regex */ #line 540 "parsessh.y" { (yyval.rule) = rule_new (NULL, (yyvsp[0].pattern), rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno); } #line 2077 "parsessh.c" break; case 70: /* operator_regex: '(' regex rhs_list ')' */ #line 546 "parsessh.y" { (yyval.rule) = rule_new (NULL, (yyvsp[-2].pattern), (yyvsp[-1].array), sshfilename, sshlineno); } #line 2086 "parsessh.c" break; case 71: /* sequence_def: tSEQUENCES tARE sequence_list tEND tSEQUENCES */ #line 555 "parsessh.y" { (yyval.array) = (yyvsp[-2].array); } #line 2092 "parsessh.c" break; case 72: /* sequence_list: sequence */ #line 558 "parsessh.y" { (yyval.array) = da_new ("Sequence tmp", 100, da_linear, 100, (da_print_func_t) sequence_self_print, NULL); da_append ((yyval.array), (yyvsp[0].sequence)); } #line 2103 "parsessh.c" break; case 73: /* sequence_list: sequence_list ',' sequence */ #line 564 "parsessh.y" { da_append ((yyvsp[-2].array), (yyvsp[0].sequence)); (yyval.array) = (yyvsp[-2].array); } #line 2112 "parsessh.c" break; case 74: /* sequence: tSTRING tLATEXSYMBOL fface closers_opt exception_def_opt */ #line 588 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[-4].string), NULL, rhs_new_single ((yyvsp[-3].string), 0, Symbol_fface), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2124 "parsessh.c" break; case 75: /* sequence: tSTRING tSTRING fface fface closers_opt exception_def_opt */ #line 596 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[-5].string), NULL, rhs_new_single ((yyvsp[-4].string), 0, (yyvsp[-3].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2136 "parsessh.c" break; case 76: /* sequence: tSTRING fface fface closers_opt exception_def_opt */ #line 604 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[-4].string), NULL, rhs_new_single (NULL, 0, (yyvsp[-3].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2148 "parsessh.c" break; case 77: /* sequence: tSTRING tSTRING fface closers_opt exception_def_opt */ #line 612 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[-4].string), NULL, rhs_new_single ((yyvsp[-3].string), 0, (yyvsp[-2].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2160 "parsessh.c" break; case 78: /* sequence: tSTRING fface closers_opt exception_def_opt */ #line 620 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[-3].string), NULL, rhs_new_single (NULL, 0, (yyvsp[-2].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2172 "parsessh.c" break; case 79: /* sequence: regex tSTRING fface fface closers_opt exception_def_opt */ #line 628 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (NULL, (yyvsp[-5].pattern), rhs_new_single ((yyvsp[-4].string), 0, (yyvsp[-3].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2184 "parsessh.c" break; case 80: /* sequence: regex fface fface closers_opt exception_def_opt */ #line 636 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (NULL, (yyvsp[-4].pattern), rhs_new_single (NULL, 0, (yyvsp[-3].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2196 "parsessh.c" break; case 81: /* sequence: regex tSTRING fface closers_opt exception_def_opt */ #line 644 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (NULL, (yyvsp[-4].pattern), rhs_new_single ((yyvsp[-3].string), 0, (yyvsp[-2].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2208 "parsessh.c" break; case 82: /* sequence: regex fface closers_opt exception_def_opt */ #line 652 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (NULL, (yyvsp[-3].pattern), rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2220 "parsessh.c" break; case 83: /* sequence: '(' tSTRING rhs_list ')' fface closers_opt exception_def_opt */ #line 660 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[-5].string), NULL, (yyvsp[-4].array), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2231 "parsessh.c" break; case 84: /* sequence: '(' regex rhs_list ')' fface closers_opt exception_def_opt */ #line 667 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (NULL, (yyvsp[-5].pattern), (yyvsp[-4].array), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[-2].fface), (yyvsp[-1].words), (yyvsp[0].words)); } #line 2242 "parsessh.c" break; case 85: /* sequence: tCSTRING */ #line 675 "parsessh.y" { (yyval.sequence) = new_C_string_sequence ("\""); } #line 2250 "parsessh.c" break; case 86: /* sequence: tCCHAR */ #line 679 "parsessh.y" { (yyval.sequence) = new_C_string_sequence ("\'"); } #line 2258 "parsessh.c" break; case 87: /* closers_opt: %empty */ #line 686 "parsessh.y" { /* This is a shortcut which means "up to the end of the line". */ (yyval.words) = words_new ("Closing: Strings", "Closing: Regexps", 2, 2); words_add_string ((yyval.words), rule_new (xstrdup ("\n"), NULL, rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno)); } #line 2271 "parsessh.c" break; case 88: /* closers_opt: rule */ #line 695 "parsessh.y" { /* Only one */ (yyval.words) = words_new ("Closing: Strings", "Closing: Regexps", 2, 2); words_add_string ((yyval.words), (yyvsp[0].rule)); } #line 2281 "parsessh.c" break; case 89: /* closers_opt: operator_regex */ #line 701 "parsessh.y" { /* Only one */ (yyval.words) = words_new ("Closing: Strings", "Closing: Regexps", 2, 2); words_add_regex ((yyval.words), (yyvsp[0].rule)); } #line 2291 "parsessh.c" break; case 90: /* closers_opt: tCLOSERS operators_def tCLOSERS */ #line 707 "parsessh.y" { /* Several, comma separated, between () */ (yyval.words) = (yyvsp[-1].words); } #line 2300 "parsessh.c" break; case 91: /* exception_def_opt: %empty */ #line 715 "parsessh.y" { (yyval.words) = words_new ("Exceptions: Strings", "Exceptions: Regexps", 1, 1); } #line 2308 "parsessh.c" break; case 92: /* exception_def_opt: tEXCEPTIONS operators_def tEXCEPTIONS */ #line 719 "parsessh.y" { (yyval.words) = (yyvsp[-1].words); } #line 2316 "parsessh.c" break; #line 2320 "parsessh.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; *++yyvsp = yyval; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ { const int yylhs = yyr1[yyn] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyssp; yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp ? yytable[yyi] : yydefgoto[yylhs]); } goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; yyerror (YY_("syntax error")); } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; ++yynerrs; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYSYMBOL_YYerror; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturnlab; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturnlab; /*-----------------------------------------------------------. | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | `-----------------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; goto yyreturnlab; /*----------------------------------------------------------. | yyreturnlab -- parsing is finished, clean up and return. | `----------------------------------------------------------*/ yyreturnlab: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; } #line 723 "parsessh.y" void yyerror (const char *msg) { error_at_line (1, 0, sshfilename, sshlineno, "%s", msg); } /* * FIXME: Cover the other relevant types */ static void yyprint (FILE *file, int type, YYSTYPE value) { switch (type) { case tBACK_REF: fprintf (file, " \\%d", value.integer); break; case tFFLAGS: putc (' ', file); fflag_self_print (value.fflags, file); break; case tFACE: fprintf (file, " %s", face_to_string (value.face)); break; case tREGEX: fprintf (file, " /%s/", value.pattern->pattern); break; case tSTRING: fprintf (file, " \"%s\"", value.string); break; } } struct style_sheet * parse_style_sheet (const char * filename) { int res; sshfilename = filename; sshlineno = 1; sshin = xrfopen (sshfilename); message (msg_file | msg_sheet | msg_parse, (stderr, "Parsing file `%s'\n", sshfilename)); sshlex_initialize (); if (msg_test (msg_parse)) yydebug = true; res = yyparse (); /* FIXME: test the result of parsing */ if (msg_test (msg_sheet)) { fprintf (stderr, "---------- Right after parsing of %s\n", parsed_style_sheet->key); style_sheet_self_print (parsed_style_sheet, stderr); fprintf (stderr, "---------- End of after parsing of %s\n", parsed_style_sheet->key); } fclose (sshin); return parsed_style_sheet; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/parsessh.h��������������������������������������������������������������������������0000644�0000000�0000000�00000012317�14443706645�012153� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison interface for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ #ifndef YY_YY_PARSESSH_H_INCLUDED # define YY_YY_PARSESSH_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif #if YYDEBUG extern int yydebug; #endif /* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { YYEMPTY = -2, YYEOF = 0, /* "end of file" */ YYerror = 256, /* error */ YYUNDEF = 257, /* "invalid token" */ tSTYLE = 258, /* tSTYLE */ tIS = 259, /* tIS */ tEND = 260, /* tEND */ tKEYWORDS = 261, /* tKEYWORDS */ tARE = 262, /* tARE */ tIN = 263, /* tIN */ tOPERATORS = 264, /* tOPERATORS */ tSEQUENCES = 265, /* tSEQUENCES */ tFIRST = 266, /* tFIRST */ tSECOND = 267, /* tSECOND */ tALPHABET = 268, /* tALPHABET */ tALPHABETS = 269, /* tALPHABETS */ tDOCUMENTATION = 270, /* tDOCUMENTATION */ tEXCEPTIONS = 271, /* tEXCEPTIONS */ tCASE = 272, /* tCASE */ tCSTRING = 273, /* tCSTRING */ tCCHAR = 274, /* tCCHAR */ tOPTIONAL = 275, /* tOPTIONAL */ tCLOSERS = 276, /* tCLOSERS */ tWRITTEN = 277, /* tWRITTEN */ tBY = 278, /* tBY */ tVERSION = 279, /* tVERSION */ tREQUIRES = 280, /* tREQUIRES */ tA2PS = 281, /* tA2PS */ tANCESTORS = 282, /* tANCESTORS */ tFACE = 283, /* tFACE */ tFFLAGS = 284, /* tFFLAGS */ tSTRING = 285, /* tSTRING */ tLATEXSYMBOL = 286, /* tLATEXSYMBOL */ tREGEX = 287, /* tREGEX */ tSENSITIVENESS = 288, /* tSENSITIVENESS */ tBACK_REF = 289 /* tBACK_REF */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ #define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 #define tSTYLE 258 #define tIS 259 #define tEND 260 #define tKEYWORDS 261 #define tARE 262 #define tIN 263 #define tOPERATORS 264 #define tSEQUENCES 265 #define tFIRST 266 #define tSECOND 267 #define tALPHABET 268 #define tALPHABETS 269 #define tDOCUMENTATION 270 #define tEXCEPTIONS 271 #define tCASE 272 #define tCSTRING 273 #define tCCHAR 274 #define tOPTIONAL 275 #define tCLOSERS 276 #define tWRITTEN 277 #define tBY 278 #define tVERSION 279 #define tREQUIRES 280 #define tA2PS 281 #define tANCESTORS 282 #define tFACE 283 #define tFFLAGS 284 #define tSTRING 285 #define tLATEXSYMBOL 286 #define tREGEX 287 #define tSENSITIVENESS 288 #define tBACK_REF 289 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 82 "parsessh.y" int integer; char * string; struct pattern * pattern; struct style_sheet * sheet; struct rule * rule; struct sequence * sequence; struct darray * array; struct words * words; struct faced_string * faced_string; enum face_e face; /* Face */ enum fflag_e fflags; /* Flags for faces */ struct fface_s fface; /* Flagged face */ enum case_sensitiveness sensitiveness; #line 151 "parsessh.h" }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; int yyparse (void); #endif /* !YY_YY_PARSESSH_H_INCLUDED */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/parsessh.y��������������������������������������������������������������������������0000644�0000000�0000000�00000044520�14445053504�012164� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%{ /* -*- c -*- */ /* * Grammar for parsing the style sheets * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * */ /* * This file is part of a2ps * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * $Id: parsessh.y,v 1.1.1.1.2.2 2007/12/29 01:58:35 mhatta Exp $ */ #include <config.h> #include "a2ps.h" #include "jobs.h" #include "ffaces.h" #include "ssheet.h" #include "message.h" #include "routines.h" #include "yy2ssh.h" #define YYDEBUG 1 #define YYERROR_VERBOSE 1 #define YYPRINT(file, type, value) yyprint (file, type, value) /* We need to use the same `const' as bison, to avoid the following prototypes to diverge from the function declarations */ #undef const #ifndef __cplusplus # ifndef __STDC__ # define const # endif #endif /* Comes from the parser */ extern int sshlineno; /* Comes from the caller */ extern FILE * sshin; extern struct a2ps_job * job; extern const char * sshfilename; /* Local prototypes */ void yyerror (const char *msg); static void yyprint (); /* Initilizes the obstacks */ void sshlex_initialize (void); /* Comes from main.c */ extern int highlight_level; int yylex (void); struct style_sheet * parse_style_sheet (const char * filename); /* Defines the style sheet being loaded */ static struct style_sheet * parsed_style_sheet = NULL; %} %union { int integer; char * string; struct pattern * pattern; struct style_sheet * sheet; struct rule * rule; struct sequence * sequence; struct darray * array; struct words * words; struct faced_string * faced_string; enum face_e face; /* Face */ enum fflag_e fflags; /* Flags for faces */ struct fface_s fface; /* Flagged face */ enum case_sensitiveness sensitiveness; } %token tSTYLE tIS tEND tKEYWORDS tARE tIN tOPERATORS tSEQUENCES %token tFIRST tSECOND tALPHABET tALPHABETS tDOCUMENTATION tEXCEPTIONS %token tCASE tCSTRING tCCHAR tOPTIONAL tCLOSERS %token tWRITTEN tBY tVERSION tREQUIRES tA2PS tANCESTORS %token <face> tFACE %token <fflags> tFFLAGS %token <string> tSTRING tLATEXSYMBOL %token <pattern> tREGEX %token <sensitiveness> tSENSITIVENESS %token <integer> tBACK_REF %type <pattern> regex %type <fface> fface fface_sxp %type <string> authors documentation version long_string requirement %type <faced_string> a_rhs %type <rule> rule keyword_regex operator_regex %type <sheet> style_sheet definition_list %type <words> keywords_def keywords_rule_list %type <words> operators_def operators_rule_list %type <array> sequence_list sequence_def %type <words> exception_def_opt %type <array> ancestors_def ancestors_list %type <words> closers_opt %type <sensitiveness> case_def %type <array> rhs rhs_list %type <sequence> sequence %% /************************************************************************/ /* Top most */ /************************************************************************/ file : style_sheet { parsed_style_sheet = $1; } ; style_sheet : tSTYLE tSTRING tIS definition_list tEND tSTYLE { $4->name = $2; $4->key = "<No key yet>"; $$ = $4; } ; definition_list : /* empty */ { $$ = new_style_sheet ((const unsigned char *) "<no name>"); } | definition_list tOPTIONAL tKEYWORDS keywords_def tKEYWORDS { if (highlight_level == 2) { words_set_no_face ($4, Plain_fface); words_merge_rules_unique ($1->keywords, $4); } $$ = $1; } | definition_list tKEYWORDS keywords_def tKEYWORDS { words_set_no_face ($3, Plain_fface); words_merge_rules_unique ($1->keywords, $3); $$ = $1; } | definition_list tOPTIONAL tOPERATORS operators_def tOPERATORS { if (highlight_level == 2) { words_set_no_face ($4, Plain_fface); words_merge_rules_unique ($1->operators, $4); } $$ = $1; } | definition_list tOPERATORS operators_def tOPERATORS { words_set_no_face ($3, Plain_fface); words_merge_rules_unique ($1->operators, $3); $$ = $1; } | definition_list tOPTIONAL sequence_def { if (highlight_level == 2) da_concat ($1->sequences, $3); $$ = $1; } | definition_list sequence_def { da_concat ($1->sequences, $2); $$ = $1; } | definition_list ancestors_def { da_concat ($1->ancestors, $2); $$ = $1; } | definition_list tALPHABETS tARE tSTRING { string_to_array ($1->alpha1, $4); string_to_array ($1->alpha2, $4); $4 = NULL; $$ = $1; } | definition_list tFIRST tALPHABET tIS tSTRING { string_to_array ($1->alpha1, $5); $5 = NULL; $$ = $1; } | definition_list tSECOND tALPHABET tIS tSTRING { string_to_array ($1->alpha2, $5); $5 = NULL; $$ = $1; } | definition_list case_def { $1->sensitiveness = $2; } | definition_list documentation { $1->documentation = $2; } | definition_list authors { $1->author = $2; } | definition_list version { style_sheet_set_version ($1, (const char *) $2); } | definition_list requirement { /* Make sure now that we won't encounter new tokens. * This avoids nasty error messages, or worse: * unexpected behavior at run time */ if (!style_sheet_set_requirement ($1, (const char *) $2)) error (1, 0, _("cannot process `%s' which requires a2ps version %s"), sshfilename, $2); } ; /************************************************************************/ /* Dealing with the inessential informations */ /************************************************************************/ requirement : tREQUIRES tA2PS tSTRING { $$ = $3 ; } | tREQUIRES tA2PS tVERSION tSTRING { $$ = $4 ; } ; documentation : tDOCUMENTATION tIS long_string tEND tDOCUMENTATION { $$ = $3 ; }; long_string: tSTRING { $$ = $1; } | long_string tSTRING { size_t len1; size_t len2; len1 = strlen ($1); $1[len1] = '\n'; len2 = strlen ($2); $$ = XNMALLOC (len1 + len2 + 2, unsigned char); stpcpy (stpncpy ($$, $1, len1 + 1), $2); } ; authors : tWRITTEN tBY tSTRING { $$ = $3 ; }; version : tVERSION tIS tSTRING { $$ = $3 ; } | tVERSION tSTRING { $$ = $2 ; }; /************************************************************************/ /* Dealing with the ancestors of a style sheet */ /************************************************************************/ ancestors_def : tANCESTORS tARE ancestors_list tEND tANCESTORS { /* The list of keys of style sheets from which it inherits */ $$ = $3; } ; ancestors_list: tSTRING { /* Create a list of ancestors, and drop the new one in */ $$ = da_new ("Ancestors tmp", 2, da_linear, 2, (da_print_func_t) da_str_print, NULL); da_append ($$, $1); } | ancestors_list ',' tSTRING { da_append ($1, $3); $$ = $1; } ; case_def : tCASE tSENSITIVENESS { $$ = $2 ; } ; /************************************************************************/ /* Rhs */ /* (Lists of (strings/regexp back references, face) */ /************************************************************************/ /* Regex split upon several lines */ regex: tREGEX { $$ = $1; } | regex tREGEX { /* Concatenate $2 to $1 makes $$ */ $$ = $1; $$->pattern = xnrealloc ($$->pattern, $1->len + $2->len + 1, sizeof(char)); strncpy ($$->pattern + $$->len, $2->pattern, $2->len); $$->len += $2->len; } ; rhs: a_rhs { $$ = rhs_new (); rhs_add ($$, $1); } ; a_rhs: tSTRING fface { $$ = faced_string_new ($1, 0, $2); } | tSTRING { $$ = faced_string_new ($1, 0, No_fface); } | fface { $$ = faced_string_new (NULL, 0, $1); } | tBACK_REF fface { $$ = faced_string_new (NULL, $1, $2); } | tBACK_REF { $$ = faced_string_new (NULL, $1, No_fface); } | tLATEXSYMBOL { $$ = faced_string_new ($1, 0, Symbol_fface); } ; rhs_list: a_rhs { $$ = rhs_new (); rhs_add ($$, $1); } | rhs_list ',' a_rhs { rhs_add ($1, $3); $$ = $1; } ; /* * The flagged faces (One (true face or Invisible) plus flags) */ fface: tFACE { fface_set_face ($$, $1); fface_reset_flags ($$); } | tFFLAGS { fface_reset_face ($$); fface_set_flags ($$, $1); /* If there is no face, then set Invisible */ fface_add_flags ($$, ff_Invisible); } | '(' fface_sxp ')' { $$ = $2; /* If there is no face, then set Invisible */ if (fface_get_face ($$) == No_face) fface_add_flags ($$, ff_Invisible); } ; fface_sxp: tFACE { fface_set_face($$, $1); fface_reset_flags($$); } | tFFLAGS { fface_reset_face($$); fface_set_flags($$, $1); } | fface_sxp '+' tFACE { /* FIXME: Overloading of the face should be forbidden */ $$ = $1; fface_set_face($$, $3); } | fface_sxp '+' tFFLAGS { $$ = $1; fface_add_flags($$, $3); } ; /************************************************************************/ /* Symbol atoms */ /************************************************************************/ /* A rule is the group of 1. string to match, 2. the rhs * * In the special shortcut where no face is given, see where * rule_list appears for resolving */ rule: tSTRING rhs { $$ = rule_new ($1, NULL, $2, sshfilename, sshlineno); } | tSTRING { $$ = rule_new ($1, NULL, rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno); } | '(' tSTRING rhs_list ')' { $$ = rule_new ($2, NULL, $3, sshfilename, sshlineno); } ; /************************************************************************/ /* Keywords lists */ /* We make the difference because the regex must be compiled with a */ /* difference (which is \\b\\(%s\\)\\b) between keywords and operators */ /************************************************************************/ keywords_def : tIN fface tARE keywords_rule_list tEND { words_set_no_face ($4, $2); $$ = $4; } | tARE keywords_rule_list tEND { /* First of all, the No_face must be turned into Plain */ $$ = $2; } ; keywords_rule_list: rule { $$ = words_new ("Keywords: Strings", "Keywords: Regexps", 100, 100); words_add_string ($$, $1); } | keyword_regex { $$ = words_new ("Keywords: Strings", "Keywords: Regexps", 100, 100); words_add_regex ($$, $1); } | keywords_rule_list ',' rule { words_add_string ($1, $3); $$ = $1; } | keywords_rule_list ',' keyword_regex { words_add_regex ($1, $3); $$ = $1; } ; /* A rule is the group of 1. string to match, 2. string to * print, 3. face of the string to print. In the special * shortcut where no face is given, see where rule_list appears * for resolving */ keyword_regex: regex rhs { $$ = keyword_rule_new (NULL, $1, $2, sshfilename, sshlineno); } | regex { $$ = keyword_rule_new (NULL, $1, rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno); } | '(' regex rhs_list ')' { $$ = keyword_rule_new (NULL, $2, $3, sshfilename, sshlineno); } ; /************************************************************************/ /* Operators lists */ /************************************************************************/ operators_def: tIN fface tARE operators_rule_list tEND { words_set_no_face ($4, $2); $$ = $4; } | tARE operators_rule_list tEND { /* First of all, the No_face must be turned into Plain */ $$ = $2; } ; operators_rule_list: rule { $$ = words_new ("Operators: Strings", "Operators: Regexps", 100, 100); words_add_string ($$, $1); } | operator_regex { $$ = words_new ("Operators: Strings", "Operators: Regexps", 100, 100); words_add_regex ($$, $1); } | operators_rule_list ',' rule { words_add_string ($1, $3); $$ = $1; } | operators_rule_list ',' operator_regex { words_add_regex ($1, $3); $$ = $1; } ; /* A rule is the group of 1. string to match, 2. string to * print, 3. face of the string to print. In the special * shortcut where no face is given, see where rule_list appears * for resolving */ operator_regex: regex rhs { $$ = rule_new (NULL, $1, $2, sshfilename, sshlineno); } | regex { $$ = rule_new (NULL, $1, rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno); } | '(' regex rhs_list ')' { $$ = rule_new (NULL, $2, $3, sshfilename, sshlineno); } ; /************************************************************************/ /* Dealing with the sequences */ /************************************************************************/ sequence_def : tSEQUENCES tARE sequence_list tEND tSEQUENCES { $$ = $3; } ; sequence_list: sequence { $$ = da_new ("Sequence tmp", 100, da_linear, 100, (da_print_func_t) sequence_self_print, NULL); da_append ($$, $1); } | sequence_list ',' sequence { da_append ($1, $3); $$ = $1; } ; /* * I can understand one will get sick reading this. It hurts, indeed, * but is necessary because of shift/reduce conflicts if one uses * * sequence: operators_rule face closers_opt exception_def_opt * * The problem is that when bison/yacc reads this * * <word> <word> . <face1> <face2> * * it doesn't know whether <face1> should be in $1, or in $2. * So we have to inline the rule at hand... */ sequence: /* Expansion of each possibility for * <operators_rule> <face> <closers_opt> <exception_def_opt> */ tSTRING tLATEXSYMBOL fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new ($1, NULL, rhs_new_single ($2, 0, Symbol_fface), sshfilename, sshlineno); $$ = sequence_new (open_rule, $3, $4, $5); } | tSTRING tSTRING fface fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new ($1, NULL, rhs_new_single ($2, 0, $3), sshfilename, sshlineno); $$ = sequence_new (open_rule, $4, $5, $6); } | tSTRING fface fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new ($1, NULL, rhs_new_single (NULL, 0, $2), sshfilename, sshlineno); $$ = sequence_new (open_rule, $3, $4, $5); } | tSTRING tSTRING fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new ($1, NULL, rhs_new_single ($2, 0, $3), sshfilename, sshlineno); $$ = sequence_new (open_rule, $3, $4, $5); } | tSTRING fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new ($1, NULL, rhs_new_single (NULL, 0, $2), sshfilename, sshlineno); $$ = sequence_new (open_rule, $2, $3, $4); } | regex tSTRING fface fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new (NULL, $1, rhs_new_single ($2, 0, $3), sshfilename, sshlineno); $$ = sequence_new (open_rule, $4, $5, $6); } | regex fface fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new (NULL, $1, rhs_new_single (NULL, 0, $2), sshfilename, sshlineno); $$ = sequence_new (open_rule, $3, $4, $5); } | regex tSTRING fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new (NULL, $1, rhs_new_single ($2, 0, $3), sshfilename, sshlineno); $$ = sequence_new (open_rule, $3, $4, $5); } | regex fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new (NULL, $1, rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno); $$ = sequence_new (open_rule, $2, $3, $4); } | '(' tSTRING rhs_list ')' fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new ($2, NULL, $3, sshfilename, sshlineno); $$ = sequence_new (open_rule, $5, $6, $7); } | '(' regex rhs_list ')' fface closers_opt exception_def_opt { struct rule * open_rule; open_rule = rule_new (NULL, $2, $3, sshfilename, sshlineno); $$ = sequence_new (open_rule, $5, $6, $7); } /* End of the brute force expansion */ | tCSTRING { $$ = new_C_string_sequence ("\""); } | tCCHAR { $$ = new_C_string_sequence ("\'"); } ; closers_opt: /* Nothing */ { /* This is a shortcut which means "up to the end of the line". */ $$ = words_new ("Closing: Strings", "Closing: Regexps", 2, 2); words_add_string ($$, rule_new (xstrdup ("\n"), NULL, rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno)); } | rule { /* Only one */ $$ = words_new ("Closing: Strings", "Closing: Regexps", 2, 2); words_add_string ($$, $1); } | operator_regex { /* Only one */ $$ = words_new ("Closing: Strings", "Closing: Regexps", 2, 2); words_add_regex ($$, $1); } | tCLOSERS operators_def tCLOSERS { /* Several, comma separated, between () */ $$ = $2; } ; exception_def_opt: /* Nothing */ { $$ = words_new ("Exceptions: Strings", "Exceptions: Regexps", 1, 1); } | tEXCEPTIONS operators_def tEXCEPTIONS { $$ = $2; }; %% void yyerror (const char *msg) { error_at_line (1, 0, sshfilename, sshlineno, "%s", msg); } /* * FIXME: Cover the other relevant types */ static void yyprint (FILE *file, int type, YYSTYPE value) { switch (type) { case tBACK_REF: fprintf (file, " \\%d", value.integer); break; case tFFLAGS: putc (' ', file); fflag_self_print (value.fflags, file); break; case tFACE: fprintf (file, " %s", face_to_string (value.face)); break; case tREGEX: fprintf (file, " /%s/", value.pattern->pattern); break; case tSTRING: fprintf (file, " \"%s\"", value.string); break; } } struct style_sheet * parse_style_sheet (const char * filename) { int res; sshfilename = filename; sshlineno = 1; sshin = xrfopen (sshfilename); message (msg_file | msg_sheet | msg_parse, (stderr, "Parsing file `%s'\n", sshfilename)); sshlex_initialize (); if (msg_test (msg_parse)) yydebug = true; res = yyparse (); /* FIXME: test the result of parsing */ if (msg_test (msg_sheet)) { fprintf (stderr, "---------- Right after parsing of %s\n", parsed_style_sheet->key); style_sheet_self_print (parsed_style_sheet, stderr); fprintf (stderr, "---------- End of after parsing of %s\n", parsed_style_sheet->key); } fclose (sshin); return parsed_style_sheet; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/read.c������������������������������������������������������������������������������0000644�0000000�0000000�00000012213�14251132535�011210� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* read.c - routines of input with no style sheets Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "main.h" #include "buffer.h" /*-------------------------------------------------------. | Returns a single char (EOF for end-of-file). | | | | Does the nroff's replacement for underline, bold etc. | `-------------------------------------------------------*/ static int plain_getc (buffer_t * buffer, enum face_e *face) { char c; if (buffer_is_empty (buffer)) { buffer_get (buffer); /* We don't trust liba2ps for the line numbers, because if a2ps skips some lines (e.g., --strip-level, or INVISIBLE), liba2ps will number upon output lines, not imput lines, which is what is expected. */ (CURRENT_FILE (job))->lines = buffer->line; if (buffer->len == 0) return EOF; } *face = Plain; c = (char) buffer->content[(buffer->curr)++]; /* Check if it is a special nroff'ed sequence */ if (buffer->content[buffer->curr] == '\b') { /* We might be dealing with miscellaneous nroff'ed pages. */ const char *input = (char *) buffer->content + buffer->curr + 1; /* This might be a bolding sequence. The bad news is that some strange systems build the bold sequences with only one rewriting, not the usual 3. Super strong `_', seen in Sun's mpeg_rc doc. */ if (c == input[0] && '\b' == input[1] && c == input[2] && '\b' == input[3] && c == input[4] && '\b' == input[5] && c == input[6]) { *face = Label_strong; buffer->curr += 8; } else if (c == input[0] && '\b' == input[1] && c == input[2] && '\b' == input[3] && c == input[4]) { *face = Keyword_strong; buffer->curr += 6; } else if (c == input[0] && '\b' == input[1] && c == input[2]) { *face = Keyword_strong; buffer->curr += 4; } else if (c == input[0]) { *face = Keyword_strong; buffer->curr += 2; } /* If C is `_', then set font to italic and move to next char. */ else if (c == '_') { char c2 = input[0]; /* Winner of the cup: mpeg_rc, from Sun, where it tries both to underline, and to boldize. */ if ('\b' == input[1] && c2 == input[2] && '\b' == input[3] && c2 == input[4] && '\b' == input[5] && c2 == input[6]) { *face = Label_strong; c = c2; buffer->curr += 8; } else { *face = Keyword; c = input[0]; buffer->curr += 2; } } /* Seen in gcc.1: o;\b;+, seen in cccp.1: +;\b;o to have an itemizing symbol. */ else if (('o' == c && '+' == input[0]) || ('+' == c && 'o' == input[0])) { *face = Symbol; buffer->curr += 2; c = '\305'; /* \oplus in LaTeX */ } /* Seen in groff.1 : c;\b;O, for copyright */ else if ('c' == c && 'O' == input[0]) { *face = Symbol; buffer->curr += 2; c = '\343'; /* \copyright. */ } /* Seen in gtroff.1 : +;\b;_, for plus or minus */ else if ('+' == c && '_' == input[0]) { *face = Symbol; buffer->curr += 2; c = '\261'; } /* Seen in geqn.1 : ~;\b>;\b;_ for greater or equal */ else if ('~' == c && '>' == input[0] && '\b' == input[1] && '_' == input[2]) { *face = Symbol; buffer->curr += 4; c = '\263'; } /* Less than or equal to. */ else if ('~' == c && '<' == input[0] && '\b' == input[1] && '_' == input[2]) { *face = Symbol; buffer->curr += 4; c = '\243'; } /* Underlined: x;\b;_ . Note that we have a conflict here in the case x == '+' (see above). This choice seems the best. */ else if ('_' == input[0]) { *face = Keyword; buffer->curr += 2; } /* (Should be last). In some case, headers or footers too big, nroff backslashes so that both chars. are superimposed. We decided to keep only the first one. */ else if (((CURRENT_FILE (job)->lines + 3) % 66 == 0) || ((CURRENT_FILE (job)->lines - 4) % 66 == 0)) { buffer->curr += 2; } /* else: treate the backslash as a special characters */ } return (unsigned char)c; } /* * Print a file to postscript (no style) */ void plain_print_postscript (a2ps_job * Job, buffer_t * buffer) { enum face_e face = Plain; int c; while ((c = plain_getc (buffer, &face)) != EOF) ps_print_char (Job, (char) c, face); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/read.h������������������������������������������������������������������������������0000644�0000000�0000000�00000001776�14235572622�011240� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* read.h - routines of input with no style sheets Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _READ_H_ #define _READ_H_ #include "faces.h" #include "buffer.h" struct a2ps_job; void plain_print_postscript (struct a2ps_job * job, buffer_t * buffer); #endif /* not defined(_READ_H_) */ ��a2ps-4.15.5/src/select.c����������������������������������������������������������������������������0000644�0000000�0000000�00000015574�14445053504�011574� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* select.c - selection of a style sheet Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <fnmatch.h> #include "a2ps.h" #include "select.h" #include "routines.h" #include "getshline.h" #include "filenamecat.h" #include "pathwalk.h" #include "filtdir.h" #include "message.h" #include "quotearg.h" #include "xstrndup.h" extern char * style_request; /* * Take priviledged access to job :) */ extern a2ps_job * job; extern struct darray * sheets_map; /* * The user has requested the style sheet him self. */ void set_requested_style (const char * arg) { xstrcpy (style_request, arg); } /************************************************************************/ /* sheets.map handling */ /************************************************************************/ /* * Association of suffixes rules, and corresponding style sheet */ struct pattern_rule { const char * pattern; const char * command; int on_file_verdict; bool insensitive_p; }; struct pattern_rule * pattern_rule_new (const char *pattern, int on_file_verdict, bool insensitive_p, const char *command) { struct pattern_rule * res = XMALLOC (struct pattern_rule); res->pattern = pattern; res->on_file_verdict = on_file_verdict; res->command = command; res->insensitive_p = insensitive_p; return res; } static void pattern_rule_self_print (struct pattern_rule * item, FILE * stream) { fprintf (stream, "%s/%s: %s/%s\n", item->on_file_verdict ? "file" : "name", item->pattern, item->command, item->insensitive_p ? "i" : ""); } struct darray * sheets_map_new (void) { return da_new ("Sheets map", 200, da_linear, 20, (da_print_func_t) pattern_rule_self_print, NULL); } void sheets_map_add (const char * pattern, int on_file_verdict, bool insensitive_p, const char * key) { da_append (sheets_map, pattern_rule_new (pattern, on_file_verdict, insensitive_p, key)); } /* * Read the sheets.map file */ static int sheets_map_load_main (void) { char * file; /* System's */ file = pw_find_file (job->common.path, "sheets.map", NULL); if (!file) { error (0, errno, _("cannot find file `%s'"), "sheets.map"); /* sheets.map cannot be found: there is no automatic prettyprinting */ error (0, 0, _("automatic style selection cancelled")); return 0; } sheets_map_load (file); return 1; } /* escapes the name of a file so that the shell groks it in 'single' q.marks. */ static char * shell_escape (const char *fn) { size_t len = 0; const char *inp; char *retval, *outp; for(inp = fn; *inp; ++inp) switch(*inp) { case '\'': len += 4; break; default: len += 1; break; } outp = retval = malloc(len + 1); if(!outp) return NULL; /* perhaps one should do better error handling here */ for(inp = fn; *inp; ++inp) switch(*inp) { case '\'': *outp++ = '\''; *outp++ = '\\'; *outp++ = '\'', *outp++ = '\''; break; default: *outp++ = *inp; break; } *outp = 0; return retval; } /* What says file about the type of a file (result is malloc'd). NULL if could not be run. */ static char * file_verdict_on (const char *filename_) { char *cp = NULL, * command; char buf [1024]; FILE * file_out; if (IS_EMPTY (job->file_command)) return NULL; char *filename = shell_escape (filename_); if (filename == NULL) return NULL; /* Call file(1) with the correct option */ command = ALLOCA (char, (4 + strlen (job->file_command) + strlen (filename))); sprintf (command, "%s '%s'", job->file_command, (const char *) filename); free(filename); message (msg_tool, (stderr, "Reading pipe: `%s'\n", command)); file_out = popen (command, "r"); /* Check for failure */ if (!file_out) { if (msg_test(msg_tool)) error (0, errno, _("cannot open a pipe on `%s'"), quotearg (command)); return NULL; } /* Get the answer */ char * res = fgets (buf, sizeof (buf), file_out); pclose (file_out); if (res == NULL) { error (0, errno, _("error running file(1)")); return NULL; } message (msg_tool, (stderr, "file(1): %s", buf)); /* File is expected to answer: filename: file-answer. */ cp = buf; while (*cp && *cp != ':') cp++; cp++; while (*cp && ((*cp == ' ') || (*cp == '\t'))) cp++; if (*cp) { if (cp) message (msg_tool, (stderr, "File's verdict: %s", cp)); /* Don't return the `\n'. */ return xstrndup (cp, strlen (cp) - 1); } return NULL; } /* * Get style name from FILENAME, using pattern rules * and file(1) rules if USE_FILE. */ #define rule(_i_) ((struct pattern_rule *)sheets_map->content[_i_]) const char * get_command (const char *name_to_match, const char *name_to_file) { char *file_verdict; char *name_to_match_lc; /* We only want to read the sheets map if needed, hence, * from here (not needed if the sheet name is given by the * user) */ if (da_is_empty (sheets_map)) sheets_map_load_main (); /* Get file(1)'s verdict, and get a lowercase version of the filename. */ file_verdict = file_verdict_on (name_to_file); if (name_to_match) { name_to_match_lc = ALLOCA (char, strlen (name_to_match) + 1); strcpylc (name_to_match_lc, name_to_match); } /* We look from bottom up, so that most recently defined rules are * honored. Make sure not to call fnmatch on an empty FILE_VERDICT * (thanks to Michael Taeschner <Michael.Taeschner@dlr.de>, * Christian Mondrup <scancm@biobase.dk> and Jens Henrik Leonhard * Jensen recjhl@mediator.uni-c.dk) */ /* The loop is split to speed up */ for (size_t i = sheets_map->len ; i-- > 0;) { if (rule(i)->on_file_verdict) { /* Testing upon file's result */ if (file_verdict && !fnmatch (rule(i)->pattern, file_verdict, 0)) return rule(i)->command; } else { /* Upon file name */ if (name_to_match && !fnmatch (rule(i)->pattern, (char *) (rule(i)->insensitive_p ? name_to_match_lc : name_to_match), 0)) return rule(i)->command; } } return "plain"; } ������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/select.h����������������������������������������������������������������������������0000644�0000000�0000000�00000003354�14445053504�011572� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* select.h - selection of a style sheet Copyright 1995-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _SELECT_H_ #define _SELECT_H_ #include "ssheet.h" #include "darray.h" /* Used as hook when reading the options */ void set_requested_style (const char * arg); /************************************************************************/ /* sheets.map handling */ /************************************************************************/ /* * Structure in charge of remembering the sheets read */ struct darray * sheets_map_new (void); void sheets_map_add (const char *pattern, int on_file_verdict, bool insenstive, const char *key); /* Pattern matching is run on NAME_TO_MATCH, and file(1) * is run of NAME_TO_FILE */ const char * get_command (const char * name_to_match, const char * name_to_file); struct pattern_rule * pattern_rule_new (const char *pattern, int on_file_verdict, bool insensitive_p, const char *command); void sheets_map_load (const char *filename); #endif /* !defined(_SELECT_H_) */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/sheets-map.c������������������������������������������������������������������������0000644�0000000�0000000�00000175467�14445131351�012370� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#line 2 "sheets-map.c" /* -*- c -*- */ /* Scanner for sheets.map files. * Copyright (c) 1999-2000 Akim Demaille, Miguel Santana */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <config.h> #include "main.h" #include "select.h" #include "xobstack.h" #include "xstrndup.h" #line 34 "sheets-map.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer smap_create_buffer #define yy_delete_buffer smap_delete_buffer #define yy_scan_buffer smap_scan_buffer #define yy_scan_string smap_scan_string #define yy_scan_bytes smap_scan_bytes #define yy_init_buffer smap_init_buffer #define yy_flush_buffer smap_flush_buffer #define yy_load_buffer_state smap_load_buffer_state #define yy_switch_to_buffer smap_switch_to_buffer #define yypush_buffer_state smappush_buffer_state #define yypop_buffer_state smappop_buffer_state #define yyensure_buffer_stack smapensure_buffer_stack #define yy_flex_debug smap_flex_debug #define yyin smapin #define yyleng smapleng #define yylex smaplex #define yylineno smaplineno #define yyout smapout #define yyrestart smaprestart #define yytext smaptext #define yywrap smapwrap #define yyalloc smapalloc #define yyrealloc smaprealloc #define yyfree smapfree #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define smap_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer smap_create_buffer #endif #ifdef yy_delete_buffer #define smap_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer smap_delete_buffer #endif #ifdef yy_scan_buffer #define smap_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer smap_scan_buffer #endif #ifdef yy_scan_string #define smap_scan_string_ALREADY_DEFINED #else #define yy_scan_string smap_scan_string #endif #ifdef yy_scan_bytes #define smap_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes smap_scan_bytes #endif #ifdef yy_init_buffer #define smap_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer smap_init_buffer #endif #ifdef yy_flush_buffer #define smap_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer smap_flush_buffer #endif #ifdef yy_load_buffer_state #define smap_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state smap_load_buffer_state #endif #ifdef yy_switch_to_buffer #define smap_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer smap_switch_to_buffer #endif #ifdef yypush_buffer_state #define smappush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state smappush_buffer_state #endif #ifdef yypop_buffer_state #define smappop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state smappop_buffer_state #endif #ifdef yyensure_buffer_stack #define smapensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack smapensure_buffer_stack #endif #ifdef yylex #define smaplex_ALREADY_DEFINED #else #define yylex smaplex #endif #ifdef yyrestart #define smaprestart_ALREADY_DEFINED #else #define yyrestart smaprestart #endif #ifdef yylex_init #define smaplex_init_ALREADY_DEFINED #else #define yylex_init smaplex_init #endif #ifdef yylex_init_extra #define smaplex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra smaplex_init_extra #endif #ifdef yylex_destroy #define smaplex_destroy_ALREADY_DEFINED #else #define yylex_destroy smaplex_destroy #endif #ifdef yyget_debug #define smapget_debug_ALREADY_DEFINED #else #define yyget_debug smapget_debug #endif #ifdef yyset_debug #define smapset_debug_ALREADY_DEFINED #else #define yyset_debug smapset_debug #endif #ifdef yyget_extra #define smapget_extra_ALREADY_DEFINED #else #define yyget_extra smapget_extra #endif #ifdef yyset_extra #define smapset_extra_ALREADY_DEFINED #else #define yyset_extra smapset_extra #endif #ifdef yyget_in #define smapget_in_ALREADY_DEFINED #else #define yyget_in smapget_in #endif #ifdef yyset_in #define smapset_in_ALREADY_DEFINED #else #define yyset_in smapset_in #endif #ifdef yyget_out #define smapget_out_ALREADY_DEFINED #else #define yyget_out smapget_out #endif #ifdef yyset_out #define smapset_out_ALREADY_DEFINED #else #define yyset_out smapset_out #endif #ifdef yyget_leng #define smapget_leng_ALREADY_DEFINED #else #define yyget_leng smapget_leng #endif #ifdef yyget_text #define smapget_text_ALREADY_DEFINED #else #define yyget_text smapget_text #endif #ifdef yyget_lineno #define smapget_lineno_ALREADY_DEFINED #else #define yyget_lineno smapget_lineno #endif #ifdef yyset_lineno #define smapset_lineno_ALREADY_DEFINED #else #define yyset_lineno smapset_lineno #endif #ifdef yywrap #define smapwrap_ALREADY_DEFINED #else #define yywrap smapwrap #endif #ifdef yyalloc #define smapalloc_ALREADY_DEFINED #else #define yyalloc smapalloc #endif #ifdef yyrealloc #define smaprealloc_ALREADY_DEFINED #else #define yyrealloc smaprealloc #endif #ifdef yyfree #define smapfree_ALREADY_DEFINED #else #define yyfree smapfree #endif #ifdef yytext #define smaptext_ALREADY_DEFINED #else #define yytext smaptext #endif #ifdef yyleng #define smapleng_ALREADY_DEFINED #else #define yyleng smapleng #endif #ifdef yyin #define smapin_ALREADY_DEFINED #else #define yyin smapin #endif #ifdef yyout #define smapout_ALREADY_DEFINED #else #define yyout smapout #endif #ifdef yy_flex_debug #define smap_flex_debug_ALREADY_DEFINED #else #define yy_flex_debug smap_flex_debug #endif #ifdef yylineno #define smaplineno_ALREADY_DEFINED #else #define yylineno smaplineno #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires * access to the local variable yy_act. Since yyless() is a macro, it would break * existing scanners that call yyless() from OUTSIDE yylex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-yylineno scanner, because yy_act is * normally declared as a register variable-- so it is not worth it. */ #define YY_LESS_LINENO(n) \ do { \ int yyl;\ for ( yyl = n; yyl < yyleng; ++yyl )\ if ( yytext[yyl] == '\n' )\ --yylineno;\ }while(0) #define YY_LINENO_REWIND_TO(dst) \ do {\ const char *p;\ for ( p = yy_cp-1; p >= (dst); --p)\ if ( *p == '\n' )\ --yylineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart ( FILE *input_file ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); void yy_delete_buffer ( YY_BUFFER_STATE b ); void yy_flush_buffer ( YY_BUFFER_STATE b ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); void yypop_buffer_state ( void ); static void yyensure_buffer_stack ( void ); static void yy_load_buffer_state ( void ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); void *yyalloc ( yy_size_t ); void *yyrealloc ( void *, yy_size_t ); void yyfree ( void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif #define yytext_ptr yytext static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 38 #define YY_END_OF_BUFFER 39 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[74] = { 0, 0, 0, 0, 0, 0, 0, 39, 7, 4, 4, 5, 7, 2, 3, 7, 22, 21, 8, 38, 37, 36, 23, 38, 4, 5, 0, 1, 0, 22, 8, 20, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 37, 23, 35, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 9, 10, 24, 25, 0, 9, 10, 24, 25, 0, 0, 0, 0, 0, 6, 0 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 4, 1, 1, 1, 1, 5, 6, 1, 1, 1, 7, 1, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 11, 1, 12, 1, 13, 1, 1, 10, 10, 10, 10, 10, 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 14, 1, 1, 7, 1, 15, 16, 17, 18, 19, 20, 7, 7, 21, 7, 7, 22, 7, 23, 7, 7, 7, 24, 7, 25, 26, 27, 7, 28, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const YY_CHAR yy_meta[29] = { 0, 1, 1, 2, 1, 1, 3, 4, 5, 6, 6, 4, 1, 7, 8, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4 } ; static const flex_int16_t yy_base[85] = { 0, 0, 0, 26, 27, 29, 33, 154, 174, 35, 42, 0, 140, 174, 174, 28, 0, 174, 122, 51, 0, 174, 103, 79, 46, 0, 112, 174, 97, 0, 174, 174, 110, 174, 174, 174, 174, 174, 174, 174, 174, 174, 0, 0, 174, 174, 108, 174, 174, 174, 174, 174, 174, 174, 174, 174, 0, 98, 106, 0, 103, 0, 99, 174, 174, 174, 174, 100, 102, 111, 0, 76, 174, 174, 125, 133, 141, 146, 152, 159, 48, 44, 27, 25, 165 } ; static const flex_int16_t yy_def[85] = { 0, 73, 1, 74, 74, 75, 75, 73, 73, 73, 73, 76, 77, 73, 73, 77, 78, 73, 73, 73, 79, 73, 73, 73, 73, 76, 77, 73, 77, 78, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 80, 79, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 81, 77, 73, 82, 73, 83, 77, 73, 73, 73, 73, 77, 77, 77, 84, 84, 73, 0, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73 } ; static const flex_int16_t yy_nxt[203] = { 0, 8, 9, 10, 11, 8, 8, 12, 13, 12, 12, 8, 14, 8, 8, 12, 12, 12, 12, 12, 12, 15, 12, 12, 12, 12, 12, 12, 12, 17, 17, 66, 21, 64, 18, 18, 21, 24, 24, 27, 19, 19, 22, 23, 24, 24, 22, 23, 24, 24, 61, 28, 31, 31, 59, 31, 31, 31, 31, 31, 32, 31, 31, 31, 31, 31, 33, 34, 31, 35, 36, 37, 31, 31, 38, 39, 40, 31, 41, 42, 45, 45, 72, 45, 45, 45, 45, 45, 46, 45, 45, 45, 45, 45, 47, 48, 45, 49, 50, 51, 45, 45, 52, 53, 54, 45, 55, 56, 27, 27, 27, 27, 65, 27, 57, 63, 70, 60, 68, 58, 62, 69, 27, 27, 44, 67, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 25, 30, 25, 25, 25, 25, 25, 25, 26, 27, 26, 29, 73, 29, 29, 73, 29, 29, 43, 73, 43, 43, 43, 43, 71, 71, 73, 71, 71, 71, 71, 71, 7, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73 } ; static const flex_int16_t yy_chk[203] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 83, 5, 82, 3, 4, 6, 9, 9, 15, 3, 4, 5, 5, 10, 10, 6, 6, 24, 24, 81, 15, 19, 19, 80, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 23, 23, 71, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 28, 57, 62, 67, 60, 68, 28, 58, 69, 46, 67, 32, 57, 68, 69, 26, 22, 62, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 76, 18, 76, 76, 76, 76, 76, 76, 77, 12, 77, 78, 7, 78, 78, 0, 78, 78, 79, 0, 79, 79, 79, 79, 84, 84, 0, 84, 84, 84, 84, 84, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73 } ; /* Table of booleans, true if rule could match eol. */ static const flex_int32_t yy_rule_can_match_eol[39] = { 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, }; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "sheets-map.l" #line 35 "sheets-map.l" extern struct darray * sheets_map; int yylex (void); void yyerror (const char *); static void yy_include_push (char *file); static void yy_include_pop (void); /* Obstack for strings reading */ static struct obstack string_stack; /* Stack to handle included files. */ #define MAX_INCLUDE_DEPTH 10 static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; static int lineno_stack[MAX_INCLUDE_DEPTH]; static char *filename_stack[MAX_INCLUDE_DEPTH]; static int include_stack_ptr; static char *yyfilename; typedef enum { tKEY = 10, tGLOB = 11, tFILE = 12 } token_t; static char *token_val; static bool insensitive_p; static inline void obstack_hexa_grow (struct obstack *o, const char *str) { int value = 0; /* FIXME: Requires ASCII? */ while (*str) if (*str >= 'a' && *str <= 'f') value = 16 * value + *str++ - 'a' + 10; else if (*str >= 'A' && *str <= 'F') value = 16 * value + *str++ - 'A' + 10; else value = 16 * value + *str++ - '0'; obstack_1grow (o, value); } static inline void obstack_octal_grow (struct obstack *o, const char *str) { int value = *str++ - '0'; while (*str) value = 8 * value + *str++ - '0'; obstack_1grow (o, value); } #line 883 "sheets-map.c" #line 885 "sheets-map.c" #define INITIAL 0 #define STATE_GLOB 1 #define STATE_FILE 2 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( void ); int yyget_debug ( void ); void yyset_debug ( int debug_flag ); YY_EXTRA_TYPE yyget_extra ( void ); void yyset_extra ( YY_EXTRA_TYPE user_defined ); FILE *yyget_in ( void ); void yyset_in ( FILE * _in_str ); FILE *yyget_out ( void ); void yyset_out ( FILE * _out_str ); int yyget_leng ( void ); char *yyget_text ( void ); int yyget_lineno ( void ); void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( void ); #else extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT static void yyunput ( int c, char *buf_ptr ); #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( void ); #else static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } { #line 104 "sheets-map.l" #line 1107 "sheets-map.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 74 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 174 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { int yyl; for ( yyl = 0; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) yylineno++; ; } do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: YY_RULE_SETUP #line 106 "sheets-map.l" token_val = xstrndup (yytext, yyleng - 1); return tKEY; YY_BREAK case 2: YY_RULE_SETUP #line 107 "sheets-map.l" BEGIN STATE_GLOB; YY_BREAK case 3: YY_RULE_SETUP #line 108 "sheets-map.l" BEGIN STATE_FILE; YY_BREAK case 4: /* rule 4 can match eol */ YY_RULE_SETUP #line 109 "sheets-map.l" ; YY_BREAK case 5: YY_RULE_SETUP #line 110 "sheets-map.l" ; YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP #line 111 "sheets-map.l" { /* Kill the closing paren and pass the file name. */ yytext[yyleng - 1] = '\0'; yy_include_push (yytext + strlen ("include(")); } YY_BREAK case 7: YY_RULE_SETUP #line 116 "sheets-map.l" { error_at_line (1, 0, yyfilename, yylineno, _("unexpected character `%c'"), *yytext); } YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(STATE_GLOB): case YY_STATE_EOF(STATE_FILE): #line 119 "sheets-map.l" { message (msg_file, (stderr, "End of file `%s'.\n", yyfilename)); if (--include_stack_ptr < 0) yyterminate (); else yy_include_pop () ; } YY_BREAK case 8: YY_RULE_SETUP #line 128 "sheets-map.l" { /* return the string */ unsigned char *string; obstack_1grow (&string_stack, '\0'); string = (unsigned char *) obstack_finish (&string_stack); obstack_free (&string_stack, string); token_val = xstrdup (string); /* Decode the additional flags. */ insensitive_p = yytext[1] == 'i'; BEGIN INITIAL; /* Return to the regular scanning */ return tGLOB; } YY_BREAK case 9: YY_RULE_SETUP #line 143 "sheets-map.l" { obstack_octal_grow (&string_stack, yytext + 1); } YY_BREAK case 10: YY_RULE_SETUP #line 144 "sheets-map.l" { obstack_hexa_grow (&string_stack, yytext + 2); } YY_BREAK case 11: YY_RULE_SETUP #line 145 "sheets-map.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 12: YY_RULE_SETUP #line 146 "sheets-map.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 13: YY_RULE_SETUP #line 147 "sheets-map.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 14: YY_RULE_SETUP #line 148 "sheets-map.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 15: YY_RULE_SETUP #line 149 "sheets-map.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 16: YY_RULE_SETUP #line 150 "sheets-map.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 17: YY_RULE_SETUP #line 151 "sheets-map.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 18: YY_RULE_SETUP #line 152 "sheets-map.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 19: YY_RULE_SETUP #line 153 "sheets-map.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 20: YY_RULE_SETUP #line 154 "sheets-map.l" { obstack_1grow (&string_stack, yytext[1]); } YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP #line 156 "sheets-map.l" { error_at_line (1, 0, yyfilename, yylineno, /* TRANS: %s is ".." or <..> or /../ etc. */ _("end of line inside a %s"), "/../"); } YY_BREAK case 22: YY_RULE_SETUP #line 162 "sheets-map.l" { obstack_grow (&string_stack, yytext, yyleng); } YY_BREAK /* string of characters */ case 23: YY_RULE_SETUP #line 168 "sheets-map.l" { /* return the string */ unsigned char *string; obstack_1grow (&string_stack, '\0'); string = (unsigned char *) obstack_finish (&string_stack); obstack_free (&string_stack, string); token_val = xstrdup (string); /* Decode the additional flags. */ insensitive_p = yytext[1] == 'i'; BEGIN INITIAL; /* Return to the regular scanning */ return tFILE; } YY_BREAK case 24: YY_RULE_SETUP #line 183 "sheets-map.l" { obstack_octal_grow (&string_stack, yytext + 1); } YY_BREAK case 25: YY_RULE_SETUP #line 184 "sheets-map.l" { obstack_hexa_grow (&string_stack, yytext + 2); } YY_BREAK case 26: YY_RULE_SETUP #line 185 "sheets-map.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 27: YY_RULE_SETUP #line 186 "sheets-map.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 28: YY_RULE_SETUP #line 187 "sheets-map.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 29: YY_RULE_SETUP #line 188 "sheets-map.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 30: YY_RULE_SETUP #line 189 "sheets-map.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 31: YY_RULE_SETUP #line 190 "sheets-map.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 32: YY_RULE_SETUP #line 191 "sheets-map.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 33: YY_RULE_SETUP #line 192 "sheets-map.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 34: YY_RULE_SETUP #line 193 "sheets-map.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 35: YY_RULE_SETUP #line 194 "sheets-map.l" { obstack_1grow (&string_stack, yytext[1]); } YY_BREAK case 36: /* rule 36 can match eol */ YY_RULE_SETUP #line 196 "sheets-map.l" { error_at_line (1, 0, yyfilename, yylineno, _("end of line inside a %s"), "<..>"); } YY_BREAK case 37: YY_RULE_SETUP #line 201 "sheets-map.l" { obstack_grow (&string_stack, yytext, yyleng); } YY_BREAK case 38: YY_RULE_SETUP #line 205 "sheets-map.l" ECHO; YY_BREAK #line 1426 "sheets-map.c" case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { yy_state_type yy_current_state; char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 74 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; char *yy_cp = (yy_c_buf_p); YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 74 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 73); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT static void yyunput (int c, char * yy_bp ) { char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; if ( c == '\n' ){ --yylineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) yylineno++; ; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf ); yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr ) { return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg ) { fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param _line_number line number * */ void yyset_lineno (int _line_number ) { yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str ) { yyin = _in_str ; } void yyset_out (FILE * _out_str ) { yyout = _out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int _bdebug ) { yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ /* We do not touch yylineno unless the option is enabled. */ yylineno = 1; (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 205 "sheets-map.l" /*-----------------------------------------------------. | Handle the inclusion of files at the scanner level. | `-----------------------------------------------------*/ /* Switch the scanning onto FILE, coming back to YYIN later. */ static void yy_include_push (char *file) { if (include_stack_ptr >= MAX_INCLUDE_DEPTH) error (1, 0, _("too many includes")); include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; lineno_stack[include_stack_ptr] = yylineno; filename_stack[include_stack_ptr++] = yyfilename; message (msg_file, (stderr, "%s:%d: includes %s\n", yyfilename, yylineno, file)); yyfilename = file; yyin = xrfopen (yyfilename); yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE)); } /* Pop the inclusion stack and proceed. To be called on <<EOF>>.*/ static void yy_include_pop (void) { fclose (yyin); yy_delete_buffer (YY_CURRENT_BUFFER); yyfilename = filename_stack[include_stack_ptr]; yylineno = lineno_stack[include_stack_ptr]; yy_switch_to_buffer (include_stack[include_stack_ptr]); message (msg_file, (stderr, "Back to file `%s'.\n", yyfilename)); } /*----------------------. | Prepare the scanner. | `----------------------*/ /* Initialize the include stack to FILE. */ static inline void yy_open (const char *file) { yyfilename = xstrdup (file); yyin = xrfopen (yyfilename); include_stack_ptr = 0; } /* End of the scanning. */ static inline void yy_close (void) { fclose (yyin); } int yywrap (void) { return 1; } void sheets_map_load (const char *filename) { static int first_time = 1; token_t token; char *key = NULL; if (first_time) { first_time = 0; obstack_init (&string_stack); } yy_open (filename); while ((token = yylex ())) { switch (token) { case tKEY: key = token_val; break; case tGLOB: if (!key) error_at_line (1, 0, yyfilename, yylineno, _("no key defined for `%s'"), quotearg (token_val)); sheets_map_add (token_val, false, insensitive_p, key); break; case tFILE: if (!key) error_at_line (1, 0, yyfilename, yylineno, _("no key defined for `%s'"), quotearg (token_val)); sheets_map_add (token_val, true, insensitive_p, key); break; } } yy_close (); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/sheets-map.l������������������������������������������������������������������������0000644�0000000�0000000�00000017410�14445053504�012363� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%top{ /* -*- c -*- */ /* Scanner for sheets.map files. * Copyright (c) 1999-2000 Akim Demaille, Miguel Santana */ /* * This file is part of a2ps. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include <config.h> #include "main.h" #include "select.h" #include "xobstack.h" #include "xstrndup.h" } %{ extern struct darray * sheets_map; int yylex (void); void yyerror (const char *); static void yy_include_push (char *file); static void yy_include_pop (void); /* Obstack for strings reading */ static struct obstack string_stack; /* Stack to handle included files. */ #define MAX_INCLUDE_DEPTH 10 static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; static int lineno_stack[MAX_INCLUDE_DEPTH]; static char *filename_stack[MAX_INCLUDE_DEPTH]; static int include_stack_ptr; static char *yyfilename; typedef enum { tKEY = 10, tGLOB = 11, tFILE = 12 } token_t; static char *token_val; static bool insensitive_p; static inline void obstack_hexa_grow (struct obstack *o, const char *str) { int value = 0; /* FIXME: Requires ASCII? */ while (*str) if (*str >= 'a' && *str <= 'f') value = 16 * value + *str++ - 'a' + 10; else if (*str >= 'A' && *str <= 'F') value = 16 * value + *str++ - 'A' + 10; else value = 16 * value + *str++ - '0'; obstack_1grow (o, value); } static inline void obstack_octal_grow (struct obstack *o, const char *str) { int value = *str++ - '0'; while (*str) value = 8 * value + *str++ - '0'; obstack_1grow (o, value); } %} %option yylineno %option prefix="smap" %option outfile="lex.yy.c" %x STATE_GLOB %x STATE_FILE white [[:space:]]+ key [-a-zA-Z0-9_]+: comment #.* include include\([^)]+\) %% {key} token_val = xstrndup (yytext, yyleng - 1); return tKEY; \/ BEGIN STATE_GLOB; \< BEGIN STATE_FILE; {white} ; {comment} ; {include} { /* Kill the closing paren and pass the file name. */ yytext[yyleng - 1] = '\0'; yy_include_push (yytext + strlen ("include(")); } . { error_at_line (1, 0, yyfilename, yylineno, _("unexpected character `%c'"), *yytext); } <<EOF>> { message (msg_file, (stderr, "End of file `%s'.\n", yyfilename)); if (--include_stack_ptr < 0) yyterminate (); else yy_include_pop () ; } <STATE_GLOB>{ \/i? { /* return the string */ unsigned char *string; obstack_1grow (&string_stack, '\0'); string = (unsigned char *) obstack_finish (&string_stack); obstack_free (&string_stack, string); token_val = xstrdup (string); /* Decode the additional flags. */ insensitive_p = yytext[1] == 'i'; BEGIN INITIAL; /* Return to the regular scanning */ return tGLOB; } \\[0-7]{1,3} { obstack_octal_grow (&string_stack, yytext + 1); } \\x[0-9a-fA-F]{1,2} { obstack_hexa_grow (&string_stack, yytext + 2); } \\a { obstack_1grow (&string_stack, '\007'); } \\b { obstack_1grow (&string_stack, '\b'); } \\d { obstack_1grow (&string_stack, 127); } \\e { obstack_1grow (&string_stack, 27); } \\f { obstack_1grow (&string_stack, '\f'); } \\n { obstack_1grow (&string_stack, '\n'); } \\r { obstack_1grow (&string_stack, '\r'); } \\t { obstack_1grow (&string_stack, '\t'); } \\v { obstack_1grow (&string_stack, '\v'); } \\. { obstack_1grow (&string_stack, yytext[1]); } \n { error_at_line (1, 0, yyfilename, yylineno, /* TRANS: %s is ".." or <..> or /../ etc. */ _("end of line inside a %s"), "/../"); } [^\/\n\\]+ { obstack_grow (&string_stack, yytext, yyleng); } } <STATE_FILE>{ /* string of characters */ \>i? { /* return the string */ unsigned char *string; obstack_1grow (&string_stack, '\0'); string = (unsigned char *) obstack_finish (&string_stack); obstack_free (&string_stack, string); token_val = xstrdup (string); /* Decode the additional flags. */ insensitive_p = yytext[1] == 'i'; BEGIN INITIAL; /* Return to the regular scanning */ return tFILE; } \\[0-7]{1,3} { obstack_octal_grow (&string_stack, yytext + 1); } \\x[0-9a-fA-F]{1,2} { obstack_hexa_grow (&string_stack, yytext + 2); } \\a { obstack_1grow (&string_stack, '\007'); } \\b { obstack_1grow (&string_stack, '\b'); } \\d { obstack_1grow (&string_stack, 127); } \\e { obstack_1grow (&string_stack, 27); } \\f { obstack_1grow (&string_stack, '\f'); } \\n { obstack_1grow (&string_stack, '\n'); } \\r { obstack_1grow (&string_stack, '\r'); } \\t { obstack_1grow (&string_stack, '\t'); } \\v { obstack_1grow (&string_stack, '\v'); } \\. { obstack_1grow (&string_stack, yytext[1]); } \n { error_at_line (1, 0, yyfilename, yylineno, _("end of line inside a %s"), "<..>"); } [^>\n\\]+ { obstack_grow (&string_stack, yytext, yyleng); } } %% /*-----------------------------------------------------. | Handle the inclusion of files at the scanner level. | `-----------------------------------------------------*/ /* Switch the scanning onto FILE, coming back to YYIN later. */ static void yy_include_push (char *file) { if (include_stack_ptr >= MAX_INCLUDE_DEPTH) error (1, 0, _("too many includes")); include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; lineno_stack[include_stack_ptr] = yylineno; filename_stack[include_stack_ptr++] = yyfilename; message (msg_file, (stderr, "%s:%d: includes %s\n", yyfilename, yylineno, file)); yyfilename = file; yyin = xrfopen (yyfilename); yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE)); } /* Pop the inclusion stack and proceed. To be called on <<EOF>>.*/ static void yy_include_pop (void) { fclose (yyin); yy_delete_buffer (YY_CURRENT_BUFFER); yyfilename = filename_stack[include_stack_ptr]; yylineno = lineno_stack[include_stack_ptr]; yy_switch_to_buffer (include_stack[include_stack_ptr]); message (msg_file, (stderr, "Back to file `%s'.\n", yyfilename)); } /*----------------------. | Prepare the scanner. | `----------------------*/ /* Initialize the include stack to FILE. */ static inline void yy_open (const char *file) { yyfilename = xstrdup (file); yyin = xrfopen (yyfilename); include_stack_ptr = 0; } /* End of the scanning. */ static inline void yy_close (void) { fclose (yyin); } int yywrap (void) { return 1; } void sheets_map_load (const char *filename) { static int first_time = 1; token_t token; char *key = NULL; if (first_time) { first_time = 0; obstack_init (&string_stack); } yy_open (filename); while ((token = yylex ())) { switch (token) { case tKEY: key = token_val; break; case tGLOB: if (!key) error_at_line (1, 0, yyfilename, yylineno, _("no key defined for `%s'"), quotearg (token_val)); sheets_map_add (token_val, false, insensitive_p, key); break; case tFILE: if (!key) error_at_line (1, 0, yyfilename, yylineno, _("no key defined for `%s'"), quotearg (token_val)); sheets_map_add (token_val, true, insensitive_p, key); break; } } yy_close (); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������a2ps-4.15.5/src/ssheet.c����������������������������������������������������������������������������0000644�0000000�0000000�00000116467�14445053504�011613� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ssheet.c - definition of the languages style sheets Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include "a2ps.h" #include "routines.h" #include "ssheet.h" #include "pathwalk.h" #include "jobs.h" #include "message.h" #include "filtdir.h" #include "versions.h" #include "document.h" #include "metaseq.h" #include "title.h" #include "quotearg.h" /* Suffix of the style sheet files */ #define SSH_SUFFIX ".ssh" /* Separator of ancestors in mixed style sheets. */ #define MIXED_SHEET_SEP ",;+" extern a2ps_job * job; extern struct hash_table_s * style_sheets; /* Comes from regex */ extern char * re_syntax_table; /* This function is defined in sshparser.y, but I don't know * how to make it appear in a .h file */ struct style_sheet * parse_style_sheet (const char * filename); /* Computes the sum of the versions and the highest requirement * of the sheet with key in KEYS */ static inline void style_sheets_versions (struct darray * keys, int sum [4], int requirement [4]); /* return true iff OK */ static bool style_sheet_check (struct style_sheet * sheet); /* We drop in the alphabets[0] an invalid value. It allows to see if * the alphabets were defined or not, so that the default alphabets * can be set when finalizing the sheet. Note that we cannot set the * default alphabets a priori, because we need to be able to inherit * from ancestors. */ #define ALPHABET_UNDEFINED_TAG 127 #define ALPHABET_IS_UNDEFINED(_alpha_) \ ((_alpha_)[0] == ALPHABET_UNDEFINED_TAG) #define ALPHABET_UNDEFINE(_alpha_) \ ((_alpha_)[0] = ALPHABET_UNDEFINED_TAG) #define DEFAULT_ALPHA1 ((const unsigned char *) \ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_") #define DEFAULT_ALPHA2 ((const unsigned char *) \ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789") static void alphabet_self_print (unsigned char *a, FILE *s) { if (ALPHABET_IS_UNDEFINED (a)) fputs ("<undefined>\n", s); else { int c; fputc ('\"', s); for (c = 0 ; c < 256 ; c++) if (a [c]) fputc (c, s); fputs ("\"\n", s); } } #define DEFAULT_SENSITIVENESS case_insensitive struct pattern * new_pattern (char * pattern, size_t len) { struct pattern * res = XMALLOC (struct pattern); res->pattern = pattern; res->len = len; return res; } /* * The faced_string */ struct faced_string * faced_string_new (char * string, int reg_ref, struct fface_s face) { struct faced_string * res = XMALLOC (struct faced_string); res->string = string; res->reg_ref = reg_ref; res->face = face; return res; } /* * Report a faced_string */ static void faced_string_self_print (struct faced_string * faced_string, FILE * stream) { if (faced_string->string) fprintf (stream, "\"%s\": ", faced_string->string); else fprintf (stream, "\\%d: ", faced_string->reg_ref); fface_self_print (faced_string->face, stream); } /* * Replace all the No_fface's by FACE */ inline static void faced_string_set_no_face (struct faced_string * str, struct fface_s face) { if (fface_squ (str->face, No_fface)) str->face = face; } /************************************************************************/ /* The version handling */ /************************************************************************/ void style_sheet_set_version (struct style_sheet * sheet, const char * version_string) { string_to_version (version_string, sheet->version); } /* * Set the version of a2ps required for the processing of SHEET. * Return false if the requirement is higher than VERSION. */ int style_sheet_set_requirement (struct style_sheet * sheet, const char * version_string) { int a2ps_version [4]; string_to_version (version_string, sheet->requirement); string_to_version (VERSION, a2ps_version); if (version_cmp (sheet->requirement, a2ps_version) > 0) return false; return true; } /************************************************************************/ /* Rhs darray */ /************************************************************************/ /* * New rhs array */ struct darray * rhs_new (void) { struct darray * res; res = da_new ("Rhs", 2, da_geometrical, 2, (da_print_func_t) faced_string_self_print, NULL); return res; } /* * New rhs array with a single argument */ struct darray * rhs_new_single (char * string, int reg_ref, struct fface_s face) { struct darray * res; res = da_new ("Rhs", 2, da_geometrical, 2, (da_print_func_t) faced_string_self_print, NULL); da_append (res, faced_string_new (string, reg_ref, face)); return res; } /* * Replace all the No_fface's by FACE */ inline static void rhs_set_no_face (struct darray * dest, struct fface_s face) { size_t i; for (i = 0 ; i < dest->len ; i++) if (fface_squ (((struct faced_string *) dest->content [i])->face, No_fface)) ((struct faced_string *) dest->content [i])->face = face; } /* * Add a rule in the rhs array, * Don't forget to scan the string, because it may have actually * regex references in it, which must be resolved */ void rhs_add (struct darray * dest, struct faced_string * str) { da_append (dest, str); } /* * Report a rhs array */ void rhs_self_print (struct darray * rhs, FILE * stream) { size_t i; putc ('(', stream); for (i = 0 ; i < rhs->len ; i++) faced_string_self_print ((struct faced_string *) rhs->content [i], stream); putc (')', stream); } /************************************************************************/ /* P-rules */ /************************************************************************/ /* * Dealing with the rules and operators */ inline static struct rule * rule_new_internal_word (char * word, struct darray * rhs) { struct rule * res = XMALLOC (struct rule); res->word = word; res->regex = NULL; res->rhs = rhs; return res; } /* * Dealing with the rules and operators */ inline static struct rule * rule_new_internal_regexp (struct pattern *pattern, char *regexp, size_t regexp_len, struct darray *rhs, const char *filename, size_t line) { struct rule *res = XMALLOC (struct rule); const char *error_msg; /* This is a regular expression. We want to keep the original * pattern to ease the debugging of a style sheet */ res->word = pattern->pattern; /* Build the regex structure, and compile the pattern */ res->regex = XMALLOC (struct re_pattern_buffer); res->regex->translate = NULL; res->regex->fastmap = NULL; res->regex->buffer = NULL; res->regex->allocated = 0; error_msg = re_compile_pattern (regexp, regexp_len, res->regex); /* The pattern is nul terminated, no fear to have */ if (error_msg) error_at_line (1, 0, filename, (unsigned) line, _("cannot compile regular expression `%s': %s"), regexp, error_msg); res->rhs = rhs; return res; } /* * Dealing with the rules and operators */ struct rule * rule_new (char * word, struct pattern * pattern, struct darray * rhs, const char *filename, size_t line) { if (pattern) return rule_new_internal_regexp (pattern, pattern->pattern, pattern->len, rhs, filename, line); else return rule_new_internal_word (word, rhs); } /*-------------------------------------------------------------------. | Dealing with the rules and operators. This is pretty much the | | same as the previous case, but the difference is that the regexp | | must be built appending a `\\b' at the end, to make sure that, for | | instance, as a keyword matcher `/c*f/' does not match `ccfe': the | | keyword is not separated. | `-------------------------------------------------------------------*/ struct rule * keyword_rule_new (char * word, struct pattern * pattern, struct darray * rhs, const char *filename, size_t line) { size_t pattern_len = 0; char * pattern_to_compile = NULL; if (pattern) { pattern_len = pattern->len + strlen ("\\b()\\b"); pattern_to_compile = ALLOCA (char, pattern_len + 1); sprintf (pattern_to_compile, "\\b(%s)\\b", pattern->pattern); return rule_new_internal_regexp (pattern, pattern_to_compile, pattern_len, rhs, filename, line); } else return rule_new_internal_word (word, rhs); } /* * Compare two rules. * Note: they should be string-rules, not regex-rule */ static int rule_cmp (struct rule * k1, struct rule * k2) { return strcmp (k1->word, k2->word); } static void rule_self_print (struct rule * rule, FILE * stream) { if (rule->regex) fprintf (stream, "/%s/ -> ", rule->word); else fprintf (stream, "\"%s\" -> ", rule->word); rhs_self_print (rule->rhs, stream); } /* * Replace all the No_fface's that may be in the array of * rules, to FACE */ static inline void rule_set_no_face (struct rule * rule, struct fface_s face) { rhs_set_no_face (rule->rhs, face); } static void rules_set_no_faces (struct darray * arr, struct fface_s face) { size_t i; for (i = 0 ; i < arr->len ; i++) rule_set_no_face (((struct rule *) arr->content[i]), face); } /* * `words' are a specialization of darray, to capture the fact * that it is faster to look for a prefix of a string taking * advantage to know that it can only be in the interval * of candidates that start with the same first letter * */ struct words * words_new (/* Regular darray parameters */ const char * name_strings, const char * name_regexps, size_t size, size_t increment) { int c; struct words * res = XMALLOC (struct words); /* Initialize the underlying darray of strings */ res->strings = da_new (name_strings, size, da_linear, increment, (da_print_func_t) rule_self_print, (da_cmp_func_t) rule_cmp); /* Initialize the underlying darray of regexps */ res->regexps = da_new (name_regexps, size, da_linear, increment, (da_print_func_t) rule_self_print, (da_cmp_func_t) NULL); /* Set min and max intervals to void values */ for (c = 0 ; c < 256 ; c ++) res->min[c] = res->max[c] = NULL; return res; } static void words_self_print (struct words * words, FILE * stream) { if (words->regexps->len) da_self_print (words->regexps, stream); if (words->strings->len) da_self_print (words->strings, stream); } void words_add_string (struct words * words, struct rule * rule) { da_append (words->strings, rule); } void words_add_regex (struct words * words, struct rule * rule) { da_append (words->regexps, rule); } void words_set_no_face (struct words * words, struct fface_s face) { rules_set_no_faces (words->strings, face); rules_set_no_faces (words->regexps, face); } /* * Add the content of NEW in WORDS. * If in WORDS there is yet a rule with the same string matcher * than in NEW, then the one of NEW is the winner * No special care is made for the regex matcher * NEW is destroyed. */ void words_merge_rules_unique (struct words * words, struct words * new) { /* Select those that are regexps */ da_concat (words->regexps, new->regexps); /* Include the strings */ da_qsort (new->strings); da_merge (words->strings, new->strings, da_2_wins); } /* * Finish setting up the keywords recognition mechanism */ static void words_finalize (struct words * list) { size_t i; struct rule ** content; /* Sort in alphabetical order */ da_qsort (list->strings); /* Build two arrays which contains for each letter, its first * and last occurence index in (*DEST) array */ content = (struct rule **) list->strings->content; for (i = 0 ; i < list->strings->len ; i++) { if (list->min [(unsigned char) content[i]->word[0]] == NULL) list->min [(unsigned char) content[i]->word[0]] = content + i; list->max [(unsigned char) content[i]->word[0]] = content + i; } } /************************************************************************/ /* Handling the ancestors of a style sheet */ /************************************************************************/ static struct darray * ancestors_new (void) { return da_new ("Ancestors", 2, da_linear, 2, (da_print_func_t) da_str_print, NULL); } static void ancestors_finalize (struct style_sheet * sheet) { int i; struct style_sheet * ancestor = NULL; if (sheet->ancestors->len == 0) return; /* No inheritance */ /* The string defined rules must be read in order, so that the last * definition overwrites the first (and not the converse) */ for (i = 0 ; i < (int) sheet->ancestors->len ; i++) { ancestor = get_style_sheet ((char *) sheet->ancestors->content [i]); /* It is possible that the ancestors is not available */ if (!ancestor) continue; /* Inherit from their string keywords. The keywords we already have are the oldest, hence the one to keep. This is why da_1_wins. */ da_merge (sheet->keywords->strings, ancestor->keywords->strings, da_1_wins); /* Inherit from their string operators */ da_merge (sheet->operators->strings, ancestor->operators->strings, da_1_wins); } /* We want to inherit from the _last_ alphabets if it has not been defined in this sheet. The problem is when there are several ancestors, and some are missing. To maximize the chance to get something defined last, we drop the tests for alphabets and sensitiveness in the backward loop. The cost is low (in general there are few ancestors), and ensures that the last existing (not the last required) ancestor defines the syntactic definitions */ for (i = (int) sheet->ancestors->len - 1; i >= 0 ; i--) { ancestor = get_style_sheet ((char *) sheet->ancestors->content [i]); if (!ancestor) continue; /* Inherit of the _last_ alphabets if it has not been defined in * this sheet. */ if (ALPHABET_IS_UNDEFINED (sheet->alpha1)) memcpy (sheet->alpha1, ancestor->alpha1, sizeof (unsigned char) * 256); if (ALPHABET_IS_UNDEFINED (sheet->alpha2)) memcpy (sheet->alpha2, ancestor->alpha2, sizeof (unsigned char) * 256); /* Inherit of the _last_ case sensitivity */ if (sheet->sensitiveness == case_undefined) sheet->sensitiveness = ancestor->sensitiveness; /* Inherit from their regex keywords */ da_prefix (sheet->keywords->regexps, ancestor->keywords->regexps); /* Inherit from their regex operators */ da_prefix (sheet->operators->regexps, ancestor->operators->regexps); /* Inherit from their sequences */ /* They must be read in reverse order */ da_prefix (sheet->sequences, ancestor->sequences); } } /************************************************************************/ /* Creating, loading a style sheet */ /************************************************************************/ /* * Create a sequence */ struct sequence * sequence_new (struct rule * Open, struct fface_s in_face, struct words * Close, struct words * exceptions) { struct sequence * res = XMALLOC (struct sequence); /* Make sure to set the face of those with No_fface */ rule_set_no_face (Open, in_face); res->open = Open; res->face = in_face; words_set_no_face (exceptions, in_face); words_finalize (exceptions); res->exceptions = exceptions; words_set_no_face (Close, in_face); words_finalize (Close); res->close = Close; return res; } /* * Build the usual C's string and char with their escapes */ #define C_add_exception(_excep_) \ words_add_string (res, \ rule_new (xstrdup (_excep_), NULL, \ rhs_new_single (xstrdup (_excep_), 0, String_fface),\ __FILE__, __LINE__)); static struct words * new_C_exceptions (void) { struct words * res; res = words_new ("C usual exceptions: strings", "C usual exceptions: regexps", 3, 3); C_add_exception ("\\\'"); C_add_exception ("\\\\"); C_add_exception ("\\\""); words_finalize (res); return res; } struct sequence * new_C_string_sequence (const char * delimitor) { struct sequence * res = XMALLOC (struct sequence); res->open = rule_new (xstrdup (delimitor), NULL, rhs_new_single (NULL, 0, Plain_fface), __FILE__, __LINE__); res->face = String_fface; res->exceptions = new_C_exceptions (); res->close = words_new ("C Close: strings", "C Close: regex", 5, 5); words_add_string (res->close, rule_new (xstrdup (delimitor), NULL, rhs_new_single (NULL, 0, Plain_fface), __FILE__, __LINE__)); words_finalize (res->close); return res; } void sequence_self_print (struct sequence * tmp, FILE * stream) { rule_self_print (tmp->open, stream); fputs (" ->", stream); fface_self_print (tmp->face, stream); fputs (":\n", stream); words_self_print (tmp->exceptions, stream); words_self_print (tmp->close, stream); } /************************************************************************/ /* Creating, loading a style sheet */ /************************************************************************/ /* * Dealing with the style sheets */ struct style_sheet * new_style_sheet (const char * name) { struct style_sheet * res = XMALLOC (struct style_sheet); res->name = name; res->author = NULL; version_set_to_null (res->version); res->documentation = NULL; version_set_to_null (res->requirement); res->ancestors = ancestors_new (); res->sensitiveness = case_undefined; ALPHABET_UNDEFINE (res->alpha1); ALPHABET_UNDEFINE (res->alpha2); res->keywords = words_new ("Keywords: Strings", "Keywords: Regexps", 100, 100); res->operators = words_new ("Operators: Strings", "Operators: Regexps", 100, 100); res->sequences = da_new ("Sequences", 100, da_linear, 100, (da_print_func_t) sequence_self_print, NULL); return res; } /*---------------------------------------------------------. | Build a style sheet which is only defined by ancestors. | `---------------------------------------------------------*/ static char * style_sheet_mixed_new (const char * ancestors) { struct style_sheet *sheet, *ancestor; char *ancestor_key, *key, *cp; char *ancestors_keys; struct darray *ancestors_array; /* It cannot be longer than ancestors_keys. */ key = ALLOCA (char, strlen (ancestors) + 1); astrcpy (ancestors_keys, ancestors); /* Create the darray of ancestors keys, and build the final key. */ ancestors_array = ancestors_new (); ancestor_key = strtok (ancestors_keys, MIXED_SHEET_SEP); da_append (ancestors_array, ancestor_key); ancestor = get_style_sheet (ancestor_key); cp = stpcpy (key, ancestor->key); while ((ancestor_key = strtok (NULL, MIXED_SHEET_SEP))) { da_append (ancestors_array, ancestor_key); ancestor = get_style_sheet (ancestor_key); *cp++ =','; cp = stpcpy (cp, ancestor->key); } *cp = '\0'; key = xstrdup (key); /* Create the style sheet. */ message (msg_sheet, (stderr, "Creating a mixed style sheet \"%s\"\n", key)); /* Its name is its key. */ sheet = new_style_sheet (key); sheet->key = strdup (key); da_concat (sheet->ancestors, ancestors_array); style_sheet_finalize (sheet); return key; } /*-----------------------------------------------------------------. | Once a style sheet has been read, make it usable (sorts etc.). | | | | NOTE: It must _not_ be called from the parser, since it may call | | another time the parser, in case one of the ancestors are not | | known. | `-----------------------------------------------------------------*/ void style_sheet_finalize (struct style_sheet * sheet) { message (msg_sheet, (stderr, "Finalizing style sheet \"%s\" (%s)\n", sheet->name, sheet->key)); ancestors_finalize (sheet); /* Ensure a default alphabet */ if (ALPHABET_IS_UNDEFINED (sheet->alpha1)) string_to_array (sheet->alpha1, DEFAULT_ALPHA1); if (ALPHABET_IS_UNDEFINED (sheet->alpha2)) string_to_array (sheet->alpha2, DEFAULT_ALPHA2); /* Ensure a default sensitivity */ if (sheet->sensitiveness == case_undefined) sheet->sensitiveness = DEFAULT_SENSITIVENESS; words_finalize (sheet->keywords); words_finalize (sheet->operators); if (msg_test (msg_sheet)) { fprintf (stderr, "---------- After Finalization of %s\n", sheet->key); style_sheet_self_print (sheet, stderr); message (msg_sheet, (stderr, "Checking coherence of \"%s\" (%s)\n", sheet->name, sheet->key)); if (style_sheet_check (sheet)) message (msg_sheet, (stderr, "\"%s\" (%s) is sane.\n", sheet->name, sheet->key)); else message (msg_sheet, (stderr, "\"%s\" (%s) is corrupted.\n", sheet->name, sheet->key)); fprintf (stderr, "---------- End of Finalization of %s\n", sheet->key); } /* Put it in the sheets' table. */ hash_insert (style_sheets, sheet); } /* * Loading a style sheet either looking for its path * thanks to its key, or directly from its path. */ static struct style_sheet * load_style_sheet (const char * pseudo_key) { struct style_sheet * res; /* Is the key a real key, or a path? */ if (strsuffix (pseudo_key, SSH_SUFFIX)) { /* This style sheet has to have its path as key. This is used to ease to allow specifying a style sheet by its real path, instead of allowing key based file search. It is also used to check that an ssh file is OK, from a2ps-mode in emacs.*/ res = parse_style_sheet (pseudo_key); } else { /* This is the regular process: find the file */ char * path = pw_find_file (job->common.path, pseudo_key, SSH_SUFFIX); if (!path) { char *file; astrcat2 (file, pseudo_key, SSH_SUFFIX); error (0, 0, _("cannot find file `%s'"), quotearg (file)); return NULL; } res = parse_style_sheet (path); } /* Now, finalize it, and store it in the hash tab */ res->key = strdup (pseudo_key); style_sheet_finalize (res); return res; } /************************************************************************/ /* Reporting information about the style sheets */ /************************************************************************/ /* Compare the names of two style sheets */ static int sheet_name_cmp (const char * key1, const char * key2) { return strcasecmp ((const char *) get_style_sheet (key1) -> name, (const char *) get_style_sheet (key2) -> name); } /* * Report everything (used in -v5 at end of parsing) */ void style_sheet_self_print (struct style_sheet * sheet, FILE * stream) { fprintf (stream, "Style sheet \"%s\" (%s), version ", sheet->name, sheet->key); version_self_print (sheet->version, stream); putc ('\n', stream); if (!IS_EMPTY (sheet->author)) fprintf (stream, "Written by %s\n", sheet->author); if (sheet->ancestors->len > 0) { size_t i; fprintf (stream, "It inherits from: "); for (i = 0 ; i < sheet->ancestors->len ; i++) fprintf (stream, "%s%s", i ? ", " : "", (char *) sheet->ancestors->content [i]); fputs (".\n", stream); } fprintf (stream, "Case %ssensitive\n", sheet->sensitiveness == case_insensitive ? "in" : ""); /* Alphabets */ fputs ("First alphabet is ", stream); alphabet_self_print (sheet->alpha1, stream); fputs ("Second alphabet is ", stream); alphabet_self_print (sheet->alpha2, stream); words_self_print (sheet->keywords, stream); words_self_print (sheet->operators, stream); if (!da_is_empty (sheet->sequences)) da_self_print (sheet->sequences, stream); } /* * Print a short signature (i.e., name, author etc.) */ static void style_sheet_print_signature (FILE * stream, struct style_sheet * sheet) { size_t i, title_bar_len; if (!version_null_p (sheet->version)) { title_bar_len = (strlen (" (.ssh version )") + strlen (sheet->name) + strlen (sheet->key) + version_length (sheet->version)); fprintf (stream, "%s (%s.ssh version ", sheet->name, sheet->key); version_self_print (sheet->version, stream); fputs (")\n", stream); } else { title_bar_len = (strlen (" (.ssh)") + strlen (sheet->name) + strlen (sheet->key)); fprintf (stream, "%s (%s.ssh)\n", sheet->name, sheet->key); } for (i = 0 ; i < title_bar_len ; i++) putc ('-', stream); putc ('\n', stream); authors_print_plain (sheet->author, stream, "Written by "); documentation_print_plain (sheet->documentation, "%s\n", stream); fputs ("\n", stream); } /* * List the style sheet names (for option -E) */ void list_style_sheets_short (FILE * stream) { fputs (_("Known Style Sheets"), stream); putc ('\n', stream); pw_lister_on_suffix (stream, job->common.path, SSH_SUFFIX); } /* * List the style sheets */ void list_style_sheets_long (FILE * stream) { struct style_sheet * sheet; struct darray * entries; size_t i; entries = pw_glob_on_suffix (job->common.path, SSH_SUFFIX); /* Sort them by name (not key) */ entries->cmp = (da_cmp_func_t) sheet_name_cmp; da_qsort (entries); title (stream, '=', true, _("Known Style Sheets")); putc ('\n', stream); for (i = 0 ; i < entries->len ; i++) { sheet = get_style_sheet ((char *) entries->content[i]); style_sheet_print_signature (stream, sheet); } } /************************************************************************/ /* Report in HTML format */ /************************************************************************/ /* * Print a short signature (i.e., name, author etc.) * In html format */ static void style_sheet_html_print_signature (FILE * stream, struct style_sheet * sheet) { if (version_null_p (sheet->version)) fprintf (stream, "<li><p><strong><a href=\"%s.ssh\" name=\"%s\">%s</a></strong>.</p>\n", sheet->key, sheet->key, sheet->name); else { fprintf (stream, "<li><p><strong><a href=\"%s.ssh\" name=\"%s\">%s</a></strong> version ", sheet->key, sheet->key, sheet->name); version_self_print (sheet->version, stream); fputs (".</p>\n", stream); } if (!IS_EMPTY(sheet->author) || !version_null_p(sheet->requirement) || (sheet->ancestors->len > 0)) { fputs ("<p>", stream); authors_print_html (sheet->author, stream, "Written by "); if (!version_null_p (sheet->requirement)) { fputs ("It requires a2ps version ", stream); version_self_print (sheet->requirement, stream); fputs (".\n", stream); } if (sheet->ancestors->len > 0) { size_t i; fputs ("It inherits from: ", stream); for (i = 0 ; i < sheet->ancestors->len ; i++) fprintf (stream, "%s<a href=\"#%s\">%s.ssh</a>", i ? ", " : "", (char *) sheet->ancestors->content [i], (char *) sheet->ancestors->content [i]); fputs (".\n", stream); } fputs ("</p>", stream); } documentation_print_html (sheet->documentation, "<p>%s</p>\n", stream); fputs ("</li>\n\n", stream); } /* * List the style sheets in html format * I have a conscience problem wrt this. This is made to ease * my task, but actually it has not much to do with a2ps itself :( */ void list_style_sheets_html (FILE * stream) { struct style_sheet * sheet; struct darray * entries; size_t i, rows; version_t version_index, requirement; entries = pw_glob_on_suffix (job->common.path, SSH_SUFFIX); style_sheets_versions (entries, version_index, requirement); /* Sort them by name, not key. */ entries->cmp = (da_cmp_func_t) sheet_name_cmp; da_qsort (entries); /* * The HTML header. It should definitely be taken out of here. */ fputs ((char *) expand_user_string (job, CURRENT_FILE (job), "sheets.html generation", "<html>\n\ #{html.begin.hook}\n\ <head>\n\ <title>#{html.title:-GNU a2ps language support}\n\ \n\ \n\

\n\ #{html.title.1:-GNU a2ps language support}\n\

\n\ #{html.hline:-}\n\

Current sheets.map

\n\

It is the list of rules to decide what style sheet to use.

\n"), stream); /* * The short list, presented as a table */ fputs ((char *) expand_user_string (job, CURRENT_FILE (job), "sheets.html generation", "\ #{html.hline:-}\n\

Sumary of current style sheets

\n\

There is a package which contains \ them all. Its index (sum of the style sheets version number) is \ "), stream); version_self_print (version_index, stream); fputs (", and the highest requirement is a2ps version ", stream); version_self_print (requirement, stream); fputs (". Links point to their detailed exposure.

\n", stream); /* How many rows? Let's make two columns */ rows = entries->len / 3 + 1; fputs ("\n", stream); for (i = 0 ; i < entries->len ; /* Nothing */) { fputs ("\n", stream); } fputs ("
\n", stream); /* * The real detail list */ fputs ((char *) expand_user_string (job, CURRENT_FILE (job), "sheets.html generation", "\ #{html.hline:-}\n\

Detailed list of current style sheets

\n"), stream); fputs ("Links point to their files.

\n", stream); fputs ("
    \n", stream); for (i = 0 ; i < entries->len ; i++) { sheet = get_style_sheet ((char *) entries->content[i]); style_sheet_html_print_signature (stream, sheet); } fputs ("
\n", stream); fputs ((char *) expand_user_string (job, CURRENT_FILE (job), "sheets.html generation", "\ #{html.end.hook}\n\ \n\ \n"), stream); } /************************************************************************/ /* Report in Texinfo format */ /************************************************************************/ /* * Print a short signature (i.e., name, author etc.) * In texinfo format */ static void style_sheet_texinfo_print_signature (FILE * stream, struct style_sheet * sheet) { fprintf (stream, "@deftp {Style Sheet} {%s} (@file{%s.ssh})\n", sheet->name, sheet->key); /* Report details (version numbers, ancestors...) only if * verbose mode for sheets */ if (!IS_EMPTY(sheet->author) || (msg_test (msg_sheet) && (!version_null_p (sheet->requirement) || (sheet->ancestors->len > 0)))) { authors_print_texinfo (sheet->author, stream, "Written by "); if (msg_test (msg_sheet)) { if (!version_null_p (sheet->requirement)) { fputs ("It requires @code{a2ps} version ", stream); version_self_print (sheet->requirement, stream); fputs (". \n", stream); } if (sheet->ancestors->len > 0) { size_t i; fputs ("It inherits from: ", stream); for (i = 0 ; i < sheet->ancestors->len ; i++) fprintf (stream, "%s@file{%s.ssh}", i ? ", " : "", (char *) sheet->ancestors->content [i]); fputs (". \n", stream); } } } documentation_print_texinfo (sheet->documentation, "%s\n", stream); fputs ("@end deftp\n\n", stream); } /* * List the style sheets in Texinfo format */ void list_style_sheets_texinfo (FILE * stream) { struct style_sheet * sheet; struct darray * entries; size_t i; version_t version_index, requirement; entries = pw_glob_on_suffix (job->common.path, SSH_SUFFIX); /* Sort them by name (not key) */ entries->cmp = (da_cmp_func_t) sheet_name_cmp; da_qsort (entries); style_sheets_versions (entries, version_index, requirement); /* Report details (version numbers etc.) only if verbose * mode is set for sheets */ if (msg_test (msg_sheet)) { fputs ("\ The current index (sum of all the style sheets version number) is ", stream); version_self_print (version_index, stream); fputs (" and the highest requirement is a2ps version ", stream); version_self_print (requirement, stream); fputs (".\n", stream); } for (i = 0 ; i < entries->len ; i++) { sheet = get_style_sheet ((char *) entries->content[i]); style_sheet_texinfo_print_signature (stream, sheet); } } /************************************************************************/ /* Perform some tests on the style sheets */ /************************************************************************/ /* * Check that a darray of rules is in lower case * (true for success) */ static bool check_rules_lower_case (const char * name, struct darray * rules) { size_t i; bool res = true; for (i = 0 ; i < rules->len ; i++) if (!is_strlower (((struct rule *) rules->content[i])->word)) { error (0, 0, "%s.ssh:`%s' uses upper case characters", name, ((struct rule *) rules->content[i])->word); res = false; } return res; } /* * Check that WORDS is all in lower case */ static bool check_words_lower_case (const char * name, struct words * words) { return (check_rules_lower_case (name, words->strings) && check_rules_lower_case (name, words->regexps)); } /* * Check that SEQUENCE is all in lower case */ static bool check_sequence_lower_case (const char * name, struct sequence * sequence) { bool res = true; if (!is_strlower (sequence->open->word)) { error (0, 0, "%s.ssh:`%s' uses upper case characters", name, sequence->open->word); res = false; } res &= check_words_lower_case (name, sequence->exceptions); res &= check_words_lower_case (name, sequence->close); return res; } static bool check_sequences_lower_case (const char * name, struct darray * sequences) { size_t i; bool res = true; for (i = 0 ; i < sequences->len ; i++) res &= check_sequence_lower_case (name, (struct sequence *) sequences->content [i]); return res; } /* * Check that keywords are in lower case when lang is * case insensitive (returns 0 for failure) */ static bool check_sensitivity (struct style_sheet * sheet) { bool res = true; if (sheet->sensitiveness == case_sensitive) return true; /* The language is case insensitive: there should be only * lower case rules. * I know \B is legal in the regex. But I prefer still * making the test: those who know how to use \B will have * no problems to understand that the test is wrong, not them. */ res &= check_words_lower_case (sheet->key, sheet->keywords); res &= check_words_lower_case (sheet->key, sheet->operators); res &= check_sequences_lower_case (sheet->key, sheet->sequences); return res; } static bool check_rules_doubles (const char * name, struct darray * rules) { size_t i; bool res = true; for (i = 1 ; i < rules->len ; i++) if (STREQ (((struct rule *) rules->content [i - 1])->word, ((struct rule *) rules->content [i])->word)) { res = false; error (0, 0, "%s.ssh:`%s' is defined twice", name, ((struct rule *) rules->content [i])->word); } return res; } static bool check_words_doubles (const char * name, struct words * words) { return (check_rules_doubles (name, words->strings) && check_rules_doubles (name, words->regexps)); } /* * Check that there are no doublons in the style sheets */ static bool check_doubles (struct style_sheet * sheet) { bool res = true; res &= check_words_doubles (sheet->key, sheet->keywords); res &= check_words_doubles (sheet->key, sheet->operators); return res; } /* * Return a correctness result upon SHEET * (0: failure, 1: correct) */ static bool style_sheet_check (struct style_sheet * sheet) { return check_doubles (sheet) && check_sensitivity (sheet); } /************************************************************************/ /* Handling of the hash table of */ /* the style sheets */ /************************************************************************/ /* * We want to store the yet read style sheets in an hash table */ static unsigned long sheet_hash_1 (void const *key) { return_STRING_HASH_1 (((const struct style_sheet *)key)->key); } static unsigned long sheet_hash_2 (void const *key) { return_STRING_HASH_2 (((const struct style_sheet *)key)->key); } static int sheet_hash_cmp (void const *x, void const *y) { return_STRING_COMPARE (((const struct style_sheet *)x)->key, ((const struct style_sheet *)y)->key); } /* * Create the hash table */ struct hash_table_s * new_style_sheets (void) { struct hash_table_s * res; res = XMALLOC (hash_table); hash_init (res, 8, sheet_hash_1, sheet_hash_2, sheet_hash_cmp); return res; } /* * Make sure the style sheet SHEET is in the hash table */ static void require_style_sheet (const char * key) { struct style_sheet * item; struct style_sheet token; if (STREQ (key, "plain")) return; token.key = (char *) key; item = (struct style_sheet *) hash_find_item (style_sheets, &token); if (item == NULL) { /* The style has never been seen before, then load it through a correct call to yyparse, which in turn is in charge of putting the newly read style in the hash table. Hence, look for it again. An error at this point is really an error. */ item = load_style_sheet (key); if (item == NULL) error (0, 0, _("cannot find style sheet `%s': using plain style"), key); } return; } /* * return the style sheet bearing this name * autoload it if not yet read. * If the sheet cannot be found, return NULL */ struct style_sheet * get_style_sheet (const char * key) { struct style_sheet * item; struct style_sheet token; if (STREQ (key, "plain")) return NULL; /* There is some specials magic to build on the fly mixed style sheets, for instance `-Email,sh' build a new style sheet which is only defined by: ancestors are mail, sh end ancestors. In this case the key become `mail,sh'. */ if (strpbrk (key, MIXED_SHEET_SEP)) key = style_sheet_mixed_new (key); else /* Make sure the hash table contains the corresponding style sheet */ require_style_sheet (key); token.key = (char *) key; item = (struct style_sheet *) hash_find_item (style_sheets, &token); if (!item) return NULL; /* To me, it's a horror: the syntax table is not stored in the regex * buffer. As a consequence, each time we change sheet, make sure to * update the re_syntax_table */ re_syntax_table = (char *) item->alpha1; return item; } /* * Compute the total SUM of the all the versions of the * sheets which key is in KEYS */ static inline void style_sheets_versions (struct darray * keys, int sum [4], int requirement [4]) { size_t i; struct style_sheet * sheet; version_set_to_null (sum); version_set_to_null (requirement); for (i = 0 ; i < keys->len ; i++) { sheet = get_style_sheet ((char *) keys->content[i]); version_add (sum, sheet->version); if (version_cmp (sheet->requirement, requirement) > 0) version_cpy (requirement, sheet->requirement); } } a2ps-4.15.5/src/ssheet.h0000644000000000000000000001454414445053504011611 00000000000000/* ssheet.h - definition of the languages style sheets Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _SSHEET_H_ #define _SSHEET_H_ #include "a2ps.h" #include "darray.h" #include "ffaces.h" #include "hashtab.h" #include "jobs.h" #include "regex.h" enum case_sensitiveness { case_sensitive, case_insensitive, case_undefined }; /* * Used by the scanner and parser to return a pattern, * which may enclose NUL */ struct pattern { char * pattern; size_t len; }; /* * Now, keywords, and operators share the same underlying * structure, because, though keywords don't need a SYMBOL field, * they are so close, that implementation should be the same. * This may be a sign that OO would have been appreciated :) */ struct faced_string { char * string; /* the destination string */ int reg_ref; /* there is no destination string, * but the model is the REG_REF expression * caught by the regexp (e.g. 1 for \1 */ struct fface_s face; }; /*--------------------------------------. | A rule is composed of its lhs and rhs | `--------------------------------------*/ struct rule { char *word; struct re_pattern_buffer *regex; struct darray * rhs; }; struct words { /* darrays of struct rule * */ struct darray * strings; /* those which matchers are strings */ struct darray * regexps; /* those which matchers are regexps */ struct rule ** min [256]; struct rule ** max [256]; }; struct sequence { struct rule * open; struct fface_s face; struct words * exceptions; /* Exception, i.e. \" between "" */ struct words * close; /* closing alternatives */ } ; struct style_sheet { /* index of the language (compare with command-line option) */ const char * key; /* Nice looking name of the style */ const char * name; /* Who wrote it, and when */ const char * author; int version[4]; /* What version of a2ps is required? */ int requirement[4]; /* Note describing the mode or the language */ const char * documentation; /* Does it have ancestors (i.e., this one is an extension of * its ancestors). It is a list of keys, of course */ struct darray * ancestors; /* case sensitiveness for keywords and rules */ enum case_sensitiveness sensitiveness; /* definition of the "words" (keywords and rules): * a char belonging to a first alphabet (alpha1), * and any number of chars belonging to the second (alpha2). */ unsigned char alpha1 [256]; unsigned char alpha2 [256]; /* list of keywords for this language */ struct words * keywords; /* same as keywords BUT there is no need to be preceded and followed * by not in alpha2. In other words, these are not "words" of the * alphabet, but any sequence of chars */ struct words * operators; /* darray of the sequences (strings, documentations, etc.) */ struct darray * sequences; }; /* Notes * * - global exceptions is made for languages such as tcl where, whereever the * rule appears, it must not be "understood", e.g. \" and \\ are * written directly. * * - local exception is made for ! languages such as ada where "" is the * empty string, but appearing in a string, "" denotes ". */ /* * The faced_string */ struct faced_string * faced_string_new (char * string, int reg_ref, struct fface_s fface); /* * The version numbers */ void style_sheet_set_version (struct style_sheet * sheet, const char * version_string); int style_sheet_set_requirement (struct style_sheet * sheet, const char * version_string); /* * The destinations (part of rule) */ struct darray * rhs_new (void); struct darray * rhs_new_single (char * string, int reg_ref, struct fface_s fface); void rhs_add (struct darray * dest, struct faced_string * str); void rhs_self_print (struct darray * rhs, FILE * stream); /* * Dealing with the keywords, rules and operators */ struct rule * rule_new (char * word, struct pattern * pattern, struct darray * destination, const char *filename, size_t line); struct rule * keyword_rule_new (char * word, struct pattern * pattern, struct darray * destination, const char *filename, size_t line); /* * Dealing with the sequences */ struct pattern * new_pattern (char * pattern, size_t len); struct sequence * sequence_new (struct rule * Open, struct fface_s in_face, struct words * Close, struct words * exceptions); struct sequence * new_C_string_sequence (const char * delimitor); void sequence_self_print (struct sequence * v, FILE * stream); /* * Dealing with the struct words */ struct words * words_new (const char * name_strings, const char * name_regexps, size_t size, size_t increment); void words_add_string (struct words * words, struct rule * rule); void words_add_regex (struct words * words, struct rule * rule); void words_set_no_face (struct words * words, struct fface_s face); void words_merge_rules_unique (struct words * words, struct words * new); /* * Dealing with the style sheets */ struct style_sheet * new_style_sheet (const char * name); void style_sheet_finalize (struct style_sheet * sheet); void style_sheet_self_print (struct style_sheet * sheet, FILE * stream); /* * Dealing with the hash table for style sheets */ struct hash_table_s * new_style_sheets (void); struct style_sheet * get_style_sheet (const char * name); /************************************************************************/ /* style selection */ /************************************************************************/ /* * List the style sheets */ void list_style_sheets_short (FILE * stream); void list_style_sheets_long (FILE * strea); void list_style_sheets_html (FILE * strea); void list_style_sheets_texinfo (FILE * strea); #endif /* not defined _SSHEET_H_ */ a2ps-4.15.5/src/sshread.c0000644000000000000000000003234414445053504011740 00000000000000/* sshread.c - routines of input, and formatting according to the styles Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "a2ps.h" #include "sshread.h" #include "ssheet.h" #include "routines.h" #include "buffer.h" #include "jobs.h" #include "fjobs.h" #include "psgen.h" #include "quotearg.h" /* * Use the information offered by main.c */ extern struct a2ps_job *job; /* * Shortcut to call regex upon a buffer, and store in a token */ #define buffer_match(buffer,regex,token) \ re_match (regex, \ (char *) buffer->value, (regoff_t) buffer->len, (regoff_t) buffer->curr, \ token->registers) /* * Structure in which is stored the result of a parsing */ struct token { struct re_registers *registers; struct darray *rhs; }; #define token_dest(_i_) \ ((struct faced_string *) token->rhs->content[_i_]) #define token_dest_fface(_i_) \ (token_dest(_i_)->face) #define token_dest_fflags(_i_) \ (fface_get_flags(token_dest_fface(_i_))) static inline struct token * token_new (void) { struct token *res = XMALLOC (struct token); res->registers = XMALLOC (struct re_registers); res->registers->start = XNMALLOC (30, regoff_t); res->registers->end = XNMALLOC (30, regoff_t); return res; } static inline struct darray * rhs_plain_new (void) { return rhs_new_single (NULL, 0, Plain_fface); } /* Where the token and its attributes are stored */ static struct token *token = NULL; #define token_set_registers(_start_, _len_) \ do { \ token->registers->start [0] = (regoff_t) _start_; \ token->registers->end [0] = (regoff_t) (_start_ + _len_); \ } while (0) #define token_start(_i_) \ token->registers->start [token_dest(_i_)->reg_ref] #define token_end(_i_) \ token->registers->end [token_dest(_i_)->reg_ref] static struct darray *plain_rhs = NULL; /****************************************************************/ /* pretty printing service routines */ /****************************************************************/ /* * Eat characters as long as their in the 2nd alphabet * and we are in the buffer. */ static inline void match_word (buffer_t * buffer, struct style_sheet *sheet) { size_t start = buffer->curr; do buffer->curr++; while (sheet->alpha2[(unsigned char) *(buffer->content + buffer->curr)] && !buffer_is_empty (buffer)); token->rhs = plain_rhs; token_dest (0)->face = Plain_fface; token->registers->start[0] = (regoff_t) start; token->registers->end[0] = (regoff_t) buffer->curr; } /****************************************************************/ /* lexical analysis routines */ /****************************************************************/ #define word_regexp(_i_) \ (((struct rule *) words->regexps->content[_i_])) /* * Return true if there is a element of WORDS which keywords-match * current point of BUFFER. Fill TOKEN with the matching part. */ static inline int match_keyword (buffer_t * buffer, struct words *words, unsigned char * alphabet) { struct rule **key; char *string = buffer->value + buffer->curr; int i; int res; /* First try the words */ if (words->min[(unsigned) *string]) for (key = words->max[(unsigned) *string] ; words->min[(unsigned) *string] <= key ; key--) { if (strprefix ((*key)->word, string) && !alphabet[(unsigned char) string[strlen ((*key)->word)]]) { token->rhs = (*key)->rhs; token_set_registers (buffer->curr, strlen ((*key)->word)); buffer->curr += strlen ((*key)->word); return 1; } } /* Then the regexps, in reversed order (in order to take the * _last_ definition */ for (i = (int) words->regexps->len - 1; i >= 0; i--) { res = buffer_match (buffer, word_regexp (i)->regex, token); switch (res) { case -2: fprintf (stderr, "An error occured while matching\n"); break; case -1: continue; default: token->rhs = word_regexp (i)->rhs; buffer->curr += (size_t) res; return 1; } } /* Report that nothing matches */ return 0; } /* * Return true if there is a element of WORDS which operators-match * current point of BUFFER. Fill TOKEN with the matching part. */ static int match_operator (buffer_t * buffer, struct words *words) { struct rule **key; char *string = buffer->value + buffer->curr; int i; int res; /* First the words */ if (words->min[(unsigned char) *string]) for (key = words->max[(unsigned char) *string] ; words->min[(unsigned char) *string] <= key ; key--) { if (strprefix ((*key)->word, string)) { token->rhs = (*key)->rhs; token_set_registers (buffer->curr, strlen ((*key)->word)); buffer->curr += strlen ((*key)->word); return 1; } } /* Then the regexps, in reversed order (in order to take the * _last_ definition */ for (i = (int) words->regexps->len - 1; i >= 0; i--) { res = buffer_match (buffer, word_regexp (i)->regex, token); switch (res) { case -2: fprintf (stderr, "An error occured while matching\n"); break; case -1: continue; default: token->rhs = word_regexp (i)->rhs; buffer->curr += (size_t) res; return 1; } } /* Report failure */ return 0; } /* * If buffer+*curr begins with a sequence, return that sequence. * Otherwise NULL */ #ifdef SEQ #undef SEQ #endif #define SEQ(_i_) \ ((struct sequence *) sheet->sequences->content [i]) static inline struct sequence * match_sequence (buffer_t * buffer, struct style_sheet *sheet) { int i; int res; char *string = buffer->value + buffer->curr; /* In reversed order (in order to take the _last_ definition */ for (i = (int) sheet->sequences->len - 1; i >= 0; i--) { if (SEQ (i)->open->regex) { /* The regexp patterns */ res = buffer_match (buffer, SEQ (i)->open->regex, token); switch (res) { case -2: fprintf (stderr, "An error occured while matching\n"); break; case -1: continue; default: token->rhs = SEQ (i)->open->rhs; buffer->curr += (size_t) res; return SEQ (i); } } else { /* It's a string */ if (strprefix (SEQ (i)->open->word, string)) { token_set_registers (buffer->curr, strlen (SEQ (i)->open->word)); token->rhs = SEQ (i)->open->rhs; buffer->curr += strlen (SEQ (i)->open->word); return SEQ (i); } } } return NULL; } /* * Put in token the token recognized. * The number of token read, 0 if nothing left */ static inline int ssh_get_token (buffer_t * buffer, struct style_sheet *sheet) { static int return_to_plain = false; /* NULL if not in a sequence currently */ static struct sequence *sequence = NULL; if (buffer_is_empty (buffer)) { buffer_get (buffer); /* We don't trust liba2ps for the line numbers, because * if a2ps skips some lines (e.g., --strip-level, or INVISIBLE), * liba2ps will number upon output lines, not input lines, * which is what is expected */ (CURRENT_FILE (job))->lines = buffer->line; if (buffer->len == 0) { /* end of file: reset values */ /* If this is a new file, it must not depend on the trailling * parameters of the previous file */ sequence = NULL; return_to_plain = false; return 0; } } if (return_to_plain) { return_to_plain = false; token->rhs = plain_rhs; token_dest (0)->face = Plain_fface; } if (sequence) { /* escape: not converted when in a sequence */ if (match_operator (buffer, sequence->exceptions)) return 1; /* end of sequence ? */ if (match_operator (buffer, sequence->close)) { return_to_plain = true; sequence = NULL; return 1; } /* We are in a sequence not to be closed yet. * Advance of 1 char */ token->rhs = plain_rhs; token_dest (0)->face = sequence->face; token->registers->start[0] = (regoff_t) buffer->curr++; token->registers->end[0] = (regoff_t) buffer->curr; return 1; } else { /* (not in sequence) */ if ((sequence = match_sequence (buffer, sheet))) return 1; else if (sheet->alpha1[(unsigned char) buffer->content[buffer->curr]]) { /* we are in a word since this was a char belonging to the * first alphabet */ if (match_keyword (buffer, sheet->keywords, sheet->alpha2) || match_operator (buffer, sheet->operators)) { return_to_plain = true; return 1; } else { /* since some characters may be used inside an identifier * (eg, x' = x in claire) but can also be used to open * a special sequence (eg, 'x' in claire), then we must read * the whole word, and print in. */ match_word (buffer, sheet); return 1; } } else if (match_operator (buffer, sheet->operators)) { return_to_plain = true; return 1; } } /* We did not recognize something special */ token->rhs = plain_rhs; token->registers->start[0] = (regoff_t) buffer->curr++; token->registers->end[0] = (regoff_t) buffer->curr; return 1; } #define GRAB_TAG(_tag_) \ do { \ strncat (_tag_, \ buffer->content + token_start (i), \ (unsigned) (token_end (i) - token_start (i))); \ } while (0) /* * ssh-Pretty print a file to postscript */ void ssh_print_postscript (struct a2ps_job *Job, buffer_t * buffer, struct style_sheet *sheet) { struct fface_s fface; /* To grab the encoding switching instruction */ char bufenc[512]; int grabbing_encoding = false; size_t i; *bufenc = '\0'; fface = Plain_fface; /* I must do this because of the broken handling of the registers in * regex. Until I find a way to ensure enough place in the * registers, without having to trust regex. */ if (!token) { token = token_new (); plain_rhs = rhs_plain_new (); } while (ssh_get_token (buffer, sheet) != 0) for (i = 0; i < token->rhs->len; i++) { /* Is a new face ? */ if (!fface_squ (fface, token_dest_fface (i))) { /* Reset dynamic markers */ if (token_dest_fflags (i) & ff_Tag1) *Job->tag1 = '\0'; if (token_dest_fflags (i) & ff_Tag2) *Job->tag2 = '\0'; if (token_dest_fflags (i) & ff_Tag3) *Job->tag3 = '\0'; if (token_dest_fflags (i) & ff_Tag4) *Job->tag4 = '\0'; if (grabbing_encoding && (!(token_dest_fflags (i) & ff_Encoding))) { /* Grabbing of the encoding name is completed */ struct encoding *newenc; newenc = get_encoding_by_alias (job, bufenc); /* encoding_build_faces_wx (job, newenc); */ if (!newenc) error (0, 0, _ ("unknown encoding `%s', ignored"), quotearg (bufenc)); else ps_switch_encoding (Job, newenc); *bufenc = '\0'; grabbing_encoding = false; } fface = token_dest (i)->face; } /* See if there are some information to grab */ if (token_dest (i)->string) { if (fface_get_flags (fface) & ff_Tag1) strcat (Job->tag1, token_dest (i)->string); if (fface_get_flags (fface) & ff_Tag2) strcat (Job->tag2, token_dest (i)->string); if (fface_get_flags (fface) & ff_Tag3) strcat (Job->tag3, token_dest (i)->string); if (fface_get_flags (fface) & ff_Tag4) strcat (Job->tag4, token_dest (i)->string); /* Grab the dynamic encodings */ if (fface_get_flags (fface) & ff_Encoding) { grabbing_encoding = true; strcat (bufenc, token_dest (i)->string); } } else { if (fface_get_flags (fface) & ff_Tag1) GRAB_TAG (Job->tag1); if (fface_get_flags (fface) & ff_Tag2) GRAB_TAG (Job->tag2); if (fface_get_flags (fface) & ff_Tag3) GRAB_TAG (Job->tag3); if (fface_get_flags (fface) & ff_Tag4) GRAB_TAG (Job->tag4); /* Grab the dynamic encodings */ if (fface_get_flags (fface) & ff_Encoding) { grabbing_encoding = true; GRAB_TAG (bufenc); } } /* * If not invisible, give it to liba2ps for printing. */ if (!(fface_get_flags (fface) & ff_Invisible)) { if (token_dest (i)->string) ps_print_string (Job, token_dest (i)->string, fface.face); else ps_print_buffer (Job, buffer->content, (unsigned) token_start (i), (unsigned) token_end (i), fface.face); } } } a2ps-4.15.5/src/sshread.h0000644000000000000000000000215414445053504011741 00000000000000/* sshread.h - routines of input, and formatting according to the styles Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _SSHREAD_H_ #define _SSHREAD_H_ #include "ssheet.h" #include "buffer.h" struct a2ps_job; /* * Pretty print the current file of JOB */ void ssh_print_postscript (struct a2ps_job * job, buffer_t * buffer, struct style_sheet * sheet); #endif /* not defined(_SHHREAD_H_) */ a2ps-4.15.5/src/versions.c0000644000000000000000000000547514251132535012161 00000000000000/* versions.c - handling standard version numbers Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "a2ps.h" #include "versions.h" #include "quotearg.h" #include "routines.h" /************************************************************************/ /* The version handling */ /************************************************************************/ void version_set_to_null (version_t version) { size_t n; for (n = 0 ; n < VERSION_LENGTH ; n++) version[n] = 0; } bool version_null_p (version_t version) { size_t n; for (n = 0 ; n < VERSION_LENGTH ; n++) if (version[n]) return false; return true; } int version_cmp (version_t v1, version_t v2) { int n; for (n = 0 ; n < VERSION_LENGTH ; n++) if (v1[n] < v2[n]) return -1; else if (v1[n] > v2[n]) return 1; return 0; } void version_cpy (version_t d, version_t s) { memcpy (d, s, VERSION_LENGTH * sizeof(s[0])); } void version_self_print (version_t version, FILE * stream) { if (version[2]) fprintf (stream, "%d.%d%c", version[0], version[1], version[2]); else fprintf (stream, "%d.%d", version[0], version[1]); } /* * Return the length occupied by this version number once printed */ size_t version_length (version_t version) { #define short_int_len(_i_) ((_i_) < 10 ? 1 : 2) if (version[2]) return 2U + short_int_len(version[0]) + short_int_len(version[1]) + 1U; else return 1U + short_int_len(version[0]) + short_int_len(version[1]); } void version_add (version_t v1, version_t v2) { int n; for (n = 0 ; n < VERSION_LENGTH ; n++) v1[n] += v2[n]; } /* * Valid versions numbers are: * digit.digit * digit.digitchar */ void string_to_version (const char * version_string, version_t version) { char d; switch (sscanf (version_string, "%d.%d%c", &(version[0]), &(version[1]), &d)) { case 2: version[2] = 0; break; case VERSION_LENGTH: version[2] = d - 'a' + 1; break; default: error (1, 0, _("invalid version number `%s'"), quotearg (version_string)); break; }; } a2ps-4.15.5/src/versions.h0000644000000000000000000000301114251132535012146 00000000000000/* versions.h - handling standard version numbers Copyright 1988-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef VERSIONS_H_ # define VERSIONS_H_ /* Beware that the routines are not actually ready for a meer change of VERSION_LENGTH. Changes will be needed. */ #define VERSION_LENGTH 3 typedef int version_t[VERSION_LENGTH]; void version_set_to_null (version_t version); bool version_null_p (version_t version); int version_cmp (version_t v1, version_t v2); void version_cpy (version_t d, version_t s); void version_self_print (version_t version , FILE *stream); /* Return the length occupied by this version number once printed */ size_t version_length (version_t version); void version_add (version_t v1, version_t v2); void string_to_version (const char *string, version_t version); #endif /* not defined VERSIONS_H_ */ a2ps-4.15.5/src/yy2ssh.h0000644000000000000000000000166214445053504011554 00000000000000#define yymaxdepth sshmaxdepth #define yyparse sshparse #define yylex sshlex #define yyerror ssherror #define yylval sshlval #define yychar sshchar #define yydebug sshdebug #define yypact sshpact #define yyr1 sshr1 #define yyr2 sshr2 #define yydef sshdef #define yychk sshchk #define yypgo sshpgo #define yyact sshact #define yyexca sshexca #define yyerrflag ssherrflag #define yynerrs sshnerrs #define yyps sshps #define yypv sshpv #define yys sshs #define yy_yys sshyys #define yystate sshstate #define yytmp sshtmp #define yyv sshv #define yy_yyv sshyyv #define yyval sshval #define yylloc sshlloc #define yyreds sshreds #define yytoks sshtoks #define yylhs sshyylhs #define yylen sshyylen #define yydefred sshyydefred #define yydgoto sshyydgoto #define yysindex sshyysindex #define yyrindex sshyyrindex #define yygindex sshyygindex #define yytable sshyytable #define yycheck sshyycheck #define yyname sshyyname #define yyrule sshyyrule a2ps-4.15.5/tests/0000755000000000000000000000000014445132371010570 500000000000000a2ps-4.15.5/tests/Makefile.am0000644000000000000000000000342014364241747012553 00000000000000# Process this file with automake to create Makefile.in # # Copyright 1997-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # TESTS = \ align-1.tst \ backup.tst \ contrib.tst \ cut.tst \ deleg-1.tst \ deleg-2.tst \ encoding.tst \ guess-1.tst \ guess-2.tst \ inout-1.tst \ inout-2.tst \ inout-3.tst \ options-1.tst \ pages-1.tst \ pages-2.tst \ printers.tst \ prolog-1.tst \ prolog-2.tst \ strip.tst \ styles.tst \ toc.tst \ usropt-1.tst \ usropt-2.tst EXTRA_DIST = $(TESTS) a2ps-tst.cfg.in defs.in \ view-diff ps-ref gps-ref tstfiles CLEANFILES = ps-chk/* gps-chk/* ps-diff/* gps-diff/* \ style.log defs MAINTAINERCLEANFILES = ps-ref/* gps-ref/* all-local: defs a2ps-tst.cfg a2ps-tst.cfg: a2ps-tst.cfg.in top_srcdir=`cd $(top_srcdir) && pwd`; \ top_builddir=`cd $(top_builddir) && pwd`; \ sed -e "s#@libpath@#$$top_builddir/etc:$$top_srcdir/ogonkify:$$top_builddir/ogonkify:$$top_srcdir/sheets:$$top_srcdir/ps:$$top_srcdir/encoding:$$top_srcdir/afm:$$top_builddir/afm:$$top_srcdir/fonts:$$top_srcdir/ppd:$(PSFONT_PATH)#g;s#@file_link@#@FILE_LINK@#g" \ $(srcdir)/a2ps-tst.cfg.in > a2ps-tst.cfg DISTCLEANFILES = a2ps-tst.cfg TESTS_ENVIRONMENT= top_builddir=`cd $(top_builddir) && pwd` a2ps-4.15.5/tests/Makefile.in0000644000000000000000000023041714445132055012563 00000000000000# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Process this file with automake to create Makefile.in # # Copyright 1997-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/__inline.m4 $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ $(top_srcdir)/m4/dirfd.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \ $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.m4 \ $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ $(top_srcdir)/m4/fdopendir.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/filenamecat.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fstatat.m4 \ $(top_srcdir)/m4/fullpath.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/gethostname.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libpaper.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/nocrash.m4 \ $(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \ $(top_srcdir)/m4/open-cloexec.m4 \ $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/readdir.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \ $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/save-cwd.m4 \ $(top_srcdir)/m4/setlocale_null.m4 $(top_srcdir)/m4/sig2str.m4 \ $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpncpy.m4 $(top_srcdir)/m4/strchrnul.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_types_h.m4 \ $(top_srcdir)/m4/sys_uio_h.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd-safer.m4 \ $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/version-etc.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \ $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = defs CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__extra_recursive_targets = loc-recursive am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/defs.in \ $(top_srcdir)/build-aux/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDW_GC_CFLAGS = @BDW_GC_CFLAGS@ BDW_GC_LIBS = @BDW_GC_LIBS@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLOC = @CLOC@ CLOC_OPTS = @CLOC_OPTS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_dvips = @COM_dvips@ COM_ghostview = @COM_ghostview@ COM_grog = @COM_grog@ COM_gv = @COM_gv@ COM_gzip = @COM_gzip@ COM_html2ps = @COM_html2ps@ COM_latex = @COM_latex@ COM_makeinfo = @COM_makeinfo@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CROSS_COMPILING = @CROSS_COMPILING@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENCODING = @ENCODING@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ ERROR_H = @ERROR_H@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FILECMD = @FILECMD@ FILE_LINK = @FILE_LINK@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ GL_GNULIB_ALPHASORT = @GL_GNULIB_ALPHASORT@ GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ GL_GNULIB_BIND = @GL_GNULIB_BIND@ GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_CLOSEDIR = @GL_GNULIB_CLOSEDIR@ GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DIRFD = @GL_GNULIB_DIRFD@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FDOPENDIR = @GL_GNULIB_FDOPENDIR@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OPENDIR = @GL_GNULIB_OPENDIR@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READDIR = @GL_GNULIB_READDIR@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ GL_GNULIB_RECV = @GL_GNULIB_RECV@ GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_REWINDDIR = @GL_GNULIB_REWINDDIR@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ GL_GNULIB_SCANDIR = @GL_GNULIB_SCANDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ GL_GNULIB_SEND = @GL_GNULIB_SEND@ GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNU_PACKAGE = @GNU_PACKAGE@ GREP = @GREP@ HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_GETW = @HAVE_DECL_GETW@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DIRENT_H = @HAVE_DIRENT_H@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_ERROR = @HAVE_ERROR@ HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ HAVE_ERROR_H = @HAVE_ERROR_H@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXABS = @HAVE_IMAXABS@ HAVE_IMAXDIV = @HAVE_IMAXDIV@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READDIR = @HAVE_READDIR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISYSTEM = @ISYSTEM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBPMULTITHREAD = @LIBPMULTITHREAD@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTOOL = @LIBTOOL@ LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ LIB_MBRTOWC = @LIB_MBRTOWC@ LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MBRTOWC_LIB = @MBRTOWC_LIB@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_ERROR_H = @NEXT_ERROR_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PSFONT_PATH = @PSFONT_PATH@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DIRFD = @REPLACE_DIRFD@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUP3 = @REPLACE_DUP3@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_ERROR = @REPLACE_ERROR@ REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_IMAXABS = @REPLACE_IMAXABS@ REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_PIPE2 = @REPLACE_PIPE2@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPCPY = @REPLACE_STPCPY@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ REPLACE_WRITE = @REPLACE_WRITE@ REPLACE__EXIT = @REPLACE__EXIT@ SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ SED = @SED@ SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDCKDINT_H = @STDCKDINT_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ grog = @grog@ gv = @gv@ gzip = @gzip@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ html2ps = @html2ps@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ latex = @latex@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TESTS = \ align-1.tst \ backup.tst \ contrib.tst \ cut.tst \ deleg-1.tst \ deleg-2.tst \ encoding.tst \ guess-1.tst \ guess-2.tst \ inout-1.tst \ inout-2.tst \ inout-3.tst \ options-1.tst \ pages-1.tst \ pages-2.tst \ printers.tst \ prolog-1.tst \ prolog-2.tst \ strip.tst \ styles.tst \ toc.tst \ usropt-1.tst \ usropt-2.tst EXTRA_DIST = $(TESTS) a2ps-tst.cfg.in defs.in \ view-diff ps-ref gps-ref tstfiles CLEANFILES = ps-chk/* gps-chk/* ps-diff/* gps-diff/* \ style.log defs MAINTAINERCLEANFILES = ps-ref/* gps-ref/* DISTCLEANFILES = a2ps-tst.cfg TESTS_ENVIRONMENT = top_builddir=`cd $(top_builddir) && pwd` all: all-am .SUFFIXES: .SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): defs: $(top_builddir)/config.status $(srcdir)/defs.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs loc-local: tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? align-1.tst.log: align-1.tst @p='align-1.tst'; \ b='align-1.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) backup.tst.log: backup.tst @p='backup.tst'; \ b='backup.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) contrib.tst.log: contrib.tst @p='contrib.tst'; \ b='contrib.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) cut.tst.log: cut.tst @p='cut.tst'; \ b='cut.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) deleg-1.tst.log: deleg-1.tst @p='deleg-1.tst'; \ b='deleg-1.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) deleg-2.tst.log: deleg-2.tst @p='deleg-2.tst'; \ b='deleg-2.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) encoding.tst.log: encoding.tst @p='encoding.tst'; \ b='encoding.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) guess-1.tst.log: guess-1.tst @p='guess-1.tst'; \ b='guess-1.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) guess-2.tst.log: guess-2.tst @p='guess-2.tst'; \ b='guess-2.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) inout-1.tst.log: inout-1.tst @p='inout-1.tst'; \ b='inout-1.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) inout-2.tst.log: inout-2.tst @p='inout-2.tst'; \ b='inout-2.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) inout-3.tst.log: inout-3.tst @p='inout-3.tst'; \ b='inout-3.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) options-1.tst.log: options-1.tst @p='options-1.tst'; \ b='options-1.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) pages-1.tst.log: pages-1.tst @p='pages-1.tst'; \ b='pages-1.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) pages-2.tst.log: pages-2.tst @p='pages-2.tst'; \ b='pages-2.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) printers.tst.log: printers.tst @p='printers.tst'; \ b='printers.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) prolog-1.tst.log: prolog-1.tst @p='prolog-1.tst'; \ b='prolog-1.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) prolog-2.tst.log: prolog-2.tst @p='prolog-2.tst'; \ b='prolog-2.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) strip.tst.log: strip.tst @p='strip.tst'; \ b='strip.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) styles.tst.log: styles.tst @p='styles.tst'; \ b='styles.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) toc.tst.log: toc.tst @p='toc.tst'; \ b='toc.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) usropt-1.tst.log: usropt-1.tst @p='usropt-1.tst'; \ b='usropt-1.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) usropt-2.tst.log: usropt-2.tst @p='usropt-2.tst'; \ b='usropt-2.tst'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: loc: loc-am loc-am: loc-local maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: all all-am all-local check check-TESTS check-am clean \ clean-generic clean-libtool cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs loc-am loc-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am recheck tags-am \ uninstall uninstall-am .PRECIOUS: Makefile all-local: defs a2ps-tst.cfg a2ps-tst.cfg: a2ps-tst.cfg.in top_srcdir=`cd $(top_srcdir) && pwd`; \ top_builddir=`cd $(top_builddir) && pwd`; \ sed -e "s#@libpath@#$$top_builddir/etc:$$top_srcdir/ogonkify:$$top_builddir/ogonkify:$$top_srcdir/sheets:$$top_srcdir/ps:$$top_srcdir/encoding:$$top_srcdir/afm:$$top_builddir/afm:$$top_srcdir/fonts:$$top_srcdir/ppd:$(PSFONT_PATH)#g;s#@file_link@#@FILE_LINK@#g" \ $(srcdir)/a2ps-tst.cfg.in > a2ps-tst.cfg # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: a2ps-4.15.5/tests/a2ps-tst.cfg.in0000644000000000000000000000670714415614511013263 00000000000000# Flags for testing a2ps -*- Makefile -*- ######################################################################## # Environment for the tests ######################################################################## # The path to the files _in the package_, so that a2ps does _not_ read # the installed files. LibraryPath: @libpath@ # Defined by sed FileCommand: @file_link@ ######################################################################## # Options for the tests ######################################################################## # Medium used for the tests Options: --medium=A4 # Encoding is ISO Latin 1 Options: --encoding=latin1 # PostScript stuff Options: -1 --portrait --no-page-prefeed --sides=1 # Output to stdout Options: --output=- # Be quiet Options: --quiet # No backups Options: --version-control=none # No delegations Options: --delegate=no # Set titles that cannot vary from path to path # Don't forget to check the tags (hence, use $t1 and $t2) Options: --left-title='#?2||%s.|' Options: --right-title='#?2|$t2|right|' Options: --center-title='#?1|$t1|$n|' Options: --footer='%A' Options: --left-footer=$s. Options: --right-footer=Right Options: --header='The room for the header' Options: --underlay='Test Files' # It's a weird idea to print the results of the test, so let's make it # easy for people displaying the results. Options: --prologue=color ######################################################################## # Variables for the tests ######################################################################## # A macro sequence for table of content Variable: toc_test \\Keyword{Table of Content}\n\ #-1!f\ |$2# \\keyword{$-.20n} sheets $3s< to $3s> ($2s#) pages $3p<-$3p> $4l# lines\n||\ \\Keyword{End of toc}\n # Remove any information from the PS comments that may vary Variable: sedout \ sed 's/^%%%%Creator.*/%%%%Creator: a version of a2ps/g;s/^%%%%CreationDate:.*/%%%%CreationDate: once upon a time/g;s!^/td (.*) def!/td (today) def!g;s/^%%%%DocumentMedia: a4/%%%%DocumentMedia: A4/' # Keep only the core of the document (not the prolog). Send to stdout. Variable: awkout \ awk "/^%%%%Page:/, /^%%%%EOF$$/" # Keep only the prolog of the document. Send to stdout. Variable: awkin \ awk "/^%%!/, /^%%%%EndSetup/" # Run the tests anynonously Variable: user.name Somebody Variable: user.host a machine ######################################################################## # Printers for the tests ######################################################################## # A printer that sed's away some details of the DSC which may # make look different identical PS programs. UnknownPrinter: | #{sedout} > #o Printer: prolog-only | #{awkin} Printer: awkin | #{awkin} | #{sedout} Printer: awkout | #{awkout} Printer: sedout | #{sedout} Printer: chk_dir | #{sedout} > ${CHK_DIR}/$N.ps Printer: void > /dev/null Printer: display | cat > #f0 && gv #f0 Printer: bak > #{bak.file} ######################################################################## # Delegations for the tests ######################################################################## # A fake delegation for deleg*.tst Delegation: Testing test_delegation:ps echo OK ######################################################################## # UserOptions for the tests ######################################################################## # A simple user option UserOption: useroption-test --guess # The Page Label to use for the tests: the range of virtuals PageLabelFormat: #!s|$p-|,| a2ps-4.15.5/tests/align-1.tst0000754000000000000000000000155214233473143012501 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps handles correctly --file-align # with non delegated files. : ${SRCDIR=.} . $SRCDIR/defs || exit 1 # Where is the test file TEST_FILE=$TST_DIR/3-pages.txt # Initialize the success failure=0 for file_alignment in virtual rank page sheet 3 do # Checked and reference outputs REF_FILE=$REF_DIR/al1-${file_alignment}.ps CHK_FILE=$CHK_DIR/al1-${file_alignment}.ps # The options to run a2ps with OPT="-Eplain -4 --file-align=${file_alignment} -Pawkout -s2" # Generation of the reports # It must not crash $verbose "testing: --file-align=${file_alignment}" $CHK $OPT $TEST_FILE $TEST_FILE > $CHK_FILE 2>&5 # build the ref if not here if test -f $REF_FILE; then :; else $REF $OPT $TEST_FILE $TEST_FILE > $REF_FILE 2>&5 fi # Compare cmp -s $REF_FILE $CHK_FILE 2> /dev/null done exit 0 a2ps-4.15.5/tests/backup.tst0000754000000000000000000000366214251176751012527 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps correctly backups only when needed # We try both -o foo.ps and -P bak, bak being a printer # that saves in a file (supposed to be backup'd). : ${SRCDIR=.} # Set up other vars . $SRCDIR/defs || exit 1 # In this test, there are places where it is normal to fail. set +e # The output test file out=$tmpdir/backup.ps # The options to run with. Printer `bak' is: # Printer: bak > #{bak.file} OPT="-Eplain --version-control=simple --define=bak.file:$out" # It should first save a backup and then make the new file /bin/rm -f $out $out~ : > $out $verbose "New file, -o, backup=simple" echo 1 | $CHK $OPT -o $out 2>&5 || exit 1 test -f $out~ || exit 1 /bin/rm -f $out $out~ : > $out $verbose "New file, -P, backup=simple" echo 2 | $CHK $OPT -P bak 2>&5 || exit 1 test -f $out~ || exit 1 # It should not backup /dev/null (what is not possible, hence raises an error) echo 3 | $CHK $OPT -o /dev/null 2>&5 || exit 1 echo 4 | $CHK $OPT -P bak --define=bak.file=/dev/null 2>&5 || exit 1 # It should not succeed in backuping up a file which permissions # would have made output impossible. Hence, it should fail, not # create the backup file, nor remove the original /bin/rm -f $out $out~ : > $out chmod 077 $out echo 5 | $CHK $OPT -o $out 2>&5 && exit 1 test -f $out || exit 1 test -f $out~ && exit 1 /bin/rm -f $out $out~ : > $out chmod 077 $out echo 6 | $CHK $OPT -P bak 2>&5 && exit 1 test -f $out || exit 1 test -f $out~ && exit 1 # It should not backup when not required :), but succeed # The options to run with. Printer `bak' is: # Printer: bak > #{bak.file} OPT="-Eplain --version-control=none --define=bak.file:$out" /bin/rm -f $out $out~ : > $out echo 7 | $CHK $OPT -o $out 2>&5 || exit 1 test -f $out || exit 1 test -f $out~ && exit 1 /bin/rm -f $out $out~ : > $out echo 8 | $CHK $OPT -P bak 2>&5 || exit 1 test -f $out || exit 1 test -f $out~ && exit 1 # No need to clean up, done by trap exit 0 a2ps-4.15.5/tests/contrib.tst0000754000000000000000000000063414365456534012724 00000000000000#! /bin/sh # -*- ksh -*- # Dummy test that verifies that there are no stupid syntax errors # in the contributions. . ./defs || exit 1 for prog in card fixps pdiff lp2 do for opt in --version --help do # There should be nothing on stderr, nor failing $verbose "Running $prog $opt" err=`${top_builddir}/contrib/$prog $opt 2>&1 1>&5` || exit 1 test "x$err" != x && exit 1 done done exit 0 a2ps-4.15.5/tests/cut.tst0000754000000000000000000000071314233473143012042 00000000000000#! /bin/sh # -*- ksh -*- # This program tests the validity of troncating option : ${SRCDIR=.} # The options to run with OPT="-cC1mq" # The testing file IN_NAME=tabulation.pre # Outputs OUT_NAME=cut.ps # Set up other vars . $SRCDIR/defs || exit 1 # Run the test $CHK $OPT $TST_FILE -P awkout > $CHK_FILE if test -f $REF_FILE; then :; else $REF $OPT $TST_FILE -P awkout > $REF_FILE fi # Return the verdict cmp $REF_FILE $CHK_FILE 2> /dev/null exit $? a2ps-4.15.5/tests/defs.in0000644000000000000000000000507014235572622011767 00000000000000#! /bin/sh # Set the testing environment. # top_builddir is passed through the environment prog=a2ps top_srcdir=`cd @top_srcdir@ && pwd` top_builddir=`cd ${top_builddir-..} && pwd` srcdir=`cd @srcdir@ && pwd` builddir=$top_builddir/tests AWK=@AWK@ echo_n='@ECHO_N@' echo_c='@ECHO_C@' # LC_MESSAGES is always shadowed by LC_ALL. Here are the only cases: # - GNU: LANGUAGE -> LC_ALL -> LC_MESSAGES -> LANG # - POSIX: LC_ALL -> LC_MESSAGES -> LANG # - XPG4: LC_ALL -> LANG # - SysV/XPG2: LANG # I saw a broken machine that does not support export LC_ALL before # its definition! LANGUAGE=C export LANGUAGE LANG=C export LANG LC_ALL=C export LC_ALL # Make it read the provided resources, not that installed A2PS_CONFIG=$builddir/a2ps-tst.cfg export A2PS_CONFIG # Tell a2ps not to honor other config files than the system's # (here, A2PS_CONFIG) NO_HOME_CONF=no export NO_HOME_CONF # A var often used to detect failure failure=0 # where is the tested program? CHK=$top_builddir/src/${prog} A2PS=$CHK export A2PS REF=${prog} # Here is stored the produced postscript REF_DIR=$srcdir/ps-ref CHK_DIR=$builddir/ps-chk REF_FILE=$REF_DIR/$OUT_NAME CHK_FILE=$CHK_DIR/$OUT_NAME # Here are the test files TST_DIR=$top_srcdir/tests/tstfiles TST_FILE=$TST_DIR/$IN_NAME # Let the user choose the set of test files at run time. : ${TEST_FILES=" AppDelegate.m:objc InsertBlock.java:java a2ps.man:plain bookie.idl:cidl configure.ac:autoconf confirm.m3:modula3 ehandler:ps eplv_chkr.v:verilog essai2.o2c:o2c ex1.asn1:asn1 ex_PSGETRS.f90:fortran ShellNewDummyHook.pas:pascal formfeed.txt:plain ftp2.pml:promela includeres:perl mofibida.hs:haskell mtvplot.octave:octave mutex.py:python pi.b:bc polkaIDL.hh:cxx prosamp.pre:pre psmandup:sh report.pre:texscript run-help:zsh s-garnam.adb:ada snacc.mib:mib space.pls:plsql sqlcrtbl.sql:sql sqlinit.ora:oracle sqlpq92.sql:sql92 sqlspace.pkb:plsql strange.mail:mail symbol.pre:pre synopsys.setup:dc_shell tabulation.pre:pre template.e:eiffel typing.cl:claire vrcaml.ml:caml wide.txt:plain"} # The temp directory TMPDIR=${TMPDIR:-/tmp} tmpdir=$TMPDIR/a2$$ # Remove the junk files. trap "/bin/rm -rf $tmpdir" 0 1 2 3 13 15 # Make sure the directories exist for dir in $REF_DIR $CHK_DIR $tmpdir do [ -d "$dir" ] || mkdir $dir chmod u+wrx $dir done # File descriptor usage: # 0 standard input # 1 file creation # 2 errors and warnings # 3 some systems may open it to /dev/tty # 4 used on the Kubota Titan # 5 a2ps' stderr if test yes = "$VERBOSE"; then exec 5>&2 verbose=echo else exec 5>/dev/null verbose=: fi # Any kind of error should be a failure set -e a2ps-4.15.5/tests/deleg-1.tst0000754000000000000000000000072614233473143012471 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps handles correctly the delegations : ${SRCDIR=.} # The options to run with OPT="-ZEtest_delegation" # The testing file IN_NAME=report.pre # Outputs OUT_NAME=del.ps # Set up other vars . $SRCDIR/defs || exit 1 # Run the test eval $CHK $OPT $TST_FILE -P $CHK_FILE if test -f $REF_FILE; then :; else eval $REF $OPT $TST_FILE -P $REF_FILE fi # Return the verdict cmp $REF_FILE $CHK_FILE 2> /dev/null exit $? a2ps-4.15.5/tests/deleg-2.tst0000754000000000000000000000074114403315601012460 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps does not delegate with --delegate=no : ${SRCDIR=.} # The options to run with OPT="-Etest_delegation --delegate=no" # The testing file IN_NAME=report.pre # Outputs OUT_NAME=del.ps # Set up other vars . $SRCDIR/defs || exit 1 # a2ps should fail, saying it does not know the sheet test_delegation.ssh $CHK $OPT $TST_FILE -P void 2>&1 | grep -F 'cannot find style sheet' > /dev/null 2>&1 # Return status of grep exit $? a2ps-4.15.5/tests/encoding.tst0000754000000000000000000000102414233473143013031 00000000000000#! /bin/sh # -*- ksh -*- # We test the encoding support by a2ps. # This is done through a file which dynamically calls several # encodings. : ${SRCDIR=.} # The options to run with OPT="-Cm2" # Where is the test file IN_NAME=encoding.pre # Output name OUT_NAME=encoding.ps # Set up other vars . $SRCDIR/defs || exit 1 # Run the test $CHK $OPT $TST_FILE -P $CHK_FILE || exit 1 if test -f $REF_FILE; then :; else $REF $OPT $TST_FILE -P $REF_FILE || exit 1 fi # Return the verdict cmp $REF_FILE $CHK_FILE 2> /dev/null exit $? a2ps-4.15.5/tests/gps-ref/0000755000000000000000000000000014236507210012127 500000000000000a2ps-4.15.5/tests/gps-ref/AppDelegate.ps0000644000000000000000000001373614233473143014604 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p n 0 T () S (#import) K ( ") p (AppDelegate.h) str (") p n 0 T () N 0 T () S (#import) K ( ) p n (5) # () S (#import) K ( ) p n 0 T () N 0 T () S (@implementation) K ( AppDelegate) p n 0 T () N 0 T () S (// --------------------- Constants) c n (10) # () N 0 T () S (#define) K ( N_FIELDS) p 24 T () S 32 T (\(8\)) N 0 T () N 0 T () S (// --------------------- Global variables) c n 0 T () N (15) # () S (NSString) p n 0 T ( *AppDelegateNewSetNotificationName = @") S (AppDelegateNewSetNotification) str (",) p n 0 T ( ) S 8 T () S (// This is the name of the notification sent out when a new) c n 0 T () S () p 8 T () S (// field set has been selected for manipulation.) c n 0 T () S ( *AppDelegateNewFieldNotificationName = @") p (AppDelegateNewSetNotification) str (";) p n (20) # ( ) S 8 T () S (// This is the name of the notification sent out when a new) c n 0 T () S () p 8 T () S (// field has been selected for manipulation.) c n 0 T () S ( ) p n 0 T () S (// --------------------- Class variables) c n 0 T () N (25) # () S (static) K ( NSMutableArray) p n 0 T () S 8 T (*classDefaultSet = nil;) N 0 T () S 8 T () N 0 T () S (// --------------------- Methods) c n 0 T () N (30) # () S (+ initize) K n 0 T () S ({) p n 0 T ( ) S (// This method will be called automatically prior to any) c n 0 T () S ( ) p (// other to this class.) c n 0 T () S ( ) p n (35) # ( ) S (int) k ( ) p n 0 T ( ) S 8 T (i;) N 0 T () S 8 T () N 0 T ( ) S (// Create an array to hold the actual field objects.) c n 0 T () S ( classDefaultSet = [[NSMutableArray array] retain];) p n (40) # ( ) S 8 T () S 16 T ( ) N 0 T ( ) N 0 T ( ) S (return) K ( ) p (self) K (;) p n 0 T ( ) S 8 T () S 16 T ( ) N 0 T (} ) S (// initize) c n (45) # () S ( ) p n 0 T () S (- \(id
\)fieldSet) K n 0 T () S ({) p n 0 T ( ) S (// This method returns an object \(conforming to the FieldSet) c n 0 T () S ( ) p (// protocol\) which is being manipulated by this application. ) c n (50) # () S ( ) p n 0 T ( ) S (// If we don't have one yet...) c n 0 T () S ( ) p (if) K ( \() p (\330) sy (myFieldSet\)) p n 0 T ( {) N 0 T ( ) S 8 T () S (// Just adopt the default one for this class.) c n (55) # () S () p 8 T ([) S (self) K ( setFieldSet:\() p (id) k (\)classDefaultSet];) p n 0 T ( }) N 0 T ( ) N 0 T ( ) S (return) K ( myFieldSet;) p n 0 T ( ) N (60) # (} ) S (// fieldSet) c n 0 T () N 0 T () S (- \(void\)setFieldSet:\(id
\)newValue) K n 0 T () S ({) p n 0 T ( ) S (// This method sets the field set being manipulated to the one given.) c n (65) # () S ( ) p (// If the new set differs from the old, the AppDelegateNewSet) c n 0 T () S ( ) p (// notification will be posted informing watchers of the change.) c n 0 T () S ( ) p n 0 T ( ) S (// If the new field is the same as the old..) c n 0 T () S ( ) p (if) K ( \(newValue EQ myFieldSet\)) p n (70) # ( {) N (AppDelegate.m) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p 8 T () S (return) K (;) p 16 T () S (// do nothing) c n 0 T () S ( } ) p n 0 T ( ) N 0 T ( ) S (// Release the old value and adopt the new.) c n (75) # () S ( [newValue retain];) p n 0 T ( ) N 0 T ( ) S (// Post a notification of the change.) c n 0 T () S ( [[NotificationCenter defaultCenter]) p n 0 T ( ) S 8 T (postNotificationName:AppDelegateNewSetNotificationName) N (80) # () S 8 T (object:myFieldSet];) N 0 T ( ) N 0 T (} ) S (// setFieldSet:) c n 0 T () N 0 T () S (- \(Field *\)selectedField) K n (85) # () S ({) p n 0 T ( ) S (// This method returns the field from our field set) c n 0 T () S ( ) p (// which is currently considered selected.) c n 0 T () S ( ) p n 0 T ( ) S (// If we don't currently have a selected field...) c n (90) # () S ( ) p (if) K ( \() p (\330) sy (mySelectedField\)) p n 0 T ( {) N 0 T ( ) S 8 T () S (// Adopt the first field in our set.) c n 0 T () S () p 8 T ([) S (self) K ( setSelectedField:[[) p (self) K ( fieldSet] fieldAtIndex:0]];) p n 0 T ( }) N (95) # ( ) N 0 T ( ) S (return) K ( mySelectedField;) p n 0 T ( ) N 0 T (} ) S (// selectedField) c n 0 T () N (100) # () S (- \(void\)setSelectedField:\(Field *\)newValue) K n 0 T () S ({) p n 0 T ( ) S (// This method causes the given field to be taken as the active one.) c n 0 T () S ( ) p (// If the new field differs from the old, the AppDelegateNewField ) c n 0 T () S ( ) p (// notification will be posted informing watchers of the change.) c n (105) # () S ( ) p n 0 T ( ) S (// If the new field is the same as the old..) c n 0 T () S ( ) p (if) K ( \(newValue EQ mySelectedField\)) p n 0 T ( {) N 0 T ( ) S 8 T () S (return) K (;) p 16 T () S (// do nothing) c n (110) # () S ( } ) p n 0 T ( ) N 0 T ( ) S (// Release the old value and adopt the new.) c n 0 T () S ( [newValue retain];) p n 0 T ( ) N (115) # ( ) S (// Post a notification of the change.) c n 0 T () S ( [[NotificationCenter defaultCenter]) p n 0 T ( ) S 8 T (postNotificationName:AppDelegateNewFieldNotificationName ) N 0 T () S 8 T (object:mySelectedField];) N 0 T ( ) N (120) # (} ) S (// setSelectedField:) c n 0 T () N 0 T () S (@end) K n (AppDelegate.m) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/InsertBlock.ps0000644000000000000000000000512014236507210014630 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (/* This code is part of Freenet. It is distributed under the GNU General) c n 0 T ( * Public License, version 2 \(or at your option any later version\). See) N 0 T ( * http://www.gnu.org/ for further details of the GPL. */) N 0 T () S (package) K ( freenet.client;) p n (5) # () N 0 T () S (import) K ( freenet.keys.FreenetURI;) p n 0 T () S (import) K ( freenet.support.api.Bucket;) p n 0 T () N 0 T () S (/**) C n (10) # ( * Class to contain everything needed for an insert.) N 0 T ( */) N 0 T () S (public) K ( ) p (class) K ( ) p (InsertBlock) L ( {) p n 0 T () N 0 T () S 8 T () S (private) K ( ) p (final) K ( Bucket data;) p n (15) # () S 8 T () S (private) K ( ) p (boolean) k ( isFreed;) p n 0 T () S 8 T () S (public) K ( ) p (final) K ( FreenetURI desiredURI;) p n 0 T () S 8 T () S (public) K ( ) p (final) K ( ClientMetadata clientMetadata;) p n 0 T () S 8 T () N 0 T () S 8 T () S (public) K ( InsertBlock\(Bucket data, ClientMetadata metadata, FreenetURI desi) p n 0 T (redURI\) {) N (20) # () S 8 T () S 16 T () S (if) K (\(data ) p (\272) sy ( ) p (null) k (\) ) p (throw) K ( ) p (new) K ( NullPointerException\(\);) p n 0 T () S 8 T () S 16 T (this.data = data;) N 0 T () S 8 T () S 16 T (this.isFreed = ) S (false) k (;) p n 0 T () S 8 T () S 16 T () S (if) K (\(metadata ) p (\272) sy ( ) p (null) k (\)) p n 0 T () S 8 T () S 16 T () S 24 T (clientMetadata = ) S (new) K ( ClientMetadata\(\);) p n (25) # () S 8 T () S 16 T () S (else) K n 0 T () S () p 8 T () S 16 T () S 24 T (clientMetadata = metadata;) N 0 T () S 8 T () S 16 T (this.desiredURI = desiredURI;) N 0 T () S 8 T (}) N 0 T () S 8 T () N (30) # () S 8 T () S (public) K ( Bucket getData\(\) {) p n 0 T () S 8 T () S 16 T () S (return) K ( \(isFreed ? ) p (null) k ( : data\);) p n 0 T () S 8 T (}) N 0 T () S 8 T () N 0 T () S 8 T () S (public) K ( ) p (void) k ( free\(\){) p n (35) # () S 8 T () S 16 T () S (synchronized) K ( \() p (this) k (\) {) p n 0 T () S 8 T () S 16 T () S 24 T () S (if) K (\(isFreed\) ) p (return) K (;) p n 0 T () S 8 T () S 16 T () S 24 T (isFreed = ) S (true) k (;) p n 0 T () S 8 T () S 16 T (}) N 0 T () S 8 T () S 16 T (data.free\(\);) N (40) # () S 8 T (}) N 0 T (}) N (InsertBlock.java) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/ShellNewDummyHook.ps0000644000000000000000000001361514233473143016003 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ({-----------------------------------------------------------------------------) c n 0 T (The contents of this file are subject to the GNU General Public License) N 0 T (Version 1.1 or later \(the "License"\); you may not use this file except in) N 0 T (compliance with the License. You may obtain a copy of the License at) N (5) # (http://www.gnu.org/copyleft/gpl.html) N 0 T () N 0 T (Software distributed under the License is distributed on an "AS IS" basis,) N 0 T (WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for) N 0 T (the specific language governing rights and limitations under the License.) N (10) # () N 0 T (The Initial Developer of the Original Code is Michael Elsdrfer.) N 0 T (All Rights Reserved.) N 0 T () N 0 T (You may retrieve the latest version of this file at the NTFS Link Homepage) N (15) # (located at http://www.elsdoerfer.net/ntfslink/) N 0 T () N 0 T (Please note:) N 0 T (This is /not/ a real shell extension. We use this fake COM object factory to) N 0 T (register the "ShellNew" menu items. It's just the easiest way to do this,) N (20) # (because the Delphi RTL will automatically call the UpdateRegistry\(\) method if) N 0 T (a client calls DllRegisterServer.) N 0 T (-----------------------------------------------------------------------------}) N 0 T () N 0 T () S (unit) K ( ) p (ShellNewDummyHook) L (;) p n (25) # () N 0 T () S (interface) l n 0 T () N 0 T () S (uses) K n 0 T () S ( Windows, ComObj, ActiveX;) p n (30) # () N 0 T () S (type) K n 0 T () S ( TShellNewDummyHook ) p (\272) sy ( class\(TComObject) p (\(* no interfaces needed, it's a fake! *\)) C (\)) p n 0 T ( ) S (end) K (;) p n 0 T () N (35) # ( TShellNewDummyFactory ) S (\272) sy ( class\(TComObjectFactory\)) p n 0 T ( public) N 0 T ( ) S (procedure) K ( ) p (UpdateRegistry) l (\(Register: ) p (Boolean) k (\); override;) p n 0 T ( ) S (end) K (;) p n 0 T () N (40) # (implementation) N 0 T () N 0 T () S (uses) K n 0 T () S ( ComServ, SysUtils, JclRegistry;) p n 0 T () N (45) # () S ({ TShellNewDummyFactory }) c n 0 T () N 0 T () S (procedure) K ( ) p (TShellNewDummyFactory.UpdateRegistry) l (\(Register: ) p (Boolean) k (\);) p n 0 T () N 0 T ( ) S (procedure) K ( ) p (CreateShellNewStructure) l (\(FileExtKey, FileClassKey,) p n (50) # ( DllFunctionName, ItemCaption: ) S (string) k (; IconIndex: ) p (Integer) k (\);) p n 0 T ( ) S (begin) K n 0 T () S ( // Create the ) p (file) K ( extension key + the "ShellNew" key) p n 0 T ( CreateRegKey\(FileExtKey, '', FileClassKey, HKEY_CLASSES_ROOT\);) N 0 T ( CreateRegKey\(FileExtKey + ') S (\\ShellNew) str (', ') p (Command) str (',) p n (55) # ( ') S (rundll32.exe ") str (' + ComServer.ServerFileName + ') p (",) str (' +) p n 0 T ( DLLFunctionName + ') S ( %1) str (',) p n 0 T ( HKEY_CLASSES_ROOT\);) N 0 T ( // Create the ) S (file) K ( class key, + the the icon ) p (\331) sy ( a command sub-key) p n 0 T ( CreateRegKey\(FileClassKey, '', ItemCaption, HKEY_CLASSES_ROOT\);) N (60) # ( CreateRegKey\(FileClassKey + ') S (\\DefaultIcon) str (', '',) p n 0 T ( ComServer.ServerFileName + ') S (,) str (' + IntToStr\(IconIndex\),) p n 0 T ( HKEY_CLASSES_ROOT\);) N 0 T ( CreateRegKey\(FileClassKey + ') S (\\Shell\\Open\\Command) str (', '', ') p (.) str (',) p n 0 T ( HKEY_CLASSES_ROOT\);) N (65) # ( ) S (end) K (;) p n 0 T () N 0 T () S (const) K n 0 T () S ( HARDLINK_FILEEXT_KEY ) p (\272) sy ( ') p (.ntfs-hardlink) str (';) p n 0 T ( HARDLINK_FILECLASS_KEY ) S (\272) sy ( ') p (NTFSLink.Hardlink) str (';) p n (70) # ( JUNCTION_FILEEXT_KEY ) S (\272) sy ( ') p (.ntfs-junction) str (';) p n (ShellNewDummyHook.pas) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( JUNCTION_FILECLASS_KEY ) p (\272) sy ( ') p (NTFSLink.Junction) str (';) p n 0 T () S (begin) K n 0 T () S ( ) p (if) K ( Register ) p (then) K n 0 T () S ( ) p (begin) K n (75) # () S ( CreateShellNewStructure\(HARDLINK_FILEEXT_KEY, HARDLINK_FILECLASS_KEY,) p n 0 T ( ') S (NewHardlinkDlg) str (', ') p (NTFS Hardlink) str (', 0\);) p n 0 T ( CreateShellNewStructure\(JUNCTION_FILEEXT_KEY, JUNCTION_FILECLASS_KEY,) N 0 T ( ') S (NewJunctionDlg) str (', ') p (NTFS Junction Point) str (', 1\);) p n 0 T ( ) S (end) K ( ) p (else) K n (80) # () S ( ) p (begin) K n 0 T () S ( try RegDeleteKeyTree\(HKEY_CLASSES_ROOT, HARDLINK_FILEEXT_KEY\); except ) p (end) K (;) p n 0 T ( try RegDeleteKeyTree\(HKEY_CLASSES_ROOT, HARDLINK_FILECLASS_KEY\); except ) S (end) K (;) p n 0 T ( try RegDeleteKeyTree\(HKEY_CLASSES_ROOT, JUNCTION_FILEEXT_KEY\); except ) S (end) K (;) p n 0 T ( try RegDeleteKeyTree\(HKEY_CLASSES_ROOT, JUNCTION_FILECLASS_KEY\); except ) S (end) K (;) p n (85) # ( ) S (end) K (;) p n 0 T ( ) N 0 T ( // *NO* inherited call here, it would just make unnecessary registry entries) N 0 T () S (end) K (;) p n 0 T () N (90) # (initialization) N 0 T ( TShellNewDummyFactory.Create\(ComServer, TShellNewDummyHook, GUID_NULL, '', '',) N 0 T ( ciMultiInstance, tmApartment\);) N 0 T () N 0 T () S (end) K (.) p n (ShellNewDummyHook.pas) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/a2ps.ps0000644000000000000000000001036114233473143013265 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p n 0 T () N 0 T () N 0 T (A2PS\(1L\) Misc. Reference Manual Pages A2PS\(1L\)) N (5) # () N 0 T () N 0 T () N 0 T () S (NAME) K n 0 T () S ( a2ps - formats an ascii file for printing on a postscript) p n (10) # ( printer) N 0 T () N 0 T () S (SYNOPSIS) K n 0 T () S ( ) p (a2ps) K ( [ ) p (global) K ( ) p (options) K ( ] [ ) p (positional) K ( ) p (options) K ( ] [ ) p (file1) k ( [) p n 0 T ( ) S (positional) K ( ) p (options) K ( ] ] ) p (file2) k ( ... ] ]) p n (15) # () N 0 T () S (DESCRIPTION) K n 0 T () S ( ) p (a2ps) k ( formats each named file for printing in a postscript) p n 0 T ( printer; if no file is given, ) S (a2ps) k ( reads from the standard) p n 0 T ( input. The output is sent to the printer or to stdout or to) N (20) # ( a file. The format used is nice and compact: normally two) N 0 T ( pages on each physical page, borders surrounding pages,) N 0 T ( headers with useful information \(page number, printing date,) N 0 T ( file name or supplied header\), line numbering, keyword) N 0 T ( highlighting, symbol substitution etc. This is very useful) N (25) # ( for making archive listings of programs.) N 0 T () N 0 T ( ) S (Global) K ( ) p (options) K n 0 T () S ( Global options offered by ) p (a2ps) k ( are the following:) p n 0 T () N (30) # ( ) S (-?) K ( ) p (-h) K ( Print usage information.) p n 0 T () N 0 T ( ) S (-a) K ( Use alternative paper size. In general defined to be) p n 0 T ( US letter. \(see -V\).) N 0 T () N (35) # ( ) S (-b) K ( Force printing binary files. By default, binary files) p n 0 T ( printing is stopped before second page \(see -nb) N 0 T ( option\).) N 0 T () N 0 T ( ) S (-c) K ( Compact mode for a sequence of files. This option) p n (40) # ( allows the printing of two files in the same physical) N 0 T ( page: last page of the first file in the left \(or up\)) N 0 T ( side and first page of the second file in the right) N 0 T ( \(or down\) side. This option is valid only for twinpage) N 0 T ( mode \(two pages per physical page\).) N (45) # () N 0 T ( ) S (-f) K ( Fold lines too large to be printed inside the borders) p n 0 T ( \(default option\). Max line size depends on format and) N 0 T ( font size used and whether line numbering has been) N 0 T ( suppressed.) N (50) # () N 0 T ( ) S (-h) K ( Print usage information.) p n 0 T () N 0 T ( ) S (-I) K (file) k n 0 T () S ( Use the specified file as the postscript prologue for) p n (55) # ( a2ps.) N 0 T () N 0 T ( ) S (-i) K ( Interpret TAB, BS and FF characters \(default option\).) p n 0 T ( TAB is replaced by enough spaces to reach next tab) N 0 T ( stop while BS and FF have their meanings.) N (60) # () N 0 T () N 0 T () N 0 T (SunOS 5.5 Last change: 9 August 1996 1) N 0 T () N (65) # (Some weird characters that exists out there are:) N 0 T () N 0 T (- O plus: ) S (\305) sy ( and ) p (\305) sy n 0 T () N 0 T () S (- Copyright: ) p (\343) sy n (70) # () N (a2ps.man) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (- Plus or minus: ) p (\261) sy n 0 T () N 0 T () S (- Greater than or equal to: ) p (\263) sy n 0 T () N (75) # () S (- Less than or equal to: ) p (\243) sy n 0 T () N 0 T () S (- Another form of ) p (underlining.) k (a2ps.man) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/bookie.ps0000644000000000000000000001315014236507210013663 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (/* ########################################################################) c n 0 T () N 0 T () S 8 T () S 16 T () S 24 T ( Bookie.idl) N 0 T () N (5) # ( This program is free software; you can redistribute it and/or modify) N 0 T ( it under the terms of the GNU General Public License as published by) N 0 T ( the Free Software Foundation; either version 2, or \(at your option\)) N 0 T ( any later version.) N 0 T () N (10) # ( \(c\) Copyright 1999 Bob Phillips) N 0 T () N 0 T ( ######################################################################## */) N 0 T () N 0 T () S (#include) K ( ) p n (15) # () N 0 T () S (#define) K ( FIVE_BUCKS 5.00) p n 0 T () N 0 T () S (module) K ( Bookie {) p n 0 T () N (20) # () S (// For now, we will cheat on the date, time,) c n 0 T (// and location. Eventually, we want to make) N 0 T (// these real objects.) N 0 T () S (typedef) K ( ) p (string) k ( Date;) p n 0 T () S (typedef) K ( ) p (string) k ( Time;) p n (25) # () S (typedef) K ( ) p (string) k ( Location;) p n 0 T () N 0 T () S (exception) K ( NoBet {};) p n 0 T () S (exception) K ( EmptyBetList{};) p n 0 T () N (30) # () S 8 T () S (# pragma) K ( MindlessJunk) p n 0 T () N 0 T () S (// PointSpread is a bit of a hack. We need to be able to express the) c n 0 T (// 1/2 point push-eliminator What we will do is create an object that) N 0 T (// can be initialized with a float/double. Any non-zero part of the) N (35) # (// fraction will be rounded \(up or down\) to 1/2 -- the implementation) N 0 T (// will probably represent it as a short int \(16-bit, so, allowing 1) N 0 T (// bit to serve as the 1/2 fraction and 1 to serve as a sign, we have) N 0 T (// 14 bit spreads. Even in basketball, that isn't going to happen) N 0 T (// anytime soon :^\)) N (40) # () N 0 T () S ( ) p (interface) K ( PointSpread {) p n 0 T () S 8 T () S (// Attributes would be the logical way to) c n 0 T () S ( ) p (// do this, but the example is short on) c n 0 T () S ( ) p (// methods... So we need to have some methods.) c n (45) # () S () p 8 T () S (void) k ( ) p (SetSpread) l (\() p (in) K ( ) p (float) k ( spread\);) p n 0 T () S 8 T () S (float) k ( ) p (GetSpread) l (\() p (void) k (\);) p n 0 T ( };) N 0 T () N 0 T () S (// Same sort of thing with currency. We want a Fixed representation) c n (50) # (// So we allow any float in. We output a Float for other purposes.) N 0 T (// We can later add all sorts of operations.) N 0 T () N 0 T () S ( ) p (interface) K ( Currency {) p n 0 T () S 8 T () S (attribute) K ( ) p (float) k ( amount;) p n (55) # ( };) N 0 T () N 0 T () N 0 T () S (const) K ( ) p (float) k ( NICKEL_BET FIVE_BUCKS;) p n 0 T () S (const) K ( ) p (float) k ( DIME_BET 10.00;) p n (60) # () N 0 T ( ) S (interface) K ( Team {) p n 0 T ( ) S (readonly) K ( ) p (attribute) K ( ) p (string) k ( name; ) p (// No need to change this) c n 0 T () S ( ) p (attribute) K ( ) p (unsigned) k ( ) p (long) k ( wins;) p n 0 T ( ) S (attribute) K ( ) p (unsigned) k ( ) p (long) k ( losses;) p n (65) # ( };) N 0 T () N 0 T ( ) S (interface) K ( Game {) p n 0 T ( ) S (attribute) K ( Date date;) p n 0 T ( ) S (attribute) K ( Time time;) p n (70) # ( ) S (attribute) K ( Location location;) p n (bookie.idl) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( }) p n 0 T () N 0 T ( ) S (interface) K ( Bet {) p n 0 T () S 8 T () S (// If an attribute ever changes, we need to create a new Bet.) c n (75) # () S () p 8 T () S (// This allows for record keeping if we integrate persistent) c n 0 T () S () p 8 T () S (// storage -- we have a record of every bet ever made.) c n 0 T () S () p 8 T () S (readonly) K ( ) p (attribute) K ( Game game;) p n 0 T () S 8 T () S (readonly) K ( ) p (attribute) K ( Team team;) p n 0 T () S 8 T () S (readonly) K ( ) p (attribute) K ( Currency amount;) p n (80) # ( };) N 0 T () N 0 T () S (typedef) K ( ) p (sequence) k ( BetList;) p n 0 T () N 0 T ( ) S (interface) K ( Customer {) p n (85) # ( ) S (readonly) K ( ) p (attribute) K ( ) p (string) k ( name;) p n 0 T ( ) S (attribute) K ( ) p (boolean) k ( PaidUp;) p n 0 T ( ) S (void) k ( ) p (AddToBetList) l ( \() p (in) K ( Bet bet\);) p n 0 T ( ) S (void) k ( ) p (DelFromBetList) l ( \() p (in) K ( Bet bet\)) p n 0 T () S 8 T () S (raises) K ( \(NoBet\);) p n (90) # ( ) S (void) k ( ) p (SetBetlist) l ( \() p (in) K ( BetList list\);) p n 0 T ( ) S (oneway) K ( ) p (void) k ( ) p (ClearBetList) l ( \() p (void) k (\);) p n 0 T ( ) S (void) k ( ) p (FindBet) l (\() p (inout) K ( Bet bet\) ) p (// Need to show an inout...) c n 0 T () S () p 8 T () S (raises) K (\(NoBet\);) p n 0 T ( ) S (void) k ( ) p (GetBetList) l (\() p (out) K ( BetList list\) ) p (// Need to show an out param...) c n (95) # () S () p 8 T () S (raises) K ( \(EmptyBetList\);) p n 0 T ( };) N 0 T (};) N (bookie.idl) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/configure.ps0000644000000000000000000000110614235572622014402 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (AC_INIT) K n 0 T (AC_FATAL) S (\([You are not supposed to run this file]\)) p (dnl) k ( Kill the empty line.) c n 0 T () S (AC_OUTPUT) K (configure.ac) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/confirm.ps0000644000000000000000000000465314233473143014064 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p n 0 T () N 0 T () S (MODULE) K ( Confirm ) p (EXPORTS) K ( Main;) p n 0 T () N (5) # () S (IMPORT) K ( Trestle, VBT, TextVBT, RigidVBT, ButtonVBT, BorderedVBT, HVSplit;) p n 0 T () S (IMPORT) K ( PaintOp, Pixmap, Axis;) p n 0 T () S (IMPORT) K ( ConfirmVBT;) p n 0 T () N 0 T () S (PROCEDURE) K ( Yes \(self: ButtonVBT.T; ) p (READONLY) K ( cd: VBT.MouseRec\) ) p (\272) sy n (10) # () S ( ) p (BEGIN) K n 0 T () S ( Trestle.Delete\(main\);) p n 0 T ( ) S (END) K ( Yes;) p n 0 T () N 0 T () S (PROCEDURE) K ( QuitAction \(self: ButtonVBT.T; ) p (READONLY) K ( cd: VBT.MouseRec\) ) p (\272) sy n (15) # () S ( ) p (VAR) K n 0 T () S ( msg := ") p (Do you really wish to quit?) str (";) p n 0 T ( confirm := ConfirmVBT.New\(msg, Yes\);) N 0 T ( ) S (BEGIN) K n 0 T () S ( Trestle.Install\(confirm\)) p n (20) # ( ) S (END) K ( QuitAction;) p n 0 T () N 0 T () S (CONST) K n 0 T () S ( \(*) p ( sizes for the RigidVBT ) c (*\)) p n 0 T ( horz ) S (\272) sy ( 30.0;) p n (25) # ( vert ) S (\272) sy ( 10.0; \(*) p ( size in millimeters ) c (*\)) p n 0 T ( \(*) S ( border size for text and button ) c (*\)) p n 0 T ( bsize ) S (\272) sy ( 1.5; \(*) p ( size in millimeters ) c (*\)) p n 0 T () N 0 T () S (VAR) K n (30) # () S ( blue := PaintOp.FromRGB\(0.0, 0.0, 1.0\);) p n 0 T ( green := PaintOp.FromRGB\(0.0, 1.0, 0.0\);) N 0 T ( text := RigidVBT.FromHV\(TextVBT.New\(") S (Confirm demo) str ("\), horz, vert\);) p n 0 T ( top := BorderedVBT.New\() N 0 T ( text, size := bsize, op := blue, txt := Pixmap.Solid\);) N (35) # ( button := ButtonVBT.New\(TextVBT.New\(") S (Quit) str ("\), QuitAction\);) p n 0 T ( bottom := BorderedVBT.New\() N 0 T ( button, size := bsize, op := green, txt := Pixmap.Gray\);) N 0 T ( main := HVSplit.Cons\(Axis.T.Ver, top, bottom\);) N 0 T () N (40) # () S (BEGIN) K n 0 T () S ( Trestle.Install\(main\);) p n 0 T ( Trestle.AwaitDelete\(main\)) N 0 T () S (END) K ( Confirm.) p n 0 T () N (45) # () N (confirm.m3) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/ehandler.ps0000644000000000000000000001306514233473143014206 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (%!ps) C n 0 T () S (% lib/ehandler.ps -- Downloaded Error Break-page handler) c n 0 T (% GOVERNMENT END USERS: See Notice file in TranScript library directory) N 0 T (% -- probably /usr/lib/ps/Notice) N (5) # (% -- code follows this line --) N 0 T (% assumes serverloop password is the default one) N 0 T () S (/$brkpage ) p (where) K n 0 T () S ({) p (pop) K (\() p (Error Handler in place - not loaded again\\n) str (\)print flush stop}) p n 0 T ({serverdict ) S (begin) K ( statusdict ) p (begin) K ( 0000 checkpassword) p n (10) # ( {\() S (Error Handler downloaded.\\n) str (\)print flush 0000 exitserver}) p n 0 T ( {\() S (Bad Password on loading error handler!!!\\n) str (\)print flush stop}) p (ifelse) K n 0 T () S (}) p (ifelse) K n 0 T () S (/$brkpage 64 ) p (dict) K ( ) p (def) K ( $brkpage ) p (begin) K n 0 T () S (/prnt) p n (15) # ( {) S (dup) K ( type/stringtype ) p (\271) sy ({=string cvs}) p (if) K ( ) p (dup) K ( ) p (length) K ( 6 ) p (mul) K (/tx ) p (exch) K ( ) p (def) K (/ty 10 ) p (def) K n 0 T () S ( currentpoint/toy ) p (exch) K ( ) p (def) K (/tox ) p (exch) K ( ) p (def) K ( 1 ) p (setgray) K ( ) p (newpath) K n 0 T () S ( tox toy 2 ) p (sub) K ( ) p (moveto) K ( 0 ty ) p (rlineto) K ( tx 0 ) p (rlineto) K ( 0 ty ) p (neg) K ( ) p (rlineto) K n 0 T () S ( ) p (closepath) K ( ) p (fill) K ( tox toy ) p (moveto) K ( 0 ) p (setgray) K ( ) p (show) K (}) p (bind) K ( ) p (def) K n 0 T () S (/nl) L ({currentpoint ) p (exch) K ( ) p (pop) K ( lmargin ) p (exch) K ( ) p (moveto) K ( 0 -10 ) p (rmoveto) K (}) p (def) K n (20) # () S (/=={/cp 0 ) p (def) K ( typeprint nl}) p (def) K n 0 T () S (/typeprint) L ({) p (dup) K ( type exec}readonly ) p (def) K n 0 T () S (/lmargin 72 ) p (def) K n 0 T () S (/rmargin 72 ) p (def) K n 0 T () S (/tprint) p n (25) # ( {) S (dup) K ( ) p (length) K ( cp ) p (add) K ( rmargin ) p (gt) K ({nl/cp 0 ) p (def) K (}) p (if) K n 0 T () S ( ) p (dup) K ( ) p (length) K ( cp ) p (add) K (/cp ) p (exch) K ( ) p (def) K ( prnt}readonly ) p (def) K n 0 T () S (/cvsprint) L ({=string cvs tprint\() p ( ) str (\)tprint}readonly ) p (def) K n 0 T () S (/integertype) L ({cvsprint}readonly ) p (def) K n 0 T () S (/realtype) L ({cvsprint}readonly ) p (def) K n (30) # () S (/booleantype) L ({cvsprint}readonly ) p (def) K n 0 T () S (/operatortype) L ({\() p (--) str (\)tprint =string cvs tprint\() p (-- ) str (\)tprint}readonly ) p (def) K n 0 T () S (/marktype) L ({) p (pop) K (\() p (-mark- ) str (\)tprint}readonly ) p (def) K n 0 T () S (/dicttype) L ({) p (pop) K (\() p (-dictionary- ) str (\)tprint}readonly ) p (def) K n 0 T () S (/nulltype) L ({) p (pop) K (\() p (-null- ) str (\)tprint}readonly ) p (def) K n (35) # () S (/filetype) L ({) p (pop) K (\() p (-filestream- ) str (\)tprint}readonly ) p (def) K n 0 T () S (/savetype) L ({) p (pop) K (\() p (-savelevel- ) str (\)tprint}readonly ) p (def) K n 0 T () S (/fonttype) L ({) p (pop) K (\() p (-fontid- ) str (\)tprint}readonly ) p (def) K n 0 T () S (/nametype) L ({) p (dup) K ( xcheck not{\() p (/) str (\)tprint}) p (if) K ( cvsprint}readonly ) p (def) K n 0 T () S (/stringtype) p n (40) # ( {) S (dup) K ( rcheck{\() p (\\\() str (\)tprint tprint\() p (\\\)) str (\)tprint}{) p (pop) K (\() p (-string- ) str (\)tprint}) p (ifelse) K n 0 T () S ( }readonly ) p (def) K n 0 T () S (/arraytype) p n 0 T ( {) S (dup) K ( rcheck{) p (dup) K ( xcheck) p n 0 T ( {\() S ({) str (\)tprint{typeprint}) p (forall) K (\() p (}) str (\)tprint}) p n (45) # ( {\() S ([) str (\)tprint{typeprint}) p (forall) K (\() p (]) str (\)tprint}) p (ifelse) K (}{) p (pop) K (\() p (-array- ) str (\)tprint}) p (ifelse) K n 0 T () S ( }readonly ) p (def) K n 0 T () S (/packedarraytype) p n 0 T ( {) S (dup) K ( rcheck{) p (dup) K ( xcheck) p n 0 T ( {\() S ({) str (\)tprint{typeprint}) p (forall) K (\() p (}) str (\)tprint}) p n (50) # ( {\() S ([) str (\)tprint{typeprint}) p (forall) K (\() p (]) str (\)tprint}) p (ifelse) K (}{) p (pop) K (\() p (-packedarray- ) str (\)tprint}) p (ifelse) K n 0 T () S ( }readonly ) p (def) K n 0 T () S (/courier/Courier ) p (findfont) K ( 10 ) p (scalefont) K ( ) p (def) K n 0 T (end) S ( ) p (%$brkpage) c n 0 T () S (errordict/handleerror) p n (55) # ( {systemdict ) S (begin) K ( $error ) p (begin) K ( $brkpage ) p (begin) K ( newerror) p n 0 T ( {/newerror ) S (false) k ( store) p n 0 T ( vmstatus ) S (pop) K ( ) p (pop) K ( 0 ) p (\271) sy ({grestoreall}) p (if) K ( initgraphics courier ) p (setfont) K n 0 T () S ( lmargin 720 ) p (moveto) K (\() p (ERROR: ) str (\)prnt errorname prnt) p n 0 T ( nl\() S (OFFENDING COMMAND: ) str (\)prnt/command load prnt) p n (60) # ( $error/ostack) N 0 T ( ) S (known) K ({nl nl\() p (STACK:) str (\)prnt nl nl $error/ostack ) p (get) K ( aload ) p (length) K ({==}repeat}) p (if) K n 0 T () S ( systemdict/) p (showpage) K ( ) p (get) K ( exec\() p (%%[ Error: ) str (\)print) p n 0 T ( errorname =print\() S (; OffendingCommand: ) str (\)print/command) p n 0 T ( load =print\() S ( ]%%) str (\)= flush}) p (if) K ( ) p (end) K ( ) p (end) K ( ) p (end) K (}) p n (65) # () S (dup) K ( 0 systemdict ) p (put) K ( ) p (dup) K ( 4 $brkpage ) p (put) K ( ) p (bind) K ( readonly ) p (put) K n (ehandler) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/eplv_chkr.ps0000644000000000000000000000423314233473143014376 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (// This module checks for BDVL deasserting when BEPVL is asserted.) c n 0 T () N 0 T () S (module) K ( epvl_chkr\(clk, bpvl, bepvl, bdvl, stop\);) p n 0 T ( ) S (input) K ( clk;) p n (5) # ( ) S (input) K ( bpvl;) p n 0 T ( ) S (input) K ( bepvl;) p n 0 T ( ) S (input) K ( bdvl;) p n 0 T ( ) S (input) K ( stop; ) p (// $stop \(or $finish if BATCH\) on error) c n 0 T () N (10) # () S (`ifdef) k ( JUST_COUNT_PACKETS) p n 0 T ( ) S (// Do nothing) c n 0 T () S (`else) k n 0 T () S ( ) p (integer) K ( status;) p n 0 T () S (`endif) k ( ) p (// ifdef JUST_COUNT_PACKETS) c n (15) # () N 0 T () S ( ) p (always) K ( @\() p (posedge) K ( clk\) ) p (begin) K n 0 T () S ( ) p (if) K ( \(!bpvl && bepvl && bdvl\) ) p (begin) K n 0 T () S ( $display\(") p (%%E-%M, %0t BDVL cannot be deasserted with BEPVL) str (",) p n 0 T ( $time\);) N (20) # ( ) S (if) K ( \(stop\) ) p (begin) K n 0 T () S ( #1000) p n 0 T () S (`ifdef) k ( JUST_CHECK_COUNTS) p n 0 T ( ) S (// Do nothing) c n 0 T () S (`else) k n (25) # () S ( status = $check_counts;) p n 0 T () S (`endif) k ( ) p (// !ifdef JUST_CHECK_COUNTS) c n 0 T () S ( $display\(") p (%%I-%M, %0t Stopping simulation on error!) str (", $time\);) p n 0 T () S (`ifdef) k ( BATCH) p n 0 T ( $finish;) N (30) # () S (`else) k n 0 T () S ( $stop;) p n 0 T () S (`endif) k ( ) p (// !ifdef BATCH) c n 0 T () S ( ) p (end) K ( ) p (// if \(backplane.stop_on_error\)) c n 0 T () N (35) # () S ( ) p (end) K ( ) p (// if \(!bpvl && bepvl && bdvl\)) c n 0 T () S ( ) p (end) K ( ) p (// always @ \(posedge clk\)) c n 0 T () N 0 T () S (endmodule) K ( ) p (// epvl_chkr) c n (eplv_chkr.v) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/essai2.ps0000644000000000000000000001564614233473143013621 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (set options ") p (-I/inf/erebe/bdstag/sigbench/release/Schema/include) str (";) p n 0 T (set ) S (schema) K ( sigrel;) p n 0 T (set ) S (base) K ( sigrelb;) p n 0 T () N (5) # (set ) S (application ) K (Index_lineaire;) L n 0 T () N 0 T () S (name) K ( Nt_rem_oid:Tt_rem_oid;) p n 0 T () S (name) K ( Ns_rem_oid:set \(Tt_rem_oid\);) p n 0 T () S (name) K ( No_JS_feuilleA:C_Feuille;) p n (10) # () S (name) K ( No_JS_feuilleB:C_Feuille;) p n 0 T () S (name) K ( Ns_JS_jointure_cles:set \(tuple \(cleA:string, cleB:string\)\);) p n 0 T () S (function) K n 0 T () S (F_JS_big_theta \(Pt_a:Tt_rem_oid, Pt_b:Tt_rem_oid\):boolean;) p n 0 T ( ) S (function) K ( ) p (body) K ( F_JS_big_theta \(Pt_a:Tt_rem_oid, Pt_b:Tt_rem_oid\):boolean) p n (15) # ({) N 0 T () S (/* test si "a intersecte b \(sens strict\)" */) c n 0 T () S ( ) p (return) K ( \(\(Pt_a.Ai_xmin < Pt_b.Ai_xmax\)) p n 0 T () S 8 T ( ) S (\331) sy ( \(Pt_a.Ai_ymin < Pt_b.Ai_ymax\)) p n 0 T () S 8 T ( ) S (\331) sy ( \(Pt_a.Ai_xmax > Pt_b.Ai_xmin\) ) p (\331) sy ( \(Pt_a.Ai_ymax > Pt_b.Ai_ymin\)\);) p n (20) # (};) N 0 T () S (function) K n 0 T () S (F_JS_existe_cle \(Pc_cleA:string, Pc_cleB:string\):boolean;) p n 0 T ( ) S (function) K ( ) p (body) K ( F_JS_existe_cle \(Pc_cleA:string, Pc_cleB:string\):boolean) p n 0 T ({) N (25) # () S (#include) K ( ") p (varextbis.h) str (") p n 0 T () N 0 T ( Handle poign_root, poign_objet_final, *poign_cle;) N 0 T ( Scan *scan_index;) N 0 T ( Predicate *predicat;) N (30) # ( ) S (void) k ( *index_id;) p n 0 T ( ) S (o2) K ( string cle = ") p (index-racine) str (";) p n 0 T () N 0 T () S (/************** Fermeture du scan index et retour ******/) c n 0 T () S ( o2_col_scan_close \(scan_index\);) p n (35) # () S (/*printf\("sortie F_Lecture_index\\n"\);*/) c n 0 T () S ( printf \(") p ( ===> feuille %s ok ...\\n) str (", Pc_cleA + Pc_cleB\);) p n 0 T ( ) S (return) K ( true;) p n 0 T (};) N 0 T () N (40) # () S (function) K n 0 T () S (F_JS_get_quadrant \(Pc_cle:string, Pt_rem:Tt_rem_oid\):Tt_rem_oid;) p n 0 T ( ) S (function) K ( ) p (body) K ( F_JS_get_quadrant \(Pc_cle:string,) p n 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( Pt_rem:Tt_rem_oid\):Tt_rem_oid) N 0 T ({) N (45) # ( ) S (o2) K ( integer dx = \(Pt_rem.Ai_xmax - Pt_rem.Ai_xmin\) / 2;) p n 0 T ( ) S (o2) K ( integer dy = \(Pt_rem.Ai_ymax - Pt_rem.Ai_ymin\) / 2;) p n 0 T ( ) S (o2) K ( integer i;) p n 0 T ( ) S (for) K ( \(i = 0; i < count \(Pc_cle\); i++\)) p n 0 T ( {) N (50) # ( ) S (switch) K ( \(Pc_cle[i]\)) p n 0 T () S 8 T ({) N 0 T () S 8 T () S (default) K (:) p n 0 T () S 8 T ( printf \(") S (Nom de feuille \(%s\) erronee !!!\\n) str (", Pc_cle\);) p n 0 T () S 8 T (}) N (55) # ( dx = dx / 2;) N 0 T ( dy = dy / 2;) N 0 T ( }) N 0 T ( ) S (return) K ( \(Pt_rem\);) p n 0 T (};) N (60) # () N 0 T () N 0 T () S (function) K ( F_JS_join_f \(Pc_cleA:string,) p n 0 T () S 8 T () S 16 T ( Pt_remA:Tt_rem_oid, Pc_cleB:string, Pt_remB:Tt_rem_oid\);) N 0 T () S (function) K ( ) p (body) K n (65) # () S (F_JS_join_f \(Pc_cleA:string,) p n 0 T () S 8 T ( Pt_remA:Tt_rem_oid, Pc_cleB:string, Pt_remB:Tt_rem_oid\)) N 0 T ({) N 0 T () S (#include) K ( ") p (varextbis.h) str (") p 24 T () S 32 T () S (/* contexte general */) c n 0 T () N (70) # () S ( printf \(") p (tente \(%s,%s\) ...) str (", Pc_cleA, Pc_cleB\);) p n (essai2.o2c) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (if) K ( \(F_JS_small_theta \(Pt_remA, Pt_remB\)\)) p n 0 T ( {) N 0 T ( printf \(") S (===> ok) str ("\);) p n 0 T ( Ns_JS_jointure_cles += set \(tuple \(cleA: Pc_cleA, cleB:Pc_cleB\)\);) N (75) # ( }) N 0 T ( printf \(") S (\\n) str ("\);) p n 0 T ( ) S (return) K (;) p n 0 T (};) N 0 T (;) N (80) # () N 0 T () S (program) K ( private) p n 0 T (P_JS_Lance_jointure \(Pc_quad_linA:string, Pc_quad_linB:string\)) N 0 T ( ) S (in) K ( ) p (application ) K (Index_lineaire;) L n 0 T () S ( ) p (transaction body ) K (P_JS_Lance_jointure \(Pc_quad_linA:string,) L n (85) # () S 8 T () S 16 T () S 24 T () S 32 T () S 40 T ( Pc_quad_linB:string\)) N 0 T ( ) S ( in application ) K (Index_lineaire) L n 0 T () S ( {) p n 0 T () S (#include) K ( ") p (varextbis.h) str (") p n 0 T () N (90) # ( ) S (o2) K ( Tt_def_index t_def_idxA;) p n 0 T ( ) S (o2) K ( Tt_def_index t_def_idxB;) p n 0 T ( ) S (o2) K ( Tt_def_index def_idx;) p n 0 T () N 0 T ( ) S (o2) K ( Tt_rem_oid t_remA;) p n (95) # ( ) S (o2) K ( Tt_rem_oid t_remB;) p n 0 T () N 0 T ( };) N 0 T () N 0 T () S (program) K ( ) p (public) K n (100) # () S (P_JS_select \(Pc_noeud:string\)) p n 0 T ( ) S (in) K ( ) p (application ) K (Index_lineaire;) L n 0 T () S ( ) p (transaction body ) K (P_JS_select \(Pc_noeud:string\)) L n 0 T ( ) S ( in application ) K (Index_lineaire) L n 0 T () S ( {) p n (105) # ( ) S (o2) K ( set \(C_Feuille\) Tree = set \(\);) p n 0 T ( ) S (o2) K ( C_Feuille f = nil;) p n 0 T ( ) S (o2) K ( integer reso2q = 0;) p n 0 T ( ) S (o2) K ( Tt_rem_oid rem, quadrant;) p n 0 T ( ) S (o2) K ( set \(Tt_rem_oid\) Resultat = set \(\);) p n (110) # ( ) S (o2) K ( Tt_rem_oid Po_objet = Nt_rem_oid;) p n 0 T ( ) S (o2) K ( Tt_def_index Po_index, idx;) p n 0 T ( ) S (for) K ( \(idx ) p (in) K ( Nt_indexes.Al_def_index\)) p n 0 T () S 8 T ( ) S (if) K ( \(idx.Ao_index ) p (\272) sy ( No_quad_lin01\)) p n 0 T () S 8 T ( Po_index = idx;) N (115) # () N 0 T () S (/* Recuperation des feuilles de l'arbre */) c n 0 T () S ( reso2q = ) p (o2query) K ( \(Tree, ") p (select f from f in $1) str (", Po_index.Ao_index\);) p n 0 T ( ) S (if) K ( \(reso2q\)) p n 0 T () S 8 T ( {) N (120) # () S 8 T ( printf \(") S (Index vide ou inexistant ...!!!) str ("\);) p n 0 T () S (/* return set\(\);*/) c n 0 T () S () p 8 T ( ) S (abort) K (;) p n 0 T () S 8 T ( }) N 0 T () N (125) # ( ) S (for) K ( \(f ) p (in) K ( Tree\)) p n 0 T ( ) S (if) K ( \(F_JS_small_theta \(Po_objet, rem\)) p n 0 T ( Resultat += set \(rem\);) N 0 T ( Ns_rem_oid = Resultat;) N 0 T () S (/*return Resultat;*/) c n (130) # () S ( };) p n 0 T () N 0 T () S (commit) K (;) p n 0 T () S (quit) K (;) p n (essai2.o2c) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/ex1.ps0000644000000000000000000000361214233473143013116 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (-- file: .../asn1specs/ex1.asn1) c n 0 T (--) N 0 T (-- This is an example ASN.1 module used in the documentation) N 0 T (--) N (5) # (-- MS 92) N 0 T (--) N 0 T (-- Initial checkin.) N 0 T (--) N 0 T (-- Revision 1.2 1997/02/16 20:25:22 rj) N (10) # (-- check-in of a few cosmetic changes) N 0 T (--) N 0 T (-- Revision 1.1 1994/10/08 05:41:32 rj) N 0 T (-- initial check-in.) N 0 T (--) N (15) # () N 0 T () S (EX1 ) p (DEFINITIONS) K ( ::=) p n 0 T () S (BEGIN) K n 0 T () N 0 T () S (anOidVal ) p (OBJECT) K ( ) p (IDENTIFIER) K ( ::= { ) p (joint-iso-ccitt) k ( 40 foobar\(29\) }) p n (20) # (theSameOidVal ) S (OBJECT) K ( ) p (IDENTIFIER) K ( ::= { 2 40 29 }) p n 0 T (anIntVal ) S (INTEGER) K ( ::= 1) p n 0 T (aBoolVal ) S (BOOLEAN) K ( ::= ) p (TRUE) K n 0 T () N 0 T () N (25) # (NULL) S ( ::= identifier ) p (END) K n 0 T () N 0 T () S (T1 ::= ) p (SEQUENCE) K n 0 T () S ({) p n 0 T ( ) S (INTEGER) K ( ) p (OPTIONAL) K (,) p n (30) # ( ) S (OCTET) K ( ) p (STRING) K ( ) p (OPTIONAL) K (,) p n 0 T ( ) S (ENUMERATED) K ( { a\(0\), b\(1\), c\(2\) },) p n 0 T ( ) S (SEQUENCE) K ( ) p (OF) K ( ) p (INTEGER) K (,) p n 0 T ( ) S (SEQUENCE) K ( { id ) p (OBJECT) K ( ) p (IDENTIFIER) K (, value ) p (OCTET) K ( ) p (STRING) K ( },) p n 0 T ( ) S (CHOICE) K ( { ) p (INTEGER) K (, ) p (OBJECT) K ( ) p (IDENTIFIER) K ( }) p n (35) # ( DESCRIPTION ") S (This is a string with a quote "" in it.) str (") p n 0 T (}) N 0 T () N 0 T () S (END) K n (ex1.asn1) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/ex_PSGETRS.ps0000644000000000000000000003317614233473143014254 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (! Gilles GRASSEAU \(CNRS/IDRIS - France\) - Nov. 1996) c n 0 T () N 0 T () S (program) K ( ) p (test_psgetrs) L n 0 T () S (!-------------------------------------------------------------------) c n (5) # (! Description : ) N 0 T (! Exemple de factorisation LU puis de resolution du systeme : ) N 0 T (! A * x = b , ou A est une matrice \(5,5\). ) N 0 T (!) N 0 T (! Principe :) N (10) # (! Les matrice/vecteurs A, x et b sont globaux et les matrices/ ) N 0 T (! vecteurs dist_a, dist_x et dist_b sont respectivement les ) N 0 T (! matrices/vecteurs distribuees sur la grille de proc. 2x2. ) N 0 T (! La repartition de la matrice se fait par blocs cycliques 2x2 ) N 0 T (! \(2 elements par ligne et 2 elements par colonne - ) N (15) # (! voir Exemple de repartition d'une matrice\). ) N 0 T (! La repartition des vecteurs se fait par blocs cycliques 2x1 ) N 0 T (! \(le processeur logique \(0,0\) possede les blocs {x\(1:2\) ,x\(5\)} ) N 0 T (! et le processeur logique \(1,0\) possede le bloc x\(3:4\) \). ) N 0 T (!) N (20) # (! Algorithme :) N 0 T (! 1 - Initialisation du BLACS et autres.) N 0 T (! 2 - Distribution de la matrice A et du vecteur x vers les blocs ) N 0 T (! locaux dist_a et dist_x de chaque processeur logique.) N 0 T (! \(voir Distribution de matrice\) ) N (25) # (! On a simule la situation ou seul le processeur \(0,0\) possede ) N 0 T (! la matrice et les vecteurs globaux A, x et b. ) N 0 T (! 3 - Factorisation LU et resolution.) N 0 T (! 4 - Recuperation et impression des resultats par le processeur) N 0 T (! logique \(0,0\).) N (30) # (!) N 0 T (! Remarque :) N 0 T (! 1 - Le tableau de travail 'work' a ete dimensionne a la valeur) N 0 T (! donnee par INITBUFF pour psgetrs \( > au buffer de psgetrf\).) N 0 T (! 2 - La liste des pivots locaux 'dist_piv' est dimensionnee a ) N (35) # (! 'n_max' + 'rb_size'.) N 0 T (!) N 0 T (!-------------------------------------------------------------------) N 0 T () S ( ) p (implicit) K ( ) p (none) K n 0 T () N (40) # () S ( ) p (integer) K ( :: pe, npes ) p (! Identificateur du processeur et) c n 0 T () S ( ) p (! nombre de processeurs physiques.) c n 0 T () N 0 T () S ( ) p (integer) K (, ) p (parameter) K (:: nprow=2, npcol=2 ) p (! Grille de proc. logiques.) c n 0 T () S ( ) p (integer) K ( :: prow, pcol ) p (! Coord. de mon proc. logique) c n (45) # () N 0 T () S ( ) p (integer) K ( :: icntxt ) p (! Contexte \(grille de procs\)) c n 0 T () S ( ) p (integer) K (, ) p (dimension) K (\(8\) :: desc_a ) p (! Descripteur de la matrice.) c n 0 T () S ( ) p (integer) K (, ) p (dimension) K (\(8\) :: desc_x ) p (! Descripteur des vecteurs.) c n 0 T () N (50) # () S ( ) p (integer) K (, ) p (parameter) K ( :: n=5 ) p (! Ordre matrices/vecteurs.) c n 0 T () S ( ) p (real) K (, ) p (dimension) K (\(n,n\) :: a ) p (! Matrice globale a.) c n 0 T () S ( ) p (real) K (, ) p (dimension) K (\(n\) :: x ) p (! Vecteur resultat x\(global\)) c n 0 T () S ( ) p (real) K (, ) p (dimension) K (\(n\) :: b ) p (! Vecteur b \(global\)) c n 0 T () N (55) # () S ( ) p (integer) K (, ) p (parameter) K ( :: n_max=3 ) p (! Dim. des matrices/vecteurs) c n 0 T () S ( ) p (! locaux.) c n 0 T () S ( ) p (real) K (, ) p (dimension) K (\(n_max,n_max\):: dist_a ) p (! Matrice locale.) c n 0 T () S ( ) p (real) K (, ) p (dimension) K (\(n_max\) :: dist_x ) p (! Vecteur local.) c n 0 T () S ( ) p (real) K (, ) p (dimension) K (\(n_max\) :: dist_b ) p (! Vecteur local.) c n (60) # () N 0 T () S ( ) p (integer) K (, ) p (parameter) K ( :: rb_size=2, & ) p (! Taille des blocs lignes ) c n 0 T () S ( cb_size=2 ) p (! et colonnes.) c n 0 T () N 0 T () S ( ) p (integer) K (, ) p (dimension) K (\(n_max+rb_size\):: dist_piv ) p (! Vecteur local des) c n (65) # () S ( ) p (! pivots.) c n 0 T () N 0 T () S ( ) p (integer) K ( :: info, i, j) p n 0 T () N 0 T ( ) S (data) K ( a/ 0.5, 0.0, 2.3, 0.0,-2.6, & ) p (! Coefficients de la matrice ) c n (70) # () S ( 0.0, 0.5,-1.4, 0.0,-0.7, & ) p (! globale A.) c n (ex_PSGETRS.f90) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( 2.3,-1.4, 0.5, 0.0, 0.0, &) p n 0 T ( 0.0, 0.0, 0.0, 1.0, 0.0, &) N 0 T ( -2.6,-0.7, 0.0, 0.0, 0.5/ ) N 0 T () N (75) # ( ) S (data) K ( b/-2.1, 0.3, 1.5, 0.0,-1.5/ ) p (! Coefficients du vecteur global) c n 0 T () N 0 T () N 0 T () S ( ) p (integer) K (,) p (parameter) K (:: minb=rb_size, maxb=minb ) p (! Calcul de l'espace ) c n 0 T () S ( ) p (integer) K (,) p (parameter) K (:: minp=nprow, maxd=n ) p (! de travail) c n (80) # () S ( ) p (integer) K (,) p (parameter) K (:: wsize=2*maxb*\(\(\(maxd/minb\)/minp\)*maxb+maxb\)*8) p n 0 T ( ) S (real) K (, ) p (dimension) K (\(wsize/8\) :: work) p n 0 T () N 0 T () S (! Initialisation BLACS et autres.) c n 0 T (!--------------------------------------) N (85) # () S ( ) p (call) K ( ) p (initbuff) l (\(work,wsize\) ) p (! Init. des buffers internes au PBLAS) c n 0 T () S ( ) p (call) K ( ) p (blacs_pinfo) l (\(pe, npes\) ) p (! Init. mon PE, nbre de procs physiques) c n 0 T () S ( ) p (call) K ( ) p (blacs_gridinit) l (\(icntxt, & ) p (! Init. Grille de proc. logiques.) c n 0 T () S ( ') p (C) str (', nprow, npcol\)) p n 0 T () N (90) # ( ) S (call) K ( ) p (blacs_gridinfo) l (\(icntxt, & ) p (! Mes coord. dans la grille ) c n 0 T () S ( nprow, npcol, prow, pcol\) ) p (! de processeurs logiques.) c n 0 T () N 0 T () S ( ) p (call) K ( ) p (descinit) l (\(desc_a, n, n, & ) p (! Init. descripteur de la ) c n 0 T () S ( rb_size, cb_size, 0, 0, & ) p (! matrice a) c n (95) # () S ( icntxt, n_max, info\)) p n 0 T ( ) S (if) K ( \(info<0\) ) p (stop) K ( ') p (descinit) str (') p n 0 T () N 0 T ( ) S (call) K ( ) p (descinit) l (\(desc_x, n, 1, & ) p (! Init. descripteur du vecteur x) c n 0 T () S ( rb_size, 1, 0, 0, &) p n (100) # ( icntxt, n_max, info\) &) N 0 T ( ) S (if) K ( \(info<0\) ) p (stop) K ( ') p (descinit) str (') p n 0 T () N 0 T () S (! Distribution de la matrice 'a' vers la matrice distribuee 'dist_a'.) c n 0 T (!--------------------------------------------------------------------) N (105) # () S ( ) p (call) K ( ) p (distribue) l (\(icntxt, a, n, dist_a, n_max, prow, pcol\)) p n 0 T () N 0 T () S (! Distribution du vecteur 'b' sur le vecteur distribue 'dist_b'.) c n 0 T (!------------------------------------------------------------------) N 0 T () S ( ) p (if) K ( \(\(prow==0\)) p (\331) sy (\(pcol==0\)\) ) p (then) K n (110) # () S ( dist_b\(1:2\) = b\(1:2\) ) p (! copie de b\(1:2\) dans proc\(0,0\)) c n 0 T () S ( ) p (call) K ( ) p (sgesd2d) l (\(icntxt,2,1, & ) p (! b\(3:5\) envoie au proc \(1,0\)) c n 0 T () S ( b\(3\),n,1,0\) ) p n 0 T ( dist_b\(3\) = b\(5\) ) S (! copie de b\(5\) dans proc \(0,0\)) c n 0 T () S ( ) p (end) K ( ) p (if) K n (115) # () S ( ) p (if) K ( \(\(prow==1\)) p (\331) sy (\(pcol==0\)\) ) p (then) K n 0 T () S ( ) p (call) K ( ) p (sgerv2d) l (\(icntxt, 2,1, dist_b\(1\), & ) p (! reception b\(3:5\) dans ) c n 0 T () S ( n_max, 0, 0\) ) p (! dist_b\(1:2\).) c n 0 T () S ( ) p (end) K ( ) p (if) K n 0 T () N (120) # () S (! Calculs) c n 0 T (!----------------------------------) N 0 T () S ( ) p (call) K ( ) p (PSGETRF) l (\(n, n, dist_a, 1, 1, desc_a, &) p n 0 T ( dist_piv, info\)) N 0 T ( ) S (if) K ( \(info ) p (\271) sy ( 0\) ) p (print) K ( *,') p (Erreur dans la factorisation : ) str (',info) p n (125) # () N 0 T ( ) S (call) K ( ) p (PSGETRS) l (\( ') p (N) str (', n, 1, dist_a, 1, 1, desc_a, &) p n 0 T ( dist_piv, dist_b, 1, 1, desc_x, info\)) N 0 T ( ) S (if) K ( \(info ) p (\271) sy ( 0\) ) p (print) K ( *,') p (Erreur dans la resolution : ) str (',info) p n 0 T () N (130) # () S (! Recuperation des resultats 'dist_b' -> 'x') c n 0 T (!----------------------------------------------) N 0 T () S ( ) p (if) K ( \(\(prow==1\)) p (\331) sy (\(pcol==0\)\) ) p (then) K n 0 T () S ( ) p (call) K ( ) p (sgesd2d) l (\(icntxt,2,1,dist_b\(1\), & ) p (! envoie de dist_b\(1:2\) ) c n 0 T () S ( n_max, 0, 0\) ) p (! au proc \(0,0\)) c n (135) # () S ( ) p (end) K ( ) p (if) K n 0 T () S ( ) p (if) K ( \(\(prow==0\)) p (\331) sy (\(pcol==0\)\) ) p (then) K n 0 T () S ( x\(1:2\) = dist_b\(1:2\) ) p (! copie de dist_b\(1:2\) dans proc\(0,0\)) c n 0 T () S ( ) p (call) K ( ) p (sgerv2d) l (\(icntxt,2,1, & ) p (! reception dist_b\(1:2\) dans x\(3:4\)) c n 0 T () S ( x\(3\), n, 1, 0\)) p n (140) # ( x\(5\) = dist_b\(3\) ) S (! copie de dist_b\(3\) dans proc \(0,0\)) c n (ex_PSGETRS.f90) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (end) K ( ) p (if) K n 0 T () N 0 T () S (! Impression des resultats) c n 0 T (!-----------------------------) N (145) # () S ( ) p (if) K ( \(\(prow==0\)) p (\331) sy (\(pcol==0\)\) ) p (then) K n 0 T () S ( ) p (write) K (\(6,*\) ') p ( resultats :) str (') p n 0 T ( ) S (write) K (\(6,') p (\(1x,5F5.1\)) str ('\) \(x\(j\),j=1,n\)) p n 0 T ( ) S (end) K ( ) p (if) K n 0 T () N (150) # (end) S ( program) p n 0 T () N 0 T () S (!--------------------------------------------------------------------) c n 0 T (! Distribution de la matrice 'x' vers la matrice distribuee 'dist_x'.) N 0 T (!--------------------------------------------------------------------) N (155) # () S (subroutine) K ( ) p (distribue) L (\( icntxt, x, n, dist_x, n_max, prow, pcol\)) p n 0 T ( ) S (implicit) K ( ) p (none) K n 0 T () S ( ) p (integer) K ( :: icntxt ) p (! Contexte \(grille de procs\)) c n 0 T () S ( ) p (integer) K ( :: n ) p (! Ordre de la matrice X) c n 0 T () S ( ) p (integer) K ( :: n_max ) p (! Ordre de la matrice locale.) c n (160) # () S ( ) p (real) K (,) p (dimension) K (\(n,n\):: x ) p (! Matrice globale X.) c n 0 T () S ( ) p (real) K (,) p (dimension) K (\(n_max,n_max\):: dist_x ) p (! Matrice locale.) c n 0 T () S ( ) p (integer) K ( :: prow, pcol ) p (! Coord. de mon proc. logique) c n 0 T () N 0 T () S ( ) p (if) K ( \(\(prow == 0\) ) p (\331) sy ( \(pcol == 0\)\) ) p (then) K ( ) p (! Emission par le ) c n (165) # () S ( ) p (! processeur \(0,0\)) c n 0 T () S ( ) p (call) K ( ) p (sgesd2d) l (\( icntxt, 2,2, x\(1,3\), n, 0, 1\)) p n 0 T ( ) S (call) K ( ) p (sgesd2d) l (\( icntxt, 2,2, x\(3,1\), n, 1, 0\)) p n 0 T ( ) S (call) K ( ) p (sgesd2d) l (\( icntxt, 2,2, x\(3,3\), n, 1, 1\)) p n 0 T ( ) S (call) K ( ) p (sgesd2d) l (\( icntxt, 2,1, x\(3,5\), n, 1, 0\)) p n (170) # ( ) S (call) K ( ) p (sgesd2d) l (\( icntxt, 1,2, x\(5,3\), n, 0, 1\)) p n 0 T ( ) S (end) K ( ) p (if) K n 0 T () N 0 T () S ( ) p (if) K ( \(\(prow == 0\) ) p (\331) sy ( \(pcol == 0\)\) ) p (then) K ( ) p (! Copie des blocs ) c n 0 T () S ( dist_x\(1:2,1:2\) = x\(1:2,1:2\) ) p (! appartenant au proc\(0,0\)) c n (175) # () S ( dist_x\(1:2,3\) = x\(1:2,5\)) p n 0 T ( dist_x\(3,1:2\) = x\(5,1:2\)) N 0 T ( dist_x\(3,3\) = x\(5,5\)) N 0 T ( ) S (end) K ( ) p (if) K n 0 T () S ( ) p (! Reception par les ) c n (180) # () S ( ) p (if) K ( \(\(prow == 0\) ) p (\331) sy ( \(pcol == 1\)\) ) p (then) K ( ) p (! autres processeurs.) c n 0 T () S ( ) p (call) K ( ) p (SGERV2D) l (\( icntxt, 2,2, dist_x\(1,1\), n_max, 0, 0\)) p n 0 T ( ) S (call) K ( ) p (SGERV2D) l (\( icntxt, 1,2, dist_x\(3,1\), n_max, 0, 0\)) p n 0 T ( ) S (end) K ( ) p (if) K n 0 T () S ( ) p (if) K ( \(\(prow == 1\) ) p (\331) sy ( \(pcol == 0\)\) ) p (then) K n (185) # () S ( ) p (call) K ( ) p (SGERV2D) l (\( icntxt, 2,2, dist_x\(1,1\), n_max, 0, 0\)) p n 0 T ( ) S (call) K ( ) p (SGERV2D) l (\( icntxt, 2,1, dist_x\(1,3\), n_max, 0, 0\)) p n 0 T ( ) S (end) K ( ) p (if) K n 0 T () S ( ) p (if) K ( \(\(prow == 1\) ) p (\331) sy ( \(pcol == 1\)\) ) p (then) K n 0 T () S ( ) p (call) K ( ) p (SGERV2D) l (\( icntxt, 2,2, dist_x\(1,1\), n_max, 0, 0\)) p n (190) # ( ) S (end) K ( ) p (if) K n 0 T () N 0 T (end) S ( ) p (subroutine) K ( ) p (distribue) L n (ex_PSGETRS.f90) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/formfeed.ps0000644000000000000000000000576014233473143014216 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (1) p n 0 T () N (formfeed.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (2) p n 0 T () N (formfeed.txt) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p n (formfeed.txt) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (5) # (5) p n (formfeed.txt) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p n (formfeed.txt) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Page: (6) 6 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (6) p n (formfeed.txt) (right) (6) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (6) footer end % of iso1dict pagesave restore showpage %%Page: (7) 7 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (7) p n (formfeed.txt) (right) (7) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (7) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/ftp2.ps0000644000000000000000000005726314233473143013307 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (/* ) c n 0 T ( * File Transfer Protocol ) N 0 T ( * ) N 0 T ( * Promela \(Protocol Meta Language\) ) N (5) # ( * ) N 0 T ( * J-Ph Cottin 12/96 \(inspired by Gerard J. Holzmann\) ) N 0 T ( */) S ( ) p n 0 T ( ) N 0 T ( ) N (10) # () S (/* ) c n 0 T ( * Global Definitions ) N 0 T ( */) S ( ) p n 0 T ( ) N 0 T () S (#define) K ( LOSS 0 ) p (/* message loss */) c ( ) p n (15) # () S (#define) K ( DUPS 0 ) p (/* duplicate msgs */) c ( ) p n 0 T () S (#define) K ( QSZ 2 ) p (/* queue size */) c ( ) p n 0 T ( ) N 0 T () S (mtype) K ( = { ) p n 0 T ( red, white, blue, ) N (20) # ( abort, ) S (accept) K (, ack, sync_ack, close, connect, ) p n 0 T ( create, data, eof, open, reject, sync, transfer, ) N 0 T ( FATAL, NON_FATAL, COMPLETE ) N 0 T ( } ) N 0 T ( ) N (25) # ( ) N 0 T () S (/*chan use_to_pres[2] = [QSZ] of {byte}; ) c n 0 T (chan pres_to_use[2] = [QSZ] of {byte}; ) N 0 T (chan pres_to_ses[2] = [QSZ] of {byte}; ) N 0 T ( ) N (30) # (chan ses_to_pres[2] = [QSZ] of {byte,byte}; ) N 0 T (chan ses_to_flow[2] = [QSZ] of {byte,byte}; ) N 0 T (chan flow_to_ses[2] = [QSZ] of {byte,byte}; ) N 0 T (chan dll_to_flow[2] = [QSZ] of {byte,byte}; ) N 0 T (chan flow_to_dll[2] = [QSZ] of {byte,byte}; ) N (35) # ( ) N 0 T (chan ses_to_fsrv[2] = [QSZ] of {byte}; ) N 0 T (chan fsrv_to_ses[2] = [QSZ] of {byte}; */) N 0 T () S ( ) p n 0 T () S (chan) k ( use_to_pres[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n (40) # () S (chan) k ( pres_to_use[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n 0 T () S (chan) k ( pres_to_ses[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n 0 T ( ) N 0 T () S (chan) k ( ses_to_pres[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n 0 T () S (chan) k ( ses_to_flow[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n (45) # () S (chan) k ( flow_to_ses[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n 0 T () S (chan) k ( dll_to_flow[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n 0 T () S (chan) k ( flow_to_dll[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n 0 T ( ) N 0 T () S (chan) k ( ses_to_fsrv[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n (50) # () S (chan) k ( fsrv_to_ses[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n 0 T ( ) N 0 T () S (/* ) c n 0 T ( * User Layer Validation Model ) N 0 T ( */) S ( ) p n (55) # ( ) N 0 T () S (proctype) K ( userprc \( ) p (bit) k ( n\) ) p n 0 T ({ ) N 0 T ( use_to_pres[n]!transfer; ) N 0 T ( ) S (if) K ( ) p n (60) # ( :: pres_to_use[n]?) S (accept) K ( ) p (\256) sy ( ) p (goto) K ( Done ) p n 0 T ( :: pres_to_use[n]?reject ) S (\256) sy ( ) p (goto) K ( Done ) p n 0 T ( :: use_to_pres[n]!abort ) S (\256) sy ( ) p (goto) K ( Aborted ) p n 0 T ( ) S (fi) K (; ) p n 0 T (Aborted: ) N (65) # ( ) S (if) K ( ) p n 0 T ( :: pres_to_use[n]?) S (accept) K ( ) p (\256) sy ( ) p (goto) K ( Done ) p n 0 T ( :: pres_to_use[n]?reject ) S (\256) sy ( ) p (goto) K ( Done ) p n 0 T ( ) S (fi) K (; ) p n 0 T (Done: ) N (70) # ( ) S (skip) K ( ) p n (ftp2.pml) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( } ) p n 0 T ( ) N 0 T ( ) N 0 T () S (/* ) c n (75) # ( * Presentation Layer Validation Model ) N 0 T ( */) S ( ) p n 0 T ( ) N 0 T () S (proctype) K ( present\() p (bit) k ( n\) ) p n 0 T ({ ) N (80) # ( ) S (byte) k ( status, uabort; ) p n 0 T ( ) N 0 T (endIDLE: ) N 0 T ( ) S (do) K ( ) p n 0 T ( :: use_to_pres[n]?transfer ) S (\256) sy ( ) p n (85) # ( uabort = 0; ) N 0 T ( ) S (break) K ( ) p n 0 T ( :: use_to_pres[n]?abort ) S (\256) sy ( ) p n 0 T ( ) S (skip) K ( ) p n 0 T ( ) S (od) K (; ) p n (90) # ( ) N 0 T (TRANSFER: ) N 0 T ( pres_to_ses[n]!transfer; ) N 0 T ( ) S (do) K ( ) p n 0 T ( :: use_to_pres[n]?abort ) S (\256) sy ( ) p n (95) # ( ) S (if) K ( ) p n 0 T ( :: \(!uabort\) ) S (\256) sy ( ) p n 0 T ( uabort = 1; ) N 0 T ( pres_to_ses[n]!abort ) N 0 T ( :: \(uabort\) ) S (\256) sy ( ) p n (100) # ( ) S (assert) K (\(1+1) p (\271) sy (2\) ) p n 0 T ( ) S (fi) K ( ) p n 0 T ( :: ses_to_pres[n]?) S (accept) K (,0 ) p (\256) sy ( ) p n 0 T ( ) S (goto) K ( DONE) p n 0 T ( :: ses_to_pres[n]?reject\(status\) ) S (\256) sy n (105) # () S ( ) p (if) K ( ) p n 0 T ( :: \(status ) S (\272) sy ( FATAL ) p (\332) sy ( uabort\) ) p (\256) sy ( ) p n 0 T ( ) S (goto) K ( FAIL ) p n 0 T ( :: \(status ) S (\272) sy ( NON_FATAL ) p (\331) sy ( !uabort\) ) p (\256) sy ( ) p n 0 T ( ) S (goto) K ( TRANSFER ) p n (110) # ( ) S (fi) K ( ) p n 0 T ( ) S (od) K ( ;) p n 0 T ( ) N 0 T (DONE: ) N 0 T ( pres_to_use[n]!) S (accept) K (; ) p n (115) # ( ) S (goto) K ( endIDLE; ) p n 0 T (FAIL: ) N 0 T ( pres_to_use[n]!reject; ) N 0 T ( ) S (goto) K ( endIDLE ) p n 0 T ( } ) N (120) # ( ) N 0 T () S (/* ) c n 0 T ( * Session Layer Validation Model ) N 0 T ( */) S ( ) p n 0 T ( ) N (125) # ( ) N 0 T () S (proctype) K ( session \() p (bit) k ( n\) ) p n 0 T ({ ) N 0 T ( ) S (bit) k ( toggle; ) p n 0 T ( ) S (byte) k ( type, status; ) p n (130) # ( ) N 0 T (endIDLE: ) N 0 T ( ) S (do) K ( ) p n 0 T ( :: pres_to_ses[n]?type ) S (\256) sy ( ) p n 0 T ( ) S (if) K ( ) p n (135) # ( :: \(type ) S (\272) sy ( transfer\) ) p (\256) sy ( ) p n 0 T ( ) S (goto) K ( DATA_OUT ) p n 0 T ( :: \(type ) S (\271) sy ( transfer\) ) p (/* ignore */) c ( ) p n 0 T ( ) S (fi) K ( ) p n 0 T ( :: flow_to_ses[n]?type, 0 ) S (\256) sy ( ) p n (140) # ( ) S (if) K ( ) p n (ftp2.pml) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( :: \(type ) p (\272) sy ( connect\) ) p (\256) sy ( ) p n 0 T ( ) S (goto) K ( DATA_IN ) p n 0 T ( :: \(type ) S (\271) sy ( connect\) ) p (/* ignore */) c ( ) p n 0 T ( ) S (fi) K ( ) p n (145) # ( ) S (od) K (; ) p n 0 T ( ) N 0 T (DATA_IN: ) S (/* 1. prepare local file fsrver */) c ( ) p n 0 T ( ses_to_fsrv[n]!create; ) N 0 T ( ) S (do) K ( ) p n (150) # ( :: fsrv_to_ses[n]?reject ) S (\256) sy ( ) p n 0 T ( ses_to_flow[n]!reject,0; ) N 0 T ( ) S (goto) K ( endIDLE ) p n 0 T ( :: fsrv_to_ses[n]?) S (accept) K ( ) p (\256) sy ( ) p n 0 T ( ses_to_flow[n]!) S (accept) K (,0; ) p n (155) # ( ) S (break) K ( ) p n 0 T ( ) S (od) K (; ) p n 0 T ( ) S (/* 2. Receive the data, upto eof */) c ( ) p n 0 T ( ) S (do) K ( ) p n 0 T ( :: flow_to_ses[n]?data,0 ) S (\256) sy ( ) p n (160) # ( ses_to_fsrv[n]!data ) N 0 T ( :: flow_to_ses[n]?eof,0 ) S (\256) sy ( ) p n 0 T ( ses_to_fsrv[n]!eof; ) N 0 T ( ) S (break) K ( ) p n 0 T ( :: pres_to_ses[n]?transfer ) S (\256) sy ( ) p n (165) # ( ses_to_pres[n]!reject\(NON_FATAL\) ) N 0 T ( :: flow_to_ses[n]?close,0 ) S (\256) sy ( ) p (/* remote user aborted */) c ( ) p n 0 T ( ses_to_fsrv[n]!close; ) N 0 T ( ) S (break) K ( ) p n 0 T ( :: ) S (timeout) K ( ) p (\256) sy ( ) p (/* got disconnect */) c ( ) p n (170) # ( ses_to_fsrv[n]!close; ) N 0 T ( ) S (goto) K ( endIDLE ) p n 0 T ( ) S (od) K (; ) p n 0 T ( ) S (/* 3. Close the connection */) c ( ) p n 0 T ( ses_to_flow[n]!close,0; ) N (175) # ( ) S (goto) K ( endIDLE; ) p n 0 T ( ) N 0 T (DATA_OUT: ) S (/* 1. prepare local file fsver */) c ( ) p n 0 T ( ses_to_fsrv[n]!open; ) N 0 T ( ) S (if) K ( ) p n (180) # ( :: fsrv_to_ses[n]?reject ) S (\256) sy ( ) p n 0 T ( ses_to_pres[n]!reject\(FATAL\); ) N 0 T ( ) S (goto) K ( endIDLE ) p n 0 T ( :: fsrv_to_ses[n]?) S (accept) K ( ) p (\256) sy ( ) p n 0 T ( ) S (skip) K ( ) p n (185) # ( ) S (fi) K (; ) p n 0 T ( ) S (/* 2. Initialize flow control */) c ( ) p n 0 T ( ses_to_flow[n]!sync,toggle; ) N 0 T ( ) S (do) K ( ) p n 0 T ( :: ) S (atomic) K ( { ) p n (190) # ( flow_to_ses[n]?sync_ack,type ) S (\256) sy ( ) p n 0 T ( ) S (if) K ( ) p n 0 T ( :: \(type) S (\271) sy ( toggle\) ) p n 0 T ( :: \(type ) S (\272) sy ( toggle\) ) p (\256) sy ( ) p (break) K ( ) p n 0 T ( ) S (fi) K ( ) p n (195) # ( } ) N 0 T ( :: ) S (timeout) K ( ) p (\256) sy ( ) p n 0 T ( ses_to_fsrv[n]!close; ) N 0 T ( ses_to_pres[n]!reject\(FATAL\); ) N 0 T ( ) S (goto) K ( endIDLE ) p n (200) # () S (od) K (; ) p n 0 T ( toggle = 1 - toggle; ) N 0 T ( ) S (/* 3. Prepare remote file fsrver */) c ( ) p n 0 T ( ses_to_flow[n]!connect,0; ) N 0 T ( ) S (if) K ( ) p n (205) # ( :: flow_to_ses[n]?reject,0 ) S (\256) sy ( ) p n 0 T ( ses_to_fsrv[n]!close; ) N 0 T ( ses_to_pres[n]!reject\(FATAL\); ) N 0 T ( ) S (goto) K ( endIDLE ) p n 0 T ( :: flow_to_ses[n]?connect,0 ) S (\256) sy ( ) p n (210) # ( ses_to_fsrv[n]!close; ) N (ftp2.pml) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ses_to_pres[n]!reject\(NON_FATAL\); ) p n 0 T ( ) S (goto) K ( endIDLE ) p n 0 T ( :: flow_to_ses[n]?) S (accept) K (,0 ) p (\256) sy ( ) p n 0 T ( ) S (skip) K ( ) p n (215) # ( :: ) S (timeout) K ( ) p (\256) sy ( ) p n 0 T ( ses_to_fsrv[n]!close; ) N 0 T ( ses_to_pres[n]!reject\(FATAL\); ) N 0 T ( ) S (goto) K ( endIDLE ) p n 0 T () S (fi) K (; ) p n (220) # ( ) S (/* 4. Transmit the data, upto eof*/) c ( ) p n 0 T () S (do) K ( ) p n 0 T ( :: fsrv_to_ses[n]?data ) S (\256) sy ( ) p n 0 T ( ses_to_flow[n]!data,0 ) N 0 T ( :: fsrv_to_ses[n]?eof ) S (\256) sy ( ) p n (225) # ( ses_to_flow[n]!eof,0; ) N 0 T ( status = COMPLETE; ) N 0 T ( ) S (break) K ( ) p n 0 T ( :: pres_to_ses[n]?abort ) S (\256) sy ( ) p (/* local user aborted */) c n 0 T () S ( ses_to_fsrv[n]!close;) p n (230) # ( ses_to_flow[n]!close,0;) N 0 T ( status = FATAL;) N 0 T ( ) S (break) K n 0 T (od) S (; ) p n 0 T ( ) S (/* 5. Close the connexion */) c ( ) p n (235) # () S (do) K ( ) p n 0 T ( :: pres_to_ses[n]?abort ) S (/* ignore */) c ( ) p n 0 T ( :: flow_to_ses[n]?close,0 ) S (\256) sy ( ) p n 0 T ( ) S (if) K ( ) p n 0 T ( :: \(status ) S (\272) sy ( COMPLETE\) ) p (\256) sy ( ) p n (240) # ( ses_to_pres[n]!) S (accept) K (,0 ) p n 0 T ( :: \(status ) S (\271) sy ( COMPLETE\) ) p (\256) sy ( ) p n 0 T ( ses_to_pres[n]!reject\(status\) ) N 0 T ( ) S (fi) K (; ) p n 0 T ( ) S (break) K ( ) p n (245) # ( :: ) S (timeout) K ( ) p (\256) sy ( ) p n 0 T ( ses_to_pres[n]!reject\(FATAL\); ) N 0 T ( ) S (break) K ( ) p n 0 T ( ) S (od) K (; ) p n 0 T ( ) S (goto) K ( endIDLE ) p n (250) # ( ) N 0 T (} ) N 0 T ( ) N 0 T () S (/* ) c n 0 T ( * File Server Validation Model ) N (255) # ( */) S ( ) p n 0 T ( ) N 0 T () S (proctype) K ( fserver \() p (bit) k ( n\) ) p n 0 T ({ ) N 0 T ( end: ) N (260) # ( ) S (do) K ( ) p n 0 T ( :: ses_to_fsrv[n]?create ) S (\256) sy ( ) p (/* incoming */) c ( ) p n 0 T ( ) S (if) K ( ) p n 0 T ( :: fsrv_to_ses[n]!reject ) N 0 T ( :: fsrv_to_ses[n]!) S (accept) K ( ) p (\256) sy ( ) p n (265) # ( ) S (do) K ( ) p n 0 T ( :: ses_to_fsrv[n]?data ) N 0 T ( :: ses_to_fsrv[n]?eof ) S (\256) sy ( ) p (break) K ( ) p n 0 T ( :: ses_to_fsrv[n]?close ) S (\256) sy ( ) p (break) K ( ) p n 0 T ( ) S (od) K ( ) p n (270) # ( ) S (fi) K ( ) p n 0 T ( :: ses_to_fsrv[n]?open ) S (\256) sy ( ) p (/* outgoing */) c ( ) p n 0 T ( ) S (if) K ( ) p n 0 T ( :: fsrv_to_ses[n]!reject ) N 0 T ( :: fsrv_to_ses[n]!) S (accept) K ( ) p (\256) sy ( ) p n (275) # ( ) S (do) K ( ) p n 0 T ( :: fsrv_to_ses[n]!data ) N 0 T ( :: fsrv_to_ses[n]!eof ) S (\256) sy ( ) p (break) K ( ) p n 0 T ( :: ses_to_fsrv[n]?close ) S (\256) sy ( ) p (break) K ( ) p n 0 T ( ) S (od) K ( ) p n (280) # ( ) S (fi) K ( ) p n (ftp2.pml) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (od) K ( ) p n 0 T (} ) N 0 T ( ) N 0 T () S (/* ) c n (285) # ( * Flow Control Laer Validation Model ) N 0 T ( */) S ( ) p n 0 T ( ) N 0 T () S (#define) K ( true 1 ) p n 0 T () S (#define) K ( false 0 ) p n (290) # ( ) N 0 T () S (#define) K ( M 4 ) p (/* range sequence numbers */) c ( ) p n 0 T () S (#define) K ( W 2 ) p (/* window size : M/2 */) c ( ) p n 0 T ( ) N 0 T () S (proctype) K ( fc\() p (bit) k ( n\) ) p n (295) # ({ ) N 0 T ( ) S (bool) k ( busy[M]; ) p (/* outstanding messages */) c ( ) p n 0 T ( ) S (byte) k ( q; ) p (/* seq# oldest unacked msg */) c ( ) p n 0 T ( ) S (byte) k ( m; ) p (/* seq# last msg received */) c ( ) p n 0 T ( ) S (byte) k ( s; ) p (/* seq# next msg to send */) c ( ) p n (300) # ( ) S (byte) k ( window; ) p (/* nr of outstanding msgs */) c ( ) p n 0 T ( ) S (byte) k ( type; ) p (/* msg type */) c ( ) p n 0 T ( ) S (bit) k ( received[M]; ) p (/* receiver housekeeping */) c ( ) p n 0 T ( ) S (bit) k ( x; ) p (/* scratch variable */) c ( ) p n 0 T ( ) S (byte) k ( p; ) p (/* seq# of last msg acked */) c ( ) p n (305) # ( ) S (byte) k ( I_buf[M], O_buf[M]; ) p (/* message buffers */) c ( ) p n 0 T ( ) N 0 T ( ) S (/* sender part */) c ( ) p n 0 T ( end: ) N 0 T ( ) S (do) K ( ) p n (310) # ( :: ) S (atomic) K ( { ) p n 0 T ( \(window < W ) S (\331) sy ( ) p (len) K ( \(ses_to_flow [n]\) > 0 ) p n 0 T ( ) S (\331) sy ( ) p (len) K ( \(flow_to_dll[n]\) < QSZ \) ) p (\256) sy ( ) p n 0 T ( ses_to_flow[n]?type,x; ) N 0 T ( window = window +1; ) N (315) # ( busy[s]= true; ) N 0 T ( O_buf[s] = type; ) N 0 T ( flow_to_dll[n]!type, s; ) N 0 T ( ) S (if) K ( ) p n 0 T ( :: \(type ) S (\271) sy ( sync\) ) p (\256) sy ( ) p n (320) # ( s = \(s+1\) %M ) N 0 T ( :: \(type ) S (\272) sy ( sync\) ) p (\256) sy ( ) p n 0 T ( window = 0; ) N 0 T ( s = M; ) N 0 T ( ) S (do) K ( ) p n (325) # ( :: \(s > 0\) ) S (\256) sy ( ) p n 0 T ( s= s - 1; ) N 0 T ( busy[s] = false ) N 0 T ( :: \(s ) S (\272) sy ( 0\) ) p (\256) sy ( ) p (break) K ( ) p n 0 T ( ) S (od) K ( ) p n (330) # ( ) S (fi) K ( ) p n 0 T ( } ) N 0 T ( :: ) S (atomic) K ( { ) p n 0 T ( \(window > 0 ) S (\331) sy ( busy[q] ) p (\272) sy ( false\) ) p (\256) sy ( ) p n 0 T ( window = window -1; ) N (335) # ( q = \(q+1\) %M ) N 0 T ( } ) N 0 T () S (#if) K ( DUPS ) p n 0 T ( :: ) S (atomic) K ( { ) p n 0 T ( \() S (len) K (\(flow_to_dll[n]\) < QSZ ) p n (340) # ( ) S (\331) sy ( window >0 ) p (\331) sy ( busy[q] ) p (\272) sy ( true\) ) p (\256) sy ( ) p n 0 T ( flow_to_dll[n]! O_buf[q], q ) N 0 T ( } ) N 0 T () S (#endif) K ( ) p n 0 T ( :: ) S (atomic) K ( { ) p n (345) # ( \() S (timeout) K ( ) p (\331) sy ( ) p (len) K (\(flow_to_dll[n]\) < QSZ ) p n 0 T ( ) S (\331) sy ( window >0 ) p (\331) sy ( busy[q] ) p (\272) sy ( true\) ) p (\256) sy ( ) p n 0 T ( flow_to_dll[n]! O_buf[q], q ) N 0 T ( } ) N 0 T () S (/* receiver part */) c ( ) p n (350) # () S (#if) K ( LOSS ) p n (ftp2.pml) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Page: (6) 6 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( :: dll_to_flow[n]?type,m ) p (/* lose any message */) c ( ) p n 0 T () S (#endif) K ( ) p n 0 T ( :: dll_to_flow[n]?type,m ) S (\256) sy ( ) p n 0 T ( ) S (if) K ( ) p n (355) # ( :: ) S (atomic) K ({ ) p n 0 T ( \(type ) S (\272) sy ( ack\) ) p (\256) sy ( ) p n 0 T ( busy[m] = false ) N 0 T ( } ) N 0 T ( :: ) S (atomic) K ({ ) p n (360) # ( \(type ) S (\272) sy ( sync\) ) p (\256) sy ( ) p n 0 T ( m = 0;) N 0 T ( ) S (do) K n 0 T () S ( :: \(m < M\) ) p (\256) sy n 0 T () S ( received[m] = 0;) p n (365) # ( m = m + 1) N 0 T () S 8 T () S 16 T () S 24 T ( :: \(m ) S (\272) sy ( M\) ) p (\256) sy n 0 T () S ( ) p (break) K n 0 T () S ( ) p (od) K ( ) p n 0 T ( }; ) N (370) # ( flow_to_dll[n]!sync_ack,0) N 0 T () S 8 T ( :: \(type ) S (\272) sy ( sync_ack\) ) p (\256) sy n 0 T () S ( flow_to_ses[n]!sync_ack,0) p n 0 T () S 8 T ( :: \(type ) S (\271) sy ( ack ) p (\331) sy ( type ) p (\271) sy ( sync ) p (\331) sy ( type ) p (\271) sy ( sync_ack\) ) p (\256) sy n 0 T () S ( ) p (if) K n (375) # () S ( :: ) p (atomic) K ( {) p n 0 T ( \(received[m] ) S (\272) sy ( true\) ) p (\256) sy n 0 T () S ( x = \(\(0 < p-m ) p (\331) sy ( p-m) p (\243) sy ( W\)) p n 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( ) S (\332) sy ( \(0 < p-m-M ) p (\331) sy ( p-m-M ) p (\243) sy (W\)\)};) p n 0 T ( ) S (if) K ( ) p n (380) # ( :: \(x\) ) S (\256) sy ( flow_to_dll[n]!ack,m) p n 0 T () S 8 T () S 16 T () S 24 T ( :: \(!x\) ) S (/* else skip */) c ( ) p n 0 T ( ) S (fi) K n 0 T () S () p 8 T () S 16 T ( :: ) S (atomic) K ( {) p n 0 T ( \(received[m] ) S (\272) sy ( false\) ) p (\256) sy n (385) # () S ( I_buf[m] = type;) p n 0 T ( received[m] = true;) N 0 T ( received[\(m-W+M\)%M] = false) N 0 T () S 8 T () S 16 T () S 24 T () S 32 T (}) N 0 T ( ) S (fi) K n (390) # () S ( ) p (fi) K n 0 T () N 0 T () S ( :: \(received[p] ) p (\272) sy ( true ) p (\331) sy ( ) p (len) K (\(flow_to_ses[n]\)\\?]//g;) p n 0 T ( $name .= $_;) N 0 T ( }) N (30) # ( $name =~ ) S (s) K (@.*/@@;) p 24 T () S 32 T () S (# drop directories) c n 0 T () S ( ) p (die) K ( ") p (Filename not found for resource ) str (", ) p (join) K (\(") p ( ) str (", @_\), ") p (\\n) str (") p n 0 T ( ) S (if) K ( $name =~ /^$/;) p n 0 T ( $name;) N 0 T (}) N (35) # () N 0 T () S (while) K ( \(<>\) {) p n 0 T ( ) S (if) K ( \(/^%%IncludeResource:/ || /^%%IncludeFont:/ || /^%%IncludeProcSet:/\) {) p n 0 T ( ) S (local) K (\($comment, @res\) = ) p (split) K (\(/\\s+/\);) p n 0 T ( ) S (local) K (\($type\) = ) p (defined) K (\($type{$comment}\) ? $type{$comment} : ) p (shift) K (\(@res\);) p n (40) # ( ) S (local) K (\($name\) = ) p (&filename) l (\(@res\);) p n 0 T ( ) S (local) K (\($inc\) = ") p (/inf/soft/infthes/demaille/include/psutils) str ("; ) p (# system include directory) c n 0 T () S ( ) p (if) K ( \() p (open) K (\(RES, $name\) || ) p (open) K (\(RES, ") p ($name$extn{$type}) str ("\) ||) p n 0 T () S 8 T ( ) S (open) K (\(RES, ") p ($inc/$name) str ("\) || ) p (open) K (\(RES, ") p ($inc/$name$extn{$type}) str ("\)\) {) p n 0 T () S 8 T ( ) S (while) K ( \(\) {) p n (45) # () S 8 T ( ) S (print) K ( $_;) p n 0 T () S 8 T ( }) N 0 T () S 8 T ( ) S (close) K (\(RES\);) p n 0 T ( } ) S (else) K ( {) p n 0 T () S 8 T ( ) S (print) K ( ") p (%%IncludeResource: ) str (", ) p (join) K (\(") p ( ) str (", $type, @res\), ") p (\\n) str (";) p n (50) # () S 8 T ( ) S (print) K ( STDERR ") p (Resource $name not found\\n) str (";) p n 0 T ( }) N 0 T ( } ) S (else) K ( {) p n 0 T ( ) S (print) K ( $_;) p n 0 T ( }) N (55) # (}) N 0 T () N 0 T () S (=head1 SEE ALSO) C n 0 T () N 0 T (blah blah. This is pod documentation.) N (60) # (blah blah) N (includeres) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/mofibida.ps0000644000000000000000000000677114233473143014204 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (#!/usr/pd/bin/runhugs) C n 0 T () S ({- A sample Haskell file -}) c n 0 T () S (module) K ( Test) p n 0 T () S (where) K n (5) # (import) S ( ) p (qualified) K ( Monad) p n 0 T () S (import) K ( Prelude ) p (hiding) K ( \(zip3\)) p n 0 T () N 0 T () S ({-#specialise qsort :: [String]->[String] #-}) C ( ) p (-- a pragma) c n 0 T () N (10) # (-- Quicksort) N 0 T () S (qsort :: Ord a => [a] -> [a] -- type annotation) C n 0 T () S (qsort ) p ([]) K ( = ) p ([]) K n 0 T () S (qsort \(x) p (:) K (xs\) = qsort elts_lt_x ++ ) p ([) K (x) p (]) K ( ++ qsort elts_greq_x) p n 0 T ( ) S (where) K n (15) # () S ( elts_lt_x = ) p ([) K (y | y ) p (\254) sy ( xs, y < x) p (]) K n 0 T () S ( elts_greq_x = ) p ([) K (y | y ) p (\254) sy ( xs, y ) p (\263) sy ( x) p (]) K n 0 T () N 0 T () S (-- Fibbonacci sequence) c n 0 T () S (fib = 1 ) p (:) K ( 1 ) p (:) K ( ) p ([) K ( a+b | \(a,b\) ) p (\254) sy ( zip fib \(tail fib\) ) p (]) K n (20) # () N 0 T () S (-- Binary tree) c n 0 T () S (data) K ( Tree a = Branch \(Tree a\) \(Tree a\) | Leaf a) p n 0 T () N 0 T () S (-- State monad from "http://haskell.org/tutorial/monads.html") c n (25) # (-- note that ">>=" should not be prited as ">\\geq") N 0 T () S (data) K ( S = Tree String) p n 0 T () S (data) K ( SM a = SM \(S ) p (\256) sy ( \(a,S\)\) ) p (-- The monadic type) c n 0 T () S (instance) K ( Monad SM ) p (where) K n 0 T () S ( ) p (-- defines state propagation) c n (30) # () S ( SM c1 >>= fc2 = SM \(\\s0 ) p (\256) sy ( ) p (let) K ( \(r,s1\) = c1 s0) p n 0 T ( SM c2 = fc2 r ) S (in) K n 0 T () S ( c2 s1\)) p n 0 T ( return k = SM \(\\s ) S (\256) sy ( \(k,s\)\)) p n 0 T () N (35) # (leap = \\n ) S (\256) sy ( \( \(n ) p (`mod`) K ( 4 == 0\)&&\(n ) p (`mod`) K ( 100 > 0\) || \(n ) p (`mod`) K ( 400 == 0\)\)) p n 0 T () N 0 T (a<->b = a ++ ") S (<->) str (" ++ b ) p (-- <-> is a new binary operator) c n 0 T () N 0 T () S (infixr) K ( 7 <-> ) p (-- infix declaration can be anywhere in the module) c n (40) # () N 0 T (-- dark corners of Haskell syntax are not pretty-printed correctly:) N 0 T () S (if) K (\345' = True ) p (-- characters outside ASCII are allowed,) c n 0 T () S (\() p (\243) sy (\253\) ) p (\316) sy ( String) p (\256) sy (String) p (\256) sy (String ) p (-- <=\253 is a valid operator name,) c n 0 T () S (a ) p (\243) sy (\253 b = a++") p (<=<<) str ("++b) p n (45) # (a |-- b = a++") S (|--) str ("++b ) p (-- operator names can even inlude double dash,) c n 0 T () S ( ) p (-- but many compilers will confuse it with a comment) c n 0 T () S (data) K ( Pair = String ) p (\316) sy (:) K ( String ) p (-- ::: is a valid constructor) c n 0 T () S (\(x,) p (hiding) K (,) p (qualified) K (\) = \(0,0,0\) ) p (-- not actually reserved words) c n 0 T () S (string_with_gaps = ") p (Hel\\ \\lo,\\HTwo\\) str n (50) # ( \\rld) S ("++) p ([) K ('\\33') p (]) K ( ) p (-- the value is "Hello,\\tworld!") c n (mofibida.hs) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/mtvplot.ps0000644000000000000000000000317114233473143014126 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (## usage mtvplot\(input,titles,filename\)) c n 0 T (##) N 0 T (## Outpluts graphs in MTV 1.4.1 curve2d format.) N 0 T (##) N (5) # (## input: is a matrix with the ordinate in the first column,) N 0 T (## each successive column is a separate curve to plot) N 0 T (## on the SEPARATE axes.) N 0 T (## titles: a list of string titles for each plot) N 0 T (## filename: the file to store the mtv file in) N (10) # () N 0 T () S (function) K ( mtvplot\(input,titles,filename\)) p n 0 T ( file=fopen\(filename,") S (w) str ("\);) p n 0 T () N 0 T () N (15) # ( ) S (for) K ( g=\(1:columns\(input\)-1\)) p n 0 T ( fprintf\(file,") S (%s\\n) str (",") p ($DATA=Curve2d) str ("\);) p n 0 T ( fprintf\(file,") S (%s %s %s\\n) str (",") p (%toplabel=\\") str (",titles\(g,:\),") p (\\") str ("\);) p n 0 T ( fprintf\(file,") S (%s\\n) str (",") p (% linetype=1) str ("\);) p n 0 T ( ) S (for) K ( x=1:rows\(input\)) p n (20) # ( fprintf\(file,") S (%f %f\\n) str (",input\(x,1\),input\(x,g+1\)\);) p n 0 T ( ) S (endfor) K n 0 T () S ( ) p (endfor) K n 0 T () S ( fclose\(file\)) p n 0 T () S (endfunction) K n (25) # () N 0 T () S ( ) p n 0 T ( ) S (mtvplot.octave) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/mutex.ps0000644000000000000000000000712414233473143013565 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (# Mutual exclusion -- for use with module sched) c n 0 T () N 0 T (# A mutex has two pieces of state -- a 'locked' bit and a queue.) N 0 T (# When the mutex is not locked, the queue is empty.) N (5) # (# Otherwise, the queue contains 0 or more \(function, argument\) pairs) N 0 T (# representing functions \(or methods\) waiting to acquire the lock.) N 0 T (# When the mutex is unlocked while the queue is not empty,) N 0 T (# the first queue entry is removed and its function\(argument\) pair called,) N 0 T (# implying it now has the lock.) N (10) # (#) N 0 T (# Of course, no multi-threading is implied -- hence the funny interface) N 0 T (# for lock, where a function is called once the lock is aquired.) N 0 T (#) N 0 T () S (class) K ( mutex:) p n (15) # () S 8 T () S (#) c n 0 T () S () p 8 T () S (# Create a new mutex -- initially unlocked) c n 0 T () S () p 8 T () S (#) c n 0 T () S () p 8 T () S (def) K ( __init__\(self\):) p n 0 T () S 8 T () S 16 T (self.locked = 0) N (20) # () S 8 T () S 16 T (self.queue = []) N 0 T () S 8 T () S (#) c n 0 T () S () p 8 T () S (# Test the locked bit of the mutex) c n 0 T () S () p 8 T () S (#) c n 0 T () S () p 8 T () S (def) K ( test\(self\):) p n (25) # () S 8 T () S 16 T () S (return) K ( self.locked) p n 0 T () S 8 T () S (#) c n 0 T () S () p 8 T () S (# Atomic test-and-set -- grab the lock if it is not set,) c n 0 T () S () p 8 T () S (# return true if it succeeded) c n 0 T () S () p 8 T () S (#) c n (30) # () S () p 8 T () S (def) K ( testandset\(self\):) p n 0 T () S 8 T () S 16 T () S (if) K ( ) p (\330) sy ( self.locked:) p n 0 T () S 8 T () S 16 T () S 24 T (self.locked = 1) N 0 T () S 8 T () S 16 T () S 24 T () S (return) K ( 1) p n 0 T () S 8 T () S 16 T () S (else) K (:) p n (35) # () S 8 T () S 16 T () S 24 T () S (return) K ( 0) p n 0 T () S 8 T () S (#) c n 0 T () S () p 8 T () S (# Lock a mutex, call the function with supplied argument) c n 0 T () S () p 8 T () S (# when it is acquired.) c n 0 T () S () p 8 T () S (# If the mutex is already locked, place function and argument) c n (40) # () S () p 8 T () S (# in the queue.) c n 0 T () S () p 8 T () S (#) c n 0 T () S () p 8 T () S (def) K ( lock\(self, function, argument\):) p n 0 T () S 8 T () S 16 T (""") S (Take it.) str (""") p n 0 T () S 8 T () S 16 T () S (if) K ( self.testandset\(\):) p n (45) # () S 8 T () S 16 T () S 24 T (function\(argument\)) N 0 T () S 8 T () S 16 T () S (else) K (:) p n 0 T () S 8 T () S 16 T () S 24 T (self.queue.append\(\(function, argument\)\)) N 0 T () S 8 T () S (#) c n 0 T () S () p 8 T () S (# Unlock a mutex. If the queue is not empty, call the next) c n (50) # () S () p 8 T () S (# function with its argument.) c n 0 T () S () p 8 T () S (#) c n 0 T () S () p 8 T () S (def) K ( unlock\(self\):) p n 0 T () S 8 T () S 16 T (""") S (Release.) str (""") p n 0 T () S 8 T () S 16 T () S (if) K ( self.queue:) p n (55) # () S 8 T () S 16 T () S 24 T (function, argument = self.queue[0]) N 0 T () S 8 T () S 16 T () S 24 T () S (del) K ( self.queue[0]) p n 0 T () S 8 T () S 16 T () S 24 T (function\(argument\)) N 0 T () S 8 T () S 16 T () S (else) K (:) p n 0 T () S 8 T () S 16 T () S 24 T (self.locked = 0) N (60) # () S 8 T () S (#) c n (mutex.py) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/pi.ps0000644000000000000000000000500114233473143013023 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (/*) c n 0 T ( This is a program to determine the distribution of digits in the) N 0 T ( fraction part of PI. It will look at the first scale digits.) N 0 T () N (5) # ( The results are left in the global variable digits.) N 0 T ( digits[0] is the number of 0's in PI.) N 0 T () N 0 T ( This program requires the math library.) N 0 T (*/) N (10) # () N 0 T () S (define) K ( ) p (pi) L ( \(\) {) p n 0 T ( ) S (auto) K ( ix, pi, save_scale, work;) p n 0 T () N 0 T ( save_scale = ) S (scale) K (;) p n (15) # ( ) S (scale) K ( += 5;) p n 0 T ( ) S (print) K ( ") p (\\n\\nCalculating PI to ) str (",) p (scale) K (,") p ( digits. Please wait . . .) str (";) p n 0 T ( pi = 4*a\(1\);) N 0 T ( ) S (scale) K ( -= 5;) p n 0 T ( work = pi;) N (20) # () N 0 T ( ) S (print) K ( ") p (\\nCounting digits. . .) str (";) p n 0 T ( ) S (for) K ( \(ix = 0; ix < 10; ix++\) digits[ix] = 0;) p n 0 T () N 0 T ( ) S (/* Extract the One's digit from pi. */) c n (25) # () S ( ) p (scale) K ( = 0;) p n 0 T ( one_digit = work / 1;) N 0 T () N 0 T ( ) S (for) K ( \(ix = save_scale; ix > 0; ix--\) {) p n 0 T () N (30) # ( ) S (/* Remove the One's digit and multiply by 10. */) c n 0 T () S ( ) p (scale) K ( = ix;) p n 0 T ( work = \(work - one_digit\) / 1 * 10;) N 0 T () N 0 T ( ) S (/* Extract the One's digit. */) c n (35) # () S ( ) p (scale) K ( = 0;) p n 0 T ( one_digit = work / 1;) N 0 T () N 0 T ( digits[one_digit] += 1;) N 0 T ( }) N (40) # () N 0 T ( ) S (/* Restore the scale. */) c n 0 T () S ( ) p (scale) K ( = save_scale;) p n 0 T () N 0 T ( ) S (/* Report. */) c n (45) # () S ( ) p (print) K ( ") p (\\n\\n) str (") p n 0 T ( ) S (print) K ( ") p (PI to ) str (", ) p (scale) K (, ") p ( digits is:\\n) str (", pi/1, ") p (\\n\\n) str (") p n 0 T ( ) S (print) K ( ") p (The frequency of the digits are:\\n) str (") p n 0 T ( ) S (for) K ( \(ix = 0; ix < 10; ix++\) {) p n 0 T ( ) S (print) K ( ") p ( ) str (", ix, ") p ( - ) str (", digits[ix], ") p ( times\\n) str (") p n (50) # ( }) N 0 T () N 0 T ( ) S (print) K ( ") p (\\n\\n) str (") p n 0 T (}) N (pi.b) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/polkaIDL.ps0000644000000000000000000001534214233473143014063 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (#ifndef) K ( __polkaIDL_hh__) p n 0 T () S (#define) K ( __polkaIDL_hh__) p n 0 T () N 0 T () S (#include) K ( ) p n (5) # () N 0 T () S (#include) K ( ) p n 0 T (_CORBA_MODULE polka {) N 0 T (_CORBA_MODULE_PUBLIC) N 0 T () N (10) # () S (#ifndef) K ( __polka_loader__) p n 0 T () S (#define) K ( __polka_loader__) p n 0 T ( ) S (class) K ( loader;) p n 0 T ( ) S (typedef) K ( loader* loader_ptr;) p n 0 T ( ) S (typedef) K ( loader_ptr loaderRef;) p n (15) # () N 0 T ( ) S (class) K ( loader_Helper {) p n 0 T ( ) S (public) K (:) p n 0 T ( ) S (static) K ( loader_ptr _nil\(\);) p n 0 T ( ) S (static) K ( CORBA::Boolean is_nil\(loader_ptr p\);) p n (20) # ( ) S (static) K ( ) p (void) k ( release\(loader_ptr p\);) p n 0 T ( ) S (static) K ( loader_ptr unmarshalObjRef\(MemBufferedStream &s\);) p n 0 T ( };) N 0 T ( ) S (typedef) K ( _CORBA_ObjRef_Var loader_var;) p n 0 T () N (25) # () S (#endif) K n 0 T (#define) S ( polka_loader_IntfRepoID ") p (IDL:polka/loader:1.0) str (") p n 0 T () N 0 T ( ) S (class) K ( _sk_loader : ) p (public) K ( ) p (virtual) K ( loader {) p n 0 T ( ) S (public) K (:) p n (30) # () N 0 T ( _sk_loader\(\) {}) N 0 T ( _sk_loader\() S (const) K ( omniORB::objectKey& k\);) p n 0 T ( ) S (virtual) K ( ~_sk_loader\(\) {}) p n 0 T ( loader_ptr _this\(\) { ) S (return) K ( loader::_duplicate\() p (this) K (\); }) p n (35) # ( ) S (void) k ( _obj_is_ready\(CORBA::BOA_ptr boa\) { boa) p (\256) sy (obj_is_ready\() p (this) K (\); }) p n 0 T () N 0 T ( ) S (protected) K (:) p n 0 T ( ) S (virtual) K ( ) p (void) k ( *_widenFromTheMostDerivedIntf\() p (const) K ( ) p (char) k ( *repoId\) {) p n 0 T ( ) S (return) K ( loader::_widenFromTheMostDerivedIntf\(repoId\);) p n (40) # ( }) N 0 T ( ) S (private) K (:) p n 0 T ( _sk_loader \() S (const) K ( _sk_loader&\);) p n 0 T ( _sk_loader &) S (operator) K (=\() p (const) K ( _sk_loader&\);) p n 0 T ( };) N (45) # () N 0 T ( ) S (class) K ( _proxy_loader : ) p (public) K ( ) p (virtual) K ( loader {) p n 0 T ( ) S (private) K (:) p n 0 T () N 0 T ( _proxy_loader \() S (const) K ( _proxy_loader&\);) p n (50) # ( _proxy_loader &) S (operator) K (=\() p (const) K ( _proxy_loader&\);) p n 0 T ( };) N 0 T () N 0 T ( ) S (class) K ( _nil_loader : ) p (public) K ( ) p (virtual) K ( loader {) p n 0 T ( ) S (public) K (:) p n (55) # ( _nil_loader\(\) { ) S (this) K (\256) sy (PR_setobj\(0\); }) p n 0 T ( ) S (virtual) K ( ~_nil_loader\(\) {}) p n 0 T ( ) S (void) k ( dump \( \){) p n 0 T ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n 0 T ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n (60) # () S ( ) p (return) K (;) p n 0 T ( }) N 0 T () N 0 T ( polkaStatus enregistreServeur \( ) S (const) K ( ) p (char) k ( * name \){) p n 0 T ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n (65) # ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n 0 T () S ( polkaStatus _result = 0;) p n 0 T ( ) S (return) K ( _result;) p n 0 T ( }) N 0 T () N (70) # ( polkaStatus enregistreClient \( ) S (const) K ( ) p (char) k ( * name, CORBA::Long & numSerie \)) p n (polkaIDL.hh) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ({) p n 0 T ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n 0 T ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n 0 T () S ( polkaStatus _result = 0;) p n 0 T ( ) S (return) K ( _result;) p n (75) # ( }) N 0 T () N 0 T ( polkaStatus supprimeServeur \( ) S (const) K ( ) p (char) k ( * name \){) p n 0 T ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n 0 T ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n (80) # () S ( polkaStatus _result = 0;) p n 0 T ( ) S (return) K ( _result;) p n 0 T ( }) N 0 T () N 0 T ( polkaStatus supprimeClient \( ) S (const) K ( ) p (char) k ( * name, CORBA::Long numSerie \){) p n (85) # ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n 0 T ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n 0 T () S ( polkaStatus _result = 0;) p n 0 T ( ) S (return) K ( _result;) p n 0 T ( }) N (90) # () N 0 T ( ) S (void) k ( terminaisonClient \( \){) p n 0 T ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n 0 T ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n 0 T () S ( ) p (return) K (;) p n (95) # ( }) N 0 T () N 0 T ( ) S (protected) K (:) p n 0 T ( ) S (virtual) K ( ) p (void) k ( *_widenFromTheMostDerivedIntf\() p (const) K ( ) p (char) k ( *repoId\) {) p n 0 T ( ) S (return) K ( loader::_widenFromTheMostDerivedIntf\(repoId\);) p n (100) # ( }) N 0 T ( };) N 0 T () N 0 T ( ) S (class) K ( loader_proxyObjectFactory : ) p (public) K ( proxyObjectFactory {) p n 0 T ( ) S (public) K (:) p n (105) # ( loader_proxyObjectFactory \(\) {}) N 0 T ( ) S (virtual) K ( ~loader_proxyObjectFactory \(\) {}) p n 0 T ( ) S (virtual) K ( ) p (const) K ( ) p (char) k ( *irRepoId\(\) ) p (const) K (;) p n 0 T ( ) S (virtual) K ( CORBA::Object_ptr newProxyObject\(Rope *r,CORBA::Octet *key,size_t ke) p n 0 T (ysize,IOP::TaggedProfileList *profiles,CORBA::Boolean release\);) N 0 T ( ) S (virtual) K ( CORBA::Boolean is_a\() p (const) K ( ) p (char) k ( *base_repoId\) ) p (const) K (;) p n (110) # ( ) S (static) K ( polka::loader_ptr _nil\(\) {) p n 0 T ( ) S (if) K ( \() p (\330) sy (__nil_loader\) {) p n 0 T ( __nil_loader = ) S (new) K ( polka::_nil_loader;) p n 0 T ( }) N 0 T ( ) S (return) K ( __nil_loader;) p n (115) # ( }) N 0 T ( ) S (private) K (:) p n 0 T ( ) S (static) K ( polka::loader_ptr __nil_loader;) p n 0 T ( };) N 0 T (};) N (120) # () N 0 T () S (#endif) K ( ) p (// __polkaIDL_hh__) c n (polkaIDL.hh) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/prosamp.ps0000644000000000000000000000160314233473143014100 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (5) # (This is an example of keyword) k n 0 T () S (This is an example of keyword strong) K n 0 T () S (This is an example of comment) c n 0 T () S (This is an example of Comment strong) C n 0 T () S (This is an example of label) l n (10) # () S (This is an example of Label strong) L n 0 T () S (This is an example of string) str n 0 T () S (This is an example of symbol) sy n 0 T () S (This is an example of error) e n (This is an example of header) (This is an example of footer) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/psmandup.ps0000644000000000000000000003442114236507210014246 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (#! /bin/sh -e) c n 0 T (# -*- ksh -*-) N 0 T () N 0 T (# psmandup --- produce a version of a PS file to print in manual Duplex.) N (5) # () N 0 T (# Copyright \(c\) 1998, 1999 Akim Demaille, Miguel Santana) N 0 T () N 0 T (# This program is free software; you can redistribute it and/or modify) N 0 T (# it under the terms of the GNU General Public License as published by) N (10) # (# the Free Software Foundation; either version 3, or \(at your option\)) N 0 T (# any later version.) N 0 T (#) N 0 T (# This program is distributed in the hope that it will be useful,) N 0 T (# but WITHOUT ANY WARRANTY; without even the implied warranty of) N (15) # (# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the) N 0 T (# GNU General Public License for more details.) N 0 T (#) N 0 T (# You should have received a copy of the GNU General Public License) N 0 T (# along with this program; if not, you can either send email to this) N (20) # (# program's maintainer or write to: The Free Software Foundation,) N 0 T (# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.) N 0 T () N 0 T (# Author: Akim Demaille ) N 0 T () N (25) # (# Get the name of the program) N 0 T () S (program=`) p (echo) K ( $0 | sed ') p (s#.*/##g) str ('`) p n 0 T () N 0 T () S (# Local vars) c n 0 T () S (address=0) p 16 T () S (# Where to put the manual feed feature) c n (30) # () S (back=:) p 8 T () S 16 T () S (# Print the back side pages.) c n 0 T () S (debug=) p n 0 T (file=) N 0 T (front=:) S 8 T () S 16 T () S (# Print the front side pages.) c n 0 T () S (output=-) p 16 T () S (# Default is stdout) c n (35) # () S (fixps=${FIXPS:-fixps}) p n 0 T (message=) N 0 T (psselect=${PSSELECT:-psselect}) N 0 T (psset=${PSSET:-psset}) N 0 T (tmpdir=`mktemp -d -t psmandup.XXXXXX` || { ) S (echo) K ( ") p ($program: Cannot create temporary dir!) str (" >&) p n 0 T (2 ; ) S (exit) K ( 1; }) p n (40) # () N 0 T () S (# These two must be kept in synch. They are opposed.) c n 0 T () S (verbose=) p (echo) K n 0 T () S (quiet=:) p n 0 T () N (45) # () S (# The version/usage strings) c n 0 T () S (version=") p (psmandup 2.1 \(GNU a2ps 4.13c\)) str n 0 T (Written by Akim Demaille.) N 0 T () N 0 T (Copyright \(c\) 1998-1999 Akim Demaille, Miguel Santana) N (50) # (This is free software; see the source for copying conditions. There is NO) N 0 T (warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.) S (") p n 0 T () N 0 T (usage=") S (\\) str n 0 T (Usage: $program FILE) N (55) # (Tries to produce a version of the PostScript FILE to print in manual) N 0 T (Duplex.) N 0 T () N 0 T (Options:) N 0 T ( -h, --help display this help and exit) N (60) # ( -v, --version display version information and exit) N 0 T ( -q, --quiet don't print informational messages) N 0 T ( -o, --output=FILE save result in FILE. If FILE is \\`-', send to stdout) N 0 T ( -n, --no-fix don't call fixps to fix PS problems in FILE) N 0 T ( -f, --front output only the front pages \(recto\) on the regular) N (65) # ( tray) N 0 T ( -b, --back output only the back pages \(verso\) on the manual) N 0 T ( feed tray) N 0 T () N 0 T (Produced output is meant for PS level 2 printers which don't support) N (psmandup) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (70) # (Duplex printing, but support Manual Feed. Once the first set of pages) str n 0 T (is printed \(odd pages\), manual feed is asked: introduce the odd pages) N 0 T (to print the even pages on the other side.) N 0 T () N 0 T (Because there is usually a short time out for manually fed jobs, you) N (75) # (should really be next to the printer. If ever the time out expired,) N 0 T (use the option -b to send only the missing part.) N 0 T () N 0 T (Environment variables FIXPS, PSSELECT and PSSET, if defined, are used) N 0 T (to find the tools.) N (80) # () N 0 T (News, updates and documentation: http://www.inf.enst.fr/~demaille/a2ps/) N 0 T (Report bugs to ) S (") p n 0 T () N 0 T (help=") S (Try \\`$program --help' for more information.) str (") p n (85) # () N 0 T () S (# Parse command line arguments.) c n 0 T () S (option_without_arguments=') p (vhsqnDbf) str (') p n 0 T () N 0 T () S (# Push a token among the arguments that will be used to notice when) c n (90) # (# we ended options/arguments parsing.) N 0 T () S (arg_sep=") p ($$--$$) str (") p n 0 T () S (set) K ( dummy ${1+") p ($@) str ("} ") p ($arg_sep) str (") p n 0 T () S (shift) K n 0 T (while) S ( ) p (test) K ( ") p (x$1) str (" != ") p (x$arg_sep) str ("; ) p (do) K n (95) # () N 0 T () S ( ) p (# Handle --option=value by splitting apart and putting back on argv.) c n 0 T () S ( ) p (case) K ( ") p ($1) str (" ) p (in) K n 0 T () S ( --*=*\)) p n 0 T ( opt=`) S (echo) K ( ") p ($1) str (" | sed -e ') p (s/=.*//) str ('`) p n (100) # ( val=`) S (echo) K ( ") p ($1) str (" | sed -e ') p (s/[^=]*=//) str ('`) p n 0 T ( ) S (shift) K n 0 T () S ( ) p (set) K ( dummy ") p ($opt) str (" ") p ($val) str (" ${1+") p ($@) str ("}) p n 0 T ( ) S (shift) K n 0 T () S ( ;;) p n (105) # () N 0 T ( -[$option_without_arguments]?*\)) N 0 T ( ) S (# Prefix $1 with x to avoid running `echo -na' for instance.) c n 0 T () S ( opt=`) p (echo) K ( ") p (x$1) str (" | sed -e ') p (s/x-\\\(.\\\).*/-\\1/) str ('`) p n 0 T ( rest=`) S (echo) K ( ") p (x$1) str (" | sed -e ') p (s/x-.\\\(.*\\\)/-\\1/) str ('`) p n (110) # ( ) S (shift) K n 0 T () S ( ) p (set) K ( dummy ") p ($opt) str (" ") p ($rest) str (" ${1+") p ($@) str ("}) p n 0 T ( ) S (shift) K n 0 T () S ( ;;) p n 0 T () N (115) # ( ) S (# This case needs to be protected so that the case `-??*' does) c n 0 T () S ( ) p (# not split long options without arguments) c n 0 T () S ( --*\)) p n 0 T ( ;;) N 0 T () N (120) # ( ) S (# This is an option with argument. Split apart and put back on argv.) c n 0 T () S ( -??*\)) p n 0 T ( opt=`) S (echo) K ( ") p (x$1) str (" | sed -e ') p (s/x-\\\(.\\\).*/-\\1/) str ('`) p n 0 T ( arg=`) S (echo) K ( ") p (x$1) str (" | sed -e ') p (s/x-.\\\(.*\\\)/\\1/) str ('`) p n 0 T ( ) S (shift) K n (125) # () S ( ) p (set) K ( dummy ") p ($opt) str (" ") p ($arg) str (" ${1+") p ($@) str ("}) p n 0 T ( ) S (shift) K n 0 T () S ( ;;) p n 0 T ( ) S (esac) K n 0 T () N (130) # () S ( ) p (# Now, handle the options. $1 is the option *only*. If it has an) c n 0 T () S ( ) p (# argument, it is now necessarily in $2 etc. Remember to shift) c n 0 T () S ( ) p (# when fetching an argument.) c n 0 T () S ( ) p (case) K ( ") p ($1) str (" ) p (in) K n 0 T () S ( -v | --v*\) ) p (echo) K ( ") p ($version) str ("; ) p (exit) K ( 0;;) p n (135) # ( -h | --h*\) ) S (echo) K ( ") p ($usage) str ("; ) p (exit) K ( 0;;) p n 0 T ( -q | -s | --s* | --q*\) verbose=:; quiet=) S (echo) K (;;) p n 0 T ( ) S (# Delay debugging so that options parsing does not appear) c n 0 T () S ( -D | --deb*\) debug=-D ;;) p n 0 T ( -o | --out*\) ) S (shift) K ( ; output=$1 ;;) p n (psmandup) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (140) # ( -b | --bac*\) front= ; back=: ;;) p n 0 T ( -f | --fro*\) front=: ; back= ;;) N 0 T ( -\) ) S (# We are working with stdin ;;) c n 0 T () S ( ) p (set) K ( dummy ") p ($@) str (" ") p ($1) str (") p n 0 T ( ) S (shift) K n (145) # () S ( ;;) p n 0 T ( -n | --no*\) fixps= ;;) N 0 T () N 0 T ( --\) ) S (# What remains are not options.) c n 0 T () S ( ) p (shift) K n (150) # () S ( ) p (while) K ( ) p (test) K ( ") p (x$1) str (" != ") p (x$arg_sep) str ("; ) p (do) K n 0 T () S ( ) p (set) K ( dummy ${1+") p ($@) str ("} ") p ($1) str (") p n 0 T ( ) S (shift) K n 0 T () S () p 8 T () S (shift) K n 0 T () S ( ) p (done) K n (155) # () S ( ) p (break) K (;;) p n 0 T () N 0 T ( -*\)) N 0 T ( ) S (echo) K ( ") p ($program: Unknown or ambiguous option \\`$1'.) str (" >&2) p n 0 T ( ) S (echo) K ( ") p ($program: Try \\`--help' for more information.) str (" >&2) p n (160) # ( ) S (exit) K ( 1;;) p n 0 T ( *\) ) S (set) K ( dummy ${1+") p ($@) str ("} ") p ($1) str (") p n 0 T ( ) S (shift) K n 0 T () S ( ;;) p n 0 T ( ) S (esac) K n (165) # () S ( ) p (shift) K n 0 T (done) N 0 T () S (# Pop the token) c n 0 T () S (shift) K n 0 T () N (170) # () N 0 T () S (# Check the number of arguments.) c n 0 T () S (case) K ( $# ) p (in) K n 0 T () S ( 0\) file=-;;) p n 0 T ( 1\) file=$1;;) N (175) # ( *\) ) S (echo) K ( ") p ($program: too many arguments) str (" 1>&2) p n 0 T ( ) S (echo) K ( ") p ($help) str (" 1>&2) p n 0 T ( ) S (exit) K ( 1;;) p n 0 T () S (esac) K n 0 T () N (180) # (if) S ( ) p (test) K ( -n ") p ($debug) str ("; ) p (then) K n 0 T () S ( ) p (# Set -x now if debugging) c n 0 T () S ( ) p (set) K ( -x) p n 0 T () S (else) K n 0 T () S ( ) p (# Temp dir. Get ready not to leave junk \(if not debugging\)) c n (185) # () S ( ) p (trap) K ( ") p (/bin/rm -rf $tmpdir) str (" 0 1 2 3 13 15) p n 0 T () S (fi) K n 0 T () N 0 T () S (# If printing from stdin, save into a tmp file) c n 0 T () S (if) K ( ) p (test) K ( $file = ') p (-) str ('; ) p (then) K n (190) # () S ( file=$tmpdir/stdin.ps) p n 0 T ( cat > $file) N 0 T () S (fi) K n 0 T () N 0 T () S (# Fix the file beforehand, so that we can really expect to find the) c n (195) # (# page numbers.) N 0 T () S (if) K ( ) p (test) K ( -n ") p ($fixps) str ("; ) p (then) K n 0 T () S ( $fixps $file -o $tmpdir/fixed.ps `$quiet -q`) p n 0 T ( file=$tmpdir/fixed.ps) N 0 T () S (fi) K n (200) # () N 0 T () S (# Get the number of pages of the document) c n 0 T () S (pagenum=`sed -ne ') p (/^%%Pages:/{) str n 0 T (s/%%Pages: \\\\\([0-9]*\\\\\).*$/\\\\1/p) N 0 T (q) N (205) # (}) S (' $file`) p n 0 T () N 0 T () S (# Make the string to get the front pages \(even, increasing\) if needed) c n 0 T () S (if) K ( ) p (test) K ( -n ") p ($front) str ("; ) p (then) K n 0 T () S ( evens=") p (1) str (") p n (psmandup) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (210) # ( i=3) p n 0 T ( ) S (# Build the string to give to psselect) c n 0 T () S ( ) p (while) K ( ) p (test) K ( $i -le $pagenum;) p n 0 T ( ) S (do) K n 0 T () S ( evens=") p ($evens,$i) str (") p n (215) # ( i=`expr $i + 2`) N 0 T ( ) S (done) K n 0 T (fi) N 0 T () N 0 T () S (# Make the string to get the back pages \(odd, decreasing\) if needed) c n (220) # () S (if) K ( ) p (test) K ( -n ") p ($back) str ("; ) p (then) K n 0 T () S ( ) p (# If the number of pages is odd, we need to insert a blank sheet) c n 0 T () S ( ) p (case) K ( ") p ($pagenum) str (" ) p (in) K n 0 T () S ( *[13579]\)) p n 0 T ( odds=") S (_) str (") p n (225) # ( i=`expr $pagenum - 1 || ) S (exit) K ( 0`) p n 0 T ( ;;) N 0 T ( *\) ) S (# Odd, and not 0, so at least >= 2) c n 0 T () S ( odds=$pagenum) p n 0 T ( i=`expr $pagenum - 2 || ) S (exit) K ( 0`) p n (230) # ( ;;) N 0 T ( ) S (esac) K n 0 T () N 0 T () S ( ) p (# Make the string to get the second half \(odd, decreasing\)) c n 0 T () S ( ) p (while) K ( ) p (test) K ( $i != 0;) p n (235) # ( ) S (do) K n 0 T () S ( odds=") p ($odds,$i) str (") p n 0 T ( i=`expr $i - 2 || ) S (exit) K ( 0`) p n 0 T ( ) S (done) K n 0 T (fi) N (240) # () N 0 T () S (# If there are both odds and evens to print, the separator is `,') c n 0 T () S (test) K ( -n ") p ($odds) str (" && ) p (test) K ( -n ") p ($evens) str (" && separator=,) p n 0 T () N 0 T () S (# Reorder the pages) c n (245) # () S ($psselect -q $evens$separator$odds $file > $tmpdir/ordered.ps) p n 0 T () N 0 T () S (# If needed, insert the manual feed request) c n 0 T () S (if) K ( ) p (test) K ( -n ") p ($back) str ("; ) p (then) K n 0 T () S ( ) p (# The option of psset to ask the manual feed. If not set,) c n (250) # () S ( ) p (# psset just does nothing.) c n 0 T () S ( pssetmanfeed=-m) p n 0 T ( ) S (# Compute the address, depending on front pages are printed or not.) c n 0 T () S ( ) p (if) K ( ) p (test) K ( -n ") p ($front) str ("; ) p (then) K n 0 T () S ( address=`expr ') p (\() str (' $pagenum + 1 ') p (\)) str (' / 2 + 1`) p n (255) # ( message=") S (\\) str n 0 T (Once the first half of the file printed, insert the sheets stack into) N 0 T (the manual feed tray to print the second half. Be aware the time out) N 0 T (if usually short. If it expired, use option -b to proceed.) S (") p n 0 T ( ) S (else) K n (260) # () S ( address=0) p n 0 T ( message=") S (Insert the front pages stack into the manual feed tray.) str (") p n 0 T ( ) S (fi) K n 0 T (fi) N 0 T () N (265) # () S (# Insert the manual feed request if needed) c n 0 T () S ($psset -n $pssetmanfeed -a $address -o$output $tmpdir/ordered.ps $debug) p n 0 T () N 0 T () S (test) K ( -n ") p ($message) str (" && $verbose ") p ($message) str (" 1>&2) p n 0 T () S (exit) K ( 0) p n (psmandup) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/report.ps0000644000000000000000000002321714233473143013737 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (5) # () p n 0 T () N 0 T () S (This is the automatic report about styles of a2ps, version 4.8.2) K n 0 T () N 0 T () N 0 T () N 0 T () N (75) # () S (Style definitions) L n 0 T () S (The reader should first note that a2ps is _not_ a powerful syntactical pretty-printer: it just handles lexical structures, i.e) str n 0 T (., if in your language) S ( IF IF == THEN THEN ELSE := IF ELSE ELSE := THEN ) p (is legal, then a2ps is not t) str n 0 T (he tool you need. It is for the same reason that you can't expect a2ps to highlight the function definitions in C.) N 0 T (In the following is described how the style sheets are defined. You can skip this section if you don't care how a2ps doe) N 0 T (s this, and if you don't expect to implement new styles.) N 0 T () N 0 T () S (Consistancy) L n (80) # () S (There are no found problems in the styles.) str n 0 T () N 0 T () N 0 T () S (Known languages) L n 0 T () N (85) # () S ( 1) p (\267) sy ( ada) p n 0 T ( 2) S (\267) sy ( c) p n 0 T ( 3) S (\267) sy ( c++) p n 0 T ( 4) S (\267) sy ( caml) p n 0 T ( 5) S (\267) sy ( claire) p n (90) # ( 6) S (\267) sy ( coq-vernacular) p n 0 T (37) S (\267) sy ( Unity) p n 0 T (38) S (\267) sy ( VERILOG) p n 0 T (39) S (\267) sy ( VHDL) p n 0 T (40) S (\267) sy ( zsh) p n (95) # () N 0 T () N 0 T () N 0 T () N 0 T () S (Description of the language styles) L n (100) # () S (1) K ( ) p (ada style) l n 0 T () N 0 T () S (\267) sy ( ) p (the abbreviation are:) str ( adb, ads.) p n 0 T () S (\267) sy ( ) p (first alphabet is:) str n (105) # () S ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'\(65-90\), 'abcdefghijklmnopqrstuvwxyz'\(97-122\), '_'\(9) p n 0 T (5\), '\)'\(41\).) N 0 T () S (\267) sy ( ) p (second alphabet is:) str n 0 T () S ('0123456789'\(48-57\), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\(65-90\), 'abcdefghijklmnopqrstu) p n 0 T (vwxyz'\(97-122\), '_'\(95\), '''\(39\).) N 0 T () S (\267) sy ( ) p (keywords, symbols and sequences recognition is case insensitive.) str n 0 T () S (\267) sy ( ) p (the keywords are:) str n (110) # () S (abort) K (, ) p (abs) K (, ) p (abstract) K (, ) p (accept) K (, ) p (access) K (, ) p (access function) K (, ) p (access procedure) K (, ) p (aliased) K () p n 0 T (, ) S (all) K (, ) p (and) K (, ) p (array) K (, ) p (at) K (, ) p (begin) K (, ) p (body) K (, ) p (case) K (, ) p (constant) K (, ) p (declare) K (, ) p (delay) K (, ) p (delta) K (, ) p (digit) K n 0 T (s) S (, ) p (do) K (, ) p (else) K (, ) p (elsif) K (, ) p (end) K (, ) p (entry) K (, ) p (exception) K (, ) p (exit) K (, ) p (for) K (, ) p (function) K (, ) p (generic) K (, ) p (goto) K (, ) p (i) K n 0 T (f) S (, ) p (in) K (, ) p (is) K (, ) p (limited) K (, ) p (loop) K (, ) p (mod) K (, ) p (new) K (, ) p (not) K (, ) p (null) K (, ) p (of) K (, ) p (or) K (, ) p (others) K (, ) p (out) K (, ) p (package) K (, ) p (pra) K n 0 T (gma) S (, ) p (private) K (, ) p (procedure) K (, ) p (protected) K (, ) p (raise) K (, ) p (range) K (, ) p (record) K (, ) p (rem) K (, ) p (renames) K (, ) p (requeue) K (,) p n 0 T ( ) S (return) K (, ) p (reverse) K (, ) p (select) K (, ) p (separate) K (, ) p (subtype) K (, ) p (tagged) K (, ) p (task) K (, ) p (terminate) K (, ) p (then) K (, ) p (type) K () p n 0 T (, ) S (until) K (, ) p (use) K (, ) p (when) K (, ) p (while) K (, ) p (with) K (, ) p (xor) K (.) p n 0 T () S (\267) sy ( ) p (the regular symbols are:) str n (130) # () S (\267) sy ( ) p (the special symbols are:) str n 0 T () S (!= ) p (\256) sy ( ) p (\271) sy (, == ) p (\256) sy ( ) p (\272) sy (, <= ) p (\256) sy ( ) p (\243) sy (, >= ) p (\256) sy ( ) p (\263) sy (, => ) p (\256) sy ( ) p (\336) sy (.) p n 0 T () S (\267) sy ( ) p (the sequences are:) str n (135) # () S (--inside$ ) p (\256) sy ( ) p (--inside) c ($, "inside" ) p (\256) sy ( ") p (inside) str (", 'inside' ) p (\256) sy ( ') p (inside) str (', package body insi) p n 0 T (de is ) S (\256) sy ( ) p (package body ) K (inside) L ( is) K (, package inside is ) p (\256) sy ( ) p (package ) K (inside) L ( is) K (, package) p n 0 T ( inside renames ) S (\256) sy ( ) p (package ) K (inside) L ( renames) K (, procedure inside renames ) p (\256) sy ( ) p (procedure) K n 0 T ( ) S (inside) l ( renames) K (, procedure inside is ) p (\256) sy ( ) p (procedure ) K (inside) l ( is) K (, procedure inside \( ) p () sy n 0 T (\256) S ( ) p (procedure ) K (inside) l ( \(, procedure inside\( ) p (\256) sy ( ) p (procedure ) K (inside) l (\(, procedure inside$) p n 0 T ( ) S (\256) sy ( ) p (procedure ) K (inside) l ($, procedure inside; ) p (\256) sy ( ) p (procedure ) K (inside) l (;, function inside r) p n 0 T (enames ) S (\256) sy ( ) p (function ) K (inside) l ( renames) K (, function inside is ) p (\256) sy ( ) p (function ) K (inside) l ( is) K (, fun) p n 0 T (ction inside \( ) S (\256) sy ( ) p (function ) K (inside) l ( \(, function inside\( ) p (\256) sy ( ) p (function ) K (inside) l (\(, funct) p n 0 T (ion inside$ ) S (\256) sy ( ) p (function ) K (inside) l ($, function inside; ) p (\256) sy ( ) p (function ) K (inside) l (;.) p n 0 T () S (\267) sy ( ) p (the verbatims are:) str n 0 T () S ("'''".) p n (155) # () S (\267) sy ( ) p (the escapes are:) str n 0 T () S ("""", "\\\\", "\\'".) p n (ada style) (Style sheets of a2ps version 4.8.2) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p n 0 T () N 0 T () N (160) # () S (25) K ( ) p (PreScript style) l n 0 T () N 0 T () S (\267) sy ( This is prescript, a language of description of textual pages. It provides by ) p n 0 T (the use of LaTeX like commands, a way to describe the pages that this program sh) N 0 T (ould produce. It can be a very good choice of destination language for people wh) N 0 T (o want to produce text to print \(e.g. pretty-printing, automating documentation ) N 0 T (etc.\) but who definitely do not want to learn postscript, nor to require the use) N 0 T ( of LaTeX.) N 0 T (It is also known as BifTeX \(Basic Instruction From LaTeX\), of ptf \(Poor Text For) N 0 T (mat\).) N (165) # (Symbol translation is always enabled in this mode.) N 0 T () S (\267) sy ( ) p (the abbreviation are:) str ( prescript, biftex, bif, pre, ptf.) p n 0 T () S (\267) sy ( ) p (first alphabet is:) str n 0 T () S ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'\(65-90\), 'abcdefghijklmnopqrstuvwxyz'\(97-122\), '\\'\(9) p n 0 T (2\), '_'\(95\).) N 0 T () S (\267) sy ( ) p (second alphabet is:) str n (170) # () S ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'\(65-90\), 'abcdefghijklmnopqrstuvwxyz'\(97-122\), '_'\(9) p n 0 T (5\).) N 0 T () S (\267) sy ( ) p (keywords, symbols and sequences recognition is case sensitive.) str n 0 T () S (\267) sy ( ) p (there are no keywords.) str n 0 T () S (\267) sy ( ) p (there are no regular symbols.) str n 0 T () S (\267) sy ( ) p (the special symbols are:) str n (175) # () S (\\$ ) p (\256) sy ( $, $ ) p (\256) sy ( , \\_ ) p (\256) sy ( _, \\% ) p (\256) sy ( %, \\& ) p (\256) sy ( &, \\# ) p (\256) sy ( #, \\\( ) p (\256) sy ( \(, \\\) ) p (\256) sy ( \), \\[ ) p (\256) sy ( [, \\] ) p () sy n 0 T (\256) S ( ], \\{ ) p (\256) sy ( {, \\| ) p (\256) sy ( |, \\} ) p (\256) sy ( }.) p n 0 T () S (\267) sy ( ) p (the sequences are:) str n 0 T () S (\\\\encoding{inside} ) p (\256) sy ( inside, %%prescript:skipinside%%prescript:piks$ ) p (\256) sy ( , %insi) p n 0 T (de$ ) S (\256) sy ( , \\\\item[inside] ) p (\256) sy ( ) p (inside) l (, \\\\section{inside} ) p (\256) sy ( ) p (inside) L (, \\\\subsection{insi) p n 0 T (de} ) S (\256) sy ( ) p (inside) l (, \\\\subsubsection{inside} ) p (\256) sy ( ) p (inside) l (, \\\\header{inside}$ ) p (\256) sy ( inside, \\\\) p n 0 T (footer{inside}$ ) S (\256) sy ( inside, \\\\textbf{inside} ) p (\256) sy ( ) p (inside) K (, \\\\textit{inside} ) p (\256) sy ( ) p (inside) k () p n 0 T (, \\\\textbi{inside} ) S (\256) sy ( ) p (inside) K (, \\\\textrm{inside} ) p (\256) sy ( ) p (inside) str (, \\\\textsy{inside} ) p (\256) sy ( ) p (inside) sy () p n 0 T (, \\\\texttt{inside} ) S (\256) sy ( inside, \\\\keyword{inside} ) p (\256) sy ( ) p (inside) k (, \\\\Keyword{inside} ) p (\256) sy ( ) p (i) K n 0 T (nside) S (, \\\\comment{inside} ) p (\256) sy ( ) p (inside) c (, \\\\Comment{inside} ) p (\256) sy ( ) p (inside) C (, \\\\label{inside}) p n 0 T ( ) S (\256) sy ( ) p (inside) l (, \\\\Label{inside} ) p (\256) sy ( ) p (inside) L (, \\\\string{inside} ) p (\256) sy ( ) p (inside) str (, \\\\magicbf{inside) p n 0 T (} ) S (\256) sy ( ) p (inside) K (, \\\\magicit{inside} ) p (\256) sy ( ) p (inside) k (, \\\\magicbi{inside} ) p (\256) sy ( ) p (inside) K (, \\\\magicrm{) p n 0 T (inside} ) S (\256) sy ( ) p (inside) str (, \\\\magicsy{inside} ) p (\256) sy ( ) p (inside) sy (, \\\\magictt{inside} ) p (\256) sy ( inside, \\\\verb+) p n 0 T (inside+ ) S (\256) sy ( inside, \\\\verb!inside! ) p (\256) sy ( inside, \\\\verb|inside| ) p (\256) sy ( inside, \\\\verb#ins) p n 0 T (ide# ) S (\256) sy ( inside, \\\\verb=inside= ) p (\256) sy ( inside.) p n 0 T () S (\267) sy ( ) p (there are no verbatims.) str n 0 T () S (\267) sy ( ) p (there are no escapes.) str n 0 T () N 0 T () N (PreScript style) (Style sheets of a2ps version 4.8.2) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/run-help.ps0000644000000000000000000000221414233473143014150 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (#! /bin/zsh) c n 0 T (# zsh script to peruse the help directory) N 0 T (#) N 0 T () S (if) K ( [[ $1 = ") p (-l) str (" ]]; ) p (then) K n (5) # () S ( ) p (if) K ( [[ ${HELPDIR:-} ) p (\330) sy (= "" ]]; ) p (then) K n 0 T () S ( ) p (echo) K ( ') p (Here is a list of topics for which help is available:) str (') p n 0 T ( ) S (echo) K ( "") p n 0 T ( ls $HELPDIR) N 0 T ( ) S (else) K n (10) # () S ( ) p (echo) K ( ') p (There is no help available at this time) str (') p n 0 T ( ) S (fi) K n 0 T (elif) S ( [[ ${HELPDIR:-} ) p (\330) sy (= "" && -r $HELPDIR/$1 ]]) p n 0 T () S (then) K n 0 T () S ( ${=PAGER:-more} $HELPDIR/$1) p n (15) # () S (else) K n 0 T () S ( man $1) p n 0 T () S (fi) K n (run-help) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/s-garnam.ps0000644000000000000000000006006014233473143014126 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (------------------------------------------------------------------------------) c n 0 T (-- --) N 0 T (-- GLADE COMPONENTS --) N 0 T (-- --) N (5) # (-- S Y S T E M . G A R L I C . N A M I N G --) N 0 T (-- --) N 0 T (-- B o d y --) N 0 T (-- --) N 0 T (-- --) N (10) # (-- Copyright \(C\) 1996,1997 Free Software Foundation, Inc. --) N 0 T (-- --) N 0 T (-- GARLIC is free software; you can redistribute it and/or modify it under --) N 0 T (-- terms of the GNU General Public License as published by the Free Soft- --) N 0 T (-- ware Foundation; either version 3, or \(at your option\) any later ver- --) N (15) # (-- sion. GARLIC is distributed in the hope that it will be useful, but --) N 0 T (-- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABI- --) N 0 T (-- LITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --) N 0 T (-- License for more details. You should have received a copy of the GNU --) N 0 T (-- General Public License distributed with GARLIC; see file COPYING. If --) N (20) # (-- not, write to the Free Software Foundation, 59 Temple Place - Suite 330, --) N 0 T (-- Boston, MA 02111-1307, USA. --) N 0 T (-- --) N 0 T (-- As a special exception, if other files instantiate generics from this --) N 0 T (-- unit, or you link this unit with other files to produce an executable, --) N (25) # (-- this unit does not by itself cause the resulting executable to be --) N 0 T (-- covered by the GNU General Public License. This exception does not --) N 0 T (-- however invalidate any other reasons why the executable file might be --) N 0 T (-- covered by the GNU Public License. --) N 0 T (-- --) N (30) # (-- GLADE is maintained by ACT Europe. --) N 0 T (-- \(email: glade-report@act-europe.fr\) --) N 0 T (-- --) N 0 T (------------------------------------------------------------------------------) N 0 T () N (35) # () S (with) K ( Ada.Exceptions;) p n 0 T () S (with) K ( Interfaces.C; ) p (use) K ( Interfaces.C;) p n 0 T () S (with) K ( Interfaces.C.Strings; ) p (use) K ( Interfaces.C.Strings;) p n 0 T () S (with) K ( System.Garlic.Constants; ) p (use) K ( System.Garlic.Constants;) p n 0 T () S (with) K ( System.Garlic.OS_Lib; ) p (use) K ( System.Garlic.OS_Lib;) p n (40) # () S (with) K ( Unchecked_Conversion;) p n 0 T () S (with) K ( Unchecked_Deallocation;) p n 0 T () N 0 T () S (package body ) K (System.Garlic.Naming) L ( is) K n 0 T () N (45) # () S ( ) p (use) K ( Thin;) p n 0 T () N 0 T ( Default_Buffer_Size : ) S (constant) K ( := 16384;) p n 0 T () N 0 T ( ) S (procedure ) K (Free) l ( is) K n (50) # () S ( ) p (new) K ( Unchecked_Deallocation \(char_array, char_array_access\);) p n 0 T () N 0 T ( ) S (function ) K (Allocate) l ( \(Size : Positive := Default_Buffer_Size\)) p n 0 T ( ) S (return) K ( char_array_access;) p n 0 T ( ) S (-- Allocate a buffer.) c n (55) # () N 0 T () S ( ) p (function ) K (Parse_Entry) l ( \(Host : Hostent\)) p n 0 T ( ) S (return) K ( Host_Entry;) p n 0 T ( ) S (-- Parse an entry.) c n 0 T () N (60) # () S ( ) p (procedure ) K (Raise_Naming_Error) l n 0 T () S ( \(Errno : ) p (in) K ( C.Int;) p n 0 T ( Message : ) S (in) K ( String\);) p n 0 T ( ) S (-- Raise the exception Naming_Error with an appropriate error message.) c n 0 T () N (65) # () S ( ) p (protected) K ( Gethost_In_Progress ) p (is) K n 0 T () S ( ) p (entry) K ( Lock;) p n 0 T ( ) S (procedure ) K (Unlock) l (;) p n 0 T ( ) S (private) K n 0 T () S ( Locked : Boolean := False;) p n (70) # ( ) S (end) K ( Gethost_In_Progress;) p n (s-garnam.adb) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (-- We have to protect this.) c n 0 T () N 0 T () S ( ) p (----------------) c n 0 T () S ( ) p (-- Address_Of --) c n (75) # () S ( ) p (----------------) c n 0 T () N 0 T () S ( ) p (function ) K (Address_Of) l ( \(Something : String\)) p n 0 T ( ) S (return) K ( Address) p n 0 T ( ) S (is) K n (80) # () S ( ) p (begin) K n 0 T () S ( ) p (if) K ( Is_IP_Address \(Something\) ) p (then) K n 0 T () S ( ) p (return) K ( Value \(Something\);) p n 0 T ( ) S (else) K n 0 T () S ( ) p (return) K ( Info_Of \(Something\) .Addresses \(1\);) p n (85) # ( ) S (end) K ( ) p (if) K (;) p n 0 T ( ) S (end) K ( Address_Of;) p n 0 T () N 0 T ( ) S (------------) c n 0 T () S ( ) p (-- Adjust --) c n (90) # () S ( ) p (------------) c n 0 T () N 0 T () S ( ) p (procedure ) K (Adjust) l ( \(Object : ) p (in) K ( ) p (out) K ( Host_Entry\)) p n 0 T ( ) S (is) K n 0 T () S ( Aliases : String_Array ) p (renames) K ( Object.Aliases;) p n (95) # ( ) S (begin) K n 0 T () S ( Object.Name := ) p (new) K ( String'\(Object.Name.) p (all) K (\);) p n 0 T ( ) S (for) K ( I ) p (in) K ( Aliases'Range ) p (loop) K n 0 T () S ( Aliases \(I\) := ) p (new) K ( String'\(Aliases \(I\) .) p (all) K (\);) p n 0 T ( ) S (end) K ( ) p (loop) K (;) p n (100) # ( ) S (end) K ( Adjust;) p n 0 T () N 0 T ( ) S (--------------) c n 0 T () S ( ) p (-- Allocate --) c n 0 T () S ( ) p (--------------) c n (105) # () N 0 T () S ( ) p (function ) K (Allocate) l n 0 T () S ( \(Size : Positive := Default_Buffer_Size\)) p n 0 T ( ) S (return) K ( char_array_access) p n 0 T ( ) S (is) K n (110) # () S ( ) p (begin) K n 0 T () S ( ) p (return) K ( ) p (new) K ( char_array \(1 .. size_t \(Size\)\);) p n 0 T ( ) S (end) K ( Allocate;) p n 0 T () N 0 T ( ) S (-----------------) c n (115) # () S ( ) p (-- Any_Address --) c n 0 T () S ( ) p (-----------------) c n 0 T () N 0 T () S ( ) p (function ) K (Any_Address) l ( return) K ( Address) p n 0 T ( ) S (is) K n (120) # () S ( ) p (begin) K n 0 T () S ( ) p (return) K ( To_Address \(Inaddr_Any\);) p n 0 T ( ) S (end) K ( Any_Address;) p n 0 T () N 0 T ( ) S (--------------) c n (125) # () S ( ) p (-- Finalize --) c n 0 T () S ( ) p (--------------) c n 0 T () N 0 T () S ( ) p (procedure ) K (Finalize) l ( \(Object : ) p (in) K ( ) p (out) K ( Host_Entry\)) p n 0 T ( ) S (is) K n (130) # () S ( Aliases : String_Array ) p (renames) K ( Object.Aliases;) p n 0 T ( ) S (procedure ) K (Free) l ( is) K n 0 T () S ( ) p (new) K ( Unchecked_Deallocation \(String, String_Access\);) p n 0 T ( ) S (begin) K n 0 T () S ( Free \(Object.Name\);) p n (135) # ( ) S (for) K ( I ) p (in) K ( Aliases'Range ) p (loop) K n 0 T () S ( Free \(Aliases \(I\)\);) p n 0 T ( ) S (end) K ( ) p (loop) K (;) p n 0 T ( ) S (end) K ( Finalize;) p n 0 T () N (140) # ( ) S (-------------------------) c n (s-garnam.adb) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (-- Gethost_In_Progress --) c n 0 T () S ( ) p (-------------------------) c n 0 T () N 0 T () S ( ) p (protected) K ( ) p (body) K ( Gethost_In_Progress ) p (is) K n (145) # () N 0 T () S ( ) p (----------) c n 0 T () S ( ) p (-- Lock --) c n 0 T () S ( ) p (----------) c n 0 T () N (150) # () S ( ) p (entry) K ( Lock ) p (when) K ( ) p (not) K ( Locked ) p (is) K n 0 T () S ( ) p (begin) K n 0 T () S ( Locked := True;) p n 0 T ( ) S (end) K ( Lock;) p n 0 T () N (155) # ( ) S (------------) c n 0 T () S ( ) p (-- Unlock --) c n 0 T () S ( ) p (------------) c n 0 T () N 0 T () S ( ) p (procedure ) K (Unlock) l ( is) K n (160) # () S ( ) p (begin) K n 0 T () S ( Locked := False;) p n 0 T ( ) S (end) K ( Unlock;) p n 0 T () N 0 T ( ) S (end) K ( Gethost_In_Progress;) p n (165) # () N 0 T ( ) S (---------------) c n 0 T () S ( ) p (-- Host_Name --) c n 0 T () S ( ) p (---------------) c n 0 T () N (170) # () S ( ) p (function ) K (Host_Name) l ( return) K ( String) p n 0 T ( ) S (is) K n 0 T () S ( Buff : char_array_access := Allocate;) p n 0 T ( Buffer : ) S (constant) K ( chars_ptr := To_Chars_Ptr \(Buff\);) p n 0 T ( Res : ) S (constant) K ( int := C_Gethostname \(Buffer, Buff'Length\);) p n (175) # ( ) S (begin) K n 0 T () S ( ) p (if) K ( Res = Failure ) p (then) K n 0 T () S ( Free \(Buff\);) p n 0 T ( Raise_Naming_Error \(C_Errno, ""\);) N 0 T ( ) S (end) K ( ) p (if) K (;) p n (180) # ( ) S (declare) K n 0 T () S ( Result : ) p (constant) K ( String := Value \(Buffer\);) p n 0 T ( ) S (begin) K n 0 T () S ( Free \(Buff\);) p n 0 T ( ) S (return) K ( Result;) p n (185) # ( ) S (end) K (;) p n 0 T ( ) S (end) K ( Host_Name;) p n 0 T () N 0 T ( ) S (-----------) c n 0 T () S ( ) p (-- Image --) c n (190) # () S ( ) p (-----------) c n 0 T () N 0 T () S ( ) p (function ) K (Image) l ( \(Add : Address\) ) p (return) K ( String) p n 0 T ( ) S (is) K n 0 T () N (195) # () S ( ) p (function ) K (Image) l ( \(A : Address_Component\) ) p (return) K ( String;) p n 0 T ( ) S (-- Return the string corresponding to its argument without) c n 0 T () S ( ) p (-- the leading space.) c n 0 T () N 0 T () S ( ) p (-----------) c n (200) # () S ( ) p (-- Image --) c n 0 T () S ( ) p (-----------) c n 0 T () N 0 T () S ( ) p (function ) K (Image) l ( \(A : Address_Component\)) p n 0 T ( ) S (return) K ( String) p n (205) # ( ) S (is) K n 0 T () S ( Im : ) p (constant) K ( String := Address_Component'Image \(A\);) p n 0 T ( ) S (begin) K n 0 T () S ( ) p (return) K ( Im \(2 .. Im'Last\);) p n 0 T ( ) S (end) K ( Image;) p n (210) # () N (s-garnam.adb) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (begin) K n 0 T () S ( ) p (return) K ( Image \(Add.H1\) & ") p (.) str (" & Image \(Add.H2\) & ") p (.) str (" &) p n 0 T ( Image \(Add.H3\) & ") S (.) str (" & Image \(Add.H4\);) p n 0 T ( ) S (end) K ( Image;) p n (215) # () N 0 T ( ) S (-------------) c n 0 T () S ( ) p (-- Info_Of --) c n 0 T () S ( ) p (-------------) c n 0 T () N (220) # () S ( ) p (function ) K (Info_Of) l ( \(Name : String\)) p n 0 T ( ) S (return) K ( Host_Entry) p n 0 T ( ) S (is) K n 0 T () S ( Res : Hostent_Access;) p n 0 T ( C_Name : chars_ptr := New_String \(Name\);) N (225) # ( ) S (begin) K n 0 T () S ( Gethost_In_Progress.Lock;) p n 0 T ( Res := C_Gethostbyname \(C_Name\);) N 0 T ( Free \(C_Name\);) N 0 T ( ) S (if) K ( Res = ) p (null) K ( ) p (then) K n (230) # () S ( Gethost_In_Progress.Unlock;) p n 0 T ( Raise_Naming_Error \(C_Errno, Name\);) N 0 T ( ) S (end) K ( ) p (if) K (;) p n 0 T ( ) S (declare) K n 0 T () S ( Result : ) p (constant) K ( Host_Entry := Parse_Entry \(Res.) p (all) K (\);) p n (235) # ( ) S (begin) K n 0 T () S ( Gethost_In_Progress.Unlock;) p n 0 T ( ) S (return) K ( Result;) p n 0 T ( ) S (end) K (;) p n 0 T ( ) S (end) K ( Info_Of;) p n (240) # () N 0 T ( ) S (-------------) c n 0 T () S ( ) p (-- Info_Of --) c n 0 T () S ( ) p (-------------) c n 0 T () N (245) # () S ( ) p (function ) K (Info_Of) l ( \(Addr : Address\)) p n 0 T ( ) S (return) K ( Host_Entry) p n 0 T ( ) S (is) K n 0 T () S ( ) p (function ) K (Convert) l ( is) K n 0 T () S ( ) p (new) K ( Unchecked_Conversion \(Source ) p (\336) sy ( In_Addr_Access,) p n (250) # ( Target ) S (\336) sy ( chars_ptr\);) p n 0 T ( Temp : ) S (aliased) K ( In_Addr := To_In_Addr \(Addr\);) p n 0 T ( C_Addr : ) S (constant) K ( chars_ptr := Convert \(Temp'Unchecked_Access\);) p n 0 T ( Res : Hostent_Access;) N 0 T ( ) S (begin) K n (255) # () S ( Gethost_In_Progress.Lock;) p n 0 T ( Res := C_Gethostbyaddr \(C_Addr,) N 0 T ( C.Int \(Temp'Size / CHAR_BIT\),) N 0 T ( Af_Inet\);) N 0 T ( ) S (if) K ( Res = ) p (null) K ( ) p (then) K n (260) # () S ( Gethost_In_Progress.Unlock;) p n 0 T ( Raise_Naming_Error \(C_Errno, Image \(Addr\)\);) N 0 T ( ) S (end) K ( ) p (if) K (;) p n 0 T ( ) S (declare) K n 0 T () S ( Result : ) p (constant) K ( Host_Entry := Parse_Entry \(Res.) p (all) K (\);) p n (265) # ( ) S (begin) K n 0 T () S ( Gethost_In_Progress.Unlock;) p n 0 T ( ) S (return) K ( Result;) p n 0 T ( ) S (end) K (;) p n 0 T ( ) S (end) K ( Info_Of;) p n (270) # () N 0 T ( ) S (------------------------) c n 0 T () S ( ) p (-- Info_Of_Name_Or_IP --) c n 0 T () S ( ) p (------------------------) c n 0 T () N (275) # () S ( ) p (function ) K (Info_Of_Name_Or_IP) l ( \(Something : String\)) p n 0 T ( ) S (return) K ( Host_Entry) p n 0 T ( ) S (is) K n 0 T () S ( ) p (begin) K n 0 T () S ( ) p (if) K ( Is_IP_Address \(Something\) ) p (then) K n (280) # () S ( ) p (return) K ( Info_Of \(Value \(Something\)\);) p n (s-garnam.adb) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (else) K n 0 T () S ( ) p (return) K ( Info_Of \(Something\);) p n 0 T ( ) S (end) K ( ) p (if) K (;) p n 0 T ( ) S (end) K ( Info_Of_Name_Or_IP;) p n (285) # () N 0 T ( ) S (-------------------) c n 0 T () S ( ) p (-- Is_Ip_Address --) c n 0 T () S ( ) p (-------------------) c n 0 T () N (290) # () S ( ) p (function ) K (Is_IP_Address) l ( \(Something : String\)) p n 0 T ( ) S (return) K ( Boolean) p n 0 T ( ) S (is) K n 0 T () S ( First : ) p (constant) K ( Natural := Character'Pos \(Something \(Something'First\)\);) p n 0 T ( ) S (begin) K n (295) # () S ( ) p (return) K ( First ) p (\263) sy ( Character'Pos \(') p (0) str ('\) ) p (and) K ( ) p (then) K n 0 T () S ( First ) p (\243) sy ( Character'Pos \(') p (9) str ('\);) p n 0 T ( ) S (end) K ( Is_IP_Address;) p n 0 T () N 0 T ( ) S (-------------) c n (300) # () S ( ) p (-- Name_Of --) c n 0 T () S ( ) p (-------------) c n 0 T () N 0 T () S ( ) p (function ) K (Name_Of) l ( \(Something : String\)) p n 0 T ( ) S (return) K ( String) p n (305) # ( ) S (is) K n 0 T () S ( Hostent : ) p (constant) K ( Host_Entry := Info_Of_Name_Or_IP \(Something\);) p n 0 T ( ) S (begin) K n 0 T () S ( ) p (if) K ( Hostent.Name = ) p (null) K ( ) p (then) K n 0 T () S ( Ada.Exceptions.Raise_Exception \(Naming_Error'Identity,) p n (310) # ( ") S (No name for ) str (" & Something\);) p n 0 T ( ) S (end) K ( ) p (if) K (;) p n 0 T ( ) S (return) K ( Hostent.Name.) p (all) K (;) p n 0 T ( ) S (end) K ( Name_Of;) p n 0 T () N (315) # ( ) S (-----------------) c n 0 T () S ( ) p (-- Parse_Entry --) c n 0 T () S ( ) p (-----------------) c n 0 T () N 0 T () S ( ) p (function ) K (Parse_Entry) l ( \(Host : Hostent\)) p n (320) # ( ) S (return) K ( Host_Entry) p n 0 T ( ) S (is) K n 0 T () S ( C_Aliases : ) p (constant) K ( Thin.Chars_Ptr_Array :=) p n 0 T ( Chars_Ptr_Pointers.Value \(Host.H_Aliases\);) N 0 T ( C_Addr : ) S (constant) K ( In_Addr_Access_Array :=) p n (325) # ( In_Addr_Access_Pointers.Value) N 0 T ( \(Host.H_Addr_List\);) N 0 T ( Result : Host_Entry \(N_Aliases ) S (\336) sy ( C_Aliases'Length - 1,) p n 0 T ( N_Addresses ) S (\336) sy ( C_Addr'Length - 1\);) p n 0 T ( ) S (begin) K n (330) # () S ( Result.Name := ) p (new) K ( String'\(Value \(Host.H_Name\)\);) p n 0 T ( ) S (for) K ( I ) p (in) K ( 1 .. Result.Aliases'Last ) p (loop) K n 0 T () S ( ) p (declare) K n 0 T () S ( Index : Natural := I - 1 + Natural \(C_Aliases'First\);) p n 0 T ( Current : chars_ptr ) S (renames) K ( C_Aliases \(size_t \(Index\)\);) p n (335) # ( ) S (begin) K n 0 T () S ( Result.Aliases \(I\) := ) p (new) K ( String'\(Value \(Current\)\);) p n 0 T ( ) S (end) K (;) p n 0 T ( ) S (end) K ( ) p (loop) K (;) p n 0 T ( ) S (for) K ( I ) p (in) K ( Result.Addresses'Range ) p (loop) K n (340) # () S ( ) p (declare) K n 0 T () S ( Index : Natural := I - 1 + Natural \(C_Addr'First\);) p n 0 T ( Current : In_Addr_Access ) S (renames) K ( C_Addr \(Index\);) p n 0 T ( ) S (begin) K n 0 T () S ( Result.Addresses \(I\) := To_Address \(Current.) p (all) K (\);) p n (345) # ( ) S (end) K (;) p n 0 T ( ) S (end) K ( ) p (loop) K (;) p n 0 T ( ) S (return) K ( Result;) p n 0 T ( ) S (end) K ( Parse_Entry;) p n 0 T () N (350) # ( ) S (------------------------) c n (s-garnam.adb) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Page: (6) 6 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (-- Raise_Naming_Error --) c n 0 T () S ( ) p (------------------------) c n 0 T () N 0 T () S ( ) p (procedure ) K (Raise_Naming_Error) l n (355) # () S ( \(Errno : ) p (in) K ( C.Int;) p n 0 T ( Message : ) S (in) K ( String\)) p n 0 T ( ) S (is) K n 0 T () N 0 T () S ( ) p (function ) K (Error_Message) l ( return) K ( String;) p n (360) # ( ) S (-- Return the message according to Errno.) c n 0 T () N 0 T () S ( ) p (-------------------) c n 0 T () S ( ) p (-- Error_Message --) c n 0 T () S ( ) p (-------------------) c n (365) # () N 0 T () S ( ) p (function ) K (Error_Message) l ( return) K ( String ) p (is) K n 0 T () S ( ) p (begin) K n 0 T () S ( ) p (case) K ( Errno ) p (is) K n 0 T () S ( ) p (when) K ( Host_Not_Found ) p (\336) sy ( ) p (return) K ( ") p (Host not found) str (";) p n (370) # ( ) S (when) K ( Try_Again ) p (\336) sy ( ) p (return) K ( ") p (Try again) str (";) p n 0 T ( ) S (when) K ( No_Recovery ) p (\336) sy ( ) p (return) K ( ") p (No recovery) str (";) p n 0 T ( ) S (when) K ( No_Address ) p (\336) sy ( ) p (return) K ( ") p (No address) str (";) p n 0 T ( ) S (when) K ( ) p (others) K ( ) p (\336) sy ( ) p (return) K ( ") p (Unknown error) str (" &) p n 0 T ( C.Int'Image \(Errno\);) N (375) # ( ) S (end) K ( ) p (case) K (;) p n 0 T ( ) S (end) K ( Error_Message;) p n 0 T () N 0 T ( ) S (begin) K n 0 T () S ( Ada.Exceptions.Raise_Exception \(Naming_Error'Identity,) p n (380) # ( Error_Message & ") S (: ) str (" & Message\);) p n 0 T ( ) S (end) K ( Raise_Naming_Error;) p n 0 T () N 0 T ( ) S (----------------) c n 0 T () S ( ) p (-- To_Address --) c n (385) # () S ( ) p (----------------) c n 0 T () N 0 T () S ( ) p (function ) K (To_Address) l ( \(Addr : In_Addr\) ) p (return) K ( Address) p n 0 T ( ) S (is) K n 0 T () S ( ) p (begin) K n (390) # () S ( ) p (return) K ( \(H1 ) p (\336) sy ( Address_Component \(Addr.S_B1\),) p n 0 T ( H2 ) S (\336) sy ( Address_Component \(Addr.S_B2\),) p n 0 T ( H3 ) S (\336) sy ( Address_Component \(Addr.S_B3\),) p n 0 T ( H4 ) S (\336) sy ( Address_Component \(Addr.S_B4\)\);) p n 0 T ( ) S (end) K ( To_Address;) p n (395) # () N 0 T ( ) S (----------------) c n 0 T () S ( ) p (-- To_In_Addr --) c n 0 T () S ( ) p (----------------) c n 0 T () N (400) # () S ( ) p (function ) K (To_In_Addr) l ( \(Addr : Address\) ) p (return) K ( In_Addr) p n 0 T ( ) S (is) K n 0 T () S ( ) p (begin) K n 0 T () S ( ) p (return) K ( \(S_B1 ) p (\336) sy ( unsigned_char \(Addr.H1\),) p n 0 T ( S_B2 ) S (\336) sy ( unsigned_char \(Addr.H2\),) p n (405) # ( S_B3 ) S (\336) sy ( unsigned_char \(Addr.H3\),) p n 0 T ( S_B4 ) S (\336) sy ( unsigned_char \(Addr.H4\)\);) p n 0 T ( ) S (end) K ( To_In_Addr;) p n 0 T () N 0 T ( ) S (-----------) c n (410) # () S ( ) p (-- Value --) c n 0 T () S ( ) p (-----------) c n 0 T () N 0 T () S ( ) p (function ) K (Value) l ( \(Add : String\) ) p (return) K ( Address) p n 0 T ( ) S (is) K n (415) # () S ( ) p (function ) K (Convert) l ( is) K n 0 T () S ( ) p (new) K ( Unchecked_Conversion \(Source ) p (\336) sy ( unsigned_long,) p n 0 T ( Target ) S (\336) sy ( In_Addr\);) p n 0 T ( C_Add : chars_ptr := New_String \(Add\);) N 0 T ( Converted : ) S (constant) K ( In_Addr := Convert \(C_Inet_Addr \(C_Add\)\);) p n (420) # ( ) S (begin) K n (s-garnam.adb) (right) (6) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (6) footer end % of iso1dict pagesave restore showpage %%Page: (7) 7 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( Free \(C_Add\);) p n 0 T ( ) S (return) K ( \(H1 ) p (\336) sy ( Address_Component \(Converted.S_B1\),) p n 0 T ( H2 ) S (\336) sy ( Address_Component \(Converted.S_B2\),) p n 0 T ( H3 ) S (\336) sy ( Address_Component \(Converted.S_B3\),) p n (425) # ( H4 ) S (\336) sy ( Address_Component \(Converted.S_B4\)\);) p n 0 T ( ) S (end) K ( Value;) p n 0 T () N 0 T () S (end) K ( System.Garlic.Naming;) p n (s-garnam.adb) (right) (7) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (7) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/snacc.ps0000644000000000000000000001431014233473143013505 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (-- This file is extracted from the Snacc distribution.) c n 0 T (-- Parts have be cut to win bytes, and the result is probably meaningless.) N 0 T (--) N 0 T () N (5) # () S (RFC1213-MIB DEFINITIONS ::= ) p (BEGIN) L n 0 T () N 0 T () S ( ) p (IMPORTS) L n 0 T () S ( mgmt, NetworkAddress, ) p (IpAddress) k (, Counter, ) p (Gauge) k (,) p n 0 T ( ) S (TimeTicks) k n (10) # () S ( FROM RFC1155-SMI) p n 0 T () N 0 T () S (-- OBJECT-TYPE) c n 0 T (-- FROM RFC-1212) N 0 T () N (15) # () S ( ;) p n 0 T () N 0 T ( ) S (-- MIB-II \(same prefix as MIB-I\)) c n 0 T () N 0 T () S ( mib-2 ) p (OBJECT) k ( ) p (IDENTIFIER) k ( ::= { mgmt 1 }) p n (20) # () N 0 T ( ) S (-- textual conventions) c n 0 T () N 0 T () S ( ) p (DisplayString) k ( ::=) p n 0 T ( ) S (OCTET) k ( ) p (STRING) k n (25) # () S ( ) p (-- This data type is used to model textual information taken) c n 0 T () S ( ) p (-- from the NVT ASCII character set. By convention, objects) c n 0 T () S ( ) p (-- with this syntax are declared as having) c n 0 T () S ( ) p (-- SIZE \(0..255\)) c n 0 T () N (30) # () S ( ) p (-- groups in MIB-II) c n 0 T () N 0 T () S ( system ) p (OBJECT) k ( ) p (IDENTIFIER) k ( ::= { mib-2 1 }) p n 0 T () N 0 T ( ) S (-- historical \(some say hysterical\)) c n (35) # () S ( ) p (-- cmot OBJECT IDENTIFIER ::= { mib-2 9 }) c n 0 T () N 0 T () S ( transmission ) p (OBJECT) k ( ) p (IDENTIFIER) k ( ::= { mib-2 10 }) p n 0 T () N 0 T () N (40) # ( ) S (-- the Interfaces table) c n 0 T () N 0 T () S ( ) p (-- The Interfaces table contains information on the entity's) c n 0 T () S ( ) p (-- interfaces. Each interface is thought of as being) c n 0 T () S ( ) p (-- attached to a `subnetwork'. Note that this term should) c n (45) # () S ( ) p (-- not be confused with `subnet' which refers to an) c n 0 T () S ( ) p (-- addressing partitioning scheme used in the Internet suite) c n 0 T () S ( ) p (-- of protocols.) c n 0 T () N 0 T () S ( ifTable ) p (OBJECT-TYPE) K n (50) # () S ( ) p (SYNTAX) K ( ) p (SEQUENCE) K ( ) p (OF) K ( IfEntry) p n 0 T ( ) S (ACCESS) K ( not-accessible) p n 0 T ( ) S (STATUS) K ( mandatory) p n 0 T ( ) S (DESCRIPTION) K n 0 T () S ( ") p (A list of interface entries. The number of) str n (55) # ( entries is given by the value of ifNumber.) S (") p n 0 T ( ::= { interfaces 2 }) N 0 T () N 0 T ( IfEntry ::=) N 0 T ( ) S (SEQUENCE) K ( {) p n (60) # ( ifIndex) N 0 T ( ) S (INTEGER) k (,) p n 0 T ( ifDescr) N 0 T ( ) S (DisplayString) k (,) p n 0 T ( ifType) N (65) # ( ) S (INTEGER) k (,) p n 0 T ( ifMtu) N 0 T ( ) S (INTEGER) k (,) p n 0 T ( ifSpeed) N 0 T ( ) S (Gauge) k (,) p n (70) # ( ifPhysAddress) N (snacc.mib) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( ) p (PhysAddress) k (,) p n 0 T ( ifSpecific) N 0 T ( ) S (OBJECT) k ( ) p (IDENTIFIER) k n 0 T () S ( }) p n (75) # () N 0 T () N 0 T ( ifType ) S (OBJECT-TYPE) K n 0 T () S ( ) p (SYNTAX) K ( ) p (INTEGER) k ( {) p n 0 T ( other\(1\), ) S (-- none of the following) c n (80) # () S ( regular1822\(2\),) p n 0 T ( hdh1822\(3\),) N 0 T ( ddn-x25\(4\),) N 0 T ( rfc877-x25\(5\),) N 0 T ( e1\(19\), ) S (-- european equiv. of T-1) c n (85) # () S ( basicISDN\(20\),) p n 0 T ( primaryISDN\(21\), ) S (-- proprietary serial) c n 0 T () S ( propPointToPointSerial\(22\),) p n 0 T ( ppp\(23\),) N 0 T ( softwareLoopback\(24\),) N (90) # ( eon\(25\), ) S (-- CLNP over IP [11]) c n 0 T () S ( ethernet-3Mbit\(26\),) p n 0 T ( nsip\(27\), ) S (-- XNS over IP) c n 0 T () S ( slip\(28\), ) p (-- generic SLIP) c n 0 T () S ( ultra\(29\), ) p (-- ULTRA technologies) c n (95) # () S ( ds3\(30\), ) p (-- T-3) c n 0 T () S ( sip\(31\), ) p (-- SMDS) c n 0 T () S ( frame-relay\(32\)) p n 0 T ( }) N 0 T ( ) S (ACCESS) K ( read-only) p n (100) # ( ) S (STATUS) K ( mandatory) p n 0 T ( ) S (DESCRIPTION) K n 0 T () S ( ") p (The type of interface, distinguished according to) str n 0 T ( the physical/link protocol\(s\) immediately `below') N 0 T ( the network layer in the protocol stack.) S (") p n (105) # ( ::= { ifEntry 3 }) N 0 T () N 0 T () N 0 T () S (END) L n (snacc.mib) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/space.ps0000644000000000000000000000551414233473143013517 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (REM Script to check space left in database.) c n 0 T (REM ) N 0 T () S (DECLARE) K n 0 T () S ( ) p (CURSOR) K ( tot_space ) p (IS) K n (5) # () S ( ) p (SELECT) K ( a.tablespace_name, ) p (sum) K (\(a.bytes\) ) p (FROM) K ( dba_data_files a) p n 0 T ( ) S (GROUP) K ( ) p (BY) K ( tablespace_name;) p n 0 T ( tbl_tot ) S (VARCHAR2) K (\(50\);) p n 0 T ( byt_tot ) S (NUMBER) K (\(13\);) p n 0 T ( ) S (CURSOR) K ( free_space ) p (IS) K n (10) # () S ( ) p (SELECT) K ( ) p (sum) K (\(b.bytes\) ) p (FROM) K ( dba_free_space b) p n 0 T ( ) S (WHERE) K ( b.tablespace_name = tbl_tot) p n 0 T ( ) S (GROUP) K ( ) p (BY) K ( b.tablespace_name;) p n 0 T ( byt_free ) S (NUMBER) K (\(13\);) p n 0 T ( pct_used ) S (NUMBER) K (\(3\);) p n (15) # () S (/* ) c n 0 T ( * Here are some useless comments, inserted for testing a2ps) N 0 T ( */) N 0 T () S (BEGIN) K n 0 T () S ( DBMS_OUTPUT.PUT_LINE \(RPAD\(') p (TABLESPACE) str (',30,') p ( ) str ('\) || LPAD\(') p (Total Bytes) str (',17,') p ( ) str ('\) ||) p n 0 T ( LPAD\(') S (Free Bytes) str (',17,') p ( ) str ('\)) p n (20) # ( || LPAD\(') S (% Used) str (',10,') p ( ) str ('\)\);) p n 0 T ( DBMS_OUTPUT.PUT_LINE \(RPAD\(') S (-) str (',79,') p (-) str ('\)\);) p n 0 T ( ) S (LOOP) K n 0 T () S ( ) p (IF) K ( ) p (NOT) K ( tot_space%ISOPEN) p n 0 T ( ) S (THEN) K n (25) # () S ( ) p (OPEN) K ( tot_space;) p n 0 T ( ) S (END) K ( ) p (IF) K (;) p n 0 T ( ) S (FETCH) K ( tot_space ) p (INTO) K n 0 T () S ( tbl_tot,) p n 0 T ( byt_tot;) N (30) # ( ) S (IF) K ( tot_space%FOUND) p n 0 T ( ) S (THEN) K n 0 T () S ( ) p (OPEN) K ( free_space;) p n 0 T ( ) S (FETCH) K ( free_space ) p (INTO) K ( byt_free;) p n 0 T ( ) S (IF) K ( free_space%FOUND) p n (35) # ( ) S (THEN) K n 0 T () S ( pct_used := TRUNC\(\(\(1 - \(byt_free/byt_tot\)\) * 100\),0\);) p n 0 T ( DBMS_OUTPUT.PUT_LINE \(RPAD\(tbl_tot,30,') S ( ) str ('\) || LPAD\(byt_tot,17,') p ( ) str ('\) || LP) p n 0 T (AD\(byt_free,17,') S ( ) str ('\)) p n 0 T ( || LPAD\(pct_used,10,') S ( ) str ('\)\);) p n 0 T ( ) S (END) K ( ) p (IF) K (;) p n (40) # ( ) S (CLOSE) K ( free_space;) p n 0 T ( ) S (ELSE) K n 0 T () S ( ) p (EXIT) K (;) p n 0 T ( ) S (END) K ( ) p (IF) K (;) p n 0 T ( ) S (END) K ( ) p (LOOP) K (;) p n (45) # ( ) S (CLOSE) K ( tot_space;) p n 0 T () S (END) K (;) p n 0 T (/) N (space.pls) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/sqlcrtbl.ps0000644000000000000000000003047214233473143014253 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (#) p 8 T (Skeleton script ) S (for) K ( creating a ) p (table) K n 0 T () S (#) p n 0 T (#) S 8 T (Notes:) N 0 T (#) S 8 T (- Script should be formatted exactly ) S (as) K ( indicated) p n (5) # (#) S 8 T (- The primary key columns should always be the first columns indicated) N 0 T (#) S 8 T (- ) S (All) K ( SQL statements should be terminated ) p (with) K ( a /) p n 0 T (#) S 8 T (- Primary key, foreign key, ) S (and) K ( ) p (unique) K ( constraints are out-) p (of) K (-line.) p n 0 T (#) S 8 T (- Multi-) S (column) K ( constraints are out-) p (of) K (-line.) p n 0 T (#) S 8 T (- ) S (All) K ( other constraints are ) p (in) K (-line.) p n (10) # (#) S 8 T (- ) S (Remove all comments above the next line) c n 0 T () S (#=============================================================================) p n 0 T (# Name :) N 0 T (# Created ) S (On) K (:) p n 0 T (# Created ) S (By) K (:) p n (15) # (# SCN No :) N 0 T (# Purpose :) N 0 T (#==============================================================================) N 0 T () S (drop) K ( ) p (table) K ( owner.table_name) p n 0 T (/) N (20) # () S (create) K ( ) p (table) K ( owner.table_name \() p n 0 T () S 8 T (column_name) S 24 T () S (varchar2) K (\(4\)) p 40 T (constraint table_name_nn1 ) S (not) K ( ) p (null) K (,) p n 0 T () S 8 T (column_name) S 24 T () S (varchar2) K (\(10\),) p n 0 T () S 8 T (column_name) S 24 T () S (number) K (\(8,2\) ) p 40 T (constraint ) N 0 T () S 8 T () S 16 T () S 24 T () S 32 T () S 40 T (table_name_ck1 \( column_name > 0\),) N (25) # () S 8 T (column_name) S 24 T () S (number) K (\(4,2\)) p 40 T () S (default) K ( 0,) p n 0 T () S 8 T (column_name) S 24 T () S (date) K (,) p n 0 T () S 8 T (.) N 0 T () S 8 T (.) N 0 T () S 8 T (.) N (30) # () S 8 T (constraint table_name_pk1) N 0 T () S 8 T () S 16 T (primary key \(column_name, column_name, ...\)) N 0 T (#) N 0 T (# ) S (All) K ( constraints that ) p (create) K ( an ) p (index) K ( must have a USING ) p (INDEX) K ( clause) p n 0 T (# ) S (To) K ( calculate the ) p (initial) K ( extent ) p (of) K ( an ) p (index) K (, use the following \(assuming) p n (35) # (# a 4K block ) S (size) K (\):) p n 0 T (# bytes = \(\(x*\(11+x+len\)\)/\(\(4096 - 90\)*\(1 - ) S (pctfree) K (/100\)\)\)*\(4096 * 1.1\)) p n 0 T (# ) S (where) K n 0 T () S (#) p 8 T (x ) S 16 T () S 24 T (= expected ) S (number) K ( ) p (of) K ( ) p (rows) K ( after 6 months) p n 0 T (#) S 8 T (z) S 16 T () S 24 T (= ) S (number) K ( ) p (of) K ( columns indexed) p n (40) # (#) S 8 T (len) S 16 T () S 24 T (= the average length ) S (of) K ( the indexed ) p (column) K n 0 T () S (#) p n 0 T (# Alternatively, you may use one ) S (of) K ( the following storage clauses:) p n 0 T (#) N 0 T (#) S 8 T (Small \(small indexes 20K ) S (to) K ( 2560K\)) p n (45) # (#) N 0 T (# storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n 0 T (#) S 8 T () S 16 T (freelists 1\)) N 0 T (#) N 0 T (#) S 8 T (Medium \(medium indexes 2560K ) S (to) K ( 40960K\)) p n (50) # (#) N 0 T (# storage \() S (initial) K ( 2560K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n 0 T (#) S 8 T () S 16 T (freelists 1\)) N 0 T (#) N 0 T (#) S 8 T (Large \(large indexes 40960K ) S (and) K ( up\)) p n (55) # (#) N 0 T (# storage \() S (initial) K ( 40960K next 320K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n 0 T (#) S 8 T () S 16 T (freelists 1\)) N 0 T (#) N 0 T () S 8 T () S 16 T (using ) S (index) K n (60) # () S () p 8 T () S 16 T () S 24 T (tablespace get_from_dba) N 0 T () S 8 T () S 16 T () S 24 T () S (pctfree) K ( 10) p n 0 T () S 8 T () S 16 T () S 24 T (storage \() S (initial) K ( 20K) p n 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( next 20K) N 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( minextents 1 ) N (65) # () S 8 T () S 16 T () S 24 T () S 32 T ( ) S (maxextents) K ( 99) p n 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( pctincrease 100) N 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( freelists 1\)) N 0 T () S 8 T (constraint table_name_fk1) N 0 T () S 8 T () S 16 T (foreign key \(column_name\) references) N (70) # () S 8 T () S 16 T (table_name \(column_name\),) N (sqlcrtbl.sql) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p 8 T (constraint table_name_u1) N 0 T () S 8 T () S 16 T () S (unique) K ( \(column_name, column_name\)) p n 0 T () S 8 T () S 16 T (using ) S (index) K n 0 T () S () p 8 T () S 16 T () S 24 T (tablespace get_from_dba) N (75) # () S 8 T () S 16 T () S 24 T () S (pctfree) K ( 10) p n 0 T () S 8 T () S 16 T () S 24 T (storage \() S (initial) K ( 20K) p n 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( next 20K) N 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( minextents 1 ) N 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( ) S (maxextents) K ( 99) p n (80) # () S 8 T () S 16 T () S 24 T () S 32 T ( pctincrease 100) N 0 T () S 8 T () S 16 T () S 24 T () S 32 T ( freelists 1\)) N 0 T (# ) S (pctfree) K ( should be ) p (set) K ( ) p (to) K ( 0 ) p (for) K ( tables whose ) p (rows) K ( are ) p (not) K ( updated ) p n 0 T (# \(e.g. validation tables, control tables, history tables, etc.\)) N 0 T (# ) S (and) K ( whose columsn will ) p (all) K ( be complete \() p (not) K ( ) p (null) K (\) upon first ) p (insert) K (.) p n (85) # (#) N 0 T (# ) S (pctfree) K ( should be ) p (set) K ( higher than 10 ) p (for) K ( those ) p (rows) K ( ) p (where) K ( many columns) p n 0 T (# will initially be left ) S (null) K ( upon the first ) p (insert) K (, but will be updated) p n 0 T (# later) N 0 T () S (pctfree) K ( 10 pctused 40) p n (90) # (tablespace get_from_dba) N 0 T (#) N 0 T (# STORAGE CLAUSE) N 0 T (#) N 0 T (# ) S (Initial) K ( Extent) p n (95) # (# ) S (Initial) K ( extent storage should be ) p (set) K ( ) p (to) K ( the appropriate ) p (number) K ( ) p (of) K ( bytes) p n 0 T (# \(rounded ) S (to) K ( a multiple ) p (of) K ( 20K bytes\) this ) p (table) K ( ) p (is) K ( expected ) p (to) K ( grow ) p (to) K ( ) p (in) K ( ) p n 0 T (# the first 6 months.) N 0 T (# ) S (To) K ( calculate the ) p (initial) K ( extent, use the following \(assuming) p n 0 T (# a 4K block ) S (size) K (\):) p n (100) # (# bytes = \(\(x*\(5+y*\(1+len\)\)\)/\(\(4096 - 90\)*\(1 - ) S (pctfree) K (/100\)\)\)*4096) p n 0 T (# ) S (where) K n 0 T () S (#) p 8 T (x ) S 16 T () S 24 T (= expected ) S (number) K ( ) p (of) K ( ) p (rows) K ( after 6 months) p n 0 T (#) S 8 T (y) S 16 T () S 24 T (= ) S (number) K ( ) p (of) K ( columns ) p (in) K ( the ) p (table) K n 0 T () S (#) p 8 T (len) S 16 T () S 24 T (= the average ) S (column) K ( length) p n (105) # (#) S 8 T () S (pctfree) K () p 16 T () S 24 T (= obtained ) S (from) K ( guidelines above) p n 0 T (#) N 0 T (# Round the ) S (initial) K ( extent up ) p (to) K ( one ) p (of) K ( the ) p (values) K ( ) p (in) K ( the ) p (table) K ( below.) p n 0 T (# Determine the next extent ) S (from) K ( the ) p (table) K ( below \(again assuming 4K ) p n 0 T (# block sizes\):) N (110) # (#) N 0 T (#) S 8 T () S (Initial) K ( Extent) p 24 T () S 32 T (Next Extent) N 0 T (#) S 8 T (=============) S 24 T () S 32 T (===========) N 0 T (#) S 8 T ( 20K) S 24 T () S 32 T ( 20K) N 0 T (#) S 8 T ( 40K) S 24 T () S 32 T ( 20K) N (115) # (#) S 8 T ( 80K) S 24 T () S 32 T ( 20K) N 0 T (#) S 8 T ( 160K) S 24 T () S 32 T ( 20K) N 0 T (#) S 8 T ( 320K) S 24 T () S 32 T ( 20K) N 0 T (#) S 8 T ( 640K) S 24 T () S 32 T ( 20K) N 0 T (#) S 8 T ( 1280K) S 24 T () S 32 T ( 20K) N (120) # (#) S 8 T ( 2560K) S 24 T () S 32 T ( 20K) N 0 T (#) S 8 T ( 5120K) S 24 T () S 32 T ( 40K) N 0 T (#) S 8 T ( 10240K) S 24 T () S 32 T ( 80K) N 0 T (#) S 8 T ( 20480K) S 24 T () S 32 T ( 160K) N 0 T (#) S 8 T ( 40960K) S 24 T () S 32 T ( 320K) N (125) # (#) S 8 T ( 81920K) S 24 T () S 32 T ( 640K) N 0 T (#) S 8 T ( 163840K) S 24 T () S 32 T ( 1280K) N 0 T (#) S 8 T ( 327680K) S 24 T () S 32 T ( 2560K) N 0 T (#) S 8 T ( 655360K) S 24 T () S 32 T ( 5120K) N 0 T (#) S 8 T (1310720K) S 24 T () S 32 T (10240K) N (130) # (#) S 8 T (etc, ) S (with) K ( each succeeding value twice the previous value.) p n 0 T (#) N 0 T (# Alternatively, you may use one ) S (of) K ( the following storage clauses:) p n 0 T (#) N 0 T (#) S 8 T (Small \(small tables 20K ) S (to) K ( 2560K\)) p n (135) # (#) N 0 T (# storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n 0 T (#) S 8 T () S 16 T (freelists 1\)) N 0 T (#) N 0 T (#) S 8 T (Medium \(medium tables 2560K ) S (to) K ( 40960K\)) p n (140) # (#) N (sqlcrtbl.sql) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (# storage \() p (initial) K ( 2560K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n 0 T (#) S 8 T () S 16 T (freelists 1\)) N 0 T (#) N 0 T (#) S 8 T (Large \(large tables 40960K ) S (and) K ( up\)) p n (145) # (#) N 0 T (# storage \() S (initial) K ( 40960K next 320K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n 0 T (#) S 8 T () S 16 T (freelists 1\)) N 0 T (#) N 0 T (storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n (150) # () S 8 T () S 16 T (freelists 1\)) N 0 T (/) N 0 T (#) N 0 T (# Comments are required ) S (on) K ( the ) p (table) K ( ) p (and) K ( ) p (all) K ( columns.) p n 0 T (# Comments should be ) S (in) K ( upper ) p (and) K ( lower case, should be terminated ) p (by) K ( a) p n (155) # (# period, ) S (and) K ( cannot be longer than 255 bytes.) p n 0 T (#) N 0 T () S (comment) K ( ) p (on) K ( ) p (table) K ( table_name ) p (is) K n 0 T () S (') p (Table Alias: XXXX. Add more comment on the table, it can be up to 255 bytes long.) str (') p n 0 T (/) N (160) # () S (comment) K ( ) p (on) K ( ) p (column) K ( table_name.column_name ) p (is) K n 0 T () S (') p (This is the comment on this column. A column comment is required.) str (') p n 0 T (/) N 0 T () S (comment) K ( ) p (on) K ( ) p (column) K ( table_name.column_name ) p (is) K n 0 T () S (') p (This is another comment on this column. A column comment is required.) str (') p n (165) # (/) N 0 T (#) N 0 T (# You may need ) S (to) K ( ) p (create) K ( other indexes ) p (for) K ( performance reasons.) p n 0 T (#) N 0 T () S (create) K ( ) p (index) K ( table_name_n1 ) p (on) K ( table_name \(column_name\)) p n (170) # (tablespace get_from_dba) N 0 T () S (pctfree) K ( 10) p n 0 T (storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99) p n 0 T () S 8 T (pctincrease 100 freelists 1\)) N 0 T (/) N (175) # () S (create) K ( ) p (index) K ( table_name_n2 ) p (on) K ( table_name \(column_name\)) p n 0 T (tablespace get_from_dba) N 0 T () S (pctfree) K ( 10) p n 0 T (storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99) p n 0 T () S 8 T (pctincrease 100 freelists 1\)) N (180) # (/) N 0 T (# ) N 0 T (# if this ) S (table) K ( requires a key assigned ) p (by) K ( sequence, ) p (create) K ( the sequence) p n 0 T (#) N 0 T () S (create) K ( sequence table_name_pk_sq ) p (increment) K ( ) p (by) K ( 1 ) p (start) K ( ) p (with) K ( 1) p n (185) # (/) N 0 T (# ) S (public) K ( synonyms may be required) p n 0 T (#) N 0 T () S (create) K ( ) p (public) K ( ) p (synonym) K ( table_name ) p (for) K ( table_name) p n 0 T (/) N (190) # () S (create) K ( ) p (public) K ( ) p (synonym) K ( table_name_pk_sq ) p (for) K ( table_name_pk_sq) p n 0 T (/) N 0 T (#) N (sqlcrtbl.sql) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/sqlinit.ps0000644000000000000000000001755714233473143014121 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (#) p n 0 T (##############################################################################) N 0 T (# Example INIT.ORA ) S (file) K n 0 T () S (#) p n (5) # (# This ) S (file) K ( ) p (is) K ( provided ) p (by) K ( Oracle Corporation ) p (to) K ( help you customize) p n 0 T (# your RDBMS installation ) S (for) K ( your site. Important ) p (system) K ( parameters) p n 0 T (# are discussed, ) S (and) K ( example settings given.) p n 0 T (#) N 0 T (# ) S (Some) K ( parameter settings are ) p (generic) K ( ) p (to) K ( ) p (any) K ( ) p (size) K ( installation.) p n (10) # (# ) S (For) K ( parameters that require different ) p (values) K ( ) p (in) K ( different ) p (size) K n 0 T () S (# installations, three scenarios have been provided: SMALL, MEDIUM) p n 0 T (# ) S (and) K ( LARGE. ) p (Any) K ( parameter that needs ) p (to) K ( be tuned according ) p (to) K n 0 T () S (# installation ) p (size) K ( will have three settings, ) p (each) K ( one commented) p n 0 T (# according ) S (to) K ( installation ) p (size) K (.) p n (15) # (#) N 0 T (# ) S (Use) K ( the following ) p (table) K ( ) p (to) K ( approximate the SGA ) p (size) K ( needed ) p (for) K ( the) p n 0 T (# three scenarious provided ) S (in) K ( this ) p (file) K (:) p n 0 T (#) N 0 T (# ) S (-------Installation/Database Size------) c n (20) # () S (# SMALL MEDIUM LARGE) p n 0 T (# ) S (Block) K ( 2K 4500K 6800K 17000K) p n 0 T (# ) S (Size) K ( 4K 5500K 8800K 21000K) p n 0 T (#) N 0 T (# ) S (To) K ( ) p (set) K ( up a ) p (database) K ( that multiple instances will be ) p (using) K (, place) p n (25) # (# ) S (all) K ( ) p (instance) K (-specific parameters ) p (in) K ( one ) p (file) K (, ) p (and) K ( ) p (then) K ( have ) p (all) K n 0 T () S (# ) p (of) K ( these files point ) p (to) K ( a master ) p (file) K ( ) p (using) K ( the IFILE command.) p n 0 T (# This way, ) S (when) K ( you ) p (change) K ( a ) p (public) K n 0 T () S (# parameter, it will automatically ) p (change) K ( ) p (on) K ( ) p (all) K ( instances. This ) p (is) K n 0 T () S (# necessary, since ) p (all) K ( instances must ) p (run) K ( ) p (with) K ( the same value ) p (for) K ( many) p n (30) # (# parameters. ) S (For) K ( example, ) p (if) K ( you choose ) p (to) K ( ) p (use) K ( ) p (private) K ( ) p (rollback) K ( segments,) p n 0 T (# these must be specified ) S (in) K ( different files, but since ) p (all) K ( gc_*) p n 0 T (# parameters must be the same ) S (on) K ( ) p (all) K ( instances, they should be ) p (in) K ( one ) p (file) K (.) p n 0 T (#) N 0 T (# INSTRUCTIONS: Edit this ) S (file) K ( ) p (and) K ( the other INIT files it calls ) p (for) K n (35) # () S (# your site, either ) p (by) K ( ) p (using) K ( the ) p (values) K ( provided here ) p (or) K ( ) p (by) K ( providing) p n 0 T (# your ) S (own) K (. ) p (Then) K ( place an IFILE= line ) p (into) K ( ) p (each) K ( ) p (instance) K (-specific) p n 0 T (# INIT ) S (file) K ( that points ) p (at) K ( this ) p (file) K (.) p n 0 T (###############################################################################) N 0 T () N (40) # (db_name = oracle) N 0 T (db_files = 20) N 0 T (control_files = \(%RDBMS_FILES%\\ctl1orcl.ora\)) N 0 T () N 0 T (compatible = 7.3.0.0.0) N (45) # () N 0 T (db_file_multiblock_read_count = 8) S 40 T () S 48 T () S 56 T () S 64 T ( # ) S (INITIAL) K n 0 T () S (# db_file_multiblock_read_count = 8 # SMALL) p n 0 T (# db_file_multiblock_read_count = 16 # MEDIUM) N 0 T (# db_file_multiblock_read_count = 32 # LARGE) N (50) # () N 0 T (db_block_buffers = 50) S 24 T () S 32 T () S 40 T ( # ) S (INITIAL) K n 0 T () S (# db_block_buffers = 200 # SMALL) p n 0 T (# db_block_buffers = 550 # MEDIUM) N 0 T (# db_block_buffers = 3200 # LARGE) N (55) # () N 0 T (shared_pool_size = 500000 # ) S (INITIAL) K n 0 T () S (# shared_pool_size = 3500000 # SMALL) p n 0 T (# shared_pool_size = 6000000 # MEDIUM) N 0 T (# shared_pool_size = 9000000 # LARGE) N (60) # () N 0 T (log_checkpoint_interval = 10000) N 0 T () N 0 T (processes = 50 # ) S (INITIAL) K n 0 T () S (# processes = 50 # SMALL) p n (65) # (# processes = 100 # MEDIUM) N 0 T (# processes = 200 # LARGE) N 0 T () N 0 T (dml_locks = 100 # ) S (INITIAL) K n 0 T () S (# dml_locks = 100 # SMALL) p n (70) # (# dml_locks = 200 # MEDIUM) N (sqlinit.ora) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (# dml_locks = 500 # LARGE) p n 0 T () N 0 T (log_buffer = 1000 # ) S (INITIAL) K n 0 T () S (# log_buffer = 8192 # SMALL) p n (75) # (# log_buffer = 32768 # MEDIUM) N 0 T (# log_buffer = 163840 # LARGE) N 0 T () N 0 T (sequence_cache_entries = 10 # ) S (INITIAL) K n 0 T () S (# sequence_cache_entries = 10 # SMALL) p n (80) # (# sequence_cache_entries = 30 # MEDIUM) N 0 T (# sequence_cache_entries = 100 # LARGE) N 0 T () N 0 T (sequence_cache_hash_buckets = 10 # ) S (INITIAL) K n 0 T () S (# sequence_cache_hash_buckets = 10 # SMALL) p n (85) # (# sequence_cache_hash_buckets = 23 # MEDIUM) N 0 T (# sequence_cache_hash_buckets = 89 # LARGE) N 0 T () N 0 T (# audit_trail = ) S (true) K ( # ) p (if) K ( you want auditing) p n 0 T (# timed_statistics = ) S (true) K ( # ) p (if) K ( you want timed ) p (statistics) K n (90) # () S (max_dump_file_size = 10240 # limit trace ) p (file) K ( ) p (size) K ( ) p (to) K ( 5 Meg ) p (each) K n 0 T () N 0 T () S (# log_archive_start = ) p (true) K ( # ) p (if) K ( you want automatic archiving) p n 0 T () N 0 T (# ) S (define) K ( directories ) p (to) K ( store trace ) p (and) K ( alert files) p n (95) # (background_dump_dest=%RDBMS73%\\TRACE) N 0 T (user_dump_dest=%RDBMS73%\\TRACE) N 0 T () N 0 T (db_block_size = 2048) N 0 T () N (100) # (snapshot_refresh_processes = 0) N 0 T () N 0 T () S (remote_login_passwordfile = shared) c n (sqlinit.ora) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/sqlpq92.ps0000644000000000000000000000113714233473143013734 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (SELECT H.emp_no, ) p n 0 T ( H.hist_type,) N 0 T ( ) S (count) K (\(*\) ) p n 0 T (FROM emp_history H) N (5) # (GROUP BY H.emp_no, H.hist_type;) N (sqlpq92.sql) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/sqlspace.ps0000644000000000000000000000551714233473143014242 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (REM Script to check space left in database.) c n 0 T (REM ) N 0 T () S (DECLARE) K n 0 T () S ( ) p (CURSOR) K ( tot_space ) p (IS) K n (5) # () S ( ) p (SELECT) K ( a.tablespace_name, ) p (sum) K (\(a.bytes\) ) p (FROM) K ( dba_data_files a) p n 0 T ( ) S (GROUP) K ( ) p (BY) K ( tablespace_name;) p n 0 T ( tbl_tot ) S (VARCHAR2) K (\(50\);) p n 0 T ( byt_tot ) S (NUMBER) K (\(13\);) p n 0 T ( ) S (CURSOR) K ( free_space ) p (IS) K n (10) # () S ( ) p (SELECT) K ( ) p (sum) K (\(b.bytes\) ) p (FROM) K ( dba_free_space b) p n 0 T ( ) S (WHERE) K ( b.tablespace_name = tbl_tot) p n 0 T ( ) S (GROUP) K ( ) p (BY) K ( b.tablespace_name;) p n 0 T ( byt_free ) S (NUMBER) K (\(13\);) p n 0 T ( pct_used ) S (NUMBER) K (\(3\);) p n (15) # () S (/* ) c n 0 T ( * Here are some useless comments, inserted for testing a2ps) N 0 T ( */) N 0 T () S (BEGIN) K n 0 T () S ( DBMS_OUTPUT.PUT_LINE \(RPAD\(') p (TABLESPACE) str (',30,') p ( ) str ('\) || LPAD\(') p (Total Bytes) str (',17,') p ( ) str ('\) ||) p n 0 T ( LPAD\(') S (Free Bytes) str (',17,') p ( ) str ('\)) p n (20) # ( || LPAD\(') S (% Used) str (',10,') p ( ) str ('\)\);) p n 0 T ( DBMS_OUTPUT.PUT_LINE \(RPAD\(') S (-) str (',79,') p (-) str ('\)\);) p n 0 T ( ) S (LOOP) K n 0 T () S ( ) p (IF) K ( ) p (NOT) K ( tot_space%ISOPEN) p n 0 T ( ) S (THEN) K n (25) # () S ( ) p (OPEN) K ( tot_space;) p n 0 T ( ) S (END) K ( ) p (IF) K (;) p n 0 T ( ) S (FETCH) K ( tot_space ) p (INTO) K n 0 T () S ( tbl_tot,) p n 0 T ( byt_tot;) N (30) # ( ) S (IF) K ( tot_space%FOUND) p n 0 T ( ) S (THEN) K n 0 T () S ( ) p (OPEN) K ( free_space;) p n 0 T ( ) S (FETCH) K ( free_space ) p (INTO) K ( byt_free;) p n 0 T ( ) S (IF) K ( free_space%FOUND) p n (35) # ( ) S (THEN) K n 0 T () S ( pct_used := TRUNC\(\(\(1 - \(byt_free/byt_tot\)\) * 100\),0\);) p n 0 T ( DBMS_OUTPUT.PUT_LINE \(RPAD\(tbl_tot,30,') S ( ) str ('\) || LPAD\(byt_tot,17,') p ( ) str ('\) || LP) p n 0 T (AD\(byt_free,17,') S ( ) str ('\)) p n 0 T ( || LPAD\(pct_used,10,') S ( ) str ('\)\);) p n 0 T ( ) S (END) K ( ) p (IF) K (;) p n (40) # ( ) S (CLOSE) K ( free_space;) p n 0 T ( ) S (ELSE) K n 0 T () S ( ) p (EXIT) K (;) p n 0 T ( ) S (END) K ( ) p (IF) K (;) p n 0 T ( ) S (END) K ( ) p (LOOP) K (;) p n (45) # ( ) S (CLOSE) K ( tot_space;) p n 0 T () S (END) K (;) p n 0 T (/) N (sqlspace.pkb) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/strange.ps0000644000000000000000000003213514233473143014066 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (Topics:) p n 0 T ( Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) N 0 T ( Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) N 0 T ( Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) N (5) # ( Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) N 0 T () N 0 T () N 0 T (----------------------------------------------------------------------) N 0 T () N (10) # () S (Date: Sat, 09 Aug 1997 17:57:56 +0200) C n 0 T () S (From: ) K (Christian Gottschling ) L n 0 T () S (Subject: ) K (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) L n 0 T () S (Message-ID: <33EC9384.B15C03F4@pegasus.dvz.fh-aachen.de>) c n 0 T (References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua>) N (15) # () N 0 T () S (W.I.N. \(Holding\)LLC wrote:) p n 0 T () N 0 T (>) S ( \345\323\314\311 \367\331 - \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\312 \323\320\305\303\311\301\314\311\323\324 SAP - \304\314\321 \367\301\323 \322\305\301\314\330\316\301\321 \327\317\332\315\317\326\316\317\323\324\330) k n 0 T () S (>) p ( \324\322\325\304\317\325\323\324\322\317\312\323\324\327\301 \320\317 \313\317\316\324\322\301\313\324\325 \327 \341\327\323\324\322\301\314\311\312\323\313\311\310 \313\317\315\320\301\316\311\321\310. \344\314\321) k n (20) # () S (>) p ( \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\310 \323\320\305\303\311\301\314\311\323\324\317\327 \327 \304\322\325\307\311\310 \317\302\314\301\323\324\321\310 \320\322\317\307\322\301\315\315\311\322\317\327\301\316\311\321 -) k n 0 T () S (>) p ( \327\317\332\315\317\326\316\317 \342\345\363\360\354\341\364\356\357\345 \317\302\325\336\305\316\311\305 SAP \323 \320\317\323\314\305\304\325\300\335\311\315 \324\322\325\304\317\325\323\324\322\317\312\323\324\327\317\315.) k n 0 T () S (>) p ( \372\316\301\316\311\305 \341\316\307\314\311\312\323\313\317\307\317 \321\332\331\313\301 - \357\342\361\372\341\364\345\354\370\356\357!) k n 0 T () S (>) p ( \356\301\320\322\301\327\314\321\312\324\305 \320\317\314\316\317\305 \322\305\332\300\315\305 \(attachment file\) \316\301 \301\316\307\314\311\312\323\313\317\315 \321\332\331\313\305 \320\317 \301\304\322\305\323\325:) k n 0 T () S (>) p n (25) # (>) S ( sergch@anet.donetsk.ua) k n 0 T () S (>) p n 0 T (>) S ( \363\320\305\333\311\324\305!!!) k n 0 T () N 0 T () S (Yes! Indeed!) p n (30) # () N 0 T (SCNR.) N 0 T () N 0 T ( --) N 0 T (Christian Gottschling Datenverwurstungszentrale Juelich) N (35) # (... I'm sitting here all day, randomly pressing keys ...) N 0 T () N 0 T () N 0 T () N 0 T (------------------------------) N (40) # () N 0 T () S (Date: 9 Aug 1997 12:25:33 -0400) C n 0 T () S (From: ) K (brobin@freenet.columbus.oh.us \(Brian Robinson\)) L n 0 T () S (Subject: ) K (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) L n 0 T () S (Message-ID: <5si5lt$4cv@login.freenet.columbus.oh.us>) c n (45) # (References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua> <33EC9384.B15C03) N 0 T (F4@pegasus.dvz.fh-aachen.de>) N 0 T () N 0 T () S (Christian Gottschling \(chg@pegasus.dvz.fh-aachen.de\) wrote:) p n 0 T (: W.I.N. \(Holding\)LLC wrote:) N 0 T () N (50) # (: > \345\323\314\311 \367\331 - \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\312 \323\320\305\303\311\301\314\311\323\324 SAP - \304\314\321 \367\301\323 \322\305\301\314\330\316\301\321 \327\317\332\315\317\326\316\317\323\324\330) N 0 T (: > \324\322\325\304\317\325\323\324\322\317\312\323\324\327\301 \320\317 \313\317\316\324\322\301\313\324\325 \327 \341\327\323\324\322\301\314\311\312\323\313\311\310 \313\317\315\320\301\316\311\321\310. \344\314\321) N 0 T (: > \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\310 \323\320\305\303\311\301\314\311\323\324\317\327 \327 \304\322\325\307\311\310 \317\302\314\301\323\324\321\310 \320\322\317\307\322\301\315\315\311\322\317\327\301\316\311\321 -) N 0 T (: > \327\317\332\315\317\326\316\317 \342\345\363\360\354\341\364\356\357\345 \317\302\325\336\305\316\311\305 SAP \323 \320\317\323\314\305\304\325\300\335\311\315 \324\322\325\304\317\325\323\324\322\317\312\323\324\327\317\315.) N 0 T (: > \372\316\301\316\311\305 \341\316\307\314\311\312\323\313\317\307\317 \321\332\331\313\301 - \357\342\361\372\341\364\345\354\370\356\357!) N (55) # (: > \356\301\320\322\301\327\314\321\312\324\305 \320\317\314\316\317\305 \322\305\332\300\315\305 \(attachment file\) \316\301 \301\316\307\314\311\312\323\313\317\315 \321\332\331\313\305 \320\317 \301\304\322\305\323\325:) N 0 T (: >) N 0 T (: > sergch@anet.donetsk.ua) N 0 T (: >) N 0 T (: > \363\320\305\333\311\324\305!!!) N (60) # () N 0 T (: Yes! Indeed!) N 0 T () N 0 T (: SCNR.) N 0 T () N (65) # (: --) N 0 T (: Christian Gottschling Datenverwurstungszentrale Juelich) N 0 T (: ... I'm sitting here all day, randomly pressing keys ...) N 0 T () N 0 T (..... uhh.... \256\316\256\350\256y1\330\322}? ;\)) N (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) (Brian Robinson) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (70) # (-- ) p n 0 T (Brian Robinson | Sometimes its curious how much people are afraid of crazy) N 0 T (Cols., Ohio | people. Who is to determine who is sane and crazy? I myself) N 0 T (Student of WHS | am rather insane, some would say. Then again, im not the) N 0 T (Maxim\\Starmind | psycho beating himself with a rubber chicken in the corner.) N (75) # () N 0 T (------------------------------) N 0 T () N 0 T () S (Date: Sat, 09 Aug 1997 15:19:42 -0700) C n 0 T () S (From: ) K (Andy Schwartz ) L n (80) # () S (To: "W.I.N. \(Holding\)LLC" ) C n 0 T () S (Subject: ) K (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) L n 0 T () S (Message-ID: <33ECECFE.5566@mail.stlnet.com>) c n 0 T (References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua>) N 0 T () N (85) # () S (IMHO, I think you should use \323\320\305\303\311\301\314\311\323\324 instead of \320\322\317\307\322\301\315\315\311\322\317.) p n 0 T () N 0 T (.. Andy) N 0 T () N 0 T (W.I.N. \(Holding\)LLC wrote:) N (90) # (>) S ( ) k n 0 T () S (>) p ( \345\323\314\311 \367\331 - \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\312 \323\320\305\303\311\301\314\311\323\324 SAP - \304\314\321 \367\301\323 \322\305\301\314\330\316\301\321 \327\317\332\315\317\326\316\317\323\324\330) k n 0 T () S (>) p ( \324\322\325\304\317\325\323\324\322\317\312\323\324\327\301 \320\317 \313\317\316\324\322\301\313\324\325 \327 \341\327\323\324\322\301\314\311\312\323\313\311\310 \313\317\315\320\301\316\311\321\310. \344\314\321) k n 0 T () S (>) p ( \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\310 \323\320\305\303\311\301\314\311\323\324\317\327 \327 \304\322\325\307\311\310 \317\302\314\301\323\324\321\310 \320\322\317\307\322\301\315\315\311\322\317\327\301\316\311\321 -) k n 0 T () S (>) p ( \327\317\332\315\317\326\316\317 \342\345\363\360\354\341\364\356\357\345 \317\302\325\336\305\316\311\305 SAP \323 \320\317\323\314\305\304\325\300\335\311\315 \324\322\325\304\317\325\323\324\322\317\312\323\324\327\317\315.) k n (95) # () S (>) p ( \372\316\301\316\311\305 \341\316\307\314\311\312\323\313\317\307\317 \321\332\331\313\301 - \357\342\361\372\341\364\345\354\370\356\357!) k n 0 T () S (>) p ( \356\301\320\322\301\327\314\321\312\324\305 \320\317\314\316\317\305 \322\305\332\300\315\305 \(attachment file\) \316\301 \301\316\307\314\311\312\323\313\317\315 \321\332\331\313\305 \320\317 \301\304\322\305\323\325:) k n 0 T () S (>) p ( ) k n 0 T () S (>) p ( sergch@anet.donetsk.ua) k n 0 T () S (>) p ( ) k n (100) # () S (>) p ( \363\320\305\333\311\324\305!!!) k n 0 T () N 0 T () S (------------------------------) p n 0 T () N 0 T () S (Date: Sun, 10 Aug 1997 22:53:31 GMT) C n (105) # () S (From: ) K (ribo@mindspring.com \(Kevin Allegood\)) L n 0 T () S (Subject: ) K (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) L n 0 T () S (Message-ID: <5slgmt$g6@camel3.mindspring.com>) c n 0 T (References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua> <33ECECFE.5566@m) N 0 T (ail.stlnet.com>) N 0 T () N (110) # () S (Andy Schwartz let escape his/her/whatever's) p n 0 T (keyboard:) N 0 T () N 0 T (>) S (IMHO, I think you should use \323\320\305\303\311\301\314\311\323\324 instead of \320\322\317\307\322\301\315\315\311\322\317.) k n 0 T () N (115) # () S (It depends on your version of Notes. For 4.5X, I'd use \323\320\305\303\311\301\314\311\323\324, but) p n 0 T (for earlier versions \320\322\317\307\322\301\315\315\311\322\317 works fine. Incedentally, although) N 0 T (you can do it, I'd be careful about \304\317\325\323\324\322\317\312\323\324ing the SAP \323) N 0 T (\320\317\323\314\305\304\325\300\335\311\315 unless your really know what you're doing.) N 0 T () N (120) # (Kevin Allegood.) N 0 T () N 0 T (>) S (.. Andy) k n 0 T () N 0 T () S (>) p (W.I.N. \(Holding\)LLC wrote:) k n (125) # () S (>) p (> ) k n 0 T () S (>) p (> \345\323\314\311 \367\331 - \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\312 \323\320\305\303\311\301\314\311\323\324 SAP - \304\314\321 \367\301\323 \322\305\301\314\330\316\301\321 \327\317\332\315\317\326\316\317\323\324\330) k n 0 T () S (>) p (> \324\322\325\304\317\325\323\324\322\317\312\323\324\327\301 \320\317 \313\317\316\324\322\301\313\324\325 \327 \341\327\323\324\322\301\314\311\312\323\313\311\310 \313\317\315\320\301\316\311\321\310. \344\314\321) k n 0 T () S (>) p (> \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\310 \323\320\305\303\311\301\314\311\323\324\317\327 \327 \304\322\325\307\311\310 \317\302\314\301\323\324\321\310 \320\322\317\307\322\301\315\315\311\322\317\327\301\316\311\321 -) k n 0 T () S (>) p (> \327\317\332\315\317\326\316\317 \342\345\363\360\354\341\364\356\357\345 \317\302\325\336\305\316\311\305 SAP \323 \320\317\323\314\305\304\325\300\335\311\315 \324\322\325\304\317\325\323\324\322\317\312\323\324\327\317\315.) k n (130) # () S (>) p (> \372\316\301\316\311\305 \341\316\307\314\311\312\323\313\317\307\317 \321\332\331\313\301 - \357\342\361\372\341\364\345\354\370\356\357!) k n 0 T () S (>) p (> \356\301\320\322\301\327\314\321\312\324\305 \320\317\314\316\317\305 \322\305\332\300\315\305 \(attachment file\) \316\301 \301\316\307\314\311\312\323\313\317\315 \321\332\331\313\305 \320\317 \301\304\322\305\323\325:) k n 0 T () S (>) p (> ) k n 0 T () S (>) p (> sergch@anet.donetsk.ua) k n 0 T () S (>) p (> ) k n (135) # () S (>) p (> \363\320\305\333\311\324\305!!!) k n 0 T () N 0 T () N 0 T () N (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) (Kevin Allegood) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (------------------------------) p n (140) # () N 0 T (End of forwarda004hb Digest) N 0 T (***************************) N (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) (Kevin Allegood) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/symbol.ps0000644000000000000000000002357714233473143013742 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( 0, 0, 0 :) p (^@) sy () p 16 T ( 1, 1, 1 :) S (^A) sy () p 32 T ( 2, 2, 2 :) S (^B) sy () p 48 T ( 3, 3, 3 :) S (^C) sy n 0 T () S ( 4, 4, 4 :) p (^D) sy () p 16 T ( 5, 5, 5 :) S (^E) sy () p 32 T ( 6, 6, 6 :) S (^F) sy () p 48 T ( 7, 7, 7 :) S (^G) sy n 0 T () S ( 10, 8, 8 :) p (^H) sy () p 16 T ( 11, 9, 9 :) S () sy 32 T () S () p 40 T ( 12, 10, a :) N 0 T () S 8 T ( 13, 11, b :) S (^K) sy n (5) # () S ( 14, 12, c :) p n (symbol.pre) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (5) # () p 8 T ( 15, 13, d :) N 0 T () S 8 T ( 16, 14, e :) S (^N) sy () p 24 T ( 17, 15, f :) S (^O) sy n 0 T () S ( 20, 16,10 :) p (^P) sy () p 16 T ( 21, 17,11 :) S (^Q) sy () p 32 T ( 22, 18,12 :) S (^R) sy () p 48 T ( 23, 19,13 :) S (^S) sy n 0 T () S ( 24, 20,14 :) p (^T) sy () p 16 T ( 25, 21,15 :) S (^U) sy () p 32 T ( 26, 22,16 :) S (^V) sy () p 48 T ( 27, 23,17 :) S (^W) sy n 0 T () S ( 30, 24,18 :) p (^X) sy () p 16 T ( 31, 25,19 :) S (^Y) sy () p 32 T ( 32, 26,1a :) S (^Z) sy () p 48 T ( 33, 27,1b :) S (^[) sy n (10) # () S ( 34, 28,1c :) p (^\\) sy () p 16 T ( 35, 29,1d :) S (^]) sy () p 32 T ( 36, 30,1e :) S (^^) sy () p 48 T ( 37, 31,1f :) S (^_) sy n 0 T () S ( 40, 32,20 :) p ( ) sy () p 16 T ( 41, 33,21 :) S (!) sy () p 32 T ( 42, 34,22 :) S (") sy () p 48 T ( 43, 35,23 :) S (#) sy n 0 T () S ( 44, 36,24 :) p ($) sy () p 16 T ( 45, 37,25 :) S (%) sy () p 32 T ( 46, 38,26 :) S (&) sy () p 48 T ( 47, 39,27 :) S (') sy n 0 T () S ( 50, 40,28 :) p (\() sy () p 16 T ( 51, 41,29 :) S (\)) sy () p 32 T ( 52, 42,2a :) S (*) sy () p 48 T ( 53, 43,2b :) S (+) sy n 0 T () S ( 54, 44,2c :) p (,) sy () p 16 T ( 55, 45,2d :) S (-) sy () p 32 T ( 56, 46,2e :) S (.) sy () p 48 T ( 57, 47,2f :) S (/) sy n (15) # () S ( 60, 48,30 :) p (0) sy () p 16 T ( 61, 49,31 :) S (1) sy () p 32 T ( 62, 50,32 :) S (2) sy () p 48 T ( 63, 51,33 :) S (3) sy n 0 T () S ( 64, 52,34 :) p (4) sy () p 16 T ( 65, 53,35 :) S (5) sy () p 32 T ( 66, 54,36 :) S (6) sy () p 48 T ( 67, 55,37 :) S (7) sy n 0 T () S ( 70, 56,38 :) p (8) sy () p 16 T ( 71, 57,39 :) S (9) sy () p 32 T ( 72, 58,3a :) S (:) sy () p 48 T ( 73, 59,3b :) S (;) sy n 0 T () S ( 74, 60,3c :) p (<) sy () p 16 T ( 75, 61,3d :) S (=) sy () p 32 T ( 76, 62,3e :) S (>) sy () p 48 T ( 77, 63,3f :) S (?) sy n 0 T () S (100, 64,40 :) p (@) sy () p 16 T (101, 65,41 :) S (A) sy () p 32 T (102, 66,42 :) S (B) sy () p 48 T (103, 67,43 :) S (C) sy n (20) # () S (104, 68,44 :) p (D) sy () p 16 T (105, 69,45 :) S (E) sy () p 32 T (106, 70,46 :) S (F) sy () p 48 T (107, 71,47 :) S (G) sy n 0 T () S (110, 72,48 :) p (H) sy () p 16 T (111, 73,49 :) S (I) sy () p 32 T (112, 74,4a :) S (J) sy () p 48 T (113, 75,4b :) S (K) sy n 0 T () S (114, 76,4c :) p (L) sy () p 16 T (115, 77,4d :) S (M) sy () p 32 T (116, 78,4e :) S (N) sy () p 48 T (117, 79,4f :) S (O) sy n 0 T () S (120, 80,50 :) p (P) sy () p 16 T (121, 81,51 :) S (Q) sy () p 32 T (122, 82,52 :) S (R) sy () p 48 T (123, 83,53 :) S (S) sy n 0 T () S (124, 84,54 :) p (T) sy () p 16 T (125, 85,55 :) S (U) sy () p 32 T (126, 86,56 :) S (V) sy () p 48 T (127, 87,57 :) S (W) sy n (25) # () S (130, 88,58 :) p (X) sy () p 16 T (131, 89,59 :) S (Y) sy () p 32 T (132, 90,5a :) S (Z) sy () p 48 T (133, 91,5b :) S ([) sy n 0 T () S (134, 92,5c :) p (\\) sy () p 16 T (135, 93,5d :) S (]) sy () p 32 T (136, 94,5e :) S (^) sy () p 48 T (137, 95,5f :) S (_) sy n 0 T () S (140, 96,60 :) p (`) sy () p 16 T (141, 97,61 :) S (a) sy () p 32 T (142, 98,62 :) S (b) sy () p 48 T (143, 99,63 :) S (c) sy n 0 T () S (144,100,64 :) p (d) sy () p 16 T (145,101,65 :) S (e) sy () p 32 T (146,102,66 :) S (f) sy () p 48 T (147,103,67 :) S (g) sy n 0 T () S (150,104,68 :) p (h) sy () p 16 T (151,105,69 :) S (i) sy () p 32 T (152,106,6a :) S (j) sy () p 48 T (153,107,6b :) S (k) sy n (30) # () S (154,108,6c :) p (l) sy () p 16 T (155,109,6d :) S (m) sy () p 32 T (156,110,6e :) S (n) sy () p 48 T (157,111,6f :) S (o) sy n 0 T () S (160,112,70 :) p (p) sy () p 16 T (161,113,71 :) S (q) sy () p 32 T (162,114,72 :) S (r) sy () p 48 T (163,115,73 :) S (s) sy n 0 T () S (164,116,74 :) p (t) sy () p 16 T (165,117,75 :) S (u) sy () p 32 T (166,118,76 :) S (v) sy () p 48 T (167,119,77 :) S (w) sy n 0 T () S (170,120,78 :) p (x) sy () p 16 T (171,121,79 :) S (y) sy () p 32 T (172,122,7a :) S (z) sy () p 48 T (173,123,7b :) S ({) sy n 0 T () S (174,124,7c :) p (|) sy () p 16 T (175,125,7d :}) S 32 T (176,126,7e :) S (~) sy () p 48 T (177,127,7f :) S (^?) sy n (35) # () S (200,128,80 :) p (M-^@) sy () p 24 T (201,129,81 :) S (M-^A) sy () p 48 T (202,130,82 :) S (M-^B) sy () p 72 T (203,131,) N 0 T (83 :) S (M-^C) sy n 0 T () S (204,132,84 :) p (M-^D) sy () p 24 T (205,133,85 :) S (M-^E) sy () p 48 T (206,134,86 :) S (M-^F) sy () p 72 T (207,135,) N 0 T (87 :) S (M-^G) sy n 0 T () S (210,136,88 :) p (M-^H) sy () p 24 T (211,137,89 :) S (M-^I) sy () p 48 T (212,138,8a :) S (M-^J) sy () p 72 T (213,139,) N 0 T (8b :) S (M-^K) sy n 0 T () S (214,140,8c :) p (M-^L) sy () p 24 T (215,141,8d :) S (M-^M) sy () p 48 T (216,142,8e :) S (M-^N) sy () p 72 T (217,143,) N 0 T (8f :) S (M-^O) sy n 0 T () S (220,144,90 :) p (M-^P) sy () p 24 T (221,145,91 :) S (M-^Q) sy () p 48 T (222,146,92 :) S (M-^R) sy () p 72 T (223,147,) N 0 T (93 :) S (M-^S) sy n (40) # () S (224,148,94 :) p (M-^T) sy () p 24 T (225,149,95 :) S (M-^U) sy () p 48 T (226,150,96 :) S (M-^V) sy () p 72 T (227,151,) N 0 T (97 :) S (M-^W) sy n 0 T () S (230,152,98 :) p (M-^X) sy () p 24 T (231,153,99 :) S (M-^Y) sy () p 48 T (232,154,9a :) S (M-^Z) sy () p 72 T (233,155,) N 0 T (9b :) S (M-^[) sy n 0 T () S (234,156,9c :) p (M-^\\) sy () p 24 T (235,157,9d :) S (M-^]) sy () p 48 T (236,158,9e :) S (M-^^) sy () p 72 T (237,159,) N 0 T (9f :) S (M-^_) sy n 0 T () S (240,160,a0 :) p (\240) sy () p 16 T (241,161,a1 :) S (\241) sy () p 32 T (242,162,a2 :) S (\242) sy () p 48 T (243,163,a3 :) S (\243) sy n 0 T () S (244,164,a4 :) p (\244) sy () p 16 T (245,165,a5 :) S (\245) sy () p 32 T (246,166,a6 :) S (\246) sy () p 48 T (247,167,a7 :) S (\247) sy n (45) # () S (250,168,a8 :) p (\250) sy () p 16 T (251,169,a9 :) S (\251) sy () p 32 T (252,170,aa :) S (\252) sy () p 48 T (253,171,ab :) S (\253) sy n 0 T () S (254,172,ac :) p (\254) sy () p 16 T (255,173,ad :) S (\255) sy () p 32 T (256,174,ae :) S (\256) sy () p 48 T (257,175,af :) S (\257) sy n 0 T () S (260,176,b0 :) p (\260) sy () p 16 T (261,177,b1 :) S (\261) sy () p 32 T (262,178,b2 :) S (\262) sy () p 48 T (263,179,b3 :) S (\263) sy n 0 T () S (264,180,b4 :) p (\264) sy () p 16 T (265,181,b5 :) S (\265) sy () p 32 T (266,182,b6 :) S (\266) sy () p 48 T (267,183,b7 :) S (\267) sy n 0 T () S (270,184,b8 :) p (\270) sy () p 16 T (271,185,b9 :) S (\271) sy () p 32 T (272,186,ba :) S (\272) sy () p 48 T (273,187,bb :) S (\273) sy n (50) # () S (274,188,bc :) p (\274) sy () p 16 T (275,189,bd :) S (\275) sy () p 32 T (276,190,be :) S (\276) sy () p 48 T (277,191,bf :) S (\277) sy n 0 T () S (300,192,c0 :) p (\300) sy () p 16 T (301,193,c1 :) S (\301) sy () p 32 T (302,194,c2 :) S (\302) sy () p 48 T (303,195,c3 :) S (\303) sy n 0 T () S (304,196,c4 :) p (\304) sy () p 16 T (305,197,c5 :) S (\305) sy () p 32 T (306,198,c6 :) S (\306) sy () p 48 T (307,199,c7 :) S (\307) sy n 0 T () S (310,200,c8 :) p (\310) sy () p 16 T (311,201,c9 :) S (\311) sy () p 32 T (312,202,ca :) S (\312) sy () p 48 T (313,203,cb :) S (\313) sy n 0 T () S (314,204,cc :) p (\314) sy () p 16 T (315,205,cd :) S (\315) sy () p 32 T (316,206,ce :) S (\316) sy () p 48 T (317,207,cf :) S (\317) sy n (55) # () S (320,208,d0 :) p (\320) sy () p 16 T (321,209,d1 :) S (\321) sy () p 32 T (322,210,d2 :) S (\322) sy () p 48 T (323,211,d3 :) S (\323) sy n 0 T () S (324,212,d4 :) p (\324) sy () p 16 T (325,213,d5 :) S (\325) sy () p 32 T (326,214,d6 :) S (\326) sy () p 48 T (327,215,d7 :) S (\327) sy n 0 T () S (330,216,d8 :) p (\330) sy () p 16 T (331,217,d9 :) S (\331) sy () p 32 T (332,218,da :) S (\332) sy () p 48 T (333,219,db :) S (\333) sy n 0 T () S (334,220,dc :) p (\334) sy () p 16 T (335,221,dd :) S (\335) sy () p 32 T (336,222,de :) S (\336) sy () p 48 T (337,223,df :) S (\337) sy n 0 T () S (340,224,e0 :) p (\340) sy () p 16 T (341,225,e1 :) S (\341) sy () p 32 T (342,226,e2 :) S (\342) sy () p 48 T (343,227,e3 :) S (\343) sy n (60) # () S (344,228,e4 :) p (\344) sy () p 16 T (345,229,e5 :) S (\345) sy () p 32 T (346,230,e6 :) S (\346) sy () p 48 T (347,231,e7 :) S (\347) sy n 0 T () S (350,232,e8 :) p (\350) sy () p 16 T (351,233,e9 :) S (\351) sy () p 32 T (352,234,ea :) S (\352) sy () p 48 T (353,235,eb :) S (\353) sy n 0 T () S (354,236,ec :) p (\354) sy () p 16 T (355,237,ed :) S (\355) sy () p 32 T (356,238,ee :) S (\356) sy () p 48 T (357,239,ef :) S (\357) sy n 0 T () S (360,240,f0 :) p (M-p) sy () p 16 T (361,241,f1 :) S (\361) sy () p 32 T (362,242,f2 :) S (\362) sy () p 48 T (363,243,f3 :) S (\363) sy n 0 T () S (364,244,f4 :) p (\364) sy () p 16 T (365,245,f5 :) S (\365) sy () p 32 T (366,246,f6 :) S (\366) sy () p 48 T (367,247,f7 :) S (\367) sy n (65) # () S (370,248,f8 :) p (\370) sy () p 16 T (371,249,f9 :) S (\371) sy () p 32 T (372,250,fa :) S (\372) sy () p 48 T (373,251,fb :) S (\373) sy n 0 T () S (374,252,fc :) p (\374) sy () p 16 T (375,253,fd :) S (\375) sy () p 32 T (376,254,fe :) S (\376) sy () p 48 T () N (symbol.pre) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/synopsys.ps0000644000000000000000000000465614233473143014341 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (/* presentation */) c n 0 T () S (company = ") p (Sorep) str (" ;) p n 0 T (designer = ") S (Philippe LE VAN) str (";) p n 0 T () N (5) # () S (/* alias communs */) c n 0 T () S (alias) K ( h history) p n 0 T () N 0 T () S (/* presentation generale */) c n 0 T () S (view_background = ") p (black) str (";) p n (10) # () S (set_layer) K ( pin_name_layer visible true) p n 0 T () S (set_layer) K ( pin_name_layer red 65535) p n 0 T () S (set_layer) K ( pin_name_layer green 0) p n 0 T () S (set_layer) K ( pin_name_layer blue 0) p n 0 T () N (15) # () S (/* nom des bus pour un "change_names" */) c n 0 T () S (bus_naming_style = ") p (%s\(%d\)) str (") p n 0 T () N 0 T () S (/* definition des libraries */) c n 0 T () S (search_path={") p (/dtmref/ws/wskit/exploitation/erc32/V1.4.1/Global/SYNOPSYS/SYNOPSYS_1998.08) str ("}) p n (20) # (library_fast = {") S (SC2RTP_BASIC_fast_5p5v_m55c.db) str ("}) p n 0 T (library_nom = {") S (SC2RTP_BASIC_nom_5p0v_25c.db) str ("}) p n 0 T (library_slow = {") S (SC2RTP_BASIC_slow_2p7v_145c.db) str ("}) p n 0 T (link_library = {") S (*) str ("} + library_slow) p n 0 T (target_library = library_slow) N (25) # (symbol_library = {") S (SC2RTP_BASIC.sdb) str ("}) p n 0 T () N 0 T () S (/* ecriture d'une netliste vhdl */) c n 0 T () S (vhdlout_use_packages = {IEEE.std_logic_1164,sc2rtp_basic.basic_vcomponents.all}) p n 0 T (vhdlout_write_components = ") S (FALSE) str (") p n (30) # () N 0 T () S (/* lecture de l'edif */) c n 0 T () S (edifin_ground_net_property_name = ") p (INIT) str (") p n 0 T (edifin_ground_net_property_value = ") S (0SF) str (") p n 0 T ( ) N (35) # (edifin_power_net_property_name = ") S (INIT) str (") p n 0 T (edifin_power_net_property_value = ") S (1SF) str (") p n 0 T () N 0 T () S (/* ecriture de l'edif \(pour qu'il ne retienne pas les info de schematic\) */) c n 0 T () S (edifout_netlist_only = ") p (TRUE) str (") p n (40) # () N 0 T () S (/* commande d'impression */) c n 0 T () S (plot_command = ") p (lpr -Planteeq1) str (") p n 0 T () N (synopsys.setup) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/tabulation.ps0000644000000000000000000000577414233473143014576 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () str n 0 T (iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii) N 0 T (iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii) N 0 T () N 0 T () S (\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253) sy n 0 T (\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253) N (5) # () S (\\texttt{) p n 0 T (................................................................................) N 0 T (................................................................................) N 0 T (................................................................................) N 0 T (.........) N 0 T (}) N 0 T () N 0 T () S ( ^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) e n 0 T (^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) N 0 T (^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) N 0 T (^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) N (10) # () N 0 T () S (1) p 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) S 80 T () N 0 T (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N 0 T () N 0 T () S (1) L 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) S 80 T () N 0 T (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N 0 T () N (15) # () S (\\invisible{) p n 0 T (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) S 80 T () N 0 T (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N 0 T (}) N 0 T () N 0 T () S (m) c 8 T (mm) S 16 T (mmm) S 24 T (mmmm) S 32 T (mmmmm) S 40 T (mmmmmm) S 48 T (mmmmmmm) S 56 T (mmmmmmmm) S 72 T (mmmmmmmm) N 0 T (m) S 8 T (mmmmmmmmmmm) S 24 T (mmmmmmmmmmm) S 40 T (mmmmmmmmmmmm) N (20) # () N 0 T () N 0 T () S (\351) K 8 T (\351\351) S 16 T (\351\351\351) S 24 T (\351\351\351\351) S 32 T (\351\351\351\351\351) S 40 T (\351\351\351\351\351\351) S 48 T (\351\351\351\351\351\351\351) S 56 T (\351\351\351\351\351\351\351\351) S 72 T (\351\351\351\351\351\351\351\351) N 0 T (\351) S 8 T (\351\351\351\351\351\351\351\351\351\351\351) S 24 T (\351\351\351\351\351\351\351\351\351\351\351) S 40 T (\351\351\351\351\351\351\351\351\351\351\351\351) N 0 T () N (tabulation.pre) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/template.ps0000644000000000000000000001720714233473143014241 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (class) K ( TEMPLATE2 ) p (inherit) K n 0 T () N 0 T () S ( ARGUMENTS) p n 0 T ( ) S (undefine) K n (5) # () S () p 8 T ( copy, consistent, is_equal, setup) N 0 T ( ) S (end) K n 0 T () N 0 T () S ( TEMPLATE2_LEX) p n 0 T ( ) S (redefine) K n (10) # () S () p 8 T ( store_analyzer,) N 0 T () S 8 T ( retrieve_analyzer) N 0 T ( ) S (end) K n 0 T () N 0 T (creation) N (15) # () N 0 T () S ( make) p n 0 T () N 0 T () S (feature) K n 0 T () N (20) # () S ( root_line: TEMPLATE_CLAUSE;) p n 0 T () N 0 T ( analyzer_file_name: ) S (STRING) k ( ) p (is) K ( ") p (/inf/nana/infthes/demaille/eiffel/template2/lexical/template2_analyz) str n 0 T (er) S (";) p n 0 T () N 0 T ( make ) S (is) K n (25) # () S ( ) p (local) K n 0 T () S () p 8 T ( text_name: ) S (STRING) k (;) p n 0 T () S 8 T ( analyzer_file: RAW_FILE;) N 0 T () S 8 T ( analyzer_needs_storing: ) S (BOOLEAN) k (;) p n 0 T () S 8 T ( text_file: PLAIN_TEXT_FILE;) N (30) # () S 8 T ( argument_position: ) S (INTEGER) k n 0 T () S ( ) p (do) K n 0 T () S () p 8 T ( ) S (if) K ( argument_count ) p (\272) sy ( 0 ) p (then) K n 0 T () S () p 8 T ( io.putstring \(") S (Usage: template2 file_name%N) str ("\);) p n 0 T () S 8 T ( ) S (else) K n (35) # () S () p 8 T ( !! root_line.make;) N 0 T () S 8 T ( io.putstring \(Separator_line_message\);) N 0 T () S 8 T ( io.putstring \(") S (TEMPLATE2) str ("\);) p n 0 T () S 8 T ( io.putstring \(") S ( \(Version 1.0\).) str 48 T ( \(C\)) S ("\);) p n 0 T () S 8 T ( !! analyzer_file.make \(analyzer_file_name\);) N (40) # () S 8 T ( ) S (if) K ( analyzer_file.exists ) p (then) K n 0 T () S () p 8 T ( io.putstring \(") S (%NRetrieving analyzer . . .) str ("\);) p n 0 T () S 8 T ( retrieve_analyzer \(analyzer_file_name\);) N 0 T () S 8 T ( root_line.document.set_lexical \(analyzer\);) N 0 T () S 8 T ( io.putstring \(") S (DONE) str ("\);) p n (45) # () S 8 T ( ) S (else) K n 0 T () S () p 8 T ( io.putstring \(") S (%NBuilding analyzer ... ) str ("\);) p n 0 T () S 8 T ( build \(root_line.document\);) N 0 T () S 8 T ( analyzer_needs_storing := ) S (true) K n 0 T () S () p 8 T ( io.putstring \(") S (DONE) str ("\);) p n (50) # () S 8 T ( ) S (end) K (;) p n 0 T () S 8 T ( ) N 0 T () S 8 T ( ) S (-- Test for left-recursion ?) c n 0 T () S () p 8 T ( ) S (-- test_left_recursion;) c n 0 T () S () p 8 T ( ) N (55) # () S 8 T ( text_name := argument \(1\);) N 0 T () S 8 T ( !! text_file.make \(text_name\);) N 0 T () S 8 T ( ) S (if) K ( \() p (\330) sy ( text_file.exists\) ) p (then) K n 0 T () S () p 8 T ( io.putstring \(text_name\);) N 0 T () S 8 T ( io.putstring \(") S (: No such file or directory%N) str ("\);) p n (60) # () S 8 T ( ) S (else) K n 0 T () S () p 8 T ( root_line.document.set_input_file \(text_name\);) N 0 T () S 8 T ( root_line.document.get_token;) N 0 T () S 8 T ( io.putstring \(") S (%NParsing document in file: ) str ("\)) p n 0 T () S 8 T ( io.putstring \(text_name\);) N (65) # () S 8 T ( io.putstring \(") S ( ... ) str ("\);) p n 0 T () S 8 T ( root_line.parse;) N 0 T () S 8 T ( ) S (if) K ( root_line.parsed ) p (then) K n 0 T () S () p 8 T () S 16 T ( io.putstring \(") S (DONE) str ("\);) p n 0 T () S 8 T () S 16 T ( io.putstring \(") S (%NParse tree ... %N) str ("\);) p n (template.e) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (70) # () p 8 T () S 16 T ( root_line.display \(io.output\);) N 0 T () S 8 T () S 16 T ( io.putstring \(") S (%NApplying semantics ... ) str ("\);) p n 0 T () S 8 T () S 16 T ( root_line.semantics;) N 0 T () S 8 T () S 16 T ( io.putstring \(") S (DONE%N) str ("\);) p n 0 T () S 8 T ( ) S (else) K n (75) # () S () p 8 T () S 16 T ( io.putstring \(") S (%NSyntax error with document) str ("\);) p n 0 T () S 8 T ( ) S (end) K (;) p n 0 T () S 8 T ( ) S (end) K n 0 T () S () p 8 T ( ) S (if) K ( analyzer_needs_storing ) p (then) K n 0 T () S () p 8 T ( io.putstring \(") S (%NStoring analyzer ... ) str ("\);) p n (80) # () S 8 T ( ) S (-- store_analyzer \(analyzer_file_name\);) c n 0 T () S () p 8 T ( io.putstring \(") S (DONE%N) str ("\);) p n 0 T () S 8 T ( io.putstring \(Separator_line_message\);) N 0 T () S 8 T ( ) S (end) K (;) p n 0 T () S 8 T ( io.new_line;) N (85) # () S 8 T ( ) S (end) K (;) p n 0 T ( ) S (end) K (; ) p (-- make) c n 0 T () S ( Separator_line_message: ) p (STRING) k ( ) p (is) K ( ") p (--------------------------------------------) str n 0 T (-------------------------------%N) S (";) p n 0 T () N 0 T ( test_left_recursion ) S (is) K n (90) # () S () p 8 T ( ) S (-- Test root_line for left recursion.) c n 0 T () S ( ) p (local) K n 0 T () S () p 8 T ( t_b: ) S (BOOLEAN) k (;) p n 0 T ( ) S (do) K n 0 T () S () p 8 T ( root_line.print_mode.put \() S (true) K (\);) p n (95) # () S 8 T ( root_line.expand_all;) N 0 T () S 8 T ( t_b := ) S (\330) sy ( root_line.left_recursion;) p n 0 T () S 8 T ( root_line.check_recursion;) N 0 T () S 8 T ( ) S (if) K ( ) p (\330) sy ( root_line.left_recursion.item ) p (then) K n 0 T () S () p 8 T ( io.putstring \(") S (No left recursion detected%N) str ("\);) p n (100) # () S 8 T ( ) S (else) K n 0 T () S () p 8 T ( io.putstring \(") S (Left recursive.%N) str ("\);) p n 0 T () S 8 T ( ) S (end) K (;) p n 0 T () S 8 T ( ) N 0 T ( ) S (end) K (; ) p (-- test_left_recursion) c n (105) # () N 0 T () S ( store_analyzer \(file_name: ) p (STRING) k (\) ) p (is) K n 0 T () S () p 8 T ( ) S (-- Store `analyzer' in file named `file_name'.) c n 0 T () S ( ) p (require) K ( ) p (else) K n 0 T () S () p 8 T ( initialized: initialized) N (110) # ( ) S (local) K n 0 T () S () p 8 T ( store_file: RAW_FILE) N 0 T ( ) S (do) K n 0 T () S () p 8 T ( ) S (if) K ( analyzer ) p (\272) sy ( ) p (Void) K ( ) p (then) K n 0 T () S () p 8 T ( !! analyzer.make) N (115) # () S 8 T ( ) S (end) K (;) p n 0 T () S 8 T ( !! store_file.make_open_write \(file_name\);) N 0 T () S 8 T ( analyzer.basic_store \(store_file\);) N 0 T () S 8 T ( store_file.close;) N 0 T ( ) S (end) K (; ) p (-- store_analyzer) c n (120) # () N 0 T () S ( retrieve_analyzer \(file_name: ) p (STRING) k (\) ) p (is) K n 0 T () S () p 8 T ( ) S (-- Retrieve `analyzer' from file named `file_name'.) c n 0 T () S ( ) p (local) K n 0 T () S () p 8 T ( retrieved_file: RAW_FILE) N (125) # ( ) S (do) K n 0 T () S () p 8 T ( ) S (if) K ( analyzer ) p (\272) sy ( ) p (Void) K ( ) p (then) K n 0 T () S () p 8 T ( !! analyzer.make) N 0 T () S 8 T ( ) S (end) K (;) p n 0 T () S 8 T ( !! retrieved_file.make_open_read \(file_name\);) N (130) # () S 8 T ( analyzer ?) S (\272) sy ( analyzer.retrieved \(retrieved_file\);) p n 0 T () S 8 T ( retrieved_file.close;) N 0 T ( ) S (end) K (; ) p (-- store_analyzer_feature) c n 0 T () N 0 T () S (end) K ( ) p (-- class TEMPLATE2) c n (template.e) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/typing.ps0000644000000000000000000004550414233473143013741 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (//------------------------------------------------------------------+) c n 0 T (// MARIE Yves Caseau |) N 0 T (// typing.cl |) N 0 T (// |) N (5) # (// Moteur Algebrique pour la Resolution d'Inferences Elementaires |) N 0 T (// Copyright \(C\) 1986-97 by Y. CASEAU. All Rights Reserved |) N 0 T (//------------------------------------------------------------------+) N 0 T () N 0 T (//-------------------------------------------------------------------) N (10) # (//This file contains:) N 0 T (//a lot of useful stuff for manipulating algebraic terms) N 0 T (//-------------------------------------------------------------------) N 0 T () N 0 T () S (//*******************************************************************) C n (15) # (//* Part 1: get_range/get_domain *) N 0 T (//* Part 2: Utility methods for compilation *) N 0 T (//* Part 3: Inversion of Properties *) N 0 T (//*******************************************************************) N 0 T () N (20) # (//*******************************************************************) N 0 T (//* Part 1: get_range/get_domain *) N 0 T (//*******************************************************************) N 0 T () N 0 T () S (// a small range inference algorithm, to improve the system) c n (25) # (//) N 0 T () S (get_range\(self:abstract_relation,x:type\) : type) p n 0 T ( ) S (\256) sy ( \() p (case) K ( self) p n 0 T ( \(phi x, ) N 0 T ( composition get_range\(self.r1,) N (30) # ( get_range\(self.r2, x\)\),) N 0 T ( ands get_range\(self.r1, x\) ^) N 0 T ( get_range\(self.r2, x\),) N 0 T ( ors get_range\(self.r1, x\) ) S (\310) sy n 0 T () S ( get_range\(self.r2, x\),) p n (35) # ( psi \() S (if) K ( \(self.op ) p (\316) sy ( class\) self.op) p n 0 T ( ) S (else) K ( extract_range\(self.op,) p n 0 T ( list\(get_range\(self.r1, x\),) N 0 T ( get_range\(self.r2, x\)\)\)\),) N 0 T ( array \() S (if) K ( self.multivalued? member\(self.range\) ) p (else) K ( self.range\),) p n (40) # ( property \() S (if) K ( \(self ) p (\272) sy ( Id\) x ) p (else) K ( extract_range\(self, list\(x\)\)\), ) p n 0 T ( product self.ens, ) N 0 T ( annotation get_range\(self.v.definition, x\),) N 0 T ( connotation get_range\(self.r, x\),) N 0 T ( denotation \() S (if) K ( unknown?\(definition, self.v\)) p n (45) # ( self.v.range) N 0 T ( ) S (else) K ( get_range\(self.v.definition,) p n 0 T ( x\)\),) N 0 T ( property_inverse ) N 0 T ( get_domain\(self.r, x\),) N (50) # ( any error\(") S (error: range is not defined for ~S\(~S\)) str (", self,) p n 0 T ( owner\(self\)\)\)\) ) N 0 T () N 0 T () S (// a similar domain inference algorithm) c n 0 T (//) N (55) # () S (get_domain\(self:abstract_relation,x:type\) : type) p n 0 T ( ) S (\256) sy ( \() p (case) K ( self) p n 0 T ( \(phi x, ) N 0 T ( composition get_domain\(self.r2,) N 0 T ( get_domain\(self.r1,) N (60) # ( x\)\),) N 0 T ( ands get_domain\(self.r1, x\) ^ ) N 0 T ( get_domain\(self.r2, x\),) N 0 T ( ors get_domain\(self.r1, x\) ) S (\310) sy n 0 T () S ( get_domain\(self.r2, x\),) p n (65) # ( property \() S (if) K ( \(self ) p (\272) sy ( Id\) x) p n 0 T ( ) S (else) K ( ) p (let) K ( y := ) p (\306) sy ( ) p (in) K ( ) p n 0 T ( \() S (for) K ( r ) p (in) K ( self.restrictions ) p n 0 T ( \() S (if) K ( \(self.multivalued? | x ^ r.range\)) p n 0 T ( y :U domain!\(r\)\),) N (70) # ( y\)\),) N (typing.cl) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T ( property_inverse ) p n 0 T ( get_range\(self.r, x\),) N 0 T ( product \() S (if) K ( known?\(BASE\) BASE ) p (else) K ( any\),) p n 0 T ( psi \() S (if) K ( inv?\(self\)) p n (75) # ( get_range\(inverse!\(self\), x\)) N 0 T ( ) S (else) K ( domain!\(self.r1\) ^ domain!\(self.r2\)\),) p n 0 T ( psi get_domain\(self.r1, x\) ^) N 0 T ( get_domain\(self.r2, x\),) N 0 T ( denotation get_domain\(self.v.definition, x\),) N (80) # ( any domain!\(self\)\)\)) N 0 T () N 0 T () S (// we extend range_type to take the type of arguments into account.) c n 0 T (//) N 0 T () S (extract_range\(self:property,l:list\) : type) p n (85) # ( ) S (\256) sy ( \() p (let) K ( %first := l[1],) p n 0 T ( %rest := \(copy\(l\) << 1\),) N 0 T ( prop := Optimize/restriction!\(self, l\),) N 0 T ( %res := \() S (case) K ( prop \(restriction prop.range, any self.range\)\) ) p (in) K ( ) p n 0 T ( \() S (if) K ( self.multivalued? member\(%res\) ) p (else) K ( %res\)\) ) p n (90) # (extract_range\(self:property_operator,l:list\) : type) N 0 T ( ) S (\256) sy ( extract_range\(self.op, l\) ) p n 0 T () N 0 T () S (// A small range inference algorithm, to improve the system.) c n 0 T (// \(x X y\) is the signature of the input pair) N (95) # (//) N 0 T () S (get_range\(self:derivative,x:type,y:type\) : type) p n 0 T ( ) S (\256) sy ( \() p (case) K ( self) p n 0 T ( \(Tone y, ) N 0 T ( Tinv x,) N (100) # ( Tphi get_domain\(self.e1, x, y\),) N 0 T ( compr get_range\(self.r1,) N 0 T ( get_range\(self.e2, x, y\)\),) N 0 T ( compl get_range\(self.e1, x, y\),) N 0 T ( Tand get_range\(self.e1, x, y\) ^) N (105) # ( get_range\(self.r2, any\),) N 0 T ( Tunion get_range\(self.e1, x, y\) ) S (\310) sy n 0 T () S ( get_range\(self.e2, x, y\),) p n 0 T ( Tpsi extract_range\(self.op,) N 0 T ( list\(get_range\(self.e1, x, y\),) N (110) # ( get_range\(self.r2,) N 0 T ( get_domain\(self.e1, x, y\)\)\)) N 0 T (\),) N 0 T ( Tannotation2) N 0 T ( get_range\(self.e1, x, y\),) N 0 T ( Tannotation1) N (115) # ( get_range\(self.v.definition, any\),) N 0 T ( Tconnotation2) N 0 T ( get_range\(self.r,) N 0 T ( get_domain\(self.e1, x, y\)\),) N 0 T ( Tconnotation1) N (120) # ( get_range\(self.e1, x, y\),) N 0 T ( Tif get_range\(self.r1,) N 0 T ( get_domain\(self.e1, x, y\)\) ) S (\310) sy n 0 T () S ( get_range\(self.r2,) p n 0 T ( get_domain\(self.e1, x, y\)\),) N (125) # ( Tdenotation get_range\(self.e1, x, y\),) N 0 T ( any error\(") S (error: get_range is not defined for ~S \(~S\)) str (", self,) p n 0 T ( owner\(self\)\)\)\) ) N 0 T () N 0 T () S (// A small domain inference algorithm, to improve the system.) c n (130) # (// \(x X y\) is the signature of the input pair) N 0 T (//) N 0 T () S (get_domain\(self:derivative,x:type,y:type\) : type) p n 0 T ( ) S (\256) sy ( \() p (case) K ( self) p n 0 T ( \(Tone x, ) N (135) # ( Tinv y,) N 0 T ( Tphi get_domain\(self.e1, x, y\),) N 0 T ( compr get_domain\(self.e2, x, y\),) N 0 T ( compl get_domain\(self.r2,) N 0 T ( get_domain\(self.e1, x, y\)\),) N (typing.cl) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (140) # ( Tand get_domain\(self.e1, x, y\) ^) p n 0 T ( get_domain\(self.r2, any\),) N 0 T ( Tunion get_domain\(self.e1, x, y\) ) S (\310) sy n 0 T () S ( get_domain\(self.e2, x, y\),) p n 0 T ( Tpsi get_domain\(self.e1, x, y\) ^) N (145) # ( get_domain\(self.r2, any\),) N 0 T ( Tannotation2) N 0 T ( get_domain\(self.e1, x, y\),) N 0 T ( Tannotation1) N 0 T ( get_domain\(self.e1, x, y\) ^) N (150) # ( get_domain\(self.v.definition, any\),) N 0 T ( Tconnotation2) N 0 T ( get_domain\(self.v.definition, any\),) N 0 T ( Tconnotation1) N 0 T ( get_domain\(self.e1, x, y\),) N (155) # ( Tdenotation get_domain\(self.e1, x, y\),) N 0 T ( Tif get_domain\(self.e1, x, y\),) N 0 T ( any error\(") S (error: get_domain is not defined for ~S \(~S\)) str (", self,) p n 0 T ( owner\(self\)\)\)\) ) N 0 T () N (160) # () S (//*******************************************************************) C n 0 T (//* Part 2: Utility methods for compilation *) N 0 T (//*******************************************************************) N 0 T () S (// a protected substitution) c n 0 T (//) N (165) # () S (Logic/cpsubst\(self:any,x:any,y:any\) : any) p n 0 T ( ) S (\256) sy ( substitution\(instruction_copy\(self\), x, y\)) p n 0 T () N 0 T () S (// instruction copy with fresh local variables) c n 0 T (//) N (170) # () S (Logic/cpfresh\(self:any\) : any) p n 0 T ( ) S (\256) sy ( \() p (let) K ( l := bound_variables\(self\),) p n 0 T ( x := instruction_copy\(self\) ) S (in) K ( ) p n 0 T ( \() S (for) K ( y ) p (in) K ( l x := substitution\(x, y, Variable\(pname ) p (\272) sy ( y.pname\)\), x\)\) ) p n 0 T () N (175) # () S (// make a copy with fresh variable + a substitution) c n 0 T (//) N 0 T () S (cpfresh\(self:any,x1:Variable,x2:Variable\) : any) p n 0 T ( ) S (\256) sy ( substitution\(cpfresh\(self\), x1, x2\)) p n 0 T () N (180) # () S (// make a new two variable conclusion) c n 0 T (//) N 0 T () S (cpfresh\(self:any,x1:Variable,x2:Variable,y1:Variable,y2:Variable\) : any) p n 0 T ( ) S (\256) sy ( substitution\(substitution\(cpfresh\(self\), x1, x2\), y1, y2\)) p n 0 T () N (185) # () S (// we create so many binary messages ...) c n 0 T (//) N 0 T () S (Logic/message!\(x:any,p:property,y:any\) : Call ) p (\256) sy ( Call\(p, list\(x, y\)\)) p n 0 T () N 0 T (Logic/make_a_and\(self:list\) : any) N (190) # ( ) S (\256) sy ( \() p (if) K ( \(size\(self\) ) p (\272) sy ( 1\) self[1] ) p (else) K ( And\(args ) p (\272) sy ( self\)\)) p n 0 T () N 0 T () S (//*******************************************************************) C n 0 T (//* Part 3: Inversion of Properties *) N 0 T (//*******************************************************************) N (195) # () S (// now we van define the inversion of a psi ------------------------) c n 0 T (//) N 0 T (// a psi term is usually non inversible.) N 0 T (// two exceptions are interesting:) N 0 T (// - the second subterm is a constant \(a constant is always placed) N (200) # (// in the second place\) and we have an addition or a multiplication) N 0 T (// - the two subterm are inversible and the operation is a mapping) N 0 T (//) N 0 T () S (inv?\(self:psi\) : boolean) p n 0 T ( ) S (\256) sy ( \() p (let) K ( %d := description[self.op] ) p (in) K n (205) # () S ( \(\(%d ) p (\272) sy ( group_operation &) p n 0 T ( \(inv?\(self.r1\) & self.r2 ) S (\316) sy ( product\)\) | ) p n 0 T ( \(\(%d ) S (\272) sy ( monoid |) p n 0 T ( \(%d ) S (\272) sy ( binary_operation & ) p n 0 T ( known?\(ternary_inverse_of[self.op]\)\)\) & ) N (typing.cl) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (210) # ( \(\(inv?\(self.r1\) & const?\(self.r2\)\) |) p n 0 T ( \(inv?\(self.r2\) & const?\(self.r1\)\)\)\)\)\)) N 0 T () N 0 T () S (// this is only called if the psi is inversible) c n 0 T (//) N (215) # () S (inverse!\(self:psi\) : any) p n 0 T ( ) S (\256) sy ( \() p (let) K ( %o := self.op,) p n 0 T ( t1 := self.r1,) N 0 T ( t2 := self.r2 ) S (in) K n 0 T () S ( \() p (if) K ( \(description[%o] ) p (\272) sy ( group_operation\)) p n (220) # ( compose\(inverse!\(t1\), ) N 0 T ( psify\(%o, Id,) N 0 T ( compose\(function_inverse[%o],) N 0 T ( t2\)\)\)) N 0 T ( ) S (else) K ( ) p (if) K ( \(description[%o] ) p (\272) sy ( monoid\) ) p n (225) # ( \() S (if) K ( const?\(t2\) ) p n 0 T ( compose\(inverse!\(t1\),) N 0 T ( compose\(psify\(ternary_inverse[%o],) N 0 T ( Id, t2\),) N 0 T ( phi\(op ) S (\272) sy ( ) p n (230) # ( comparison_inverse[%o],) N 0 T ( r1 ) S (\272) sy ( Id,) p n 0 T ( r2 ) S (\272) sy ( t2\)\)\)) p n 0 T ( ) S (else) K ( compose\(inverse!\(t2\),) p n 0 T ( compose\(psify\(ternary_inverse[%o],) N (235) # ( Id, t1\),) N 0 T ( phi\(op ) S (\272) sy ( ) p n 0 T ( comparison_inverse[%o],) N 0 T ( r1 ) S (\272) sy ( Id,) p n 0 T ( r2 ) S (\272) sy ( t1\)\)\)\)) p n (240) # ( ) S (else) K ( ) p (if) K ( known?\(ternary_inverse_of[%o]\)) p n 0 T ( \() S (if) K ( const?\(t2\)) p n 0 T ( compose\(inverse!\(t1\),) N 0 T ( psify\(ternary_inverse_of[%o],) N 0 T ( Id, t2\)\)) N (245) # ( ) S (else) K ( compose\(inverse!\(t2\), psify\(%o, t1, Id\)\)\) ) p n 0 T ( ) S (else) K ( ) p (if) K ( \(description[%o] ) p (\272) sy ( mapping\)) p n 0 T ( ands\(r1 ) S (\272) sy ( ) p n 0 T ( compose\(inverse!\(t1\),) N 0 T ( projection1[%o]\),) N (250) # ( r2 ) S (\272) sy n 0 T () S ( compose\(inverse!\(t2\),) p n 0 T ( projection2[%o]\)\)\)\)) N 0 T () N 0 T () S (// check if a relation can be inversed without trouble) c n (255) # (//) N 0 T () S (inv?\(self:relation\) : boolean) p n 0 T ( ) S (\256) sy ( \(known?\(inverse, self\) |) p n 0 T ( \() S (case) K ( self ) p n 0 T ( \(relation finite?\(self.domain\), ) N (260) # ( property ) S (\330) sy (\({ r ) p (in) K ( self.restrictions | ) p n 0 T ( ) S (\330) sy (\(finite?\(domain!\(r\)\)\)}\)\)\)\)) p n 0 T (inverse!\(self:relation\) : relation) N 0 T ( ) S (\256) sy ( \() p (let) K ( r1 := get\(inverse, self\) ) p (in) K n 0 T () S ( ) p (case) K ( r1) p n (265) # ( \(relation r1,) N 0 T ( any property_inverse\(r ) S (\272) sy ( self\)\)\)) p n 0 T () N 0 T () S (// a constant expression is either a constant or an expression involving) c n 0 T (// constants) N (270) # (//) N 0 T () S (const?\(self:abstract_relation\) : boolean) p n 0 T ( ) S (\256) sy ( \() p (case) K ( self) p n 0 T ( \(constant true, ) N 0 T ( composition const?\(self.r2\),) N (275) # ( psi \(const?\(self.r1\) &) N 0 T ( const?\(self.r2\)\)\)\)) N 0 T () N 0 T () S (//*******************************************************************) C n 0 T (//* Part 4: Algebra Canonical Injection *) N (typing.cl) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (280) # (//*******************************************************************) C n 0 T () N 0 T () S (domain!\(r:relation\) : type ) p (\256) sy ( r.domain) p n 0 T () N 0 T () S (// a property is an abstract relation ----------------------------------) c n (285) # (// "inversion" is straightforward, we create a message) N 0 T (//) N 0 T () S (inversion\(self:property,x:any,y:Variable\) : any) p n 0 T ( ) S (\256) sy ( \() p (if) K ( self.multivalued?) p n 0 T ( Call\(selector ) S (\272) sy ( ) p (\316) sy (, args ) p (\272) sy ( list\(y, inversion!\(self, x\)\)\) ) p n (290) # ( ) S (else) K ( Call\(selector ) p (\272) sy ( ) p (\272) sy (, args ) p (\272) sy ( list\(y, inversion!\(self, x\)\)\)\)) p n 0 T (inversion!\(self:property,x:any\) : any) N 0 T ( ) S (\256) sy ( \() p (if) K ( \(self ) p (\272) sy ( Id\) x ) p (else) K ( Call\(selector ) p (\272) sy ( self, args ) p (\272) sy ( list\(x\)\)\)) p n 0 T () N 0 T () S (// an extensional relation) c n (295) # (//) N 0 T () S (inversion\(self:array,x:any,y:Variable\) : any) p n 0 T ( ) S (\256) sy ( Call\(selector ) p (\272) sy ( ) p (\272) sy (, args ) p (\272) sy ( list\(y, inversion!\(self, x\)\)\)) p n 0 T (inversion!\(self:array,x:any\) : any) N 0 T ( ) S (\256) sy ( Call\(selector ) p (\272) sy ( nth, args ) p (\272) sy ( list\(self, x\)\)) p n (300) # () N (typing.cl) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/vrcaml.ps0000644000000000000000000002075414233473143013713 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (\(**************************************************************************\)) c n 0 T (\(* Creation and manipulation of VRML objects *\)) N 0 T (\(**************************************************************************\)) N 0 T () N (5) # () S (#) p (open) K ( ") p (VRcaML) str (";;) p n 0 T (#) S (open) K ( ") p (default) str (";;) p n 0 T (#) S (open) K ( ") p (exceptions) str (";;) p n 0 T (#) S (open) K ( ") p (basic_types) str (";;) p n 0 T (#) S (open) K ( ") p (font) str (";;) p n (10) # (#) S (open) K ( ") p (fonts) str (";;) p n 0 T (#) S (open) K ( ") p (colors) str (";;) p n 0 T () N 0 T () N 0 T () N (15) # () N 0 T () S (\(**************************************************************************\)) c n 0 T (\(* Creation of VRML objects *\)) N 0 T (\(**************************************************************************\)) N 0 T () N (20) # (\(* New empty referential **************************************************\)) N 0 T () N 0 T (\(* new_referential: vrml_object *\)) N 0 T () S (let) K ( new_referential = default_vrml_object ;;) p n 0 T () N (25) # () N 0 T () S (\(* New VRML object ********************************************************\)) c n 0 T () N 0 T (\(* new_vrml_object :) N 0 T ( vrml_positionable list -> vrml_object list -> vect3D -> rotation) N (30) # (-> vect3D -> frame -> bool -> anchor -> billboard -> collision) N 0 T (-> vrml_object *\)) N 0 T () S (let) K ( new_vrml_object objects children position rotation scale) p n 0 T ( frame unique anchor billboard collision =) N 0 T ( { objects = objects ;) N (35) # ( children = children ;) N 0 T ( position = position ;) N 0 T ( rotation = rotation ;) N 0 T ( scale = scale ;) N 0 T ( frame = frame ;) N (40) # ( unique = unique ;) N 0 T ( anchor = anchor ;) N 0 T ( billboard = billboard ;) N 0 T ( collision = collision }) N 0 T (;;) N (45) # () N 0 T () N 0 T () S (\(**************************************************************************\)) c n 0 T (\(* Setting fields *\)) N 0 T (\(**************************************************************************\)) N (50) # () N 0 T (\(* set_objects : vrml_object -> vrml_positionable list -> vrml_object *\)) N 0 T () S (let) K ( setf_objects ) p (object) K ( objects =) p n 0 T ( new_vrml_object objects ) S (object) K (.children ) p (object) K (.position) p n 0 T ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n (55) # ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n 0 T ( ) S (object) K (.collision) p n 0 T (;;) N 0 T () N 0 T () S (let) K ( set_objects = setf_objects ;;) p n (60) # () N 0 T () S (\(* set_children : vrml_object -> vrml_object list -> vrml_object *\)) c n 0 T () S (let) K ( setf_children ) p (object) K ( children =) p n 0 T ( new_vrml_object ) S (object) K (.objects children ) p (object) K (.position) p n 0 T ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n (65) # ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n 0 T ( ) S (object) K (.collision) p n 0 T (;;) N 0 T () N 0 T () S (let) K ( set_children = setf_children ;;) p n (70) # () N (vrcaml.ml) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (\(* setf_position : vrml_object -> float -> float -> float -> vrml_object *\)) c n 0 T () S (let) K ( setf_position ) p (object) K ( position =) p n 0 T ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children position) p n 0 T ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n (75) # ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n 0 T ( ) S (object) K (.collision) p n 0 T (;;) N 0 T () N 0 T () S (\(* setf_rotation :) c n (80) # ( vrml_object -> float -> float -> float -> float -> vrml_object *\)) N 0 T () S (let) K ( setf_rotation ) p (object) K ( rotation =) p n 0 T ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n 0 T ( rotation ) S (object) K (.scale ) p (object) K (.frame) p n 0 T ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n (85) # ( ) S (object) K (.collision) p n 0 T (;;) N 0 T () N 0 T () S (\(* setf_scale : vrml_object -> float -> float -> float -> vrml_object *\)) c n 0 T () S (let) K ( setf_scale ) p (object) K ( scale =) p n (90) # ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n 0 T ( ) S (object) K (.rotation scale ) p (object) K (.frame) p n 0 T ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n 0 T ( ) S (object) K (.collision) p n 0 T (;;) N (95) # () N 0 T () S (\(* setf_frame : vrml_object -> frame -> vrml_object *\)) c n 0 T () S (let) K ( setf_frame ) p (object) K ( frame =) p n 0 T ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n 0 T ( ) S (object) K (.rotation ) p (object) K (.scale frame) p n (100) # ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n 0 T ( ) S (object) K (.collision) p n 0 T (;;) N 0 T () N 0 T () S (let) K ( set_frame = setf_frame ;;) p n (105) # () N 0 T () S (\(* setf_unique : vrml_object -> bool -> vrml_object *\)) c n 0 T () S (let) K ( setf_unique ) p (object) K ( unique =) p n 0 T ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n 0 T ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n (110) # ( unique ) S (object) K (.anchor ) p (object) K (.billboard) p n 0 T ( ) S (object) K (.collision) p n 0 T (;;) N 0 T () N 0 T () S (let) K ( set_unique = setf_unique ;;) p n (115) # () N 0 T () S (\(* setf_anchor : vrml_object -> anchor -> vrml_object *\)) c n 0 T () S (let) K ( setf_anchor ) p (object) K ( anchor =) p n 0 T ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n 0 T ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n (120) # ( ) S (object) K (.unique anchor ) p (object) K (.billboard) p n 0 T ( ) S (object) K (.collision) p n 0 T (;;) N 0 T () N 0 T () S (\(* setf_billboard : vrml_object -> billboard -> vrml_object *\)) c n (125) # () S (let) K ( setf_billboard ) p (object) K ( billboard =) p n 0 T ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n 0 T ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n 0 T ( ) S (object) K (.unique ) p (object) K (.anchor billboard) p n 0 T ( ) S (object) K (.collision) p n (130) # (;;) N 0 T () N 0 T () S (\(* setf_collision : vrml_object -> collision -> vrml_object *\)) c n 0 T () S (let) K ( setf_collision ) p (object) K ( collision =) p n 0 T ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n (135) # ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n 0 T ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n 0 T ( collision) N 0 T (;;) N (vrcaml.ml) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/gps-ref/wide.ps0000644000000000000000000001735314233473143013360 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p 8 T (This is a test for the coverage of the whole ascii) N 0 T () S 8 T (char set \(from 0 to 255\)) N 0 T (--------------------------------------------------------------) N 0 T ( 0, 0, 0 :^@) S 16 T ( 1, 1, 1 :^A) S 32 T ( 2, 2, 2 :^B) S 48 T ( 3, 3, 3 :^C) N (5) # ( 4, 4, 4 :^D) S 16 T ( 5, 5, 5 :^E) S 32 T ( 6, 6, 6 :^F) S 48 T ( 7, 7, 7 :^G) N 0 T ( 10, 8, 8 :^H) S 16 T ( 11, 9, 9 :) S 32 T () S 40 T ( 12, 10, a :) N 0 T () S 8 T ( 13, 11, b :^K) N 0 T ( 14, 12, c :) N (wide.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p 8 T ( 15, 13, d :) N 0 T () S 8 T ( 16, 14, e :^N) S 24 T ( 17, 15, f :^O) N (10) # ( 20, 16,10 :^P) S 16 T ( 21, 17,11 :^Q) S 32 T ( 22, 18,12 :^R) S 48 T ( 23, 19,13 :^S) N 0 T ( 24, 20,14 :^T) S 16 T ( 25, 21,15 :^U) S 32 T ( 26, 22,16 :^V) S 48 T ( 27, 23,17 :^W) N 0 T ( 30, 24,18 :^X) S 16 T ( 31, 25,19 :^Y) S 32 T ( 32, 26,1a :^Z) S 48 T ( 33, 27,1b :^[) N 0 T ( 34, 28,1c :^\\) S 16 T ( 35, 29,1d :^]) S 32 T ( 36, 30,1e :^^) S 48 T ( 37, 31,1f :^_) N 0 T ( 40, 32,20 : ) S 16 T ( 41, 33,21 :!) S 32 T ( 42, 34,22 :") S 48 T ( 43, 35,23 :#) N (15) # ( 44, 36,24 :$) S 16 T ( 45, 37,25 :%) S 32 T ( 46, 38,26 :&) S 48 T ( 47, 39,27 :') N 0 T ( 50, 40,28 :\() S 16 T ( 51, 41,29 :\)) S 32 T ( 52, 42,2a :*) S 48 T ( 53, 43,2b :+) N 0 T ( 54, 44,2c :,) S 16 T ( 55, 45,2d :-) S 32 T ( 56, 46,2e :.) S 48 T ( 57, 47,2f :/) N 0 T ( 60, 48,30 :0) S 16 T ( 61, 49,31 :1) S 32 T ( 62, 50,32 :2) S 48 T ( 63, 51,33 :3) N 0 T ( 64, 52,34 :4) S 16 T ( 65, 53,35 :5) S 32 T ( 66, 54,36 :6) S 48 T ( 67, 55,37 :7) N (20) # ( 70, 56,38 :8) S 16 T ( 71, 57,39 :9) S 32 T ( 72, 58,3a ::) S 48 T ( 73, 59,3b :;) N 0 T ( 74, 60,3c :<) S 16 T ( 75, 61,3d :=) S 32 T ( 76, 62,3e :>) S 48 T ( 77, 63,3f :?) N 0 T (100, 64,40 :@) S 16 T (101, 65,41 :A) S 32 T (102, 66,42 :B) S 48 T (103, 67,43 :C) N 0 T (104, 68,44 :D) S 16 T (105, 69,45 :E) S 32 T (106, 70,46 :F) S 48 T (107, 71,47 :G) N 0 T (110, 72,48 :H) S 16 T (111, 73,49 :I) S 32 T (112, 74,4a :J) S 48 T (113, 75,4b :K) N (25) # (114, 76,4c :L) S 16 T (115, 77,4d :M) S 32 T (116, 78,4e :N) S 48 T (117, 79,4f :O) N 0 T (120, 80,50 :P) S 16 T (121, 81,51 :Q) S 32 T (122, 82,52 :R) S 48 T (123, 83,53 :S) N 0 T (124, 84,54 :T) S 16 T (125, 85,55 :U) S 32 T (126, 86,56 :V) S 48 T (127, 87,57 :W) N 0 T (130, 88,58 :X) S 16 T (131, 89,59 :Y) S 32 T (132, 90,5a :Z) S 48 T (133, 91,5b :[) N 0 T (134, 92,5c :\\) S 16 T (135, 93,5d :]) S 32 T (136, 94,5e :^) S 48 T (137, 95,5f :_) N (30) # (140, 96,60 :`) S 16 T (141, 97,61 :a) S 32 T (142, 98,62 :b) S 48 T (143, 99,63 :c) N 0 T (144,100,64 :d) S 16 T (145,101,65 :e) S 32 T (146,102,66 :f) S 48 T (147,103,67 :g) N 0 T (150,104,68 :h) S 16 T (151,105,69 :i) S 32 T (152,106,6a :j) S 48 T (153,107,6b :k) N 0 T (154,108,6c :l) S 16 T (155,109,6d :m) S 32 T (156,110,6e :n) S 48 T (157,111,6f :o) N 0 T (160,112,70 :p) S 16 T (161,113,71 :q) S 32 T (162,114,72 :r) S 48 T (163,115,73 :s) N (35) # (164,116,74 :t) S 16 T (165,117,75 :u) S 32 T (166,118,76 :v) S 48 T (167,119,77 :w) N 0 T (170,120,78 :x) S 16 T (171,121,79 :y) S 32 T (172,122,7a :z) S 48 T (173,123,7b :{) N 0 T (174,124,7c :|) S 16 T (175,125,7d :}) S 32 T (176,126,7e :~) S 48 T (177,127,7f :^?) N 0 T (200,128,80 :M-^@) S 24 T (201,129,81 :M-^A) S 48 T (202,130,82 :M-^B) S 72 T (203,131,) N 0 T (83 :M-^C) N 0 T (204,132,84 :M-^D) S 24 T (205,133,85 :M-^E) S 48 T (206,134,86 :M-^F) S 72 T (207,135,) N 0 T (87 :M-^G) N (40) # (210,136,88 :M-^H) S 24 T (211,137,89 :M-^I) S 48 T (212,138,8a :M-^J) S 72 T (213,139,) N 0 T (8b :M-^K) N 0 T (214,140,8c :M-^L) S 24 T (215,141,8d :M-^M) S 48 T (216,142,8e :M-^N) S 72 T (217,143,) N 0 T (8f :M-^O) N 0 T (220,144,90 :M-^P) S 24 T (221,145,91 :M-^Q) S 48 T (222,146,92 :M-^R) S 72 T (223,147,) N 0 T (93 :M-^S) N 0 T (224,148,94 :M-^T) S 24 T (225,149,95 :M-^U) S 48 T (226,150,96 :M-^V) S 72 T (227,151,) N 0 T (97 :M-^W) N 0 T (230,152,98 :M-^X) S 24 T (231,153,99 :M-^Y) S 48 T (232,154,9a :M-^Z) S 72 T (233,155,) N 0 T (9b :M-^[) N (45) # (234,156,9c :M-^\\) S 24 T (235,157,9d :M-^]) S 48 T (236,158,9e :M-^^) S 72 T (237,159,) N 0 T (9f :M-^_) N 0 T (240,160,a0 :\240) S 16 T (241,161,a1 :\241) S 32 T (242,162,a2 :\242) S 48 T (243,163,a3 :\243) N 0 T (244,164,a4 :\244) S 16 T (245,165,a5 :\245) S 32 T (246,166,a6 :\246) S 48 T (247,167,a7 :\247) N 0 T (250,168,a8 :\250) S 16 T (251,169,a9 :\251) S 32 T (252,170,aa :\252) S 48 T (253,171,ab :\253) N 0 T (254,172,ac :\254) S 16 T (255,173,ad :\255) S 32 T (256,174,ae :\256) S 48 T (257,175,af :\257) N (50) # (260,176,b0 :\260) S 16 T (261,177,b1 :\261) S 32 T (262,178,b2 :\262) S 48 T (263,179,b3 :\263) N 0 T (264,180,b4 :\264) S 16 T (265,181,b5 :\265) S 32 T (266,182,b6 :\266) S 48 T (267,183,b7 :\267) N 0 T (270,184,b8 :\270) S 16 T (271,185,b9 :\271) S 32 T (272,186,ba :\272) S 48 T (273,187,bb :\273) N 0 T (274,188,bc :\274) S 16 T (275,189,bd :\275) S 32 T (276,190,be :\276) S 48 T (277,191,bf :\277) N 0 T (300,192,c0 :\300) S 16 T (301,193,c1 :\301) S 32 T (302,194,c2 :\302) S 48 T (303,195,c3 :\303) N (55) # (304,196,c4 :\304) S 16 T (305,197,c5 :\305) S 32 T (306,198,c6 :\306) S 48 T (307,199,c7 :\307) N 0 T (310,200,c8 :\310) S 16 T (311,201,c9 :\311) S 32 T (312,202,ca :\312) S 48 T (313,203,cb :\313) N 0 T (314,204,cc :\314) S 16 T (315,205,cd :\315) S 32 T (316,206,ce :\316) S 48 T (317,207,cf :\317) N 0 T (320,208,d0 :\320) S 16 T (321,209,d1 :\321) S 32 T (322,210,d2 :\322) S 48 T (323,211,d3 :\323) N 0 T (324,212,d4 :\324) S 16 T (325,213,d5 :\325) S 32 T (326,214,d6 :\326) S 48 T (327,215,d7 :\327) N (60) # (330,216,d8 :\330) S 16 T (331,217,d9 :\331) S 32 T (332,218,da :\332) S 48 T (333,219,db :\333) N 0 T (334,220,dc :\334) S 16 T (335,221,dd :\335) S 32 T (336,222,de :\336) S 48 T (337,223,df :\337) N 0 T (340,224,e0 :\340) S 16 T (341,225,e1 :\341) S 32 T (342,226,e2 :\342) S 48 T (343,227,e3 :\343) N 0 T (344,228,e4 :\344) S 16 T (345,229,e5 :\345) S 32 T (346,230,e6 :\346) S 48 T (347,231,e7 :\347) N 0 T (350,232,e8 :\350) S 16 T (351,233,e9 :\351) S 32 T (352,234,ea :\352) S 48 T (353,235,eb :\353) N (65) # (354,236,ec :\354) S 16 T (355,237,ed :\355) S 32 T (356,238,ee :\356) S 48 T (357,239,ef :\357) N 0 T (360,240,f0 :\360) S 16 T (361,241,f1 :\361) S 32 T (362,242,f2 :\362) S 48 T (363,243,f3 :\363) N 0 T (364,244,f4 :\364) S 16 T (365,245,f5 :\365) S 32 T (366,246,f6 :\366) S 48 T (367,247,f7 :\367) N 0 T (370,248,f8 :\370) S 16 T (371,249,f9 :\371) S 32 T (372,250,fa :\372) S 48 T (373,251,fb :\373) N 0 T (374,252,fc :\374) S 16 T (375,253,fd :\375) S 32 T (376,254,fe :\376) S 48 T (377,255,ff :\377) N (wide.txt) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.431713 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (70) # () p n 0 T (=============================================================) N (wide.txt) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/guess-1.tst0000754000000000000000000000206214365204754012540 00000000000000#! /bin/sh # -*- ksh -*- # This program tries most common options of the program # This is where you installed the tested version of the program # (and the directories test, test-ps and diff) : ${SRCDIR=.} . $SRCDIR/defs || exit 1 pairs="includeres:perl psmandup:sh run-help:zsh strange.mail:mail ehandler:ps" for pair in $pairs do # What are the filename and its type file=`echo $pair | sed "s/:.*//"g` lang=`echo $pair | sed "s/[^:]*://"g` # Check that a2ps agrees res=`$CHK --guess $TST_DIR/$file | sed -e 's/[^(]*(//g' | sed -e 's/)[^)]*//g'` if test "$res" != $lang; then has_failed=yes; cant_recognize="$cant_recognize $lang" fi done # Understandable report of the problems if test x$has_failed = xyes; then echo "Your /etc/magic file seems a bit junky." echo "It is unable to recognize the type of$cant_recognize files" echo "You might run into bad guesses with automatic pretty-printing" echo "-- Please note that this is not an error from a2ps." echo "-- Don't be worried by this failure, nor should you report it" fi exit 0 a2ps-4.15.5/tests/guess-2.tst0000754000000000000000000000360414233473143012536 00000000000000#! /bin/sh # -*- ksh -*- # guess2.tst # Check that a2ps is able to use file(1) on stdin. # Do _not_ report an error if a2ps failed to recognize PostScript files # when file itself fails. But display a big warning though. : ${SRCDIR=.} . $SRCDIR/defs || exit 1 # Get the type verdict from a2ps get_type='sed -e s/[^(]*(//g;s/)[^)]*//g' # Check that guesses are OK for stdin filename # No argument, no content res=`echo | $CHK --guess --stdin=foo.ps | $get_type` || exit 1 test "$res" = ps || exit 1 # Argument is -, no content res=`echo | $CHK --guess --stdin=foo.ps - | $get_type` || exit 1 test "$res" = ps || exit 1 # No arg, no specified title, no content res=`echo | $CHK --guess | $get_type` || exit 1 test "$res" = plain || exit 1 # No arg, no specified title, a ps content # This test relies upon a good file(1) (i.e. a good etc/magic). res=`cat $TST_DIR/ehandler | $CHK --guess | $get_type` || exit 1 if test "$res" = ps; then :; else # We have failed to recognize a ps file. Is it because of file(1)? set -- `$CHK --guess -vtools $TST_DIR/ehandler 2>&1 | grep '^file(1)'` case "$3$4" in PostScript|postscript) # a2ps is truly responsible exit 1 ;; *) # a2ps is not responsible exec 1>&2 echo "*****************************************************************" echo "* Your file(1) is sadly broken. It does not recognize PostScript" echo "* files. You may have unexpected results such as pretty printing" echo "* of the _source_ of your PostScript documents." echo "* To avoid this problem ask your system administrator to update" echo "* etc/magic, so that running" echo "* file $TST_DIR/ehandler" echo "* correctly answers \`PostScript document'" echo "*****************************************************************" # Consider the test is succesful exit 0 ;; esac fi exit 0 a2ps-4.15.5/tests/inout-1.tst0000754000000000000000000000101614233473143012540 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps correctly reads stdin, and # writes on stdout. In particular, we check both with -Eplain # specified, and without (i.e., -E alone). : ${SRCDIR=.} # failure? fail=0 # The options to run with OPT="-o- -" # The testing file IN_NAME=report.pre # Set up other vars . $SRCDIR/defs || exit 1 # 1. Read stdin, produce on stdout, specify "plain" nlines=`cat $TST_FILE | $CHK $OPT | wc -l | sed 's/[ \t]//g'` test $? = 0 || fail=1 test $nlines != 0 || fail=1 exit $fail a2ps-4.15.5/tests/inout-2.tst0000754000000000000000000000102314233473143012537 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps correctly reads stdin, and # writes on stdout. In particular, we check both with -Eplain # specified, and without (i.e., -E alone). : ${SRCDIR=.} # failure? fail=0 # The options to run with OPT="-o- -" # The testing file IN_NAME=prosamp.pre # Set up other vars . $SRCDIR/defs || exit 1 # 2. Read stdin, produce on stdout, specify "pre" nlines=`cat $TST_FILE | $CHK $OPT -Epre | wc -l | sed 's/[ \t]//g'` test $? = 0 || fail=1 test $nlines != 0 || fail=1 exit $fail a2ps-4.15.5/tests/inout-3.tst0000754000000000000000000000104014233473143012537 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps correctly reads stdin, and # writes on stdout. In particular, we check both with -Eplain # specified, and without (i.e., -E alone). : ${SRCDIR=.} # failure? fail=0 # The options to run with OPT="-o- -" # The testing file IN_NAME=report.pre # Set up other vars . $SRCDIR/defs || exit 1 # 3. Read stdin, produce on stdout, set automatic ssh selection on nlines=`cat $TST_FILE | $CHK $OPT -E | wc -l | sed 's/[ \t]//g'` test $? = 0 || fail=1 test $nlines != 0 || fail=1 exit $fail a2ps-4.15.5/tests/options-1.tst0000754000000000000000000000074714251202734013103 00000000000000#! /bin/sh # -*- ksh -*- # Test if the basic options work, and produce on stdout only. . ./defs || exit 1 for p in --version --help --list=features --list=printers --list=options \ --list=media --list=style-sheets --list=delegations \ --list=macro-meta-sequences --list=encodings --list=user-options \ --list=prologues --list=ppd; do echo $p # There should be nothing on stderr */ $verbose "Running a2ps $p" err=`$CHK $p 2>&1 >/dev/null` test "x$err" = x done exit 0 a2ps-4.15.5/tests/pages-1.tst0000754000000000000000000000147214233473143012507 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps handles correctly the page ranges : ${SRCDIR=.} # The options to run with # There are 7 pages to print formfeed.txt. Use it twice to test # Page selection of several files. # Do not use compact mode to check that the pages are anyway correctly # generated # Get the first 2, the last 2, and 1 in the middle (one of each file) # And one which is far too big OPT="-C2mq --compact=no -a-2,4,7-8,13-,99" # The testing file IN_NAME=formfeed.txt # Outputs OUT_NAME=pages-1.ps # Set up other vars . $SRCDIR/defs || exit 1 # Run the test $CHK $OPT $TST_FILE $TST_FILE -P awkout > $CHK_FILE || exit 1 if test -f $REF_FILE; then :; else $REF $OPT $TST_FILE $TST_FILE -P awkout > $REF_FILE || exit 1 fi # Return the verdict cmp $REF_FILE $CHK_FILE 2> /dev/null exit 0 a2ps-4.15.5/tests/pages-2.tst0000754000000000000000000000107314233473143012505 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps handles correctly the page ranges # Check that invalid values are rejected. : ${SRCDIR=.} # The testing file IN_NAME=formfeed.txt # Set up other vars . $SRCDIR/defs || exit 1 # Now check that some invalid values are rejected $CHK $FILE -o- --pages=1-2d > /dev/null 2>&1 && exit 1 $CHK $FILE -o- --pages=tocd > /dev/null 2>&1 && exit 1 $CHK $FILE -o- --pages=1,d > /dev/null 2>&1 && exit 1 # Check the behavior when -a is reset $CHK $FILE -o- --pages=1-2 --pages < /dev/null > /dev/null 2>&1 || exit 1 exit 0 a2ps-4.15.5/tests/printers.tst0000754000000000000000000000046014415615627013123 00000000000000#! /bin/sh # -*- ksh -*- # The DefaultPrinter is not defined in a2ps-test.cfg, but that's # no reason to dump! . ./defs || exit 1 # grep for just the basename, as on some systems we don't get the full path # in the error message. (echo | $CHK -d 2>&1) | grep "$(basename $CHK):" >&5 || exit 1 exit 0 a2ps-4.15.5/tests/prolog-1.tst0000754000000000000000000000055014233473143012706 00000000000000#! /bin/sh # -*- ksh -*- # Check that the prologues behave well (no missing files) : ${SRCDIR=.} # Option to run a2ps with OPT="-Esh" # The testing file IN_NAME=formfeed.txt # Set up other vars . $SRCDIR/defs || exit 1 for p in bold bw color gray gray2 matrix diff do $verbose "Running prologue $p" $CHK --prologue=$p $OPT $TST_FILE -o/dev/null done a2ps-4.15.5/tests/prolog-2.tst0000754000000000000000000000117514233473143012713 00000000000000#! /bin/sh # -*- ksh -*- # Compare two prologues for -1 and -4 (used in align.tst) : ${SRCDIR=.} # Option to run a2ps with OPT="-Eplain -Pawkin" # The testing file IN_NAME=formfeed.txt # Set up other vars . $SRCDIR/defs || exit 1 for nup in 1 4 do # Checked and reference outputs ref_file=$REF_DIR/prolog-${nup}.ps chk_file=$CHK_DIR/prolog-${nup}.ps $verbose "Running a2ps -$nup $OPT $TST_FILE" $CHK -$nup $OPT $TST_FILE >$chk_file 2>&5 if test ! -f $ref_file; then $verbose "Running ref-a2ps -$nup $OPT $TST_FILE" $REF -$nup $OPT $TST_FILE >$ref_file 2>&5 fi cmp -s $ref_file $chk_file done exit $failure a2ps-4.15.5/tests/ps-ref/0000755000000000000000000000000014236507210011760 500000000000000a2ps-4.15.5/tests/ps-ref/AppDelegate.ps0000644000000000000000000001223014233473143014421 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p n (#import) K ( ") p (AppDelegate.h) str (") p n () N (#import) K ( ) p n (#import) K ( ) p n () N (@implementation) K ( AppDelegate) p n () N (// --------------------- Constants) c n () p n (#define) K ( N_FIELDS) p 24 T () S 32 T (\(8\)) N () N (// --------------------- Global variables) c n () p n (NSString) N ( *AppDelegateNewSetNotificationName = @") S (AppDelegateNewSetNotification) str (",) p n ( ) S 8 T () S (// This is the name of the notification sent out when a new) c n () p 8 T () S (// field set has been selected for manipulation.) c n ( *AppDelegateNewFieldNotificationName = @") p (AppDelegateNewSetNotification) str (";) p n ( ) S 8 T () S (// This is the name of the notification sent out when a new) c n () p 8 T () S (// field has been selected for manipulation.) c n ( ) p n (// --------------------- Class variables) c n () p n (static) K ( NSMutableArray) p n () S 8 T (*classDefaultSet = nil;) N () S 8 T () N (// --------------------- Methods) c n () p n (+ initize) K n ({) p n ( ) S (// This method will be called automatically prior to any) c n ( ) p (// other to this class.) c n ( ) p n ( ) S (int) k ( ) p n ( ) S 8 T (i;) N () S 8 T () N ( ) S (// Create an array to hold the actual field objects.) c n ( classDefaultSet = [[NSMutableArray array] retain];) p n ( ) S 8 T () S 16 T ( ) N ( ) N ( ) S (return) K ( ) p (self) K (;) p n ( ) S 8 T () S 16 T ( ) N (} ) S (// initize) c n ( ) p n (- \(id
\)fieldSet) K n ({) p n ( ) S (// This method returns an object \(conforming to the FieldSet) c n ( ) p (// protocol\) which is being manipulated by this application. ) c n ( ) p n ( ) S (// If we don't have one yet...) c n ( ) p (if) K ( \(!myFieldSet\)) p n ( {) N ( ) S 8 T () S (// Just adopt the default one for this class.) c n () p 8 T ([) S (self) K ( setFieldSet:\() p (id) k (\)classDefaultSet];) p n ( }) N ( ) N ( ) S (return) K ( myFieldSet;) p n ( ) N (} ) S (// fieldSet) c n () p n (- \(void\)setFieldSet:\(id
\)newValue) K n ({) p n ( ) S (// This method sets the field set being manipulated to the one given.) c n ( ) p (// If the new set differs from the old, the AppDelegateNewSet) c n ( ) p (// notification will be posted informing watchers of the change.) c n (AppDelegate.m) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p n ( ) S (// If the new field is the same as the old..) c n ( ) p (if) K ( \(newValue EQ myFieldSet\)) p n ( {) N ( ) S 8 T () S (return) K (;) p 16 T () S (// do nothing) c n ( } ) p n ( ) N ( ) S (// Release the old value and adopt the new.) c n ( [newValue retain];) p n ( ) N ( ) S (// Post a notification of the change.) c n ( [[NotificationCenter defaultCenter]) p n ( ) S 8 T (postNotificationName:AppDelegateNewSetNotificationName) N () S 8 T (object:myFieldSet];) N ( ) N (} ) S (// setFieldSet:) c n () p n (- \(Field *\)selectedField) K n ({) p n ( ) S (// This method returns the field from our field set) c n ( ) p (// which is currently considered selected.) c n ( ) p n ( ) S (// If we don't currently have a selected field...) c n ( ) p (if) K ( \(!mySelectedField\)) p n ( {) N ( ) S 8 T () S (// Adopt the first field in our set.) c n () p 8 T ([) S (self) K ( setSelectedField:[[) p (self) K ( fieldSet] fieldAtIndex:0]];) p n ( }) N ( ) N ( ) S (return) K ( mySelectedField;) p n ( ) N (} ) S (// selectedField) c n () p n (- \(void\)setSelectedField:\(Field *\)newValue) K n ({) p n ( ) S (// This method causes the given field to be taken as the active one.) c n ( ) p (// If the new field differs from the old, the AppDelegateNewField ) c n ( ) p (// notification will be posted informing watchers of the change.) c n ( ) p n ( ) S (// If the new field is the same as the old..) c n ( ) p (if) K ( \(newValue EQ mySelectedField\)) p n ( {) N ( ) S 8 T () S (return) K (;) p 16 T () S (// do nothing) c n ( } ) p n ( ) N ( ) S (// Release the old value and adopt the new.) c n ( [newValue retain];) p n ( ) N ( ) S (// Post a notification of the change.) c n ( [[NotificationCenter defaultCenter]) p n ( ) S 8 T (postNotificationName:AppDelegateNewFieldNotificationName ) N () S 8 T (object:mySelectedField];) N ( ) N (} ) S (// setSelectedField:) c n () p n (@end) K n (AppDelegate.m) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/InsertBlock.ps0000644000000000000000000000453114236507210014466 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (/* This code is part of Freenet. It is distributed under the GNU General) c n ( * Public License, version 2 \(or at your option any later version\). See) N ( * http://www.gnu.org/ for further details of the GPL. */) N (package) K ( freenet.client;) p n () N (import) K ( freenet.keys.FreenetURI;) p n (import) K ( freenet.support.api.Bucket;) p n () N (/**) C n ( * Class to contain everything needed for an insert.) N ( */) N (public) K ( ) p (class) K ( ) p (InsertBlock) L ( {) p n () N () S 8 T () S (private) K ( ) p (final) K ( Bucket data;) p n () S 8 T () S (private) K ( ) p (boolean) k ( isFreed;) p n () S 8 T () S (public) K ( ) p (final) K ( FreenetURI desiredURI;) p n () S 8 T () S (public) K ( ) p (final) K ( ClientMetadata clientMetadata;) p n () S 8 T () N () S 8 T () S (public) K ( InsertBlock\(Bucket data, ClientMetadata metadata, FreenetURI desi) p n (redURI\) {) N () S 8 T () S 16 T () S (if) K (\(data == ) p (null) k (\) ) p (throw) K ( ) p (new) K ( NullPointerException\(\);) p n () S 8 T () S 16 T (this.data = data;) N () S 8 T () S 16 T (this.isFreed = ) S (false) k (;) p n () S 8 T () S 16 T () S (if) K (\(metadata == ) p (null) k (\)) p n () S 8 T () S 16 T () S 24 T (clientMetadata = ) S (new) K ( ClientMetadata\(\);) p n () S 8 T () S 16 T () S (else) K n () p 8 T () S 16 T () S 24 T (clientMetadata = metadata;) N () S 8 T () S 16 T (this.desiredURI = desiredURI;) N () S 8 T (}) N () S 8 T () N () S 8 T () S (public) K ( Bucket getData\(\) {) p n () S 8 T () S 16 T () S (return) K ( \(isFreed ? ) p (null) k ( : data\);) p n () S 8 T (}) N () S 8 T () N () S 8 T () S (public) K ( ) p (void) k ( free\(\){) p n () S 8 T () S 16 T () S (synchronized) K ( \() p (this) k (\) {) p n () S 8 T () S 16 T () S 24 T () S (if) K (\(isFreed\) ) p (return) K (;) p n () S 8 T () S 16 T () S 24 T (isFreed = ) S (true) k (;) p n () S 8 T () S 16 T (}) N () S 8 T () S 16 T (data.free\(\);) N () S 8 T (}) N (}) N (InsertBlock.java) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/ShellNewDummyHook.ps0000644000000000000000000001244514233473143015634 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ({-----------------------------------------------------------------------------) c n (The contents of this file are subject to the GNU General Public License) N (Version 1.1 or later \(the "License"\); you may not use this file except in) N (compliance with the License. You may obtain a copy of the License at) N (http://www.gnu.org/copyleft/gpl.html) N () N (Software distributed under the License is distributed on an "AS IS" basis,) N (WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for) N (the specific language governing rights and limitations under the License.) N () N (The Initial Developer of the Original Code is Michael Elsdrfer.) N (All Rights Reserved.) N () N (You may retrieve the latest version of this file at the NTFS Link Homepage) N (located at http://www.elsdoerfer.net/ntfslink/) N () N (Please note:) N (This is /not/ a real shell extension. We use this fake COM object factory to) N (register the "ShellNew" menu items. It's just the easiest way to do this,) N (because the Delphi RTL will automatically call the UpdateRegistry\(\) method if) N (a client calls DllRegisterServer.) N (-----------------------------------------------------------------------------}) N () p n (unit) K ( ) p (ShellNewDummyHook) L (;) p n () N (interface) l n () p n (uses) K n ( Windows, ComObj, ActiveX;) p n () N (type) K n ( TShellNewDummyHook = class\(TComObject) p (\(* no interfaces needed, it's a fake! *\)) C (\)) p n ( ) S (end) K (;) p n () N ( TShellNewDummyFactory = class\(TComObjectFactory\)) N ( public) N ( ) S (procedure) K ( ) p (UpdateRegistry) l (\(Register: ) p (Boolean) k (\); override;) p n ( ) S (end) K (;) p n () N (implementation) N () N (uses) K n ( ComServ, SysUtils, JclRegistry;) p n () N ({ TShellNewDummyFactory }) c n () p n (procedure) K ( ) p (TShellNewDummyFactory.UpdateRegistry) l (\(Register: ) p (Boolean) k (\);) p n () N ( ) S (procedure) K ( ) p (CreateShellNewStructure) l (\(FileExtKey, FileClassKey,) p n ( DllFunctionName, ItemCaption: ) S (string) k (; IconIndex: ) p (Integer) k (\);) p n ( ) S (begin) K n ( // Create the ) p (file) K ( extension key + the "ShellNew" key) p n ( CreateRegKey\(FileExtKey, '', FileClassKey, HKEY_CLASSES_ROOT\);) N ( CreateRegKey\(FileExtKey + ') S (\\ShellNew) str (', ') p (Command) str (',) p n ( ') S (rundll32.exe ") str (' + ComServer.ServerFileName + ') p (",) str (' +) p n ( DLLFunctionName + ') S ( %1) str (',) p n ( HKEY_CLASSES_ROOT\);) N ( // Create the ) S (file) K ( class key, + the the icon ) p (and) K ( a command sub-key) p n ( CreateRegKey\(FileClassKey, '', ItemCaption, HKEY_CLASSES_ROOT\);) N ( CreateRegKey\(FileClassKey + ') S (\\DefaultIcon) str (', '',) p n ( ComServer.ServerFileName + ') S (,) str (' + IntToStr\(IconIndex\),) p n ( HKEY_CLASSES_ROOT\);) N ( CreateRegKey\(FileClassKey + ') S (\\Shell\\Open\\Command) str (', '', ') p (.) str (',) p n ( HKEY_CLASSES_ROOT\);) N ( ) S (end) K (;) p n () N (ShellNewDummyHook.pas) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (const) K n ( HARDLINK_FILEEXT_KEY = ') p (.ntfs-hardlink) str (';) p n ( HARDLINK_FILECLASS_KEY = ') S (NTFSLink.Hardlink) str (';) p n ( JUNCTION_FILEEXT_KEY = ') S (.ntfs-junction) str (';) p n ( JUNCTION_FILECLASS_KEY = ') S (NTFSLink.Junction) str (';) p n (begin) K n ( ) p (if) K ( Register ) p (then) K n ( ) p (begin) K n ( CreateShellNewStructure\(HARDLINK_FILEEXT_KEY, HARDLINK_FILECLASS_KEY,) p n ( ') S (NewHardlinkDlg) str (', ') p (NTFS Hardlink) str (', 0\);) p n ( CreateShellNewStructure\(JUNCTION_FILEEXT_KEY, JUNCTION_FILECLASS_KEY,) N ( ') S (NewJunctionDlg) str (', ') p (NTFS Junction Point) str (', 1\);) p n ( ) S (end) K ( ) p (else) K n ( ) p (begin) K n ( try RegDeleteKeyTree\(HKEY_CLASSES_ROOT, HARDLINK_FILEEXT_KEY\); except ) p (end) K (;) p n ( try RegDeleteKeyTree\(HKEY_CLASSES_ROOT, HARDLINK_FILECLASS_KEY\); except ) S (end) K (;) p n ( try RegDeleteKeyTree\(HKEY_CLASSES_ROOT, JUNCTION_FILEEXT_KEY\); except ) S (end) K (;) p n ( try RegDeleteKeyTree\(HKEY_CLASSES_ROOT, JUNCTION_FILECLASS_KEY\); except ) S (end) K (;) p n ( ) S (end) K (;) p n ( ) N ( // *NO* inherited call here, it would just make unnecessary registry entries) N (end) K (;) p n () N (initialization) N ( TShellNewDummyFactory.Create\(ComServer, TShellNewDummyHook, GUID_NULL, '', '',) N ( ciMultiInstance, tmApartment\);) N () N (end) K (.) p n (ShellNewDummyHook.pas) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/a2ps.ps0000644000000000000000000000753714233473143013131 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p n () N () N (A2PS\(1L\) Misc. Reference Manual Pages A2PS\(1L\)) N () N () N () N (NAME) K n ( a2ps - formats an ascii file for printing on a postscript) p n ( printer) N () N (SYNOPSIS) K n ( ) p (a2ps) K ( [ ) p (global) K ( ) p (options) K ( ] [ ) p (positional) K ( ) p (options) K ( ] [ ) p (file1) k ( [) p n ( ) S (positional) K ( ) p (options) K ( ] ] ) p (file2) k ( ... ] ]) p n () N (DESCRIPTION) K n ( ) p (a2ps) k ( formats each named file for printing in a postscript) p n ( printer; if no file is given, ) S (a2ps) k ( reads from the standard) p n ( input. The output is sent to the printer or to stdout or to) N ( a file. The format used is nice and compact: normally two) N ( pages on each physical page, borders surrounding pages,) N ( headers with useful information \(page number, printing date,) N ( file name or supplied header\), line numbering, keyword) N ( highlighting, symbol substitution etc. This is very useful) N ( for making archive listings of programs.) N () N ( ) S (Global) K ( ) p (options) K n ( Global options offered by ) p (a2ps) k ( are the following:) p n () N ( ) S (-?) K ( ) p (-h) K ( Print usage information.) p n () N ( ) S (-a) K ( Use alternative paper size. In general defined to be) p n ( US letter. \(see -V\).) N () N ( ) S (-b) K ( Force printing binary files. By default, binary files) p n ( printing is stopped before second page \(see -nb) N ( option\).) N () N ( ) S (-c) K ( Compact mode for a sequence of files. This option) p n ( allows the printing of two files in the same physical) N ( page: last page of the first file in the left \(or up\)) N ( side and first page of the second file in the right) N ( \(or down\) side. This option is valid only for twinpage) N ( mode \(two pages per physical page\).) N () N ( ) S (-f) K ( Fold lines too large to be printed inside the borders) p n ( \(default option\). Max line size depends on format and) N ( font size used and whether line numbering has been) N ( suppressed.) N () N ( ) S (-h) K ( Print usage information.) p n () N ( ) S (-I) K (file) k n ( Use the specified file as the postscript prologue for) p n ( a2ps.) N () N ( ) S (-i) K ( Interpret TAB, BS and FF characters \(default option\).) p n ( TAB is replaced by enough spaces to reach next tab) N ( stop while BS and FF have their meanings.) N () N () N () N (SunOS 5.5 Last change: 9 August 1996 1) N () N (Some weird characters that exists out there are:) N () N (a2ps.man) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (- O plus: ) p (\305) sy ( and ) p (\305) sy n () p n (- Copyright: ) S (\343) sy n () p n (- Plus or minus: ) S (\261) sy n () p n (- Greater than or equal to: ) S (\263) sy n () p n (- Less than or equal to: ) S (\243) sy n () p n (- Another form of ) S (underlining.) k (a2ps.man) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/al1-3.ps0000644000000000000000000000304714233473143013071 00000000000000%%Page: (1-3) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (1) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (1) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (*) 2 % Empty Page showpage %%Page: (*) 3 % Empty Page showpage %%Page: (1-3) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (4) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (4) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/al1-page.ps0000644000000000000000000000273714233473143013650 00000000000000%%Page: (1-3) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (1) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (1) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (1-3) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (2) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (2) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/al1-rank.ps0000644000000000000000000000273714233473143013667 00000000000000%%Page: (1-3) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (1) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (1) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (1-3) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (2) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (2) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/al1-sheet.ps0000644000000000000000000000300314233473143014027 00000000000000%%Page: (1-3) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (1) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (1) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (*) 2 % Empty Page showpage %%Page: (1-3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (3) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (3) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/al1-virtual.ps0000644000000000000000000000274114233473143014415 00000000000000%%Page: (1-3,1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (1) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (1) title border /v 2 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (1) title border /v 3 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 1) p n (3-pages.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2-3) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 2) p n (3-pages.txt) (right) (2) title border /v 1 store /x0 x v get 2.300369 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Page 3) p n (3-pages.txt) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/bookie.ps0000644000000000000000000001206314236507210013516 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (/* ########################################################################) c n () N () S 8 T () S 16 T () S 24 T ( Bookie.idl) N () N ( This program is free software; you can redistribute it and/or modify) N ( it under the terms of the GNU General Public License as published by) N ( the Free Software Foundation; either version 2, or \(at your option\)) N ( any later version.) N () N ( \(c\) Copyright 1999 Bob Phillips) N () N ( ######################################################################## */) N () p n (#include) K ( ) p n () N (#define) K ( FIVE_BUCKS 5.00) p n () N (module) K ( Bookie {) p n () N (// For now, we will cheat on the date, time,) c n (// and location. Eventually, we want to make) N (// these real objects.) N (typedef) K ( ) p (string) k ( Date;) p n (typedef) K ( ) p (string) k ( Time;) p n (typedef) K ( ) p (string) k ( Location;) p n () N (exception) K ( NoBet {};) p n (exception) K ( EmptyBetList{};) p n () N () S 8 T () S (# pragma) K ( MindlessJunk) p n () N (// PointSpread is a bit of a hack. We need to be able to express the) c n (// 1/2 point push-eliminator What we will do is create an object that) N (// can be initialized with a float/double. Any non-zero part of the) N (// fraction will be rounded \(up or down\) to 1/2 -- the implementation) N (// will probably represent it as a short int \(16-bit, so, allowing 1) N (// bit to serve as the 1/2 fraction and 1 to serve as a sign, we have) N (// 14 bit spreads. Even in basketball, that isn't going to happen) N (// anytime soon :^\)) N () p n ( ) S (interface) K ( PointSpread {) p n () S 8 T () S (// Attributes would be the logical way to) c n ( ) p (// do this, but the example is short on) c n ( ) p (// methods... So we need to have some methods.) c n () p 8 T () S (void) k ( ) p (SetSpread) l (\() p (in) K ( ) p (float) k ( spread\);) p n () S 8 T () S (float) k ( ) p (GetSpread) l (\() p (void) k (\);) p n ( };) N () N (// Same sort of thing with currency. We want a Fixed representation) c n (// So we allow any float in. We output a Float for other purposes.) N (// We can later add all sorts of operations.) N () p n ( ) S (interface) K ( Currency {) p n () S 8 T () S (attribute) K ( ) p (float) k ( amount;) p n ( };) N () N () N (const) K ( ) p (float) k ( NICKEL_BET FIVE_BUCKS;) p n (const) K ( ) p (float) k ( DIME_BET 10.00;) p n () N ( ) S (interface) K ( Team {) p n ( ) S (readonly) K ( ) p (attribute) K ( ) p (string) k ( name; ) p (// No need to change this) c n ( ) p (attribute) K ( ) p (unsigned) k ( ) p (long) k ( wins;) p n ( ) S (attribute) K ( ) p (unsigned) k ( ) p (long) k ( losses;) p n ( };) N () N (bookie.idl) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (interface) K ( Game {) p n ( ) S (attribute) K ( Date date;) p n ( ) S (attribute) K ( Time time;) p n ( ) S (attribute) K ( Location location;) p n ( }) N () N ( ) S (interface) K ( Bet {) p n () S 8 T () S (// If an attribute ever changes, we need to create a new Bet.) c n () p 8 T () S (// This allows for record keeping if we integrate persistent) c n () p 8 T () S (// storage -- we have a record of every bet ever made.) c n () p 8 T () S (readonly) K ( ) p (attribute) K ( Game game;) p n () S 8 T () S (readonly) K ( ) p (attribute) K ( Team team;) p n () S 8 T () S (readonly) K ( ) p (attribute) K ( Currency amount;) p n ( };) N () N (typedef) K ( ) p (sequence) k ( BetList;) p n () N ( ) S (interface) K ( Customer {) p n ( ) S (readonly) K ( ) p (attribute) K ( ) p (string) k ( name;) p n ( ) S (attribute) K ( ) p (boolean) k ( PaidUp;) p n ( ) S (void) k ( ) p (AddToBetList) l ( \() p (in) K ( Bet bet\);) p n ( ) S (void) k ( ) p (DelFromBetList) l ( \() p (in) K ( Bet bet\)) p n () S 8 T () S (raises) K ( \(NoBet\);) p n ( ) S (void) k ( ) p (SetBetlist) l ( \() p (in) K ( BetList list\);) p n ( ) S (oneway) K ( ) p (void) k ( ) p (ClearBetList) l ( \() p (void) k (\);) p n ( ) S (void) k ( ) p (FindBet) l (\() p (inout) K ( Bet bet\) ) p (// Need to show an inout...) c n () p 8 T () S (raises) K (\(NoBet\);) p n ( ) S (void) k ( ) p (GetBetList) l (\() p (out) K ( BetList list\) ) p (// Need to show an out param...) c n () p 8 T () S (raises) K ( \(EmptyBetList\);) p n ( };) N (};) N (bookie.idl) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/configure.ps0000644000000000000000000000106514235572622014237 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (AC_INIT) K n (AC_FATAL) S (\([You are not supposed to run this file]\)) p (dnl) k ( Kill the empty line.) c n (AC_OUTPUT) K (configure.ac) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/confirm.ps0000644000000000000000000000410514233473143013705 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p n () N (MODULE) K ( Confirm ) p (EXPORTS) K ( Main;) p n () N (IMPORT) K ( Trestle, VBT, TextVBT, RigidVBT, ButtonVBT, BorderedVBT, HVSplit;) p n (IMPORT) K ( PaintOp, Pixmap, Axis;) p n (IMPORT) K ( ConfirmVBT;) p n () N (PROCEDURE) K ( Yes \(self: ButtonVBT.T; ) p (READONLY) K ( cd: VBT.MouseRec\) =) p n ( ) S (BEGIN) K n ( Trestle.Delete\(main\);) p n ( ) S (END) K ( Yes;) p n () N (PROCEDURE) K ( QuitAction \(self: ButtonVBT.T; ) p (READONLY) K ( cd: VBT.MouseRec\) =) p n ( ) S (VAR) K n ( msg := ") p (Do you really wish to quit?) str (";) p n ( confirm := ConfirmVBT.New\(msg, Yes\);) N ( ) S (BEGIN) K n ( Trestle.Install\(confirm\)) p n ( ) S (END) K ( QuitAction;) p n () N (CONST) K n ( \(*) p ( sizes for the RigidVBT ) c (*\)) p n ( horz = 30.0;) N ( vert = 10.0; \(*) S ( size in millimeters ) c (*\)) p n ( \(*) S ( border size for text and button ) c (*\)) p n ( bsize = 1.5; \(*) S ( size in millimeters ) c (*\)) p n () N (VAR) K n ( blue := PaintOp.FromRGB\(0.0, 0.0, 1.0\);) p n ( green := PaintOp.FromRGB\(0.0, 1.0, 0.0\);) N ( text := RigidVBT.FromHV\(TextVBT.New\(") S (Confirm demo) str ("\), horz, vert\);) p n ( top := BorderedVBT.New\() N ( text, size := bsize, op := blue, txt := Pixmap.Solid\);) N ( button := ButtonVBT.New\(TextVBT.New\(") S (Quit) str ("\), QuitAction\);) p n ( bottom := BorderedVBT.New\() N ( button, size := bsize, op := green, txt := Pixmap.Gray\);) N ( main := HVSplit.Cons\(Axis.T.Ver, top, bottom\);) N () N (BEGIN) K n ( Trestle.Install\(main\);) p n ( Trestle.AwaitDelete\(main\)) N (END) K ( Confirm.) p n () N () N (confirm.m3) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/cut.ps0000644000000000000000000000346714233473143013055 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.722639 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () str n 0 T (iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii) N 0 T () N 0 T () S (\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253) sy n (5) # () S (\\texttt{) p n 0 T (..........................................................................) N 0 T (}) N 0 T () N 0 T () S ( ^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) e n (10) # () N 0 T () S (1) p 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N 0 T () N 0 T () S (1) L 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N 0 T () N (15) # () S (\\invisible{) p n 0 T (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N 0 T (}) N 0 T () N 0 T () S (m) c 8 T (mm) S 16 T (mmm) S 24 T (mmmm) S 32 T (mmmmm) S 40 T (mmmmmm) S 48 T (mmmmmmm) S 56 T (mmmmmmmm) S 72 T (mm) N (20) # () N 0 T () N 0 T () S (\351) K 8 T (\351\351) S 16 T (\351\351\351) S 24 T (\351\351\351\351) S 32 T (\351\351\351\351\351) S 40 T (\351\351\351\351\351\351) S 48 T (\351\351\351\351\351\351\351) S 56 T (\351\351\351\351\351\351\351\351) S 72 T (\351\351) N 0 T () N (tabulation.pre) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/del.ps0000644000000000000000000000000314233473143013005 00000000000000OK a2ps-4.15.5/tests/ps-ref/ehandler.ps0000644000000000000000000001205614233473143014036 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (%!ps) C n (% lib/ehandler.ps -- Downloaded Error Break-page handler) c n (% GOVERNMENT END USERS: See Notice file in TranScript library directory) N (% -- probably /usr/lib/ps/Notice) N (% -- code follows this line --) N (% assumes serverloop password is the default one) N (/$brkpage ) p (where) K n ({) p (pop) K (\() p (Error Handler in place - not loaded again\\n) str (\)print flush stop}) p n ({serverdict ) S (begin) K ( statusdict ) p (begin) K ( 0000 checkpassword) p n ( {\() S (Error Handler downloaded.\\n) str (\)print flush 0000 exitserver}) p n ( {\() S (Bad Password on loading error handler!!!\\n) str (\)print flush stop}) p (ifelse) K n (}) p (ifelse) K n (/$brkpage 64 ) p (dict) K ( ) p (def) K ( $brkpage ) p (begin) K n (/prnt) p n ( {) S (dup) K ( type/stringtype ne{=string cvs}) p (if) K ( ) p (dup) K ( ) p (length) K ( 6 ) p (mul) K (/tx ) p (exch) K ( ) p (def) K (/ty 10 ) p (def) K n ( currentpoint/toy ) p (exch) K ( ) p (def) K (/tox ) p (exch) K ( ) p (def) K ( 1 ) p (setgray) K ( ) p (newpath) K n ( tox toy 2 ) p (sub) K ( ) p (moveto) K ( 0 ty ) p (rlineto) K ( tx 0 ) p (rlineto) K ( 0 ty ) p (neg) K ( ) p (rlineto) K n ( ) p (closepath) K ( ) p (fill) K ( tox toy ) p (moveto) K ( 0 ) p (setgray) K ( ) p (show) K (}) p (bind) K ( ) p (def) K n (/nl) L ({currentpoint ) p (exch) K ( ) p (pop) K ( lmargin ) p (exch) K ( ) p (moveto) K ( 0 -10 ) p (rmoveto) K (}) p (def) K n (/=={/cp 0 ) p (def) K ( typeprint nl}) p (def) K n (/typeprint) L ({) p (dup) K ( type exec}readonly ) p (def) K n (/lmargin 72 ) p (def) K n (/rmargin 72 ) p (def) K n (/tprint) p n ( {) S (dup) K ( ) p (length) K ( cp ) p (add) K ( rmargin ) p (gt) K ({nl/cp 0 ) p (def) K (}) p (if) K n ( ) p (dup) K ( ) p (length) K ( cp ) p (add) K (/cp ) p (exch) K ( ) p (def) K ( prnt}readonly ) p (def) K n (/cvsprint) L ({=string cvs tprint\() p ( ) str (\)tprint}readonly ) p (def) K n (/integertype) L ({cvsprint}readonly ) p (def) K n (/realtype) L ({cvsprint}readonly ) p (def) K n (/booleantype) L ({cvsprint}readonly ) p (def) K n (/operatortype) L ({\() p (--) str (\)tprint =string cvs tprint\() p (-- ) str (\)tprint}readonly ) p (def) K n (/marktype) L ({) p (pop) K (\() p (-mark- ) str (\)tprint}readonly ) p (def) K n (/dicttype) L ({) p (pop) K (\() p (-dictionary- ) str (\)tprint}readonly ) p (def) K n (/nulltype) L ({) p (pop) K (\() p (-null- ) str (\)tprint}readonly ) p (def) K n (/filetype) L ({) p (pop) K (\() p (-filestream- ) str (\)tprint}readonly ) p (def) K n (/savetype) L ({) p (pop) K (\() p (-savelevel- ) str (\)tprint}readonly ) p (def) K n (/fonttype) L ({) p (pop) K (\() p (-fontid- ) str (\)tprint}readonly ) p (def) K n (/nametype) L ({) p (dup) K ( xcheck not{\() p (/) str (\)tprint}) p (if) K ( cvsprint}readonly ) p (def) K n (/stringtype) p n ( {) S (dup) K ( rcheck{\() p (\\\() str (\)tprint tprint\() p (\\\)) str (\)tprint}{) p (pop) K (\() p (-string- ) str (\)tprint}) p (ifelse) K n ( }readonly ) p (def) K n (/arraytype) p n ( {) S (dup) K ( rcheck{) p (dup) K ( xcheck) p n ( {\() S ({) str (\)tprint{typeprint}) p (forall) K (\() p (}) str (\)tprint}) p n ( {\() S ([) str (\)tprint{typeprint}) p (forall) K (\() p (]) str (\)tprint}) p (ifelse) K (}{) p (pop) K (\() p (-array- ) str (\)tprint}) p (ifelse) K n ( }readonly ) p (def) K n (/packedarraytype) p n ( {) S (dup) K ( rcheck{) p (dup) K ( xcheck) p n ( {\() S ({) str (\)tprint{typeprint}) p (forall) K (\() p (}) str (\)tprint}) p n ( {\() S ([) str (\)tprint{typeprint}) p (forall) K (\() p (]) str (\)tprint}) p (ifelse) K (}{) p (pop) K (\() p (-packedarray- ) str (\)tprint}) p (ifelse) K n ( }readonly ) p (def) K n (/courier/Courier ) p (findfont) K ( 10 ) p (scalefont) K ( ) p (def) K n (end) S ( ) p (%$brkpage) c n (errordict/handleerror) p n ( {systemdict ) S (begin) K ( $error ) p (begin) K ( $brkpage ) p (begin) K ( newerror) p n ( {/newerror ) S (false) k ( store) p n ( vmstatus ) S (pop) K ( ) p (pop) K ( 0 ne{grestoreall}) p (if) K ( initgraphics courier ) p (setfont) K n ( lmargin 720 ) p (moveto) K (\() p (ERROR: ) str (\)prnt errorname prnt) p n ( nl\() S (OFFENDING COMMAND: ) str (\)prnt/command load prnt) p n ( $error/ostack) N ( ) S (known) K ({nl nl\() p (STACK:) str (\)prnt nl nl $error/ostack ) p (get) K ( aload ) p (length) K ({==}repeat}) p (if) K n ( systemdict/) p (showpage) K ( ) p (get) K ( exec\() p (%%[ Error: ) str (\)print) p n ( errorname =print\() S (; OffendingCommand: ) str (\)print/command) p n ( load =print\() S ( ]%%) str (\)= flush}) p (if) K ( ) p (end) K ( ) p (end) K ( ) p (end) K (}) p n (dup) K ( 0 systemdict ) p (put) K ( ) p (dup) K ( 4 $brkpage ) p (put) K ( ) p (bind) K ( readonly ) p (put) K n (ehandler) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/encoding.ps0000644000000000000000000040026114236507210014035 00000000000000%!PS-Adobe-3.0 %%Title: a2ps output %%For: Somebody %%Creator: a version of a2ps %%CreationDate: once upon a time %%BoundingBox: 24 24 571 818 %%DocumentData: Clean7Bit %%Orientation: Landscape %%Pages: 2 %%PageOrder: Ascend %%DocumentMedia: A4 595 842 0 () () %%DocumentNeededResources: font Courier %%+ font Courier-Bold %%+ font Helvetica %%+ font Helvetica-Bold %%+ font Symbol %%+ font Times-Bold %%+ font Times-Roman %%DocumentProcessColors: Black Blue Green Red %%DocumentSuppliedResources: procset a2ps-color-prolog %%+ encoding ASCIIEncoding %%+ encoding HPRomanEncoding %%+ encoding IBM-CP437Encoding %%+ encoding IBM-CP850Encoding %%+ encoding ISO-8859-10Encoding %%+ encoding ISO-8859-1Encoding %%+ encoding ISO-8859-2Encoding %%+ encoding ISO-8859-3Encoding %%+ encoding ISO-8859-4Encoding %%+ encoding ISO-8859-9Encoding %%+ encoding MS-CP1250Encoding %%+ encoding MacintoshEncoding %%+ font Courier-Bold-Ogonki %%+ font Courier-Ogonki %%+ font Helvetica-Bold-Ogonki %%+ font PCFont %%+ font Times-Roman-Ogonki %%EndComments /a2psdict 200 dict def a2psdict begin %%BeginProlog %%Copyright: (c) 1988-2017 Free Software Foundation, Inc. % Check PostScript language level. /languagelevel where { pop /gs_languagelevel languagelevel def } { /gs_languagelevel 1 def } ifelse % EPSF import as in the Red Book /BeginInclude { /b4_Inc_state save def % Save state for cleanup /dict_count countdictstack def % Count objects on dict stack /op_count count 1 sub def % Count objects on operand stack userdict begin 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath gs_languagelevel 1 ne { false setstrokeadjust false setoverprint } if } bind def /EndInclude { count op_count sub { pos } repeat % Clean up stacks countdictstack dict_count sub { end } repeat b4_Inc_state restore } bind def /BeginEPSF { BeginInclude /showpage { } def } bind def /EndEPSF { EndInclude } bind def % Page prefeed /page_prefeed { % bool -> - statusdict /prefeed known { statusdict exch /prefeed exch put } { pop } ifelse } bind def /deffont { findfont exch scalefont def } bind def /reencode_font { findfont reencode 2 copy definefont pop def } bind def % Function c-show (str => -) % centers text only according to x axis. /c-show { dup stringwidth pop 2 div neg 0 rmoveto show } bind def % Function l-show (str => -) % prints texts so that it ends at currentpoint /l-show { dup stringwidth pop neg 0 rmoveto show } bind def % center-fit show (str w => -) % show centered, and scale currentfont so that the width is less than w /cfshow { exch dup stringwidth pop % If the title is too big, try to make it smaller 3 2 roll 2 copy gt { % if, i.e. too big exch div currentfont exch scalefont setfont } { % ifelse pop pop } ifelse c-show % center title } bind def % Return the y size of the current font % - => fontsize /currentfontsize { currentfont /FontType get 0 eq { currentfont /FontMatrix get 3 get }{ currentfont /FontMatrix get 3 get 1000 mul } ifelse } bind def % reencode the font % -> /reencode { %def dup length 5 add dict begin { %forall % 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding exch def % - % Use the font's bounding box to determine the ascent, descent, % and overall height; don't forget that these values have to be % transformed using the font's matrix. % We use `load' because sometimes BBox is executable, sometimes not. % Since we need 4 numbers an not an array avoid BBox from being executed /FontBBox load aload pop FontMatrix transform /Ascent exch def pop FontMatrix transform /Descent exch def pop /FontHeight Ascent Descent sub def % Get the underline position and thickness if they're defined. % Use 1 if they are not defined. currentdict /FontInfo 2 copy known { get /UnderlinePosition 2 copy % /UP /UP 2 copy known { get }{ pop pop 1 } ifelse 0 exch FontMatrix transform exch pop def % /UnderlineThickness 2 copy % /UT /UT 2 copy known { get }{ pop pop 1 } ifelse 0 exch FontMatrix transform exch pop def % pop % - }{ pop pop } ifelse currentdict end } bind def % composite fonts for ASCII-EUC mixed strings % Version 1.2 1/31/1990 % Original Ken'ichi HANDA (handa@etl.go.jp) % Modified Norio Katayama (katayama@rd.nacsis.ac.jp),1998 % Extend & Fix Koji Nakamaru (maru@on.cs.keio.ac.jp), 1999 % Anyone can freely copy, modify, distribute this program. /copyfont { % font-dic extra-entry-count copyfont font-dic 1 index maxlength add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse } forall currentdict end } bind def /compositefont { % ASCIIFontName EUCFontName RomanScale RomanOffset Rot(T/F) compositefont font /RomanRotation exch def /RomanOffset exch def /RomanScale exch def userdict /fixeucfont_dict known not { userdict begin /fixeucfont_dict 2 dict begin /UpperByteEncoding [ 16#00 1 16#20 { pop 0 } for 16#21 1 16#28 { 16#20 sub } for 16#29 1 16#2F { pop 0 } for 16#30 1 16#74 { 16#27 sub } for 16#75 1 16#FF { pop 0 } for ] def /LowerByteEncoding [ 16#00 1 16#A0 { pop /.notdef } for 16#A1 1 16#FE { 16#80 sub 16 2 string cvrs (cXX) dup 1 4 -1 roll putinterval cvn } for /.notdef ] def currentdict end def end } if findfont dup /FontType get 0 eq { 14 dict begin % % 7+8 bit EUC font % 12 dict begin /EUCFont exch def /FontInfo (7+8 bit EUC font) readonly def /PaintType 0 def /FontType 0 def /FontMatrix matrix def % /FontName /Encoding fixeucfont_dict /UpperByteEncoding get def /FMapType 2 def EUCFont /WMode known { EUCFont /WMode get /WMode exch def } { /WMode 0 def } ifelse /FDepVector [ EUCFont /FDepVector get 0 get [ 16#21 1 16#28 {} for 16#30 1 16#74 {} for ] { 13 dict begin /EUCFont EUCFont def /UpperByte exch 16#80 add def % /FontName /FontInfo (EUC lower byte font) readonly def /PaintType 0 def /FontType 3 def /FontMatrix matrix def /FontBBox {0 0 0 0} def /Encoding fixeucfont_dict /LowerByteEncoding get def % /UniqueID % /WMode /BuildChar { gsave exch dup /EUCFont get setfont /UpperByte get 2 string dup 0 4 -1 roll put dup 1 4 -1 roll put dup stringwidth setcharwidth 0 0 moveto show grestore } bind def currentdict end /lowerbytefont exch definefont } forall ] def currentdict end /eucfont exch definefont exch findfont 1 copyfont dup begin RomanRotation { /FontMatrix FontMatrix [ 0 RomanScale neg RomanScale 0 RomanOffset neg 0 ] matrix concatmatrix def }{ /FontMatrix FontMatrix [ RomanScale 0 0 RomanScale 0 RomanOffset ] matrix concatmatrix def /CDevProc {pop pop pop pop 0 exch -1000 exch 2 div 880} def } ifelse end /asciifont exch definefont exch /FDepVector [ 4 2 roll ] def /FontType 0 def /WMode 0 def /FMapType 4 def /FontMatrix matrix def /Encoding [0 1] def /FontBBox {0 0 0 0} def % /FontHeight 1.0 def % XXXX /FontHeight RomanScale 1.0 ge { RomanScale }{ 1.0 } ifelse def /Descent -0.3 def % XXXX currentdict end /tmpfont exch definefont pop /tmpfont findfont }{ pop findfont 0 copyfont } ifelse } def /slantfont { % FontName slant-degree slantfont font' exch findfont 1 copyfont begin [ 1 0 4 -1 roll 1 0 0 ] FontMatrix exch matrix concatmatrix /FontMatrix exch def currentdict end } def % Function print line number ( # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def % -------- Some routines to enlight plain b/w printings --------- % Underline % width -- /dounderline { currentpoint gsave moveto 0 currentfont /Descent get currentfontsize mul rmoveto 0 rlineto stroke grestore } bind def % Underline a string % string -- /dounderlinestring { stringwidth pop dounderline } bind def /UL { /ul exch store } bind def % Draw a box of WIDTH wrt current font % width -- /dobox { currentpoint gsave newpath moveto 0 currentfont /Descent get currentfontsize mul rmoveto dup 0 rlineto 0 currentfont /FontHeight get currentfontsize mul rlineto neg 0 rlineto closepath stroke grestore } bind def /BX { /bx exch store } bind def % Box a string % string -- /doboxstring { stringwidth pop dobox } bind def % % ------------- Color routines --------------- % /FG /setrgbcolor load def % Draw the background % width -- /dobackground { currentpoint gsave newpath moveto 0 currentfont /Descent get currentfontsize mul rmoveto dup 0 rlineto 0 currentfont /FontHeight get currentfontsize mul rlineto neg 0 rlineto closepath bgcolor aload pop setrgbcolor fill grestore } bind def % Draw bg for a string % string -- /dobackgroundstring { stringwidth pop dobackground } bind def /BG { dup /bg exch store { mark 4 1 roll ] /bgcolor exch store } if } bind def /Show { bg { dup dobackgroundstring } if ul { dup dounderlinestring } if bx { dup doboxstring } if show } bind def % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add bg { dup currentpoint pop sub dobackground } if ul { dup currentpoint pop sub dounderline } if bx { dup currentpoint pop sub dobox } if y0 moveto } bind def % Function n: move to the next line /n { /y0 y0 bfs sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 bfs sub store x0 y0 moveto } bind def /S { Show } bind def %%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana % Function title: prints page header. % are passed as argument /title { % 1. Draw the background x v get y v get moveto 0 setgray gsave 0 th 2 div neg rmoveto th setlinewidth 0.5 0.5 1 setrgbcolor pw 0 rlineto stroke grestore % 2. Border it gsave 0.7 setlinewidth pw 0 rlineto 0 th neg rlineto pw neg 0 rlineto closepath stroke grestore % stk: ct rt lt x v get y v get th sub 1 add moveto %%IncludeResource: font Helvetica fHelvetica fnfs 0.8 mul scalefont setfont % 3. The left title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack fnfs 0.8 mul hm rmoveto show % left title grestore exch % stk: ct ltw rt % 4. the right title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack dup pw exch stringwidth pop fnfs 0.8 mul add sub hm rmoveto show % right title grestore % stk: ct ltw rtw % 5. the center title gsave pw 3 1 roll % stk: ct pw ltw rtw 3 copy % Move to the center of the left room sub add 2 div hm rmoveto % What is the available space in here? add sub fnfs 0.8 mul sub fnfs 0.8 mul sub % stk: ct space_left %%IncludeResource: font Helvetica-Bold fHelvetica-Bold fnfs scalefont setfont 1 setgray cfshow grestore } bind def % Function border: prints virtual page border /border { %def gsave % print four sides 0 setgray x v get y v get moveto 0.7 setlinewidth % of the square pw 0 rlineto 0 ph neg rlineto pw neg 0 rlineto closepath stroke grestore } bind def % Function water: prints a water mark in background /water { %def gsave scx scy moveto rotate %%IncludeResource: font Times-Bold fTimes-Bold 100 scalefont setfont .97 setgray dup stringwidth pop 2 div neg -50 rmoveto show grestore } bind def % Function rhead: prints the right header /rhead { %def lx ly moveto fHelvetica fnfs 0.8 mul scalefont setfont l-show } bind def % Function footer (cf rf lf -> -) /footer { fHelvetica fnfs 0.8 mul scalefont setfont dx dy moveto show snx sny moveto l-show fnx fny moveto c-show } bind def % Function print line number ( # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def %%BeginResource: procset a2ps-color-prolog 2.0 1 %% Definition of the color faces. /p { 0 0 0 FG false BG false UL false BX fCourier bfs scalefont setfont Show } bind def /sy { 0 0 0 FG false BG fSymbol bfs scalefont setfont Show } bind def /k { false BG false UL false BX 0 0 0.9 FG fCourier bfs scalefont setfont Show } bind def /K { false BG false UL false BX 0 0 0.8 FG fCourier-Bold bfs scalefont setfont Show } bind def /c { false BG false UL false BX 0.8 0 0 FG fCourier bfs scalefont setfont Show } bind def /C { false BG false UL false BX 0.8 0 0 FG fCourier-Bold bfs scalefont setfont Show } bind def /l { 0 0 0 FG 0.8 0.8 0 true BG false UL false BX fCourier bfs scalefont setfont Show } bind def /L { 0 0 0 FG 1 1 0 true BG false UL false BX fCourier-Bold bfs scalefont setfont Show } bind def /str { false BG false UL false BX 0 0.5 0 FG fTimes-Roman bfs scalefont setfont Show } bind def /e{ 1 0 0 true BG false UL true BX 1 1 1 FG fHelvetica-Bold bfs scalefont setfont Show } bind def % Function print line number ( # -) /# { gsave sx cw mul 2 div neg 0 rmoveto f# setfont 0.8 0.1 0.1 FG c-show grestore } bind def %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Courier %%IncludeResource: font Courier-Bold %%IncludeResource: font Times-Roman %%IncludeResource: font Symbol %%BeginResource: encoding ISO-8859-1Encoding /ISO-8859-1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndResource %%BeginResource: encoding ASCIIEncoding /ASCIIEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndResource %%BeginResource: encoding ISO-8859-2Encoding /ISO-8859-2Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section /dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Dbar /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource %%BeginResource: encoding ISO-8859-3Encoding /ISO-8859-3Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Hstroke /breve /sterling /currency /yen /Hcircumflex /section /dieresis /Idotaccent /Scedilla /Gbreve /Jcircumflex /hyphen /registered /Zdotaccent /degree /hstroke /twosuperior /threesuperior /acute /mu /hcircumflex /bullet /cedilla /dotlessi /scedilla /gbreve /jcircumflex /onehalf /threequarters /zdotaccent /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Cdotaccent /Ccircumflex /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Gdotaccent /Odieresis /multiply /Gcircumflex /Ugrave /Uacute /Ucircumflex /Udieresis /Ubreve /Scircumflex /germandbls /agrave /aacute /acircumflex /atilde /adieresis /cdotaccent /ccircumflex /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /gdotaccent /odieresis /divide /gcircumflex /ugrave /uacute /ucircumflex /udieresis /ubreve /scircumflex /dotaccent ] def %%EndResource %%BeginResource: encoding ISO-8859-4Encoding /ISO-8859-4Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Aogonek /kra /Rcedilla /currency /Itilde /Lcedilla /section /dieresis /Scaron /Emacron /Gcedilla /Tbar /hyphen /Zcaron /macron /degree /aogonek /ogonek /rcedilla /acute /itilde /lcedilla /caron /cedilla /scaron /emacron /gcedilla /tbar /Eng /zcaron /eng /Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek /Ccaron /Eacute /Eogonek /Edieresis /Edotaccent /Iacute /Icircumflex /Imacron /Eth /Ncedilla /Omacron /Kcedilla /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Utilde /Umacron /germandbls /amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek /ccaron /eacute /eogonek /edieresis /edotaccent /iacute /icircumflex /imacron /dbar /ncedilla /omacron /kcedilla /ocircumflex /otilde /odieresis /divide /oslash /uogonek /uacute /ucircumflex /udieresis /utilde /umacron /dotaccent ] def %%EndResource %%BeginResource: encoding ISO-8859-9Encoding /ISO-8859-9Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Gbreve /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Idotaccent /Scedilla /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /gbreve /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /dotlessi /scedilla /ydieresis ] def %%EndResource %%BeginResource: encoding ISO-8859-10Encoding /ISO-8859-10Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Aogonek /Emacron /Gcedilla /Imacron /Itilde /Kcedilla /Lcedilla /acute /Rcedilla /Scaron /Tbar /Zcaron /hyphen /kra /Eng /Dbar /aogonek /emacron /gcedilla /imacron /itilde /kcedilla /lcedilla /nacute /rcedilla /scaron /tbar /zcaron /section /germandbls /eng /Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek /Ccaron /Eacute /Eogonek /Edieresis /Edotaccent /Iacute /Icircumflex /Idieresis /Dbar /Ncedilla /Omacron /Oacute /Ocircumflex /Otilde /Odieresis /Utilde /Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /Umacron /amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek /ccaron /eacute /eogonek /edieresis /edotaccent /iacute /icircumflex /idieresis /eth /ncedilla /omacron /oacute /ocircumflex /otilde /odieresis /utilde /oslash /uogonek /uacute /ucircumflex /udieresis /yacute /thorn /umacron ] def %%EndResource %%BeginResource: encoding MS-CP1250Encoding /MS-CP1250Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef /.notdef /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl /.notdef /perthousand /Scaron /guilsinglleft /Sacute /Tcaron /Zcaron /Zacute /.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash /.notdef /trademark /scaron /guilsinglright /sacute /tcaron /zcaron /zacute /space /caron /breve /Lslash /currency /Aogonek /brokenbar /section /dieresis /copyright /Scedilla /guillemotleft /logicalnot /hyphen /registered /Zdotaccent /degree /plusminus /ogonek /lslash /acute /mu /paragraph /bullet /cedilla /aogonek /scedilla /guillemotright /Ydieresis /hungarumlaut /Lcaron /zdotaccent /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Eth /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource %%BeginResource: encoding IBM-CP850Encoding /IBM-CP850Encoding [ /.notdef /.notdef /.notdef /heart /diamond /club /spade /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /paragraph /section /.notdef /.notdef /arrowup /arrowdown /.notdef /.notdef /.notdef /arrowboth /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef /Ccedilla /udieresis /eacute /acircumflex /adieresis /agrave /aring /ccedilla /ecircumflex /edieresis /egrave /idieresis /icircumflex /igrave /Adieresis /Aring /Eacute /ae /AE /ocircumflex /odieresis /ograve /ucircumflex /ugrave /ydieresis /Odieresis /Udieresis /cent /sterling /yen /.notdef /florin /aacute /iacute /oacute /uacute /ntilde /Ntilde /ordfeminine /degree /questiondown /.notdef /logicalnot /onehalf /onequarter /exclamdown /guillemotleft /guillemotright /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /alpha /germandbls /Gamma /pi /Sigma /sigma /mu /tau /phi /theta /Omega /delta /infinity /oslash /epsilon /intersection /equivalence /plusminus /greaterequal /lessequal /integraltp /integralbt /divide /approxequal /degree /dotaccent /dotaccent /radical /.notdef /twosuperior /.notdef /.notdef ] def %%EndResource %%BeginResource: encoding IBM-CP437Encoding /IBM-CP437Encoding [ /null /Wsmiley /Bsmiley /heart /diamond /club /spade /Bbullet /Wbullet /Bcircle /Wcircle /male /female /quarternote /sixteenthnote /sun /pointerright /pointerleft /Varrowboth /exclamdbl /paragraph /section /cursorblock /floor /arrowup /arrowdown /arrowright /arrowleft /smallLLsingle /arrowboth /pointerup /pointerdown /blank /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /brokenbar /braceright /asciitilde /Delta /Ccedilla /udieresis /eacute /acircumflex /adieresis /agrave /aring /ccedilla /ecircumflex /edieresis /egrave /idieresis /icircumflex /igrave /Adieresis /Aring /Eacute /ae /AE /ocircumflex /odieresis /ograve /ucircumflex /ugrave /ydieresis /Odieresis /Udieresis /cent /sterling /yen /point /integral /aacute /iacute /oacute /uacute /ntilde /Ntilde /aunder /ounder /questiondown /smallULsingle /smallURsingle /half /quarter /exclamdown /lessdbl /greaterdbl /lightbox /mediumbox /darkbox /Vsingle /VsingleTleftsingle /VsingleTleftdbl /VdblTleftsingle /VdblURsingle /VsingleURdbl /VdblTleftdbl /Vdbl /VdblURdbl /VdblLRdbl /VdblLRsingle /VsingleLRdbl /VsingleURsingle /VsingleLLsingle /HsingleTupsingle /HsingleTdownsingle /VsingleTrightsingle /Hsingle /VsingleXsingle /VsingleTrightdbl /VdblTrightsingle /VdblLLdbl /VdblULdbl /HdblTupdbl /HdblTdowndbl /VdblTrightdbl /Hdbl /VdblXdbl /HdblTupsingle /HsingleTupdbl /HdblTdownsingle /HsingleTdowndbl /VdblLLsingle /VsingleLLdbl /VsingleULdbl /VdblULsingle /VdblXsingle /VsingleXdbl /VsingleLRsingle /VsingleULsingle /allblack /botblack /leftblack /rightblack /topblack /alpha /beta /Gamma /pi /Sigma /sigma /mu /tau /Phi /theta /Omega /delta /infinity /phi /element /intersection /equivalence /plusminus /greaterequal /lessequal /integraltp /integralbt /divide /approxequal /degree /bullet /dotmath /radical /eta /squared /block /blank ] def %%EndResource %%BeginResource: encoding HPRomanEncoding /HPRomanEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /Agrave /Acircumflex /Egrave /Ecircumflex /Edieresis /Icircumflex /Idieresis /acute /grave /circumflex /dieresis /tilde /Ugrave /Ucircumflex /sterling /macron /Yacute /yacute /degree /Ccedilla /ccedilla /Ntilde /ntilde /exclamdown /questiondown /currency /sterling /yen /section /florin /cent /acircumflex /ecircumflex /ocircumflex /ucircumflex /aacute /eacute /oacute /uacute /agrave /egrave /ograve /ugrave /adieresis /edieresis /odieresis /udieresis /Aring /icircumflex /Oslash /AE /aring /iacute /oslash /ae /Adieresis /igrave /Odieresis /Udieresis /Eacute /idieresis /germandbls /Ocircumflex /Aacute /Atilde /atilde /Eth /eth /Iacute /Igrave /Oacute /Ograve /Otilde /otilde /Scaron /scaron /Uacute /Ydieresis /ydieresis /Thorn /thorn /periodcentered /mu /paragraph /threequarters /emdash /onequarter /onehalf /ordfeminine /ordmasculine /guillemotleft /filledbox /guillemotright /plusminus /.notdef ] def %%EndResource %%BeginResource: encoding MacintoshEncoding /MacintoshEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /tilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /degree /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /notequal /AE /Oslash /infinity /plusminus /lessequal /greaterequal /yen /mu /partialdiff /Sigma /product /pi /integral /ordfeminine /ordmasculine /Omega /ae /oslash /questiondown /exclamdown /logicalnot /radical /florin /approxequal /Delta /guillemotleft /guillemotright /ellipsis /space /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /divide /lozenge /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def %%EndResource %%BeginResource: font Courier-Bold-Ogonki %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding OgonkiEncoding /OgonkiEncoding [ /.notdef /exclamdown /cent /sterling /fraction /yen /florin /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /endash /dagger /daggerdbl /periodcentered /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /questiondown /grave /circumflex /tilde /macron /ring /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /emdash /AE /ordfeminine /Oslash /OE /ordmasculine /ae /dotlessi /oslash /oe /threesuperior /thorn /twosuperior /threequarters /Eth /trademark /registered /onequarter /Thorn /logicalnot /plusminus /minus /onesuperior /copyright /mu /eth /brokenbar /onehalf /dotlessj /Euro /.notdef /space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section /dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent % 300 /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Eth /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding StandardEncoding /StandardEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section /currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /.notdef /questiondown % 300 /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef ] def %%EndResource %! % Add composite (i.e. accented) characters to any font % By J. Chroboczek % % -- code follows this line -- %%BeginResource: procset compose 0.8 0 % Copyright (c) 1996-1999 by J. Chroboczek % This code may be distributed under the terms of the % GNU Public License, either version 3 of the license, or (at your % option) any later version. /makeCompositeDict 20 dict def makeCompositeDict begin /nameUnique { % name nameUnique namexxxxxx dup length exch 1 index string cvs % length (name) 1 index 12 add string dup % length (name) (...) (...) 3 2 roll 0 exch putinterval % length (name...) dup 3 2 roll rand 12 string cvs putinterval } bind def /doMakeComposite { /compositeChars exch def /targetEncoding exch def /baseEncoding exch def /newfontname exch def /oldfontname exch def /oldfont oldfontname findfont def /newfont 20 dict def /oldFontMatrix oldfont /FontMatrix get def /oldFontBBox oldfont /FontBBox get cvlit def /oldfontcopy oldfont length dict def newfont begin /FontType 3 def /PaintType 0 def % not used /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox [ oldFontBBox 0 get oldFontBBox 1 get oldFontMatrix transform [1000 0 0 1000 0 0] transform oldFontBBox 2 get oldFontBBox 3 get oldFontMatrix transform [1000 0 0 1000 0 0] transform ] cvx def /StrokeWidth 0 def % not used /Encoding targetEncoding def /Decoding 256 dict def % invert base encoding vector Decoding begin 0 1 255 { dup baseEncoding exch get exch def } bind for end newfont /compositeChars compositeChars put /FontName newfontname def % make a copy of the original font, reencoding it oldfont oldfontcopy begin {1 index /FID ne {def} {pop pop} ifelse } bind forall end oldfontcopy /Encoding baseEncoding put oldfontname nameUnique oldfontcopy definefont 1000 scalefont /OriginalFont exch def /BuildChar % newfont n BuildChar - { exch begin % n /OriginalFont load setfont /Encoding load exch get % glyphName /compositeChars load dup 2 index known % glyphName compositeChars known-p { 1 index get % glyphName [ 65 x y 129 ] dup 0 get ( ) dup % glyphName [...] 65 ( ) ( ) 0 3 index put % glyphName [...] 65 (A) dup stringwidth setcharwidth 0 0 moveto show pop % glyphName [...] dup 1 get 1 index 2 get % glyphName [...] x y moveto % glyphName [...] 3 get ( ) dup 3 2 roll % glyphName ( ) ( ) 129 0 exch put % glyphName (') show % glyphName } { pop /Decoding load % glyphName Decoding dup 2 index known % glyphName Decoding known-p { exch get } { pop pop 0 } ifelse % n' ( ) dup 0 3 index put dup % n' (A) (A) stringwidth setcharwidth 0 0 moveto show % n' } ifelse pop end } bind def end % newfont newfontname newfont definefont pop } def % doMakeComposite /fillEuro { % w h -- gsave exch 1000 div exch 1000 div scale 955.852 232.172 moveto 904.495 180.815 lineto 829.454 117.848 734.626 83.333 636.667 83.333 curveto 406.667 83.333 220 270 220 500 curveto 220 730 406.667 916.667 636.667 916.667 curveto 759.831 916.667 876.684 862.177 955.852 767.828 curveto 988.474 855.291 lineto 894.851 947.996 768.422 1000 636.667 1000 curveto 360.667 1000 136.667 776 136.667 500 curveto 136.667 224 360.667 0 636.667 0 curveto 753.23 0 866.13 40.725 955.852 115.135 curveto closepath fill 869.037 541.667 moveto 901.025 625 lineto 31.989 625 lineto 0 541.667 lineto closepath fill 805.059 375 moveto 837.048 458.333 lineto 31.989 458.333 lineto 0 375 lineto closepath fill grestore } bind def /makeEuroCharstring { % w h -- charstring [ /pop cvx % w h mark pop 3 index 0 0 0 % w h mark pop w 0 0 0 7 index 7 index /setcachedevice cvx % w h mark pop w 0 0 0 w h setcachedevice 10 index 10 index /fillEuro load /exec cvx ] cvx bind 3 1 roll pop pop } def /doEurifyFont { % oldname newname -- exch findfont dup dup % newname dict dict dict /FontMatrix get matrix invertmatrix % newname dict dict m {} forall pop pop [ 5 1 roll 0 0] makefont setfont % newnamedict 0 0 moveto (5) stringwidth pop % newname dict w (M) false charpath pathbbox 4 1 roll pop pop pop % newnamedict w h 3 2 roll % newname w h dict dup length dict dup 3 1 roll begin % newname w h newdict {1 index /FID ne {def} {pop pop} ifelse} forall CharStrings dup length 1 add dict dup 3 1 roll begin % newnamew h newdict newdict' {def} forall /Euro % newname w h newdict newdict' /Euro 4 index 4 index makeEuroCharstring def end % newname w h newdict newdict' /CharStrings exch def end 3 1 roll pop pop % newname dict definefont pop } bind def end % makeCompositeDict % oldfontname newfontname baseEncoding targetEncoding compositeChars -- /makeComposite { makeCompositeDict begin doMakeComposite end } bind def % oldfontname newfontname /eurifyFont { makeCompositeDict begin doEurifyFont end } bind def %%EndResource %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Courier-Bold-Ogonki /Courier-Bold /Courier-Bold-Ogonki OgonkiEncoding StandardEncoding 111 dict dup /Agrave [65 -50 123 27] put dup /Aring [65 -10 123 31] put dup /Atilde [65 -30 123 29] put dup /Ecircumflex [69 0 123 28] put dup /Egrave [69 0 123 27] put dup /Gcaron [71 10 123 183] put dup /Idieresis [73 0 123 168] put dup /Igrave [73 0 123 27] put dup /Ntilde [78 0 123 29] put dup /Ograve [79 0 123 27] put dup /Otilde [79 0 123 29] put dup /Ucircumflex [85 0 123 28] put dup /Ugrave [85 -30 123 27] put dup /Ydieresis [89 0 123 168] put dup /agrave [97 -30 0 27] put dup /aring [97 0 0 31] put dup /atilde [97 0 0 29] put dup /ecircumflex [101 0 0 28] put dup /egrave [101 0 0 27] put dup /gcaron [103 -40 0 183] put dup /idieresis [136 -40 0 168] put dup /igrave [136 0 0 27] put dup /ntilde [110 0 0 29] put dup /ograve [111 0 0 27] put dup /otilde [111 0 0 29] put dup /ucircumflex [117 -20 0 28] put dup /ugrave [117 -30 0 27] put dup /ydieresis [121 10 0 168] put dup /abreve [97 0 0 162] put dup /Abreve [65 0 130 162] put dup /amacron [97 0 0 30] put dup /Amacron [65 0 130 30] put dup /Aogonek [65 200 0 178] put dup /aogonek [97 200 0 178] put dup /cacute [99 0 0 180] put dup /Cacute [67 0 130 180] put dup /ccaron [99 18 0 183] put dup /Ccaron [67 18 130 183] put dup /ccircumflex [99 18 0 28] put dup /Ccircumflex [67 18 130 28] put dup /cdotaccent [99 0 0 255] put dup /Cdotaccent [67 0 130 255] put dup /dbar [100 200 250 173] put dup /Dbar [208 0 0 160] put dup /Dcaron [68 0 130 183] put dup /dcaron [100 30 195 183] put dup /ecaron [101 0 0 183] put dup /Ecaron [69 0 130 183] put dup /edotaccent [101 0 0 255] put dup /Edotaccent [69 0 130 255] put dup /emacron [101 0 0 30] put dup /Emacron [69 0 130 30] put dup /Eogonek [69 0 0 178] put dup /eogonek [101 0 0 178] put dup /gacute [103 0 0 180] put dup /gbreve [103 0 0 162] put dup /Gbreve [71 18 130 162] put dup /gcircumflex [103 0 0 28] put dup /Gcircumflex [71 18 130 28] put dup /gdotaccent [103 0 0 255] put dup /Gdotaccent [71 18 130 255] put dup /hcircumflex [104 -20 195 28] put dup /Hcircumflex [72 0 130 28] put dup /Iogonek [73 20 0 178] put dup /iogonek [105 20 0 178] put dup /Idotaccent [73 0 130 255] put dup /imacron [136 0 0 30] put dup /Imacron [73 0 130 30] put dup /itilde [136 0 0 29] put dup /Itilde [73 0 130 29] put dup /Jcircumflex [74 85 130 28] put dup /Lacute [76 -100 130 180] put dup /lacute [108 -20 195 180] put dup /Lcaron [76 -100 130 183] put dup /lcaron [108 0 195 183] put dup /nacute [110 0 0 180] put dup /Nacute [78 0 130 180] put dup /ncaron [110 0 0 183] put dup /Ncaron [78 0 130 183] put dup /ohungarumlaut [111 0 0 189] put dup /Ohungarumlaut [79 0 130 189] put dup /omacron [111 0 0 30] put dup /Omacron [79 0 130 30] put dup /racute [114 0 0 180] put dup /Racute [82 0 130 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 0 130 183] put dup /sacute [115 0 0 180] put dup /Sacute [83 0 130 180] put dup /scircumflex [115 0 0 28] put dup /Scircumflex [83 0 130 28] put dup /tcaron [116 0 107 183] put dup /Tcaron [84 0 130 183] put dup /Tcedilla [84 0 0 184] put dup /tcedilla [116 0 0 184] put dup /ubreve [117 0 0 162] put dup /Ubreve [85 0 130 162] put dup /uhungarumlaut [117 0 0 189] put dup /Uhungarumlaut [85 0 130 189] put dup /umacron [117 0 0 30] put dup /Umacron [85 0 130 30] put dup /uogonek [117 109 0 178] put dup /Uogonek [85 5 23 178] put dup /uring [117 0 0 31] put dup /Uring [85 0 130 31] put dup /utilde [117 0 0 29] put dup /Utilde [85 0 130 29] put dup /zacute [122 0 0 180] put dup /Zacute [90 0 130 180] put dup /zdotaccent [122 0 0 255] put dup /Zdotaccent [90 0 130 255] put makeComposite %%EndResource %%EndResource %%BeginResource: font Courier-Ogonki %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding OgonkiEncoding /OgonkiEncoding [ /.notdef /exclamdown /cent /sterling /fraction /yen /florin /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /endash /dagger /daggerdbl /periodcentered /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /questiondown /grave /circumflex /tilde /macron /ring /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /emdash /AE /ordfeminine /Oslash /OE /ordmasculine /ae /dotlessi /oslash /oe /threesuperior /thorn /twosuperior /threequarters /Eth /trademark /registered /onequarter /Thorn /logicalnot /plusminus /minus /onesuperior /copyright /mu /eth /brokenbar /onehalf /dotlessj /Euro /.notdef /space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section /dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent % 300 /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Eth /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding StandardEncoding /StandardEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section /currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /.notdef /questiondown % 300 /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef ] def %%EndResource %! % Add composite (i.e. accented) characters to any font % By J. Chroboczek % % -- code follows this line -- %%BeginResource: procset compose 0.8 0 % Copyright (c) 1996-1999 by J. Chroboczek % This code may be distributed under the terms of the % GNU Public License, either version 3 of the license, or (at your % option) any later version. /makeCompositeDict 20 dict def makeCompositeDict begin /nameUnique { % name nameUnique namexxxxxx dup length exch 1 index string cvs % length (name) 1 index 12 add string dup % length (name) (...) (...) 3 2 roll 0 exch putinterval % length (name...) dup 3 2 roll rand 12 string cvs putinterval } bind def /doMakeComposite { /compositeChars exch def /targetEncoding exch def /baseEncoding exch def /newfontname exch def /oldfontname exch def /oldfont oldfontname findfont def /newfont 20 dict def /oldFontMatrix oldfont /FontMatrix get def /oldFontBBox oldfont /FontBBox get cvlit def /oldfontcopy oldfont length dict def newfont begin /FontType 3 def /PaintType 0 def % not used /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox [ oldFontBBox 0 get oldFontBBox 1 get oldFontMatrix transform [1000 0 0 1000 0 0] transform oldFontBBox 2 get oldFontBBox 3 get oldFontMatrix transform [1000 0 0 1000 0 0] transform ] cvx def /StrokeWidth 0 def % not used /Encoding targetEncoding def /Decoding 256 dict def % invert base encoding vector Decoding begin 0 1 255 { dup baseEncoding exch get exch def } bind for end newfont /compositeChars compositeChars put /FontName newfontname def % make a copy of the original font, reencoding it oldfont oldfontcopy begin {1 index /FID ne {def} {pop pop} ifelse } bind forall end oldfontcopy /Encoding baseEncoding put oldfontname nameUnique oldfontcopy definefont 1000 scalefont /OriginalFont exch def /BuildChar % newfont n BuildChar - { exch begin % n /OriginalFont load setfont /Encoding load exch get % glyphName /compositeChars load dup 2 index known % glyphName compositeChars known-p { 1 index get % glyphName [ 65 x y 129 ] dup 0 get ( ) dup % glyphName [...] 65 ( ) ( ) 0 3 index put % glyphName [...] 65 (A) dup stringwidth setcharwidth 0 0 moveto show pop % glyphName [...] dup 1 get 1 index 2 get % glyphName [...] x y moveto % glyphName [...] 3 get ( ) dup 3 2 roll % glyphName ( ) ( ) 129 0 exch put % glyphName (') show % glyphName } { pop /Decoding load % glyphName Decoding dup 2 index known % glyphName Decoding known-p { exch get } { pop pop 0 } ifelse % n' ( ) dup 0 3 index put dup % n' (A) (A) stringwidth setcharwidth 0 0 moveto show % n' } ifelse pop end } bind def end % newfont newfontname newfont definefont pop } def % doMakeComposite /fillEuro { % w h -- gsave exch 1000 div exch 1000 div scale 955.852 232.172 moveto 904.495 180.815 lineto 829.454 117.848 734.626 83.333 636.667 83.333 curveto 406.667 83.333 220 270 220 500 curveto 220 730 406.667 916.667 636.667 916.667 curveto 759.831 916.667 876.684 862.177 955.852 767.828 curveto 988.474 855.291 lineto 894.851 947.996 768.422 1000 636.667 1000 curveto 360.667 1000 136.667 776 136.667 500 curveto 136.667 224 360.667 0 636.667 0 curveto 753.23 0 866.13 40.725 955.852 115.135 curveto closepath fill 869.037 541.667 moveto 901.025 625 lineto 31.989 625 lineto 0 541.667 lineto closepath fill 805.059 375 moveto 837.048 458.333 lineto 31.989 458.333 lineto 0 375 lineto closepath fill grestore } bind def /makeEuroCharstring { % w h -- charstring [ /pop cvx % w h mark pop 3 index 0 0 0 % w h mark pop w 0 0 0 7 index 7 index /setcachedevice cvx % w h mark pop w 0 0 0 w h setcachedevice 10 index 10 index /fillEuro load /exec cvx ] cvx bind 3 1 roll pop pop } def /doEurifyFont { % oldname newname -- exch findfont dup dup % newname dict dict dict /FontMatrix get matrix invertmatrix % newname dict dict m {} forall pop pop [ 5 1 roll 0 0] makefont setfont % newnamedict 0 0 moveto (5) stringwidth pop % newname dict w (M) false charpath pathbbox 4 1 roll pop pop pop % newnamedict w h 3 2 roll % newname w h dict dup length dict dup 3 1 roll begin % newname w h newdict {1 index /FID ne {def} {pop pop} ifelse} forall CharStrings dup length 1 add dict dup 3 1 roll begin % newnamew h newdict newdict' {def} forall /Euro % newname w h newdict newdict' /Euro 4 index 4 index makeEuroCharstring def end % newname w h newdict newdict' /CharStrings exch def end 3 1 roll pop pop % newname dict definefont pop } bind def end % makeCompositeDict % oldfontname newfontname baseEncoding targetEncoding compositeChars -- /makeComposite { makeCompositeDict begin doMakeComposite end } bind def % oldfontname newfontname /eurifyFont { makeCompositeDict begin doEurifyFont end } bind def %%EndResource %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Courier-Ogonki /Courier /Courier-Ogonki OgonkiEncoding StandardEncoding 111 dict dup /Agrave [65 -30 121 27] put dup /Aring [65 -15 126 31] put dup /Atilde [65 0 126 29] put dup /Ecircumflex [69 0 121 28] put dup /Egrave [69 0 121 27] put dup /Gcaron [71 0 136 183] put dup /Idieresis [73 0 136 168] put dup /Igrave [73 0 121 27] put dup /Ntilde [78 0 126 29] put dup /Ograve [79 0 121 27] put dup /Otilde [79 0 126 29] put dup /Ucircumflex [85 0 121 28] put dup /Ugrave [85 -30 121 27] put dup /Ydieresis [89 0 136 168] put dup /agrave [97 0 0 27] put dup /aring [97 0 0 31] put dup /atilde [97 0 0 29] put dup /ecircumflex [101 0 0 28] put dup /egrave [101 0 0 27] put dup /gcaron [103 -30 0 183] put dup /idieresis [136 -30 0 168] put dup /igrave [136 -30 0 27] put dup /ntilde [110 0 0 29] put dup /ograve [111 0 0 27] put dup /otilde [111 0 0 29] put dup /ucircumflex [117 -10 0 28] put dup /ugrave [117 -30 0 27] put dup /ydieresis [121 -10 0 168] put dup /abreve [97 0 0 162] put dup /Abreve [65 0 133 162] put dup /amacron [97 0 0 30] put dup /Amacron [65 0 133 30] put dup /Aogonek [65 200 0 178] put dup /aogonek [97 200 0 178] put dup /cacute [99 17 0 180] put dup /Cacute [67 30 133 180] put dup /ccaron [99 17 0 183] put dup /Ccaron [67 30 133 183] put dup /ccircumflex [99 17 2 28] put dup /Ccircumflex [67 30 133 28] put dup /cdotaccent [99 0 0 255] put dup /Cdotaccent [67 30 133 255] put dup /dbar [100 200 250 173] put dup /Dbar [208 0 0 160] put dup /Dcaron [68 0 133 183] put dup /dcaron [100 17 156 183] put dup /ecaron [101 0 0 183] put dup /Ecaron [69 0 133 183] put dup /edotaccent [101 0 0 255] put dup /Edotaccent [69 0 133 255] put dup /Emacron [69 0 133 30] put dup /emacron [101 17 0 30] put dup /Eogonek [69 100 0 178] put dup /eogonek [101 100 0 178] put dup /gacute [103 0 0 180] put dup /gbreve [103 0 0 162] put dup /Gbreve [71 30 133 162] put dup /gcircumflex [103 0 0 28] put dup /Gcircumflex [71 30 133 28] put dup /gdotaccent [103 0 0 255] put dup /Gdotaccent [71 0 133 255] put dup /Hcircumflex [72 0 133 28] put dup /hcircumflex [104 0 164 28] put dup /Idotaccent [73 0 133 255] put dup /imacron [136 0 0 30] put dup /Imacron [73 0 133 30] put dup /iogonek [105 20 0 178] put dup /Iogonek [73 20 0 178] put dup /itilde [136 0 0 29] put dup /Itilde [73 0 133 29] put dup /Jcircumflex [74 100 133 28] put dup /Lacute [76 -100 133 180] put dup /lacute [108 -12 147 180] put dup /Lcaron [76 -100 133 183] put dup /lcaron [108 -12 144 183] put dup /nacute [110 0 0 180] put dup /Nacute [78 0 133 180] put dup /ncaron [110 0 0 183] put dup /Ncaron [78 0 133 183] put dup /ohungarumlaut [111 0 0 189] put dup /Ohungarumlaut [79 0 133 189] put dup /omacron [111 0 0 30] put dup /Omacron [79 0 133 30] put dup /racute [114 0 0 180] put dup /Racute [82 0 133 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 0 133 183] put dup /sacute [115 0 0 180] put dup /Sacute [83 0 133 180] put dup /scircumflex [115 0 0 28] put dup /Scircumflex [83 0 133 28] put dup /tcaron [116 -77 92 183] put dup /Tcaron [84 0 133 183] put dup /Tcedilla [84 0 0 184] put dup /tcedilla [116 0 0 184] put dup /ubreve [117 0 0 162] put dup /Ubreve [85 0 133 162] put dup /uhungarumlaut [117 0 0 189] put dup /Uhungarumlaut [85 0 133 189] put dup /umacron [117 0 0 30] put dup /Umacron [85 0 133 30] put dup /uogonek [117 120 0 178] put dup /Uogonek [85 5 20 178] put dup /uring [117 0 0 31] put dup /Uring [85 0 133 31] put dup /utilde [117 0 0 29] put dup /Utilde [85 0 133 29] put dup /zacute [122 0 0 180] put dup /Zacute [90 0 133 180] put dup /zdotaccent [122 0 0 255] put dup /Zdotaccent [90 0 133 255] put makeComposite %%EndResource %%EndResource %%BeginResource: font Helvetica-Bold-Ogonki %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding OgonkiEncoding /OgonkiEncoding [ /.notdef /exclamdown /cent /sterling /fraction /yen /florin /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /endash /dagger /daggerdbl /periodcentered /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /questiondown /grave /circumflex /tilde /macron /ring /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /emdash /AE /ordfeminine /Oslash /OE /ordmasculine /ae /dotlessi /oslash /oe /threesuperior /thorn /twosuperior /threequarters /Eth /trademark /registered /onequarter /Thorn /logicalnot /plusminus /minus /onesuperior /copyright /mu /eth /brokenbar /onehalf /dotlessj /Euro /.notdef /space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section /dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent % 300 /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Eth /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding StandardEncoding /StandardEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section /currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /.notdef /questiondown % 300 /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef ] def %%EndResource %! % Add composite (i.e. accented) characters to any font % By J. Chroboczek % % -- code follows this line -- %%BeginResource: procset compose 0.8 0 % Copyright (c) 1996-1999 by J. Chroboczek % This code may be distributed under the terms of the % GNU Public License, either version 3 of the license, or (at your % option) any later version. /makeCompositeDict 20 dict def makeCompositeDict begin /nameUnique { % name nameUnique namexxxxxx dup length exch 1 index string cvs % length (name) 1 index 12 add string dup % length (name) (...) (...) 3 2 roll 0 exch putinterval % length (name...) dup 3 2 roll rand 12 string cvs putinterval } bind def /doMakeComposite { /compositeChars exch def /targetEncoding exch def /baseEncoding exch def /newfontname exch def /oldfontname exch def /oldfont oldfontname findfont def /newfont 20 dict def /oldFontMatrix oldfont /FontMatrix get def /oldFontBBox oldfont /FontBBox get cvlit def /oldfontcopy oldfont length dict def newfont begin /FontType 3 def /PaintType 0 def % not used /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox [ oldFontBBox 0 get oldFontBBox 1 get oldFontMatrix transform [1000 0 0 1000 0 0] transform oldFontBBox 2 get oldFontBBox 3 get oldFontMatrix transform [1000 0 0 1000 0 0] transform ] cvx def /StrokeWidth 0 def % not used /Encoding targetEncoding def /Decoding 256 dict def % invert base encoding vector Decoding begin 0 1 255 { dup baseEncoding exch get exch def } bind for end newfont /compositeChars compositeChars put /FontName newfontname def % make a copy of the original font, reencoding it oldfont oldfontcopy begin {1 index /FID ne {def} {pop pop} ifelse } bind forall end oldfontcopy /Encoding baseEncoding put oldfontname nameUnique oldfontcopy definefont 1000 scalefont /OriginalFont exch def /BuildChar % newfont n BuildChar - { exch begin % n /OriginalFont load setfont /Encoding load exch get % glyphName /compositeChars load dup 2 index known % glyphName compositeChars known-p { 1 index get % glyphName [ 65 x y 129 ] dup 0 get ( ) dup % glyphName [...] 65 ( ) ( ) 0 3 index put % glyphName [...] 65 (A) dup stringwidth setcharwidth 0 0 moveto show pop % glyphName [...] dup 1 get 1 index 2 get % glyphName [...] x y moveto % glyphName [...] 3 get ( ) dup 3 2 roll % glyphName ( ) ( ) 129 0 exch put % glyphName (') show % glyphName } { pop /Decoding load % glyphName Decoding dup 2 index known % glyphName Decoding known-p { exch get } { pop pop 0 } ifelse % n' ( ) dup 0 3 index put dup % n' (A) (A) stringwidth setcharwidth 0 0 moveto show % n' } ifelse pop end } bind def end % newfont newfontname newfont definefont pop } def % doMakeComposite /fillEuro { % w h -- gsave exch 1000 div exch 1000 div scale 955.852 232.172 moveto 904.495 180.815 lineto 829.454 117.848 734.626 83.333 636.667 83.333 curveto 406.667 83.333 220 270 220 500 curveto 220 730 406.667 916.667 636.667 916.667 curveto 759.831 916.667 876.684 862.177 955.852 767.828 curveto 988.474 855.291 lineto 894.851 947.996 768.422 1000 636.667 1000 curveto 360.667 1000 136.667 776 136.667 500 curveto 136.667 224 360.667 0 636.667 0 curveto 753.23 0 866.13 40.725 955.852 115.135 curveto closepath fill 869.037 541.667 moveto 901.025 625 lineto 31.989 625 lineto 0 541.667 lineto closepath fill 805.059 375 moveto 837.048 458.333 lineto 31.989 458.333 lineto 0 375 lineto closepath fill grestore } bind def /makeEuroCharstring { % w h -- charstring [ /pop cvx % w h mark pop 3 index 0 0 0 % w h mark pop w 0 0 0 7 index 7 index /setcachedevice cvx % w h mark pop w 0 0 0 w h setcachedevice 10 index 10 index /fillEuro load /exec cvx ] cvx bind 3 1 roll pop pop } def /doEurifyFont { % oldname newname -- exch findfont dup dup % newname dict dict dict /FontMatrix get matrix invertmatrix % newname dict dict m {} forall pop pop [ 5 1 roll 0 0] makefont setfont % newnamedict 0 0 moveto (5) stringwidth pop % newname dict w (M) false charpath pathbbox 4 1 roll pop pop pop % newnamedict w h 3 2 roll % newname w h dict dup length dict dup 3 1 roll begin % newname w h newdict {1 index /FID ne {def} {pop pop} ifelse} forall CharStrings dup length 1 add dict dup 3 1 roll begin % newnamew h newdict newdict' {def} forall /Euro % newname w h newdict newdict' /Euro 4 index 4 index makeEuroCharstring def end % newname w h newdict newdict' /CharStrings exch def end 3 1 roll pop pop % newname dict definefont pop } bind def end % makeCompositeDict % oldfontname newfontname baseEncoding targetEncoding compositeChars -- /makeComposite { makeCompositeDict begin doMakeComposite end } bind def % oldfontname newfontname /eurifyFont { makeCompositeDict begin doEurifyFont end } bind def %%EndResource %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Helvetica-Bold-Ogonki /Helvetica-Bold /Helvetica-Bold-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Ydieresis [89 167 191 168] put dup /ydieresis [121 111 0 168] put dup /Ucircumflex [85 197 191 28] put dup /Ugrave [85 197 191 27] put dup /ucircumflex [117 139 0 28] put dup /ugrave [117 139 0 27] put dup /Idieresis [73 -27 191 168] put dup /Igrave [73 -27 191 27] put dup /idieresis [136 -27 0 168] put dup /igrave [136 -27 0 27] put dup /Ecircumflex [69 188 191 28] put dup /Egrave [69 188 191 27] put dup /ecircumflex [101 111 0 28] put dup /egrave [101 111 0 27] put dup /Agrave [65 197 191 27] put dup /agrave [97 111 0 27] put dup /Ograve [79 222 191 27] put dup /ograve [111 139 0 27] put dup /Atilde [65 197 191 29] put dup /atilde [97 111 0 29] put dup /Ntilde [78 200 191 29] put dup /ntilde [110 146 0 29] put dup /Otilde [79 222 191 29] put dup /otilde [111 139 0 29] put dup /Aring [65 197 191 31] put dup /aring [97 111 0 31] put dup /abreve [97 111 0 162] put dup /Abreve [65 194 202 162] put dup /aogonek [97 270 0 178] put dup /Aogonek [65 444 0 178] put dup /cacute [99 111 0 180] put dup /Cacute [67 194 193 180] put dup /ccaron [99 122 0 183] put dup /Ccaron [67 210 191 183] put dup /dbar [100 302 298 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 493 73 39] put dup /Dcaron [68 194 190 183] put dup /ecaron [101 111 0 183] put dup /Ecaron [69 167 190 183] put dup /edotaccent [101 103 0 255] put dup /Edotaccent [69 188 191 255] put dup /eogonek [101 150 0 178] put dup /Eogonek [69 290 0 178] put dup /gbreve [103 139 0 162] put dup /Gbreve [71 222 191 162] put dup /Idotaccent [73 -27 191 255] put dup /iogonek [105 -39 0 178] put dup /Iogonek [73 -30 0 178] put dup /lacute [108 -7 193 180] put dup /Lacute [76 139 193 180] put dup /lcaron [108 155 73 39] put dup /Lcaron [76 161 73 39] put dup /nacute [110 159 0 180] put dup /Nacute [78 231 193 180] put dup /ncaron [110 111 0 183] put dup /Ncaron [78 194 215 183] put dup /ohungarumlaut [111 139 0 189] put dup /Ohungarumlaut [79 222 191 189] put dup /racute [114 48 0 180] put dup /Racute [82 231 193 180] put dup /rcaron [114 28 0 183] put dup /Rcaron [82 194 190 183] put dup /sacute [115 111 0 180] put dup /Sacute [83 167 193 180] put dup /scedilla [115 111 0 184] put dup /Scedilla [83 167 0 184] put dup /tcaron [116 249 0 39] put dup /Tcaron [84 139 190 183] put dup /tcedilla [116 86 0 184] put dup /Tcedilla [84 197 0 184] put dup /uhungarumlaut [117 139 0 189] put dup /Uhungarumlaut [85 197 191 189] put dup /uring [117 139 0 31] put dup /Uring [85 194 190 31] put dup /umacron [117 139 0 30] put dup /Umacron [85 199 191 30] put dup /uogonek [117 286 0 178] put dup /Uogonek [85 260 0 178] put dup /zacute [122 103 0 180] put dup /Zacute [90 139 193 180] put dup /zdotaccent [122 83 0 255] put dup /Zdotaccent [90 139 206 255] put makeComposite %%EndResource %%EndResource %%BeginResource: font PCFont %!PS-AdobeFont-1.0 -*- PostScript -*- %%Copyright: (c) 1996 Johannes Goldynia % pcfont.pfa - Type 3 font providing support for line drawing PC encoding % % Copyright (c) 1996 Johannes Goldynia % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, but % WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; if not, write to the Free Software % Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 23 dict dup begin /FontMatrix [.001 0 0 .00112 0 0] def /FontType 3 def /FontBBox [0 -200 600 800] def /Notice (PCfont 1991) def /FullName (PCfont) def /FontName /PCfont def /isFixedPitch true def /Encoding [ /null /Wsmiley /Bsmiley /heart /diamond /club /spade /Bbullet /Wbullet /Bcircle /Wcircle /male /female /quarternote /sixteenthnote /sun /pointerright /pointerleft /Varrowboth /exclamdbl /paragraph /section /cursorblock /floor /arrowup /arrowdown /arrowright /arrowleft /smallLLsingle /arrowboth /pointerup /pointerdown /blank /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /brokenbar /braceright /asciitilde /Delta /Ccedilla /udieresis /eacute /acircumflex /adieresis /agrave /aring /ccedilla /ecircumflex /edieresis /egrave /idieresis /icircumflex /igrave /Adieresis /Aring /Eacute /ae /AE /ocircumflex /odieresis /ograve /ucircumflex /ugrave /ydieresis /Odieresis /Udieresis /cent /sterling /yen /point /integral /aacute /iacute /oacute /uacute /ntilde /Ntilde /aunder /ounder /questiondown /smallULsingle /smallURsingle /half /quarter /exclamdown /lessdbl /greaterdbl /lightbox /mediumbox /darkbox /Vsingle /VsingleTleftsingle /VsingleTleftdbl /VdblTleftsingle /VdblURsingle /VsingleURdbl /VdblTleftdbl /Vdbl /VdblURdbl /VdblLRdbl /VdblLRsingle /VsingleLRdbl /VsingleURsingle /VsingleLLsingle /HsingleTupsingle /HsingleTdownsingle /VsingleTrightsingle /Hsingle /VsingleXsingle /VsingleTrightdbl /VdblTrightsingle /VdblLLdbl /VdblULdbl /HdblTupdbl /HdblTdowndbl /VdblTrightdbl /Hdbl /VdblXdbl /HdblTupsingle /HsingleTupdbl /HdblTdownsingle /HsingleTdowndbl /VdblLLsingle /VsingleLLdbl /VsingleULdbl /VdblULsingle /VdblXsingle /VsingleXdbl /VsingleLRsingle /VsingleULsingle /allblack /botblack /leftblack /rightblack /topblack /alpha /beta /Gamma /pi /Sigma /sigma /mu /tau /Phi /theta /Omega /delta /infinity /phi /element /intersection /equivalence /plusminus /greaterequal /lessequal /integraltp /integralbt /divide /approxequal /degree /bullet /dotmath /radical /eta /squared /block /blank ] def % /Encoding /_uC { 0 0 moveto /Courier findfont 1000 scalefont setfont show } def /_uS { 0 0 moveto /Symbol findfont 1000 scalefont setfont show } def /dotless_i { newpath 110 20 moveto 490 20 lineto 300 20 moveto 300 400 lineto 150 400 lineto 22 setlinewidth 1 setlinecap stroke } def /squash { 1 dict begin /cr exch def save 1 .75 scale cr _uC restore end } def /lt {lineto} def /mt {moveto} def /a {arc} def /an {arcn} def /cp {closepath} def /slw {setlinewidth} def /slc {setlinecap} def /CharacterDefs 255 dict def CharacterDefs begin /null { 0 598 mt 230 598 lt 184 460 lt 0 460 lt cp 92 0 mt 92 184 lt 230 184 lt 368 598 lt 598 598 lt 598 460 lt 377.2 460 lt 230 0 lt cp fill } def /Wsmiley { 300 300 275 0 360 a 370 230 mt 300 300 100 315 225 an 20 slw 1 slc stroke 230 370 25 0 360 a fill 370 370 25 0 360 a fill } def /Bsmiley { 300 300 275 0 360 a 352.5 247.5 mt 370 230 25 135 315 an 300 300 125 315 225 an 230 230 25 225 45 an 300 300 75 225 315 a 230 335 mt 230 370 50 270 -90 an 370 370 50 270 -90 an eofill } def /heart {(\251) _uS} def /diamond {(\250) _uS} def /club {(\247) _uS} def /spade {(\252) _uS} def /Bbullet { (\267) _uC } def /Wbullet { 0 -200 mt 600 -200 lt 600 800 lt 0 800 lt 0 -200 lt 300 300 100 225 585 a eofill } def /Bcircle { 300 300 100 225 585 a 20 slw stroke } def /Wcircle { 0 -200 mt 600 -200 lt 600 800 lt 0 800 lt 0 -200 lt 300 300 125 225 585 a 300 300 75 225 585 a eofill } def /male { newpath 300 200 200 70 -290 arcn 575 625 lineto 575 500 moveto 575 625 lineto 450 625 lineto 20 slw 1 setlinecap stroke } def /female { newpath 300 400 200 270 -90 arcn 300 0 lineto 150 100 moveto 450 100 lineto 20 slw 1 setlinecap stroke } def /quarternote { save 1 .5 scale 200 400 100 0 360 arc fill restore 290 200 moveto 290 658 lineto 430 840 230 235 270 arc 20 slw 0 setlinecap 290 610 lineto gsave fill grestore stroke } def /sixteenthnote { save 1 .5 scale 200 400 100 0 360 arc 330 200 moveto 340 200 100 0 360 arc fill restore 290 200 moveto 290 658 lineto 430 840 230 235 270 arc 430 610 moveto 430 790 230 270 235 arcn 430 610 moveto 430 100 lineto 20 slw 1 setlinecap stroke } def /sun { newpath 300 300 150 270 -90 arcn 300 0 lineto 180 180 moveto 100 100 lineto 150 300 moveto 25 300 lineto 180 420 moveto 100 500 lineto 300 450 moveto 300 600 lineto 420 420 moveto 500 500 lineto 450 300 moveto 575 300 lineto 420 180 moveto 500 100 lineto 20 slw 1 setlinecap stroke } def /pointerright { 600 750 450 270 210 an 600 -150 450 150 90 an fill } def /pointerleft { 150 750 450 330 270 an 150 -150 450 90 30 an fill } def /Varrowboth { 300 700 mt 550 500 lt 350 500 lt 350 200 lt 550 200 lt 300 0 lt 50 200 lt 250 200 lt 250 500 lt 50 500 lt cp fill } def /exclamdbl { save -100 0 translate (!) _uC 200 0 translate (!) _uC restore } def /paragraph { (\266) _uC } def /section { (\247) _uC } def /cursorblock { 50 -100 mt 550 -100 lt 550 200 lt 50 200 lt cp fill } def /floor { 300 700 mt 550 500 lt 350 500 lt 350 200 lt 550 200 lt 300 0 lt 50 200 lt 250 200 lt 250 500 lt 50 500 lt cp fill 0 0 mt 600 0 lt 20 slw stroke } def /arrowup { 300 700 mt 550 500 lt 350 500 lt 350 0 lt 250 0 lt 250 500 lt 50 500 lt cp fill } def /arrowdown { 300 0 mt 550 200 lt 350 200 lt 350 700 lt 250 700 lt 250 200 lt 50 200 lt cp fill } def /arrowright { 50 300 mt 550 300 lt 300 400 lt 550 300 mt 300 200 lt 1 slc 25 slw stroke } def /arrowleft { 550 300 mt 50 300 lt 300 400 lt 50 300 mt 300 200 lt 1 slc 25 slw stroke } def /smallLLsingle { 100 400 mt 100 275 lt 500 275 lt 20 slw stroke } def /arrowboth { 550 300 mt 50 300 lt 200 400 lt 50 300 mt 200 200 lt 550 300 mt 400 400 lt 550 300 mt 400 200 lt 1 slc 20 slw stroke } def /pointerup { 50 50 mt 300 600 lt 550 50 lt cp fill } def /pointerdown { 0 550 mt 300 50 lt 550 550 lt cp fill } def /blank {} def /exclam { (!) _uC } def /quotedbl { (") _uC } def /numbersign { (#) _uC } def /dollar { ($) _uC } def /percent { (%) _uC } def /ampersand {(&) _uC} def /quotesingle {(') _uC} def /parenleft { (\050) _uC } def /parenright { (\051) _uC } def /asterisk { (*) _uC } def /plus { (+) _uC } def /comma { (,) _uC } def /hyphen { (-) _uC } def /period { (.) _uC } def /slash { (/) _uC } def /zero { (0) _uC } def /one { (1) _uC } def /two { (2) _uC } def /three { (3) _uC } def /four { (4) _uC } def /five { (5) _uC } def /six { (6) _uC } def /seven { (7) _uC } def /eight { (8) _uC } def /nine { (9) _uC } def /colon { (:) _uC } def /semicolon { (;) _uC } def /less { (<) _uC } def /equal { (=) _uC } def /greater { (>) _uC } def /question { (?) _uC } def /at { (@) _uC } def /A { (A) _uC } def /B { (B) _uC } def /C { (C) _uC } def /D { (D) _uC } def /E { (E) _uC } def /F { (F) _uC } def /G { (G) _uC } def /H { (H) _uC } def /I { (I) _uC } def /J { (J) _uC } def /K { (K) _uC } def /L { (L) _uC } def /M { (M) _uC } def /N { (N) _uC } def /O { (O) _uC } def /P { (P) _uC } def /Q { (Q) _uC } def /R { (R) _uC } def /S { (S) _uC } def /T { (T) _uC } def /U { (U) _uC } def /V { (V) _uC } def /W { (W) _uC } def /X { (X) _uC } def /Y { (Y) _uC } def /Z { (Z) _uC } def /bracketleft { ([) _uC } def /backslash { (\\) _uC } def /bracketright { (]) _uC } def /asciicircum { (^) _uC } def /underscore { 0 -200 mt 600 -200 lt 20 slw stroke } def /quoteleft { (`) _uC } def /a { (a) _uC } def /b { (b) _uC } def /c { (c) _uC } def /d { (d) _uC } def /e { (e) _uC } def /f { (f) _uC } def /g { (g) _uC } def /h { (h) _uC } def /i { (i) _uC } def /j { (j) _uC } def /k { (k) _uC } def /l { (l) _uC } def /m { (m) _uC } def /n { (n) _uC } def /o { (o) _uC } def /p { (p) _uC } def /q { (q) _uC } def /r { (r) _uC } def /s { (s) _uC } def /t { (t) _uC } def /u { (u) _uC } def /v { (v) _uC } def /w { (w) _uC } def /x { (x) _uC } def /y { (y) _uC } def /z { (z) _uC } def /braceleft { ({) _uC } def /brokenbar { (|) _uC } def /braceright { (}) _uC } def /asciitilde { (~) _uC } def /Delta { 50 0 mt 50 200 lt 300 500 lt 550 200 lt 550 0 lt cp 0 setlinejoin 20 slw stroke } def /Ccedilla { (C) _uC (\313) _uC } def /udieresis { (u) _uC (\310) _uC } def /eacute { (e) _uC (\302) _uC } def /acircumflex { (a) _uC (\303) _uC } def /adieresis { (a) _uC (\310) _uC } def /agrave { (a) _uC (\301) _uC } def /aring { (a) _uC (\312) _uC } def /ccedilla { (c) _uC (\313) _uC } def /ecircumflex { (e) _uC (\303) _uC } def /edieresis { (e) _uC (\310) _uC } def /egrave { (e) _uC (\301) _uC } def /idieresis { dotless_i (\310) _uC } def /icircumflex { dotless_i (\303) _uC } def /igrave { dotless_i (\301) _uC } def /Adieresis { (A) squash (\310) _uC } def /Aring { (A) squash (\312) _uC } def /Eacute { (E) squash (\302) _uC } def /ae { save .6 1 scale -75 0 translate (a) _uC 360 0 translate (e) _uC restore } def /AE { 120 540 moveto 480 540 lineto 480 420 lineto 300 540 moveto 300 20 lineto 250 20 moveto 500 20 lineto 500 160 lineto 250 540 moveto 80 20 lineto 30 20 moveto 180 20 lineto 170 280 moveto 400 280 lineto 400 240 moveto 400 320 lineto 20 slw 1 setlinecap stroke } def /ocircumflex { (o) _uC (\303) _uC } def /odieresis { (o) _uC (\310) _uC } def /ograve { (o) _uC (\301) _uC } def /ucircumflex { (u) _uC (\303) _uC } def /ugrave { (u) _uC (\301) _uC } def /ydieresis { (y) _uC (\310) _uC } def /Odieresis { (O) squash (\310) _uC } def /Udieresis { (U) squash (\310) _uC } def /cent { (\242) _uC } def /sterling { (\243) _uC } def /yen { (\245) _uC } def /point { save .6 1 scale (P) _uC .5 .5 scale 1000 0 translate (t) _uC restore } def /integral { save 1 .75 scale (\362) _uS restore } def /aacute { (a) _uC (\302) _uC } def /iacute { dotless_i (\302) _uC } def /oacute { (o) _uC (\302) _uC } def /uacute { (u) _uC (\302) _uC } def /ntilde { (n) _uC (\304) _uC } def /Ntilde { (N) squash (\304) _uC } def /aunder { save 175 200 translate .6 .6 scale (a) _uC 100 -200 mt 500 -200 lt 20 slw stroke restore } def /ounder { save 175 200 translate .6 .6 scale (o) _uC 100 -200 mt 500 -200 lt 20 slw stroke restore } def /questiondown { (\277) _uC } def /smallULsingle { 25 100 mt 25 300 lt 575 300 lt 20 slw stroke } def /smallURsingle { 25 300 mt 575 300 lt 575 100 lt 20 slw stroke } def /half { save .5 .5 scale 0 600 translate (1) _uC 500 -600 translate (2) _uC restore 50 0 moveto 500 600 lineto 10 slw 1 setlinecap stroke } def /quarter { save .5 .5 scale 0 600 translate (1) _uC 500 -600 translate (4) _uC restore 50 0 moveto 500 600 lineto 10 slw 1 setlinecap stroke } def /exclamdown { (\241) _uC } def /lessdbl { (\253) _uC } def /greaterdbl { (\273) _uC } def /lightbox { 2 dict begin 50 85 600 { /col exch def -150 71 800 { /row exch def col row 5 0 360 arc fill } for } for end } def /mediumbox { 2 dict begin 50 85 600 { /col exch def -150 71 800 { /row exch def col row 15 0 360 arc fill } for } for end } def /darkbox { 2 dict begin 50 85 600 { /col exch def -150 71 800 { /row exch def col row 25 0 360 arc fill } for } for end } def /Vsingle { 300 -205 mt 300 805 lt 20 slw stroke } def /VsingleTleftsingle { 300 -205 mt 300 805 lt 0 300 mt 300 300 lt 20 slw stroke } def /VsingleTleftdbl { 300 -205 mt 300 805 lt 0 400 mt 300 400 lt 0 200 mt 300 200 lt 20 slw stroke } def /VdblTleftsingle { 200 -205 mt 200 805 lt 400 -205 mt 400 805 lt 0 300 mt 200 300 lt 20 slw stroke } def /VdblURsingle { 0 300 mt 400 300 lt 400 -205 lt 200 300 mt 200 -205 lt 20 slw stroke } def /VsingleURdbl { 300 -205 mt 300 400 lt 0 400 lt 0 200 mt 300 200 lt 20 slw stroke } def /VdblTleftdbl { 400 -205 mt 400 805 lt 200 -205 mt 200 200 lt 0 200 lt 0 400 mt 200 400 lt 200 805 lt 20 slw stroke } def /Vdbl { 400 -205 mt 400 805 lt 200 -205 mt 200 805 lt 20 slw stroke } def /VdblURdbl { 400 -205 mt 400 400 lt 0 400 lt 0 200 mt 200 200 lt 200 -205 lt 20 slw stroke } def /VdblLRdbl { 200 805 mt 200 400 lt 0 400 lt 400 805 mt 400 200 lt 0 200 lt 20 slw stroke } def /VdblLRsingle { 200 805 mt 200 300 lt 400 805 mt 400 300 lt 0 300 lt 20 slw stroke } def /VsingleLRdbl { 300 805 mt 300 200 lt 0 200 lt 0 400 mt 300 400 lt 20 slw stroke } def /VsingleURsingle { 300 -205 mt 300 300 lt 0 300 lt 20 slw stroke } def /VsingleLLsingle { 300 805 mt 300 300 lt 600 300 lt 20 slw stroke } def /HsingleTupsingle { 0 300 mt 600 300 lt 300 300 mt 300 805 lt 20 slw stroke } def /HsingleTdownsingle { 0 300 mt 600 300 lt 300 300 mt 300 -205 lt 20 slw stroke } def /VsingleTrightsingle { 300 -205 mt 300 805 lt 300 300 mt 600 300 lt 20 slw stroke } def /Hsingle { 0 300 mt 600 300 lt 20 slw stroke } def /VsingleXsingle { 300 -205 mt 300 805 lt 0 300 mt 600 300 lt 20 slw stroke } def /VsingleTrightdbl { 300 -205 mt 300 805 lt 300 200 mt 600 200 lt 300 400 mt 600 400 lt 20 slw stroke } def /VdblTrightsingle { 400 -205 mt 400 805 lt 200 -205 mt 200 805 lt 400 300 mt 600 300 lt 20 slw stroke } def /VdblLLdbl { 400 805 mt 400 400 lt 600 400 lt 200 805 mt 200 200 lt 600 200 lt 20 slw stroke } def /VdblULdbl { 400 -205 mt 400 200 lt 600 200 lt 200 -205 mt 200 400 lt 600 400 lt 20 slw stroke } def /HdblTupdbl { 0 200 mt 600 200 lt 0 400 mt 200 400 lt 200 805 lt 400 805 mt 400 400 lt 600 400 lt 20 slw stroke } def /HdblTdowndbl { 0 400 mt 600 400 lt 0 200 mt 200 200 lt 200 -205 lt 400 -205 mt 400 200 lt 600 200 lt 20 slw stroke } def /VdblTrightdbl { 200 -205 mt 200 805 lt 400 -205 mt 400 200 lt 600 200 lt 600 400 mt 400 400 lt 400 805 lt 20 slw stroke } def /Hdbl { 0 200 mt 600 200 lt 0 400 mt 600 400 lt 20 slw stroke } def /VdblXdbl { 400 -205 mt 400 200 lt 600 200 lt 600 400 mt 400 400 lt 400 805 lt 200 -205 mt 200 200 lt 0 200 lt 0 400 mt 200 400 lt 200 805 lt 20 slw stroke } def /HdblTupsingle { 0 200 mt 600 200 lt 0 400 mt 600 400 lt 300 400 mt 300 805 lt 20 slw stroke } def /HsingleTupdbl { 0 300 mt 600 300 lt 200 300 mt 200 805 lt 400 300 mt 400 805 lt 20 slw stroke } def /HdblTdownsingle { 0 200 mt 600 200 lt 0 400 mt 600 400 lt 300 200 mt 300 -205 lt 20 slw stroke } def /HsingleTdowndbl { 0 300 mt 600 300 lt 200 300 mt 200 -205 lt 400 300 mt 400 -205 lt 20 slw stroke } def /VdblLLsingle { 200 805 mt 200 300 lt 600 300 lt 400 805 mt 400 300 lt 20 slw stroke } def /VsingleLLdbl { 300 805 mt 300 200 lt 600 200 lt 300 400 mt 600 400 lt 20 slw stroke } def /VsingleULdbl { 300 -205 mt 300 400 lt 600 400 lt 300 200 mt 600 200 lt 20 slw stroke } def /VdblULsingle { 200 -205 mt 200 300 lt 600 300 lt 400 -205 mt 400 300 lt 20 slw stroke } def /VdblXsingle { 400 -205 mt 400 805 lt 200 -205 mt 200 805 lt 0 300 mt 600 300 lt 20 slw stroke } def /VsingleXdbl { 300 -205 mt 300 805 lt 0 200 mt 600 200 lt 0 400 mt 600 400 lt 20 slw stroke } def /VsingleLRsingle { 0 300 mt 300 300 lt 300 805 lt 20 slw stroke } def /VsingleULsingle { 300 -205 mt 300 300 lt 600 300 lt 20 slw stroke } def /allblack { 0 -205 mt 600 -205 lt 600 805 lt 0 805 lt cp fill } def /botblack { 0 -205 mt 600 -205 lt 600 300 lt 0 300 lt cp fill } def /leftblack { 0 -205 mt 300 -205 lt 300 805 lt 0 805 lt cp fill } def /rightblack { 300 -205 mt 600 -205 lt 600 805 lt 300 805 lt cp fill } def /topblack { 0 300 mt 600 300 lt 600 805 lt 0 805 lt cp fill } def /alpha { save .8 .8 scale (\141) _uS restore } def /beta { save .9 1 scale (\373) _uC restore } def /Gamma { save .8 .8 scale (\107) _uS restore } def /pi { save .8 .8 scale (\160) _uS restore } def /Sigma { save .8 .8 scale (\123) _uS restore } def /sigma { save .8 .8 scale (\163) _uS restore } def /mu { save .8 .8 scale (\155) _uS restore } def /tau { save .8 .8 scale (\164) _uS restore } def /Phi { save .75 1 scale (\106) _uS restore } def /theta { save .8 .8 scale (\161) _uS restore } def /Omega { save .6 .9 scale (\127) _uS restore } def /delta { save .8 .8 scale (\144) _uS restore } def /infinity { save .75 1 scale (\245) _uS restore } def /phi { save .8 .7 scale (\146) _uS restore } def /element { save .8 .8 scale (\316) _uS restore } def /intersection { save .5 .8 scale (\307) _uS restore } def /equivalence {(\272) _uS} def /plusminus {(\261) _uS} def /greaterequal {(\263) _uS} def /lessequal {(\243) _uS} def /integraltp { save .75 .75 scale (\363) _uS restore } def /integralbt { save .75 .75 scale (\365) _uS restore } def /divide {(\270) _uS} def /approxequal {(\273) _uS} def /degree {(\260) _uS} def /bullet {(\267) _uS} def /dotmath {(\327) _uS} def /radical { 100 300 mt 150 350 lt 350 0 lt 550 600 lt 25 slw stroke } def /eta { save .8 .8 scale (\150) _uS restore } def /squared { save 100 350 translate .45 .45 scale (2) _uC restore } def /block { 50 0 mt 50 400 lt 550 400 lt 550 0 lt fill } def /blank {} def end /BuildChar { 600 0 0 -200 600 800 setcachedevice exch begin Encoding exch get CharacterDefs exch get exec end } def /UniqueID 847667 def end /PCFont exch definefont pop %%EndResource %%BeginResource: font Times-Roman-Ogonki %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding OgonkiEncoding /OgonkiEncoding [ /.notdef /exclamdown /cent /sterling /fraction /yen /florin /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /endash /dagger /daggerdbl /periodcentered /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /questiondown /grave /circumflex /tilde /macron /ring /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /emdash /AE /ordfeminine /Oslash /OE /ordmasculine /ae /dotlessi /oslash /oe /threesuperior /thorn /twosuperior /threequarters /Eth /trademark /registered /onequarter /Thorn /logicalnot /plusminus /minus /onesuperior /copyright /mu /eth /brokenbar /onehalf /dotlessj /Euro /.notdef /space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section /dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent % 300 /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron /Eth /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcedilla /germandbls /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron /dbar /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcedilla /dotaccent ] def %%EndResource %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: encoding StandardEncoding /StandardEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 100 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 200 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section /currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /.notdef /questiondown % 300 /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef ] def %%EndResource %! % Add composite (i.e. accented) characters to any font % By J. Chroboczek % % -- code follows this line -- %%BeginResource: procset compose 0.8 0 % Copyright (c) 1996-1999 by J. Chroboczek % This code may be distributed under the terms of the % GNU Public License, either version 3 of the license, or (at your % option) any later version. /makeCompositeDict 20 dict def makeCompositeDict begin /nameUnique { % name nameUnique namexxxxxx dup length exch 1 index string cvs % length (name) 1 index 12 add string dup % length (name) (...) (...) 3 2 roll 0 exch putinterval % length (name...) dup 3 2 roll rand 12 string cvs putinterval } bind def /doMakeComposite { /compositeChars exch def /targetEncoding exch def /baseEncoding exch def /newfontname exch def /oldfontname exch def /oldfont oldfontname findfont def /newfont 20 dict def /oldFontMatrix oldfont /FontMatrix get def /oldFontBBox oldfont /FontBBox get cvlit def /oldfontcopy oldfont length dict def newfont begin /FontType 3 def /PaintType 0 def % not used /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox [ oldFontBBox 0 get oldFontBBox 1 get oldFontMatrix transform [1000 0 0 1000 0 0] transform oldFontBBox 2 get oldFontBBox 3 get oldFontMatrix transform [1000 0 0 1000 0 0] transform ] cvx def /StrokeWidth 0 def % not used /Encoding targetEncoding def /Decoding 256 dict def % invert base encoding vector Decoding begin 0 1 255 { dup baseEncoding exch get exch def } bind for end newfont /compositeChars compositeChars put /FontName newfontname def % make a copy of the original font, reencoding it oldfont oldfontcopy begin {1 index /FID ne {def} {pop pop} ifelse } bind forall end oldfontcopy /Encoding baseEncoding put oldfontname nameUnique oldfontcopy definefont 1000 scalefont /OriginalFont exch def /BuildChar % newfont n BuildChar - { exch begin % n /OriginalFont load setfont /Encoding load exch get % glyphName /compositeChars load dup 2 index known % glyphName compositeChars known-p { 1 index get % glyphName [ 65 x y 129 ] dup 0 get ( ) dup % glyphName [...] 65 ( ) ( ) 0 3 index put % glyphName [...] 65 (A) dup stringwidth setcharwidth 0 0 moveto show pop % glyphName [...] dup 1 get 1 index 2 get % glyphName [...] x y moveto % glyphName [...] 3 get ( ) dup 3 2 roll % glyphName ( ) ( ) 129 0 exch put % glyphName (') show % glyphName } { pop /Decoding load % glyphName Decoding dup 2 index known % glyphName Decoding known-p { exch get } { pop pop 0 } ifelse % n' ( ) dup 0 3 index put dup % n' (A) (A) stringwidth setcharwidth 0 0 moveto show % n' } ifelse pop end } bind def end % newfont newfontname newfont definefont pop } def % doMakeComposite /fillEuro { % w h -- gsave exch 1000 div exch 1000 div scale 955.852 232.172 moveto 904.495 180.815 lineto 829.454 117.848 734.626 83.333 636.667 83.333 curveto 406.667 83.333 220 270 220 500 curveto 220 730 406.667 916.667 636.667 916.667 curveto 759.831 916.667 876.684 862.177 955.852 767.828 curveto 988.474 855.291 lineto 894.851 947.996 768.422 1000 636.667 1000 curveto 360.667 1000 136.667 776 136.667 500 curveto 136.667 224 360.667 0 636.667 0 curveto 753.23 0 866.13 40.725 955.852 115.135 curveto closepath fill 869.037 541.667 moveto 901.025 625 lineto 31.989 625 lineto 0 541.667 lineto closepath fill 805.059 375 moveto 837.048 458.333 lineto 31.989 458.333 lineto 0 375 lineto closepath fill grestore } bind def /makeEuroCharstring { % w h -- charstring [ /pop cvx % w h mark pop 3 index 0 0 0 % w h mark pop w 0 0 0 7 index 7 index /setcachedevice cvx % w h mark pop w 0 0 0 w h setcachedevice 10 index 10 index /fillEuro load /exec cvx ] cvx bind 3 1 roll pop pop } def /doEurifyFont { % oldname newname -- exch findfont dup dup % newname dict dict dict /FontMatrix get matrix invertmatrix % newname dict dict m {} forall pop pop [ 5 1 roll 0 0] makefont setfont % newnamedict 0 0 moveto (5) stringwidth pop % newname dict w (M) false charpath pathbbox 4 1 roll pop pop pop % newnamedict w h 3 2 roll % newname w h dict dup length dict dup 3 1 roll begin % newname w h newdict {1 index /FID ne {def} {pop pop} ifelse} forall CharStrings dup length 1 add dict dup 3 1 roll begin % newnamew h newdict newdict' {def} forall /Euro % newname w h newdict newdict' /Euro 4 index 4 index makeEuroCharstring def end % newname w h newdict newdict' /CharStrings exch def end 3 1 roll pop pop % newname dict definefont pop } bind def end % makeCompositeDict % oldfontname newfontname baseEncoding targetEncoding compositeChars -- /makeComposite { makeCompositeDict begin doMakeComposite end } bind def % oldfontname newfontname /eurifyFont { makeCompositeDict begin doEurifyFont end } bind def %%EndResource %! % Automatically generated by the Ogonkify package % Do not modify % -- code follows this line -- %%BeginResource: font Times-Roman-Ogonki /Times-Roman /Times-Roman-Ogonki OgonkiEncoding StandardEncoding 83 dict dup /Agrave [65 195 212 27] put dup /Aring [65 185 187 31] put dup /Atilde [65 195 212 29] put dup /Ecircumflex [69 139 212 28] put dup /Egrave [69 139 212 27] put dup /Idieresis [73 0 212 168] put dup /Igrave [73 0 212 27] put dup /Ntilde [78 195 212 29] put dup /Ograve [79 195 212 27] put dup /Otilde [79 195 212 29] put dup /Ucircumflex [85 195 212 28] put dup /Ugrave [85 195 212 27] put dup /Ydieresis [89 195 212 168] put dup /agrave [97 56 0 27] put dup /aring [97 56 0 31] put dup /atilde [97 56 0 29] put dup /ecircumflex [101 56 0 28] put dup /egrave [101 56 0 27] put dup /idieresis [136 -27 0 168] put dup /igrave [136 -27 0 27] put dup /ntilde [110 84 0 29] put dup /ograve [111 84 0 27] put dup /otilde [111 84 0 29] put dup /ucircumflex [117 84 0 28] put dup /ugrave [117 84 0 27] put dup /ydieresis [121 84 0 168] put dup /abreve [97 55 0 162] put dup /Abreve [65 194 223 162] put dup /aogonek [97 209 0 178] put dup /Aogonek [65 465 0 178] put dup /cacute [99 70 0 180] put dup /Cacute [67 212 212 180] put dup /ccaron [99 69 0 183] put dup /Ccaron [67 196 212 183] put dup /dbar [100 200 300 173] put dup /Dbar [208 0 0 160] put dup /dcaron [100 426 75 39] put dup /Dcaron [68 194 216 183] put dup /ecaron [101 55 0 183] put dup /Ecaron [69 139 214 183] put dup /edotaccent [101 61 0 255] put dup /Edotaccent [69 154 212 255] put dup /eogonek [101 142 9 178] put dup /Eogonek [69 320 0 178] put dup /gbreve [103 84 0 162] put dup /Gbreve [71 195 212 162] put dup /Idotaccent [73 0 212 255] put dup /iogonek [105 12 0 178] put dup /Iogonek [73 67 0 178] put dup /lacute [108 -5 216 180] put dup /Lacute [76 139 216 180] put dup /lcaron [108 192 75 39] put dup /Lcaron [76 250 52 39] put dup /nacute [110 90 0 180] put dup /Nacute [78 190 212 180] put dup /ncaron [110 83 0 183] put dup /Ncaron [78 194 214 183] put dup /ohungarumlaut [111 83 0 189] put dup /Ohungarumlaut [79 194 214 189] put dup /racute [114 22 0 180] put dup /Racute [82 210 216 180] put dup /rcaron [114 0 0 183] put dup /Rcaron [82 167 216 183] put dup /sacute [115 20 0 180] put dup /Sacute [83 100 212 180] put dup /scedilla [115 28 0 184] put dup /Scedilla [83 112 0 184] put dup /tcedilla [116 53 0 184] put dup /Tcedilla [84 197 0 184] put dup /tcaron [116 214 0 39] put dup /Tcaron [84 139 216 183] put dup /uhungarumlaut [117 83 0 189] put dup /Uhungarumlaut [85 194 214 189] put dup /umacron [117 81 0 30] put dup /Umacron [85 205 212 30] put dup /uogonek [117 236 5 178] put dup /Uogonek [85 287 5 178] put dup /uring [117 83 0 31] put dup /Uring [85 194 179 31] put dup /zacute [122 60 0 180] put dup /Zacute [90 120 212 180] put dup /zdotaccent [122 50 0 255] put dup /Zdotaccent [90 140 212 255] put makeComposite %%EndResource %%EndResource % Initialize page description variables. /sh 595 def /sw 842 def /llx 24 def /urx 818 def /ury 571 def /lly 24 def /#copies 1 def /th 15.000000 def /fnfs 11 def /bfs 7.542439 def /cw 4.525463 def % Dictionary for ASCII support /asciidict 4 dict begin /fCourier ASCIIEncoding /Courier reencode_font /fCourier-Bold ASCIIEncoding /Courier-Bold reencode_font /fHelvetica-Bold ASCIIEncoding /Helvetica-Bold reencode_font /fTimes-Roman ASCIIEncoding /Times-Roman reencode_font currentdict end def % Dictionary for HPRoman support /hpdict 4 dict begin /fCourier HPRomanEncoding /Courier reencode_font /fCourier-Bold HPRomanEncoding /Courier-Bold reencode_font /fHelvetica-Bold HPRomanEncoding /Helvetica-Bold reencode_font /fTimes-Roman HPRomanEncoding /Times-Roman reencode_font currentdict end def % Dictionary for IBM-CP437 support /ibm-cp437dict 4 dict begin /fCourier IBM-CP437Encoding /PCFont reencode_font /fCourier-Bold IBM-CP437Encoding /PCFont reencode_font /fHelvetica-Bold IBM-CP437Encoding /PCFont reencode_font /fTimes-Roman IBM-CP437Encoding /PCFont reencode_font currentdict end def % Dictionary for IBM-CP850 support /ibm-cp850dict 4 dict begin /fCourier IBM-CP850Encoding /Courier reencode_font /fCourier-Bold IBM-CP850Encoding /Courier-Bold reencode_font /fHelvetica-Bold IBM-CP850Encoding /Helvetica-Bold reencode_font /fTimes-Roman IBM-CP850Encoding /Times-Roman reencode_font currentdict end def % Dictionary for ISO-8859-1 support /iso1dict 6 dict begin /fCourier ISO-8859-1Encoding /Courier reencode_font /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font currentdict end def % Dictionary for ISO-8859-10 support /iso10dict 4 dict begin /fCourier ISO-8859-10Encoding /Courier-Ogonki reencode_font /fCourier-Bold ISO-8859-10Encoding /Courier-Bold-Ogonki reencode_font /fHelvetica-Bold ISO-8859-10Encoding /Helvetica-Bold-Ogonki reencode_font /fTimes-Roman ISO-8859-10Encoding /Times-Roman-Ogonki reencode_font currentdict end def % Dictionary for ISO-8859-2 support /iso2dict 4 dict begin /fCourier ISO-8859-2Encoding /Courier-Ogonki reencode_font /fCourier-Bold ISO-8859-2Encoding /Courier-Bold-Ogonki reencode_font /fHelvetica-Bold ISO-8859-2Encoding /Helvetica-Bold-Ogonki reencode_font /fTimes-Roman ISO-8859-2Encoding /Times-Roman-Ogonki reencode_font currentdict end def % Dictionary for ISO-8859-3 support /iso3dict 4 dict begin /fCourier ISO-8859-3Encoding /Courier-Ogonki reencode_font /fCourier-Bold ISO-8859-3Encoding /Courier-Bold-Ogonki reencode_font /fHelvetica-Bold ISO-8859-3Encoding /Helvetica-Bold-Ogonki reencode_font /fTimes-Roman ISO-8859-3Encoding /Times-Roman-Ogonki reencode_font currentdict end def % Dictionary for ISO-8859-4 support /iso4dict 4 dict begin /fCourier ISO-8859-4Encoding /Courier-Ogonki reencode_font /fCourier-Bold ISO-8859-4Encoding /Courier-Bold-Ogonki reencode_font /fHelvetica-Bold ISO-8859-4Encoding /Helvetica-Bold-Ogonki reencode_font /fTimes-Roman ISO-8859-4Encoding /Times-Roman-Ogonki reencode_font currentdict end def % Dictionary for ISO-8859-9 support /iso9dict 4 dict begin /fCourier ISO-8859-9Encoding /Courier-Ogonki reencode_font /fCourier-Bold ISO-8859-9Encoding /Courier-Bold-Ogonki reencode_font /fHelvetica-Bold ISO-8859-9Encoding /Helvetica-Bold-Ogonki reencode_font /fTimes-Roman ISO-8859-9Encoding /Times-Roman-Ogonki reencode_font currentdict end def % Dictionary for Macintosh support /macdict 4 dict begin /fCourier MacintoshEncoding /Courier reencode_font /fCourier-Bold MacintoshEncoding /Courier-Bold reencode_font /fHelvetica-Bold MacintoshEncoding /Helvetica-Bold reencode_font /fTimes-Roman MacintoshEncoding /Times-Roman reencode_font currentdict end def % Dictionary for MS-CP1250 support /ms-cp1250dict 4 dict begin /fCourier MS-CP1250Encoding /Courier-Ogonki reencode_font /fCourier-Bold MS-CP1250Encoding /Courier-Bold-Ogonki reencode_font /fHelvetica-Bold MS-CP1250Encoding /Helvetica-Bold-Ogonki reencode_font /fTimes-Roman MS-CP1250Encoding /Times-Roman-Ogonki reencode_font currentdict end def /bgcolor [ 0 0 0 ] def /bg false def /ul false def /bx false def % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def /fSymbol /Symbol findfont def /hm fnfs 0.25 mul def /pw cw 86.400000 mul def /ph 503.080648 th add def /pmw urx llx sub pw 2 mul sub 1 div def /pmh 0 def /v 0 def /x [ 0 dup pmw add pw add ] def /y [ pmh ph add 0 mul ph add dup ] def /scx sw 2 div def /scy sh 2 div def /snx urx def /sny lly 2 add def /dx llx def /dy sny def /fnx scx def /fny dy def /lx snx def /ly ury fnfs 0.8 mul sub def /sx 5 def /tab 8 def /x0 0 def /y0 0 def %%EndSetup %%Page: (1-2) 1 %%BeginPageSetup /pagesave save def sh 0 translate 90 rotate %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 3.167824 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (ascii) L n end % of iso1dict asciidict begin 0 T () L (This is a pure ASCII file, written to test the ASCII encoding) p n 0 T (in a2ps. Character with the high bit set, \(such as M-i, M-`, M-t, M-o\)) N (5) # (are not printable, and are escaped.) N 0 T () N 0 T () S (latin1) L n end % of asciidict iso1dict begin 0 T () L (Ceci est un texte en fran\347ais accentu\351, comme dans ao\373t, ou) p n (10) # (d\351cembre, et non pas ao\371t et d\350cembre...) N 0 T () N 0 T () S (latin2) L n end % of iso1dict iso2dict begin 0 T () L (dok\261d DOK\241D pami\352tasz PAMI\312TASZ \263awka \243AWKA na\346pa\346 NA\306PA\306 ga\266nie) p n (15) # (GA\246NIE ki\266\346 KI\246\306 mr\363wka MR\323WKA wska\274nik WSKA\254NIK mo\277na MO\257NA dok\261d) N 0 T () S (DOK\241D pami\352tasz PAMI\312TASZ \263awka \243AWKA na\346pa\346 NA\306PA\306 ga\266nie GA\246NIE ki\266\346) K n 0 T () S (KI\246\306 mr\363wka MR\323WKA wska\274nik WSKA\254NIK mo\277na MO\257NA dok\261d DOK\241D pami\352tasz) p n 0 T (PAMI\312TASZ \263awka \243AWKA na\346pa\346 NA\306PA\306 ga\266nie GA\246NIE ki\266\346 KI\246\306 mr\363wka) N 0 T (MR\323WKA wska\274nik WSKA\254NIK mo\277na MO\257NA dok\261d DOK\241D pami\352tasz PAMI\312TASZ) N (20) # (\263awka \243AWKA na\346pa\346 NA\306PA\306 ga\266nie GA\246NIE ki\266\346 KI\246\306 mr\363wka MR\323WKA) N 0 T (wska\274nik WSKA\254NIK mo\277na MO\257NA) N 0 T () N 0 T () S (latin3) L n end % of iso2dict iso3dict begin (25) # () L (dokM-1d DOKM-!D pami\352tasz PAMI\312TASZ \263awka \243AWKA na\346pa\346 NA\306PA\306 ga\266nie) p n 0 T (GA\246NIE ki\266\346 KI\246\306 mr\363wka MR\323WKA wskaM- Pt_b.Ai_xmin\) && \(Pt_a.Ai_ymax > Pt_b.Ai_ymin\)\);) N (};) N (function) K n (F_JS_existe_cle \(Pc_cleA:string, Pc_cleB:string\):boolean;) p n ( ) S (function) K ( ) p (body) K ( F_JS_existe_cle \(Pc_cleA:string, Pc_cleB:string\):boolean) p n ({) N (#include) K ( ") p (varextbis.h) str (") p n () N ( Handle poign_root, poign_objet_final, *poign_cle;) N ( Scan *scan_index;) N ( Predicate *predicat;) N ( ) S (void) k ( *index_id;) p n ( ) S (o2) K ( string cle = ") p (index-racine) str (";) p n () N (/************** Fermeture du scan index et retour ******/) c n ( o2_col_scan_close \(scan_index\);) p n (/*printf\("sortie F_Lecture_index\\n"\);*/) c n ( printf \(") p ( ===> feuille %s ok ...\\n) str (", Pc_cleA + Pc_cleB\);) p n ( ) S (return) K ( true;) p n (};) N () N (function) K n (F_JS_get_quadrant \(Pc_cle:string, Pt_rem:Tt_rem_oid\):Tt_rem_oid;) p n ( ) S (function) K ( ) p (body) K ( F_JS_get_quadrant \(Pc_cle:string,) p n () S 8 T () S 16 T () S 24 T () S 32 T ( Pt_rem:Tt_rem_oid\):Tt_rem_oid) N ({) N ( ) S (o2) K ( integer dx = \(Pt_rem.Ai_xmax - Pt_rem.Ai_xmin\) / 2;) p n ( ) S (o2) K ( integer dy = \(Pt_rem.Ai_ymax - Pt_rem.Ai_ymin\) / 2;) p n ( ) S (o2) K ( integer i;) p n ( ) S (for) K ( \(i = 0; i < count \(Pc_cle\); i++\)) p n ( {) N ( ) S (switch) K ( \(Pc_cle[i]\)) p n () S 8 T ({) N () S 8 T () S (default) K (:) p n () S 8 T ( printf \(") S (Nom de feuille \(%s\) erronee !!!\\n) str (", Pc_cle\);) p n () S 8 T (}) N ( dx = dx / 2;) N ( dy = dy / 2;) N ( }) N ( ) S (return) K ( \(Pt_rem\);) p n (};) N () N () N (function) K ( F_JS_join_f \(Pc_cleA:string,) p n () S 8 T () S 16 T ( Pt_remA:Tt_rem_oid, Pc_cleB:string, Pt_remB:Tt_rem_oid\);) N (function) K ( ) p (body) K n (F_JS_join_f \(Pc_cleA:string,) p n () S 8 T ( Pt_remA:Tt_rem_oid, Pc_cleB:string, Pt_remB:Tt_rem_oid\)) N (essai2.o2c) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ({) p n (#include) K ( ") p (varextbis.h) str (") p 24 T () S 32 T () S (/* contexte general */) c n () p n ( printf \(") S (tente \(%s,%s\) ...) str (", Pc_cleA, Pc_cleB\);) p n ( ) S (if) K ( \(F_JS_small_theta \(Pt_remA, Pt_remB\)\)) p n ( {) N ( printf \(") S (===> ok) str ("\);) p n ( Ns_JS_jointure_cles += set \(tuple \(cleA: Pc_cleA, cleB:Pc_cleB\)\);) N ( }) N ( printf \(") S (\\n) str ("\);) p n ( ) S (return) K (;) p n (};) N (;) N () N (program) K ( private) p n (P_JS_Lance_jointure \(Pc_quad_linA:string, Pc_quad_linB:string\)) N ( ) S (in) K ( ) p (application ) K (Index_lineaire;) L n ( ) p (transaction body ) K (P_JS_Lance_jointure \(Pc_quad_linA:string,) L n () S 8 T () S 16 T () S 24 T () S 32 T () S 40 T ( Pc_quad_linB:string\)) N ( ) S ( in application ) K (Index_lineaire) L n ( {) p n (#include) K ( ") p (varextbis.h) str (") p n () N ( ) S (o2) K ( Tt_def_index t_def_idxA;) p n ( ) S (o2) K ( Tt_def_index t_def_idxB;) p n ( ) S (o2) K ( Tt_def_index def_idx;) p n () N ( ) S (o2) K ( Tt_rem_oid t_remA;) p n ( ) S (o2) K ( Tt_rem_oid t_remB;) p n () N ( };) N () N (program) K ( ) p (public) K n (P_JS_select \(Pc_noeud:string\)) p n ( ) S (in) K ( ) p (application ) K (Index_lineaire;) L n ( ) p (transaction body ) K (P_JS_select \(Pc_noeud:string\)) L n ( ) S ( in application ) K (Index_lineaire) L n ( {) p n ( ) S (o2) K ( set \(C_Feuille\) Tree = set \(\);) p n ( ) S (o2) K ( C_Feuille f = nil;) p n ( ) S (o2) K ( integer reso2q = 0;) p n ( ) S (o2) K ( Tt_rem_oid rem, quadrant;) p n ( ) S (o2) K ( set \(Tt_rem_oid\) Resultat = set \(\);) p n ( ) S (o2) K ( Tt_rem_oid Po_objet = Nt_rem_oid;) p n ( ) S (o2) K ( Tt_def_index Po_index, idx;) p n ( ) S (for) K ( \(idx ) p (in) K ( Nt_indexes.Al_def_index\)) p n () S 8 T ( ) S (if) K ( \(idx.Ao_index == No_quad_lin01\)) p n () S 8 T ( Po_index = idx;) N () N (/* Recuperation des feuilles de l'arbre */) c n ( reso2q = ) p (o2query) K ( \(Tree, ") p (select f from f in $1) str (", Po_index.Ao_index\);) p n ( ) S (if) K ( \(reso2q\)) p n () S 8 T ( {) N () S 8 T ( printf \(") S (Index vide ou inexistant ...!!!) str ("\);) p n (/* return set\(\);*/) c n () p 8 T ( ) S (abort) K (;) p n () S 8 T ( }) N () N ( ) S (for) K ( \(f ) p (in) K ( Tree\)) p n ( ) S (if) K ( \(F_JS_small_theta \(Po_objet, rem\)) p n ( Resultat += set \(rem\);) N ( Ns_rem_oid = Resultat;) N (/*return Resultat;*/) c n ( };) p n () N (commit) K (;) p n (essai2.o2c) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (quit) K (;) p n (essai2.o2c) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/ex1.ps0000644000000000000000000000331014233473143012742 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (-- file: .../asn1specs/ex1.asn1) c n (--) N (-- This is an example ASN.1 module used in the documentation) N (--) N (-- MS 92) N (--) N (-- Initial checkin.) N (--) N (-- Revision 1.2 1997/02/16 20:25:22 rj) N (-- check-in of a few cosmetic changes) N (--) N (-- Revision 1.1 1994/10/08 05:41:32 rj) N (-- initial check-in.) N (--) N () p n (EX1 ) S (DEFINITIONS) K ( ::=) p n (BEGIN) K n () p n (anOidVal ) S (OBJECT) K ( ) p (IDENTIFIER) K ( ::= { ) p (joint-iso-ccitt) k ( 40 foobar\(29\) }) p n (theSameOidVal ) S (OBJECT) K ( ) p (IDENTIFIER) K ( ::= { 2 40 29 }) p n (anIntVal ) S (INTEGER) K ( ::= 1) p n (aBoolVal ) S (BOOLEAN) K ( ::= ) p (TRUE) K n () p n () N (NULL) K ( ::= identifier ) p (END) K n () p n (T1 ::= ) S (SEQUENCE) K n ({) p n ( ) S (INTEGER) K ( ) p (OPTIONAL) K (,) p n ( ) S (OCTET) K ( ) p (STRING) K ( ) p (OPTIONAL) K (,) p n ( ) S (ENUMERATED) K ( { a\(0\), b\(1\), c\(2\) },) p n ( ) S (SEQUENCE) K ( ) p (OF) K ( ) p (INTEGER) K (,) p n ( ) S (SEQUENCE) K ( { id ) p (OBJECT) K ( ) p (IDENTIFIER) K (, value ) p (OCTET) K ( ) p (STRING) K ( },) p n ( ) S (CHOICE) K ( { ) p (INTEGER) K (, ) p (OBJECT) K ( ) p (IDENTIFIER) K ( }) p n ( DESCRIPTION ") S (This is a string with a quote "" in it.) str (") p n (}) N () N (END) K n (ex1.asn1) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/ex_PSGETRS.ps0000644000000000000000000003056314233473143014102 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (! Gilles GRASSEAU \(CNRS/IDRIS - France\) - Nov. 1996) c n () p n (program) K ( ) p (test_psgetrs) L n (!-------------------------------------------------------------------) c n (! Description : ) N (! Exemple de factorisation LU puis de resolution du systeme : ) N (! A * x = b , ou A est une matrice \(5,5\). ) N (!) N (! Principe :) N (! Les matrice/vecteurs A, x et b sont globaux et les matrices/ ) N (! vecteurs dist_a, dist_x et dist_b sont respectivement les ) N (! matrices/vecteurs distribuees sur la grille de proc. 2x2. ) N (! La repartition de la matrice se fait par blocs cycliques 2x2 ) N (! \(2 elements par ligne et 2 elements par colonne - ) N (! voir Exemple de repartition d'une matrice\). ) N (! La repartition des vecteurs se fait par blocs cycliques 2x1 ) N (! \(le processeur logique \(0,0\) possede les blocs {x\(1:2\) ,x\(5\)} ) N (! et le processeur logique \(1,0\) possede le bloc x\(3:4\) \). ) N (!) N (! Algorithme :) N (! 1 - Initialisation du BLACS et autres.) N (! 2 - Distribution de la matrice A et du vecteur x vers les blocs ) N (! locaux dist_a et dist_x de chaque processeur logique.) N (! \(voir Distribution de matrice\) ) N (! On a simule la situation ou seul le processeur \(0,0\) possede ) N (! la matrice et les vecteurs globaux A, x et b. ) N (! 3 - Factorisation LU et resolution.) N (! 4 - Recuperation et impression des resultats par le processeur) N (! logique \(0,0\).) N (!) N (! Remarque :) N (! 1 - Le tableau de travail 'work' a ete dimensionne a la valeur) N (! donnee par INITBUFF pour psgetrs \( > au buffer de psgetrf\).) N (! 2 - La liste des pivots locaux 'dist_piv' est dimensionnee a ) N (! 'n_max' + 'rb_size'.) N (!) N (!-------------------------------------------------------------------) N ( ) p (implicit) K ( ) p (none) K n () p n ( ) S (integer) K ( :: pe, npes ) p (! Identificateur du processeur et) c n ( ) p (! nombre de processeurs physiques.) c n () p n ( ) S (integer) K (, ) p (parameter) K (:: nprow=2, npcol=2 ) p (! Grille de proc. logiques.) c n ( ) p (integer) K ( :: prow, pcol ) p (! Coord. de mon proc. logique) c n () p n ( ) S (integer) K ( :: icntxt ) p (! Contexte \(grille de procs\)) c n ( ) p (integer) K (, ) p (dimension) K (\(8\) :: desc_a ) p (! Descripteur de la matrice.) c n ( ) p (integer) K (, ) p (dimension) K (\(8\) :: desc_x ) p (! Descripteur des vecteurs.) c n () p n ( ) S (integer) K (, ) p (parameter) K ( :: n=5 ) p (! Ordre matrices/vecteurs.) c n ( ) p (real) K (, ) p (dimension) K (\(n,n\) :: a ) p (! Matrice globale a.) c n ( ) p (real) K (, ) p (dimension) K (\(n\) :: x ) p (! Vecteur resultat x\(global\)) c n ( ) p (real) K (, ) p (dimension) K (\(n\) :: b ) p (! Vecteur b \(global\)) c n () p n ( ) S (integer) K (, ) p (parameter) K ( :: n_max=3 ) p (! Dim. des matrices/vecteurs) c n ( ) p (! locaux.) c n ( ) p (real) K (, ) p (dimension) K (\(n_max,n_max\):: dist_a ) p (! Matrice locale.) c n ( ) p (real) K (, ) p (dimension) K (\(n_max\) :: dist_x ) p (! Vecteur local.) c n ( ) p (real) K (, ) p (dimension) K (\(n_max\) :: dist_b ) p (! Vecteur local.) c n () p n ( ) S (integer) K (, ) p (parameter) K ( :: rb_size=2, & ) p (! Taille des blocs lignes ) c n ( cb_size=2 ) p (! et colonnes.) c n () p n ( ) S (integer) K (, ) p (dimension) K (\(n_max+rb_size\):: dist_piv ) p (! Vecteur local des) c n ( ) p (! pivots.) c n () p n (ex_PSGETRS.f90) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (integer) K ( :: info, i, j) p n () N ( ) S (data) K ( a/ 0.5, 0.0, 2.3, 0.0,-2.6, & ) p (! Coefficients de la matrice ) c n ( 0.0, 0.5,-1.4, 0.0,-0.7, & ) p (! globale A.) c n ( 2.3,-1.4, 0.5, 0.0, 0.0, &) p n ( 0.0, 0.0, 0.0, 1.0, 0.0, &) N ( -2.6,-0.7, 0.0, 0.0, 0.5/ ) N () N ( ) S (data) K ( b/-2.1, 0.3, 1.5, 0.0,-1.5/ ) p (! Coefficients du vecteur global) c n () p n () N ( ) S (integer) K (,) p (parameter) K (:: minb=rb_size, maxb=minb ) p (! Calcul de l'espace ) c n ( ) p (integer) K (,) p (parameter) K (:: minp=nprow, maxd=n ) p (! de travail) c n ( ) p (integer) K (,) p (parameter) K (:: wsize=2*maxb*\(\(\(maxd/minb\)/minp\)*maxb+maxb\)*8) p n ( ) S (real) K (, ) p (dimension) K (\(wsize/8\) :: work) p n () N (! Initialisation BLACS et autres.) c n (!--------------------------------------) N ( ) p (call) K ( ) p (initbuff) l (\(work,wsize\) ) p (! Init. des buffers internes au PBLAS) c n ( ) p (call) K ( ) p (blacs_pinfo) l (\(pe, npes\) ) p (! Init. mon PE, nbre de procs physiques) c n ( ) p (call) K ( ) p (blacs_gridinit) l (\(icntxt, & ) p (! Init. Grille de proc. logiques.) c n ( ') p (C) str (', nprow, npcol\)) p n () N ( ) S (call) K ( ) p (blacs_gridinfo) l (\(icntxt, & ) p (! Mes coord. dans la grille ) c n ( nprow, npcol, prow, pcol\) ) p (! de processeurs logiques.) c n () p n ( ) S (call) K ( ) p (descinit) l (\(desc_a, n, n, & ) p (! Init. descripteur de la ) c n ( rb_size, cb_size, 0, 0, & ) p (! matrice a) c n ( icntxt, n_max, info\)) p n ( ) S (if) K ( \(info) p (.lt.) K (0\) ) p (stop) K ( ') p (descinit) str (') p n () N ( ) S (call) K ( ) p (descinit) l (\(desc_x, n, 1, & ) p (! Init. descripteur du vecteur x) c n ( rb_size, 1, 0, 0, &) p n ( icntxt, n_max, info\) &) N ( ) S (if) K ( \(info) p (.lt.) K (0\) ) p (stop) K ( ') p (descinit) str (') p n () N (! Distribution de la matrice 'a' vers la matrice distribuee 'dist_a'.) c n (!--------------------------------------------------------------------) N ( ) p (call) K ( ) p (distribue) l (\(icntxt, a, n, dist_a, n_max, prow, pcol\)) p n () N (! Distribution du vecteur 'b' sur le vecteur distribue 'dist_b'.) c n (!------------------------------------------------------------------) N ( ) p (if) K ( \(\(prow==0\)) p (.and.) K (\(pcol==0\)\) ) p (then) K n ( dist_b\(1:2\) = b\(1:2\) ) p (! copie de b\(1:2\) dans proc\(0,0\)) c n ( ) p (call) K ( ) p (sgesd2d) l (\(icntxt,2,1, & ) p (! b\(3:5\) envoie au proc \(1,0\)) c n ( b\(3\),n,1,0\) ) p n ( dist_b\(3\) = b\(5\) ) S (! copie de b\(5\) dans proc \(0,0\)) c n ( ) p (end) K ( ) p (if) K n ( ) p (if) K ( \(\(prow==1\)) p (.and.) K (\(pcol==0\)\) ) p (then) K n ( ) p (call) K ( ) p (sgerv2d) l (\(icntxt, 2,1, dist_b\(1\), & ) p (! reception b\(3:5\) dans ) c n ( n_max, 0, 0\) ) p (! dist_b\(1:2\).) c n ( ) p (end) K ( ) p (if) K n () p n (! Calculs) c n (!----------------------------------) N ( ) p (call) K ( ) p (PSGETRF) l (\(n, n, dist_a, 1, 1, desc_a, &) p n ( dist_piv, info\)) N ( ) S (if) K ( \(info /= 0\) ) p (print) K ( *,') p (Erreur dans la factorisation : ) str (',info) p n () N ( ) S (call) K ( ) p (PSGETRS) l (\( ') p (N) str (', n, 1, dist_a, 1, 1, desc_a, &) p n ( dist_piv, dist_b, 1, 1, desc_x, info\)) N ( ) S (if) K ( \(info /= 0\) ) p (print) K ( *,') p (Erreur dans la resolution : ) str (',info) p n () N (! Recuperation des resultats 'dist_b' -> 'x') c n (!----------------------------------------------) N ( ) p (if) K ( \(\(prow==1\)) p (.and.) K (\(pcol==0\)\) ) p (then) K n (ex_PSGETRS.f90) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (call) K ( ) p (sgesd2d) l (\(icntxt,2,1,dist_b\(1\), & ) p (! envoie de dist_b\(1:2\) ) c n ( n_max, 0, 0\) ) p (! au proc \(0,0\)) c n ( ) p (end) K ( ) p (if) K n ( ) p (if) K ( \(\(prow==0\)) p (.and.) K (\(pcol==0\)\) ) p (then) K n ( x\(1:2\) = dist_b\(1:2\) ) p (! copie de dist_b\(1:2\) dans proc\(0,0\)) c n ( ) p (call) K ( ) p (sgerv2d) l (\(icntxt,2,1, & ) p (! reception dist_b\(1:2\) dans x\(3:4\)) c n ( x\(3\), n, 1, 0\)) p n ( x\(5\) = dist_b\(3\) ) S (! copie de dist_b\(3\) dans proc \(0,0\)) c n ( ) p (end) K ( ) p (if) K n () p n (! Impression des resultats) c n (!-----------------------------) N ( ) p (if) K ( \(\(prow==0\)) p (.and.) K (\(pcol==0\)\) ) p (then) K n ( ) p (write) K (\(6,*\) ') p ( resultats :) str (') p n ( ) S (write) K (\(6,') p (\(1x,5F5.1\)) str ('\) \(x\(j\),j=1,n\)) p n ( ) S (end) K ( ) p (if) K n () p n (end) K ( program) p n () N (!--------------------------------------------------------------------) c n (! Distribution de la matrice 'x' vers la matrice distribuee 'dist_x'.) N (!--------------------------------------------------------------------) N (subroutine) K ( ) p (distribue) L (\( icntxt, x, n, dist_x, n_max, prow, pcol\)) p n ( ) S (implicit) K ( ) p (none) K n ( ) p (integer) K ( :: icntxt ) p (! Contexte \(grille de procs\)) c n ( ) p (integer) K ( :: n ) p (! Ordre de la matrice X) c n ( ) p (integer) K ( :: n_max ) p (! Ordre de la matrice locale.) c n ( ) p (real) K (,) p (dimension) K (\(n,n\):: x ) p (! Matrice globale X.) c n ( ) p (real) K (,) p (dimension) K (\(n_max,n_max\):: dist_x ) p (! Matrice locale.) c n ( ) p (integer) K ( :: prow, pcol ) p (! Coord. de mon proc. logique) c n () p n ( ) S (if) K ( \(\(prow == 0\) ) p (.and.) K ( \(pcol == 0\)\) ) p (then) K ( ) p (! Emission par le ) c n ( ) p (! processeur \(0,0\)) c n ( ) p (call) K ( ) p (sgesd2d) l (\( icntxt, 2,2, x\(1,3\), n, 0, 1\)) p n ( ) S (call) K ( ) p (sgesd2d) l (\( icntxt, 2,2, x\(3,1\), n, 1, 0\)) p n ( ) S (call) K ( ) p (sgesd2d) l (\( icntxt, 2,2, x\(3,3\), n, 1, 1\)) p n ( ) S (call) K ( ) p (sgesd2d) l (\( icntxt, 2,1, x\(3,5\), n, 1, 0\)) p n ( ) S (call) K ( ) p (sgesd2d) l (\( icntxt, 1,2, x\(5,3\), n, 0, 1\)) p n ( ) S (end) K ( ) p (if) K n () p n ( ) S (if) K ( \(\(prow == 0\) ) p (.and.) K ( \(pcol == 0\)\) ) p (then) K ( ) p (! Copie des blocs ) c n ( dist_x\(1:2,1:2\) = x\(1:2,1:2\) ) p (! appartenant au proc\(0,0\)) c n ( dist_x\(1:2,3\) = x\(1:2,5\)) p n ( dist_x\(3,1:2\) = x\(5,1:2\)) N ( dist_x\(3,3\) = x\(5,5\)) N ( ) S (end) K ( ) p (if) K n ( ) p (! Reception par les ) c n ( ) p (if) K ( \(\(prow == 0\) ) p (.and.) K ( \(pcol == 1\)\) ) p (then) K ( ) p (! autres processeurs.) c n ( ) p (call) K ( ) p (SGERV2D) l (\( icntxt, 2,2, dist_x\(1,1\), n_max, 0, 0\)) p n ( ) S (call) K ( ) p (SGERV2D) l (\( icntxt, 1,2, dist_x\(3,1\), n_max, 0, 0\)) p n ( ) S (end) K ( ) p (if) K n ( ) p (if) K ( \(\(prow == 1\) ) p (.and.) K ( \(pcol == 0\)\) ) p (then) K n ( ) p (call) K ( ) p (SGERV2D) l (\( icntxt, 2,2, dist_x\(1,1\), n_max, 0, 0\)) p n ( ) S (call) K ( ) p (SGERV2D) l (\( icntxt, 2,1, dist_x\(1,3\), n_max, 0, 0\)) p n ( ) S (end) K ( ) p (if) K n ( ) p (if) K ( \(\(prow == 1\) ) p (.and.) K ( \(pcol == 1\)\) ) p (then) K n ( ) p (call) K ( ) p (SGERV2D) l (\( icntxt, 2,2, dist_x\(1,1\), n_max, 0, 0\)) p n ( ) S (end) K ( ) p (if) K n () p n (end) K ( ) p (subroutine) K ( ) p (distribue) L n (ex_PSGETRS.f90) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/formfeed.ps0000644000000000000000000000571214233473143014044 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (1) p n () N (formfeed.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (2) p n () N (formfeed.txt) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p n (formfeed.txt) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (5) p n (formfeed.txt) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p n (formfeed.txt) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Page: (6) 6 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (6) p n (formfeed.txt) (right) (6) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (6) footer end % of iso1dict pagesave restore showpage %%Page: (7) 7 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (7) p n (formfeed.txt) (right) (7) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (7) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/ftp2.ps0000644000000000000000000004732014233473143013131 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (/* ) c n ( * File Transfer Protocol ) N ( * ) N ( * Promela \(Protocol Meta Language\) ) N ( * ) N ( * J-Ph Cottin 12/96 \(inspired by Gerard J. Holzmann\) ) N ( */) S ( ) p n ( ) N ( ) N (/* ) c n ( * Global Definitions ) N ( */) S ( ) p n ( ) N (#define) K ( LOSS 0 ) p (/* message loss */) c ( ) p n (#define) K ( DUPS 0 ) p (/* duplicate msgs */) c ( ) p n (#define) K ( QSZ 2 ) p (/* queue size */) c ( ) p n ( ) N (mtype) K ( = { ) p n ( red, white, blue, ) N ( abort, ) S (accept) K (, ack, sync_ack, close, connect, ) p n ( create, data, eof, open, reject, sync, transfer, ) N ( FATAL, NON_FATAL, COMPLETE ) N ( } ) N ( ) N ( ) N (/*chan use_to_pres[2] = [QSZ] of {byte}; ) c n (chan pres_to_use[2] = [QSZ] of {byte}; ) N (chan pres_to_ses[2] = [QSZ] of {byte}; ) N ( ) N (chan ses_to_pres[2] = [QSZ] of {byte,byte}; ) N (chan ses_to_flow[2] = [QSZ] of {byte,byte}; ) N (chan flow_to_ses[2] = [QSZ] of {byte,byte}; ) N (chan dll_to_flow[2] = [QSZ] of {byte,byte}; ) N (chan flow_to_dll[2] = [QSZ] of {byte,byte}; ) N ( ) N (chan ses_to_fsrv[2] = [QSZ] of {byte}; ) N (chan fsrv_to_ses[2] = [QSZ] of {byte}; */) N ( ) p n (chan) k ( use_to_pres[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n (chan) k ( pres_to_use[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n (chan) k ( pres_to_ses[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n ( ) N (chan) k ( ses_to_pres[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n (chan) k ( ses_to_flow[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n (chan) k ( flow_to_ses[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n (chan) k ( dll_to_flow[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n (chan) k ( flow_to_dll[2] = [QSZ] ) p (of) K ( {) p (mtype) K (,) p (byte) k (}; ) p n ( ) N (chan) k ( ses_to_fsrv[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n (chan) k ( fsrv_to_ses[2] = [QSZ] ) p (of) K ( {) p (mtype) K (}; ) p n ( ) N (/* ) c n ( * User Layer Validation Model ) N ( */) S ( ) p n ( ) N (proctype) K ( userprc \( ) p (bit) k ( n\) ) p n ({ ) N ( use_to_pres[n]!transfer; ) N ( ) S (if) K ( ) p n ( :: pres_to_use[n]?) S (accept) K ( -> ) p (goto) K ( Done ) p n ( :: pres_to_use[n]?reject -> ) S (goto) K ( Done ) p n ( :: use_to_pres[n]!abort -> ) S (goto) K ( Aborted ) p n ( ) S (fi) K (; ) p n (Aborted: ) N ( ) S (if) K ( ) p n ( :: pres_to_use[n]?) S (accept) K ( -> ) p (goto) K ( Done ) p n (ftp2.pml) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( :: pres_to_use[n]?reject -> ) p (goto) K ( Done ) p n ( ) S (fi) K (; ) p n (Done: ) N ( ) S (skip) K ( ) p n ( } ) N ( ) N ( ) N (/* ) c n ( * Presentation Layer Validation Model ) N ( */) S ( ) p n ( ) N (proctype) K ( present\() p (bit) k ( n\) ) p n ({ ) N ( ) S (byte) k ( status, uabort; ) p n ( ) N (endIDLE: ) N ( ) S (do) K ( ) p n ( :: use_to_pres[n]?transfer -> ) N ( uabort = 0; ) N ( ) S (break) K ( ) p n ( :: use_to_pres[n]?abort -> ) N ( ) S (skip) K ( ) p n ( ) S (od) K (; ) p n ( ) N (TRANSFER: ) N ( pres_to_ses[n]!transfer; ) N ( ) S (do) K ( ) p n ( :: use_to_pres[n]?abort -> ) N ( ) S (if) K ( ) p n ( :: \(!uabort\) -> ) N ( uabort = 1; ) N ( pres_to_ses[n]!abort ) N ( :: \(uabort\) -> ) N ( ) S (assert) K (\(1+1!=2\) ) p n ( ) S (fi) K ( ) p n ( :: ses_to_pres[n]?) S (accept) K (,0 -> ) p n ( ) S (goto) K ( DONE) p n ( :: ses_to_pres[n]?reject\(status\) ->) N ( ) S (if) K ( ) p n ( :: \(status == FATAL || uabort\) -> ) N ( ) S (goto) K ( FAIL ) p n ( :: \(status == NON_FATAL && !uabort\) -> ) N ( ) S (goto) K ( TRANSFER ) p n ( ) S (fi) K ( ) p n ( ) S (od) K ( ;) p n ( ) N (DONE: ) N ( pres_to_use[n]!) S (accept) K (; ) p n ( ) S (goto) K ( endIDLE; ) p n (FAIL: ) N ( pres_to_use[n]!reject; ) N ( ) S (goto) K ( endIDLE ) p n ( } ) N ( ) N (/* ) c n ( * Session Layer Validation Model ) N ( */) S ( ) p n ( ) N ( ) N (proctype) K ( session \() p (bit) k ( n\) ) p n ({ ) N ( ) S (bit) k ( toggle; ) p n ( ) S (byte) k ( type, status; ) p n ( ) N (endIDLE: ) N ( ) S (do) K ( ) p n (ftp2.pml) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( :: pres_to_ses[n]?type -> ) p n ( ) S (if) K ( ) p n ( :: \(type == transfer\) -> ) N ( ) S (goto) K ( DATA_OUT ) p n ( :: \(type != transfer\) ) S (/* ignore */) c ( ) p n ( ) S (fi) K ( ) p n ( :: flow_to_ses[n]?type, 0 -> ) N ( ) S (if) K ( ) p n ( :: \(type == connect\) -> ) N ( ) S (goto) K ( DATA_IN ) p n ( :: \(type != connect\) ) S (/* ignore */) c ( ) p n ( ) S (fi) K ( ) p n ( ) S (od) K (; ) p n ( ) N (DATA_IN: ) S (/* 1. prepare local file fsrver */) c ( ) p n ( ses_to_fsrv[n]!create; ) N ( ) S (do) K ( ) p n ( :: fsrv_to_ses[n]?reject -> ) N ( ses_to_flow[n]!reject,0; ) N ( ) S (goto) K ( endIDLE ) p n ( :: fsrv_to_ses[n]?) S (accept) K ( -> ) p n ( ses_to_flow[n]!) S (accept) K (,0; ) p n ( ) S (break) K ( ) p n ( ) S (od) K (; ) p n ( ) S (/* 2. Receive the data, upto eof */) c ( ) p n ( ) S (do) K ( ) p n ( :: flow_to_ses[n]?data,0 -> ) N ( ses_to_fsrv[n]!data ) N ( :: flow_to_ses[n]?eof,0 -> ) N ( ses_to_fsrv[n]!eof; ) N ( ) S (break) K ( ) p n ( :: pres_to_ses[n]?transfer -> ) N ( ses_to_pres[n]!reject\(NON_FATAL\) ) N ( :: flow_to_ses[n]?close,0 -> ) S (/* remote user aborted */) c ( ) p n ( ses_to_fsrv[n]!close; ) N ( ) S (break) K ( ) p n ( :: ) S (timeout) K ( -> ) p (/* got disconnect */) c ( ) p n ( ses_to_fsrv[n]!close; ) N ( ) S (goto) K ( endIDLE ) p n ( ) S (od) K (; ) p n ( ) S (/* 3. Close the connection */) c ( ) p n ( ses_to_flow[n]!close,0; ) N ( ) S (goto) K ( endIDLE; ) p n ( ) N (DATA_OUT: ) S (/* 1. prepare local file fsver */) c ( ) p n ( ses_to_fsrv[n]!open; ) N ( ) S (if) K ( ) p n ( :: fsrv_to_ses[n]?reject -> ) N ( ses_to_pres[n]!reject\(FATAL\); ) N ( ) S (goto) K ( endIDLE ) p n ( :: fsrv_to_ses[n]?) S (accept) K ( -> ) p n ( ) S (skip) K ( ) p n ( ) S (fi) K (; ) p n ( ) S (/* 2. Initialize flow control */) c ( ) p n ( ses_to_flow[n]!sync,toggle; ) N ( ) S (do) K ( ) p n ( :: ) S (atomic) K ( { ) p n ( flow_to_ses[n]?sync_ack,type -> ) N ( ) S (if) K ( ) p n ( :: \(type!= toggle\) ) N ( :: \(type == toggle\) -> ) S (break) K ( ) p n ( ) S (fi) K ( ) p n ( } ) N ( :: ) S (timeout) K ( -> ) p n ( ses_to_fsrv[n]!close; ) N ( ses_to_pres[n]!reject\(FATAL\); ) N (ftp2.pml) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (goto) K ( endIDLE ) p n (od) K (; ) p n ( toggle = 1 - toggle; ) N ( ) S (/* 3. Prepare remote file fsrver */) c ( ) p n ( ses_to_flow[n]!connect,0; ) N ( ) S (if) K ( ) p n ( :: flow_to_ses[n]?reject,0 -> ) N ( ses_to_fsrv[n]!close; ) N ( ses_to_pres[n]!reject\(FATAL\); ) N ( ) S (goto) K ( endIDLE ) p n ( :: flow_to_ses[n]?connect,0 -> ) N ( ses_to_fsrv[n]!close; ) N ( ses_to_pres[n]!reject\(NON_FATAL\); ) N ( ) S (goto) K ( endIDLE ) p n ( :: flow_to_ses[n]?) S (accept) K (,0 -> ) p n ( ) S (skip) K ( ) p n ( :: ) S (timeout) K ( -> ) p n ( ses_to_fsrv[n]!close; ) N ( ses_to_pres[n]!reject\(FATAL\); ) N ( ) S (goto) K ( endIDLE ) p n (fi) K (; ) p n ( ) S (/* 4. Transmit the data, upto eof*/) c ( ) p n (do) K ( ) p n ( :: fsrv_to_ses[n]?data -> ) N ( ses_to_flow[n]!data,0 ) N ( :: fsrv_to_ses[n]?eof -> ) N ( ses_to_flow[n]!eof,0; ) N ( status = COMPLETE; ) N ( ) S (break) K ( ) p n ( :: pres_to_ses[n]?abort -> ) S (/* local user aborted */) c n ( ses_to_fsrv[n]!close;) p n ( ses_to_flow[n]!close,0;) N ( status = FATAL;) N ( ) S (break) K n (od) S (; ) p n ( ) S (/* 5. Close the connexion */) c ( ) p n (do) K ( ) p n ( :: pres_to_ses[n]?abort ) S (/* ignore */) c ( ) p n ( :: flow_to_ses[n]?close,0 -> ) N ( ) S (if) K ( ) p n ( :: \(status == COMPLETE\) -> ) N ( ses_to_pres[n]!) S (accept) K (,0 ) p n ( :: \(status != COMPLETE\) -> ) N ( ses_to_pres[n]!reject\(status\) ) N ( ) S (fi) K (; ) p n ( ) S (break) K ( ) p n ( :: ) S (timeout) K ( -> ) p n ( ses_to_pres[n]!reject\(FATAL\); ) N ( ) S (break) K ( ) p n ( ) S (od) K (; ) p n ( ) S (goto) K ( endIDLE ) p n ( ) N (} ) N ( ) N (/* ) c n ( * File Server Validation Model ) N ( */) S ( ) p n ( ) N (proctype) K ( fserver \() p (bit) k ( n\) ) p n ({ ) N ( end: ) N ( ) S (do) K ( ) p n ( :: ses_to_fsrv[n]?create -> ) S (/* incoming */) c ( ) p n ( ) S (if) K ( ) p n ( :: fsrv_to_ses[n]!reject ) N ( :: fsrv_to_ses[n]!) S (accept) K ( -> ) p n (ftp2.pml) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (do) K ( ) p n ( :: ses_to_fsrv[n]?data ) N ( :: ses_to_fsrv[n]?eof -> ) S (break) K ( ) p n ( :: ses_to_fsrv[n]?close -> ) S (break) K ( ) p n ( ) S (od) K ( ) p n ( ) S (fi) K ( ) p n ( :: ses_to_fsrv[n]?open -> ) S (/* outgoing */) c ( ) p n ( ) S (if) K ( ) p n ( :: fsrv_to_ses[n]!reject ) N ( :: fsrv_to_ses[n]!) S (accept) K ( -> ) p n ( ) S (do) K ( ) p n ( :: fsrv_to_ses[n]!data ) N ( :: fsrv_to_ses[n]!eof -> ) S (break) K ( ) p n ( :: ses_to_fsrv[n]?close -> ) S (break) K ( ) p n ( ) S (od) K ( ) p n ( ) S (fi) K ( ) p n ( ) S (od) K ( ) p n (} ) N ( ) N (/* ) c n ( * Flow Control Laer Validation Model ) N ( */) S ( ) p n ( ) N (#define) K ( true 1 ) p n (#define) K ( false 0 ) p n ( ) N (#define) K ( M 4 ) p (/* range sequence numbers */) c ( ) p n (#define) K ( W 2 ) p (/* window size : M/2 */) c ( ) p n ( ) N (proctype) K ( fc\() p (bit) k ( n\) ) p n ({ ) N ( ) S (bool) k ( busy[M]; ) p (/* outstanding messages */) c ( ) p n ( ) S (byte) k ( q; ) p (/* seq# oldest unacked msg */) c ( ) p n ( ) S (byte) k ( m; ) p (/* seq# last msg received */) c ( ) p n ( ) S (byte) k ( s; ) p (/* seq# next msg to send */) c ( ) p n ( ) S (byte) k ( window; ) p (/* nr of outstanding msgs */) c ( ) p n ( ) S (byte) k ( type; ) p (/* msg type */) c ( ) p n ( ) S (bit) k ( received[M]; ) p (/* receiver housekeeping */) c ( ) p n ( ) S (bit) k ( x; ) p (/* scratch variable */) c ( ) p n ( ) S (byte) k ( p; ) p (/* seq# of last msg acked */) c ( ) p n ( ) S (byte) k ( I_buf[M], O_buf[M]; ) p (/* message buffers */) c ( ) p n ( ) N ( ) S (/* sender part */) c ( ) p n ( end: ) N ( ) S (do) K ( ) p n ( :: ) S (atomic) K ( { ) p n ( \(window < W && ) S (len) K ( \(ses_to_flow [n]\) > 0 ) p n ( && ) S (len) K ( \(flow_to_dll[n]\) < QSZ \) -> ) p n ( ses_to_flow[n]?type,x; ) N ( window = window +1; ) N ( busy[s]= true; ) N ( O_buf[s] = type; ) N ( flow_to_dll[n]!type, s; ) N ( ) S (if) K ( ) p n ( :: \(type != sync\) -> ) N ( s = \(s+1\) %M ) N ( :: \(type == sync\) -> ) N ( window = 0; ) N ( s = M; ) N ( ) S (do) K ( ) p n ( :: \(s > 0\) -> ) N ( s= s - 1; ) N ( busy[s] = false ) N ( :: \(s == 0\) -> ) S (break) K ( ) p n ( ) S (od) K ( ) p n ( ) S (fi) K ( ) p n (ftp2.pml) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Page: (6) 6 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( } ) p n ( :: ) S (atomic) K ( { ) p n ( \(window > 0 && busy[q] == false\) -> ) N ( window = window -1; ) N ( q = \(q+1\) %M ) N ( } ) N (#if) K ( DUPS ) p n ( :: ) S (atomic) K ( { ) p n ( \() S (len) K (\(flow_to_dll[n]\) < QSZ ) p n ( && window >0 && busy[q] == true\) -> ) N ( flow_to_dll[n]! O_buf[q], q ) N ( } ) N (#endif) K ( ) p n ( :: ) S (atomic) K ( { ) p n ( \() S (timeout) K ( && ) p (len) K (\(flow_to_dll[n]\) < QSZ ) p n ( && window >0 && busy[q] == true\) -> ) N ( flow_to_dll[n]! O_buf[q], q ) N ( } ) N (/* receiver part */) c ( ) p n (#if) K ( LOSS ) p n ( :: dll_to_flow[n]?type,m ) S (/* lose any message */) c ( ) p n (#endif) K ( ) p n ( :: dll_to_flow[n]?type,m -> ) N ( ) S (if) K ( ) p n ( :: ) S (atomic) K ({ ) p n ( \(type == ack\) -> ) N ( busy[m] = false ) N ( } ) N ( :: ) S (atomic) K ({ ) p n ( \(type == sync\) -> ) N ( m = 0;) N ( ) S (do) K n ( :: \(m < M\) ->) p n ( received[m] = 0;) N ( m = m + 1) N () S 8 T () S 16 T () S 24 T ( :: \(m == M\) ->) N ( ) S (break) K n ( ) p (od) K ( ) p n ( }; ) N ( flow_to_dll[n]!sync_ack,0) N () S 8 T ( :: \(type == sync_ack\) ->) N ( flow_to_ses[n]!sync_ack,0) N () S 8 T ( :: \(type != ack && type != sync && type != sync_ack\) ->) N ( ) S (if) K n ( :: ) p (atomic) K ( {) p n ( \(received[m] == true\) ->) N ( x = \(\(0 < p-m && p-m<= W\)) N () S 8 T () S 16 T () S 24 T () S 32 T ( || \(0 < p-m-M && p-m-M <=W\)\)};) N ( ) S (if) K ( ) p n ( :: \(x\) -> flow_to_dll[n]!ack,m) N () S 8 T () S 16 T () S 24 T ( :: \(!x\) ) S (/* else skip */) c ( ) p n ( ) S (fi) K n () p 8 T () S 16 T ( :: ) S (atomic) K ( {) p n ( \(received[m] == false\) ->) N ( I_buf[m] = type;) N ( received[m] = true;) N ( received[\(m-W+M\)%M] = false) N () S 8 T () S 16 T () S 24 T () S 32 T (}) N ( ) S (fi) K n ( ) p (fi) K n () p n ( :: \(received[p] == true && ) S (len) K (\(flow_to_ses[n]\)) p n ( flow_to_ses[n]!I_buf[p],0;) N ( flow_to_dll[n]!ack,p;) N ( p = \(p+1\) % M) N (ftp2.pml) (right) (6) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (6) footer end % of iso1dict pagesave restore showpage %%Page: (7) 7 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (od) K n ( }) p n () N (/*) c n ( * Datalink Layer Validation Model) N ( */) N () p n (proctype) K ( data_link \(\)) p n ({) N (byte) k ( type, seq;) p n () N (end:) N ( ) S (do) K n () p 8 T ( :: flow_to_dll[0]?type,seq ->) N ( ) S (if) K n ( :: dll_to_flow[1]!type,seq) p n () S 8 T () S 16 T ( :: ) S (skip) K ( ) p (/* lose message */) c n ( ) p (fi) K n ( :: flow_to_dll[1]?type,seq ->) p n ( ) S (if) K n ( :: dll_to_flow[0]!type,seq) p n () S 8 T () S 16 T ( :: ) S (skip) K ( ) p (/* lose message */) c n ( ) p (fi) K n ( ) p (od) K n (}) p n () N (/* ) c n ( * Main Program ) N ( */) S ( ) p n ( ) N (/*init ) c n ( { ) N ( atomic { ) N ( run userprc\(0\); run userprc\(1\); ) N ( run present\(0\); run present\(1\); ) N ( run session\(0\); run session\(1\); ) N ( run fserver\(0\); run fserver\(1\); ) N ( run fc\(0\); run fc\(1\); ) N ( run data_link\(\) ) N ( } ) N ( } ) N ( */) N () p n (init) K ( ) p n ( { ) N ( ) S (atomic) K ( { ) p n ( ) S (run) K ( userprc\(0\); ) p n ( ) S (run) K ( present\(0\); ) p n ( ) S (run) K ( session\(0\); ) p n ( ) S (run) K ( fserver\(0\); ) p n ( ) S (run) K ( fc\(0\); ) p n ( ) S (run) K ( data_link\(\);) p n ( ) S (run) K ( fc\(1\); ) p n ( ) S (run) K ( fserver\(1\); ) p n ( ) S (run) K ( session\(1\); ) p n ( ) S (run) K ( present\(1\); ) p n ( ) S (run) K ( userprc\(1\); ) p n ( } ) N ( } ) N (ftp2.pml) (right) (7) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (7) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/includeres.ps0000644000000000000000000000636114233473143014413 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (#!/usr/local/bin/perl) c n (eval) K ( ') p (exec perl -S $0 "$@") str (') p n () S 8 T () S (if) K ( $running_under_some_shell;) p n () N (# includeres: include resources in PostScript file) c n (#) N (# Copyright \(C\) Angus J. C. Duggan 1991-1995) N (# See file LICENSE for details.) N () p n ($prog = \($0 =~ ) S (s) K (=.*/==\);) p n () N (%extn = \(") S (font) str (", ") p (.pfa) str (", ") p (file) str (", ") p (.ps) str (", ") p (procset) str (", ") p (.ps) str (", ) p (# resource extns) c n () p 8 T ( ") S (pattern) str (", ") p (.pat) str (", ") p (form) str (", ") p (.frm) str (", ") p (encoding) str (", ") p (.enc) str ("\);) p n (%type = \(") S (%%BeginFile:) str (", ") p (file) str (", ") p (%%BeginProcSet:) str (", ") p (procset) str (",) p n () S 8 T ( ") S (%%BeginFont:) str (", ") p (font) str ("\); ) p (# resource types) c n () p n (=head1 NAME) C n () N ( foo - script which blah ) N () N (=cut) N () p n () N (sub) K ( ) p (filename) L ( {) p 16 T () S 24 T () S 32 T () S (# make filename for resource in @_) c n ( ) p (local) K (\($name\);) p n ( ) S (foreach) K ( \(@_\) {) p 24 T () S 32 T () S (# sanitise name) c n ( ) p (s) K (/[!\(\)\\$\\#*&\\\\\\|\\`\\'\\"\\~\\{\\}\\[\\]\\<\\>\\?]//g;) p n ( $name .= $_;) N ( }) N ( $name =~ ) S (s) K (@.*/@@;) p 24 T () S 32 T () S (# drop directories) c n ( ) p (die) K ( ") p (Filename not found for resource ) str (", ) p (join) K (\(") p ( ) str (", @_\), ") p (\\n) str (") p n ( ) S (if) K ( $name =~ /^$/;) p n ( $name;) N (}) N () N (while) K ( \(<>\) {) p n ( ) S (if) K ( \(/^%%IncludeResource:/ || /^%%IncludeFont:/ || /^%%IncludeProcSet:/\) {) p n ( ) S (local) K (\($comment, @res\) = ) p (split) K (\(/\\s+/\);) p n ( ) S (local) K (\($type\) = ) p (defined) K (\($type{$comment}\) ? $type{$comment} : ) p (shift) K (\(@res\);) p n ( ) S (local) K (\($name\) = ) p (&filename) l (\(@res\);) p n ( ) S (local) K (\($inc\) = ") p (/inf/soft/infthes/demaille/include/psutils) str ("; ) p (# system include directory) c n ( ) p (if) K ( \() p (open) K (\(RES, $name\) || ) p (open) K (\(RES, ") p ($name$extn{$type}) str ("\) ||) p n () S 8 T ( ) S (open) K (\(RES, ") p ($inc/$name) str ("\) || ) p (open) K (\(RES, ") p ($inc/$name$extn{$type}) str ("\)\) {) p n () S 8 T ( ) S (while) K ( \(\) {) p n () S 8 T ( ) S (print) K ( $_;) p n () S 8 T ( }) N () S 8 T ( ) S (close) K (\(RES\);) p n ( } ) S (else) K ( {) p n () S 8 T ( ) S (print) K ( ") p (%%IncludeResource: ) str (", ) p (join) K (\(") p ( ) str (", $type, @res\), ") p (\\n) str (";) p n () S 8 T ( ) S (print) K ( STDERR ") p (Resource $name not found\\n) str (";) p n ( }) N ( } ) S (else) K ( {) p n ( ) S (print) K ( $_;) p n ( }) N (}) N () N (=head1 SEE ALSO) C n () N (blah blah. This is pod documentation.) N (blah blah) N (includeres) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/mofibida.ps0000644000000000000000000000604614233473143014030 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (#!/usr/pd/bin/runhugs) C n ({- A sample Haskell file -}) c n (module) K ( Test) p n (where) K n (import) S ( ) p (qualified) K ( Monad) p n (import) K ( Prelude ) p (hiding) K ( \(zip3\)) p n () N ({-#specialise qsort :: [String]->[String] #-}) C ( ) p (-- a pragma) c n () p n (-- Quicksort) c n (qsort :: Ord a => [a] -> [a] -- type annotation) C n (qsort ) p ([]) K ( = ) p ([]) K n (qsort \(x) p (:) K (xs\) = qsort elts_lt_x ++ ) p ([) K (x) p (]) K ( ++ qsort elts_greq_x) p n ( ) S (where) K n ( elts_lt_x = ) p ([) K (y | y <- xs, y < x) p (]) K n ( elts_greq_x = ) p ([) K (y | y <- xs, y >= x) p (]) K n () p n (-- Fibbonacci sequence) c n (fib = 1 ) p (:) K ( 1 ) p (:) K ( ) p ([) K ( a+b | \(a,b\) <- zip fib \(tail fib\) ) p (]) K n () p n (-- Binary tree) c n (data) K ( Tree a = Branch \(Tree a\) \(Tree a\) | Leaf a) p n () N (-- State monad from "http://haskell.org/tutorial/monads.html") c n (-- note that ">>=" should not be prited as ">\\geq") N (data) K ( S = Tree String) p n (data) K ( SM a = SM \(S ) p (->) K ( \(a,S\)\) ) p (-- The monadic type) c n (instance) K ( Monad SM ) p (where) K n ( ) p (-- defines state propagation) c n ( SM c1 >>= fc2 = SM \(\\s0 ) p (->) K ( ) p (let) K ( \(r,s1\) = c1 s0) p n ( SM c2 = fc2 r ) S (in) K n ( c2 s1\)) p n ( return k = SM \(\\s ) S (->) K ( \(k,s\)\)) p n () N (leap = \\n ) S (->) K ( \( \(n ) p (`mod`) K ( 4 == 0\)&&\(n ) p (`mod`) K ( 100 > 0\) || \(n ) p (`mod`) K ( 400 == 0\)\)) p n () N (a<->b = a ++ ") S (<->) str (" ++ b ) p (-- <-> is a new binary operator) c n () p n (infixr) K ( 7 <-> ) p (-- infix declaration can be anywhere in the module) c n () p n (-- dark corners of Haskell syntax are not pretty-printed correctly:) c n (if) K (\345' = True ) p (-- characters outside ASCII are allowed,) c n (\(<=\253\) ) p (::) K ( String) p (->) K (String) p (->) K (String ) p (-- <=\253 is a valid operator name,) c n (a <=\253 b = a++") p (<=<<) str ("++b) p n (a |-- b = a++") S (|--) str ("++b ) p (-- operator names can even inlude double dash,) c n ( ) p (-- but many compilers will confuse it with a comment) c n (data) K ( Pair = String ) p (:::) K ( String ) p (-- ::: is a valid constructor) c n (\(x,) p (hiding) K (,) p (qualified) K (\) = \(0,0,0\) ) p (-- not actually reserved words) c n (string_with_gaps = ") p (Hel\\ \\lo,\\HTwo\\) str n ( \\rld) S ("++) p ([) K ('\\33') p (]) K ( ) p (-- the value is "Hello,\\tworld!") c n (mofibida.hs) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/mtvplot.ps0000644000000000000000000000275014233473143013761 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (## usage mtvplot\(input,titles,filename\)) c n (##) N (## Outpluts graphs in MTV 1.4.1 curve2d format.) N (##) N (## input: is a matrix with the ordinate in the first column,) N (## each successive column is a separate curve to plot) N (## on the SEPARATE axes.) N (## titles: a list of string titles for each plot) N (## filename: the file to store the mtv file in) N () p n (function) K ( mtvplot\(input,titles,filename\)) p n ( file=fopen\(filename,") S (w) str ("\);) p n () N () N ( ) S (for) K ( g=\(1:columns\(input\)-1\)) p n ( fprintf\(file,") S (%s\\n) str (",") p ($DATA=Curve2d) str ("\);) p n ( fprintf\(file,") S (%s %s %s\\n) str (",") p (%toplabel=\\") str (",titles\(g,:\),") p (\\") str ("\);) p n ( fprintf\(file,") S (%s\\n) str (",") p (% linetype=1) str ("\);) p n ( ) S (for) K ( x=1:rows\(input\)) p n ( fprintf\(file,") S (%f %f\\n) str (",input\(x,1\),input\(x,g+1\)\);) p n ( ) S (endfor) K n ( ) p (endfor) K n ( fclose\(file\)) p n (endfunction) K n () p n ( ) N ( ) S (mtvplot.octave) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/mutex.ps0000644000000000000000000000633214233473143013416 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (# Mutual exclusion -- for use with module sched) c n () p n (# A mutex has two pieces of state -- a 'locked' bit and a queue.) c n (# When the mutex is not locked, the queue is empty.) N (# Otherwise, the queue contains 0 or more \(function, argument\) pairs) N (# representing functions \(or methods\) waiting to acquire the lock.) N (# When the mutex is unlocked while the queue is not empty,) N (# the first queue entry is removed and its function\(argument\) pair called,) N (# implying it now has the lock.) N (#) N (# Of course, no multi-threading is implied -- hence the funny interface) N (# for lock, where a function is called once the lock is aquired.) N (#) N (class) K ( mutex:) p n () S 8 T () S (#) c n () p 8 T () S (# Create a new mutex -- initially unlocked) c n () p 8 T () S (#) c n () p 8 T () S (def) K ( __init__\(self\):) p n () S 8 T () S 16 T (self.locked = 0) N () S 8 T () S 16 T (self.queue = []) N () S 8 T () S (#) c n () p 8 T () S (# Test the locked bit of the mutex) c n () p 8 T () S (#) c n () p 8 T () S (def) K ( test\(self\):) p n () S 8 T () S 16 T () S (return) K ( self.locked) p n () S 8 T () S (#) c n () p 8 T () S (# Atomic test-and-set -- grab the lock if it is not set,) c n () p 8 T () S (# return true if it succeeded) c n () p 8 T () S (#) c n () p 8 T () S (def) K ( testandset\(self\):) p n () S 8 T () S 16 T () S (if) K ( ) p (not) K ( self.locked:) p n () S 8 T () S 16 T () S 24 T (self.locked = 1) N () S 8 T () S 16 T () S 24 T () S (return) K ( 1) p n () S 8 T () S 16 T () S (else) K (:) p n () S 8 T () S 16 T () S 24 T () S (return) K ( 0) p n () S 8 T () S (#) c n () p 8 T () S (# Lock a mutex, call the function with supplied argument) c n () p 8 T () S (# when it is acquired.) c n () p 8 T () S (# If the mutex is already locked, place function and argument) c n () p 8 T () S (# in the queue.) c n () p 8 T () S (#) c n () p 8 T () S (def) K ( lock\(self, function, argument\):) p n () S 8 T () S 16 T (""") S (Take it.) str (""") p n () S 8 T () S 16 T () S (if) K ( self.testandset\(\):) p n () S 8 T () S 16 T () S 24 T (function\(argument\)) N () S 8 T () S 16 T () S (else) K (:) p n () S 8 T () S 16 T () S 24 T (self.queue.append\(\(function, argument\)\)) N () S 8 T () S (#) c n () p 8 T () S (# Unlock a mutex. If the queue is not empty, call the next) c n () p 8 T () S (# function with its argument.) c n () p 8 T () S (#) c n () p 8 T () S (def) K ( unlock\(self\):) p n () S 8 T () S 16 T (""") S (Release.) str (""") p n () S 8 T () S 16 T () S (if) K ( self.queue:) p n () S 8 T () S 16 T () S 24 T (function, argument = self.queue[0]) N () S 8 T () S 16 T () S 24 T () S (del) K ( self.queue[0]) p n () S 8 T () S 16 T () S 24 T (function\(argument\)) N () S 8 T () S 16 T () S (else) K (:) p n () S 8 T () S 16 T () S 24 T (self.locked = 0) N () S 8 T () S (#) c n (mutex.py) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/pages-1.ps0000644000000000000000000000444614233473143013515 00000000000000%%Page: (1-2) 1 %%BeginPageSetup /pagesave save def sh 0 translate 90 rotate %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 3.198801 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (1) p n 0 T () N (formfeed.txt) (right) (1) title border /v 1 store /x0 x v get 3.198801 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (2) p n 0 T () N (formfeed.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (6-7) 2 %%BeginPageSetup /pagesave save def sh 0 translate 90 rotate %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 3.198801 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (5) # (5) p n (formfeed.txt) (right) (2) title border /v 1 store /x0 x v get 3.198801 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (7) p n (formfeed.txt) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (5-6) 3 %%BeginPageSetup /pagesave save def sh 0 translate 90 rotate %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 3.198801 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (1) p n 0 T () N (formfeed.txt) (right) (3) title border /v 1 store /x0 x v get 3.198801 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (6) p n (formfeed.txt) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (7) 4 %%BeginPageSetup /pagesave save def sh 0 translate 90 rotate %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 3.198801 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (7) p n (formfeed.txt) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/pi.ps0000644000000000000000000000436414233473143012667 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (/*) c n ( This is a program to determine the distribution of digits in the) N ( fraction part of PI. It will look at the first scale digits.) N () N ( The results are left in the global variable digits.) N ( digits[0] is the number of 0's in PI.) N () N ( This program requires the math library.) N (*/) N () p n (define) K ( ) p (pi) L ( \(\) {) p n ( ) S (auto) K ( ix, pi, save_scale, work;) p n () N ( save_scale = ) S (scale) K (;) p n ( ) S (scale) K ( += 5;) p n ( ) S (print) K ( ") p (\\n\\nCalculating PI to ) str (",) p (scale) K (,") p ( digits. Please wait . . .) str (";) p n ( pi = 4*a\(1\);) N ( ) S (scale) K ( -= 5;) p n ( work = pi;) N () N ( ) S (print) K ( ") p (\\nCounting digits. . .) str (";) p n ( ) S (for) K ( \(ix = 0; ix < 10; ix++\) digits[ix] = 0;) p n () N ( ) S (/* Extract the One's digit from pi. */) c n ( ) p (scale) K ( = 0;) p n ( one_digit = work / 1;) N () N ( ) S (for) K ( \(ix = save_scale; ix > 0; ix--\) {) p n () N ( ) S (/* Remove the One's digit and multiply by 10. */) c n ( ) p (scale) K ( = ix;) p n ( work = \(work - one_digit\) / 1 * 10;) N () N ( ) S (/* Extract the One's digit. */) c n ( ) p (scale) K ( = 0;) p n ( one_digit = work / 1;) N () N ( digits[one_digit] += 1;) N ( }) N () N ( ) S (/* Restore the scale. */) c n ( ) p (scale) K ( = save_scale;) p n () N ( ) S (/* Report. */) c n ( ) p (print) K ( ") p (\\n\\n) str (") p n ( ) S (print) K ( ") p (PI to ) str (", ) p (scale) K (, ") p ( digits is:\\n) str (", pi/1, ") p (\\n\\n) str (") p n ( ) S (print) K ( ") p (The frequency of the digits are:\\n) str (") p n ( ) S (for) K ( \(ix = 0; ix < 10; ix++\) {) p n ( ) S (print) K ( ") p ( ) str (", ix, ") p ( - ) str (", digits[ix], ") p ( times\\n) str (") p n ( }) N () N ( ) S (print) K ( ") p (\\n\\n) str (") p n (}) N (pi.b) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/polkaIDL.ps0000644000000000000000000001410414233473143013707 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (#ifndef) K ( __polkaIDL_hh__) p n (#define) K ( __polkaIDL_hh__) p n () N (#include) K ( ) p n () N (#include) K ( ) p n (_CORBA_MODULE polka {) N (_CORBA_MODULE_PUBLIC) N () N (#ifndef) K ( __polka_loader__) p n (#define) K ( __polka_loader__) p n ( ) S (class) K ( loader;) p n ( ) S (typedef) K ( loader* loader_ptr;) p n ( ) S (typedef) K ( loader_ptr loaderRef;) p n () N ( ) S (class) K ( loader_Helper {) p n ( ) S (public) K (:) p n ( ) S (static) K ( loader_ptr _nil\(\);) p n ( ) S (static) K ( CORBA::Boolean is_nil\(loader_ptr p\);) p n ( ) S (static) K ( ) p (void) k ( release\(loader_ptr p\);) p n ( ) S (static) K ( loader_ptr unmarshalObjRef\(MemBufferedStream &s\);) p n ( };) N ( ) S (typedef) K ( _CORBA_ObjRef_Var loader_var;) p n () N (#endif) K n (#define) S ( polka_loader_IntfRepoID ") p (IDL:polka/loader:1.0) str (") p n () N ( ) S (class) K ( _sk_loader : ) p (public) K ( ) p (virtual) K ( loader {) p n ( ) S (public) K (:) p n () N ( _sk_loader\(\) {}) N ( _sk_loader\() S (const) K ( omniORB::objectKey& k\);) p n ( ) S (virtual) K ( ~_sk_loader\(\) {}) p n ( loader_ptr _this\(\) { ) S (return) K ( loader::_duplicate\() p (this) K (\); }) p n ( ) S (void) k ( _obj_is_ready\(CORBA::BOA_ptr boa\) { boa->obj_is_ready\() p (this) K (\); }) p n () N ( ) S (protected) K (:) p n ( ) S (virtual) K ( ) p (void) k ( *_widenFromTheMostDerivedIntf\() p (const) K ( ) p (char) k ( *repoId\) {) p n ( ) S (return) K ( loader::_widenFromTheMostDerivedIntf\(repoId\);) p n ( }) N ( ) S (private) K (:) p n ( _sk_loader \() S (const) K ( _sk_loader&\);) p n ( _sk_loader &) S (operator) K (=\() p (const) K ( _sk_loader&\);) p n ( };) N () N ( ) S (class) K ( _proxy_loader : ) p (public) K ( ) p (virtual) K ( loader {) p n ( ) S (private) K (:) p n () N ( _proxy_loader \() S (const) K ( _proxy_loader&\);) p n ( _proxy_loader &) S (operator) K (=\() p (const) K ( _proxy_loader&\);) p n ( };) N () N ( ) S (class) K ( _nil_loader : ) p (public) K ( ) p (virtual) K ( loader {) p n ( ) S (public) K (:) p n ( _nil_loader\(\) { ) S (this) K (->PR_setobj\(0\); }) p n ( ) S (virtual) K ( ~_nil_loader\(\) {}) p n ( ) S (void) k ( dump \( \){) p n ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n ( ) p (return) K (;) p n ( }) N () N ( polkaStatus enregistreServeur \( ) S (const) K ( ) p (char) k ( * name \){) p n ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n ( polkaStatus _result = 0;) p n (polkaIDL.hh) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (return) K ( _result;) p n ( }) N () N ( polkaStatus enregistreClient \( ) S (const) K ( ) p (char) k ( * name, CORBA::Long & numSerie \)) p n ({) N ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n ( polkaStatus _result = 0;) p n ( ) S (return) K ( _result;) p n ( }) N () N ( polkaStatus supprimeServeur \( ) S (const) K ( ) p (char) k ( * name \){) p n ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n ( polkaStatus _result = 0;) p n ( ) S (return) K ( _result;) p n ( }) N () N ( polkaStatus supprimeClient \( ) S (const) K ( ) p (char) k ( * name, CORBA::Long numSerie \){) p n ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n ( polkaStatus _result = 0;) p n ( ) S (return) K ( _result;) p n ( }) N () N ( ) S (void) k ( terminaisonClient \( \){) p n ( ) S (throw) K ( CORBA::BAD_OPERATION\(0,CORBA::COMPLETED_NO\);) p n ( ) S (// never reach here! Dummy return to keep some compilers happy.) c n ( ) p (return) K (;) p n ( }) N () N ( ) S (protected) K (:) p n ( ) S (virtual) K ( ) p (void) k ( *_widenFromTheMostDerivedIntf\() p (const) K ( ) p (char) k ( *repoId\) {) p n ( ) S (return) K ( loader::_widenFromTheMostDerivedIntf\(repoId\);) p n ( }) N ( };) N () N ( ) S (class) K ( loader_proxyObjectFactory : ) p (public) K ( proxyObjectFactory {) p n ( ) S (public) K (:) p n ( loader_proxyObjectFactory \(\) {}) N ( ) S (virtual) K ( ~loader_proxyObjectFactory \(\) {}) p n ( ) S (virtual) K ( ) p (const) K ( ) p (char) k ( *irRepoId\(\) ) p (const) K (;) p n ( ) S (virtual) K ( CORBA::Object_ptr newProxyObject\(Rope *r,CORBA::Octet *key,size_t ke) p n (ysize,IOP::TaggedProfileList *profiles,CORBA::Boolean release\);) N ( ) S (virtual) K ( CORBA::Boolean is_a\() p (const) K ( ) p (char) k ( *base_repoId\) ) p (const) K (;) p n ( ) S (static) K ( polka::loader_ptr _nil\(\) {) p n ( ) S (if) K ( \(!__nil_loader\) {) p n ( __nil_loader = ) S (new) K ( polka::_nil_loader;) p n ( }) N ( ) S (return) K ( __nil_loader;) p n ( }) N ( ) S (private) K (:) p n ( ) S (static) K ( polka::loader_ptr __nil_loader;) p n ( };) N (};) N () N (#endif) K ( ) p (// __polkaIDL_hh__) c n (polkaIDL.hh) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/prolog-1.ps0000644000000000000000000004111214236507210013703 00000000000000%!PS-Adobe-3.0 %%Title: a2ps output %%For: Somebody %%Creator: a version of a2ps %%CreationDate: once upon a time %%BoundingBox: 24 24 571 818 %%DocumentData: Clean7Bit %%Orientation: Portrait %%Pages: 7 %%PageOrder: Ascend %%DocumentMedia: A4 595 842 0 () () %%DocumentNeededResources: font Courier %%+ font Courier-Bold %%+ font Helvetica %%+ font Helvetica-Bold %%+ font Symbol %%+ font Times-Bold %%+ font Times-Roman %%DocumentProcessColors: Black Blue Green Red %%DocumentSuppliedResources: procset a2ps-color-prolog %%+ encoding ISO-8859-1Encoding %%EndComments /a2psdict 200 dict def a2psdict begin %%BeginProlog %%Copyright: (c) 1988-2017 Free Software Foundation, Inc. % Check PostScript language level. /languagelevel where { pop /gs_languagelevel languagelevel def } { /gs_languagelevel 1 def } ifelse % EPSF import as in the Red Book /BeginInclude { /b4_Inc_state save def % Save state for cleanup /dict_count countdictstack def % Count objects on dict stack /op_count count 1 sub def % Count objects on operand stack userdict begin 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath gs_languagelevel 1 ne { false setstrokeadjust false setoverprint } if } bind def /EndInclude { count op_count sub { pos } repeat % Clean up stacks countdictstack dict_count sub { end } repeat b4_Inc_state restore } bind def /BeginEPSF { BeginInclude /showpage { } def } bind def /EndEPSF { EndInclude } bind def % Page prefeed /page_prefeed { % bool -> - statusdict /prefeed known { statusdict exch /prefeed exch put } { pop } ifelse } bind def /deffont { findfont exch scalefont def } bind def /reencode_font { findfont reencode 2 copy definefont pop def } bind def % Function c-show (str => -) % centers text only according to x axis. /c-show { dup stringwidth pop 2 div neg 0 rmoveto show } bind def % Function l-show (str => -) % prints texts so that it ends at currentpoint /l-show { dup stringwidth pop neg 0 rmoveto show } bind def % center-fit show (str w => -) % show centered, and scale currentfont so that the width is less than w /cfshow { exch dup stringwidth pop % If the title is too big, try to make it smaller 3 2 roll 2 copy gt { % if, i.e. too big exch div currentfont exch scalefont setfont } { % ifelse pop pop } ifelse c-show % center title } bind def % Return the y size of the current font % - => fontsize /currentfontsize { currentfont /FontType get 0 eq { currentfont /FontMatrix get 3 get }{ currentfont /FontMatrix get 3 get 1000 mul } ifelse } bind def % reencode the font % -> /reencode { %def dup length 5 add dict begin { %forall % 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding exch def % - % Use the font's bounding box to determine the ascent, descent, % and overall height; don't forget that these values have to be % transformed using the font's matrix. % We use `load' because sometimes BBox is executable, sometimes not. % Since we need 4 numbers an not an array avoid BBox from being executed /FontBBox load aload pop FontMatrix transform /Ascent exch def pop FontMatrix transform /Descent exch def pop /FontHeight Ascent Descent sub def % Get the underline position and thickness if they're defined. % Use 1 if they are not defined. currentdict /FontInfo 2 copy known { get /UnderlinePosition 2 copy % /UP /UP 2 copy known { get }{ pop pop 1 } ifelse 0 exch FontMatrix transform exch pop def % /UnderlineThickness 2 copy % /UT /UT 2 copy known { get }{ pop pop 1 } ifelse 0 exch FontMatrix transform exch pop def % pop % - }{ pop pop } ifelse currentdict end } bind def % composite fonts for ASCII-EUC mixed strings % Version 1.2 1/31/1990 % Original Ken'ichi HANDA (handa@etl.go.jp) % Modified Norio Katayama (katayama@rd.nacsis.ac.jp),1998 % Extend & Fix Koji Nakamaru (maru@on.cs.keio.ac.jp), 1999 % Anyone can freely copy, modify, distribute this program. /copyfont { % font-dic extra-entry-count copyfont font-dic 1 index maxlength add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse } forall currentdict end } bind def /compositefont { % ASCIIFontName EUCFontName RomanScale RomanOffset Rot(T/F) compositefont font /RomanRotation exch def /RomanOffset exch def /RomanScale exch def userdict /fixeucfont_dict known not { userdict begin /fixeucfont_dict 2 dict begin /UpperByteEncoding [ 16#00 1 16#20 { pop 0 } for 16#21 1 16#28 { 16#20 sub } for 16#29 1 16#2F { pop 0 } for 16#30 1 16#74 { 16#27 sub } for 16#75 1 16#FF { pop 0 } for ] def /LowerByteEncoding [ 16#00 1 16#A0 { pop /.notdef } for 16#A1 1 16#FE { 16#80 sub 16 2 string cvrs (cXX) dup 1 4 -1 roll putinterval cvn } for /.notdef ] def currentdict end def end } if findfont dup /FontType get 0 eq { 14 dict begin % % 7+8 bit EUC font % 12 dict begin /EUCFont exch def /FontInfo (7+8 bit EUC font) readonly def /PaintType 0 def /FontType 0 def /FontMatrix matrix def % /FontName /Encoding fixeucfont_dict /UpperByteEncoding get def /FMapType 2 def EUCFont /WMode known { EUCFont /WMode get /WMode exch def } { /WMode 0 def } ifelse /FDepVector [ EUCFont /FDepVector get 0 get [ 16#21 1 16#28 {} for 16#30 1 16#74 {} for ] { 13 dict begin /EUCFont EUCFont def /UpperByte exch 16#80 add def % /FontName /FontInfo (EUC lower byte font) readonly def /PaintType 0 def /FontType 3 def /FontMatrix matrix def /FontBBox {0 0 0 0} def /Encoding fixeucfont_dict /LowerByteEncoding get def % /UniqueID % /WMode /BuildChar { gsave exch dup /EUCFont get setfont /UpperByte get 2 string dup 0 4 -1 roll put dup 1 4 -1 roll put dup stringwidth setcharwidth 0 0 moveto show grestore } bind def currentdict end /lowerbytefont exch definefont } forall ] def currentdict end /eucfont exch definefont exch findfont 1 copyfont dup begin RomanRotation { /FontMatrix FontMatrix [ 0 RomanScale neg RomanScale 0 RomanOffset neg 0 ] matrix concatmatrix def }{ /FontMatrix FontMatrix [ RomanScale 0 0 RomanScale 0 RomanOffset ] matrix concatmatrix def /CDevProc {pop pop pop pop 0 exch -1000 exch 2 div 880} def } ifelse end /asciifont exch definefont exch /FDepVector [ 4 2 roll ] def /FontType 0 def /WMode 0 def /FMapType 4 def /FontMatrix matrix def /Encoding [0 1] def /FontBBox {0 0 0 0} def % /FontHeight 1.0 def % XXXX /FontHeight RomanScale 1.0 ge { RomanScale }{ 1.0 } ifelse def /Descent -0.3 def % XXXX currentdict end /tmpfont exch definefont pop /tmpfont findfont }{ pop findfont 0 copyfont } ifelse } def /slantfont { % FontName slant-degree slantfont font' exch findfont 1 copyfont begin [ 1 0 4 -1 roll 1 0 0 ] FontMatrix exch matrix concatmatrix /FontMatrix exch def currentdict end } def % Function print line number ( # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def % -------- Some routines to enlight plain b/w printings --------- % Underline % width -- /dounderline { currentpoint gsave moveto 0 currentfont /Descent get currentfontsize mul rmoveto 0 rlineto stroke grestore } bind def % Underline a string % string -- /dounderlinestring { stringwidth pop dounderline } bind def /UL { /ul exch store } bind def % Draw a box of WIDTH wrt current font % width -- /dobox { currentpoint gsave newpath moveto 0 currentfont /Descent get currentfontsize mul rmoveto dup 0 rlineto 0 currentfont /FontHeight get currentfontsize mul rlineto neg 0 rlineto closepath stroke grestore } bind def /BX { /bx exch store } bind def % Box a string % string -- /doboxstring { stringwidth pop dobox } bind def % % ------------- Color routines --------------- % /FG /setrgbcolor load def % Draw the background % width -- /dobackground { currentpoint gsave newpath moveto 0 currentfont /Descent get currentfontsize mul rmoveto dup 0 rlineto 0 currentfont /FontHeight get currentfontsize mul rlineto neg 0 rlineto closepath bgcolor aload pop setrgbcolor fill grestore } bind def % Draw bg for a string % string -- /dobackgroundstring { stringwidth pop dobackground } bind def /BG { dup /bg exch store { mark 4 1 roll ] /bgcolor exch store } if } bind def /Show { bg { dup dobackgroundstring } if ul { dup dounderlinestring } if bx { dup doboxstring } if show } bind def % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add bg { dup currentpoint pop sub dobackground } if ul { dup currentpoint pop sub dounderline } if bx { dup currentpoint pop sub dobox } if y0 moveto } bind def % Function n: move to the next line /n { /y0 y0 bfs sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 bfs sub store x0 y0 moveto } bind def /S { Show } bind def %%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana % Function title: prints page header. % are passed as argument /title { % 1. Draw the background x v get y v get moveto 0 setgray gsave 0 th 2 div neg rmoveto th setlinewidth 0.5 0.5 1 setrgbcolor pw 0 rlineto stroke grestore % 2. Border it gsave 0.7 setlinewidth pw 0 rlineto 0 th neg rlineto pw neg 0 rlineto closepath stroke grestore % stk: ct rt lt x v get y v get th sub 1 add moveto %%IncludeResource: font Helvetica fHelvetica fnfs 0.8 mul scalefont setfont % 3. The left title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack fnfs 0.8 mul hm rmoveto show % left title grestore exch % stk: ct ltw rt % 4. the right title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack dup pw exch stringwidth pop fnfs 0.8 mul add sub hm rmoveto show % right title grestore % stk: ct ltw rtw % 5. the center title gsave pw 3 1 roll % stk: ct pw ltw rtw 3 copy % Move to the center of the left room sub add 2 div hm rmoveto % What is the available space in here? add sub fnfs 0.8 mul sub fnfs 0.8 mul sub % stk: ct space_left %%IncludeResource: font Helvetica-Bold fHelvetica-Bold fnfs scalefont setfont 1 setgray cfshow grestore } bind def % Function border: prints virtual page border /border { %def gsave % print four sides 0 setgray x v get y v get moveto 0.7 setlinewidth % of the square pw 0 rlineto 0 ph neg rlineto pw neg 0 rlineto closepath stroke grestore } bind def % Function water: prints a water mark in background /water { %def gsave scx scy moveto rotate %%IncludeResource: font Times-Bold fTimes-Bold 100 scalefont setfont .97 setgray dup stringwidth pop 2 div neg -50 rmoveto show grestore } bind def % Function rhead: prints the right header /rhead { %def lx ly moveto fHelvetica fnfs 0.8 mul scalefont setfont l-show } bind def % Function footer (cf rf lf -> -) /footer { fHelvetica fnfs 0.8 mul scalefont setfont dx dy moveto show snx sny moveto l-show fnx fny moveto c-show } bind def % Function print line number ( # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def %%BeginResource: procset a2ps-color-prolog 2.0 1 %% Definition of the color faces. /p { 0 0 0 FG false BG false UL false BX fCourier bfs scalefont setfont Show } bind def /sy { 0 0 0 FG false BG fSymbol bfs scalefont setfont Show } bind def /k { false BG false UL false BX 0 0 0.9 FG fCourier bfs scalefont setfont Show } bind def /K { false BG false UL false BX 0 0 0.8 FG fCourier-Bold bfs scalefont setfont Show } bind def /c { false BG false UL false BX 0.8 0 0 FG fCourier bfs scalefont setfont Show } bind def /C { false BG false UL false BX 0.8 0 0 FG fCourier-Bold bfs scalefont setfont Show } bind def /l { 0 0 0 FG 0.8 0.8 0 true BG false UL false BX fCourier bfs scalefont setfont Show } bind def /L { 0 0 0 FG 1 1 0 true BG false UL false BX fCourier-Bold bfs scalefont setfont Show } bind def /str { false BG false UL false BX 0 0.5 0 FG fTimes-Roman bfs scalefont setfont Show } bind def /e{ 1 0 0 true BG false UL true BX 1 1 1 FG fHelvetica-Bold bfs scalefont setfont Show } bind def % Function print line number ( # -) /# { gsave sx cw mul 2 div neg 0 rmoveto f# setfont 0.8 0.1 0.1 FG c-show grestore } bind def %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Courier %%IncludeResource: font Courier-Bold %%IncludeResource: font Times-Roman %%IncludeResource: font Symbol %%BeginResource: encoding ISO-8859-1Encoding /ISO-8859-1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndResource % Initialize page description variables. /sh 842 def /sw 595 def /llx 24 def /urx 571 def /ury 818 def /lly 24 def /#copies 1 def /th 20.000000 def /fnfs 15 def /bfs 11.199836 def /cw 6.719901 def % Dictionary for ISO-8859-1 support /iso1dict 6 dict begin /fCourier ISO-8859-1Encoding /Courier reencode_font /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font currentdict end def /bgcolor [ 0 0 0 ] def /bg false def /ul false def /bx false def % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def /fSymbol /Symbol findfont def /hm fnfs 0.25 mul def /pw cw 81.400000 mul def /ph 747.029046 th add def /pmw 0 def /pmh 0 def /v 0 def /x [ 0 ] def /y [ pmh ph add 0 mul ph add ] def /scx sw 2 div def /scy sh 2 div def /snx urx def /sny lly 2 add def /dx llx def /dy sny def /fnx scx def /fny dy def /lx snx def /ly ury fnfs 0.8 mul sub def /sx 0 def /tab 8 def /x0 0 def /y0 0 def %%EndSetup a2ps-4.15.5/tests/ps-ref/prolog-4.ps0000644000000000000000000004133614236507210013716 00000000000000%!PS-Adobe-3.0 %%Title: a2ps output %%For: Somebody %%Creator: a version of a2ps %%CreationDate: once upon a time %%BoundingBox: 24 24 571 818 %%DocumentData: Clean7Bit %%Orientation: Portrait %%Pages: 2 %%PageOrder: Ascend %%DocumentMedia: A4 595 842 0 () () %%DocumentNeededResources: font Courier %%+ font Courier-Bold %%+ font Helvetica %%+ font Helvetica-Bold %%+ font Symbol %%+ font Times-Bold %%+ font Times-Roman %%DocumentProcessColors: Black Blue Green Red %%DocumentSuppliedResources: procset a2ps-color-prolog %%+ encoding ISO-8859-1Encoding %%EndComments /a2psdict 200 dict def a2psdict begin %%BeginProlog %%Copyright: (c) 1988-2017 Free Software Foundation, Inc. % Check PostScript language level. /languagelevel where { pop /gs_languagelevel languagelevel def } { /gs_languagelevel 1 def } ifelse % EPSF import as in the Red Book /BeginInclude { /b4_Inc_state save def % Save state for cleanup /dict_count countdictstack def % Count objects on dict stack /op_count count 1 sub def % Count objects on operand stack userdict begin 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath gs_languagelevel 1 ne { false setstrokeadjust false setoverprint } if } bind def /EndInclude { count op_count sub { pos } repeat % Clean up stacks countdictstack dict_count sub { end } repeat b4_Inc_state restore } bind def /BeginEPSF { BeginInclude /showpage { } def } bind def /EndEPSF { EndInclude } bind def % Page prefeed /page_prefeed { % bool -> - statusdict /prefeed known { statusdict exch /prefeed exch put } { pop } ifelse } bind def /deffont { findfont exch scalefont def } bind def /reencode_font { findfont reencode 2 copy definefont pop def } bind def % Function c-show (str => -) % centers text only according to x axis. /c-show { dup stringwidth pop 2 div neg 0 rmoveto show } bind def % Function l-show (str => -) % prints texts so that it ends at currentpoint /l-show { dup stringwidth pop neg 0 rmoveto show } bind def % center-fit show (str w => -) % show centered, and scale currentfont so that the width is less than w /cfshow { exch dup stringwidth pop % If the title is too big, try to make it smaller 3 2 roll 2 copy gt { % if, i.e. too big exch div currentfont exch scalefont setfont } { % ifelse pop pop } ifelse c-show % center title } bind def % Return the y size of the current font % - => fontsize /currentfontsize { currentfont /FontType get 0 eq { currentfont /FontMatrix get 3 get }{ currentfont /FontMatrix get 3 get 1000 mul } ifelse } bind def % reencode the font % -> /reencode { %def dup length 5 add dict begin { %forall % 1 index /FID ne { def }{ pop pop } ifelse } forall /Encoding exch def % - % Use the font's bounding box to determine the ascent, descent, % and overall height; don't forget that these values have to be % transformed using the font's matrix. % We use `load' because sometimes BBox is executable, sometimes not. % Since we need 4 numbers an not an array avoid BBox from being executed /FontBBox load aload pop FontMatrix transform /Ascent exch def pop FontMatrix transform /Descent exch def pop /FontHeight Ascent Descent sub def % Get the underline position and thickness if they're defined. % Use 1 if they are not defined. currentdict /FontInfo 2 copy known { get /UnderlinePosition 2 copy % /UP /UP 2 copy known { get }{ pop pop 1 } ifelse 0 exch FontMatrix transform exch pop def % /UnderlineThickness 2 copy % /UT /UT 2 copy known { get }{ pop pop 1 } ifelse 0 exch FontMatrix transform exch pop def % pop % - }{ pop pop } ifelse currentdict end } bind def % composite fonts for ASCII-EUC mixed strings % Version 1.2 1/31/1990 % Original Ken'ichi HANDA (handa@etl.go.jp) % Modified Norio Katayama (katayama@rd.nacsis.ac.jp),1998 % Extend & Fix Koji Nakamaru (maru@on.cs.keio.ac.jp), 1999 % Anyone can freely copy, modify, distribute this program. /copyfont { % font-dic extra-entry-count copyfont font-dic 1 index maxlength add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse } forall currentdict end } bind def /compositefont { % ASCIIFontName EUCFontName RomanScale RomanOffset Rot(T/F) compositefont font /RomanRotation exch def /RomanOffset exch def /RomanScale exch def userdict /fixeucfont_dict known not { userdict begin /fixeucfont_dict 2 dict begin /UpperByteEncoding [ 16#00 1 16#20 { pop 0 } for 16#21 1 16#28 { 16#20 sub } for 16#29 1 16#2F { pop 0 } for 16#30 1 16#74 { 16#27 sub } for 16#75 1 16#FF { pop 0 } for ] def /LowerByteEncoding [ 16#00 1 16#A0 { pop /.notdef } for 16#A1 1 16#FE { 16#80 sub 16 2 string cvrs (cXX) dup 1 4 -1 roll putinterval cvn } for /.notdef ] def currentdict end def end } if findfont dup /FontType get 0 eq { 14 dict begin % % 7+8 bit EUC font % 12 dict begin /EUCFont exch def /FontInfo (7+8 bit EUC font) readonly def /PaintType 0 def /FontType 0 def /FontMatrix matrix def % /FontName /Encoding fixeucfont_dict /UpperByteEncoding get def /FMapType 2 def EUCFont /WMode known { EUCFont /WMode get /WMode exch def } { /WMode 0 def } ifelse /FDepVector [ EUCFont /FDepVector get 0 get [ 16#21 1 16#28 {} for 16#30 1 16#74 {} for ] { 13 dict begin /EUCFont EUCFont def /UpperByte exch 16#80 add def % /FontName /FontInfo (EUC lower byte font) readonly def /PaintType 0 def /FontType 3 def /FontMatrix matrix def /FontBBox {0 0 0 0} def /Encoding fixeucfont_dict /LowerByteEncoding get def % /UniqueID % /WMode /BuildChar { gsave exch dup /EUCFont get setfont /UpperByte get 2 string dup 0 4 -1 roll put dup 1 4 -1 roll put dup stringwidth setcharwidth 0 0 moveto show grestore } bind def currentdict end /lowerbytefont exch definefont } forall ] def currentdict end /eucfont exch definefont exch findfont 1 copyfont dup begin RomanRotation { /FontMatrix FontMatrix [ 0 RomanScale neg RomanScale 0 RomanOffset neg 0 ] matrix concatmatrix def }{ /FontMatrix FontMatrix [ RomanScale 0 0 RomanScale 0 RomanOffset ] matrix concatmatrix def /CDevProc {pop pop pop pop 0 exch -1000 exch 2 div 880} def } ifelse end /asciifont exch definefont exch /FDepVector [ 4 2 roll ] def /FontType 0 def /WMode 0 def /FMapType 4 def /FontMatrix matrix def /Encoding [0 1] def /FontBBox {0 0 0 0} def % /FontHeight 1.0 def % XXXX /FontHeight RomanScale 1.0 ge { RomanScale }{ 1.0 } ifelse def /Descent -0.3 def % XXXX currentdict end /tmpfont exch definefont pop /tmpfont findfont }{ pop findfont 0 copyfont } ifelse } def /slantfont { % FontName slant-degree slantfont font' exch findfont 1 copyfont begin [ 1 0 4 -1 roll 1 0 0 ] FontMatrix exch matrix concatmatrix /FontMatrix exch def currentdict end } def % Function print line number ( # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def % -------- Some routines to enlight plain b/w printings --------- % Underline % width -- /dounderline { currentpoint gsave moveto 0 currentfont /Descent get currentfontsize mul rmoveto 0 rlineto stroke grestore } bind def % Underline a string % string -- /dounderlinestring { stringwidth pop dounderline } bind def /UL { /ul exch store } bind def % Draw a box of WIDTH wrt current font % width -- /dobox { currentpoint gsave newpath moveto 0 currentfont /Descent get currentfontsize mul rmoveto dup 0 rlineto 0 currentfont /FontHeight get currentfontsize mul rlineto neg 0 rlineto closepath stroke grestore } bind def /BX { /bx exch store } bind def % Box a string % string -- /doboxstring { stringwidth pop dobox } bind def % % ------------- Color routines --------------- % /FG /setrgbcolor load def % Draw the background % width -- /dobackground { currentpoint gsave newpath moveto 0 currentfont /Descent get currentfontsize mul rmoveto dup 0 rlineto 0 currentfont /FontHeight get currentfontsize mul rlineto neg 0 rlineto closepath bgcolor aload pop setrgbcolor fill grestore } bind def % Draw bg for a string % string -- /dobackgroundstring { stringwidth pop dobackground } bind def /BG { dup /bg exch store { mark 4 1 roll ] /bgcolor exch store } if } bind def /Show { bg { dup dobackgroundstring } if ul { dup dounderlinestring } if bx { dup doboxstring } if show } bind def % Function T(ab), jumps to the n-th tabulation in the current line /T { cw mul x0 add bg { dup currentpoint pop sub dobackground } if ul { dup currentpoint pop sub dounderline } if bx { dup currentpoint pop sub dobox } if y0 moveto } bind def % Function n: move to the next line /n { /y0 y0 bfs sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 bfs sub store x0 y0 moveto } bind def /S { Show } bind def %%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana % Function title: prints page header. % are passed as argument /title { % 1. Draw the background x v get y v get moveto 0 setgray gsave 0 th 2 div neg rmoveto th setlinewidth 0.5 0.5 1 setrgbcolor pw 0 rlineto stroke grestore % 2. Border it gsave 0.7 setlinewidth pw 0 rlineto 0 th neg rlineto pw neg 0 rlineto closepath stroke grestore % stk: ct rt lt x v get y v get th sub 1 add moveto %%IncludeResource: font Helvetica fHelvetica fnfs 0.8 mul scalefont setfont % 3. The left title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack fnfs 0.8 mul hm rmoveto show % left title grestore exch % stk: ct ltw rt % 4. the right title gsave dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack dup pw exch stringwidth pop fnfs 0.8 mul add sub hm rmoveto show % right title grestore % stk: ct ltw rtw % 5. the center title gsave pw 3 1 roll % stk: ct pw ltw rtw 3 copy % Move to the center of the left room sub add 2 div hm rmoveto % What is the available space in here? add sub fnfs 0.8 mul sub fnfs 0.8 mul sub % stk: ct space_left %%IncludeResource: font Helvetica-Bold fHelvetica-Bold fnfs scalefont setfont 1 setgray cfshow grestore } bind def % Function border: prints virtual page border /border { %def gsave % print four sides 0 setgray x v get y v get moveto 0.7 setlinewidth % of the square pw 0 rlineto 0 ph neg rlineto pw neg 0 rlineto closepath stroke grestore } bind def % Function water: prints a water mark in background /water { %def gsave scx scy moveto rotate %%IncludeResource: font Times-Bold fTimes-Bold 100 scalefont setfont .97 setgray dup stringwidth pop 2 div neg -50 rmoveto show grestore } bind def % Function rhead: prints the right header /rhead { %def lx ly moveto fHelvetica fnfs 0.8 mul scalefont setfont l-show } bind def % Function footer (cf rf lf -> -) /footer { fHelvetica fnfs 0.8 mul scalefont setfont dx dy moveto show snx sny moveto l-show fnx fny moveto c-show } bind def % Function print line number ( # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def %%BeginResource: procset a2ps-color-prolog 2.0 1 %% Definition of the color faces. /p { 0 0 0 FG false BG false UL false BX fCourier bfs scalefont setfont Show } bind def /sy { 0 0 0 FG false BG fSymbol bfs scalefont setfont Show } bind def /k { false BG false UL false BX 0 0 0.9 FG fCourier bfs scalefont setfont Show } bind def /K { false BG false UL false BX 0 0 0.8 FG fCourier-Bold bfs scalefont setfont Show } bind def /c { false BG false UL false BX 0.8 0 0 FG fCourier bfs scalefont setfont Show } bind def /C { false BG false UL false BX 0.8 0 0 FG fCourier-Bold bfs scalefont setfont Show } bind def /l { 0 0 0 FG 0.8 0.8 0 true BG false UL false BX fCourier bfs scalefont setfont Show } bind def /L { 0 0 0 FG 1 1 0 true BG false UL false BX fCourier-Bold bfs scalefont setfont Show } bind def /str { false BG false UL false BX 0 0.5 0 FG fTimes-Roman bfs scalefont setfont Show } bind def /e{ 1 0 0 true BG false UL true BX 1 1 1 FG fHelvetica-Bold bfs scalefont setfont Show } bind def % Function print line number ( # -) /# { gsave sx cw mul 2 div neg 0 rmoveto f# setfont 0.8 0.1 0.1 FG c-show grestore } bind def %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Courier %%IncludeResource: font Courier-Bold %%IncludeResource: font Times-Roman %%IncludeResource: font Symbol %%BeginResource: encoding ISO-8859-1Encoding /ISO-8859-1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndResource % Initialize page description variables. /sh 842 def /sw 595 def /llx 24 def /urx 571 def /ury 818 def /lly 24 def /#copies 1 def /th 15.000000 def /fnfs 11 def /bfs 5.477068 def /cw 3.286241 def % Dictionary for ISO-8859-1 support /iso1dict 6 dict begin /fCourier ISO-8859-1Encoding /Courier reencode_font /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font currentdict end def /bgcolor [ 0 0 0 ] def /bg false def /ul false def /bx false def % The font for line numbering /f# /Helvetica findfont bfs .6 mul scalefont def /fSymbol /Symbol findfont def /hm fnfs 0.25 mul def /pw cw 81.400000 mul def /ph 359.843364 th add def /pmw urx llx sub pw 2 mul sub 1 div def /pmh ury lly sub ph 2 mul sub 24 sub 1 div def /v 0 def /x [ 0 dup pmw add pw add 0 dup pmw add pw add ] def /y [ pmh ph add 1 mul ph add dup pmh ph add 0 mul ph add dup ] def /scx sw 2 div def /scy sh 2 div def /snx urx def /sny lly 2 add def /dx llx def /dy sny def /fnx scx def /fny dy def /lx snx def /ly ury fnfs 0.8 mul sub def /sx 0 def /tab 8 def /x0 0 def /y0 0 def %%EndSetup a2ps-4.15.5/tests/ps-ref/prosamp.ps0000644000000000000000000000146214233473143013734 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (This is an example of keyword) k n (This is an example of keyword strong) K n (This is an example of comment) c n (This is an example of Comment strong) C n (This is an example of label) l n (This is an example of Label strong) L n (This is an example of string) str n (This is an example of symbol) sy n (This is an example of error) e n (This is an example of header) (This is an example of footer) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/psmandup.ps0000644000000000000000000003152214236507210014076 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (#! /bin/sh -e) c n (# -*- ksh -*-) N () p n (# psmandup --- produce a version of a PS file to print in manual Duplex.) c n () p n (# Copyright \(c\) 1998, 1999 Akim Demaille, Miguel Santana) c n () p n (# This program is free software; you can redistribute it and/or modify) c n (# it under the terms of the GNU General Public License as published by) N (# the Free Software Foundation; either version 3, or \(at your option\)) N (# any later version.) N (#) N (# This program is distributed in the hope that it will be useful,) N (# but WITHOUT ANY WARRANTY; without even the implied warranty of) N (# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the) N (# GNU General Public License for more details.) N (#) N (# You should have received a copy of the GNU General Public License) N (# along with this program; if not, you can either send email to this) N (# program's maintainer or write to: The Free Software Foundation,) N (# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.) N () p n (# Author: Akim Demaille ) c n () p n (# Get the name of the program) c n (program=`echo $0 | sed ') p (s#.*/##g) str ('`) p n () N (# Local vars) c n (address=0) p 16 T () S (# Where to put the manual feed feature) c n (back=:) p 8 T () S 16 T () S (# Print the back side pages.) c n (debug=) p n (file=) N (front=:) S 8 T () S 16 T () S (# Print the front side pages.) c n (output=-) p 16 T () S (# Default is stdout) c n (fixps=${FIXPS:-fixps}) p n (message=) N (psselect=${PSSELECT:-psselect}) N (psset=${PSSET:-psset}) N (tmpdir=`mktemp -d -t psmandup.XXXXXX` || { echo ") S ($program: Cannot create temporary dir!) str (" >&) p n (2 ; ) S (exit) K ( 1; }) p n () N (# These two must be kept in synch. They are opposed.) c n (verbose=echo) p n (quiet=:) N () N (# The version/usage strings) c n (version=") p (psmandup 2.1 \(GNU a2ps 4.13c\)) str n (Written by Akim Demaille.) N () N (Copyright \(c\) 1998-1999 Akim Demaille, Miguel Santana) N (This is free software; see the source for copying conditions. There is NO) N (warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.) S (") p n () N (usage=") S (\\) str n (Usage: $program FILE) N (Tries to produce a version of the PostScript FILE to print in manual) N (Duplex.) N () N (Options:) N ( -h, --help display this help and exit) N ( -v, --version display version information and exit) N ( -q, --quiet don't print informational messages) N ( -o, --output=FILE save result in FILE. If FILE is \\`-', send to stdout) N ( -n, --no-fix don't call fixps to fix PS problems in FILE) N ( -f, --front output only the front pages \(recto\) on the regular) N ( tray) N (psmandup) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( -b, --back output only the back pages \(verso\) on the manual) str n ( feed tray) N () N (Produced output is meant for PS level 2 printers which don't support) N (Duplex printing, but support Manual Feed. Once the first set of pages) N (is printed \(odd pages\), manual feed is asked: introduce the odd pages) N (to print the even pages on the other side.) N () N (Because there is usually a short time out for manually fed jobs, you) N (should really be next to the printer. If ever the time out expired,) N (use the option -b to send only the missing part.) N () N (Environment variables FIXPS, PSSELECT and PSSET, if defined, are used) N (to find the tools.) N () N (News, updates and documentation: http://www.inf.enst.fr/~demaille/a2ps/) N (Report bugs to ) S (") p n () N (help=") S (Try \\`$program --help' for more information.) str (") p n () N (# Parse command line arguments.) c n (option_without_arguments=') p (vhsqnDbf) str (') p n () N (# Push a token among the arguments that will be used to notice when) c n (# we ended options/arguments parsing.) N (arg_sep=") p ($$--$$) str (") p n (set) K ( dummy ${1+") p ($@) str ("} ") p ($arg_sep) str (") p n (shift) K n (while) S ( ) p (test) K ( ") p (x$1) str (" != ") p (x$arg_sep) str ("; ) p (do) K n () p n ( ) S (# Handle --option=value by splitting apart and putting back on argv.) c n ( ) p (case) K ( ") p ($1) str (" ) p (in) K n ( --*=*\)) p n ( opt=`echo ") S ($1) str (" | sed -e ') p (s/=.*//) str ('`) p n ( val=`echo ") S ($1) str (" | sed -e ') p (s/[^=]*=//) str ('`) p n ( ) S (shift) K n ( ) p (set) K ( dummy ") p ($opt) str (" ") p ($val) str (" ${1+") p ($@) str ("}) p n ( ) S (shift) K n ( ;;) p n () N ( -[$option_without_arguments]?*\)) N ( ) S (# Prefix $1 with x to avoid running `echo -na' for instance.) c n ( opt=`echo ") p (x$1) str (" | sed -e ') p (s/x-\\\(.\\\).*/-\\1/) str ('`) p n ( rest=`echo ") S (x$1) str (" | sed -e ') p (s/x-.\\\(.*\\\)/-\\1/) str ('`) p n ( ) S (shift) K n ( ) p (set) K ( dummy ") p ($opt) str (" ") p ($rest) str (" ${1+") p ($@) str ("}) p n ( ) S (shift) K n ( ;;) p n () N ( ) S (# This case needs to be protected so that the case `-??*' does) c n ( ) p (# not split long options without arguments) c n ( --*\)) p n ( ;;) N () N ( ) S (# This is an option with argument. Split apart and put back on argv.) c n ( -??*\)) p n ( opt=`echo ") S (x$1) str (" | sed -e ') p (s/x-\\\(.\\\).*/-\\1/) str ('`) p n ( arg=`echo ") S (x$1) str (" | sed -e ') p (s/x-.\\\(.*\\\)/\\1/) str ('`) p n ( ) S (shift) K n ( ) p (set) K ( dummy ") p ($opt) str (" ") p ($arg) str (" ${1+") p ($@) str ("}) p n ( ) S (shift) K n ( ;;) p n ( ) S (esac) K n () p n ( ) S (# Now, handle the options. $1 is the option *only*. If it has an) c n ( ) p (# argument, it is now necessarily in $2 etc. Remember to shift) c n (psmandup) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (# when fetching an argument.) c n ( ) p (case) K ( ") p ($1) str (" ) p (in) K n ( -v | --v*\) echo ") p ($version) str ("; ) p (exit) K ( 0;;) p n ( -h | --h*\) echo ") S ($usage) str ("; ) p (exit) K ( 0;;) p n ( -q | -s | --s* | --q*\) verbose=:; quiet=echo;;) N ( ) S (# Delay debugging so that options parsing does not appear) c n ( -D | --deb*\) debug=-D ;;) p n ( -o | --out*\) ) S (shift) K ( ; output=$1 ;;) p n ( -b | --bac*\) front= ; back=: ;;) N ( -f | --fro*\) front=: ; back= ;;) N ( -\) ) S (# We are working with stdin ;;) c n ( ) p (set) K ( dummy ") p ($@) str (" ") p ($1) str (") p n ( ) S (shift) K n ( ;;) p n ( -n | --no*\) fixps= ;;) N () N ( --\) ) S (# What remains are not options.) c n ( ) p (shift) K n ( ) p (while) K ( ) p (test) K ( ") p (x$1) str (" != ") p (x$arg_sep) str ("; ) p (do) K n ( ) p (set) K ( dummy ${1+") p ($@) str ("} ") p ($1) str (") p n ( ) S (shift) K n () p 8 T () S (shift) K n ( ) p (done) K n ( ) p (break) K (;;) p n () N ( -*\)) N ( echo ") S ($program: Unknown or ambiguous option \\`$1'.) str (" >&2) p n ( echo ") S ($program: Try \\`--help' for more information.) str (" >&2) p n ( ) S (exit) K ( 1;;) p n ( *\) ) S (set) K ( dummy ${1+") p ($@) str ("} ") p ($1) str (") p n ( ) S (shift) K n ( ;;) p n ( ) S (esac) K n ( ) p (shift) K n (done) N (# Pop the token) c n (shift) K n () p n () N (# Check the number of arguments.) c n (case) K ( $# ) p (in) K n ( 0\) file=-;;) p n ( 1\) file=$1;;) N ( *\) echo ") S ($program: too many arguments) str (" 1>&2) p n ( echo ") S ($help) str (" 1>&2) p n ( ) S (exit) K ( 1;;) p n (esac) K n () p n (if) K ( ) p (test) K ( -n ") p ($debug) str ("; ) p (then) K n ( ) p (# Set -x now if debugging) c n ( ) p (set) K ( -x) p n (else) K n ( ) p (# Temp dir. Get ready not to leave junk \(if not debugging\)) c n ( ) p (trap) K ( ") p (/bin/rm -rf $tmpdir) str (" 0 1 2 3 13 15) p n (fi) K n () p n (# If printing from stdin, save into a tmp file) c n (if) K ( ) p (test) K ( $file = ') p (-) str ('; ) p (then) K n ( file=$tmpdir/stdin.ps) p n ( cat > $file) N (fi) K n () p n (# Fix the file beforehand, so that we can really expect to find the) c n (# page numbers.) N (if) K ( ) p (test) K ( -n ") p ($fixps) str ("; ) p (then) K n ( $fixps $file -o $tmpdir/fixed.ps `$quiet -q`) p n (psmandup) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( file=$tmpdir/fixed.ps) p n (fi) K n () p n (# Get the number of pages of the document) c n (pagenum=`sed -ne ') p (/^%%Pages:/{) str n (s/%%Pages: \\\\\([0-9]*\\\\\).*$/\\\\1/p) N (q) N (}) S (' $file`) p n () N (# Make the string to get the front pages \(even, increasing\) if needed) c n (if) K ( ) p (test) K ( -n ") p ($front) str ("; ) p (then) K n ( evens=") p (1) str (") p n ( i=3) N ( ) S (# Build the string to give to psselect) c n ( ) p (while) K ( ) p (test) K ( $i -le $pagenum;) p n ( ) S (do) K n ( evens=") p ($evens,$i) str (") p n ( i=`expr $i + 2`) N ( ) S (done) K n (fi) N () p n (# Make the string to get the back pages \(odd, decreasing\) if needed) c n (if) K ( ) p (test) K ( -n ") p ($back) str ("; ) p (then) K n ( ) p (# If the number of pages is odd, we need to insert a blank sheet) c n ( ) p (case) K ( ") p ($pagenum) str (" ) p (in) K n ( *[13579]\)) p n ( odds=") S (_) str (") p n ( i=`expr $pagenum - 1 || ) S (exit) K ( 0`) p n ( ;;) N ( *\) ) S (# Odd, and not 0, so at least >= 2) c n ( odds=$pagenum) p n ( i=`expr $pagenum - 2 || ) S (exit) K ( 0`) p n ( ;;) N ( ) S (esac) K n () p n ( ) S (# Make the string to get the second half \(odd, decreasing\)) c n ( ) p (while) K ( ) p (test) K ( $i != 0;) p n ( ) S (do) K n ( odds=") p ($odds,$i) str (") p n ( i=`expr $i - 2 || ) S (exit) K ( 0`) p n ( ) S (done) K n (fi) N () p n (# If there are both odds and evens to print, the separator is `,') c n (test) K ( -n ") p ($odds) str (" && ) p (test) K ( -n ") p ($evens) str (" && separator=,) p n () N (# Reorder the pages) c n ($psselect -q $evens$separator$odds $file > $tmpdir/ordered.ps) p n () N (# If needed, insert the manual feed request) c n (if) K ( ) p (test) K ( -n ") p ($back) str ("; ) p (then) K n ( ) p (# The option of psset to ask the manual feed. If not set,) c n ( ) p (# psset just does nothing.) c n ( pssetmanfeed=-m) p n ( ) S (# Compute the address, depending on front pages are printed or not.) c n ( ) p (if) K ( ) p (test) K ( -n ") p ($front) str ("; ) p (then) K n ( address=`expr ') p (\() str (' $pagenum + 1 ') p (\)) str (' / 2 + 1`) p n ( message=") S (\\) str n (Once the first half of the file printed, insert the sheets stack into) N (the manual feed tray to print the second half. Be aware the time out) N (if usually short. If it expired, use option -b to proceed.) S (") p n ( ) S (else) K n ( address=0) p n ( message=") S (Insert the front pages stack into the manual feed tray.) str (") p n ( ) S (fi) K n (fi) N (psmandup) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p n (# Insert the manual feed request if needed) c n ($psset -n $pssetmanfeed -a $address -o$output $tmpdir/ordered.ps $debug) p n () N (test) K ( -n ") p ($message) str (" && $verbose ") p ($message) str (" 1>&2) p n (exit) K ( 0) p n (psmandup) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/report.ps0000644000000000000000000002171014233473143013564 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p n () N (This is the automatic report about styles of a2ps, version 4.8.2) K n () p n () N () N () N (Style definitions) L n (The reader should first note that a2ps is _not_ a powerful syntactical pretty-printer: it just handles lexical structures, i.e) str n (., if in your language) S ( IF IF == THEN THEN ELSE := IF ELSE ELSE := THEN ) p (is legal, then a2ps is not t) str n (he tool you need. It is for the same reason that you can't expect a2ps to highlight the function definitions in C.) N (In the following is described how the style sheets are defined. You can skip this section if you don't care how a2ps doe) N (s this, and if you don't expect to implement new styles.) N () p n (Consistancy) L n (There are no found problems in the styles.) str n () p n () N (Known languages) L n () p n ( 1) S (\267) sy ( ada) p n ( 2) S (\267) sy ( c) p n ( 3) S (\267) sy ( c++) p n ( 4) S (\267) sy ( caml) p n ( 5) S (\267) sy ( claire) p n ( 6) S (\267) sy ( coq-vernacular) p n (37) S (\267) sy ( Unity) p n (38) S (\267) sy ( VERILOG) p n (39) S (\267) sy ( VHDL) p n (40) S (\267) sy ( zsh) p n () N () N () N () N (Description of the language styles) L n (1) K ( ) p (ada style) l n () p n (\267) sy ( ) p (the abbreviation are:) str ( adb, ads.) p n (\267) sy ( ) p (first alphabet is:) str n ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'\(65-90\), 'abcdefghijklmnopqrstuvwxyz'\(97-122\), '_'\(9) p n (5\), '\)'\(41\).) N (\267) sy ( ) p (second alphabet is:) str n ('0123456789'\(48-57\), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\(65-90\), 'abcdefghijklmnopqrstu) p n (vwxyz'\(97-122\), '_'\(95\), '''\(39\).) N (\267) sy ( ) p (keywords, symbols and sequences recognition is case insensitive.) str n (\267) sy ( ) p (the keywords are:) str n (abort) K (, ) p (abs) K (, ) p (abstract) K (, ) p (accept) K (, ) p (access) K (, ) p (access function) K (, ) p (access procedure) K (, ) p (aliased) K () p n (, ) S (all) K (, ) p (and) K (, ) p (array) K (, ) p (at) K (, ) p (begin) K (, ) p (body) K (, ) p (case) K (, ) p (constant) K (, ) p (declare) K (, ) p (delay) K (, ) p (delta) K (, ) p (digit) K n (s) S (, ) p (do) K (, ) p (else) K (, ) p (elsif) K (, ) p (end) K (, ) p (entry) K (, ) p (exception) K (, ) p (exit) K (, ) p (for) K (, ) p (function) K (, ) p (generic) K (, ) p (goto) K (, ) p (i) K n (f) S (, ) p (in) K (, ) p (is) K (, ) p (limited) K (, ) p (loop) K (, ) p (mod) K (, ) p (new) K (, ) p (not) K (, ) p (null) K (, ) p (of) K (, ) p (or) K (, ) p (others) K (, ) p (out) K (, ) p (package) K (, ) p (pra) K n (gma) S (, ) p (private) K (, ) p (procedure) K (, ) p (protected) K (, ) p (raise) K (, ) p (range) K (, ) p (record) K (, ) p (rem) K (, ) p (renames) K (, ) p (requeue) K (,) p n ( ) S (return) K (, ) p (reverse) K (, ) p (select) K (, ) p (separate) K (, ) p (subtype) K (, ) p (tagged) K (, ) p (task) K (, ) p (terminate) K (, ) p (then) K (, ) p (type) K () p n (, ) S (until) K (, ) p (use) K (, ) p (when) K (, ) p (while) K (, ) p (with) K (, ) p (xor) K (.) p n (\267) sy ( ) p (the regular symbols are:) str n (\267) sy ( ) p (the special symbols are:) str n (!= ) p (\256) sy ( ) p (\271) sy (, == ) p (\256) sy ( ) p (\272) sy (, <= ) p (\256) sy ( ) p (\243) sy (, >= ) p (\256) sy ( ) p (\263) sy (, => ) p (\256) sy ( ) p (\336) sy (.) p n (\267) sy ( ) p (the sequences are:) str n (--inside$ ) p (\256) sy ( ) p (--inside) c ($, "inside" ) p (\256) sy ( ") p (inside) str (", 'inside' ) p (\256) sy ( ') p (inside) str (', package body insi) p n (de is ) S (\256) sy ( ) p (package body ) K (inside) L ( is) K (, package inside is ) p (\256) sy ( ) p (package ) K (inside) L ( is) K (, package) p n ( inside renames ) S (\256) sy ( ) p (package ) K (inside) L ( renames) K (, procedure inside renames ) p (\256) sy ( ) p (procedure) K n ( ) S (inside) l ( renames) K (, procedure inside is ) p (\256) sy ( ) p (procedure ) K (inside) l ( is) K (, procedure inside \( ) p () sy n (\256) S ( ) p (procedure ) K (inside) l ( \(, procedure inside\( ) p (\256) sy ( ) p (procedure ) K (inside) l (\(, procedure inside$) p n ( ) S (\256) sy ( ) p (procedure ) K (inside) l ($, procedure inside; ) p (\256) sy ( ) p (procedure ) K (inside) l (;, function inside r) p n (enames ) S (\256) sy ( ) p (function ) K (inside) l ( renames) K (, function inside is ) p (\256) sy ( ) p (function ) K (inside) l ( is) K (, fun) p n (ction inside \( ) S (\256) sy ( ) p (function ) K (inside) l ( \(, function inside\( ) p (\256) sy ( ) p (function ) K (inside) l (\(, funct) p n (ion inside$ ) S (\256) sy ( ) p (function ) K (inside) l ($, function inside; ) p (\256) sy ( ) p (function ) K (inside) l (;.) p n (ada style) (Style sheets of a2ps version 4.8.2) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (\267) sy ( ) p (the verbatims are:) str n ("'''".) p n (\267) sy ( ) p (the escapes are:) str n ("""", "\\\\", "\\'".) p n () N () N () N (25) K ( ) p (PreScript style) l n () p n (\267) sy ( This is prescript, a language of description of textual pages. It provides by ) p n (the use of LaTeX like commands, a way to describe the pages that this program sh) N (ould produce. It can be a very good choice of destination language for people wh) N (o want to produce text to print \(e.g. pretty-printing, automating documentation ) N (etc.\) but who definitely do not want to learn postscript, nor to require the use) N ( of LaTeX.) N (It is also known as BifTeX \(Basic Instruction From LaTeX\), of ptf \(Poor Text For) N (mat\).) N (Symbol translation is always enabled in this mode.) N (\267) sy ( ) p (the abbreviation are:) str ( prescript, biftex, bif, pre, ptf.) p n (\267) sy ( ) p (first alphabet is:) str n ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'\(65-90\), 'abcdefghijklmnopqrstuvwxyz'\(97-122\), '\\'\(9) p n (2\), '_'\(95\).) N (\267) sy ( ) p (second alphabet is:) str n ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'\(65-90\), 'abcdefghijklmnopqrstuvwxyz'\(97-122\), '_'\(9) p n (5\).) N (\267) sy ( ) p (keywords, symbols and sequences recognition is case sensitive.) str n (\267) sy ( ) p (there are no keywords.) str n (\267) sy ( ) p (there are no regular symbols.) str n (\267) sy ( ) p (the special symbols are:) str n (\\$ ) p (\256) sy ( $, $ ) p (\256) sy ( , \\_ ) p (\256) sy ( _, \\% ) p (\256) sy ( %, \\& ) p (\256) sy ( &, \\# ) p (\256) sy ( #, \\\( ) p (\256) sy ( \(, \\\) ) p (\256) sy ( \), \\[ ) p (\256) sy ( [, \\] ) p () sy n (\256) S ( ], \\{ ) p (\256) sy ( {, \\| ) p (\256) sy ( |, \\} ) p (\256) sy ( }.) p n (\267) sy ( ) p (the sequences are:) str n (\\\\encoding{inside} ) p (\256) sy ( inside, %%prescript:skipinside%%prescript:piks$ ) p (\256) sy ( , %insi) p n (de$ ) S (\256) sy ( , \\\\item[inside] ) p (\256) sy ( ) p (inside) l (, \\\\section{inside} ) p (\256) sy ( ) p (inside) L (, \\\\subsection{insi) p n (de} ) S (\256) sy ( ) p (inside) l (, \\\\subsubsection{inside} ) p (\256) sy ( ) p (inside) l (, \\\\header{inside}$ ) p (\256) sy ( inside, \\\\) p n (footer{inside}$ ) S (\256) sy ( inside, \\\\textbf{inside} ) p (\256) sy ( ) p (inside) K (, \\\\textit{inside} ) p (\256) sy ( ) p (inside) k () p n (, \\\\textbi{inside} ) S (\256) sy ( ) p (inside) K (, \\\\textrm{inside} ) p (\256) sy ( ) p (inside) str (, \\\\textsy{inside} ) p (\256) sy ( ) p (inside) sy () p n (, \\\\texttt{inside} ) S (\256) sy ( inside, \\\\keyword{inside} ) p (\256) sy ( ) p (inside) k (, \\\\Keyword{inside} ) p (\256) sy ( ) p (i) K n (nside) S (, \\\\comment{inside} ) p (\256) sy ( ) p (inside) c (, \\\\Comment{inside} ) p (\256) sy ( ) p (inside) C (, \\\\label{inside}) p n ( ) S (\256) sy ( ) p (inside) l (, \\\\Label{inside} ) p (\256) sy ( ) p (inside) L (, \\\\string{inside} ) p (\256) sy ( ) p (inside) str (, \\\\magicbf{inside) p n (} ) S (\256) sy ( ) p (inside) K (, \\\\magicit{inside} ) p (\256) sy ( ) p (inside) k (, \\\\magicbi{inside} ) p (\256) sy ( ) p (inside) K (, \\\\magicrm{) p n (inside} ) S (\256) sy ( ) p (inside) str (, \\\\magicsy{inside} ) p (\256) sy ( ) p (inside) sy (, \\\\magictt{inside} ) p (\256) sy ( inside, \\\\verb+) p n (inside+ ) S (\256) sy ( inside, \\\\verb!inside! ) p (\256) sy ( inside, \\\\verb|inside| ) p (\256) sy ( inside, \\\\verb#ins) p n (ide# ) S (\256) sy ( inside, \\\\verb=inside= ) p (\256) sy ( inside.) p n (\267) sy ( ) p (there are no verbatims.) str n (\267) sy ( ) p (there are no escapes.) str n () p n () N (PreScript style) (Style sheets of a2ps version 4.8.2) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/run-help.ps0000644000000000000000000000172714233473143014011 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (#! /bin/zsh) c n (# zsh script to peruse the help directory) N (#) N (if) K ( [[ $1 = ") p (-l) str (" ]]; ) p (then) K n ( ) p (if) K ( [[ ${HELPDIR:-} != "" ]]; ) p (then) K n ( echo ') p (Here is a list of topics for which help is available:) str (') p n ( echo "") N ( ls $HELPDIR) N ( ) S (else) K n ( echo ') p (There is no help available at this time) str (') p n ( ) S (fi) K n (elif) S ( [[ ${HELPDIR:-} != "" && -r $HELPDIR/$1 ]]) p n (then) K n ( ${=PAGER:-more} $HELPDIR/$1) p n (else) K n ( man $1) p n (fi) K n (run-help) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/s-garnam.ps0000644000000000000000000005202714233473143013763 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (------------------------------------------------------------------------------) c n (-- --) N (-- GLADE COMPONENTS --) N (-- --) N (-- S Y S T E M . G A R L I C . N A M I N G --) N (-- --) N (-- B o d y --) N (-- --) N (-- --) N (-- Copyright \(C\) 1996,1997 Free Software Foundation, Inc. --) N (-- --) N (-- GARLIC is free software; you can redistribute it and/or modify it under --) N (-- terms of the GNU General Public License as published by the Free Soft- --) N (-- ware Foundation; either version 3, or \(at your option\) any later ver- --) N (-- sion. GARLIC is distributed in the hope that it will be useful, but --) N (-- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABI- --) N (-- LITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --) N (-- License for more details. You should have received a copy of the GNU --) N (-- General Public License distributed with GARLIC; see file COPYING. If --) N (-- not, write to the Free Software Foundation, 59 Temple Place - Suite 330, --) N (-- Boston, MA 02111-1307, USA. --) N (-- --) N (-- As a special exception, if other files instantiate generics from this --) N (-- unit, or you link this unit with other files to produce an executable, --) N (-- this unit does not by itself cause the resulting executable to be --) N (-- covered by the GNU General Public License. This exception does not --) N (-- however invalidate any other reasons why the executable file might be --) N (-- covered by the GNU Public License. --) N (-- --) N (-- GLADE is maintained by ACT Europe. --) N (-- \(email: glade-report@act-europe.fr\) --) N (-- --) N (------------------------------------------------------------------------------) N () p n (with) K ( Ada.Exceptions;) p n (with) K ( Interfaces.C; ) p (use) K ( Interfaces.C;) p n (with) K ( Interfaces.C.Strings; ) p (use) K ( Interfaces.C.Strings;) p n (with) K ( System.Garlic.Constants; ) p (use) K ( System.Garlic.Constants;) p n (with) K ( System.Garlic.OS_Lib; ) p (use) K ( System.Garlic.OS_Lib;) p n (with) K ( Unchecked_Conversion;) p n (with) K ( Unchecked_Deallocation;) p n () N (package body ) K (System.Garlic.Naming) L ( is) K n () p n ( ) S (use) K ( Thin;) p n () N ( Default_Buffer_Size : ) S (constant) K ( := 16384;) p n () N ( ) S (procedure ) K (Free) l ( is) K n ( ) p (new) K ( Unchecked_Deallocation \(char_array, char_array_access\);) p n () N ( ) S (function ) K (Allocate) l ( \(Size : Positive := Default_Buffer_Size\)) p n ( ) S (return) K ( char_array_access;) p n ( ) S (-- Allocate a buffer.) c n () p n ( ) S (function ) K (Parse_Entry) l ( \(Host : Hostent\)) p n ( ) S (return) K ( Host_Entry;) p n ( ) S (-- Parse an entry.) c n () p n ( ) S (procedure ) K (Raise_Naming_Error) l n ( \(Errno : ) p (in) K ( C.Int;) p n ( Message : ) S (in) K ( String\);) p n ( ) S (-- Raise the exception Naming_Error with an appropriate error message.) c n () p n ( ) S (protected) K ( Gethost_In_Progress ) p (is) K n ( ) p (entry) K ( Lock;) p n (s-garnam.adb) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (procedure ) K (Unlock) l (;) p n ( ) S (private) K n ( Locked : Boolean := False;) p n ( ) S (end) K ( Gethost_In_Progress;) p n ( ) S (-- We have to protect this.) c n () p n ( ) S (----------------) c n ( ) p (-- Address_Of --) c n ( ) p (----------------) c n () p n ( ) S (function ) K (Address_Of) l ( \(Something : String\)) p n ( ) S (return) K ( Address) p n ( ) S (is) K n ( ) p (begin) K n ( ) p (if) K ( Is_IP_Address \(Something\) ) p (then) K n ( ) p (return) K ( Value \(Something\);) p n ( ) S (else) K n ( ) p (return) K ( Info_Of \(Something\) .Addresses \(1\);) p n ( ) S (end) K ( ) p (if) K (;) p n ( ) S (end) K ( Address_Of;) p n () N ( ) S (------------) c n ( ) p (-- Adjust --) c n ( ) p (------------) c n () p n ( ) S (procedure ) K (Adjust) l ( \(Object : ) p (in) K ( ) p (out) K ( Host_Entry\)) p n ( ) S (is) K n ( Aliases : String_Array ) p (renames) K ( Object.Aliases;) p n ( ) S (begin) K n ( Object.Name := ) p (new) K ( String'\(Object.Name.) p (all) K (\);) p n ( ) S (for) K ( I ) p (in) K ( Aliases'Range ) p (loop) K n ( Aliases \(I\) := ) p (new) K ( String'\(Aliases \(I\) .) p (all) K (\);) p n ( ) S (end) K ( ) p (loop) K (;) p n ( ) S (end) K ( Adjust;) p n () N ( ) S (--------------) c n ( ) p (-- Allocate --) c n ( ) p (--------------) c n () p n ( ) S (function ) K (Allocate) l n ( \(Size : Positive := Default_Buffer_Size\)) p n ( ) S (return) K ( char_array_access) p n ( ) S (is) K n ( ) p (begin) K n ( ) p (return) K ( ) p (new) K ( char_array \(1 .. size_t \(Size\)\);) p n ( ) S (end) K ( Allocate;) p n () N ( ) S (-----------------) c n ( ) p (-- Any_Address --) c n ( ) p (-----------------) c n () p n ( ) S (function ) K (Any_Address) l ( return) K ( Address) p n ( ) S (is) K n ( ) p (begin) K n ( ) p (return) K ( To_Address \(Inaddr_Any\);) p n ( ) S (end) K ( Any_Address;) p n () N ( ) S (--------------) c n ( ) p (-- Finalize --) c n ( ) p (--------------) c n () p n ( ) S (procedure ) K (Finalize) l ( \(Object : ) p (in) K ( ) p (out) K ( Host_Entry\)) p n ( ) S (is) K n ( Aliases : String_Array ) p (renames) K ( Object.Aliases;) p n ( ) S (procedure ) K (Free) l ( is) K n ( ) p (new) K ( Unchecked_Deallocation \(String, String_Access\);) p n (s-garnam.adb) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (begin) K n ( Free \(Object.Name\);) p n ( ) S (for) K ( I ) p (in) K ( Aliases'Range ) p (loop) K n ( Free \(Aliases \(I\)\);) p n ( ) S (end) K ( ) p (loop) K (;) p n ( ) S (end) K ( Finalize;) p n () N ( ) S (-------------------------) c n ( ) p (-- Gethost_In_Progress --) c n ( ) p (-------------------------) c n () p n ( ) S (protected) K ( ) p (body) K ( Gethost_In_Progress ) p (is) K n () p n ( ) S (----------) c n ( ) p (-- Lock --) c n ( ) p (----------) c n () p n ( ) S (entry) K ( Lock ) p (when) K ( ) p (not) K ( Locked ) p (is) K n ( ) p (begin) K n ( Locked := True;) p n ( ) S (end) K ( Lock;) p n () N ( ) S (------------) c n ( ) p (-- Unlock --) c n ( ) p (------------) c n () p n ( ) S (procedure ) K (Unlock) l ( is) K n ( ) p (begin) K n ( Locked := False;) p n ( ) S (end) K ( Unlock;) p n () N ( ) S (end) K ( Gethost_In_Progress;) p n () N ( ) S (---------------) c n ( ) p (-- Host_Name --) c n ( ) p (---------------) c n () p n ( ) S (function ) K (Host_Name) l ( return) K ( String) p n ( ) S (is) K n ( Buff : char_array_access := Allocate;) p n ( Buffer : ) S (constant) K ( chars_ptr := To_Chars_Ptr \(Buff\);) p n ( Res : ) S (constant) K ( int := C_Gethostname \(Buffer, Buff'Length\);) p n ( ) S (begin) K n ( ) p (if) K ( Res = Failure ) p (then) K n ( Free \(Buff\);) p n ( Raise_Naming_Error \(C_Errno, ""\);) N ( ) S (end) K ( ) p (if) K (;) p n ( ) S (declare) K n ( Result : ) p (constant) K ( String := Value \(Buffer\);) p n ( ) S (begin) K n ( Free \(Buff\);) p n ( ) S (return) K ( Result;) p n ( ) S (end) K (;) p n ( ) S (end) K ( Host_Name;) p n () N ( ) S (-----------) c n ( ) p (-- Image --) c n ( ) p (-----------) c n () p n ( ) S (function ) K (Image) l ( \(Add : Address\) ) p (return) K ( String) p n ( ) S (is) K n () p n ( ) S (function ) K (Image) l ( \(A : Address_Component\) ) p (return) K ( String;) p n ( ) S (-- Return the string corresponding to its argument without) c n ( ) p (-- the leading space.) c n () p n (s-garnam.adb) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (-----------) c n ( ) p (-- Image --) c n ( ) p (-----------) c n () p n ( ) S (function ) K (Image) l ( \(A : Address_Component\)) p n ( ) S (return) K ( String) p n ( ) S (is) K n ( Im : ) p (constant) K ( String := Address_Component'Image \(A\);) p n ( ) S (begin) K n ( ) p (return) K ( Im \(2 .. Im'Last\);) p n ( ) S (end) K ( Image;) p n () N ( ) S (begin) K n ( ) p (return) K ( Image \(Add.H1\) & ") p (.) str (" & Image \(Add.H2\) & ") p (.) str (" &) p n ( Image \(Add.H3\) & ") S (.) str (" & Image \(Add.H4\);) p n ( ) S (end) K ( Image;) p n () N ( ) S (-------------) c n ( ) p (-- Info_Of --) c n ( ) p (-------------) c n () p n ( ) S (function ) K (Info_Of) l ( \(Name : String\)) p n ( ) S (return) K ( Host_Entry) p n ( ) S (is) K n ( Res : Hostent_Access;) p n ( C_Name : chars_ptr := New_String \(Name\);) N ( ) S (begin) K n ( Gethost_In_Progress.Lock;) p n ( Res := C_Gethostbyname \(C_Name\);) N ( Free \(C_Name\);) N ( ) S (if) K ( Res = ) p (null) K ( ) p (then) K n ( Gethost_In_Progress.Unlock;) p n ( Raise_Naming_Error \(C_Errno, Name\);) N ( ) S (end) K ( ) p (if) K (;) p n ( ) S (declare) K n ( Result : ) p (constant) K ( Host_Entry := Parse_Entry \(Res.) p (all) K (\);) p n ( ) S (begin) K n ( Gethost_In_Progress.Unlock;) p n ( ) S (return) K ( Result;) p n ( ) S (end) K (;) p n ( ) S (end) K ( Info_Of;) p n () N ( ) S (-------------) c n ( ) p (-- Info_Of --) c n ( ) p (-------------) c n () p n ( ) S (function ) K (Info_Of) l ( \(Addr : Address\)) p n ( ) S (return) K ( Host_Entry) p n ( ) S (is) K n ( ) p (function ) K (Convert) l ( is) K n ( ) p (new) K ( Unchecked_Conversion \(Source => In_Addr_Access,) p n ( Target => chars_ptr\);) N ( Temp : ) S (aliased) K ( In_Addr := To_In_Addr \(Addr\);) p n ( C_Addr : ) S (constant) K ( chars_ptr := Convert \(Temp'Unchecked_Access\);) p n ( Res : Hostent_Access;) N ( ) S (begin) K n ( Gethost_In_Progress.Lock;) p n ( Res := C_Gethostbyaddr \(C_Addr,) N ( C.Int \(Temp'Size / CHAR_BIT\),) N ( Af_Inet\);) N ( ) S (if) K ( Res = ) p (null) K ( ) p (then) K n ( Gethost_In_Progress.Unlock;) p n ( Raise_Naming_Error \(C_Errno, Image \(Addr\)\);) N ( ) S (end) K ( ) p (if) K (;) p n ( ) S (declare) K n ( Result : ) p (constant) K ( Host_Entry := Parse_Entry \(Res.) p (all) K (\);) p n (s-garnam.adb) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (begin) K n ( Gethost_In_Progress.Unlock;) p n ( ) S (return) K ( Result;) p n ( ) S (end) K (;) p n ( ) S (end) K ( Info_Of;) p n () N ( ) S (------------------------) c n ( ) p (-- Info_Of_Name_Or_IP --) c n ( ) p (------------------------) c n () p n ( ) S (function ) K (Info_Of_Name_Or_IP) l ( \(Something : String\)) p n ( ) S (return) K ( Host_Entry) p n ( ) S (is) K n ( ) p (begin) K n ( ) p (if) K ( Is_IP_Address \(Something\) ) p (then) K n ( ) p (return) K ( Info_Of \(Value \(Something\)\);) p n ( ) S (else) K n ( ) p (return) K ( Info_Of \(Something\);) p n ( ) S (end) K ( ) p (if) K (;) p n ( ) S (end) K ( Info_Of_Name_Or_IP;) p n () N ( ) S (-------------------) c n ( ) p (-- Is_Ip_Address --) c n ( ) p (-------------------) c n () p n ( ) S (function ) K (Is_IP_Address) l ( \(Something : String\)) p n ( ) S (return) K ( Boolean) p n ( ) S (is) K n ( First : ) p (constant) K ( Natural := Character'Pos \(Something \(Something'First\)\);) p n ( ) S (begin) K n ( ) p (return) K ( First >= Character'Pos \(') p (0) str ('\) ) p (and) K ( ) p (then) K n ( First <= Character'Pos \(') p (9) str ('\);) p n ( ) S (end) K ( Is_IP_Address;) p n () N ( ) S (-------------) c n ( ) p (-- Name_Of --) c n ( ) p (-------------) c n () p n ( ) S (function ) K (Name_Of) l ( \(Something : String\)) p n ( ) S (return) K ( String) p n ( ) S (is) K n ( Hostent : ) p (constant) K ( Host_Entry := Info_Of_Name_Or_IP \(Something\);) p n ( ) S (begin) K n ( ) p (if) K ( Hostent.Name = ) p (null) K ( ) p (then) K n ( Ada.Exceptions.Raise_Exception \(Naming_Error'Identity,) p n ( ") S (No name for ) str (" & Something\);) p n ( ) S (end) K ( ) p (if) K (;) p n ( ) S (return) K ( Hostent.Name.) p (all) K (;) p n ( ) S (end) K ( Name_Of;) p n () N ( ) S (-----------------) c n ( ) p (-- Parse_Entry --) c n ( ) p (-----------------) c n () p n ( ) S (function ) K (Parse_Entry) l ( \(Host : Hostent\)) p n ( ) S (return) K ( Host_Entry) p n ( ) S (is) K n ( C_Aliases : ) p (constant) K ( Thin.Chars_Ptr_Array :=) p n ( Chars_Ptr_Pointers.Value \(Host.H_Aliases\);) N ( C_Addr : ) S (constant) K ( In_Addr_Access_Array :=) p n ( In_Addr_Access_Pointers.Value) N ( \(Host.H_Addr_List\);) N ( Result : Host_Entry \(N_Aliases => C_Aliases'Length - 1,) N ( N_Addresses => C_Addr'Length - 1\);) N ( ) S (begin) K n ( Result.Name := ) p (new) K ( String'\(Value \(Host.H_Name\)\);) p n (s-garnam.adb) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Page: (6) 6 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (for) K ( I ) p (in) K ( 1 .. Result.Aliases'Last ) p (loop) K n ( ) p (declare) K n ( Index : Natural := I - 1 + Natural \(C_Aliases'First\);) p n ( Current : chars_ptr ) S (renames) K ( C_Aliases \(size_t \(Index\)\);) p n ( ) S (begin) K n ( Result.Aliases \(I\) := ) p (new) K ( String'\(Value \(Current\)\);) p n ( ) S (end) K (;) p n ( ) S (end) K ( ) p (loop) K (;) p n ( ) S (for) K ( I ) p (in) K ( Result.Addresses'Range ) p (loop) K n ( ) p (declare) K n ( Index : Natural := I - 1 + Natural \(C_Addr'First\);) p n ( Current : In_Addr_Access ) S (renames) K ( C_Addr \(Index\);) p n ( ) S (begin) K n ( Result.Addresses \(I\) := To_Address \(Current.) p (all) K (\);) p n ( ) S (end) K (;) p n ( ) S (end) K ( ) p (loop) K (;) p n ( ) S (return) K ( Result;) p n ( ) S (end) K ( Parse_Entry;) p n () N ( ) S (------------------------) c n ( ) p (-- Raise_Naming_Error --) c n ( ) p (------------------------) c n () p n ( ) S (procedure ) K (Raise_Naming_Error) l n ( \(Errno : ) p (in) K ( C.Int;) p n ( Message : ) S (in) K ( String\)) p n ( ) S (is) K n () p n ( ) S (function ) K (Error_Message) l ( return) K ( String;) p n ( ) S (-- Return the message according to Errno.) c n () p n ( ) S (-------------------) c n ( ) p (-- Error_Message --) c n ( ) p (-------------------) c n () p n ( ) S (function ) K (Error_Message) l ( return) K ( String ) p (is) K n ( ) p (begin) K n ( ) p (case) K ( Errno ) p (is) K n ( ) p (when) K ( Host_Not_Found => ) p (return) K ( ") p (Host not found) str (";) p n ( ) S (when) K ( Try_Again => ) p (return) K ( ") p (Try again) str (";) p n ( ) S (when) K ( No_Recovery => ) p (return) K ( ") p (No recovery) str (";) p n ( ) S (when) K ( No_Address => ) p (return) K ( ") p (No address) str (";) p n ( ) S (when) K ( ) p (others) K ( => ) p (return) K ( ") p (Unknown error) str (" &) p n ( C.Int'Image \(Errno\);) N ( ) S (end) K ( ) p (case) K (;) p n ( ) S (end) K ( Error_Message;) p n () N ( ) S (begin) K n ( Ada.Exceptions.Raise_Exception \(Naming_Error'Identity,) p n ( Error_Message & ") S (: ) str (" & Message\);) p n ( ) S (end) K ( Raise_Naming_Error;) p n () N ( ) S (----------------) c n ( ) p (-- To_Address --) c n ( ) p (----------------) c n () p n ( ) S (function ) K (To_Address) l ( \(Addr : In_Addr\) ) p (return) K ( Address) p n ( ) S (is) K n ( ) p (begin) K n ( ) p (return) K ( \(H1 => Address_Component \(Addr.S_B1\),) p n ( H2 => Address_Component \(Addr.S_B2\),) N ( H3 => Address_Component \(Addr.S_B3\),) N ( H4 => Address_Component \(Addr.S_B4\)\);) N ( ) S (end) K ( To_Address;) p n () N ( ) S (----------------) c n (s-garnam.adb) (right) (6) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (6) footer end % of iso1dict pagesave restore showpage %%Page: (7) 7 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (-- To_In_Addr --) c n ( ) p (----------------) c n () p n ( ) S (function ) K (To_In_Addr) l ( \(Addr : Address\) ) p (return) K ( In_Addr) p n ( ) S (is) K n ( ) p (begin) K n ( ) p (return) K ( \(S_B1 => unsigned_char \(Addr.H1\),) p n ( S_B2 => unsigned_char \(Addr.H2\),) N ( S_B3 => unsigned_char \(Addr.H3\),) N ( S_B4 => unsigned_char \(Addr.H4\)\);) N ( ) S (end) K ( To_In_Addr;) p n () N ( ) S (-----------) c n ( ) p (-- Value --) c n ( ) p (-----------) c n () p n ( ) S (function ) K (Value) l ( \(Add : String\) ) p (return) K ( Address) p n ( ) S (is) K n ( ) p (function ) K (Convert) l ( is) K n ( ) p (new) K ( Unchecked_Conversion \(Source => unsigned_long,) p n ( Target => In_Addr\);) N ( C_Add : chars_ptr := New_String \(Add\);) N ( Converted : ) S (constant) K ( In_Addr := Convert \(C_Inet_Addr \(C_Add\)\);) p n ( ) S (begin) K n ( Free \(C_Add\);) p n ( ) S (return) K ( \(H1 => Address_Component \(Converted.S_B1\),) p n ( H2 => Address_Component \(Converted.S_B2\),) N ( H3 => Address_Component \(Converted.S_B3\),) N ( H4 => Address_Component \(Converted.S_B4\)\);) N ( ) S (end) K ( Value;) p n () N (end) K ( System.Garlic.Naming;) p n (s-garnam.adb) (right) (7) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (7) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/snacc.ps0000644000000000000000000001305414233473143013342 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (-- This file is extracted from the Snacc distribution.) c n (-- Parts have be cut to win bytes, and the result is probably meaningless.) N (--) N () p n (RFC1213-MIB DEFINITIONS ::= ) S (BEGIN) L n () p n ( ) S (IMPORTS) L n ( mgmt, NetworkAddress, ) p (IpAddress) k (, Counter, ) p (Gauge) k (,) p n ( ) S (TimeTicks) k n ( FROM RFC1155-SMI) p n () N (-- OBJECT-TYPE) c n (-- FROM RFC-1212) N () p n ( ;) N () N ( ) S (-- MIB-II \(same prefix as MIB-I\)) c n () p n ( mib-2 ) S (OBJECT) k ( ) p (IDENTIFIER) k ( ::= { mgmt 1 }) p n () N ( ) S (-- textual conventions) c n () p n ( ) S (DisplayString) k ( ::=) p n ( ) S (OCTET) k ( ) p (STRING) k n ( ) p (-- This data type is used to model textual information taken) c n ( ) p (-- from the NVT ASCII character set. By convention, objects) c n ( ) p (-- with this syntax are declared as having) c n ( ) p (-- SIZE \(0..255\)) c n () p n ( ) S (-- groups in MIB-II) c n () p n ( system ) S (OBJECT) k ( ) p (IDENTIFIER) k ( ::= { mib-2 1 }) p n () N ( ) S (-- historical \(some say hysterical\)) c n ( ) p (-- cmot OBJECT IDENTIFIER ::= { mib-2 9 }) c n () p n ( transmission ) S (OBJECT) k ( ) p (IDENTIFIER) k ( ::= { mib-2 10 }) p n () N () N ( ) S (-- the Interfaces table) c n () p n ( ) S (-- The Interfaces table contains information on the entity's) c n ( ) p (-- interfaces. Each interface is thought of as being) c n ( ) p (-- attached to a `subnetwork'. Note that this term should) c n ( ) p (-- not be confused with `subnet' which refers to an) c n ( ) p (-- addressing partitioning scheme used in the Internet suite) c n ( ) p (-- of protocols.) c n () p n ( ifTable ) S (OBJECT-TYPE) K n ( ) p (SYNTAX) K ( ) p (SEQUENCE) K ( ) p (OF) K ( IfEntry) p n ( ) S (ACCESS) K ( not-accessible) p n ( ) S (STATUS) K ( mandatory) p n ( ) S (DESCRIPTION) K n ( ") p (A list of interface entries. The number of) str n ( entries is given by the value of ifNumber.) S (") p n ( ::= { interfaces 2 }) N () N ( IfEntry ::=) N ( ) S (SEQUENCE) K ( {) p n ( ifIndex) N ( ) S (INTEGER) k (,) p n ( ifDescr) N ( ) S (DisplayString) k (,) p n ( ifType) N ( ) S (INTEGER) k (,) p n ( ifMtu) N (snacc.mib) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (INTEGER) k (,) p n ( ifSpeed) N ( ) S (Gauge) k (,) p n ( ifPhysAddress) N ( ) S (PhysAddress) k (,) p n ( ifSpecific) N ( ) S (OBJECT) k ( ) p (IDENTIFIER) k n ( }) p n () N () N ( ifType ) S (OBJECT-TYPE) K n ( ) p (SYNTAX) K ( ) p (INTEGER) k ( {) p n ( other\(1\), ) S (-- none of the following) c n ( regular1822\(2\),) p n ( hdh1822\(3\),) N ( ddn-x25\(4\),) N ( rfc877-x25\(5\),) N ( e1\(19\), ) S (-- european equiv. of T-1) c n ( basicISDN\(20\),) p n ( primaryISDN\(21\), ) S (-- proprietary serial) c n ( propPointToPointSerial\(22\),) p n ( ppp\(23\),) N ( softwareLoopback\(24\),) N ( eon\(25\), ) S (-- CLNP over IP [11]) c n ( ethernet-3Mbit\(26\),) p n ( nsip\(27\), ) S (-- XNS over IP) c n ( slip\(28\), ) p (-- generic SLIP) c n ( ultra\(29\), ) p (-- ULTRA technologies) c n ( ds3\(30\), ) p (-- T-3) c n ( sip\(31\), ) p (-- SMDS) c n ( frame-relay\(32\)) p n ( }) N ( ) S (ACCESS) K ( read-only) p n ( ) S (STATUS) K ( mandatory) p n ( ) S (DESCRIPTION) K n ( ") p (The type of interface, distinguished according to) str n ( the physical/link protocol\(s\) immediately `below') N ( the network layer in the protocol stack.) S (") p n ( ::= { ifEntry 3 }) N () N () N (END) L n (snacc.mib) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/space.ps0000644000000000000000000000505014233473143013343 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (REM Script to check space left in database.) c n (REM ) N (DECLARE) K n ( ) p (CURSOR) K ( tot_space ) p (IS) K n ( ) p (SELECT) K ( a.tablespace_name, ) p (sum) K (\(a.bytes\) ) p (FROM) K ( dba_data_files a) p n ( ) S (GROUP) K ( ) p (BY) K ( tablespace_name;) p n ( tbl_tot ) S (VARCHAR2) K (\(50\);) p n ( byt_tot ) S (NUMBER) K (\(13\);) p n ( ) S (CURSOR) K ( free_space ) p (IS) K n ( ) p (SELECT) K ( ) p (sum) K (\(b.bytes\) ) p (FROM) K ( dba_free_space b) p n ( ) S (WHERE) K ( b.tablespace_name = tbl_tot) p n ( ) S (GROUP) K ( ) p (BY) K ( b.tablespace_name;) p n ( byt_free ) S (NUMBER) K (\(13\);) p n ( pct_used ) S (NUMBER) K (\(3\);) p n (/* ) c n ( * Here are some useless comments, inserted for testing a2ps) N ( */) N (BEGIN) K n ( DBMS_OUTPUT.PUT_LINE \(RPAD\(') p (TABLESPACE) str (',30,') p ( ) str ('\) || LPAD\(') p (Total Bytes) str (',17,') p ( ) str ('\) ||) p n ( LPAD\(') S (Free Bytes) str (',17,') p ( ) str ('\)) p n ( || LPAD\(') S (% Used) str (',10,') p ( ) str ('\)\);) p n ( DBMS_OUTPUT.PUT_LINE \(RPAD\(') S (-) str (',79,') p (-) str ('\)\);) p n ( ) S (LOOP) K n ( ) p (IF) K ( ) p (NOT) K ( tot_space%ISOPEN) p n ( ) S (THEN) K n ( ) p (OPEN) K ( tot_space;) p n ( ) S (END) K ( ) p (IF) K (;) p n ( ) S (FETCH) K ( tot_space ) p (INTO) K n ( tbl_tot,) p n ( byt_tot;) N ( ) S (IF) K ( tot_space%FOUND) p n ( ) S (THEN) K n ( ) p (OPEN) K ( free_space;) p n ( ) S (FETCH) K ( free_space ) p (INTO) K ( byt_free;) p n ( ) S (IF) K ( free_space%FOUND) p n ( ) S (THEN) K n ( pct_used := TRUNC\(\(\(1 - \(byt_free/byt_tot\)\) * 100\),0\);) p n ( DBMS_OUTPUT.PUT_LINE \(RPAD\(tbl_tot,30,') S ( ) str ('\) || LPAD\(byt_tot,17,') p ( ) str ('\) || LP) p n (AD\(byt_free,17,') S ( ) str ('\)) p n ( || LPAD\(pct_used,10,') S ( ) str ('\)\);) p n ( ) S (END) K ( ) p (IF) K (;) p n ( ) S (CLOSE) K ( free_space;) p n ( ) S (ELSE) K n ( ) p (EXIT) K (;) p n ( ) S (END) K ( ) p (IF) K (;) p n ( ) S (END) K ( ) p (LOOP) K (;) p n ( ) S (CLOSE) K ( tot_space;) p n (END) K (;) p n (/) N (space.pls) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/sqlcrtbl.ps0000644000000000000000000002650014233473143014101 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (#) p 8 T (Skeleton script ) S (for) K ( creating a ) p (table) K n (#) p n (#) S 8 T (Notes:) N (#) S 8 T (- Script should be formatted exactly ) S (as) K ( indicated) p n (#) S 8 T (- The primary key columns should always be the first columns indicated) N (#) S 8 T (- ) S (All) K ( SQL statements should be terminated ) p (with) K ( a /) p n (#) S 8 T (- Primary key, foreign key, ) S (and) K ( ) p (unique) K ( constraints are out-) p (of) K (-line.) p n (#) S 8 T (- Multi-) S (column) K ( constraints are out-) p (of) K (-line.) p n (#) S 8 T (- ) S (All) K ( other constraints are ) p (in) K (-line.) p n (#) S 8 T (- ) S (Remove all comments above the next line) c n (#=============================================================================) p n (# Name :) N (# Created ) S (On) K (:) p n (# Created ) S (By) K (:) p n (# SCN No :) N (# Purpose :) N (#==============================================================================) N (drop) K ( ) p (table) K ( owner.table_name) p n (/) N (create) K ( ) p (table) K ( owner.table_name \() p n () S 8 T (column_name) S 24 T () S (varchar2) K (\(4\)) p 40 T (constraint table_name_nn1 ) S (not) K ( ) p (null) K (,) p n () S 8 T (column_name) S 24 T () S (varchar2) K (\(10\),) p n () S 8 T (column_name) S 24 T () S (number) K (\(8,2\) ) p 40 T (constraint ) N () S 8 T () S 16 T () S 24 T () S 32 T () S 40 T (table_name_ck1 \( column_name > 0\),) N () S 8 T (column_name) S 24 T () S (number) K (\(4,2\)) p 40 T () S (default) K ( 0,) p n () S 8 T (column_name) S 24 T () S (date) K (,) p n () S 8 T (.) N () S 8 T (.) N () S 8 T (.) N () S 8 T (constraint table_name_pk1) N () S 8 T () S 16 T (primary key \(column_name, column_name, ...\)) N (#) N (# ) S (All) K ( constraints that ) p (create) K ( an ) p (index) K ( must have a USING ) p (INDEX) K ( clause) p n (# ) S (To) K ( calculate the ) p (initial) K ( extent ) p (of) K ( an ) p (index) K (, use the following \(assuming) p n (# a 4K block ) S (size) K (\):) p n (# bytes = \(\(x*\(11+x+len\)\)/\(\(4096 - 90\)*\(1 - ) S (pctfree) K (/100\)\)\)*\(4096 * 1.1\)) p n (# ) S (where) K n (#) p 8 T (x ) S 16 T () S 24 T (= expected ) S (number) K ( ) p (of) K ( ) p (rows) K ( after 6 months) p n (#) S 8 T (z) S 16 T () S 24 T (= ) S (number) K ( ) p (of) K ( columns indexed) p n (#) S 8 T (len) S 16 T () S 24 T (= the average length ) S (of) K ( the indexed ) p (column) K n (#) p n (# Alternatively, you may use one ) S (of) K ( the following storage clauses:) p n (#) N (#) S 8 T (Small \(small indexes 20K ) S (to) K ( 2560K\)) p n (#) N (# storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n (#) S 8 T () S 16 T (freelists 1\)) N (#) N (#) S 8 T (Medium \(medium indexes 2560K ) S (to) K ( 40960K\)) p n (#) N (# storage \() S (initial) K ( 2560K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n (#) S 8 T () S 16 T (freelists 1\)) N (#) N (#) S 8 T (Large \(large indexes 40960K ) S (and) K ( up\)) p n (#) N (# storage \() S (initial) K ( 40960K next 320K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n (#) S 8 T () S 16 T (freelists 1\)) N (#) N () S 8 T () S 16 T (using ) S (index) K n () p 8 T () S 16 T () S 24 T (tablespace get_from_dba) N () S 8 T () S 16 T () S 24 T () S (pctfree) K ( 10) p n () S 8 T () S 16 T () S 24 T (storage \() S (initial) K ( 20K) p n () S 8 T () S 16 T () S 24 T () S 32 T ( next 20K) N () S 8 T () S 16 T () S 24 T () S 32 T ( minextents 1 ) N () S 8 T () S 16 T () S 24 T () S 32 T ( ) S (maxextents) K ( 99) p n () S 8 T () S 16 T () S 24 T () S 32 T ( pctincrease 100) N (sqlcrtbl.sql) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p 8 T () S 16 T () S 24 T () S 32 T ( freelists 1\)) N () S 8 T (constraint table_name_fk1) N () S 8 T () S 16 T (foreign key \(column_name\) references) N () S 8 T () S 16 T (table_name \(column_name\),) N () S 8 T (constraint table_name_u1) N () S 8 T () S 16 T () S (unique) K ( \(column_name, column_name\)) p n () S 8 T () S 16 T (using ) S (index) K n () p 8 T () S 16 T () S 24 T (tablespace get_from_dba) N () S 8 T () S 16 T () S 24 T () S (pctfree) K ( 10) p n () S 8 T () S 16 T () S 24 T (storage \() S (initial) K ( 20K) p n () S 8 T () S 16 T () S 24 T () S 32 T ( next 20K) N () S 8 T () S 16 T () S 24 T () S 32 T ( minextents 1 ) N () S 8 T () S 16 T () S 24 T () S 32 T ( ) S (maxextents) K ( 99) p n () S 8 T () S 16 T () S 24 T () S 32 T ( pctincrease 100) N () S 8 T () S 16 T () S 24 T () S 32 T ( freelists 1\)) N (# ) S (pctfree) K ( should be ) p (set) K ( ) p (to) K ( 0 ) p (for) K ( tables whose ) p (rows) K ( are ) p (not) K ( updated ) p n (# \(e.g. validation tables, control tables, history tables, etc.\)) N (# ) S (and) K ( whose columsn will ) p (all) K ( be complete \() p (not) K ( ) p (null) K (\) upon first ) p (insert) K (.) p n (#) N (# ) S (pctfree) K ( should be ) p (set) K ( higher than 10 ) p (for) K ( those ) p (rows) K ( ) p (where) K ( many columns) p n (# will initially be left ) S (null) K ( upon the first ) p (insert) K (, but will be updated) p n (# later) N (pctfree) K ( 10 pctused 40) p n (tablespace get_from_dba) N (#) N (# STORAGE CLAUSE) N (#) N (# ) S (Initial) K ( Extent) p n (# ) S (Initial) K ( extent storage should be ) p (set) K ( ) p (to) K ( the appropriate ) p (number) K ( ) p (of) K ( bytes) p n (# \(rounded ) S (to) K ( a multiple ) p (of) K ( 20K bytes\) this ) p (table) K ( ) p (is) K ( expected ) p (to) K ( grow ) p (to) K ( ) p (in) K ( ) p n (# the first 6 months.) N (# ) S (To) K ( calculate the ) p (initial) K ( extent, use the following \(assuming) p n (# a 4K block ) S (size) K (\):) p n (# bytes = \(\(x*\(5+y*\(1+len\)\)\)/\(\(4096 - 90\)*\(1 - ) S (pctfree) K (/100\)\)\)*4096) p n (# ) S (where) K n (#) p 8 T (x ) S 16 T () S 24 T (= expected ) S (number) K ( ) p (of) K ( ) p (rows) K ( after 6 months) p n (#) S 8 T (y) S 16 T () S 24 T (= ) S (number) K ( ) p (of) K ( columns ) p (in) K ( the ) p (table) K n (#) p 8 T (len) S 16 T () S 24 T (= the average ) S (column) K ( length) p n (#) S 8 T () S (pctfree) K () p 16 T () S 24 T (= obtained ) S (from) K ( guidelines above) p n (#) N (# Round the ) S (initial) K ( extent up ) p (to) K ( one ) p (of) K ( the ) p (values) K ( ) p (in) K ( the ) p (table) K ( below.) p n (# Determine the next extent ) S (from) K ( the ) p (table) K ( below \(again assuming 4K ) p n (# block sizes\):) N (#) N (#) S 8 T () S (Initial) K ( Extent) p 24 T () S 32 T (Next Extent) N (#) S 8 T (=============) S 24 T () S 32 T (===========) N (#) S 8 T ( 20K) S 24 T () S 32 T ( 20K) N (#) S 8 T ( 40K) S 24 T () S 32 T ( 20K) N (#) S 8 T ( 80K) S 24 T () S 32 T ( 20K) N (#) S 8 T ( 160K) S 24 T () S 32 T ( 20K) N (#) S 8 T ( 320K) S 24 T () S 32 T ( 20K) N (#) S 8 T ( 640K) S 24 T () S 32 T ( 20K) N (#) S 8 T ( 1280K) S 24 T () S 32 T ( 20K) N (#) S 8 T ( 2560K) S 24 T () S 32 T ( 20K) N (#) S 8 T ( 5120K) S 24 T () S 32 T ( 40K) N (#) S 8 T ( 10240K) S 24 T () S 32 T ( 80K) N (#) S 8 T ( 20480K) S 24 T () S 32 T ( 160K) N (#) S 8 T ( 40960K) S 24 T () S 32 T ( 320K) N (#) S 8 T ( 81920K) S 24 T () S 32 T ( 640K) N (#) S 8 T ( 163840K) S 24 T () S 32 T ( 1280K) N (#) S 8 T ( 327680K) S 24 T () S 32 T ( 2560K) N (#) S 8 T ( 655360K) S 24 T () S 32 T ( 5120K) N (#) S 8 T (1310720K) S 24 T () S 32 T (10240K) N (#) S 8 T (etc, ) S (with) K ( each succeeding value twice the previous value.) p n (#) N (# Alternatively, you may use one ) S (of) K ( the following storage clauses:) p n (sqlcrtbl.sql) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (#) p n (#) S 8 T (Small \(small tables 20K ) S (to) K ( 2560K\)) p n (#) N (# storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n (#) S 8 T () S 16 T (freelists 1\)) N (#) N (#) S 8 T (Medium \(medium tables 2560K ) S (to) K ( 40960K\)) p n (#) N (# storage \() S (initial) K ( 2560K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n (#) S 8 T () S 16 T (freelists 1\)) N (#) N (#) S 8 T (Large \(large tables 40960K ) S (and) K ( up\)) p n (#) N (# storage \() S (initial) K ( 40960K next 320K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n (#) S 8 T () S 16 T (freelists 1\)) N (#) N (storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99 pctincrease 100) p n () S 8 T () S 16 T (freelists 1\)) N (/) N (#) N (# Comments are required ) S (on) K ( the ) p (table) K ( ) p (and) K ( ) p (all) K ( columns.) p n (# Comments should be ) S (in) K ( upper ) p (and) K ( lower case, should be terminated ) p (by) K ( a) p n (# period, ) S (and) K ( cannot be longer than 255 bytes.) p n (#) N (comment) K ( ) p (on) K ( ) p (table) K ( table_name ) p (is) K n (') p (Table Alias: XXXX. Add more comment on the table, it can be up to 255 bytes long.) str (') p n (/) N (comment) K ( ) p (on) K ( ) p (column) K ( table_name.column_name ) p (is) K n (') p (This is the comment on this column. A column comment is required.) str (') p n (/) N (comment) K ( ) p (on) K ( ) p (column) K ( table_name.column_name ) p (is) K n (') p (This is another comment on this column. A column comment is required.) str (') p n (/) N (#) N (# You may need ) S (to) K ( ) p (create) K ( other indexes ) p (for) K ( performance reasons.) p n (#) N (create) K ( ) p (index) K ( table_name_n1 ) p (on) K ( table_name \(column_name\)) p n (tablespace get_from_dba) N (pctfree) K ( 10) p n (storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99) p n () S 8 T (pctincrease 100 freelists 1\)) N (/) N (create) K ( ) p (index) K ( table_name_n2 ) p (on) K ( table_name \(column_name\)) p n (tablespace get_from_dba) N (pctfree) K ( 10) p n (storage \() S (initial) K ( 20K next 20K minextents 1 ) p (maxextents) K ( 99) p n () S 8 T (pctincrease 100 freelists 1\)) N (/) N (# ) N (# if this ) S (table) K ( requires a key assigned ) p (by) K ( sequence, ) p (create) K ( the sequence) p n (#) N (create) K ( sequence table_name_pk_sq ) p (increment) K ( ) p (by) K ( 1 ) p (start) K ( ) p (with) K ( 1) p n (/) N (# ) S (public) K ( synonyms may be required) p n (#) N (create) K ( ) p (public) K ( ) p (synonym) K ( table_name ) p (for) K ( table_name) p n (/) N (create) K ( ) p (public) K ( ) p (synonym) K ( table_name_pk_sq ) p (for) K ( table_name_pk_sq) p n (/) N (#) N (sqlcrtbl.sql) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/sqlinit.ps0000644000000000000000000001647614233473143013751 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (#) p n (##############################################################################) N (# Example INIT.ORA ) S (file) K n (#) p n (# This ) S (file) K ( ) p (is) K ( provided ) p (by) K ( Oracle Corporation ) p (to) K ( help you customize) p n (# your RDBMS installation ) S (for) K ( your site. Important ) p (system) K ( parameters) p n (# are discussed, ) S (and) K ( example settings given.) p n (#) N (# ) S (Some) K ( parameter settings are ) p (generic) K ( ) p (to) K ( ) p (any) K ( ) p (size) K ( installation.) p n (# ) S (For) K ( parameters that require different ) p (values) K ( ) p (in) K ( different ) p (size) K n (# installations, three scenarios have been provided: SMALL, MEDIUM) p n (# ) S (and) K ( LARGE. ) p (Any) K ( parameter that needs ) p (to) K ( be tuned according ) p (to) K n (# installation ) p (size) K ( will have three settings, ) p (each) K ( one commented) p n (# according ) S (to) K ( installation ) p (size) K (.) p n (#) N (# ) S (Use) K ( the following ) p (table) K ( ) p (to) K ( approximate the SGA ) p (size) K ( needed ) p (for) K ( the) p n (# three scenarious provided ) S (in) K ( this ) p (file) K (:) p n (#) N (# ) S (-------Installation/Database Size------) c n (# SMALL MEDIUM LARGE) p n (# ) S (Block) K ( 2K 4500K 6800K 17000K) p n (# ) S (Size) K ( 4K 5500K 8800K 21000K) p n (#) N (# ) S (To) K ( ) p (set) K ( up a ) p (database) K ( that multiple instances will be ) p (using) K (, place) p n (# ) S (all) K ( ) p (instance) K (-specific parameters ) p (in) K ( one ) p (file) K (, ) p (and) K ( ) p (then) K ( have ) p (all) K n (# ) p (of) K ( these files point ) p (to) K ( a master ) p (file) K ( ) p (using) K ( the IFILE command.) p n (# This way, ) S (when) K ( you ) p (change) K ( a ) p (public) K n (# parameter, it will automatically ) p (change) K ( ) p (on) K ( ) p (all) K ( instances. This ) p (is) K n (# necessary, since ) p (all) K ( instances must ) p (run) K ( ) p (with) K ( the same value ) p (for) K ( many) p n (# parameters. ) S (For) K ( example, ) p (if) K ( you choose ) p (to) K ( ) p (use) K ( ) p (private) K ( ) p (rollback) K ( segments,) p n (# these must be specified ) S (in) K ( different files, but since ) p (all) K ( gc_*) p n (# parameters must be the same ) S (on) K ( ) p (all) K ( instances, they should be ) p (in) K ( one ) p (file) K (.) p n (#) N (# INSTRUCTIONS: Edit this ) S (file) K ( ) p (and) K ( the other INIT files it calls ) p (for) K n (# your site, either ) p (by) K ( ) p (using) K ( the ) p (values) K ( provided here ) p (or) K ( ) p (by) K ( providing) p n (# your ) S (own) K (. ) p (Then) K ( place an IFILE= line ) p (into) K ( ) p (each) K ( ) p (instance) K (-specific) p n (# INIT ) S (file) K ( that points ) p (at) K ( this ) p (file) K (.) p n (###############################################################################) N () N (db_name = oracle) N (db_files = 20) N (control_files = \(%RDBMS_FILES%\\ctl1orcl.ora\)) N () N (compatible = 7.3.0.0.0) N () N (db_file_multiblock_read_count = 8) S 40 T () S 48 T () S 56 T () S 64 T ( # ) S (INITIAL) K n (# db_file_multiblock_read_count = 8 # SMALL) p n (# db_file_multiblock_read_count = 16 # MEDIUM) N (# db_file_multiblock_read_count = 32 # LARGE) N () N (db_block_buffers = 50) S 24 T () S 32 T () S 40 T ( # ) S (INITIAL) K n (# db_block_buffers = 200 # SMALL) p n (# db_block_buffers = 550 # MEDIUM) N (# db_block_buffers = 3200 # LARGE) N () N (shared_pool_size = 500000 # ) S (INITIAL) K n (# shared_pool_size = 3500000 # SMALL) p n (# shared_pool_size = 6000000 # MEDIUM) N (# shared_pool_size = 9000000 # LARGE) N () N (log_checkpoint_interval = 10000) N () N (processes = 50 # ) S (INITIAL) K n (# processes = 50 # SMALL) p n (# processes = 100 # MEDIUM) N (# processes = 200 # LARGE) N (sqlinit.ora) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p n (dml_locks = 100 # ) S (INITIAL) K n (# dml_locks = 100 # SMALL) p n (# dml_locks = 200 # MEDIUM) N (# dml_locks = 500 # LARGE) N () N (log_buffer = 1000 # ) S (INITIAL) K n (# log_buffer = 8192 # SMALL) p n (# log_buffer = 32768 # MEDIUM) N (# log_buffer = 163840 # LARGE) N () N (sequence_cache_entries = 10 # ) S (INITIAL) K n (# sequence_cache_entries = 10 # SMALL) p n (# sequence_cache_entries = 30 # MEDIUM) N (# sequence_cache_entries = 100 # LARGE) N () N (sequence_cache_hash_buckets = 10 # ) S (INITIAL) K n (# sequence_cache_hash_buckets = 10 # SMALL) p n (# sequence_cache_hash_buckets = 23 # MEDIUM) N (# sequence_cache_hash_buckets = 89 # LARGE) N () N (# audit_trail = ) S (true) K ( # ) p (if) K ( you want auditing) p n (# timed_statistics = ) S (true) K ( # ) p (if) K ( you want timed ) p (statistics) K n (max_dump_file_size = 10240 # limit trace ) p (file) K ( ) p (size) K ( ) p (to) K ( 5 Meg ) p (each) K n () p n (# log_archive_start = ) S (true) K ( # ) p (if) K ( you want automatic archiving) p n () N (# ) S (define) K ( directories ) p (to) K ( store trace ) p (and) K ( alert files) p n (background_dump_dest=%RDBMS73%\\TRACE) N (user_dump_dest=%RDBMS73%\\TRACE) N () N (db_block_size = 2048) N () N (snapshot_refresh_processes = 0) N () N (remote_login_passwordfile = shared) c n (sqlinit.ora) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/sqlpq92.ps0000644000000000000000000000111114233473143013555 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (SELECT H.emp_no, ) p n ( H.hist_type,) N ( ) S (count) K (\(*\) ) p n (FROM emp_history H) N (GROUP BY H.emp_no, H.hist_type;) N (sqlpq92.sql) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/sqlspace.ps0000644000000000000000000000505314233473143014066 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (REM Script to check space left in database.) c n (REM ) N (DECLARE) K n ( ) p (CURSOR) K ( tot_space ) p (IS) K n ( ) p (SELECT) K ( a.tablespace_name, ) p (sum) K (\(a.bytes\) ) p (FROM) K ( dba_data_files a) p n ( ) S (GROUP) K ( ) p (BY) K ( tablespace_name;) p n ( tbl_tot ) S (VARCHAR2) K (\(50\);) p n ( byt_tot ) S (NUMBER) K (\(13\);) p n ( ) S (CURSOR) K ( free_space ) p (IS) K n ( ) p (SELECT) K ( ) p (sum) K (\(b.bytes\) ) p (FROM) K ( dba_free_space b) p n ( ) S (WHERE) K ( b.tablespace_name = tbl_tot) p n ( ) S (GROUP) K ( ) p (BY) K ( b.tablespace_name;) p n ( byt_free ) S (NUMBER) K (\(13\);) p n ( pct_used ) S (NUMBER) K (\(3\);) p n (/* ) c n ( * Here are some useless comments, inserted for testing a2ps) N ( */) N (BEGIN) K n ( DBMS_OUTPUT.PUT_LINE \(RPAD\(') p (TABLESPACE) str (',30,') p ( ) str ('\) || LPAD\(') p (Total Bytes) str (',17,') p ( ) str ('\) ||) p n ( LPAD\(') S (Free Bytes) str (',17,') p ( ) str ('\)) p n ( || LPAD\(') S (% Used) str (',10,') p ( ) str ('\)\);) p n ( DBMS_OUTPUT.PUT_LINE \(RPAD\(') S (-) str (',79,') p (-) str ('\)\);) p n ( ) S (LOOP) K n ( ) p (IF) K ( ) p (NOT) K ( tot_space%ISOPEN) p n ( ) S (THEN) K n ( ) p (OPEN) K ( tot_space;) p n ( ) S (END) K ( ) p (IF) K (;) p n ( ) S (FETCH) K ( tot_space ) p (INTO) K n ( tbl_tot,) p n ( byt_tot;) N ( ) S (IF) K ( tot_space%FOUND) p n ( ) S (THEN) K n ( ) p (OPEN) K ( free_space;) p n ( ) S (FETCH) K ( free_space ) p (INTO) K ( byt_free;) p n ( ) S (IF) K ( free_space%FOUND) p n ( ) S (THEN) K n ( pct_used := TRUNC\(\(\(1 - \(byt_free/byt_tot\)\) * 100\),0\);) p n ( DBMS_OUTPUT.PUT_LINE \(RPAD\(tbl_tot,30,') S ( ) str ('\) || LPAD\(byt_tot,17,') p ( ) str ('\) || LP) p n (AD\(byt_free,17,') S ( ) str ('\)) p n ( || LPAD\(pct_used,10,') S ( ) str ('\)\);) p n ( ) S (END) K ( ) p (IF) K (;) p n ( ) S (CLOSE) K ( free_space;) p n ( ) S (ELSE) K n ( ) p (EXIT) K (;) p n ( ) S (END) K ( ) p (IF) K (;) p n ( ) S (END) K ( ) p (LOOP) K (;) p n ( ) S (CLOSE) K ( tot_space;) p n (END) K (;) p n (/) N (sqlspace.pkb) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/strange.ps0000644000000000000000000003027214233473143013717 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (Topics:) p n ( Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) N ( Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) N ( Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) N ( Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) N () N () N (----------------------------------------------------------------------) N () N (Date: Sat, 09 Aug 1997 17:57:56 +0200) C n (From: ) K (Christian Gottschling ) L n (Subject: ) K (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) L n (Message-ID: <33EC9384.B15C03F4@pegasus.dvz.fh-aachen.de>) c n (References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua>) N () p n (W.I.N. \(Holding\)LLC wrote:) N () N (>) S ( \345\323\314\311 \367\331 - \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\312 \323\320\305\303\311\301\314\311\323\324 SAP - \304\314\321 \367\301\323 \322\305\301\314\330\316\301\321 \327\317\332\315\317\326\316\317\323\324\330) k n (>) p ( \324\322\325\304\317\325\323\324\322\317\312\323\324\327\301 \320\317 \313\317\316\324\322\301\313\324\325 \327 \341\327\323\324\322\301\314\311\312\323\313\311\310 \313\317\315\320\301\316\311\321\310. \344\314\321) k n (>) p ( \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\310 \323\320\305\303\311\301\314\311\323\324\317\327 \327 \304\322\325\307\311\310 \317\302\314\301\323\324\321\310 \320\322\317\307\322\301\315\315\311\322\317\327\301\316\311\321 -) k n (>) p ( \327\317\332\315\317\326\316\317 \342\345\363\360\354\341\364\356\357\345 \317\302\325\336\305\316\311\305 SAP \323 \320\317\323\314\305\304\325\300\335\311\315 \324\322\325\304\317\325\323\324\322\317\312\323\324\327\317\315.) k n (>) p ( \372\316\301\316\311\305 \341\316\307\314\311\312\323\313\317\307\317 \321\332\331\313\301 - \357\342\361\372\341\364\345\354\370\356\357!) k n (>) p ( \356\301\320\322\301\327\314\321\312\324\305 \320\317\314\316\317\305 \322\305\332\300\315\305 \(attachment file\) \316\301 \301\316\307\314\311\312\323\313\317\315 \321\332\331\313\305 \320\317 \301\304\322\305\323\325:) k n (>) p n (>) S ( sergch@anet.donetsk.ua) k n (>) p n (>) S ( \363\320\305\333\311\324\305!!!) k n () p n (Yes! Indeed!) N () N (SCNR.) N () N ( --) N (Christian Gottschling Datenverwurstungszentrale Juelich) N (... I'm sitting here all day, randomly pressing keys ...) N () N () N () N (------------------------------) N () N (Date: 9 Aug 1997 12:25:33 -0400) C n (From: ) K (brobin@freenet.columbus.oh.us \(Brian Robinson\)) L n (Subject: ) K (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) L n (Message-ID: <5si5lt$4cv@login.freenet.columbus.oh.us>) c n (References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua> <33EC9384.B15C03) N (F4@pegasus.dvz.fh-aachen.de>) N () p n (Christian Gottschling \(chg@pegasus.dvz.fh-aachen.de\) wrote:) N (: W.I.N. \(Holding\)LLC wrote:) N () N (: > \345\323\314\311 \367\331 - \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\312 \323\320\305\303\311\301\314\311\323\324 SAP - \304\314\321 \367\301\323 \322\305\301\314\330\316\301\321 \327\317\332\315\317\326\316\317\323\324\330) N (: > \324\322\325\304\317\325\323\324\322\317\312\323\324\327\301 \320\317 \313\317\316\324\322\301\313\324\325 \327 \341\327\323\324\322\301\314\311\312\323\313\311\310 \313\317\315\320\301\316\311\321\310. \344\314\321) N (: > \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\310 \323\320\305\303\311\301\314\311\323\324\317\327 \327 \304\322\325\307\311\310 \317\302\314\301\323\324\321\310 \320\322\317\307\322\301\315\315\311\322\317\327\301\316\311\321 -) N (: > \327\317\332\315\317\326\316\317 \342\345\363\360\354\341\364\356\357\345 \317\302\325\336\305\316\311\305 SAP \323 \320\317\323\314\305\304\325\300\335\311\315 \324\322\325\304\317\325\323\324\322\317\312\323\324\327\317\315.) N (: > \372\316\301\316\311\305 \341\316\307\314\311\312\323\313\317\307\317 \321\332\331\313\301 - \357\342\361\372\341\364\345\354\370\356\357!) N (: > \356\301\320\322\301\327\314\321\312\324\305 \320\317\314\316\317\305 \322\305\332\300\315\305 \(attachment file\) \316\301 \301\316\307\314\311\312\323\313\317\315 \321\332\331\313\305 \320\317 \301\304\322\305\323\325:) N (: >) N (: > sergch@anet.donetsk.ua) N (: >) N (: > \363\320\305\333\311\324\305!!!) N () N (: Yes! Indeed!) N () N (: SCNR.) N () N (: --) N (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) (Brian Robinson) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (: Christian Gottschling Datenverwurstungszentrale Juelich) p n (: ... I'm sitting here all day, randomly pressing keys ...) N () N (..... uhh.... \256\316\256\350\256y1\330\322}? ;\)) N (-- ) N (Brian Robinson | Sometimes its curious how much people are afraid of crazy) N (Cols., Ohio | people. Who is to determine who is sane and crazy? I myself) N (Student of WHS | am rather insane, some would say. Then again, im not the) N (Maxim\\Starmind | psycho beating himself with a rubber chicken in the corner.) N () N (------------------------------) N () N (Date: Sat, 09 Aug 1997 15:19:42 -0700) C n (From: ) K (Andy Schwartz ) L n (To: "W.I.N. \(Holding\)LLC" ) C n (Subject: ) K (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) L n (Message-ID: <33ECECFE.5566@mail.stlnet.com>) c n (References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua>) N () p n (IMHO, I think you should use \323\320\305\303\311\301\314\311\323\324 instead of \320\322\317\307\322\301\315\315\311\322\317.) N () N (.. Andy) N () N (W.I.N. \(Holding\)LLC wrote:) N (>) S ( ) k n (>) p ( \345\323\314\311 \367\331 - \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\312 \323\320\305\303\311\301\314\311\323\324 SAP - \304\314\321 \367\301\323 \322\305\301\314\330\316\301\321 \327\317\332\315\317\326\316\317\323\324\330) k n (>) p ( \324\322\325\304\317\325\323\324\322\317\312\323\324\327\301 \320\317 \313\317\316\324\322\301\313\324\325 \327 \341\327\323\324\322\301\314\311\312\323\313\311\310 \313\317\315\320\301\316\311\321\310. \344\314\321) k n (>) p ( \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\310 \323\320\305\303\311\301\314\311\323\324\317\327 \327 \304\322\325\307\311\310 \317\302\314\301\323\324\321\310 \320\322\317\307\322\301\315\315\311\322\317\327\301\316\311\321 -) k n (>) p ( \327\317\332\315\317\326\316\317 \342\345\363\360\354\341\364\356\357\345 \317\302\325\336\305\316\311\305 SAP \323 \320\317\323\314\305\304\325\300\335\311\315 \324\322\325\304\317\325\323\324\322\317\312\323\324\327\317\315.) k n (>) p ( \372\316\301\316\311\305 \341\316\307\314\311\312\323\313\317\307\317 \321\332\331\313\301 - \357\342\361\372\341\364\345\354\370\356\357!) k n (>) p ( \356\301\320\322\301\327\314\321\312\324\305 \320\317\314\316\317\305 \322\305\332\300\315\305 \(attachment file\) \316\301 \301\316\307\314\311\312\323\313\317\315 \321\332\331\313\305 \320\317 \301\304\322\305\323\325:) k n (>) p ( ) k n (>) p ( sergch@anet.donetsk.ua) k n (>) p ( ) k n (>) p ( \363\320\305\333\311\324\305!!!) k n () p n (------------------------------) N () N (Date: Sun, 10 Aug 1997 22:53:31 GMT) C n (From: ) K (ribo@mindspring.com \(Kevin Allegood\)) L n (Subject: ) K (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) L n (Message-ID: <5slgmt$g6@camel3.mindspring.com>) c n (References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua> <33ECECFE.5566@m) N (ail.stlnet.com>) N () p n (Andy Schwartz let escape his/her/whatever's) N (keyboard:) N () N (>) S (IMHO, I think you should use \323\320\305\303\311\301\314\311\323\324 instead of \320\322\317\307\322\301\315\315\311\322\317.) k n () p n (It depends on your version of Notes. For 4.5X, I'd use \323\320\305\303\311\301\314\311\323\324, but) N (for earlier versions \320\322\317\307\322\301\315\315\311\322\317 works fine. Incedentally, although) N (you can do it, I'd be careful about \304\317\325\323\324\322\317\312\323\324ing the SAP \323) N (\320\317\323\314\305\304\325\300\335\311\315 unless your really know what you're doing.) N () N (Kevin Allegood.) N () N (>) S (.. Andy) k n () p n (>) S (W.I.N. \(Holding\)LLC wrote:) k n (>) p (> ) k n (>) p (> \345\323\314\311 \367\331 - \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\312 \323\320\305\303\311\301\314\311\323\324 SAP - \304\314\321 \367\301\323 \322\305\301\314\330\316\301\321 \327\317\332\315\317\326\316\317\323\324\330) k n (>) p (> \324\322\325\304\317\325\323\324\322\317\312\323\324\327\301 \320\317 \313\317\316\324\322\301\313\324\325 \327 \341\327\323\324\322\301\314\311\312\323\313\311\310 \313\317\315\320\301\316\311\321\310. \344\314\321) k n (>) p (> \313\327\301\314\311\306\311\303\311\322\317\327\301\316\316\331\310 \323\320\305\303\311\301\314\311\323\324\317\327 \327 \304\322\325\307\311\310 \317\302\314\301\323\324\321\310 \320\322\317\307\322\301\315\315\311\322\317\327\301\316\311\321 -) k n (>) p (> \327\317\332\315\317\326\316\317 \342\345\363\360\354\341\364\356\357\345 \317\302\325\336\305\316\311\305 SAP \323 \320\317\323\314\305\304\325\300\335\311\315 \324\322\325\304\317\325\323\324\322\317\312\323\324\327\317\315.) k n (>) p (> \372\316\301\316\311\305 \341\316\307\314\311\312\323\313\317\307\317 \321\332\331\313\301 - \357\342\361\372\341\364\345\354\370\356\357!) k n (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) (Kevin Allegood) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (>) p (> \356\301\320\322\301\327\314\321\312\324\305 \320\317\314\316\317\305 \322\305\332\300\315\305 \(attachment file\) \316\301 \301\316\307\314\311\312\323\313\317\315 \321\332\331\313\305 \320\317 \301\304\322\305\323\325:) k n (>) p (> ) k n (>) p (> sergch@anet.donetsk.ua) k n (>) p (> ) k n (>) p (> \363\320\305\333\311\324\305!!!) k n () p n () N () N (------------------------------) N () N (End of forwarda004hb Digest) N (***************************) N (Re: \360\362\357\347\362\341\355\355\351\363\364\371!!! \362\301\302\317\324\301 \327 \341\367\363\364\362\341\354\351\351 \320\317 \313\317\316\324\322\301\313\324\325!) (Kevin Allegood) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/strip-0.ps0000644000000000000000000000146214233473143013551 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (This is an example of keyword) k n (This is an example of keyword strong) K n (This is an example of comment) c n (This is an example of Comment strong) C n (This is an example of label) l n (This is an example of Label strong) L n (This is an example of string) str n (This is an example of symbol) sy n (This is an example of error) e n (This is an example of header) (This is an example of footer) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/strip-1.ps0000644000000000000000000000142514233473143013551 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (This is an example of keyword) k n (This is an example of keyword strong) K n () p n (This is an example of Comment strong) C n (This is an example of label) l n (This is an example of Label strong) L n (This is an example of string) str n (This is an example of symbol) sy n (This is an example of error) e n (This is an example of header) (This is an example of footer) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/strip-2.ps0000644000000000000000000000141614233473143013552 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (This is an example of keyword) k n (This is an example of keyword strong) K n (This is an example of comment) c n () p n (This is an example of label) l n (This is an example of Label strong) L n (This is an example of string) str n (This is an example of symbol) sy n (This is an example of error) e n (This is an example of header) (This is an example of footer) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/strip-3.ps0000644000000000000000000000135714233473143013557 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (This is an example of keyword) k n (This is an example of keyword strong) K n () p n () N (This is an example of label) l n (This is an example of Label strong) L n (This is an example of string) str n (This is an example of symbol) sy n (This is an example of error) e n (This is an example of header) (This is an example of footer) () title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/symbol.ps0000644000000000000000000002322114233473143013555 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( 0, 0, 0 :) p (^@) sy () p 16 T ( 1, 1, 1 :) S (^A) sy () p 32 T ( 2, 2, 2 :) S (^B) sy () p 48 T ( 3, 3, 3 :) S (^C) sy n ( 4, 4, 4 :) p (^D) sy () p 16 T ( 5, 5, 5 :) S (^E) sy () p 32 T ( 6, 6, 6 :) S (^F) sy () p 48 T ( 7, 7, 7 :) S (^G) sy n ( 10, 8, 8 :) p (^H) sy () p 16 T ( 11, 9, 9 :) S () sy 32 T () S () p 40 T ( 12, 10, a :) N () S 8 T ( 13, 11, b :) S (^K) sy n ( 14, 12, c :) p n (symbol.pre) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p 8 T ( 15, 13, d :) N () S 8 T ( 16, 14, e :) S (^N) sy () p 24 T ( 17, 15, f :) S (^O) sy n ( 20, 16,10 :) p (^P) sy () p 16 T ( 21, 17,11 :) S (^Q) sy () p 32 T ( 22, 18,12 :) S (^R) sy () p 48 T ( 23, 19,13 :) S (^S) sy n ( 24, 20,14 :) p (^T) sy () p 16 T ( 25, 21,15 :) S (^U) sy () p 32 T ( 26, 22,16 :) S (^V) sy () p 48 T ( 27, 23,17 :) S (^W) sy n ( 30, 24,18 :) p (^X) sy () p 16 T ( 31, 25,19 :) S (^Y) sy () p 32 T ( 32, 26,1a :) S (^Z) sy () p 48 T ( 33, 27,1b :) S (^[) sy n ( 34, 28,1c :) p (^\\) sy () p 16 T ( 35, 29,1d :) S (^]) sy () p 32 T ( 36, 30,1e :) S (^^) sy () p 48 T ( 37, 31,1f :) S (^_) sy n ( 40, 32,20 :) p ( ) sy () p 16 T ( 41, 33,21 :) S (!) sy () p 32 T ( 42, 34,22 :) S (") sy () p 48 T ( 43, 35,23 :) S (#) sy n ( 44, 36,24 :) p ($) sy () p 16 T ( 45, 37,25 :) S (%) sy () p 32 T ( 46, 38,26 :) S (&) sy () p 48 T ( 47, 39,27 :) S (') sy n ( 50, 40,28 :) p (\() sy () p 16 T ( 51, 41,29 :) S (\)) sy () p 32 T ( 52, 42,2a :) S (*) sy () p 48 T ( 53, 43,2b :) S (+) sy n ( 54, 44,2c :) p (,) sy () p 16 T ( 55, 45,2d :) S (-) sy () p 32 T ( 56, 46,2e :) S (.) sy () p 48 T ( 57, 47,2f :) S (/) sy n ( 60, 48,30 :) p (0) sy () p 16 T ( 61, 49,31 :) S (1) sy () p 32 T ( 62, 50,32 :) S (2) sy () p 48 T ( 63, 51,33 :) S (3) sy n ( 64, 52,34 :) p (4) sy () p 16 T ( 65, 53,35 :) S (5) sy () p 32 T ( 66, 54,36 :) S (6) sy () p 48 T ( 67, 55,37 :) S (7) sy n ( 70, 56,38 :) p (8) sy () p 16 T ( 71, 57,39 :) S (9) sy () p 32 T ( 72, 58,3a :) S (:) sy () p 48 T ( 73, 59,3b :) S (;) sy n ( 74, 60,3c :) p (<) sy () p 16 T ( 75, 61,3d :) S (=) sy () p 32 T ( 76, 62,3e :) S (>) sy () p 48 T ( 77, 63,3f :) S (?) sy n (100, 64,40 :) p (@) sy () p 16 T (101, 65,41 :) S (A) sy () p 32 T (102, 66,42 :) S (B) sy () p 48 T (103, 67,43 :) S (C) sy n (104, 68,44 :) p (D) sy () p 16 T (105, 69,45 :) S (E) sy () p 32 T (106, 70,46 :) S (F) sy () p 48 T (107, 71,47 :) S (G) sy n (110, 72,48 :) p (H) sy () p 16 T (111, 73,49 :) S (I) sy () p 32 T (112, 74,4a :) S (J) sy () p 48 T (113, 75,4b :) S (K) sy n (114, 76,4c :) p (L) sy () p 16 T (115, 77,4d :) S (M) sy () p 32 T (116, 78,4e :) S (N) sy () p 48 T (117, 79,4f :) S (O) sy n (120, 80,50 :) p (P) sy () p 16 T (121, 81,51 :) S (Q) sy () p 32 T (122, 82,52 :) S (R) sy () p 48 T (123, 83,53 :) S (S) sy n (124, 84,54 :) p (T) sy () p 16 T (125, 85,55 :) S (U) sy () p 32 T (126, 86,56 :) S (V) sy () p 48 T (127, 87,57 :) S (W) sy n (130, 88,58 :) p (X) sy () p 16 T (131, 89,59 :) S (Y) sy () p 32 T (132, 90,5a :) S (Z) sy () p 48 T (133, 91,5b :) S ([) sy n (134, 92,5c :) p (\\) sy () p 16 T (135, 93,5d :) S (]) sy () p 32 T (136, 94,5e :) S (^) sy () p 48 T (137, 95,5f :) S (_) sy n (140, 96,60 :) p (`) sy () p 16 T (141, 97,61 :) S (a) sy () p 32 T (142, 98,62 :) S (b) sy () p 48 T (143, 99,63 :) S (c) sy n (144,100,64 :) p (d) sy () p 16 T (145,101,65 :) S (e) sy () p 32 T (146,102,66 :) S (f) sy () p 48 T (147,103,67 :) S (g) sy n (150,104,68 :) p (h) sy () p 16 T (151,105,69 :) S (i) sy () p 32 T (152,106,6a :) S (j) sy () p 48 T (153,107,6b :) S (k) sy n (154,108,6c :) p (l) sy () p 16 T (155,109,6d :) S (m) sy () p 32 T (156,110,6e :) S (n) sy () p 48 T (157,111,6f :) S (o) sy n (160,112,70 :) p (p) sy () p 16 T (161,113,71 :) S (q) sy () p 32 T (162,114,72 :) S (r) sy () p 48 T (163,115,73 :) S (s) sy n (164,116,74 :) p (t) sy () p 16 T (165,117,75 :) S (u) sy () p 32 T (166,118,76 :) S (v) sy () p 48 T (167,119,77 :) S (w) sy n (170,120,78 :) p (x) sy () p 16 T (171,121,79 :) S (y) sy () p 32 T (172,122,7a :) S (z) sy () p 48 T (173,123,7b :) S ({) sy n (174,124,7c :) p (|) sy () p 16 T (175,125,7d :}) S 32 T (176,126,7e :) S (~) sy () p 48 T (177,127,7f :) S (^?) sy n (200,128,80 :) p (M-^@) sy () p 24 T (201,129,81 :) S (M-^A) sy () p 48 T (202,130,82 :) S (M-^B) sy () p 72 T (203,131,) N (83 :) S (M-^C) sy n (204,132,84 :) p (M-^D) sy () p 24 T (205,133,85 :) S (M-^E) sy () p 48 T (206,134,86 :) S (M-^F) sy () p 72 T (207,135,) N (87 :) S (M-^G) sy n (210,136,88 :) p (M-^H) sy () p 24 T (211,137,89 :) S (M-^I) sy () p 48 T (212,138,8a :) S (M-^J) sy () p 72 T (213,139,) N (8b :) S (M-^K) sy n (214,140,8c :) p (M-^L) sy () p 24 T (215,141,8d :) S (M-^M) sy () p 48 T (216,142,8e :) S (M-^N) sy () p 72 T (217,143,) N (8f :) S (M-^O) sy n (220,144,90 :) p (M-^P) sy () p 24 T (221,145,91 :) S (M-^Q) sy () p 48 T (222,146,92 :) S (M-^R) sy () p 72 T (223,147,) N (93 :) S (M-^S) sy n (224,148,94 :) p (M-^T) sy () p 24 T (225,149,95 :) S (M-^U) sy () p 48 T (226,150,96 :) S (M-^V) sy () p 72 T (227,151,) N (97 :) S (M-^W) sy n (230,152,98 :) p (M-^X) sy () p 24 T (231,153,99 :) S (M-^Y) sy () p 48 T (232,154,9a :) S (M-^Z) sy () p 72 T (233,155,) N (9b :) S (M-^[) sy n (234,156,9c :) p (M-^\\) sy () p 24 T (235,157,9d :) S (M-^]) sy () p 48 T (236,158,9e :) S (M-^^) sy () p 72 T (237,159,) N (9f :) S (M-^_) sy n (240,160,a0 :) p (\240) sy () p 16 T (241,161,a1 :) S (\241) sy () p 32 T (242,162,a2 :) S (\242) sy () p 48 T (243,163,a3 :) S (\243) sy n (244,164,a4 :) p (\244) sy () p 16 T (245,165,a5 :) S (\245) sy () p 32 T (246,166,a6 :) S (\246) sy () p 48 T (247,167,a7 :) S (\247) sy n (250,168,a8 :) p (\250) sy () p 16 T (251,169,a9 :) S (\251) sy () p 32 T (252,170,aa :) S (\252) sy () p 48 T (253,171,ab :) S (\253) sy n (254,172,ac :) p (\254) sy () p 16 T (255,173,ad :) S (\255) sy () p 32 T (256,174,ae :) S (\256) sy () p 48 T (257,175,af :) S (\257) sy n (260,176,b0 :) p (\260) sy () p 16 T (261,177,b1 :) S (\261) sy () p 32 T (262,178,b2 :) S (\262) sy () p 48 T (263,179,b3 :) S (\263) sy n (264,180,b4 :) p (\264) sy () p 16 T (265,181,b5 :) S (\265) sy () p 32 T (266,182,b6 :) S (\266) sy () p 48 T (267,183,b7 :) S (\267) sy n (270,184,b8 :) p (\270) sy () p 16 T (271,185,b9 :) S (\271) sy () p 32 T (272,186,ba :) S (\272) sy () p 48 T (273,187,bb :) S (\273) sy n (274,188,bc :) p (\274) sy () p 16 T (275,189,bd :) S (\275) sy () p 32 T (276,190,be :) S (\276) sy () p 48 T (277,191,bf :) S (\277) sy n (300,192,c0 :) p (\300) sy () p 16 T (301,193,c1 :) S (\301) sy () p 32 T (302,194,c2 :) S (\302) sy () p 48 T (303,195,c3 :) S (\303) sy n (304,196,c4 :) p (\304) sy () p 16 T (305,197,c5 :) S (\305) sy () p 32 T (306,198,c6 :) S (\306) sy () p 48 T (307,199,c7 :) S (\307) sy n (310,200,c8 :) p (\310) sy () p 16 T (311,201,c9 :) S (\311) sy () p 32 T (312,202,ca :) S (\312) sy () p 48 T (313,203,cb :) S (\313) sy n (314,204,cc :) p (\314) sy () p 16 T (315,205,cd :) S (\315) sy () p 32 T (316,206,ce :) S (\316) sy () p 48 T (317,207,cf :) S (\317) sy n (320,208,d0 :) p (\320) sy () p 16 T (321,209,d1 :) S (\321) sy () p 32 T (322,210,d2 :) S (\322) sy () p 48 T (323,211,d3 :) S (\323) sy n (324,212,d4 :) p (\324) sy () p 16 T (325,213,d5 :) S (\325) sy () p 32 T (326,214,d6 :) S (\326) sy () p 48 T (327,215,d7 :) S (\327) sy n (330,216,d8 :) p (\330) sy () p 16 T (331,217,d9 :) S (\331) sy () p 32 T (332,218,da :) S (\332) sy () p 48 T (333,219,db :) S (\333) sy n (334,220,dc :) p (\334) sy () p 16 T (335,221,dd :) S (\335) sy () p 32 T (336,222,de :) S (\336) sy () p 48 T (337,223,df :) S (\337) sy n (340,224,e0 :) p (\340) sy () p 16 T (341,225,e1 :) S (\341) sy () p 32 T (342,226,e2 :) S (\342) sy () p 48 T (343,227,e3 :) S (\343) sy n (344,228,e4 :) p (\344) sy () p 16 T (345,229,e5 :) S (\345) sy () p 32 T (346,230,e6 :) S (\346) sy () p 48 T (347,231,e7 :) S (\347) sy n (350,232,e8 :) p (\350) sy () p 16 T (351,233,e9 :) S (\351) sy () p 32 T (352,234,ea :) S (\352) sy () p 48 T (353,235,eb :) S (\353) sy n (354,236,ec :) p (\354) sy () p 16 T (355,237,ed :) S (\355) sy () p 32 T (356,238,ee :) S (\356) sy () p 48 T (357,239,ef :) S (\357) sy n (symbol.pre) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (360,240,f0 :) p (M-p) sy () p 16 T (361,241,f1 :) S (\361) sy () p 32 T (362,242,f2 :) S (\362) sy () p 48 T (363,243,f3 :) S (\363) sy n (364,244,f4 :) p (\364) sy () p 16 T (365,245,f5 :) S (\365) sy () p 32 T (366,246,f6 :) S (\366) sy () p 48 T (367,247,f7 :) S (\367) sy n (370,248,f8 :) p (\370) sy () p 16 T (371,249,f9 :) S (\371) sy () p 32 T (372,250,fa :) S (\372) sy () p 48 T (373,251,fb :) S (\373) sy n (374,252,fc :) p (\374) sy () p 16 T (375,253,fd :) S (\375) sy () p 32 T (376,254,fe :) S (\376) sy () p 48 T () N (symbol.pre) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/synopsys.ps0000644000000000000000000000420214233473143014155 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (/* presentation */) c n (company = ") p (Sorep) str (" ;) p n (designer = ") S (Philippe LE VAN) str (";) p n () N (/* alias communs */) c n (alias) K ( h history) p n () N (/* presentation generale */) c n (view_background = ") p (black) str (";) p n (set_layer) K ( pin_name_layer visible true) p n (set_layer) K ( pin_name_layer red 65535) p n (set_layer) K ( pin_name_layer green 0) p n (set_layer) K ( pin_name_layer blue 0) p n () N (/* nom des bus pour un "change_names" */) c n (bus_naming_style = ") p (%s\(%d\)) str (") p n () N (/* definition des libraries */) c n (search_path={") p (/dtmref/ws/wskit/exploitation/erc32/V1.4.1/Global/SYNOPSYS/SYNOPSYS_1998.08) str ("}) p n (library_fast = {") S (SC2RTP_BASIC_fast_5p5v_m55c.db) str ("}) p n (library_nom = {") S (SC2RTP_BASIC_nom_5p0v_25c.db) str ("}) p n (library_slow = {") S (SC2RTP_BASIC_slow_2p7v_145c.db) str ("}) p n (link_library = {") S (*) str ("} + library_slow) p n (target_library = library_slow) N (symbol_library = {") S (SC2RTP_BASIC.sdb) str ("}) p n () N (/* ecriture d'une netliste vhdl */) c n (vhdlout_use_packages = {IEEE.std_logic_1164,sc2rtp_basic.basic_vcomponents.all}) p n (vhdlout_write_components = ") S (FALSE) str (") p n () N (/* lecture de l'edif */) c n (edifin_ground_net_property_name = ") p (INIT) str (") p n (edifin_ground_net_property_value = ") S (0SF) str (") p n ( ) N (edifin_power_net_property_name = ") S (INIT) str (") p n (edifin_power_net_property_value = ") S (1SF) str (") p n () N (/* ecriture de l'edif \(pour qu'il ne retienne pas les info de schematic\) */) c n (edifout_netlist_only = ") p (TRUE) str (") p n () N (/* commande d'impression */) c n (plot_command = ") p (lpr -Planteeq1) str (") p n () N (synopsys.setup) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/tabulation.ps0000644000000000000000000000550714233473143014421 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () str n (iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii) N (iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii) N () p n (\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253) sy n (\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253\253) N (\\texttt{) p n (................................................................................) N (................................................................................) N (................................................................................) N (.........) N (}) N () e n ( ^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) N (^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) N (^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) N (^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q^Q) N () p n (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) S 80 T () N (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N () L n (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) S 80 T () N (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N () p n (\\invisible{) N (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) S 80 T () N (1) S 8 T (2) S 16 T (3) S 24 T (4) S 32 T (5) S 40 T (6) S 48 T (7) S 56 T (8) S 64 T (9) S 72 T (0) N (}) N () c n (m) S 8 T (mm) S 16 T (mmm) S 24 T (mmmm) S 32 T (mmmmm) S 40 T (mmmmmm) S 48 T (mmmmmmm) S 56 T (mmmmmmmm) S 72 T (mmmmmmmm) N (m) S 8 T (mmmmmmmmmmm) S 24 T (mmmmmmmmmmm) S 40 T (mmmmmmmmmmmm) N () p n () K n (\351) S 8 T (\351\351) S 16 T (\351\351\351) S 24 T (\351\351\351\351) S 32 T (\351\351\351\351\351) S 40 T (\351\351\351\351\351\351) S 48 T (\351\351\351\351\351\351\351) S 56 T (\351\351\351\351\351\351\351\351) S 72 T (\351\351\351\351\351\351\351\351) N (\351) S 8 T (\351\351\351\351\351\351\351\351\351\351\351) S 24 T (\351\351\351\351\351\351\351\351\351\351\351) S 40 T (\351\351\351\351\351\351\351\351\351\351\351\351) N () p n (tabulation.pre) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/template.ps0000644000000000000000000001623014233473143014065 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (class) K ( TEMPLATE2 ) p (inherit) K n () p n ( ARGUMENTS) N ( ) S (undefine) K n () p 8 T ( copy, consistent, is_equal, setup) N ( ) S (end) K n () p n ( TEMPLATE2_LEX) N ( ) S (redefine) K n () p 8 T ( store_analyzer,) N () S 8 T ( retrieve_analyzer) N ( ) S (end) K n () p n (creation) K n () p n ( make) N () N (feature) K n () p n ( root_line: TEMPLATE_CLAUSE;) N () N ( analyzer_file_name: ) S (STRING) k ( ) p (is) K ( ") p (/inf/nana/infthes/demaille/eiffel/template2/lexical/template2_analyz) str n (er) S (";) p n () N ( make ) S (is) K n ( ) p (local) K n () p 8 T ( text_name: ) S (STRING) k (;) p n () S 8 T ( analyzer_file: RAW_FILE;) N () S 8 T ( analyzer_needs_storing: ) S (BOOLEAN) k (;) p n () S 8 T ( text_file: PLAIN_TEXT_FILE;) N () S 8 T ( argument_position: ) S (INTEGER) k n ( ) p (do) K n () p 8 T ( ) S (if) K ( argument_count = 0 ) p (then) K n () p 8 T ( io.putstring \(") S (Usage: template2 file_name%N) str ("\);) p n () S 8 T ( ) S (else) K n () p 8 T ( !! root_line.make;) N () S 8 T ( io.putstring \(Separator_line_message\);) N () S 8 T ( io.putstring \(") S (TEMPLATE2) str ("\);) p n () S 8 T ( io.putstring \(") S ( \(Version 1.0\).) str 48 T ( \(C\)) S ("\);) p n () S 8 T ( !! analyzer_file.make \(analyzer_file_name\);) N () S 8 T ( ) S (if) K ( analyzer_file.exists ) p (then) K n () p 8 T ( io.putstring \(") S (%NRetrieving analyzer . . .) str ("\);) p n () S 8 T ( retrieve_analyzer \(analyzer_file_name\);) N () S 8 T ( root_line.document.set_lexical \(analyzer\);) N () S 8 T ( io.putstring \(") S (DONE) str ("\);) p n () S 8 T ( ) S (else) K n () p 8 T ( io.putstring \(") S (%NBuilding analyzer ... ) str ("\);) p n () S 8 T ( build \(root_line.document\);) N () S 8 T ( analyzer_needs_storing := ) S (true) K n () p 8 T ( io.putstring \(") S (DONE) str ("\);) p n () S 8 T ( ) S (end) K (;) p n () S 8 T ( ) N () S 8 T ( ) S (-- Test for left-recursion ?) c n () p 8 T ( ) S (-- test_left_recursion;) c n () p 8 T ( ) N () S 8 T ( text_name := argument \(1\);) N () S 8 T ( !! text_file.make \(text_name\);) N () S 8 T ( ) S (if) K ( \() p (not) K ( text_file.exists\) ) p (then) K n () p 8 T ( io.putstring \(text_name\);) N () S 8 T ( io.putstring \(") S (: No such file or directory%N) str ("\);) p n () S 8 T ( ) S (else) K n () p 8 T ( root_line.document.set_input_file \(text_name\);) N () S 8 T ( root_line.document.get_token;) N () S 8 T ( io.putstring \(") S (%NParsing document in file: ) str ("\)) p n () S 8 T ( io.putstring \(text_name\);) N () S 8 T ( io.putstring \(") S ( ... ) str ("\);) p n (template.e) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p 8 T ( root_line.parse;) N () S 8 T ( ) S (if) K ( root_line.parsed ) p (then) K n () p 8 T () S 16 T ( io.putstring \(") S (DONE) str ("\);) p n () S 8 T () S 16 T ( io.putstring \(") S (%NParse tree ... %N) str ("\);) p n () S 8 T () S 16 T ( root_line.display \(io.output\);) N () S 8 T () S 16 T ( io.putstring \(") S (%NApplying semantics ... ) str ("\);) p n () S 8 T () S 16 T ( root_line.semantics;) N () S 8 T () S 16 T ( io.putstring \(") S (DONE%N) str ("\);) p n () S 8 T ( ) S (else) K n () p 8 T () S 16 T ( io.putstring \(") S (%NSyntax error with document) str ("\);) p n () S 8 T ( ) S (end) K (;) p n () S 8 T ( ) S (end) K n () p 8 T ( ) S (if) K ( analyzer_needs_storing ) p (then) K n () p 8 T ( io.putstring \(") S (%NStoring analyzer ... ) str ("\);) p n () S 8 T ( ) S (-- store_analyzer \(analyzer_file_name\);) c n () p 8 T ( io.putstring \(") S (DONE%N) str ("\);) p n () S 8 T ( io.putstring \(Separator_line_message\);) N () S 8 T ( ) S (end) K (;) p n () S 8 T ( io.new_line;) N () S 8 T ( ) S (end) K (;) p n ( ) S (end) K (; ) p (-- make) c n ( Separator_line_message: ) p (STRING) k ( ) p (is) K ( ") p (--------------------------------------------) str n (-------------------------------%N) S (";) p n () N ( test_left_recursion ) S (is) K n () p 8 T ( ) S (-- Test root_line for left recursion.) c n ( ) p (local) K n () p 8 T ( t_b: ) S (BOOLEAN) k (;) p n ( ) S (do) K n () p 8 T ( root_line.print_mode.put \() S (true) K (\);) p n () S 8 T ( root_line.expand_all;) N () S 8 T ( t_b := ) S (not) K ( root_line.left_recursion;) p n () S 8 T ( root_line.check_recursion;) N () S 8 T ( ) S (if) K ( ) p (not) K ( root_line.left_recursion.item ) p (then) K n () p 8 T ( io.putstring \(") S (No left recursion detected%N) str ("\);) p n () S 8 T ( ) S (else) K n () p 8 T ( io.putstring \(") S (Left recursive.%N) str ("\);) p n () S 8 T ( ) S (end) K (;) p n () S 8 T ( ) N ( ) S (end) K (; ) p (-- test_left_recursion) c n () p n ( store_analyzer \(file_name: ) S (STRING) k (\) ) p (is) K n () p 8 T ( ) S (-- Store `analyzer' in file named `file_name'.) c n ( ) p (require) K ( ) p (else) K n () p 8 T ( initialized: initialized) N ( ) S (local) K n () p 8 T ( store_file: RAW_FILE) N ( ) S (do) K n () p 8 T ( ) S (if) K ( analyzer = ) p (Void) K ( ) p (then) K n () p 8 T ( !! analyzer.make) N () S 8 T ( ) S (end) K (;) p n () S 8 T ( !! store_file.make_open_write \(file_name\);) N () S 8 T ( analyzer.basic_store \(store_file\);) N () S 8 T ( store_file.close;) N ( ) S (end) K (; ) p (-- store_analyzer) c n () p n ( retrieve_analyzer \(file_name: ) S (STRING) k (\) ) p (is) K n () p 8 T ( ) S (-- Retrieve `analyzer' from file named `file_name'.) c n ( ) p (local) K n () p 8 T ( retrieved_file: RAW_FILE) N ( ) S (do) K n () p 8 T ( ) S (if) K ( analyzer = ) p (Void) K ( ) p (then) K n () p 8 T ( !! analyzer.make) N () S 8 T ( ) S (end) K (;) p n () S 8 T ( !! retrieved_file.make_open_read \(file_name\);) N () S 8 T ( analyzer ?= analyzer.retrieved \(retrieved_file\);) N (template.e) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p 8 T ( retrieved_file.close;) N ( ) S (end) K (; ) p (-- store_analyzer_feature) c n () p n (end) K ( ) p (-- class TEMPLATE2) c n (template.e) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/toc.ps0000644000000000000000000001557714235572622013060 00000000000000%%Page: (2) 1 %%BeginPageSetup /pagesave save def sh 0 translate 90 rotate %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 3.167824 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T () p n 0 T (#import "AppDelegate.h") N 0 T () N 0 T (#import ) N (5) # (#import ) N 0 T () N 0 T (@implementation AppDelegate) N 0 T () N 0 T (// --------------------- Constants) N (10) # () N 0 T (#define N_FIELDS) S 24 T () S 32 T (\(8\)) N 0 T () N 0 T (// --------------------- Global variables) N 0 T () N (15) # (NSString) N 0 T ( *AppDelegateNewSetNotificationName = @"AppDelegateNewSetNotification",) N 0 T ( ) S 8 T (// This is the name of the notification sent out when a new) N 0 T () S 8 T (// field set has been selected for manipulation.) N 0 T ( *AppDelegateNewFieldNotificationName = @"AppDelegateNewSetNotification";) N (20) # ( ) S 8 T (// This is the name of the notification sent out when a new) N 0 T () S 8 T (// field has been selected for manipulation.) N 0 T ( ) N 0 T (// --------------------- Class variables) N 0 T () N (25) # (static NSMutableArray) N 0 T () S 8 T (*classDefaultSet = nil;) N 0 T () S 8 T () N 0 T (// --------------------- Methods) N 0 T () N (30) # (+ initize) N 0 T ({) N 0 T ( // This method will be called automatically prior to any) N 0 T ( // other to this class.) N 0 T ( ) N (35) # ( int ) N 0 T ( ) S 8 T (i;) N 0 T () S 8 T () N 0 T ( // Create an array to hold the actual field objects.) N 0 T ( classDefaultSet = [[NSMutableArray array] retain];) N (40) # ( ) S 8 T () S 16 T ( ) N 0 T ( ) N 0 T ( return self;) N 0 T ( ) S 8 T () S 16 T ( ) N 0 T (} // initize) N (45) # ( ) N 0 T (- \(id
\)fieldSet) N 0 T ({) N 0 T ( // This method returns an object \(conforming to the FieldSet) N 0 T ( // protocol\) which is being manipulated by this application. ) N (50) # ( ) N 0 T ( // If we don't have one yet...) N 0 T ( if \(!myFieldSet\)) N 0 T ( {) N 0 T ( ) S 8 T (// Just adopt the default one for this class.) N (55) # () S 8 T ([self setFieldSet:\(id\)classDefaultSet];) N 0 T ( }) N 0 T ( ) N 0 T ( return myFieldSet;) N 0 T ( ) N (60) # (} // fieldSet) N 0 T () N 0 T (- \(void\)setFieldSet:\(id
\)newValue) N 0 T ({) N 0 T ( // This method sets the field set being manipulated to the one given.) N (65) # ( // If the new set differs from the old, the AppDelegateNewSet) N 0 T ( // notification will be posted informing watchers of the change.) N (AppDelegate.m) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (1) 2 %%BeginPageSetup /pagesave save def sh 0 translate 90 rotate %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 3.167824 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto 0 T (Table of Content) K n 0 T () S ( 1 ) p (AppDelegate.m.......) k ( sheets 1 to 1 \( 1\) pages 1- 2 123 lines) p n 0 T ( 2 ) S (InsertBlock.java....) k ( sheets 1 to 1 \( 1\) pages 3- 3 42 lines) p n 0 T ( 3 ) S (a2ps.man............) k ( sheets 1 to 1 \( 1\) pages 4- 5 78 lines) p n (5) # ( 4 ) S (bookie.idl..........) k ( sheets 1 to 1 \( 1\) pages 6- 7 98 lines) p n 0 T ( 5 ) S (configure.ac........) k ( sheets 1 to 1 \( 1\) pages 8- 8 4 lines) p n 0 T ( 6 ) S (confirm.m3..........) k ( sheets 1 to 1 \( 1\) pages 9- 9 46 lines) p n 0 T ( 7 ) S (ehandler............) k ( sheets 1 to 1 \( 1\) pages 10- 10 66 lines) p n 0 T ( 8 ) S (eplv_chkr.v.........) k ( sheets 1 to 1 \( 1\) pages 11- 11 39 lines) p n (10) # ( 9 ) S (essai2.o2c..........) k ( sheets 1 to 1 \( 1\) pages 12- 14 134 lines) p n 0 T (10 ) S (ex1.asn1............) k ( sheets 1 to 1 \( 1\) pages 15- 15 39 lines) p n 0 T (11 ) S (ex_PSGETRS.f90......) k ( sheets 1 to 1 \( 1\) pages 16- 18 193 lines) p n 0 T (12 ) S (ShellNewDummyHook.pas) k ( sheets 1 to 1 \( 1\) pages 19- 20 95 lines) p n 0 T (13 ) S (formfeed.txt........) k ( sheets 1 to 1 \( 1\) pages 21- 27 8 lines) p n (15) # (14 ) S (ftp2.pml............) k ( sheets 1 to 1 \( 1\) pages 28- 34 456 lines) p n 0 T (15 ) S (includeres..........) k ( sheets 1 to 1 \( 1\) pages 35- 35 61 lines) p n 0 T (16 ) S (mofibida.hs.........) k ( sheets 1 to 1 \( 1\) pages 36- 36 51 lines) p n 0 T (17 ) S (mtvplot.octave......) k ( sheets 1 to 1 \( 1\) pages 37- 37 28 lines) p n 0 T (18 ) S (mutex.py............) k ( sheets 1 to 1 \( 1\) pages 38- 38 61 lines) p n (20) # (19 ) S (pi.b................) k ( sheets 1 to 1 \( 1\) pages 39- 39 54 lines) p n 0 T (20 ) S (polkaIDL.hh.........) k ( sheets 1 to 1 \( 1\) pages 40- 41 122 lines) p n 0 T (21 ) S (prosamp.pre.........) k ( sheets 1 to 1 \( 1\) pages 42- 42 14 lines) p n 0 T (22 ) S (psmandup............) k ( sheets 1 to 1 \( 1\) pages 43- 47 270 lines) p n 0 T (23 ) S (report.pre..........) k ( sheets 1 to 1 \( 1\) pages 48- 51 220 lines) p n (25) # (24 ) S (run-help............) k ( sheets 1 to 1 \( 1\) pages 52- 52 18 lines) p n 0 T (25 ) S (s-garnam.adb........) k ( sheets 1 to 1 \( 1\) pages 53- 59 429 lines) p n 0 T (26 ) S (snacc.mib...........) k ( sheets 1 to 1 \( 1\) pages 60- 61 109 lines) p n 0 T (27 ) S (space.pls...........) k ( sheets 1 to 1 \( 1\) pages 62- 62 48 lines) p n 0 T (28 ) S (sqlcrtbl.sql........) k ( sheets 1 to 1 \( 1\) pages 63- 65 193 lines) p n (30) # (29 ) S (sqlinit.ora.........) k ( sheets 1 to 1 \( 1\) pages 66- 67 103 lines) p n 0 T (30 ) S (sqlpq92.sql.........) k ( sheets 1 to 1 \( 1\) pages 68- 68 6 lines) p n 0 T (31 ) S (sqlspace.pkb........) k ( sheets 1 to 1 \( 1\) pages 69- 69 48 lines) p n 0 T (32 ) S (strange.mail........) k ( sheets 1 to 1 \( 1\) pages 70- 72 143 lines) p n 0 T (33 ) S (symbol.pre..........) k ( sheets 1 to 1 \( 1\) pages 73- 75 67 lines) p n (35) # (34 ) S (synopsys.setup......) k ( sheets 1 to 1 \( 1\) pages 76- 76 44 lines) p n 0 T (35 ) S (tabulation.pre......) k ( sheets 1 to 1 \( 1\) pages 77- 77 24 lines) p n 0 T (36 ) S (template.e..........) k ( sheets 1 to 1 \( 1\) pages 78- 80 135 lines) p n 0 T (37 ) S (typing.cl...........) k ( sheets 1 to 1 \( 1\) pages 81- 85 301 lines) p n 0 T (38 ) S (vrcaml.ml...........) k ( sheets 1 to 1 \( 1\) pages 86- 88 139 lines) p n (40) # (39 ) S (wide.txt............) k ( sheets 1 to 1 \( 1\) pages 89- 91 72 lines) p n 0 T () S (End of toc) K n (Table of Content) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/typing.ps0000644000000000000000000004103514233473143013565 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (//------------------------------------------------------------------+) c n (// MARIE Yves Caseau |) N (// typing.cl |) N (// |) N (// Moteur Algebrique pour la Resolution d'Inferences Elementaires |) N (// Copyright \(C\) 1986-97 by Y. CASEAU. All Rights Reserved |) N (//------------------------------------------------------------------+) N () p n (//-------------------------------------------------------------------) c n (//This file contains:) N (//a lot of useful stuff for manipulating algebraic terms) N (//-------------------------------------------------------------------) N () p n (//*******************************************************************) C n (//* Part 1: get_range/get_domain *) N (//* Part 2: Utility methods for compilation *) N (//* Part 3: Inversion of Properties *) N (//*******************************************************************) N () p n (//*******************************************************************) C n (//* Part 1: get_range/get_domain *) N (//*******************************************************************) N () p n (// a small range inference algorithm, to improve the system) c n (//) N (get_range\(self:abstract_relation,x:type\) : type) p n ( ) S (->) K ( \() p (case) K ( self) p n ( \(phi x, ) N ( composition get_range\(self.r1,) N ( get_range\(self.r2, x\)\),) N ( ands get_range\(self.r1, x\) ^) N ( get_range\(self.r2, x\),) N ( ors get_range\(self.r1, x\) U) N ( get_range\(self.r2, x\),) N ( psi \() S (if) K ( \(self.op % class\) self.op) p n ( ) S (else) K ( extract_range\(self.op,) p n ( list\(get_range\(self.r1, x\),) N ( get_range\(self.r2, x\)\)\)\),) N ( array \() S (if) K ( self.multivalued? member\(self.range\) ) p (else) K ( self.range\),) p n ( property \() S (if) K ( \(self = Id\) x ) p (else) K ( extract_range\(self, list\(x\)\)\), ) p n ( product self.ens, ) N ( annotation get_range\(self.v.definition, x\),) N ( connotation get_range\(self.r, x\),) N ( denotation \() S (if) K ( unknown?\(definition, self.v\)) p n ( self.v.range) N ( ) S (else) K ( get_range\(self.v.definition,) p n ( x\)\),) N ( property_inverse ) N ( get_domain\(self.r, x\),) N ( any error\(") S (error: range is not defined for ~S\(~S\)) str (", self,) p n ( owner\(self\)\)\)\) ) N () N (// a similar domain inference algorithm) c n (//) N (get_domain\(self:abstract_relation,x:type\) : type) p n ( ) S (->) K ( \() p (case) K ( self) p n ( \(phi x, ) N ( composition get_domain\(self.r2,) N ( get_domain\(self.r1,) N ( x\)\),) N ( ands get_domain\(self.r1, x\) ^ ) N ( get_domain\(self.r2, x\),) N ( ors get_domain\(self.r1, x\) U) N ( get_domain\(self.r2, x\),) N ( property \() S (if) K ( \(self = Id\) x) p n ( ) S (else) K ( ) p (let) K ( y := {} ) p (in) K ( ) p n (typing.cl) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( \() p (for) K ( r ) p (in) K ( self.restrictions ) p n ( \() S (if) K ( \(self.multivalued? | x ^ r.range\)) p n ( y :U domain!\(r\)\),) N ( y\)\),) N ( property_inverse ) N ( get_range\(self.r, x\),) N ( product \() S (if) K ( known?\(BASE\) BASE ) p (else) K ( any\),) p n ( psi \() S (if) K ( inv?\(self\)) p n ( get_range\(inverse!\(self\), x\)) N ( ) S (else) K ( domain!\(self.r1\) ^ domain!\(self.r2\)\),) p n ( psi get_domain\(self.r1, x\) ^) N ( get_domain\(self.r2, x\),) N ( denotation get_domain\(self.v.definition, x\),) N ( any domain!\(self\)\)\)) N () N (// we extend range_type to take the type of arguments into account.) c n (//) N (extract_range\(self:property,l:list\) : type) p n ( ) S (->) K ( \() p (let) K ( %first := l[1],) p n ( %rest := \(copy\(l\) << 1\),) N ( prop := Optimize/restriction!\(self, l\),) N ( %res := \() S (case) K ( prop \(restriction prop.range, any self.range\)\) ) p (in) K ( ) p n ( \() S (if) K ( self.multivalued? member\(%res\) ) p (else) K ( %res\)\) ) p n (extract_range\(self:property_operator,l:list\) : type) N ( ) S (->) K ( extract_range\(self.op, l\) ) p n () N (// A small range inference algorithm, to improve the system.) c n (// \(x X y\) is the signature of the input pair) N (//) N (get_range\(self:derivative,x:type,y:type\) : type) p n ( ) S (->) K ( \() p (case) K ( self) p n ( \(Tone y, ) N ( Tinv x,) N ( Tphi get_domain\(self.e1, x, y\),) N ( compr get_range\(self.r1,) N ( get_range\(self.e2, x, y\)\),) N ( compl get_range\(self.e1, x, y\),) N ( Tand get_range\(self.e1, x, y\) ^) N ( get_range\(self.r2, any\),) N ( Tunion get_range\(self.e1, x, y\) U) N ( get_range\(self.e2, x, y\),) N ( Tpsi extract_range\(self.op,) N ( list\(get_range\(self.e1, x, y\),) N ( get_range\(self.r2,) N ( get_domain\(self.e1, x, y\)\)\)) N (\),) N ( Tannotation2) N ( get_range\(self.e1, x, y\),) N ( Tannotation1) N ( get_range\(self.v.definition, any\),) N ( Tconnotation2) N ( get_range\(self.r,) N ( get_domain\(self.e1, x, y\)\),) N ( Tconnotation1) N ( get_range\(self.e1, x, y\),) N ( Tif get_range\(self.r1,) N ( get_domain\(self.e1, x, y\)\) U) N ( get_range\(self.r2,) N ( get_domain\(self.e1, x, y\)\),) N ( Tdenotation get_range\(self.e1, x, y\),) N ( any error\(") S (error: get_range is not defined for ~S \(~S\)) str (", self,) p n ( owner\(self\)\)\)\) ) N () N (// A small domain inference algorithm, to improve the system.) c n (// \(x X y\) is the signature of the input pair) N (//) N (typing.cl) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (get_domain\(self:derivative,x:type,y:type\) : type) p n ( ) S (->) K ( \() p (case) K ( self) p n ( \(Tone x, ) N ( Tinv y,) N ( Tphi get_domain\(self.e1, x, y\),) N ( compr get_domain\(self.e2, x, y\),) N ( compl get_domain\(self.r2,) N ( get_domain\(self.e1, x, y\)\),) N ( Tand get_domain\(self.e1, x, y\) ^) N ( get_domain\(self.r2, any\),) N ( Tunion get_domain\(self.e1, x, y\) U) N ( get_domain\(self.e2, x, y\),) N ( Tpsi get_domain\(self.e1, x, y\) ^) N ( get_domain\(self.r2, any\),) N ( Tannotation2) N ( get_domain\(self.e1, x, y\),) N ( Tannotation1) N ( get_domain\(self.e1, x, y\) ^) N ( get_domain\(self.v.definition, any\),) N ( Tconnotation2) N ( get_domain\(self.v.definition, any\),) N ( Tconnotation1) N ( get_domain\(self.e1, x, y\),) N ( Tdenotation get_domain\(self.e1, x, y\),) N ( Tif get_domain\(self.e1, x, y\),) N ( any error\(") S (error: get_domain is not defined for ~S \(~S\)) str (", self,) p n ( owner\(self\)\)\)\) ) N () N (//*******************************************************************) C n (//* Part 2: Utility methods for compilation *) N (//*******************************************************************) N (// a protected substitution) c n (//) N (Logic/cpsubst\(self:any,x:any,y:any\) : any) p n ( ) S (->) K ( substitution\(instruction_copy\(self\), x, y\)) p n () N (// instruction copy with fresh local variables) c n (//) N (Logic/cpfresh\(self:any\) : any) p n ( ) S (->) K ( \() p (let) K ( l := bound_variables\(self\),) p n ( x := instruction_copy\(self\) ) S (in) K ( ) p n ( \() S (for) K ( y ) p (in) K ( l x := substitution\(x, y, Variable\(pname = y.pname\)\), x\)\) ) p n () N (// make a copy with fresh variable + a substitution) c n (//) N (cpfresh\(self:any,x1:Variable,x2:Variable\) : any) p n ( ) S (->) K ( substitution\(cpfresh\(self\), x1, x2\)) p n () N (// make a new two variable conclusion) c n (//) N (cpfresh\(self:any,x1:Variable,x2:Variable,y1:Variable,y2:Variable\) : any) p n ( ) S (->) K ( substitution\(substitution\(cpfresh\(self\), x1, x2\), y1, y2\)) p n () N (// we create so many binary messages ...) c n (//) N (Logic/message!\(x:any,p:property,y:any\) : Call ) p (->) K ( Call\(p, list\(x, y\)\)) p n () N (Logic/make_a_and\(self:list\) : any) N ( ) S (->) K ( \() p (if) K ( \(size\(self\) = 1\) self[1] ) p (else) K ( And\(args = self\)\)) p n () N (//*******************************************************************) C n (//* Part 3: Inversion of Properties *) N (//*******************************************************************) N (// now we van define the inversion of a psi ------------------------) c n (//) N (// a psi term is usually non inversible.) N (typing.cl) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Page: (4) 4 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (// two exceptions are interesting:) c n (// - the second subterm is a constant \(a constant is always placed) N (// in the second place\) and we have an addition or a multiplication) N (// - the two subterm are inversible and the operation is a mapping) N (//) N (inv?\(self:psi\) : boolean) p n ( ) S (->) K ( \() p (let) K ( %d := description[self.op] ) p (in) K n ( \(\(%d = group_operation &) p n ( \(inv?\(self.r1\) & self.r2 % product\)\) | ) N ( \(\(%d = monoid |) N ( \(%d = binary_operation & ) N ( known?\(ternary_inverse_of[self.op]\)\)\) & ) N ( \(\(inv?\(self.r1\) & const?\(self.r2\)\) |) N ( \(inv?\(self.r2\) & const?\(self.r1\)\)\)\)\)\)) N () N (// this is only called if the psi is inversible) c n (//) N (inverse!\(self:psi\) : any) p n ( ) S (->) K ( \() p (let) K ( %o := self.op,) p n ( t1 := self.r1,) N ( t2 := self.r2 ) S (in) K n ( \() p (if) K ( \(description[%o] = group_operation\)) p n ( compose\(inverse!\(t1\), ) N ( psify\(%o, Id,) N ( compose\(function_inverse[%o],) N ( t2\)\)\)) N ( ) S (else) K ( ) p (if) K ( \(description[%o] = monoid\) ) p n ( \() S (if) K ( const?\(t2\) ) p n ( compose\(inverse!\(t1\),) N ( compose\(psify\(ternary_inverse[%o],) N ( Id, t2\),) N ( phi\(op = ) N ( comparison_inverse[%o],) N ( r1 = Id,) N ( r2 = t2\)\)\)) N ( ) S (else) K ( compose\(inverse!\(t2\),) p n ( compose\(psify\(ternary_inverse[%o],) N ( Id, t1\),) N ( phi\(op = ) N ( comparison_inverse[%o],) N ( r1 = Id,) N ( r2 = t1\)\)\)\)) N ( ) S (else) K ( ) p (if) K ( known?\(ternary_inverse_of[%o]\)) p n ( \() S (if) K ( const?\(t2\)) p n ( compose\(inverse!\(t1\),) N ( psify\(ternary_inverse_of[%o],) N ( Id, t2\)\)) N ( ) S (else) K ( compose\(inverse!\(t2\), psify\(%o, t1, Id\)\)\) ) p n ( ) S (else) K ( ) p (if) K ( \(description[%o] = mapping\)) p n ( ands\(r1 = ) N ( compose\(inverse!\(t1\),) N ( projection1[%o]\),) N ( r2 =) N ( compose\(inverse!\(t2\),) N ( projection2[%o]\)\)\)\)) N () N (// check if a relation can be inversed without trouble) c n (//) N (inv?\(self:relation\) : boolean) p n ( ) S (->) K ( \(known?\(inverse, self\) |) p n ( \() S (case) K ( self ) p n ( \(relation finite?\(self.domain\), ) N ( property not\({ r ) S (in) K ( self.restrictions | ) p n ( not\(finite?\(domain!\(r\)\)\)}\)\)\)\)) N (inverse!\(self:relation\) : relation) N ( ) S (->) K ( \() p (let) K ( r1 := get\(inverse, self\) ) p (in) K n (typing.cl) (right) (4) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (4) footer end % of iso1dict pagesave restore showpage %%Page: (5) 5 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto ( ) p (case) K ( r1) p n ( \(relation r1,) N ( any property_inverse\(r = self\)\)\)) N () N (// a constant expression is either a constant or an expression involving) c n (// constants) N (//) N (const?\(self:abstract_relation\) : boolean) p n ( ) S (->) K ( \() p (case) K ( self) p n ( \(constant true, ) N ( composition const?\(self.r2\),) N ( psi \(const?\(self.r1\) &) N ( const?\(self.r2\)\)\)\)) N () N (//*******************************************************************) C n (//* Part 4: Algebra Canonical Injection *) N (//*******************************************************************) N () p n (domain!\(r:relation\) : type ) S (->) K ( r.domain) p n () N (// a property is an abstract relation ----------------------------------) c n (// "inversion" is straightforward, we create a message) N (//) N (inversion\(self:property,x:any,y:Variable\) : any) p n ( ) S (->) K ( \() p (if) K ( self.multivalued?) p n ( Call\(selector = %, args = list\(y, inversion!\(self, x\)\)\) ) N ( ) S (else) K ( Call\(selector = =, args = list\(y, inversion!\(self, x\)\)\)\)) p n (inversion!\(self:property,x:any\) : any) N ( ) S (->) K ( \() p (if) K ( \(self = Id\) x ) p (else) K ( Call\(selector = self, args = list\(x\)\)\)) p n () N (// an extensional relation) c n (//) N (inversion\(self:array,x:any,y:Variable\) : any) p n ( ) S (->) K ( Call\(selector = =, args = list\(y, inversion!\(self, x\)\)\)) p n (inversion!\(self:array,x:any\) : any) N ( ) S (->) K ( Call\(selector = nth, args = list\(self, x\)\)) p n () N (typing.cl) (right) (5) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (5) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/vrcaml.ps0000644000000000000000000002022414233473143013534 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (\(**************************************************************************\)) c n (\(* Creation and manipulation of VRML objects *\)) N (\(**************************************************************************\)) N () p n (#) S (open) K ( ") p (VRcaML) str (";;) p n (#) S (open) K ( ") p (default) str (";;) p n (#) S (open) K ( ") p (exceptions) str (";;) p n (#) S (open) K ( ") p (basic_types) str (";;) p n (#) S (open) K ( ") p (font) str (";;) p n (#) S (open) K ( ") p (fonts) str (";;) p n (#) S (open) K ( ") p (colors) str (";;) p n () N () N () N () N (\(**************************************************************************\)) c n (\(* Creation of VRML objects *\)) N (\(**************************************************************************\)) N () p n (\(* New empty referential **************************************************\)) c n () p n (\(* new_referential: vrml_object *\)) c n (let) K ( new_referential = default_vrml_object ;;) p n () N () N (\(* New VRML object ********************************************************\)) c n () p n (\(* new_vrml_object :) c n ( vrml_positionable list -> vrml_object list -> vect3D -> rotation) N (-> vect3D -> frame -> bool -> anchor -> billboard -> collision) N (-> vrml_object *\)) N (let) K ( new_vrml_object objects children position rotation scale) p n ( frame unique anchor billboard collision =) N ( { objects = objects ;) N ( children = children ;) N ( position = position ;) N ( rotation = rotation ;) N ( scale = scale ;) N ( frame = frame ;) N ( unique = unique ;) N ( anchor = anchor ;) N ( billboard = billboard ;) N ( collision = collision }) N (;;) N () N () N (\(**************************************************************************\)) c n (\(* Setting fields *\)) N (\(**************************************************************************\)) N () p n (\(* set_objects : vrml_object -> vrml_positionable list -> vrml_object *\)) c n (let) K ( setf_objects ) p (object) K ( objects =) p n ( new_vrml_object objects ) S (object) K (.children ) p (object) K (.position) p n ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n ( ) S (object) K (.collision) p n (;;) N () N (let) K ( set_objects = setf_objects ;;) p n () N (\(* set_children : vrml_object -> vrml_object list -> vrml_object *\)) c n (let) K ( setf_children ) p (object) K ( children =) p n ( new_vrml_object ) S (object) K (.objects children ) p (object) K (.position) p n ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n ( ) S (object) K (.collision) p n (vrcaml.ml) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (;;) p n () N (let) K ( set_children = setf_children ;;) p n () N (\(* setf_position : vrml_object -> float -> float -> float -> vrml_object *\)) c n (let) K ( setf_position ) p (object) K ( position =) p n ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children position) p n ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n ( ) S (object) K (.collision) p n (;;) N () N (\(* setf_rotation :) c n ( vrml_object -> float -> float -> float -> float -> vrml_object *\)) N (let) K ( setf_rotation ) p (object) K ( rotation =) p n ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n ( rotation ) S (object) K (.scale ) p (object) K (.frame) p n ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n ( ) S (object) K (.collision) p n (;;) N () N (\(* setf_scale : vrml_object -> float -> float -> float -> vrml_object *\)) c n (let) K ( setf_scale ) p (object) K ( scale =) p n ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n ( ) S (object) K (.rotation scale ) p (object) K (.frame) p n ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n ( ) S (object) K (.collision) p n (;;) N () N (\(* setf_frame : vrml_object -> frame -> vrml_object *\)) c n (let) K ( setf_frame ) p (object) K ( frame =) p n ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n ( ) S (object) K (.rotation ) p (object) K (.scale frame) p n ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n ( ) S (object) K (.collision) p n (;;) N () N (let) K ( set_frame = setf_frame ;;) p n () N (\(* setf_unique : vrml_object -> bool -> vrml_object *\)) c n (let) K ( setf_unique ) p (object) K ( unique =) p n ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n ( unique ) S (object) K (.anchor ) p (object) K (.billboard) p n ( ) S (object) K (.collision) p n (;;) N () N (let) K ( set_unique = setf_unique ;;) p n () N (\(* setf_anchor : vrml_object -> anchor -> vrml_object *\)) c n (let) K ( setf_anchor ) p (object) K ( anchor =) p n ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n ( ) S (object) K (.unique anchor ) p (object) K (.billboard) p n ( ) S (object) K (.collision) p n (;;) N () N (\(* setf_billboard : vrml_object -> billboard -> vrml_object *\)) c n (let) K ( setf_billboard ) p (object) K ( billboard =) p n ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n ( ) S (object) K (.unique ) p (object) K (.anchor billboard) p n ( ) S (object) K (.collision) p n (;;) N () N (\(* setf_collision : vrml_object -> collision -> vrml_object *\)) c n (vrcaml.ml) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (let) K ( setf_collision ) p (object) K ( collision =) p n ( new_vrml_object ) S (object) K (.objects ) p (object) K (.children ) p (object) K (.position) p n ( ) S (object) K (.rotation ) p (object) K (.scale ) p (object) K (.frame) p n ( ) S (object) K (.unique ) p (object) K (.anchor ) p (object) K (.billboard) p n ( collision) N (;;) N (vrcaml.ml) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/ps-ref/wide.ps0000644000000000000000000001660014233473143013203 00000000000000%%Page: (1) 1 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p 8 T (This is a test for the coverage of the whole ascii) N () S 8 T (char set \(from 0 to 255\)) N (--------------------------------------------------------------) N ( 0, 0, 0 :^@) S 16 T ( 1, 1, 1 :^A) S 32 T ( 2, 2, 2 :^B) S 48 T ( 3, 3, 3 :^C) N ( 4, 4, 4 :^D) S 16 T ( 5, 5, 5 :^E) S 32 T ( 6, 6, 6 :^F) S 48 T ( 7, 7, 7 :^G) N ( 10, 8, 8 :^H) S 16 T ( 11, 9, 9 :) S 32 T () S 40 T ( 12, 10, a :) N () S 8 T ( 13, 11, b :^K) N ( 14, 12, c :) N (wide.txt) (right) (1) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (1) footer end % of iso1dict pagesave restore showpage %%Page: (2) 2 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto () p 8 T ( 15, 13, d :) N () S 8 T ( 16, 14, e :^N) S 24 T ( 17, 15, f :^O) N ( 20, 16,10 :^P) S 16 T ( 21, 17,11 :^Q) S 32 T ( 22, 18,12 :^R) S 48 T ( 23, 19,13 :^S) N ( 24, 20,14 :^T) S 16 T ( 25, 21,15 :^U) S 32 T ( 26, 22,16 :^V) S 48 T ( 27, 23,17 :^W) N ( 30, 24,18 :^X) S 16 T ( 31, 25,19 :^Y) S 32 T ( 32, 26,1a :^Z) S 48 T ( 33, 27,1b :^[) N ( 34, 28,1c :^\\) S 16 T ( 35, 29,1d :^]) S 32 T ( 36, 30,1e :^^) S 48 T ( 37, 31,1f :^_) N ( 40, 32,20 : ) S 16 T ( 41, 33,21 :!) S 32 T ( 42, 34,22 :") S 48 T ( 43, 35,23 :#) N ( 44, 36,24 :$) S 16 T ( 45, 37,25 :%) S 32 T ( 46, 38,26 :&) S 48 T ( 47, 39,27 :') N ( 50, 40,28 :\() S 16 T ( 51, 41,29 :\)) S 32 T ( 52, 42,2a :*) S 48 T ( 53, 43,2b :+) N ( 54, 44,2c :,) S 16 T ( 55, 45,2d :-) S 32 T ( 56, 46,2e :.) S 48 T ( 57, 47,2f :/) N ( 60, 48,30 :0) S 16 T ( 61, 49,31 :1) S 32 T ( 62, 50,32 :2) S 48 T ( 63, 51,33 :3) N ( 64, 52,34 :4) S 16 T ( 65, 53,35 :5) S 32 T ( 66, 54,36 :6) S 48 T ( 67, 55,37 :7) N ( 70, 56,38 :8) S 16 T ( 71, 57,39 :9) S 32 T ( 72, 58,3a ::) S 48 T ( 73, 59,3b :;) N ( 74, 60,3c :<) S 16 T ( 75, 61,3d :=) S 32 T ( 76, 62,3e :>) S 48 T ( 77, 63,3f :?) N (100, 64,40 :@) S 16 T (101, 65,41 :A) S 32 T (102, 66,42 :B) S 48 T (103, 67,43 :C) N (104, 68,44 :D) S 16 T (105, 69,45 :E) S 32 T (106, 70,46 :F) S 48 T (107, 71,47 :G) N (110, 72,48 :H) S 16 T (111, 73,49 :I) S 32 T (112, 74,4a :J) S 48 T (113, 75,4b :K) N (114, 76,4c :L) S 16 T (115, 77,4d :M) S 32 T (116, 78,4e :N) S 48 T (117, 79,4f :O) N (120, 80,50 :P) S 16 T (121, 81,51 :Q) S 32 T (122, 82,52 :R) S 48 T (123, 83,53 :S) N (124, 84,54 :T) S 16 T (125, 85,55 :U) S 32 T (126, 86,56 :V) S 48 T (127, 87,57 :W) N (130, 88,58 :X) S 16 T (131, 89,59 :Y) S 32 T (132, 90,5a :Z) S 48 T (133, 91,5b :[) N (134, 92,5c :\\) S 16 T (135, 93,5d :]) S 32 T (136, 94,5e :^) S 48 T (137, 95,5f :_) N (140, 96,60 :`) S 16 T (141, 97,61 :a) S 32 T (142, 98,62 :b) S 48 T (143, 99,63 :c) N (144,100,64 :d) S 16 T (145,101,65 :e) S 32 T (146,102,66 :f) S 48 T (147,103,67 :g) N (150,104,68 :h) S 16 T (151,105,69 :i) S 32 T (152,106,6a :j) S 48 T (153,107,6b :k) N (154,108,6c :l) S 16 T (155,109,6d :m) S 32 T (156,110,6e :n) S 48 T (157,111,6f :o) N (160,112,70 :p) S 16 T (161,113,71 :q) S 32 T (162,114,72 :r) S 48 T (163,115,73 :s) N (164,116,74 :t) S 16 T (165,117,75 :u) S 32 T (166,118,76 :v) S 48 T (167,119,77 :w) N (170,120,78 :x) S 16 T (171,121,79 :y) S 32 T (172,122,7a :z) S 48 T (173,123,7b :{) N (174,124,7c :|) S 16 T (175,125,7d :}) S 32 T (176,126,7e :~) S 48 T (177,127,7f :^?) N (200,128,80 :M-^@) S 24 T (201,129,81 :M-^A) S 48 T (202,130,82 :M-^B) S 72 T (203,131,) N (83 :M-^C) N (204,132,84 :M-^D) S 24 T (205,133,85 :M-^E) S 48 T (206,134,86 :M-^F) S 72 T (207,135,) N (87 :M-^G) N (210,136,88 :M-^H) S 24 T (211,137,89 :M-^I) S 48 T (212,138,8a :M-^J) S 72 T (213,139,) N (8b :M-^K) N (214,140,8c :M-^L) S 24 T (215,141,8d :M-^M) S 48 T (216,142,8e :M-^N) S 72 T (217,143,) N (8f :M-^O) N (220,144,90 :M-^P) S 24 T (221,145,91 :M-^Q) S 48 T (222,146,92 :M-^R) S 72 T (223,147,) N (93 :M-^S) N (224,148,94 :M-^T) S 24 T (225,149,95 :M-^U) S 48 T (226,150,96 :M-^V) S 72 T (227,151,) N (97 :M-^W) N (230,152,98 :M-^X) S 24 T (231,153,99 :M-^Y) S 48 T (232,154,9a :M-^Z) S 72 T (233,155,) N (9b :M-^[) N (234,156,9c :M-^\\) S 24 T (235,157,9d :M-^]) S 48 T (236,158,9e :M-^^) S 72 T (237,159,) N (9f :M-^_) N (240,160,a0 :\240) S 16 T (241,161,a1 :\241) S 32 T (242,162,a2 :\242) S 48 T (243,163,a3 :\243) N (244,164,a4 :\244) S 16 T (245,165,a5 :\245) S 32 T (246,166,a6 :\246) S 48 T (247,167,a7 :\247) N (250,168,a8 :\250) S 16 T (251,169,a9 :\251) S 32 T (252,170,aa :\252) S 48 T (253,171,ab :\253) N (254,172,ac :\254) S 16 T (255,173,ad :\255) S 32 T (256,174,ae :\256) S 48 T (257,175,af :\257) N (260,176,b0 :\260) S 16 T (261,177,b1 :\261) S 32 T (262,178,b2 :\262) S 48 T (263,179,b3 :\263) N (264,180,b4 :\264) S 16 T (265,181,b5 :\265) S 32 T (266,182,b6 :\266) S 48 T (267,183,b7 :\267) N (270,184,b8 :\270) S 16 T (271,185,b9 :\271) S 32 T (272,186,ba :\272) S 48 T (273,187,bb :\273) N (274,188,bc :\274) S 16 T (275,189,bd :\275) S 32 T (276,190,be :\276) S 48 T (277,191,bf :\277) N (300,192,c0 :\300) S 16 T (301,193,c1 :\301) S 32 T (302,194,c2 :\302) S 48 T (303,195,c3 :\303) N (304,196,c4 :\304) S 16 T (305,197,c5 :\305) S 32 T (306,198,c6 :\306) S 48 T (307,199,c7 :\307) N (310,200,c8 :\310) S 16 T (311,201,c9 :\311) S 32 T (312,202,ca :\312) S 48 T (313,203,cb :\313) N (314,204,cc :\314) S 16 T (315,205,cd :\315) S 32 T (316,206,ce :\316) S 48 T (317,207,cf :\317) N (320,208,d0 :\320) S 16 T (321,209,d1 :\321) S 32 T (322,210,d2 :\322) S 48 T (323,211,d3 :\323) N (324,212,d4 :\324) S 16 T (325,213,d5 :\325) S 32 T (326,214,d6 :\326) S 48 T (327,215,d7 :\327) N (330,216,d8 :\330) S 16 T (331,217,d9 :\331) S 32 T (332,218,da :\332) S 48 T (333,219,db :\333) N (334,220,dc :\334) S 16 T (335,221,dd :\335) S 32 T (336,222,de :\336) S 48 T (337,223,df :\337) N (340,224,e0 :\340) S 16 T (341,225,e1 :\341) S 32 T (342,226,e2 :\342) S 48 T (343,227,e3 :\343) N (344,228,e4 :\344) S 16 T (345,229,e5 :\345) S 32 T (346,230,e6 :\346) S 48 T (347,231,e7 :\347) N (350,232,e8 :\350) S 16 T (351,233,e9 :\351) S 32 T (352,234,ea :\352) S 48 T (353,235,eb :\353) N (354,236,ec :\354) S 16 T (355,237,ed :\355) S 32 T (356,238,ee :\356) S 48 T (357,239,ef :\357) N (wide.txt) (right) (2) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (2) footer end % of iso1dict pagesave restore showpage %%Page: (3) 3 %%BeginPageSetup /pagesave save def %%EndPageSetup iso1dict begin (Test Files) 35.25 water gsave llx lly 12 add translate /v 0 store /x0 x v get 4.703931 add sx cw mul add store /y0 y v get bfs th add sub store x0 y0 moveto (360,240,f0 :\360) p 16 T (361,241,f1 :\361) S 32 T (362,242,f2 :\362) S 48 T (363,243,f3 :\363) N (364,244,f4 :\364) S 16 T (365,245,f5 :\365) S 32 T (366,246,f6 :\366) S 48 T (367,247,f7 :\367) N (370,248,f8 :\370) S 16 T (371,249,f9 :\371) S 32 T (372,250,fa :\372) S 48 T (373,251,fb :\373) N (374,252,fc :\374) S 16 T (375,253,fd :\375) S 32 T (376,254,fe :\376) S 48 T (377,255,ff :\377) N () N (=============================================================) N (wide.txt) (right) (3) title border grestore (The room for the header) rhead (Printed by Somebody from a machine) (Right) (3) footer end % of iso1dict pagesave restore showpage %%Trailer end %%EOF a2ps-4.15.5/tests/strip.tst0000754000000000000000000000160214233473143012406 00000000000000#! /bin/sh # -*- ksh -*- # This program checks that a2ps handles correctly --strip # This is were you installed the tested version of the program # (and the directories test, test-ps and diff) : ${SRCDIR=.} . $SRCDIR/defs || exit 1 # Where is the test file TEST_FILE=$TST_DIR/prosamp.pre # Initialize the success failure=0 for strip_level in 0 1 2 3 do # Checked and reference outputs REF_FILE=$REF_DIR/strip-${strip_level}.ps CHK_FILE=$CHK_DIR/strip-${strip_level}.ps # The options to run a2ps with OPT="-Epre --strip-level=${strip_level} -P awkout" # Generation of the reports # It must not crash $CHK $OPT $TEST_FILE > $CHK_FILE test $? = 0 || exit 1 # build the ref if not here test -f $REF_FILE || $REF $OPT $TEST_FILE > $REF_FILE # it must not print the ps header: just receive `OK' cmp -s $REF_FILE $CHK_FILE 2> /dev/null || failure=1 done exit $failure a2ps-4.15.5/tests/styles.tst0000754000000000000000000000705414236507210012573 00000000000000#! /bin/sh # -*- ksh -*- : ${SRCDIR=.} . $SRCDIR/defs || exit 1 # This program compares what produces two distinct versions of the program # Same but with -g GREF_DIR=$srcdir/gps-ref GCHK_DIR=$builddir/gps-chk # Here are stored the diff of outputs by both programs DIFF=$builddir/ps-diff GDIFF=$builddir/gps-diff # Just used for the banner whites=" " # Remove trash /bin/rm -f $TST_DIR/*~ $PS_DIFF $GPS_DIFF 2> /dev/null # Make sure the directories exist for dir in $GREF_DIR $GCHK_DIR $DIFF $GDIFF do test -d "$dir" || mkdir $dir chmod u+wrx $dir done echo "-------------------------------------" echo " Comparing generated PostScript" echo "-------------------------------------" # We explicitly give the style sheet to use, because: # - it avoids the problems with broken file(1) # - it is not the purpose of this test to test automatic style selection # - some languages share the same suffix for pair in $TEST_FILES do filename=`echo $pair | sed "s/:.*//"g` lang=`echo $pair | sed "s/[^:]*://"g` bannerfile=`echo "$filename$whites" | sed -e 's/^\(.\{18\}\).*/\1/'` bannerlang=`echo "($lang)...$whites" | sed -e 's/^\(.\{16\}\).*/\1/'` echo $echo_n "$bannerfile$bannerlang$echo_c" if [ ! -f "$TST_DIR/$filename" ]; then echo $ac_t "is not a test file" continue fi # If the file has a `.', then sed the suffix to ps # Otherwise, add `.ps' if echo "$filename" | grep \\. >/dev/null; then psfilename=`echo $filename | sed -e 's/\..*/.ps/g'` else psfilename=$filename.ps fi # The name of the input file. file=$TST_DIR/$filename # What produces this tested program? $CHK -E$lang -P awkout $file > $CHK_DIR/$psfilename 2>&5 $CHK -Cgs2 -E$lang -P awkout $file > $GCHK_DIR/$psfilename 2>&5 # Build the references if missing, and protect them. if [ ! -r "$REF_DIR/$psfilename" ]; then $REF -E$lang -P awkout $file > $REF_DIR/$psfilename 2>&5 || : fi if [ ! -r "$GREF_DIR/$psfilename" ]; then $REF -Cgs2 -E$lang -P awkout $file > $GREF_DIR/$psfilename 2>&5 || : fi # Compute the diffs. In a subshell and with `:' to avoid set -e # catches the exit status of diff. if (cmp $REF_DIR/$psfilename $CHK_DIR/$psfilename) >/dev/null 2>&1; then # Identical. rm -f $DIFF/$filename nbdiff=0 else # Different. (diff $REF_DIR/$psfilename $CHK_DIR/$psfilename > $DIFF/$filename || :) nbdiff=`wc -l <$DIFF/$filename` fi if (cmp $GREF_DIR/$psfilename $GCHK_DIR/$psfilename) >/dev/null 2>&1; then # Identical. rm -f $GDIFF/$filename nbdiffsym=0 else # Different. (diff $GREF_DIR/$psfilename $GCHK_DIR/$psfilename > $GDIFF/$filename || :) nbdiffsym=`wc -l <$GDIFF/$filename` fi case "$nbdiff$nbdiffsym" in 00) echo "Ok";; *) echo "Bad: -ng -> $nbdiff, -g -> $nbdiffsym";; esac done # Sumary of the diff's. Protect with `||:' the commands that may # exit != 0 (because of set -e). cd $DIFF # I don't use `echo *`, since I don't know how the various shells behave # when there are no files. if test -n "`ls`"; then (wc -l `ls` | sort -u | grep -v "^[ \t]*0"||:) > \ $builddir/sum-ps-diff echo " There are differences with reference PostScript files:" cat $builddir/sum-ps-diff failure=1 else rm -rf $builddir/sum-ps-diff $DIFF fi cd $GDIFF if test -n "`ls`"; then (wc -l `ls` | sort -u | grep -v "^[ \t]*0"||:) > \ $builddir/sum-gps-diff echo " There are differences with reference PostScript files (with -g):" cat $builddir/sum-gps-diff failure=1 else rm -rf $builddir/sum-gps-diff $GDIFF fi exit $failure a2ps-4.15.5/tests/toc.tst0000754000000000000000000000173414233473143012040 00000000000000#! /bin/sh # -*- ksh -*- : ${SRCDIR=.} . $SRCDIR/defs || exit 1 ## In this test, a2ps is called on the regular test files. ## This is because it happened that it crashed _only_ when ## printing several files. Don't take all the content of ## test_files, because encoding.pre generates a super big ## prologue which is of no use here but wasting space. # But it was dumb to lose so much time. Now it makes sure that --toc # in conjunction with --pages=toc is OK. Actually, we use # --pages=1,toc just to make sure :) # The options to run with OPT="-Eplain -Cmq2 --compact=no -a1,toc --toc=#{toc_test} -P awkout" # Where are the test files FILES=`echo $TEST_FILES | sed "s#\\([^ :]*\\):[^ ]*#$TST_DIR/\\1#g"` # Checked and reference outputs REF_FILE=$REF_DIR/toc.ps CHK_FILE=$CHK_DIR/toc.ps # Run the test $CHK $OPT $FILES > $CHK_FILE 2>&5 if test -f $REF_FILE; then :; else $REF $OPT $FILES > $REF_FILE 2>&5 fi # Return the verdict cmp $REF_FILE $CHK_FILE 2>/dev/null exit 0 a2ps-4.15.5/tests/tstfiles/0000755000000000000000000000000014251172040012415 500000000000000a2ps-4.15.5/tests/tstfiles/3-pages.txt0000644000000000000000000000002514233473143014342 00000000000000Page 1 Page 2 Page 3 a2ps-4.15.5/tests/tstfiles/AppDelegate.m0000644000000000000000000000605714233473143014706 00000000000000 #import "AppDelegate.h" #import #import @implementation AppDelegate // --------------------- Constants #define N_FIELDS (8) // --------------------- Global variables NSString *AppDelegateNewSetNotificationName = @"AppDelegateNewSetNotification", // This is the name of the notification sent out when a new // field set has been selected for manipulation. *AppDelegateNewFieldNotificationName = @"AppDelegateNewSetNotification"; // This is the name of the notification sent out when a new // field has been selected for manipulation. // --------------------- Class variables static NSMutableArray *classDefaultSet = nil; // --------------------- Methods + initize { // This method will be called automatically prior to any // other to this class. int i; // Create an array to hold the actual field objects. classDefaultSet = [[NSMutableArray array] retain]; return self; } // initize - (id
)fieldSet { // This method returns an object (conforming to the FieldSet // protocol) which is being manipulated by this application. // If we don't have one yet... if (!myFieldSet) { // Just adopt the default one for this class. [self setFieldSet:(id)classDefaultSet]; } return myFieldSet; } // fieldSet - (void)setFieldSet:(id
)newValue { // This method sets the field set being manipulated to the one given. // If the new set differs from the old, the AppDelegateNewSet // notification will be posted informing watchers of the change. // If the new field is the same as the old.. if (newValue EQ myFieldSet) { return; // do nothing } // Release the old value and adopt the new. [newValue retain]; // Post a notification of the change. [[NotificationCenter defaultCenter] postNotificationName:AppDelegateNewSetNotificationName object:myFieldSet]; } // setFieldSet: - (Field *)selectedField { // This method returns the field from our field set // which is currently considered selected. // If we don't currently have a selected field... if (!mySelectedField) { // Adopt the first field in our set. [self setSelectedField:[[self fieldSet] fieldAtIndex:0]]; } return mySelectedField; } // selectedField - (void)setSelectedField:(Field *)newValue { // This method causes the given field to be taken as the active one. // If the new field differs from the old, the AppDelegateNewField // notification will be posted informing watchers of the change. // If the new field is the same as the old.. if (newValue EQ mySelectedField) { return; // do nothing } // Release the old value and adopt the new. [newValue retain]; // Post a notification of the change. [[NotificationCenter defaultCenter] postNotificationName:AppDelegateNewFieldNotificationName object:mySelectedField]; } // setSelectedField: @end a2ps-4.15.5/tests/tstfiles/InsertBlock.java0000644000000000000000000000177314233473143015437 00000000000000/* This code is part of Freenet. It is distributed under the GNU General * Public License, version 2 (or at your option any later version). See * http://www.gnu.org/ for further details of the GPL. */ package freenet.client; import freenet.keys.FreenetURI; import freenet.support.api.Bucket; /** * Class to contain everything needed for an insert. */ public class InsertBlock { private final Bucket data; private boolean isFreed; public final FreenetURI desiredURI; public final ClientMetadata clientMetadata; public InsertBlock(Bucket data, ClientMetadata metadata, FreenetURI desiredURI) { if(data == null) throw new NullPointerException(); this.data = data; this.isFreed = false; if(metadata == null) clientMetadata = new ClientMetadata(); else clientMetadata = metadata; this.desiredURI = desiredURI; } public Bucket getData() { return (isFreed ? null : data); } public void free(){ synchronized (this) { if(isFreed) return; isFreed = true; } data.free(); } } a2ps-4.15.5/tests/tstfiles/ShellNewDummyHook.pas0000644000000000000000000000704414233473143016435 00000000000000{----------------------------------------------------------------------------- The contents of this file are subject to the GNU General Public License Version 1.1 or later (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.gnu.org/copyleft/gpl.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Initial Developer of the Original Code is Michael Elsdrfer. All Rights Reserved. You may retrieve the latest version of this file at the NTFS Link Homepage located at http://www.elsdoerfer.net/ntfslink/ Please note: This is /not/ a real shell extension. We use this fake COM object factory to register the "ShellNew" menu items. It's just the easiest way to do this, because the Delphi RTL will automatically call the UpdateRegistry() method if a client calls DllRegisterServer. -----------------------------------------------------------------------------} unit ShellNewDummyHook; interface uses Windows, ComObj, ActiveX; type TShellNewDummyHook = class(TComObject(* no interfaces needed, it's a fake! *)) end; TShellNewDummyFactory = class(TComObjectFactory) public procedure UpdateRegistry(Register: Boolean); override; end; implementation uses ComServ, SysUtils, JclRegistry; { TShellNewDummyFactory } procedure TShellNewDummyFactory.UpdateRegistry(Register: Boolean); procedure CreateShellNewStructure(FileExtKey, FileClassKey, DllFunctionName, ItemCaption: string; IconIndex: Integer); begin // Create the file extension key + the "ShellNew" key CreateRegKey(FileExtKey, '', FileClassKey, HKEY_CLASSES_ROOT); CreateRegKey(FileExtKey + '\ShellNew', 'Command', 'rundll32.exe "' + ComServer.ServerFileName + '",' + DLLFunctionName + ' %1', HKEY_CLASSES_ROOT); // Create the file class key, + the the icon and a command sub-key CreateRegKey(FileClassKey, '', ItemCaption, HKEY_CLASSES_ROOT); CreateRegKey(FileClassKey + '\DefaultIcon', '', ComServer.ServerFileName + ',' + IntToStr(IconIndex), HKEY_CLASSES_ROOT); CreateRegKey(FileClassKey + '\Shell\Open\Command', '', '.', HKEY_CLASSES_ROOT); end; const HARDLINK_FILEEXT_KEY = '.ntfs-hardlink'; HARDLINK_FILECLASS_KEY = 'NTFSLink.Hardlink'; JUNCTION_FILEEXT_KEY = '.ntfs-junction'; JUNCTION_FILECLASS_KEY = 'NTFSLink.Junction'; begin if Register then begin CreateShellNewStructure(HARDLINK_FILEEXT_KEY, HARDLINK_FILECLASS_KEY, 'NewHardlinkDlg', 'NTFS Hardlink', 0); CreateShellNewStructure(JUNCTION_FILEEXT_KEY, JUNCTION_FILECLASS_KEY, 'NewJunctionDlg', 'NTFS Junction Point', 1); end else begin try RegDeleteKeyTree(HKEY_CLASSES_ROOT, HARDLINK_FILEEXT_KEY); except end; try RegDeleteKeyTree(HKEY_CLASSES_ROOT, HARDLINK_FILECLASS_KEY); except end; try RegDeleteKeyTree(HKEY_CLASSES_ROOT, JUNCTION_FILEEXT_KEY); except end; try RegDeleteKeyTree(HKEY_CLASSES_ROOT, JUNCTION_FILECLASS_KEY); except end; end; // *NO* inherited call here, it would just make unnecessary registry entries end; initialization TShellNewDummyFactory.Create(ComServer, TShellNewDummyHook, GUID_NULL, '', '', ciMultiInstance, tmApartment); end. a2ps-4.15.5/tests/tstfiles/a2ps.man0000644000000000000000000000607014251172040013702 00000000000000 A2PS(1L) Misc. Reference Manual Pages A2PS(1L) NNNNAAAAMMMMEEEE a2ps - formats an ascii file for printing on a postscript printer SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS aaaa2222ppppssss [ gggglllloooobbbbaaaallll ooooppppttttiiiioooonnnnssss ] [ ppppoooossssiiiittttiiiioooonnnnaaaallll ooooppppttttiiiioooonnnnssss ] [ _f_i_l_e_1 [ ppppoooossssiiiittttiiiioooonnnnaaaallll ooooppppttttiiiioooonnnnssss ] ] _f_i_l_e_2 ... ] ] DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN _a_2_p_s formats each named file for printing in a postscript printer; if no file is given, _a_2_p_s reads from the standard input. The output is sent to the printer or to stdout or to a file. The format used is nice and compact: normally two pages on each physical page, borders surrounding pages, headers with useful information (page number, printing date, file name or supplied header), line numbering, keyword highlighting, symbol substitution etc. This is very useful for making archive listings of programs. GGGGlllloooobbbbaaaallll ooooppppttttiiiioooonnnnssss Global options offered by _a_2_p_s are the following: ----???? ----hhhh Print usage information. ----aaaa Use alternative paper size. In general defined to be US letter. (see -V). ----bbbb Force printing binary files. By default, binary files printing is stopped before second page (see -nb option). ----cccc Compact mode for a sequence of files. This option allows the printing of two files in the same physical page: last page of the first file in the left (or up) side and first page of the second file in the right (or down) side. This option is valid only for twinpage mode (two pages per physical page). ----ffff Fold lines too large to be printed inside the borders (default option). Max line size depends on format and font size used and whether line numbering has been suppressed. ----hhhh Print usage information. ----IIII_f_i_l_e Use the specified file as the postscript prologue for a2ps. ----iiii Interpret TAB, BS and FF characters (default option). TAB is replaced by enough spaces to reach next tab stop while BS and FF have their meanings. SunOS 5.5 Last change: 9 August 1996 1 Some weird characters that exists out there are: - O plus: o+ and +o - Copyright: cO - Plus or minus: +_ - Greater than or equal to: ~>_ - Less than or equal to: ~<_ - Another form of u_n_d_e_r_l_i_n_i_n_g_._a2ps-4.15.5/tests/tstfiles/bookie.idl0000644000000000000000000000550214233473143014311 00000000000000/* ######################################################################## Bookie.idl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. (c) Copyright 1999 Bob Phillips ######################################################################## */ #include #define FIVE_BUCKS 5.00 module Bookie { // For now, we will cheat on the date, time, // and location. Eventually, we want to make // these real objects. typedef string Date; typedef string Time; typedef string Location; exception NoBet {}; exception EmptyBetList{}; # pragma MindlessJunk // PointSpread is a bit of a hack. We need to be able to express the // 1/2 point push-eliminator What we will do is create an object that // can be initialized with a float/double. Any non-zero part of the // fraction will be rounded (up or down) to 1/2 -- the implementation // will probably represent it as a short int (16-bit, so, allowing 1 // bit to serve as the 1/2 fraction and 1 to serve as a sign, we have // 14 bit spreads. Even in basketball, that isn't going to happen // anytime soon :^) interface PointSpread { // Attributes would be the logical way to // do this, but the example is short on // methods... So we need to have some methods. void SetSpread(in float spread); float GetSpread(void); }; // Same sort of thing with currency. We want a Fixed representation // So we allow any float in. We output a Float for other purposes. // We can later add all sorts of operations. interface Currency { attribute float amount; }; const float NICKEL_BET FIVE_BUCKS; const float DIME_BET 10.00; interface Team { readonly attribute string name; // No need to change this attribute unsigned long wins; attribute unsigned long losses; }; interface Game { attribute Date date; attribute Time time; attribute Location location; } interface Bet { // If an attribute ever changes, we need to create a new Bet. // This allows for record keeping if we integrate persistent // storage -- we have a record of every bet ever made. readonly attribute Game game; readonly attribute Team team; readonly attribute Currency amount; }; typedef sequence BetList; interface Customer { readonly attribute string name; attribute boolean PaidUp; void AddToBetList (in Bet bet); void DelFromBetList (in Bet bet) raises (NoBet); void SetBetlist (in BetList list); oneway void ClearBetList (void); void FindBet(inout Bet bet) // Need to show an inout... raises(NoBet); void GetBetList(out BetList list) // Need to show an out param... raises (EmptyBetList); }; }; a2ps-4.15.5/tests/tstfiles/configure.ac0000644000000000000000000000013314251172040014620 00000000000000AC_INIT AC_FATAL([You are not supposed to run this file])dnl Kill the empty line. AC_OUTPUTa2ps-4.15.5/tests/tstfiles/confirm.m30000644000000000000000000000231514251172040014234 00000000000000 MODULE Confirm EXPORTS Main; IMPORT Trestle, VBT, TextVBT, RigidVBT, ButtonVBT, BorderedVBT, HVSplit; IMPORT PaintOp, Pixmap, Axis; IMPORT ConfirmVBT; PROCEDURE Yes (self: ButtonVBT.T; READONLY cd: VBT.MouseRec) = BEGIN Trestle.Delete(main); END Yes; PROCEDURE QuitAction (self: ButtonVBT.T; READONLY cd: VBT.MouseRec) = VAR msg := "Do you really wish to quit?"; confirm := ConfirmVBT.New(msg, Yes); BEGIN Trestle.Install(confirm) END QuitAction; CONST (* sizes for the RigidVBT *) horz = 30.0; vert = 10.0; (* size in millimeters *) (* border size for text and button *) bsize = 1.5; (* size in millimeters *) VAR blue := PaintOp.FromRGB(0.0, 0.0, 1.0); green := PaintOp.FromRGB(0.0, 1.0, 0.0); text := RigidVBT.FromHV(TextVBT.New("Confirm demo"), horz, vert); top := BorderedVBT.New( text, size := bsize, op := blue, txt := Pixmap.Solid); button := ButtonVBT.New(TextVBT.New("Quit"), QuitAction); bottom := BorderedVBT.New( button, size := bsize, op := green, txt := Pixmap.Gray); main := HVSplit.Cons(Axis.T.Ver, top, bottom); BEGIN Trestle.Install(main); Trestle.AwaitDelete(main) END Confirm. a2ps-4.15.5/tests/tstfiles/ehandler0000644000000000000000000000524514233473143014060 00000000000000%!ps % lib/ehandler.ps -- Downloaded Error Break-page handler % GOVERNMENT END USERS: See Notice file in TranScript library directory % -- probably /usr/lib/ps/Notice % -- code follows this line -- % assumes serverloop password is the default one /$brkpage where {pop(Error Handler in place - not loaded again\n)print flush stop} {serverdict begin statusdict begin 0000 checkpassword {(Error Handler downloaded.\n)print flush 0000 exitserver} {(Bad Password on loading error handler!!!\n)print flush stop}ifelse }ifelse /$brkpage 64 dict def $brkpage begin /prnt {dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def /=={/cp 0 def typeprint nl}def /typeprint{dup type exec}readonly def /lmargin 72 def /rmargin 72 def /tprint {dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp exch def prnt}readonly def /cvsprint{=string cvs tprint( )tprint}readonly def /integertype{cvsprint}readonly def /realtype{cvsprint}readonly def /booleantype{cvsprint}readonly def /operatortype{(--)tprint =string cvs tprint(-- )tprint}readonly def /marktype{pop(-mark- )tprint}readonly def /dicttype{pop(-dictionary- )tprint}readonly def /nulltype{pop(-null- )tprint}readonly def /filetype{pop(-filestream- )tprint}readonly def /savetype{pop(-savelevel- )tprint}readonly def /fonttype{pop(-fontid- )tprint}readonly def /nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def /stringtype {dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse }readonly def /arraytype {dup rcheck{dup xcheck {({)tprint{typeprint}forall(})tprint} {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse }readonly def /packedarraytype {dup rcheck{dup xcheck {({)tprint{typeprint}forall(})tprint} {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse }readonly def /courier/Courier findfont 10 scalefont def end %$brkpage errordict/handleerror {systemdict begin $error begin $brkpage begin newerror {/newerror false store vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont lmargin 720 moveto(ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt $error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if systemdict/showpage get exec(%%[ Error: )print errorname =print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end end} dup 0 systemdict put dup 4 $brkpage put bind readonly put a2ps-4.15.5/tests/tstfiles/encoding.pre0000644000000000000000000001535014251172040014637 00000000000000\Label{ascii} \encoding{ascii}% This is a pure ASCII file, written to test the ASCII encoding in a2ps. Character with the high bit set, (such as , , , ) are not printable, and are escaped. \Label{latin1} \encoding{latin1}% Ceci est un texte en franais accentu, comme dans aot, ou dcembre, et non pas aot et dcembre... \Label{latin2} \encoding{latin2}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd \Keyword{DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki} KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA \Label{latin3} \encoding{latin3}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki \keyword{KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka} MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA \Label{latin4} \encoding{latin4}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA \Label{latin5} \encoding{latin5}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA \Label{latin6} \encoding{latin6}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA % We no longer include Cyrillic fonts in the package. % \Label{iso5} % \encoding{iso5}% % dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie % GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd % DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki % KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz % PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka % MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ % awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA % wskanik WSKANIK mona MONA % % \Label{koi8} % \encoding{koi8}% % dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie % GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd % DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki % KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz % PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka % MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ % awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA % wskanik WSKANIK mona MONA \Label{CP1250} \encoding{CP1250}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA \Label{ibmpc} \encoding{ibmpc}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA \Label{pcg} \encoding{pcg}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA \Label{Hp} \encoding{Hp}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA \Label{Mac} \encoding{Mac}% dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA dokd DOKD pamitasz PAMITASZ awka AWKA napa NAPA ganie GANIE ki KI mrwka MRWKA wskanik WSKANIK mona MONA a2ps-4.15.5/tests/tstfiles/eplv_chkr.v0000644000000000000000000000173514233473143014517 00000000000000// This module checks for BDVL deasserting when BEPVL is asserted. module epvl_chkr(clk, bpvl, bepvl, bdvl, stop); input clk; input bpvl; input bepvl; input bdvl; input stop; // $stop (or $finish if BATCH) on error `ifdef JUST_COUNT_PACKETS // Do nothing `else integer status; `endif // ifdef JUST_COUNT_PACKETS always @(posedge clk) begin if (!bpvl && bepvl && bdvl) begin $display("%%E-%M, %0t BDVL cannot be deasserted with BEPVL", $time); if (stop) begin #1000 `ifdef JUST_CHECK_COUNTS // Do nothing `else status = $check_counts; `endif // !ifdef JUST_CHECK_COUNTS $display("%%I-%M, %0t Stopping simulation on error!", $time); `ifdef BATCH $finish; `else $stop; `endif // !ifdef BATCH end // if (backplane.stop_on_error) end // if (!bpvl && bepvl && bdvl) end // always @ (posedge clk) endmodule // epvl_chkr a2ps-4.15.5/tests/tstfiles/essai2.o2c0000644000000000000000000000700614233473143014143 00000000000000set options "-I/inf/erebe/bdstag/sigbench/release/Schema/include"; set schema sigrel; set base sigrelb; set application Index_lineaire; name Nt_rem_oid:Tt_rem_oid; name Ns_rem_oid:set (Tt_rem_oid); name No_JS_feuilleA:C_Feuille; name No_JS_feuilleB:C_Feuille; name Ns_JS_jointure_cles:set (tuple (cleA:string, cleB:string)); function F_JS_big_theta (Pt_a:Tt_rem_oid, Pt_b:Tt_rem_oid):boolean; function body F_JS_big_theta (Pt_a:Tt_rem_oid, Pt_b:Tt_rem_oid):boolean { /* test si "a intersecte b (sens strict)" */ return ((Pt_a.Ai_xmin < Pt_b.Ai_xmax) && (Pt_a.Ai_ymin < Pt_b.Ai_ymax) && (Pt_a.Ai_xmax > Pt_b.Ai_xmin) && (Pt_a.Ai_ymax > Pt_b.Ai_ymin)); }; function F_JS_existe_cle (Pc_cleA:string, Pc_cleB:string):boolean; function body F_JS_existe_cle (Pc_cleA:string, Pc_cleB:string):boolean { #include "varextbis.h" Handle poign_root, poign_objet_final, *poign_cle; Scan *scan_index; Predicate *predicat; void *index_id; o2 string cle = "index-racine"; /************** Fermeture du scan index et retour ******/ o2_col_scan_close (scan_index); /*printf("sortie F_Lecture_index\n");*/ printf (" ===> feuille %s ok ...\n", Pc_cleA + Pc_cleB); return true; }; function F_JS_get_quadrant (Pc_cle:string, Pt_rem:Tt_rem_oid):Tt_rem_oid; function body F_JS_get_quadrant (Pc_cle:string, Pt_rem:Tt_rem_oid):Tt_rem_oid { o2 integer dx = (Pt_rem.Ai_xmax - Pt_rem.Ai_xmin) / 2; o2 integer dy = (Pt_rem.Ai_ymax - Pt_rem.Ai_ymin) / 2; o2 integer i; for (i = 0; i < count (Pc_cle); i++) { switch (Pc_cle[i]) { default: printf ("Nom de feuille (%s) erronee !!!\n", Pc_cle); } dx = dx / 2; dy = dy / 2; } return (Pt_rem); }; function F_JS_join_f (Pc_cleA:string, Pt_remA:Tt_rem_oid, Pc_cleB:string, Pt_remB:Tt_rem_oid); function body F_JS_join_f (Pc_cleA:string, Pt_remA:Tt_rem_oid, Pc_cleB:string, Pt_remB:Tt_rem_oid) { #include "varextbis.h" /* contexte general */ printf ("tente (%s,%s) ...", Pc_cleA, Pc_cleB); if (F_JS_small_theta (Pt_remA, Pt_remB)) { printf ("===> ok"); Ns_JS_jointure_cles += set (tuple (cleA: Pc_cleA, cleB:Pc_cleB)); } printf ("\n"); return; }; ; program private P_JS_Lance_jointure (Pc_quad_linA:string, Pc_quad_linB:string) in application Index_lineaire; transaction body P_JS_Lance_jointure (Pc_quad_linA:string, Pc_quad_linB:string) in application Index_lineaire { #include "varextbis.h" o2 Tt_def_index t_def_idxA; o2 Tt_def_index t_def_idxB; o2 Tt_def_index def_idx; o2 Tt_rem_oid t_remA; o2 Tt_rem_oid t_remB; }; program public P_JS_select (Pc_noeud:string) in application Index_lineaire; transaction body P_JS_select (Pc_noeud:string) in application Index_lineaire { o2 set (C_Feuille) Tree = set (); o2 C_Feuille f = nil; o2 integer reso2q = 0; o2 Tt_rem_oid rem, quadrant; o2 set (Tt_rem_oid) Resultat = set (); o2 Tt_rem_oid Po_objet = Nt_rem_oid; o2 Tt_def_index Po_index, idx; for (idx in Nt_indexes.Al_def_index) if (idx.Ao_index == No_quad_lin01) Po_index = idx; /* Recuperation des feuilles de l'arbre */ reso2q = o2query (Tree, "select f from f in $1", Po_index.Ao_index); if (reso2q) { printf ("Index vide ou inexistant ...!!!"); /* return set();*/ abort; } for (f in Tree) if (F_JS_small_theta (Po_objet, rem) Resultat += set (rem); Ns_rem_oid = Resultat; /*return Resultat;*/ }; commit; quit; a2ps-4.15.5/tests/tstfiles/ex1.asn10000644000000000000000000000144514233473143013632 00000000000000-- file: .../asn1specs/ex1.asn1 -- -- This is an example ASN.1 module used in the documentation -- -- MS 92 -- -- Initial checkin. -- -- Revision 1.2 1997/02/16 20:25:22 rj -- check-in of a few cosmetic changes -- -- Revision 1.1 1994/10/08 05:41:32 rj -- initial check-in. -- EX1 DEFINITIONS ::= BEGIN anOidVal OBJECT IDENTIFIER ::= { joint-iso-ccitt 40 foobar(29) } theSameOidVal OBJECT IDENTIFIER ::= { 2 40 29 } anIntVal INTEGER ::= 1 aBoolVal BOOLEAN ::= TRUE MACRO ::= identifier END T1 ::= SEQUENCE { INTEGER OPTIONAL, OCTET STRING OPTIONAL, ENUMERATED { a(0), b(1), c(2) }, SEQUENCE OF INTEGER, SEQUENCE { id OBJECT IDENTIFIER, value OCTET STRING }, CHOICE { INTEGER, OBJECT IDENTIFIER } DESCRIPTION "This is a string with a quote "" in it." } END a2ps-4.15.5/tests/tstfiles/ex_PSGETRS.f900000644000000000000000000001770114233473143014516 00000000000000! Gilles GRASSEAU (CNRS/IDRIS - France) - Nov. 1996 program test_psgetrs !------------------------------------------------------------------- ! Description : ! Exemple de factorisation LU puis de resolution du systeme : ! A * x = b , ou A est une matrice (5,5). ! ! Principe : ! Les matrice/vecteurs A, x et b sont globaux et les matrices/ ! vecteurs dist_a, dist_x et dist_b sont respectivement les ! matrices/vecteurs distribuees sur la grille de proc. 2x2. ! La repartition de la matrice se fait par blocs cycliques 2x2 ! (2 elements par ligne et 2 elements par colonne - ! voir Exemple de repartition d'une matrice). ! La repartition des vecteurs se fait par blocs cycliques 2x1 ! (le processeur logique (0,0) possede les blocs {x(1:2) ,x(5)} ! et le processeur logique (1,0) possede le bloc x(3:4) ). ! ! Algorithme : ! 1 - Initialisation du BLACS et autres. ! 2 - Distribution de la matrice A et du vecteur x vers les blocs ! locaux dist_a et dist_x de chaque processeur logique. ! (voir Distribution de matrice) ! On a simule la situation ou seul le processeur (0,0) possede ! la matrice et les vecteurs globaux A, x et b. ! 3 - Factorisation LU et resolution. ! 4 - Recuperation et impression des resultats par le processeur ! logique (0,0). ! ! Remarque : ! 1 - Le tableau de travail 'work' a ete dimensionne a la valeur ! donnee par INITBUFF pour psgetrs ( > au buffer de psgetrf). ! 2 - La liste des pivots locaux 'dist_piv' est dimensionnee a ! 'n_max' + 'rb_size'. ! !------------------------------------------------------------------- implicit none integer :: pe, npes ! Identificateur du processeur et ! nombre de processeurs physiques. integer, parameter:: nprow=2, npcol=2 ! Grille de proc. logiques. integer :: prow, pcol ! Coord. de mon proc. logique integer :: icntxt ! Contexte (grille de procs) integer, dimension(8) :: desc_a ! Descripteur de la matrice. integer, dimension(8) :: desc_x ! Descripteur des vecteurs. integer, parameter :: n=5 ! Ordre matrices/vecteurs. real, dimension(n,n) :: a ! Matrice globale a. real, dimension(n) :: x ! Vecteur resultat x(global) real, dimension(n) :: b ! Vecteur b (global) integer, parameter :: n_max=3 ! Dim. des matrices/vecteurs ! locaux. real, dimension(n_max,n_max):: dist_a ! Matrice locale. real, dimension(n_max) :: dist_x ! Vecteur local. real, dimension(n_max) :: dist_b ! Vecteur local. integer, parameter :: rb_size=2, & ! Taille des blocs lignes cb_size=2 ! et colonnes. integer, dimension(n_max+rb_size):: dist_piv ! Vecteur local des ! pivots. integer :: info, i, j data a/ 0.5, 0.0, 2.3, 0.0,-2.6, & ! Coefficients de la matrice 0.0, 0.5,-1.4, 0.0,-0.7, & ! globale A. 2.3,-1.4, 0.5, 0.0, 0.0, & 0.0, 0.0, 0.0, 1.0, 0.0, & -2.6,-0.7, 0.0, 0.0, 0.5/ data b/-2.1, 0.3, 1.5, 0.0,-1.5/ ! Coefficients du vecteur global integer,parameter:: minb=rb_size, maxb=minb ! Calcul de l'espace integer,parameter:: minp=nprow, maxd=n ! de travail integer,parameter:: wsize=2*maxb*(((maxd/minb)/minp)*maxb+maxb)*8 real, dimension(wsize/8) :: work ! Initialisation BLACS et autres. !-------------------------------------- call initbuff(work,wsize) ! Init. des buffers internes au PBLAS call blacs_pinfo(pe, npes) ! Init. mon PE, nbre de procs physiques call blacs_gridinit(icntxt, & ! Init. Grille de proc. logiques. 'C', nprow, npcol) call blacs_gridinfo(icntxt, & ! Mes coord. dans la grille nprow, npcol, prow, pcol) ! de processeurs logiques. call descinit(desc_a, n, n, & ! Init. descripteur de la rb_size, cb_size, 0, 0, & ! matrice a icntxt, n_max, info) if (info.lt.0) stop 'descinit' call descinit(desc_x, n, 1, & ! Init. descripteur du vecteur x rb_size, 1, 0, 0, & icntxt, n_max, info) & if (info.lt.0) stop 'descinit' ! Distribution de la matrice 'a' vers la matrice distribuee 'dist_a'. !-------------------------------------------------------------------- call distribue(icntxt, a, n, dist_a, n_max, prow, pcol) ! Distribution du vecteur 'b' sur le vecteur distribue 'dist_b'. !------------------------------------------------------------------ if ((prow==0).and.(pcol==0)) then dist_b(1:2) = b(1:2) ! copie de b(1:2) dans proc(0,0) call sgesd2d(icntxt,2,1, & ! b(3:5) envoie au proc (1,0) b(3),n,1,0) dist_b(3) = b(5) ! copie de b(5) dans proc (0,0) end if if ((prow==1).and.(pcol==0)) then call sgerv2d(icntxt, 2,1, dist_b(1), & ! reception b(3:5) dans n_max, 0, 0) ! dist_b(1:2). end if ! Calculs !---------------------------------- call PSGETRF(n, n, dist_a, 1, 1, desc_a, & dist_piv, info) if (info /= 0) print *,'Erreur dans la factorisation : ',info call PSGETRS( 'N', n, 1, dist_a, 1, 1, desc_a, & dist_piv, dist_b, 1, 1, desc_x, info) if (info /= 0) print *,'Erreur dans la resolution : ',info ! Recuperation des resultats 'dist_b' -> 'x' !---------------------------------------------- if ((prow==1).and.(pcol==0)) then call sgesd2d(icntxt,2,1,dist_b(1), & ! envoie de dist_b(1:2) n_max, 0, 0) ! au proc (0,0) end if if ((prow==0).and.(pcol==0)) then x(1:2) = dist_b(1:2) ! copie de dist_b(1:2) dans proc(0,0) call sgerv2d(icntxt,2,1, & ! reception dist_b(1:2) dans x(3:4) x(3), n, 1, 0) x(5) = dist_b(3) ! copie de dist_b(3) dans proc (0,0) end if ! Impression des resultats !----------------------------- if ((prow==0).and.(pcol==0)) then write(6,*) ' resultats :' write(6,'(1x,5F5.1)') (x(j),j=1,n) end if end program !-------------------------------------------------------------------- ! Distribution de la matrice 'x' vers la matrice distribuee 'dist_x'. !-------------------------------------------------------------------- subroutine distribue( icntxt, x, n, dist_x, n_max, prow, pcol) implicit none integer :: icntxt ! Contexte (grille de procs) integer :: n ! Ordre de la matrice X integer :: n_max ! Ordre de la matrice locale. real,dimension(n,n):: x ! Matrice globale X. real,dimension(n_max,n_max):: dist_x ! Matrice locale. integer :: prow, pcol ! Coord. de mon proc. logique if ((prow == 0) .and. (pcol == 0)) then ! Emission par le ! processeur (0,0) call sgesd2d( icntxt, 2,2, x(1,3), n, 0, 1) call sgesd2d( icntxt, 2,2, x(3,1), n, 1, 0) call sgesd2d( icntxt, 2,2, x(3,3), n, 1, 1) call sgesd2d( icntxt, 2,1, x(3,5), n, 1, 0) call sgesd2d( icntxt, 1,2, x(5,3), n, 0, 1) end if if ((prow == 0) .and. (pcol == 0)) then ! Copie des blocs dist_x(1:2,1:2) = x(1:2,1:2) ! appartenant au proc(0,0) dist_x(1:2,3) = x(1:2,5) dist_x(3,1:2) = x(5,1:2) dist_x(3,3) = x(5,5) end if ! Reception par les if ((prow == 0) .and. (pcol == 1)) then ! autres processeurs. call SGERV2D( icntxt, 2,2, dist_x(1,1), n_max, 0, 0) call SGERV2D( icntxt, 1,2, dist_x(3,1), n_max, 0, 0) end if if ((prow == 1) .and. (pcol == 0)) then call SGERV2D( icntxt, 2,2, dist_x(1,1), n_max, 0, 0) call SGERV2D( icntxt, 2,1, dist_x(1,3), n_max, 0, 0) end if if ((prow == 1) .and. (pcol == 1)) then call SGERV2D( icntxt, 2,2, dist_x(1,1), n_max, 0, 0) end if end subroutine distribue a2ps-4.15.5/tests/tstfiles/formfeed.txt0000644000000000000000000000002214233473143014667 000000000000001 2 5 6 7 a2ps-4.15.5/tests/tstfiles/ftp2.pml0000644000000000000000000002761414233473143013744 00000000000000/* * File Transfer Protocol * * Promela (Protocol Meta Language) * * J-Ph Cottin 12/96 (inspired by Gerard J. Holzmann) */ /* * Global Definitions */ #define LOSS 0 /* message loss */ #define DUPS 0 /* duplicate msgs */ #define QSZ 2 /* queue size */ mtype = { red, white, blue, abort, accept, ack, sync_ack, close, connect, create, data, eof, open, reject, sync, transfer, FATAL, NON_FATAL, COMPLETE } /*chan use_to_pres[2] = [QSZ] of {byte}; chan pres_to_use[2] = [QSZ] of {byte}; chan pres_to_ses[2] = [QSZ] of {byte}; chan ses_to_pres[2] = [QSZ] of {byte,byte}; chan ses_to_flow[2] = [QSZ] of {byte,byte}; chan flow_to_ses[2] = [QSZ] of {byte,byte}; chan dll_to_flow[2] = [QSZ] of {byte,byte}; chan flow_to_dll[2] = [QSZ] of {byte,byte}; chan ses_to_fsrv[2] = [QSZ] of {byte}; chan fsrv_to_ses[2] = [QSZ] of {byte}; */ chan use_to_pres[2] = [QSZ] of {mtype}; chan pres_to_use[2] = [QSZ] of {mtype}; chan pres_to_ses[2] = [QSZ] of {mtype}; chan ses_to_pres[2] = [QSZ] of {mtype,byte}; chan ses_to_flow[2] = [QSZ] of {mtype,byte}; chan flow_to_ses[2] = [QSZ] of {mtype,byte}; chan dll_to_flow[2] = [QSZ] of {mtype,byte}; chan flow_to_dll[2] = [QSZ] of {mtype,byte}; chan ses_to_fsrv[2] = [QSZ] of {mtype}; chan fsrv_to_ses[2] = [QSZ] of {mtype}; /* * User Layer Validation Model */ proctype userprc ( bit n) { use_to_pres[n]!transfer; if :: pres_to_use[n]?accept -> goto Done :: pres_to_use[n]?reject -> goto Done :: use_to_pres[n]!abort -> goto Aborted fi; Aborted: if :: pres_to_use[n]?accept -> goto Done :: pres_to_use[n]?reject -> goto Done fi; Done: skip } /* * Presentation Layer Validation Model */ proctype present(bit n) { byte status, uabort; endIDLE: do :: use_to_pres[n]?transfer -> uabort = 0; break :: use_to_pres[n]?abort -> skip od; TRANSFER: pres_to_ses[n]!transfer; do :: use_to_pres[n]?abort -> if :: (!uabort) -> uabort = 1; pres_to_ses[n]!abort :: (uabort) -> assert(1+1!=2) fi :: ses_to_pres[n]?accept,0 -> goto DONE :: ses_to_pres[n]?reject(status) -> if :: (status == FATAL || uabort) -> goto FAIL :: (status == NON_FATAL && !uabort) -> goto TRANSFER fi od ; DONE: pres_to_use[n]!accept; goto endIDLE; FAIL: pres_to_use[n]!reject; goto endIDLE } /* * Session Layer Validation Model */ proctype session (bit n) { bit toggle; byte type, status; endIDLE: do :: pres_to_ses[n]?type -> if :: (type == transfer) -> goto DATA_OUT :: (type != transfer) /* ignore */ fi :: flow_to_ses[n]?type, 0 -> if :: (type == connect) -> goto DATA_IN :: (type != connect) /* ignore */ fi od; DATA_IN: /* 1. prepare local file fsrver */ ses_to_fsrv[n]!create; do :: fsrv_to_ses[n]?reject -> ses_to_flow[n]!reject,0; goto endIDLE :: fsrv_to_ses[n]?accept -> ses_to_flow[n]!accept,0; break od; /* 2. Receive the data, upto eof */ do :: flow_to_ses[n]?data,0 -> ses_to_fsrv[n]!data :: flow_to_ses[n]?eof,0 -> ses_to_fsrv[n]!eof; break :: pres_to_ses[n]?transfer -> ses_to_pres[n]!reject(NON_FATAL) :: flow_to_ses[n]?close,0 -> /* remote user aborted */ ses_to_fsrv[n]!close; break :: timeout -> /* got disconnect */ ses_to_fsrv[n]!close; goto endIDLE od; /* 3. Close the connection */ ses_to_flow[n]!close,0; goto endIDLE; DATA_OUT: /* 1. prepare local file fsver */ ses_to_fsrv[n]!open; if :: fsrv_to_ses[n]?reject -> ses_to_pres[n]!reject(FATAL); goto endIDLE :: fsrv_to_ses[n]?accept -> skip fi; /* 2. Initialize flow control */ ses_to_flow[n]!sync,toggle; do :: atomic { flow_to_ses[n]?sync_ack,type -> if :: (type!= toggle) :: (type == toggle) -> break fi } :: timeout -> ses_to_fsrv[n]!close; ses_to_pres[n]!reject(FATAL); goto endIDLE od; toggle = 1 - toggle; /* 3. Prepare remote file fsrver */ ses_to_flow[n]!connect,0; if :: flow_to_ses[n]?reject,0 -> ses_to_fsrv[n]!close; ses_to_pres[n]!reject(FATAL); goto endIDLE :: flow_to_ses[n]?connect,0 -> ses_to_fsrv[n]!close; ses_to_pres[n]!reject(NON_FATAL); goto endIDLE :: flow_to_ses[n]?accept,0 -> skip :: timeout -> ses_to_fsrv[n]!close; ses_to_pres[n]!reject(FATAL); goto endIDLE fi; /* 4. Transmit the data, upto eof*/ do :: fsrv_to_ses[n]?data -> ses_to_flow[n]!data,0 :: fsrv_to_ses[n]?eof -> ses_to_flow[n]!eof,0; status = COMPLETE; break :: pres_to_ses[n]?abort -> /* local user aborted */ ses_to_fsrv[n]!close; ses_to_flow[n]!close,0; status = FATAL; break od; /* 5. Close the connexion */ do :: pres_to_ses[n]?abort /* ignore */ :: flow_to_ses[n]?close,0 -> if :: (status == COMPLETE) -> ses_to_pres[n]!accept,0 :: (status != COMPLETE) -> ses_to_pres[n]!reject(status) fi; break :: timeout -> ses_to_pres[n]!reject(FATAL); break od; goto endIDLE } /* * File Server Validation Model */ proctype fserver (bit n) { end: do :: ses_to_fsrv[n]?create -> /* incoming */ if :: fsrv_to_ses[n]!reject :: fsrv_to_ses[n]!accept -> do :: ses_to_fsrv[n]?data :: ses_to_fsrv[n]?eof -> break :: ses_to_fsrv[n]?close -> break od fi :: ses_to_fsrv[n]?open -> /* outgoing */ if :: fsrv_to_ses[n]!reject :: fsrv_to_ses[n]!accept -> do :: fsrv_to_ses[n]!data :: fsrv_to_ses[n]!eof -> break :: ses_to_fsrv[n]?close -> break od fi od } /* * Flow Control Laer Validation Model */ #define true 1 #define false 0 #define M 4 /* range sequence numbers */ #define W 2 /* window size : M/2 */ proctype fc(bit n) { bool busy[M]; /* outstanding messages */ byte q; /* seq# oldest unacked msg */ byte m; /* seq# last msg received */ byte s; /* seq# next msg to send */ byte window; /* nr of outstanding msgs */ byte type; /* msg type */ bit received[M]; /* receiver housekeeping */ bit x; /* scratch variable */ byte p; /* seq# of last msg acked */ byte I_buf[M], O_buf[M]; /* message buffers */ /* sender part */ end: do :: atomic { (window < W && len (ses_to_flow [n]) > 0 && len (flow_to_dll[n]) < QSZ ) -> ses_to_flow[n]?type,x; window = window +1; busy[s]= true; O_buf[s] = type; flow_to_dll[n]!type, s; if :: (type != sync) -> s = (s+1) %M :: (type == sync) -> window = 0; s = M; do :: (s > 0) -> s= s - 1; busy[s] = false :: (s == 0) -> break od fi } :: atomic { (window > 0 && busy[q] == false) -> window = window -1; q = (q+1) %M } #if DUPS :: atomic { (len(flow_to_dll[n]) < QSZ && window >0 && busy[q] == true) -> flow_to_dll[n]! O_buf[q], q } #endif :: atomic { (timeout && len(flow_to_dll[n]) < QSZ && window >0 && busy[q] == true) -> flow_to_dll[n]! O_buf[q], q } /* receiver part */ #if LOSS :: dll_to_flow[n]?type,m /* lose any message */ #endif :: dll_to_flow[n]?type,m -> if :: atomic{ (type == ack) -> busy[m] = false } :: atomic{ (type == sync) -> m = 0; do :: (m < M) -> received[m] = 0; m = m + 1 :: (m == M) -> break od }; flow_to_dll[n]!sync_ack,0 :: (type == sync_ack) -> flow_to_ses[n]!sync_ack,0 :: (type != ack && type != sync && type != sync_ack) -> if :: atomic { (received[m] == true) -> x = ((0 < p-m && p-m<= W) || (0 < p-m-M && p-m-M <=W))}; if :: (x) -> flow_to_dll[n]!ack,m :: (!x) /* else skip */ fi :: atomic { (received[m] == false) -> I_buf[m] = type; received[m] = true; received[(m-W+M)%M] = false } fi fi :: (received[p] == true && len(flow_to_ses[n]) flow_to_ses[n]!I_buf[p],0; flow_to_dll[n]!ack,p; p = (p+1) % M od } /* * Datalink Layer Validation Model */ proctype data_link () { byte type, seq; end: do :: flow_to_dll[0]?type,seq -> if :: dll_to_flow[1]!type,seq :: skip /* lose message */ fi :: flow_to_dll[1]?type,seq -> if :: dll_to_flow[0]!type,seq :: skip /* lose message */ fi od } /* * Main Program */ /*init { atomic { run userprc(0); run userprc(1); run present(0); run present(1); run session(0); run session(1); run fserver(0); run fserver(1); run fc(0); run fc(1); run data_link() } } */ init { atomic { run userprc(0); run present(0); run session(0); run fserver(0); run fc(0); run data_link(); run fc(1); run fserver(1); run session(1); run present(1); run userprc(1); } } a2ps-4.15.5/tests/tstfiles/includeres0000644000000000000000000000311314233473143014423 00000000000000#!/usr/local/bin/perl eval 'exec perl -S $0 "$@"' if $running_under_some_shell; # includeres: include resources in PostScript file # # Copyright (C) Angus J. C. Duggan 1991-1995 # See file LICENSE for details. $prog = ($0 =~ s=.*/==); %extn = ("font", ".pfa", "file", ".ps", "procset", ".ps", # resource extns "pattern", ".pat", "form", ".frm", "encoding", ".enc"); %type = ("%%BeginFile:", "file", "%%BeginProcSet:", "procset", "%%BeginFont:", "font"); # resource types =head1 NAME foo - script which blah =cut sub filename { # make filename for resource in @_ local($name); foreach (@_) { # sanitise name s/[!()\$\#*&\\\|\`\'\"\~\{\}\[\]\<\>\?]//g; $name .= $_; } $name =~ s@.*/@@; # drop directories die "Filename not found for resource ", join(" ", @_), "\n" if $name =~ /^$/; $name; } while (<>) { if (/^%%IncludeResource:/ || /^%%IncludeFont:/ || /^%%IncludeProcSet:/) { local($comment, @res) = split(/\s+/); local($type) = defined($type{$comment}) ? $type{$comment} : shift(@res); local($name) = &filename(@res); local($inc) = "/inf/soft/infthes/demaille/include/psutils"; # system include directory if (open(RES, $name) || open(RES, "$name$extn{$type}") || open(RES, "$inc/$name") || open(RES, "$inc/$name$extn{$type}")) { while () { print $_; } close(RES); } else { print "%%IncludeResource: ", join(" ", $type, @res), "\n"; print STDERR "Resource $name not found\n"; } } else { print $_; } } =head1 SEE ALSO blah blah. This is pod documentation. blah blah a2ps-4.15.5/tests/tstfiles/mofibida.hs0000644000000000000000000000347414233473143014463 00000000000000#!/usr/pd/bin/runhugs {- A sample Haskell file -} module Test where import qualified Monad import Prelude hiding (zip3) {-#specialise qsort :: [String]->[String] #-} -- a pragma -- Quicksort qsort :: Ord a => [a] -> [a] -- type annotation qsort [] = [] qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_x where elts_lt_x = [y | y <- xs, y < x] elts_greq_x = [y | y <- xs, y >= x] -- Fibbonacci sequence fib = 1 : 1 : [ a+b | (a,b) <- zip fib (tail fib) ] -- Binary tree data Tree a = Branch (Tree a) (Tree a) | Leaf a -- State monad from "http://haskell.org/tutorial/monads.html" -- note that ">>=" should not be prited as ">\geq" data S = Tree String data SM a = SM (S -> (a,S)) -- The monadic type instance Monad SM where -- defines state propagation SM c1 >>= fc2 = SM (\s0 -> let (r,s1) = c1 s0 SM c2 = fc2 r in c2 s1) return k = SM (\s -> (k,s)) leap = \n -> ( (n `mod` 4 == 0)&&(n `mod` 100 > 0) || (n `mod` 400 == 0)) a<->b = a ++ "<->" ++ b -- <-> is a new binary operator infixr 7 <-> -- infix declaration can be anywhere in the module -- dark corners of Haskell syntax are not pretty-printed correctly: if' = True -- characters outside ASCII are allowed, (<=) :: String->String->String -- <= is a valid operator name, a <= b = a++"<=<<"++b a |-- b = a++"|--"++b -- operator names can even inlude double dash, -- but many compilers will confuse it with a comment data Pair = String ::: String -- ::: is a valid constructor (x,hiding,qualified) = (0,0,0) -- not actually reserved words string_with_gaps = "Hel\ \lo,\HTwo\ \rld"++['\33'] -- the value is "Hello,\tworld!" a2ps-4.15.5/tests/tstfiles/mtvplot.octave0000644000000000000000000000136214233473143015257 00000000000000## usage mtvplot(input,titles,filename) ## ## Outpluts graphs in MTV 1.4.1 curve2d format. ## ## input: is a matrix with the ordinate in the first column, ## each successive column is a separate curve to plot ## on the SEPARATE axes. ## titles: a list of string titles for each plot ## filename: the file to store the mtv file in function mtvplot(input,titles,filename) file=fopen(filename,"w"); for g=(1:columns(input)-1) fprintf(file,"%s\n","$DATA=Curve2d"); fprintf(file,"%s %s %s\n","%toplabel=\"",titles(g,:),"\""); fprintf(file,"%s\n","% linetype=1"); for x=1:rows(input) fprintf(file,"%f %f\n",input(x,1),input(x,g+1)); endfor endfor fclose(file) endfunction a2ps-4.15.5/tests/tstfiles/mutex.py0000644000000000000000000000305514233473143014064 00000000000000# Mutual exclusion -- for use with module sched # A mutex has two pieces of state -- a 'locked' bit and a queue. # When the mutex is not locked, the queue is empty. # Otherwise, the queue contains 0 or more (function, argument) pairs # representing functions (or methods) waiting to acquire the lock. # When the mutex is unlocked while the queue is not empty, # the first queue entry is removed and its function(argument) pair called, # implying it now has the lock. # # Of course, no multi-threading is implied -- hence the funny interface # for lock, where a function is called once the lock is aquired. # class mutex: # # Create a new mutex -- initially unlocked # def __init__(self): self.locked = 0 self.queue = [] # # Test the locked bit of the mutex # def test(self): return self.locked # # Atomic test-and-set -- grab the lock if it is not set, # return true if it succeeded # def testandset(self): if not self.locked: self.locked = 1 return 1 else: return 0 # # Lock a mutex, call the function with supplied argument # when it is acquired. # If the mutex is already locked, place function and argument # in the queue. # def lock(self, function, argument): """Take it.""" if self.testandset(): function(argument) else: self.queue.append((function, argument)) # # Unlock a mutex. If the queue is not empty, call the next # function with its argument. # def unlock(self): """Release.""" if self.queue: function, argument = self.queue[0] del self.queue[0] function(argument) else: self.locked = 0 # a2ps-4.15.5/tests/tstfiles/pi.b0000644000000000000000000000224414233473143013122 00000000000000/* This is a program to determine the distribution of digits in the fraction part of PI. It will look at the first scale digits. The results are left in the global variable digits. digits[0] is the number of 0's in PI. This program requires the math library. */ define pi () { auto ix, pi, save_scale, work; save_scale = scale; scale += 5; print "\n\nCalculating PI to ",scale," digits. Please wait . . ."; pi = 4*a(1); scale -= 5; work = pi; print "\nCounting digits. . ."; for (ix = 0; ix < 10; ix++) digits[ix] = 0; /* Extract the One's digit from pi. */ scale = 0; one_digit = work / 1; for (ix = save_scale; ix > 0; ix--) { /* Remove the One's digit and multiply by 10. */ scale = ix; work = (work - one_digit) / 1 * 10; /* Extract the One's digit. */ scale = 0; one_digit = work / 1; digits[one_digit] += 1; } /* Restore the scale. */ scale = save_scale; /* Report. */ print "\n\n" print "PI to ", scale, " digits is:\n", pi/1, "\n\n" print "The frequency of the digits are:\n" for (ix = 0; ix < 10; ix++) { print " ", ix, " - ", digits[ix], " times\n" } print "\n\n" } a2ps-4.15.5/tests/tstfiles/polkaIDL.hh0000644000000000000000000000704214233473143014330 00000000000000#ifndef __polkaIDL_hh__ #define __polkaIDL_hh__ #include #include _CORBA_MODULE polka { _CORBA_MODULE_PUBLIC #ifndef __polka_loader__ #define __polka_loader__ class loader; typedef loader* loader_ptr; typedef loader_ptr loaderRef; class loader_Helper { public: static loader_ptr _nil(); static CORBA::Boolean is_nil(loader_ptr p); static void release(loader_ptr p); static loader_ptr unmarshalObjRef(MemBufferedStream &s); }; typedef _CORBA_ObjRef_Var loader_var; #endif #define polka_loader_IntfRepoID "IDL:polka/loader:1.0" class _sk_loader : public virtual loader { public: _sk_loader() {} _sk_loader(const omniORB::objectKey& k); virtual ~_sk_loader() {} loader_ptr _this() { return loader::_duplicate(this); } void _obj_is_ready(CORBA::BOA_ptr boa) { boa->obj_is_ready(this); } protected: virtual void *_widenFromTheMostDerivedIntf(const char *repoId) { return loader::_widenFromTheMostDerivedIntf(repoId); } private: _sk_loader (const _sk_loader&); _sk_loader &operator=(const _sk_loader&); }; class _proxy_loader : public virtual loader { private: _proxy_loader (const _proxy_loader&); _proxy_loader &operator=(const _proxy_loader&); }; class _nil_loader : public virtual loader { public: _nil_loader() { this->PR_setobj(0); } virtual ~_nil_loader() {} void dump ( ){ throw CORBA::BAD_OPERATION(0,CORBA::COMPLETED_NO); // never reach here! Dummy return to keep some compilers happy. return; } polkaStatus enregistreServeur ( const char * name ){ throw CORBA::BAD_OPERATION(0,CORBA::COMPLETED_NO); // never reach here! Dummy return to keep some compilers happy. polkaStatus _result = 0; return _result; } polkaStatus enregistreClient ( const char * name, CORBA::Long & numSerie ){ throw CORBA::BAD_OPERATION(0,CORBA::COMPLETED_NO); // never reach here! Dummy return to keep some compilers happy. polkaStatus _result = 0; return _result; } polkaStatus supprimeServeur ( const char * name ){ throw CORBA::BAD_OPERATION(0,CORBA::COMPLETED_NO); // never reach here! Dummy return to keep some compilers happy. polkaStatus _result = 0; return _result; } polkaStatus supprimeClient ( const char * name, CORBA::Long numSerie ){ throw CORBA::BAD_OPERATION(0,CORBA::COMPLETED_NO); // never reach here! Dummy return to keep some compilers happy. polkaStatus _result = 0; return _result; } void terminaisonClient ( ){ throw CORBA::BAD_OPERATION(0,CORBA::COMPLETED_NO); // never reach here! Dummy return to keep some compilers happy. return; } protected: virtual void *_widenFromTheMostDerivedIntf(const char *repoId) { return loader::_widenFromTheMostDerivedIntf(repoId); } }; class loader_proxyObjectFactory : public proxyObjectFactory { public: loader_proxyObjectFactory () {} virtual ~loader_proxyObjectFactory () {} virtual const char *irRepoId() const; virtual CORBA::Object_ptr newProxyObject(Rope *r,CORBA::Octet *key,size_t keysize,IOP::TaggedProfileList *profiles,CORBA::Boolean release); virtual CORBA::Boolean is_a(const char *base_repoId) const; static polka::loader_ptr _nil() { if (!__nil_loader) { __nil_loader = new polka::_nil_loader; } return __nil_loader; } private: static polka::loader_ptr __nil_loader; }; }; #endif // __polkaIDL_hh__ a2ps-4.15.5/tests/tstfiles/prosamp.pre0000644000000000000000000000073714233473143014545 00000000000000% This is an a2ps prologue sampler. % \header{This is an example of header} \footer{This is an example of footer} \keyword{This is an example of keyword} \Keyword{This is an example of keyword strong} \comment{This is an example of comment} \Comment{This is an example of Comment strong} \label{This is an example of label} \Label{This is an example of Label strong} \string{This is an example of string} \symbol{This is an example of symbol} \error{This is an example of error} a2ps-4.15.5/tests/tstfiles/psmandup0000644000000000000000000001732714233473143014131 00000000000000#! /bin/sh -e # -*- ksh -*- # psmandup --- produce a version of a PS file to print in manual Duplex. # Copyright (c) 1998, 1999 Akim Demaille, Miguel Santana # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, you can either send email to this # program's maintainer or write to: The Free Software Foundation, # Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. # Author: Akim Demaille # Get the name of the program program=`echo $0 | sed 's#.*/##g'` # Local vars address=0 # Where to put the manual feed feature back=: # Print the back side pages. debug= file= front=: # Print the front side pages. output=- # Default is stdout fixps=${FIXPS:-fixps} message= psselect=${PSSELECT:-psselect} psset=${PSSET:-psset} tmpdir=`mktemp -d -t psmandup.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } # These two must be kept in synch. They are opposed. verbose=echo quiet=: # The version/usage strings version="psmandup 2.1 (GNU a2ps 4.13c) Written by Akim Demaille. Copyright (c) 1998-1999 Akim Demaille, Miguel Santana This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." usage="\ Usage: $program FILE Tries to produce a version of the PostScript FILE to print in manual Duplex. Options: -h, --help display this help and exit -v, --version display version information and exit -q, --quiet don't print informational messages -o, --output=FILE save result in FILE. If FILE is \`-', send to stdout -n, --no-fix don't call fixps to fix PS problems in FILE -f, --front output only the front pages (recto) on the regular tray -b, --back output only the back pages (verso) on the manual feed tray Produced output is meant for PS level 2 printers which don't support Duplex printing, but support Manual Feed. Once the first set of pages is printed (odd pages), manual feed is asked: introduce the odd pages to print the even pages on the other side. Because there is usually a short time out for manually fed jobs, you should really be next to the printer. If ever the time out expired, use the option -b to send only the missing part. Environment variables FIXPS, PSSELECT and PSSET, if defined, are used to find the tools. News, updates and documentation: http://www.inf.enst.fr/~demaille/a2ps/ Report bugs to " help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhsqnDbf' # Push a token among the arguments that will be used to notice when # we ended options/arguments parsing. arg_sep="$$--$$" set dummy ${1+"$@"} "$arg_sep" shift while test "x$1" != "x$arg_sep"; do # Handle --option=value by splitting apart and putting back on argv. case "$1" in --*=*) opt=`echo "$1" | sed -e 's/=.*//'` val=`echo "$1" | sed -e 's/[^=]*=//'` shift set dummy "$opt" "$val" ${1+"$@"} shift ;; -[$option_without_arguments]?*) # Prefix $1 with x to avoid running `echo -na' for instance. opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` rest=`echo "x$1" | sed -e 's/x-.\(.*\)/-\1/'` shift set dummy "$opt" "$rest" ${1+"$@"} shift ;; # This case needs to be protected so that the case `-??*' does # not split long options without arguments --*) ;; # This is an option with argument. Split apart and put back on argv. -??*) opt=`echo "x$1" | sed -e 's/x-\(.\).*/-\1/'` arg=`echo "x$1" | sed -e 's/x-.\(.*\)/\1/'` shift set dummy "$opt" "$arg" ${1+"$@"} shift ;; esac # Now, handle the options. $1 is the option *only*. If it has an # argument, it is now necessarily in $2 etc. Remember to shift # when fetching an argument. case "$1" in -v | --v*) echo "$version"; exit 0;; -h | --h*) echo "$usage"; exit 0;; -q | -s | --s* | --q*) verbose=:; quiet=echo;; # Delay debugging so that options parsing does not appear -D | --deb*) debug=-D ;; -o | --out*) shift ; output=$1 ;; -b | --bac*) front= ; back=: ;; -f | --fro*) front=: ; back= ;; -) # We are working with stdin ;; set dummy "$@" "$1" shift ;; -n | --no*) fixps= ;; --) # What remains are not options. shift while test "x$1" != "x$arg_sep"; do set dummy ${1+"$@"} "$1" shift shift done break;; -*) echo "$program: Unknown or ambiguous option \`$1'." >&2 echo "$program: Try \`--help' for more information." >&2 exit 1;; *) set dummy ${1+"$@"} "$1" shift ;; esac shift done # Pop the token shift # Check the number of arguments. case $# in 0) file=-;; 1) file=$1;; *) echo "$program: too many arguments" 1>&2 echo "$help" 1>&2 exit 1;; esac if test -n "$debug"; then # Set -x now if debugging set -x else # Temp dir. Get ready not to leave junk (if not debugging) trap "/bin/rm -rf $tmpdir" 0 1 2 3 13 15 fi # If printing from stdin, save into a tmp file if test $file = '-'; then file=$tmpdir/stdin.ps cat > $file fi # Fix the file beforehand, so that we can really expect to find the # page numbers. if test -n "$fixps"; then $fixps $file -o $tmpdir/fixed.ps `$quiet -q` file=$tmpdir/fixed.ps fi # Get the number of pages of the document pagenum=`sed -ne '/^%%Pages:/{ s/%%Pages: \\([0-9]*\\).*$/\\1/p q }' $file` # Make the string to get the front pages (even, increasing) if needed if test -n "$front"; then evens="1" i=3 # Build the string to give to psselect while test $i -le $pagenum; do evens="$evens,$i" i=`expr $i + 2` done fi # Make the string to get the back pages (odd, decreasing) if needed if test -n "$back"; then # If the number of pages is odd, we need to insert a blank sheet case "$pagenum" in *[13579]) odds="_" i=`expr $pagenum - 1 || exit 0` ;; *) # Odd, and not 0, so at least >= 2 odds=$pagenum i=`expr $pagenum - 2 || exit 0` ;; esac # Make the string to get the second half (odd, decreasing) while test $i != 0; do odds="$odds,$i" i=`expr $i - 2 || exit 0` done fi # If there are both odds and evens to print, the separator is `,' test -n "$odds" && test -n "$evens" && separator=, # Reorder the pages $psselect -q $evens$separator$odds $file > $tmpdir/ordered.ps # If needed, insert the manual feed request if test -n "$back"; then # The option of psset to ask the manual feed. If not set, # psset just does nothing. pssetmanfeed=-m # Compute the address, depending on front pages are printed or not. if test -n "$front"; then address=`expr '(' $pagenum + 1 ')' / 2 + 1` message="\ Once the first half of the file printed, insert the sheets stack into the manual feed tray to print the second half. Be aware the time out if usually short. If it expired, use option -b to proceed." else address=0 message="Insert the front pages stack into the manual feed tray." fi fi # Insert the manual feed request if needed $psset -n $pssetmanfeed -a $address -o$output $tmpdir/ordered.ps $debug test -n "$message" && $verbose "$message" 1>&2 exit 0 a2ps-4.15.5/tests/tstfiles/report.pre0000644000000000000000000002620314233473143014373 00000000000000% This has been generated by a2ps version 4.8.2 % It should be processed by either LaTeX or % a2ps with options -Epre to be printable. % %%prescript:skip % a2ps skips everything between this line, and the one with `piks' \documentclass{article} %% These are LaTeX commands for prescript primitives. \newcommand{\textbi}[1]{\textbf{\textit{#1}}} \newcommand{\textsy}[1]{#1} \newcommand{\keyword}[1]{\textbf{#1}} \newcommand{\Keyword}[1]{\textbf{#1}} \newcommand{\comment}[1]{\textit{#1}} \newcommand{\Comment}[1]{\textit{#1}} \newcommand{\label}[1]{\textit{#1}} \newcommand{\Label}[1]{\textit{#1}} \newcommand{\string}[1]{``\textit{#1}''} %% These are made to be forgotten by LaTeX but seen by a2ps %% To get a better LaTeX file, remove any occurrence. \newcommand{\magicbf}[1]{} \newcommand{\magicit}[1]{} \newcommand{\magicbi}[1]{} \newcommand{\magicrm}[1]{} \newcommand{\magicsy}[1]{} \newcommand{\magictt}[1]{} %% There might be a better way to handle these \newcommand{\footer}[1]{} \newcommand{\header}[1]{} %% These symbols are available in ps but not in LaTeX. \newcommand{\carriagereturn}{$\backslash$n} \newcommand{\suchthat}{``suchthat''} \newcommand{\therefore}{``therefore''} \newcommand{\radicalex}{``radicalex''} \newcommand{\florin}{``florin''} \newcommand{\lozenge}{\diamondsuit} \newcommand{\register}{``register''} \newcommand{\trademark}{(TM)}} \newcommand{\varcopyright}{\copyright} \newcommand{\vartrademark}{\trademark} \newcommand{\varregister}{\register} \newcommand{\apple}{``apple''} \newcommand{\Alpha}{A} \newcommand{\Beta}{B} \newcommand{\Chi}{X} \newcommand{\Epsilon}{E} \newcommand{\Eta}{H} \newcommand{\Iota}{I} \newcommand{\Kappa}{K} \newcommand{\Mu}{M} \newcommand{\Nu}{N} \newcommand{\Omicron}{O} \newcommand{\Rho}{P} \newcommand{\Tau}{T} \newcommand{\Zeta}{Z} \newcommand{\varUpsilon}{\Upsilon} \newcommand{\omicron}{o} %%prescript:piks \begin{document} \textbi{This is the automatic report about styles of a2ps, version 4.8.2} \footer{Style sheets of a2ps version 4.8.2} \header{a2ps report} \section{Style definitions} \textrm{The reader should first note that a2ps is _not_ a powerful syntactical pretty-printer: it just handles lexical structures, i.e., if in your language} IF IF == THEN THEN ELSE := IF ELSE ELSE := THEN \textrm{is legal, then a2ps is not the tool you need. It is for the same reason that you can't expect a2ps to highlight the function definitions in C. In the following is described how the style sheets are defined. You can skip this section if you don't care how a2ps does this, and if you don't expect to implement new styles.} \section{Consistancy} \textrm{There are no found problems in the styles.} \section{Known languages} \begin{enumerate} \magictt{ 1}\item ada \magictt{ 2}\item c \magictt{ 3}\item c++ \magictt{ 4}\item caml \magictt{ 5}\item claire \magictt{ 6}\item coq-vernacular \magictt{37}\item Unity \magictt{38}\item VERILOG \magictt{39}\item VHDL \magictt{40}\item zsh \end{enumerate} \section{Description of the language styles} \magicbf{1} \subsection{ada style} \begin{itemize} \header{ada style} \item \textrm{the abbreviation are:} adb, ads. \item \textrm{first alphabet is:} '\verb|A|\verb|B|\verb|C|\verb|D|\verb|E|\verb|F|\verb|G|\verb|H|\verb|I|\verb|J|\verb|K|\verb|L|\verb|M|\verb|N|\verb|O|\verb|P|\verb|Q|\verb|R|\verb|S|\verb|T|\verb|U|\verb|V|\verb|W|\verb|X|\verb|Y|\verb|Z|'(65-90), '\verb|a|\verb|b|\verb|c|\verb|d|\verb|e|\verb|f|\verb|g|\verb|h|\verb|i|\verb|j|\verb|k|\verb|l|\verb|m|\verb|n|\verb|o|\verb|p|\verb|q|\verb|r|\verb|s|\verb|t|\verb|u|\verb|v|\verb|w|\verb|x|\verb|y|\verb|z|'(97-122), '\verb|_|'(95), '\verb|)|'(41). \item \textrm{second alphabet is:} '\verb|0|\verb|1|\verb|2|\verb|3|\verb|4|\verb|5|\verb|6|\verb|7|\verb|8|\verb|9|'(48-57), '\verb|A|\verb|B|\verb|C|\verb|D|\verb|E|\verb|F|\verb|G|\verb|H|\verb|I|\verb|J|\verb|K|\verb|L|\verb|M|\verb|N|\verb|O|\verb|P|\verb|Q|\verb|R|\verb|S|\verb|T|\verb|U|\verb|V|\verb|W|\verb|X|\verb|Y|\verb|Z|'(65-90), '\verb|a|\verb|b|\verb|c|\verb|d|\verb|e|\verb|f|\verb|g|\verb|h|\verb|i|\verb|j|\verb|k|\verb|l|\verb|m|\verb|n|\verb|o|\verb|p|\verb|q|\verb|r|\verb|s|\verb|t|\verb|u|\verb|v|\verb|w|\verb|x|\verb|y|\verb|z|'(97-122), '\verb|_|'(95), '\verb|'|'(39). \item \textrm{keywords, symbols and sequences recognition is case insensitive.} \item \textrm{the keywords are:} \Keyword{abort}, % \Keyword{abs}, \Keyword{abstract}, \Keyword{accept}, \Keyword{access}, % \Keyword{access function}, \Keyword{access procedure}, \Keyword{aliased}, \Keyword{all}, % \Keyword{and}, \Keyword{array}, \Keyword{at}, \Keyword{begin}, % \Keyword{body}, \Keyword{case}, \Keyword{constant}, \Keyword{declare}, % \Keyword{delay}, \Keyword{delta}, \Keyword{digits}, \Keyword{do}, % \Keyword{else}, \Keyword{elsif}, \Keyword{end}, \Keyword{entry}, % \Keyword{exception}, \Keyword{exit}, \Keyword{for}, \Keyword{function}, % \Keyword{generic}, \Keyword{goto}, \Keyword{if}, \Keyword{in}, % \Keyword{is}, \Keyword{limited}, \Keyword{loop}, \Keyword{mod}, % \Keyword{new}, \Keyword{not}, \Keyword{null}, \Keyword{of}, % \Keyword{or}, \Keyword{others}, \Keyword{out}, \Keyword{package}, % \Keyword{pragma}, \Keyword{private}, \Keyword{procedure}, \Keyword{protected}, % \Keyword{raise}, \Keyword{range}, \Keyword{record}, \Keyword{rem}, % \Keyword{renames}, \Keyword{requeue}, \Keyword{return}, \Keyword{reverse}, % \Keyword{select}, \Keyword{separate}, \Keyword{subtype}, \Keyword{tagged}, % \Keyword{task}, \Keyword{terminate}, \Keyword{then}, \Keyword{type}, % \Keyword{until}, \Keyword{use}, \Keyword{when}, \Keyword{while}, % \Keyword{with}, \Keyword{xor}. \item \textrm{the regular symbols are:} \item \textrm{the special symbols are:} \verb#!=# $\to$ $\neq$, % \verb!==! $\to$ $\equiv$, \verb!<=! $\to$ $\leq$, % \verb!>=! $\to$ $\geq$, \verb!=>! $\to$ $\Rightarrow$. \item \textrm{the sequences are:} \verb!--inside$! $\to$ \comment{--}\comment{inside}\$, % \verb!"inside"! $\to$ \texttt{"}\string{inside}\texttt{"}, % \verb!'inside'! $\to$ \texttt{'}\string{inside}\texttt{'}, % \verb!package body inside is! $\to$ \Keyword{package body }\Label{inside}\Keyword{ is}, % \verb!package inside is! $\to$ \Keyword{package }\Label{inside}\Keyword{ is}, % \verb!package inside renames! $\to$ \Keyword{package }\Label{inside}\Keyword{ renames}, % \verb!procedure inside renames! $\to$ \Keyword{procedure }\label{inside}\Keyword{ renames}, % \verb!procedure inside is! $\to$ \Keyword{procedure }\label{inside}\Keyword{ is}, % \verb!procedure inside (! $\to$ \Keyword{procedure }\label{inside}\texttt{ (}, % \verb!procedure inside(! $\to$ \Keyword{procedure }\label{inside}\texttt{(}, % \verb!procedure inside$! $\to$ \Keyword{procedure }\label{inside}\$, % \verb!procedure inside;! $\to$ \Keyword{procedure }\label{inside}\texttt{;}, % \verb!function inside renames! $\to$ \Keyword{function }\label{inside}\Keyword{ renames}, % \verb!function inside is! $\to$ \Keyword{function }\label{inside}\Keyword{ is}, % \verb!function inside (! $\to$ \Keyword{function }\label{inside}\texttt{ (}, % \verb!function inside(! $\to$ \Keyword{function }\label{inside}\texttt{(}, % \verb!function inside$! $\to$ \Keyword{function }\label{inside}\$, % \verb!function inside;! $\to$ \Keyword{function }\label{inside}\texttt{;}. \item \textrm{the verbatims are:} "\verb!'''!". \item \textrm{the escapes are:} "\verb!""!", "\verb!\\!", "\verb!\'!". \end{itemize} \magicbf{25} \subsection{PreScript style} \begin{itemize} \header{PreScript style} \item This is prescript, a language of description of textual pages. It provides by the use of LaTeX like commands, a way to describe the pages that this program should produce. It can be a very good choice of destination language for people who want to produce text to print (e.g. pretty-printing, automating documentation etc.) but who definitely do not want to learn postscript, nor to require the use of LaTeX. It is also known as BifTeX (Basic Instruction From LaTeX), of ptf (Poor Text Format). Symbol translation is always enabled in this mode. \item \textrm{the abbreviation are:} prescript, biftex, bif, pre, ptf. \item \textrm{first alphabet is:} '\verb|A|\verb|B|\verb|C|\verb|D|\verb|E|\verb|F|\verb|G|\verb|H|\verb|I|\verb|J|\verb|K|\verb|L|\verb|M|\verb|N|\verb|O|\verb|P|\verb|Q|\verb|R|\verb|S|\verb|T|\verb|U|\verb|V|\verb|W|\verb|X|\verb|Y|\verb|Z|'(65-90), '\verb|a|\verb|b|\verb|c|\verb|d|\verb|e|\verb|f|\verb|g|\verb|h|\verb|i|\verb|j|\verb|k|\verb|l|\verb|m|\verb|n|\verb|o|\verb|p|\verb|q|\verb|r|\verb|s|\verb|t|\verb|u|\verb|v|\verb|w|\verb|x|\verb|y|\verb|z|'(97-122), '\verb|\|'(92), '\verb|_|'(95). \item \textrm{second alphabet is:} '\verb|A|\verb|B|\verb|C|\verb|D|\verb|E|\verb|F|\verb|G|\verb|H|\verb|I|\verb|J|\verb|K|\verb|L|\verb|M|\verb|N|\verb|O|\verb|P|\verb|Q|\verb|R|\verb|S|\verb|T|\verb|U|\verb|V|\verb|W|\verb|X|\verb|Y|\verb|Z|'(65-90), '\verb|a|\verb|b|\verb|c|\verb|d|\verb|e|\verb|f|\verb|g|\verb|h|\verb|i|\verb|j|\verb|k|\verb|l|\verb|m|\verb|n|\verb|o|\verb|p|\verb|q|\verb|r|\verb|s|\verb|t|\verb|u|\verb|v|\verb|w|\verb|x|\verb|y|\verb|z|'(97-122), '\verb|_|'(95). \item \textrm{keywords, symbols and sequences recognition is case sensitive.} \item \textrm{there are no keywords.} \item \textrm{there are no regular symbols.} \item \textrm{the special symbols are:} \verb!\$! $\to$ \$, % \verb!$! $\to$ , \verb!\_! $\to$ \_, % \verb!\%! $\to$ \%, \verb!\&! $\to$ \&, % \verb!\#! $\to$ \#, \verb!\(! $\to$ (, % \verb!\)! $\to$ ), \verb!\[! $\to$ [, % \verb!\]! $\to$ ], \verb!\{! $\to$ \{, % \verb!\|! $\to$ $\|$, \verb!\}! $\to$ \}. \item \textrm{the sequences are:} \verb!\\encoding{inside}! $\to$ \texttt{inside}, % \verb!%%prescript:skipinside%%prescript:piks$! $\to$ , % \verb!%inside$! $\to$ , % \verb!\\item[inside]! $\to$ \label{inside}, % \verb!\\section{inside}! $\to$ \Label{inside}, % \verb!\\subsection{inside}! $\to$ \label{inside}, % \verb!\\subsubsection{inside}! $\to$ \label{inside}, % \verb!\\header{inside}$! $\to$ \texttt{inside}, % \verb!\\footer{inside}$! $\to$ \texttt{inside}, % \verb!\\textbf{inside}! $\to$ \Keyword{inside}, % \verb!\\textit{inside}! $\to$ \keyword{inside}, % \verb!\\textbi{inside}! $\to$ \Keyword{inside}, % \verb!\\textrm{inside}! $\to$ \string{inside}, % \verb!\\textsy{inside}! $\to$ $\iota$$\nu$$\sigma$$\iota$$\delta$$\epsilon$, % \verb!\\texttt{inside}! $\to$ \texttt{inside}, % \verb!\\keyword{inside}! $\to$ \keyword{inside}, % \verb!\\Keyword{inside}! $\to$ \Keyword{inside}, % \verb!\\comment{inside}! $\to$ \comment{inside}, % \verb!\\Comment{inside}! $\to$ \Comment{inside}, % \verb!\\label{inside}! $\to$ \label{inside}, % \verb!\\Label{inside}! $\to$ \Label{inside}, % \verb!\\string{inside}! $\to$ \string{inside}, % \verb!\\magicbf{inside}! $\to$ \Keyword{inside}, % \verb!\\magicit{inside}! $\to$ \keyword{inside}, % \verb!\\magicbi{inside}! $\to$ \Keyword{inside}, % \verb!\\magicrm{inside}! $\to$ \string{inside}, % \verb!\\magicsy{inside}! $\to$ $\iota$$\nu$$\sigma$$\iota$$\delta$$\epsilon$, % \verb!\\magictt{inside}! $\to$ \texttt{inside}, % \verb!\\verb+inside+! $\to$ \texttt{inside}, % \verb#\\verb!inside!# $\to$ \texttt{inside}, % \verb!\\verb|inside|! $\to$ \texttt{inside}, % \verb!\\verb#inside#! $\to$ \texttt{inside}, % \verb!\\verb=inside=! $\to$ \texttt{inside}. \item \textrm{there are no verbatims.} \item \textrm{there are no escapes.} \end{itemize} \end{document} a2ps-4.15.5/tests/tstfiles/run-help0000644000000000000000000000057114233473143014025 00000000000000#! /bin/zsh # zsh script to peruse the help directory # if [[ $1 = "-l" ]]; then if [[ ${HELPDIR:-} != "" ]]; then echo 'Here is a list of topics for which help is available:' echo "" ls $HELPDIR else echo 'There is no help available at this time' fi elif [[ ${HELPDIR:-} != "" && -r $HELPDIR/$1 ]] then ${=PAGER:-more} $HELPDIR/$1 else man $1 fi a2ps-4.15.5/tests/tstfiles/s-garnam.adb0000644000000000000000000003121514233473143014524 00000000000000------------------------------------------------------------------------------ -- -- -- GLADE COMPONENTS -- -- -- -- S Y S T E M . G A R L I C . N A M I N G -- -- -- -- B o d y -- -- -- -- -- -- Copyright (C) 1996,1997 Free Software Foundation, Inc. -- -- -- -- GARLIC is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- -- ware Foundation; either version 3, or (at your option) any later ver- -- -- sion. GARLIC is distributed in the hope that it will be useful, but -- -- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABI- -- -- LITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -- -- License for more details. You should have received a copy of the GNU -- -- General Public License distributed with GARLIC; see file COPYING. If -- -- not, write to the Free Software Foundation, 59 Temple Place - Suite 330, -- -- Boston, MA 02111-1307, USA. -- -- -- -- As a special exception, if other files instantiate generics from this -- -- unit, or you link this unit with other files to produce an executable, -- -- this unit does not by itself cause the resulting executable to be -- -- covered by the GNU General Public License. This exception does not -- -- however invalidate any other reasons why the executable file might be -- -- covered by the GNU Public License. -- -- -- -- GLADE is maintained by ACT Europe. -- -- (email: glade-report@act-europe.fr) -- -- -- ------------------------------------------------------------------------------ with Ada.Exceptions; with Interfaces.C; use Interfaces.C; with Interfaces.C.Strings; use Interfaces.C.Strings; with System.Garlic.Constants; use System.Garlic.Constants; with System.Garlic.OS_Lib; use System.Garlic.OS_Lib; with Unchecked_Conversion; with Unchecked_Deallocation; package body System.Garlic.Naming is use Thin; Default_Buffer_Size : constant := 16384; procedure Free is new Unchecked_Deallocation (char_array, char_array_access); function Allocate (Size : Positive := Default_Buffer_Size) return char_array_access; -- Allocate a buffer. function Parse_Entry (Host : Hostent) return Host_Entry; -- Parse an entry. procedure Raise_Naming_Error (Errno : in C.Int; Message : in String); -- Raise the exception Naming_Error with an appropriate error message. protected Gethost_In_Progress is entry Lock; procedure Unlock; private Locked : Boolean := False; end Gethost_In_Progress; -- We have to protect this. ---------------- -- Address_Of -- ---------------- function Address_Of (Something : String) return Address is begin if Is_IP_Address (Something) then return Value (Something); else return Info_Of (Something) .Addresses (1); end if; end Address_Of; ------------ -- Adjust -- ------------ procedure Adjust (Object : in out Host_Entry) is Aliases : String_Array renames Object.Aliases; begin Object.Name := new String'(Object.Name.all); for I in Aliases'Range loop Aliases (I) := new String'(Aliases (I) .all); end loop; end Adjust; -------------- -- Allocate -- -------------- function Allocate (Size : Positive := Default_Buffer_Size) return char_array_access is begin return new char_array (1 .. size_t (Size)); end Allocate; ----------------- -- Any_Address -- ----------------- function Any_Address return Address is begin return To_Address (Inaddr_Any); end Any_Address; -------------- -- Finalize -- -------------- procedure Finalize (Object : in out Host_Entry) is Aliases : String_Array renames Object.Aliases; procedure Free is new Unchecked_Deallocation (String, String_Access); begin Free (Object.Name); for I in Aliases'Range loop Free (Aliases (I)); end loop; end Finalize; ------------------------- -- Gethost_In_Progress -- ------------------------- protected body Gethost_In_Progress is ---------- -- Lock -- ---------- entry Lock when not Locked is begin Locked := True; end Lock; ------------ -- Unlock -- ------------ procedure Unlock is begin Locked := False; end Unlock; end Gethost_In_Progress; --------------- -- Host_Name -- --------------- function Host_Name return String is Buff : char_array_access := Allocate; Buffer : constant chars_ptr := To_Chars_Ptr (Buff); Res : constant int := C_Gethostname (Buffer, Buff'Length); begin if Res = Failure then Free (Buff); Raise_Naming_Error (C_Errno, ""); end if; declare Result : constant String := Value (Buffer); begin Free (Buff); return Result; end; end Host_Name; ----------- -- Image -- ----------- function Image (Add : Address) return String is function Image (A : Address_Component) return String; -- Return the string corresponding to its argument without -- the leading space. ----------- -- Image -- ----------- function Image (A : Address_Component) return String is Im : constant String := Address_Component'Image (A); begin return Im (2 .. Im'Last); end Image; begin return Image (Add.H1) & "." & Image (Add.H2) & "." & Image (Add.H3) & "." & Image (Add.H4); end Image; ------------- -- Info_Of -- ------------- function Info_Of (Name : String) return Host_Entry is Res : Hostent_Access; C_Name : chars_ptr := New_String (Name); begin Gethost_In_Progress.Lock; Res := C_Gethostbyname (C_Name); Free (C_Name); if Res = null then Gethost_In_Progress.Unlock; Raise_Naming_Error (C_Errno, Name); end if; declare Result : constant Host_Entry := Parse_Entry (Res.all); begin Gethost_In_Progress.Unlock; return Result; end; end Info_Of; ------------- -- Info_Of -- ------------- function Info_Of (Addr : Address) return Host_Entry is function Convert is new Unchecked_Conversion (Source => In_Addr_Access, Target => chars_ptr); Temp : aliased In_Addr := To_In_Addr (Addr); C_Addr : constant chars_ptr := Convert (Temp'Unchecked_Access); Res : Hostent_Access; begin Gethost_In_Progress.Lock; Res := C_Gethostbyaddr (C_Addr, C.Int (Temp'Size / CHAR_BIT), Af_Inet); if Res = null then Gethost_In_Progress.Unlock; Raise_Naming_Error (C_Errno, Image (Addr)); end if; declare Result : constant Host_Entry := Parse_Entry (Res.all); begin Gethost_In_Progress.Unlock; return Result; end; end Info_Of; ------------------------ -- Info_Of_Name_Or_IP -- ------------------------ function Info_Of_Name_Or_IP (Something : String) return Host_Entry is begin if Is_IP_Address (Something) then return Info_Of (Value (Something)); else return Info_Of (Something); end if; end Info_Of_Name_Or_IP; ------------------- -- Is_Ip_Address -- ------------------- function Is_IP_Address (Something : String) return Boolean is First : constant Natural := Character'Pos (Something (Something'First)); begin return First >= Character'Pos ('0') and then First <= Character'Pos ('9'); end Is_IP_Address; ------------- -- Name_Of -- ------------- function Name_Of (Something : String) return String is Hostent : constant Host_Entry := Info_Of_Name_Or_IP (Something); begin if Hostent.Name = null then Ada.Exceptions.Raise_Exception (Naming_Error'Identity, "No name for " & Something); end if; return Hostent.Name.all; end Name_Of; ----------------- -- Parse_Entry -- ----------------- function Parse_Entry (Host : Hostent) return Host_Entry is C_Aliases : constant Thin.Chars_Ptr_Array := Chars_Ptr_Pointers.Value (Host.H_Aliases); C_Addr : constant In_Addr_Access_Array := In_Addr_Access_Pointers.Value (Host.H_Addr_List); Result : Host_Entry (N_Aliases => C_Aliases'Length - 1, N_Addresses => C_Addr'Length - 1); begin Result.Name := new String'(Value (Host.H_Name)); for I in 1 .. Result.Aliases'Last loop declare Index : Natural := I - 1 + Natural (C_Aliases'First); Current : chars_ptr renames C_Aliases (size_t (Index)); begin Result.Aliases (I) := new String'(Value (Current)); end; end loop; for I in Result.Addresses'Range loop declare Index : Natural := I - 1 + Natural (C_Addr'First); Current : In_Addr_Access renames C_Addr (Index); begin Result.Addresses (I) := To_Address (Current.all); end; end loop; return Result; end Parse_Entry; ------------------------ -- Raise_Naming_Error -- ------------------------ procedure Raise_Naming_Error (Errno : in C.Int; Message : in String) is function Error_Message return String; -- Return the message according to Errno. ------------------- -- Error_Message -- ------------------- function Error_Message return String is begin case Errno is when Host_Not_Found => return "Host not found"; when Try_Again => return "Try again"; when No_Recovery => return "No recovery"; when No_Address => return "No address"; when others => return "Unknown error" & C.Int'Image (Errno); end case; end Error_Message; begin Ada.Exceptions.Raise_Exception (Naming_Error'Identity, Error_Message & ": " & Message); end Raise_Naming_Error; ---------------- -- To_Address -- ---------------- function To_Address (Addr : In_Addr) return Address is begin return (H1 => Address_Component (Addr.S_B1), H2 => Address_Component (Addr.S_B2), H3 => Address_Component (Addr.S_B3), H4 => Address_Component (Addr.S_B4)); end To_Address; ---------------- -- To_In_Addr -- ---------------- function To_In_Addr (Addr : Address) return In_Addr is begin return (S_B1 => unsigned_char (Addr.H1), S_B2 => unsigned_char (Addr.H2), S_B3 => unsigned_char (Addr.H3), S_B4 => unsigned_char (Addr.H4)); end To_In_Addr; ----------- -- Value -- ----------- function Value (Add : String) return Address is function Convert is new Unchecked_Conversion (Source => unsigned_long, Target => In_Addr); C_Add : chars_ptr := New_String (Add); Converted : constant In_Addr := Convert (C_Inet_Addr (C_Add)); begin Free (C_Add); return (H1 => Address_Component (Converted.S_B1), H2 => Address_Component (Converted.S_B2), H3 => Address_Component (Converted.S_B3), H4 => Address_Component (Converted.S_B4)); end Value; end System.Garlic.Naming; a2ps-4.15.5/tests/tstfiles/snacc.mib0000644000000000000000000000722114233473143014127 00000000000000-- This file is extracted from the Snacc distribution. -- Parts have be cut to win bytes, and the result is probably meaningless. -- RFC1213-MIB DEFINITIONS ::= BEGIN IMPORTS mgmt, NetworkAddress, IpAddress, Counter, Gauge, TimeTicks FROM RFC1155-SMI -- OBJECT-TYPE -- FROM RFC-1212 ; -- MIB-II (same prefix as MIB-I) mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } -- textual conventions DisplayString ::= OCTET STRING -- This data type is used to model textual information taken -- from the NVT ASCII character set. By convention, objects -- with this syntax are declared as having -- SIZE (0..255) -- groups in MIB-II system OBJECT IDENTIFIER ::= { mib-2 1 } -- historical (some say hysterical) -- cmot OBJECT IDENTIFIER ::= { mib-2 9 } transmission OBJECT IDENTIFIER ::= { mib-2 10 } -- the Interfaces table -- The Interfaces table contains information on the entity's -- interfaces. Each interface is thought of as being -- attached to a `subnetwork'. Note that this term should -- not be confused with `subnet' which refers to an -- addressing partitioning scheme used in the Internet suite -- of protocols. ifTable OBJECT-TYPE SYNTAX SEQUENCE OF IfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of interface entries. The number of entries is given by the value of ifNumber." ::= { interfaces 2 } IfEntry ::= SEQUENCE { ifIndex INTEGER, ifDescr DisplayString, ifType INTEGER, ifMtu INTEGER, ifSpeed Gauge, ifPhysAddress PhysAddress, ifSpecific OBJECT IDENTIFIER } ifType OBJECT-TYPE SYNTAX INTEGER { other(1), -- none of the following regular1822(2), hdh1822(3), ddn-x25(4), rfc877-x25(5), e1(19), -- european equiv. of T-1 basicISDN(20), primaryISDN(21), -- proprietary serial propPointToPointSerial(22), ppp(23), softwareLoopback(24), eon(25), -- CLNP over IP [11] ethernet-3Mbit(26), nsip(27), -- XNS over IP slip(28), -- generic SLIP ultra(29), -- ULTRA technologies ds3(30), -- T-3 sip(31), -- SMDS frame-relay(32) } ACCESS read-only STATUS mandatory DESCRIPTION "The type of interface, distinguished according to the physical/link protocol(s) immediately `below' the network layer in the protocol stack." ::= { ifEntry 3 } END a2ps-4.15.5/tests/tstfiles/space.pls0000644000000000000000000000242114233473143014157 00000000000000REM Script to check space left in database. REM DECLARE CURSOR tot_space IS SELECT a.tablespace_name, sum(a.bytes) FROM dba_data_files a GROUP BY tablespace_name; tbl_tot VARCHAR2(50); byt_tot NUMBER(13); CURSOR free_space IS SELECT sum(b.bytes) FROM dba_free_space b WHERE b.tablespace_name = tbl_tot GROUP BY b.tablespace_name; byt_free NUMBER(13); pct_used NUMBER(3); /* * Here are some useless comments, inserted for testing a2ps */ BEGIN DBMS_OUTPUT.PUT_LINE (RPAD('TABLESPACE',30,' ') || LPAD('Total Bytes',17,' ') || LPAD('Free Bytes',17,' ') || LPAD('% Used',10,' ')); DBMS_OUTPUT.PUT_LINE (RPAD('-',79,'-')); LOOP IF NOT tot_space%ISOPEN THEN OPEN tot_space; END IF; FETCH tot_space INTO tbl_tot, byt_tot; IF tot_space%FOUND THEN OPEN free_space; FETCH free_space INTO byt_free; IF free_space%FOUND THEN pct_used := TRUNC(((1 - (byt_free/byt_tot)) * 100),0); DBMS_OUTPUT.PUT_LINE (RPAD(tbl_tot,30,' ') || LPAD(byt_tot,17,' ') || LPAD(byt_free,17,' ') || LPAD(pct_used,10,' ')); END IF; CLOSE free_space; ELSE EXIT; END IF; END LOOP; CLOSE tot_space; END; / a2ps-4.15.5/tests/tstfiles/sqlcrtbl.sql0000644000000000000000000001345614233473143014725 00000000000000# Skeleton script for creating a table # # Notes: # - Script should be formatted exactly as indicated # - The primary key columns should always be the first columns indicated # - All SQL statements should be terminated with a / # - Primary key, foreign key, and unique constraints are out-of-line. # - Multi-column constraints are out-of-line. # - All other constraints are in-line. # - Remove all comments above the next line #============================================================================= # Name : # Created On: # Created By: # SCN No : # Purpose : #============================================================================== drop table owner.table_name / create table owner.table_name ( column_name varchar2(4) constraint table_name_nn1 not null, column_name varchar2(10), column_name number(8,2) constraint table_name_ck1 ( column_name > 0), column_name number(4,2) default 0, column_name date, . . . constraint table_name_pk1 primary key (column_name, column_name, ...) # # All constraints that create an index must have a USING INDEX clause # To calculate the initial extent of an index, use the following (assuming # a 4K block size): # bytes = ((x*(11+x+len))/((4096 - 90)*(1 - pctfree/100)))*(4096 * 1.1) # where # x = expected number of rows after 6 months # z = number of columns indexed # len = the average length of the indexed column # # Alternatively, you may use one of the following storage clauses: # # Small (small indexes 20K to 2560K) # # storage (initial 20K next 20K minextents 1 maxextents 99 pctincrease 100 # freelists 1) # # Medium (medium indexes 2560K to 40960K) # # storage (initial 2560K next 20K minextents 1 maxextents 99 pctincrease 100 # freelists 1) # # Large (large indexes 40960K and up) # # storage (initial 40960K next 320K minextents 1 maxextents 99 pctincrease 100 # freelists 1) # using index tablespace get_from_dba pctfree 10 storage (initial 20K next 20K minextents 1 maxextents 99 pctincrease 100 freelists 1) constraint table_name_fk1 foreign key (column_name) references table_name (column_name), constraint table_name_u1 unique (column_name, column_name) using index tablespace get_from_dba pctfree 10 storage (initial 20K next 20K minextents 1 maxextents 99 pctincrease 100 freelists 1) # pctfree should be set to 0 for tables whose rows are not updated # (e.g. validation tables, control tables, history tables, etc.) # and whose columsn will all be complete (not null) upon first insert. # # pctfree should be set higher than 10 for those rows where many columns # will initially be left null upon the first insert, but will be updated # later pctfree 10 pctused 40 tablespace get_from_dba # # STORAGE CLAUSE # # Initial Extent # Initial extent storage should be set to the appropriate number of bytes # (rounded to a multiple of 20K bytes) this table is expected to grow to in # the first 6 months. # To calculate the initial extent, use the following (assuming # a 4K block size): # bytes = ((x*(5+y*(1+len)))/((4096 - 90)*(1 - pctfree/100)))*4096 # where # x = expected number of rows after 6 months # y = number of columns in the table # len = the average column length # pctfree = obtained from guidelines above # # Round the initial extent up to one of the values in the table below. # Determine the next extent from the table below (again assuming 4K # block sizes): # # Initial Extent Next Extent # ============= =========== # 20K 20K # 40K 20K # 80K 20K # 160K 20K # 320K 20K # 640K 20K # 1280K 20K # 2560K 20K # 5120K 40K # 10240K 80K # 20480K 160K # 40960K 320K # 81920K 640K # 163840K 1280K # 327680K 2560K # 655360K 5120K # 1310720K 10240K # etc, with each succeeding value twice the previous value. # # Alternatively, you may use one of the following storage clauses: # # Small (small tables 20K to 2560K) # # storage (initial 20K next 20K minextents 1 maxextents 99 pctincrease 100 # freelists 1) # # Medium (medium tables 2560K to 40960K) # # storage (initial 2560K next 20K minextents 1 maxextents 99 pctincrease 100 # freelists 1) # # Large (large tables 40960K and up) # # storage (initial 40960K next 320K minextents 1 maxextents 99 pctincrease 100 # freelists 1) # storage (initial 20K next 20K minextents 1 maxextents 99 pctincrease 100 freelists 1) / # # Comments are required on the table and all columns. # Comments should be in upper and lower case, should be terminated by a # period, and cannot be longer than 255 bytes. # comment on table table_name is 'Table Alias: XXXX. Add more comment on the table, it can be up to 255 bytes long.' / comment on column table_name.column_name is 'This is the comment on this column. A column comment is required.' / comment on column table_name.column_name is 'This is another comment on this column. A column comment is required.' / # # You may need to create other indexes for performance reasons. # create index table_name_n1 on table_name (column_name) tablespace get_from_dba pctfree 10 storage (initial 20K next 20K minextents 1 maxextents 99 pctincrease 100 freelists 1) / create index table_name_n2 on table_name (column_name) tablespace get_from_dba pctfree 10 storage (initial 20K next 20K minextents 1 maxextents 99 pctincrease 100 freelists 1) / # # if this table requires a key assigned by sequence, create the sequence # create sequence table_name_pk_sq increment by 1 start with 1 / # public synonyms may be required # create public synonym table_name for table_name / create public synonym table_name_pk_sq for table_name_pk_sq / # a2ps-4.15.5/tests/tstfiles/sqlinit.ora0000644000000000000000000001200514233473143014531 00000000000000# ############################################################################## # Example INIT.ORA file # # This file is provided by Oracle Corporation to help you customize # your RDBMS installation for your site. Important system parameters # are discussed, and example settings given. # # Some parameter settings are generic to any size installation. # For parameters that require different values in different size # installations, three scenarios have been provided: SMALL, MEDIUM # and LARGE. Any parameter that needs to be tuned according to # installation size will have three settings, each one commented # according to installation size. # # Use the following table to approximate the SGA size needed for the # three scenarious provided in this file: # # -------Installation/Database Size------ # SMALL MEDIUM LARGE # Block 2K 4500K 6800K 17000K # Size 4K 5500K 8800K 21000K # # To set up a database that multiple instances will be using, place # all instance-specific parameters in one file, and then have all # of these files point to a master file using the IFILE command. # This way, when you change a public # parameter, it will automatically change on all instances. This is # necessary, since all instances must run with the same value for many # parameters. For example, if you choose to use private rollback segments, # these must be specified in different files, but since all gc_* # parameters must be the same on all instances, they should be in one file. # # INSTRUCTIONS: Edit this file and the other INIT files it calls for # your site, either by using the values provided here or by providing # your own. Then place an IFILE= line into each instance-specific # INIT file that points at this file. ############################################################################### db_name = oracle db_files = 20 control_files = (%RDBMS_FILES%\ctl1orcl.ora) compatible = 7.3.0.0.0 db_file_multiblock_read_count = 8 # INITIAL # db_file_multiblock_read_count = 8 # SMALL # db_file_multiblock_read_count = 16 # MEDIUM # db_file_multiblock_read_count = 32 # LARGE db_block_buffers = 50 # INITIAL # db_block_buffers = 200 # SMALL # db_block_buffers = 550 # MEDIUM # db_block_buffers = 3200 # LARGE shared_pool_size = 500000 # INITIAL # shared_pool_size = 3500000 # SMALL # shared_pool_size = 6000000 # MEDIUM # shared_pool_size = 9000000 # LARGE log_checkpoint_interval = 10000 processes = 50 # INITIAL # processes = 50 # SMALL # processes = 100 # MEDIUM # processes = 200 # LARGE dml_locks = 100 # INITIAL # dml_locks = 100 # SMALL # dml_locks = 200 # MEDIUM # dml_locks = 500 # LARGE log_buffer = 1000 # INITIAL # log_buffer = 8192 # SMALL # log_buffer = 32768 # MEDIUM # log_buffer = 163840 # LARGE sequence_cache_entries = 10 # INITIAL # sequence_cache_entries = 10 # SMALL # sequence_cache_entries = 30 # MEDIUM # sequence_cache_entries = 100 # LARGE sequence_cache_hash_buckets = 10 # INITIAL # sequence_cache_hash_buckets = 10 # SMALL # sequence_cache_hash_buckets = 23 # MEDIUM # sequence_cache_hash_buckets = 89 # LARGE # audit_trail = true # if you want auditing # timed_statistics = true # if you want timed statistics max_dump_file_size = 10240 # limit trace file size to 5 Meg each # log_archive_start = true # if you want automatic archiving # define directories to store trace and alert files background_dump_dest=%RDBMS73%\TRACE user_dump_dest=%RDBMS73%\TRACE db_block_size = 2048 snapshot_refresh_processes = 0 remote_login_passwordfile = shared a2ps-4.15.5/tests/tstfiles/sqlpq92.sql0000644000000000000000000000016314233473143014401 00000000000000SELECT H.emp_no, H.hist_type, count(*) FROM emp_history H GROUP BY H.emp_no, H.hist_type; a2ps-4.15.5/tests/tstfiles/sqlspace.pkb0000644000000000000000000000242114233473143014655 00000000000000REM Script to check space left in database. REM DECLARE CURSOR tot_space IS SELECT a.tablespace_name, sum(a.bytes) FROM dba_data_files a GROUP BY tablespace_name; tbl_tot VARCHAR2(50); byt_tot NUMBER(13); CURSOR free_space IS SELECT sum(b.bytes) FROM dba_free_space b WHERE b.tablespace_name = tbl_tot GROUP BY b.tablespace_name; byt_free NUMBER(13); pct_used NUMBER(3); /* * Here are some useless comments, inserted for testing a2ps */ BEGIN DBMS_OUTPUT.PUT_LINE (RPAD('TABLESPACE',30,' ') || LPAD('Total Bytes',17,' ') || LPAD('Free Bytes',17,' ') || LPAD('% Used',10,' ')); DBMS_OUTPUT.PUT_LINE (RPAD('-',79,'-')); LOOP IF NOT tot_space%ISOPEN THEN OPEN tot_space; END IF; FETCH tot_space INTO tbl_tot, byt_tot; IF tot_space%FOUND THEN OPEN free_space; FETCH free_space INTO byt_free; IF free_space%FOUND THEN pct_used := TRUNC(((1 - (byt_free/byt_tot)) * 100),0); DBMS_OUTPUT.PUT_LINE (RPAD(tbl_tot,30,' ') || LPAD(byt_tot,17,' ') || LPAD(byt_free,17,' ') || LPAD(pct_used,10,' ')); END IF; CLOSE free_space; ELSE EXIT; END IF; END LOOP; CLOSE tot_space; END; / a2ps-4.15.5/tests/tstfiles/strange.mail0000644000000000000000000001131214233473143014652 00000000000000Topics: Re: !!! ! Re: !!! ! Re: !!! ! Re: !!! ! ---------------------------------------------------------------------- Date: Sat, 09 Aug 1997 17:57:56 +0200 From: Christian Gottschling Subject: Re: !!! ! Message-ID: <33EC9384.B15C03F4@pegasus.dvz.fh-aachen.de> References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua> W.I.N. (Holding)LLC wrote: > - SAP - > . > - > SAP . > - ! > (attachment file) : > > sergch@anet.donetsk.ua > > !!! Yes! Indeed! SCNR. -- Christian Gottschling Datenverwurstungszentrale Juelich ... I'm sitting here all day, randomly pressing keys ... ------------------------------ Date: 9 Aug 1997 12:25:33 -0400 From: brobin@freenet.columbus.oh.us (Brian Robinson) Subject: Re: !!! ! Message-ID: <5si5lt$4cv@login.freenet.columbus.oh.us> References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua> <33EC9384.B15C03F4@pegasus.dvz.fh-aachen.de> Christian Gottschling (chg@pegasus.dvz.fh-aachen.de) wrote: : W.I.N. (Holding)LLC wrote: : > - SAP - : > . : > - : > SAP . : > - ! : > (attachment file) : : > : > sergch@anet.donetsk.ua : > : > !!! : Yes! Indeed! : SCNR. : -- : Christian Gottschling Datenverwurstungszentrale Juelich : ... I'm sitting here all day, randomly pressing keys ... ..... uhh.... ήy1}? ;) -- Brian Robinson | Sometimes its curious how much people are afraid of crazy Cols., Ohio | people. Who is to determine who is sane and crazy? I myself Student of WHS | am rather insane, some would say. Then again, im not the Maxim\Starmind | psycho beating himself with a rubber chicken in the corner. ------------------------------ Date: Sat, 09 Aug 1997 15:19:42 -0700 From: Andy Schwartz To: "W.I.N. (Holding)LLC" Subject: Re: !!! ! Message-ID: <33ECECFE.5566@mail.stlnet.com> References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua> IMHO, I think you should use instead of . .. Andy W.I.N. (Holding)LLC wrote: > > - SAP - > . > - > SAP . > - ! > (attachment file) : > > sergch@anet.donetsk.ua > > !!! ------------------------------ Date: Sun, 10 Aug 1997 22:53:31 GMT From: ribo@mindspring.com (Kevin Allegood) Subject: Re: !!! ! Message-ID: <5slgmt$g6@camel3.mindspring.com> References: <01bca361$472b3360$0f02000a@sergch.anet.donetsk.ua> <33ECECFE.5566@mail.stlnet.com> Andy Schwartz let escape his/her/whatever's keyboard: >IMHO, I think you should use instead of . It depends on your version of Notes. For 4.5X, I'd use , but for earlier versions works fine. Incedentally, although you can do it, I'd be careful about ing the SAP unless your really know what you're doing. Kevin Allegood. >.. Andy >W.I.N. (Holding)LLC wrote: >> >> - SAP - >> . >> - >> SAP . >> - ! >> (attachment file) : >> >> sergch@anet.donetsk.ua >> >> !!! ------------------------------ End of forwarda004hb Digest *************************** a2ps-4.15.5/tests/tstfiles/symbol.pre0000644000000000000000000001335214233473143014366 00000000000000 0, 0, 0 :\symbol{} 1, 1, 1 :\symbol{} 2, 2, 2 :\symbol{} 3, 3, 3 :\symbol{} 4, 4, 4 :\symbol{} 5, 5, 5 :\symbol{} 6, 6, 6 :\symbol{} 7, 7, 7 :\symbol{} 10, 8, 8 :\symbol{} 11, 9, 9 :\symbol{ } 12, 10, a :\symbol{ } 13, 11, b :\symbol{ } 14, 12, c :\symbol{ } 15, 13, d :\symbol{ } 16, 14, e :\symbol{} 17, 15, f :\symbol{} 20, 16,10 :\symbol{} 21, 17,11 :\symbol{} 22, 18,12 :\symbol{} 23, 19,13 :\symbol{} 24, 20,14 :\symbol{} 25, 21,15 :\symbol{} 26, 22,16 :\symbol{} 27, 23,17 :\symbol{} 30, 24,18 :\symbol{} 31, 25,19 :\symbol{} 32, 26,1a :\symbol{} 33, 27,1b :\symbol{} 34, 28,1c :\symbol{} 35, 29,1d :\symbol{} 36, 30,1e :\symbol{} 37, 31,1f :\symbol{} 40, 32,20 :\symbol{ } 41, 33,21 :\symbol{!} 42, 34,22 :\symbol{"} 43, 35,23 :\symbol{#} 44, 36,24 :\symbol{$} 45, 37,25 :\symbol{%} 46, 38,26 :\symbol{&} 47, 39,27 :\symbol{'} 50, 40,28 :\symbol{(} 51, 41,29 :\symbol{)} 52, 42,2a :\symbol{*} 53, 43,2b :\symbol{+} 54, 44,2c :\symbol{,} 55, 45,2d :\symbol{-} 56, 46,2e :\symbol{.} 57, 47,2f :\symbol{/} 60, 48,30 :\symbol{0} 61, 49,31 :\symbol{1} 62, 50,32 :\symbol{2} 63, 51,33 :\symbol{3} 64, 52,34 :\symbol{4} 65, 53,35 :\symbol{5} 66, 54,36 :\symbol{6} 67, 55,37 :\symbol{7} 70, 56,38 :\symbol{8} 71, 57,39 :\symbol{9} 72, 58,3a :\symbol{:} 73, 59,3b :\symbol{;} 74, 60,3c :\symbol{<} 75, 61,3d :\symbol{=} 76, 62,3e :\symbol{>} 77, 63,3f :\symbol{?} 100, 64,40 :\symbol{@} 101, 65,41 :\symbol{A} 102, 66,42 :\symbol{B} 103, 67,43 :\symbol{C} 104, 68,44 :\symbol{D} 105, 69,45 :\symbol{E} 106, 70,46 :\symbol{F} 107, 71,47 :\symbol{G} 110, 72,48 :\symbol{H} 111, 73,49 :\symbol{I} 112, 74,4a :\symbol{J} 113, 75,4b :\symbol{K} 114, 76,4c :\symbol{L} 115, 77,4d :\symbol{M} 116, 78,4e :\symbol{N} 117, 79,4f :\symbol{O} 120, 80,50 :\symbol{P} 121, 81,51 :\symbol{Q} 122, 82,52 :\symbol{R} 123, 83,53 :\symbol{S} 124, 84,54 :\symbol{T} 125, 85,55 :\symbol{U} 126, 86,56 :\symbol{V} 127, 87,57 :\symbol{W} 130, 88,58 :\symbol{X} 131, 89,59 :\symbol{Y} 132, 90,5a :\symbol{Z} 133, 91,5b :\symbol{[} 134, 92,5c :\symbol{\} 135, 93,5d :\symbol{]} 136, 94,5e :\symbol{^} 137, 95,5f :\symbol{_} 140, 96,60 :\symbol{`} 141, 97,61 :\symbol{a} 142, 98,62 :\symbol{b} 143, 99,63 :\symbol{c} 144,100,64 :\symbol{d} 145,101,65 :\symbol{e} 146,102,66 :\symbol{f} 147,103,67 :\symbol{g} 150,104,68 :\symbol{h} 151,105,69 :\symbol{i} 152,106,6a :\symbol{j} 153,107,6b :\symbol{k} 154,108,6c :\symbol{l} 155,109,6d :\symbol{m} 156,110,6e :\symbol{n} 157,111,6f :\symbol{o} 160,112,70 :\symbol{p} 161,113,71 :\symbol{q} 162,114,72 :\symbol{r} 163,115,73 :\symbol{s} 164,116,74 :\symbol{t} 165,117,75 :\symbol{u} 166,118,76 :\symbol{v} 167,119,77 :\symbol{w} 170,120,78 :\symbol{x} 171,121,79 :\symbol{y} 172,122,7a :\symbol{z} 173,123,7b :\symbol{{} 174,124,7c :\symbol{|} 175,125,7d :\symbol{}} 176,126,7e :\symbol{~} 177,127,7f :\symbol{} 200,128,80 :\symbol{} 201,129,81 :\symbol{} 202,130,82 :\symbol{} 203,131,83 :\symbol{} 204,132,84 :\symbol{} 205,133,85 :\symbol{} 206,134,86 :\symbol{} 207,135,87 :\symbol{} 210,136,88 :\symbol{} 211,137,89 :\symbol{} 212,138,8a :\symbol{} 213,139,8b :\symbol{} 214,140,8c :\symbol{} 215,141,8d :\symbol{} 216,142,8e :\symbol{} 217,143,8f :\symbol{} 220,144,90 :\symbol{} 221,145,91 :\symbol{} 222,146,92 :\symbol{} 223,147,93 :\symbol{} 224,148,94 :\symbol{} 225,149,95 :\symbol{} 226,150,96 :\symbol{} 227,151,97 :\symbol{} 230,152,98 :\symbol{} 231,153,99 :\symbol{} 232,154,9a :\symbol{} 233,155,9b :\symbol{} 234,156,9c :\symbol{} 235,157,9d :\symbol{} 236,158,9e :\symbol{} 237,159,9f :\symbol{} 240,160,a0 :\symbol{} 241,161,a1 :\symbol{} 242,162,a2 :\symbol{} 243,163,a3 :\symbol{} 244,164,a4 :\symbol{} 245,165,a5 :\symbol{} 246,166,a6 :\symbol{} 247,167,a7 :\symbol{} 250,168,a8 :\symbol{} 251,169,a9 :\symbol{} 252,170,aa :\symbol{} 253,171,ab :\symbol{} 254,172,ac :\symbol{} 255,173,ad :\symbol{} 256,174,ae :\symbol{} 257,175,af :\symbol{} 260,176,b0 :\symbol{} 261,177,b1 :\symbol{} 262,178,b2 :\symbol{} 263,179,b3 :\symbol{} 264,180,b4 :\symbol{} 265,181,b5 :\symbol{} 266,182,b6 :\symbol{} 267,183,b7 :\symbol{} 270,184,b8 :\symbol{} 271,185,b9 :\symbol{} 272,186,ba :\symbol{} 273,187,bb :\symbol{} 274,188,bc :\symbol{} 275,189,bd :\symbol{} 276,190,be :\symbol{} 277,191,bf :\symbol{} 300,192,c0 :\symbol{} 301,193,c1 :\symbol{} 302,194,c2 :\symbol{} 303,195,c3 :\symbol{} 304,196,c4 :\symbol{} 305,197,c5 :\symbol{} 306,198,c6 :\symbol{} 307,199,c7 :\symbol{} 310,200,c8 :\symbol{} 311,201,c9 :\symbol{} 312,202,ca :\symbol{} 313,203,cb :\symbol{} 314,204,cc :\symbol{} 315,205,cd :\symbol{} 316,206,ce :\symbol{} 317,207,cf :\symbol{} 320,208,d0 :\symbol{} 321,209,d1 :\symbol{} 322,210,d2 :\symbol{} 323,211,d3 :\symbol{} 324,212,d4 :\symbol{} 325,213,d5 :\symbol{} 326,214,d6 :\symbol{} 327,215,d7 :\symbol{} 330,216,d8 :\symbol{} 331,217,d9 :\symbol{} 332,218,da :\symbol{} 333,219,db :\symbol{} 334,220,dc :\symbol{} 335,221,dd :\symbol{} 336,222,de :\symbol{} 337,223,df :\symbol{} 340,224,e0 :\symbol{} 341,225,e1 :\symbol{} 342,226,e2 :\symbol{} 343,227,e3 :\symbol{} 344,228,e4 :\symbol{} 345,229,e5 :\symbol{} 346,230,e6 :\symbol{} 347,231,e7 :\symbol{} 350,232,e8 :\symbol{} 351,233,e9 :\symbol{} 352,234,ea :\symbol{} 353,235,eb :\symbol{} 354,236,ec :\symbol{} 355,237,ed :\symbol{} 356,238,ee :\symbol{} 357,239,ef :\symbol{} 360,240,f0 :\symbol{} 361,241,f1 :\symbol{} 362,242,f2 :\symbol{} 363,243,f3 :\symbol{} 364,244,f4 :\symbol{} 365,245,f5 :\symbol{} 366,246,f6 :\symbol{} 367,247,f7 :\symbol{} 370,248,f8 :\symbol{} 371,249,f9 :\symbol{} 372,250,fa :\symbol{} 373,251,fb :\symbol{} 374,252,fc :\symbol{} 375,253,fd :\symbol{} 376,254,fe :\symbol{} a2ps-4.15.5/tests/tstfiles/synopsys.setup0000644000000000000000000000236414233473143015343 00000000000000/* presentation */ company = "Sorep" ; designer = "Philippe LE VAN"; /* alias communs */ alias h history /* presentation generale */ view_background = "black"; set_layer pin_name_layer visible true set_layer pin_name_layer red 65535 set_layer pin_name_layer green 0 set_layer pin_name_layer blue 0 /* nom des bus pour un "change_names" */ bus_naming_style = "%s(%d)" /* definition des libraries */ search_path={"/dtmref/ws/wskit/exploitation/erc32/V1.4.1/Global/SYNOPSYS/SYNOPSYS_1998.08"} library_fast = {"SC2RTP_BASIC_fast_5p5v_m55c.db"} library_nom = {"SC2RTP_BASIC_nom_5p0v_25c.db"} library_slow = {"SC2RTP_BASIC_slow_2p7v_145c.db"} link_library = {"*"} + library_slow target_library = library_slow symbol_library = {"SC2RTP_BASIC.sdb"} /* ecriture d'une netliste vhdl */ vhdlout_use_packages = {IEEE.std_logic_1164,sc2rtp_basic.basic_vcomponents.all} vhdlout_write_components = "FALSE" /* lecture de l'edif */ edifin_ground_net_property_name = "INIT" edifin_ground_net_property_value = "0SF" edifin_power_net_property_name = "INIT" edifin_power_net_property_value = "1SF" /* ecriture de l'edif (pour qu'il ne retienne pas les info de schematic) */ edifout_netlist_only = "TRUE" /* commande d'impression */ plot_command = "lpr -Planteeq1" a2ps-4.15.5/tests/tstfiles/tabulation.pre0000644000000000000000000000367314233473143015230 00000000000000\string{ iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii } \leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow\leftrightarrow \texttt{ ......................................................................................................................................................................................................................................................... } \error{  } 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 \Label{ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 } \invisible{ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 } \comment{ m mm mmm mmmm mmmmm mmmmmm mmmmmmm mmmmmmmm mmmmmmmmm mmmmmmmmmmm mmmmmmmmmmm mmmmmmmmmmmm } \Keyword{ } a2ps-4.15.5/tests/tstfiles/template.e0000644000000000000000000000702114233473143014326 00000000000000class TEMPLATE2 inherit ARGUMENTS undefine copy, consistent, is_equal, setup end TEMPLATE2_LEX redefine store_analyzer, retrieve_analyzer end creation make feature root_line: TEMPLATE_CLAUSE; analyzer_file_name: STRING is "/inf/nana/infthes/demaille/eiffel/template2/lexical/template2_analyzer"; make is local text_name: STRING; analyzer_file: RAW_FILE; analyzer_needs_storing: BOOLEAN; text_file: PLAIN_TEXT_FILE; argument_position: INTEGER do if argument_count = 0 then io.putstring ("Usage: template2 file_name%N"); else !! root_line.make; io.putstring (Separator_line_message); io.putstring ("TEMPLATE2"); io.putstring (" (Version 1.0). (C)"); !! analyzer_file.make (analyzer_file_name); if analyzer_file.exists then io.putstring ("%NRetrieving analyzer . . ."); retrieve_analyzer (analyzer_file_name); root_line.document.set_lexical (analyzer); io.putstring ("DONE"); else io.putstring ("%NBuilding analyzer ... "); build (root_line.document); analyzer_needs_storing := true io.putstring ("DONE"); end; -- Test for left-recursion ? -- test_left_recursion; text_name := argument (1); !! text_file.make (text_name); if (not text_file.exists) then io.putstring (text_name); io.putstring (": No such file or directory%N"); else root_line.document.set_input_file (text_name); root_line.document.get_token; io.putstring ("%NParsing document in file: ") io.putstring (text_name); io.putstring (" ... "); root_line.parse; if root_line.parsed then io.putstring ("DONE"); io.putstring ("%NParse tree ... %N"); root_line.display (io.output); io.putstring ("%NApplying semantics ... "); root_line.semantics; io.putstring ("DONE%N"); else io.putstring ("%NSyntax error with document"); end; end if analyzer_needs_storing then io.putstring ("%NStoring analyzer ... "); -- store_analyzer (analyzer_file_name); io.putstring ("DONE%N"); io.putstring (Separator_line_message); end; io.new_line; end; end; -- make Separator_line_message: STRING is "---------------------------------------------------------------------------%N"; test_left_recursion is -- Test root_line for left recursion. local t_b: BOOLEAN; do root_line.print_mode.put (true); root_line.expand_all; t_b := not root_line.left_recursion; root_line.check_recursion; if not root_line.left_recursion.item then io.putstring ("No left recursion detected%N"); else io.putstring ("Left recursive.%N"); end; end; -- test_left_recursion store_analyzer (file_name: STRING) is -- Store `analyzer' in file named `file_name'. require else initialized: initialized local store_file: RAW_FILE do if analyzer = Void then !! analyzer.make end; !! store_file.make_open_write (file_name); analyzer.basic_store (store_file); store_file.close; end; -- store_analyzer retrieve_analyzer (file_name: STRING) is -- Retrieve `analyzer' from file named `file_name'. local retrieved_file: RAW_FILE do if analyzer = Void then !! analyzer.make end; !! retrieved_file.make_open_read (file_name); analyzer ?= analyzer.retrieved (retrieved_file); retrieved_file.close; end; -- store_analyzer_feature end -- class TEMPLATE2 a2ps-4.15.5/tests/tstfiles/typing.cl0000644000000000000000000002750014233473143014203 00000000000000//------------------------------------------------------------------+ // MARIE Yves Caseau | // typing.cl | // | // Moteur Algebrique pour la Resolution d'Inferences Elementaires | // Copyright (C) 1986-97 by Y. CASEAU. All Rights Reserved | //------------------------------------------------------------------+ //------------------------------------------------------------------- //This file contains: //a lot of useful stuff for manipulating algebraic terms //------------------------------------------------------------------- //******************************************************************* //* Part 1: get_range/get_domain * //* Part 2: Utility methods for compilation * //* Part 3: Inversion of Properties * //******************************************************************* //******************************************************************* //* Part 1: get_range/get_domain * //******************************************************************* // a small range inference algorithm, to improve the system // get_range(self:abstract_relation,x:type) : type -> (case self (phi x, composition get_range(self.r1, get_range(self.r2, x)), ands get_range(self.r1, x) ^ get_range(self.r2, x), ors get_range(self.r1, x) U get_range(self.r2, x), psi (if (self.op % class) self.op else extract_range(self.op, list(get_range(self.r1, x), get_range(self.r2, x)))), array (if self.multivalued? member(self.range) else self.range), property (if (self = Id) x else extract_range(self, list(x))), product self.ens, annotation get_range(self.v.definition, x), connotation get_range(self.r, x), denotation (if unknown?(definition, self.v) self.v.range else get_range(self.v.definition, x)), property_inverse get_domain(self.r, x), any error("error: range is not defined for ~S(~S)", self, owner(self)))) // a similar domain inference algorithm // get_domain(self:abstract_relation,x:type) : type -> (case self (phi x, composition get_domain(self.r2, get_domain(self.r1, x)), ands get_domain(self.r1, x) ^ get_domain(self.r2, x), ors get_domain(self.r1, x) U get_domain(self.r2, x), property (if (self = Id) x else let y := {} in (for r in self.restrictions (if (self.multivalued? | x ^ r.range) y :U domain!(r)), y)), property_inverse get_range(self.r, x), product (if known?(BASE) BASE else any), psi (if inv?(self) get_range(inverse!(self), x) else domain!(self.r1) ^ domain!(self.r2)), psi get_domain(self.r1, x) ^ get_domain(self.r2, x), denotation get_domain(self.v.definition, x), any domain!(self))) // we extend range_type to take the type of arguments into account. // extract_range(self:property,l:list) : type -> (let %first := l[1], %rest := (copy(l) << 1), prop := Optimize/restriction!(self, l), %res := (case prop (restriction prop.range, any self.range)) in (if self.multivalued? member(%res) else %res)) extract_range(self:property_operator,l:list) : type -> extract_range(self.op, l) // A small range inference algorithm, to improve the system. // (x X y) is the signature of the input pair // get_range(self:derivative,x:type,y:type) : type -> (case self (Tone y, Tinv x, Tphi get_domain(self.e1, x, y), compr get_range(self.r1, get_range(self.e2, x, y)), compl get_range(self.e1, x, y), Tand get_range(self.e1, x, y) ^ get_range(self.r2, any), Tunion get_range(self.e1, x, y) U get_range(self.e2, x, y), Tpsi extract_range(self.op, list(get_range(self.e1, x, y), get_range(self.r2, get_domain(self.e1, x, y)))), Tannotation2 get_range(self.e1, x, y), Tannotation1 get_range(self.v.definition, any), Tconnotation2 get_range(self.r, get_domain(self.e1, x, y)), Tconnotation1 get_range(self.e1, x, y), Tif get_range(self.r1, get_domain(self.e1, x, y)) U get_range(self.r2, get_domain(self.e1, x, y)), Tdenotation get_range(self.e1, x, y), any error("error: get_range is not defined for ~S (~S)", self, owner(self)))) // A small domain inference algorithm, to improve the system. // (x X y) is the signature of the input pair // get_domain(self:derivative,x:type,y:type) : type -> (case self (Tone x, Tinv y, Tphi get_domain(self.e1, x, y), compr get_domain(self.e2, x, y), compl get_domain(self.r2, get_domain(self.e1, x, y)), Tand get_domain(self.e1, x, y) ^ get_domain(self.r2, any), Tunion get_domain(self.e1, x, y) U get_domain(self.e2, x, y), Tpsi get_domain(self.e1, x, y) ^ get_domain(self.r2, any), Tannotation2 get_domain(self.e1, x, y), Tannotation1 get_domain(self.e1, x, y) ^ get_domain(self.v.definition, any), Tconnotation2 get_domain(self.v.definition, any), Tconnotation1 get_domain(self.e1, x, y), Tdenotation get_domain(self.e1, x, y), Tif get_domain(self.e1, x, y), any error("error: get_domain is not defined for ~S (~S)", self, owner(self)))) //******************************************************************* //* Part 2: Utility methods for compilation * //******************************************************************* // a protected substitution // Logic/cpsubst(self:any,x:any,y:any) : any -> substitution(instruction_copy(self), x, y) // instruction copy with fresh local variables // Logic/cpfresh(self:any) : any -> (let l := bound_variables(self), x := instruction_copy(self) in (for y in l x := substitution(x, y, Variable(pname = y.pname)), x)) // make a copy with fresh variable + a substitution // cpfresh(self:any,x1:Variable,x2:Variable) : any -> substitution(cpfresh(self), x1, x2) // make a new two variable conclusion // cpfresh(self:any,x1:Variable,x2:Variable,y1:Variable,y2:Variable) : any -> substitution(substitution(cpfresh(self), x1, x2), y1, y2) // we create so many binary messages ... // Logic/message!(x:any,p:property,y:any) : Call -> Call(p, list(x, y)) Logic/make_a_and(self:list) : any -> (if (size(self) = 1) self[1] else And(args = self)) //******************************************************************* //* Part 3: Inversion of Properties * //******************************************************************* // now we van define the inversion of a psi ------------------------ // // a psi term is usually non inversible. // two exceptions are interesting: // - the second subterm is a constant (a constant is always placed // in the second place) and we have an addition or a multiplication // - the two subterm are inversible and the operation is a mapping // inv?(self:psi) : boolean -> (let %d := description[self.op] in ((%d = group_operation & (inv?(self.r1) & self.r2 % product)) | ((%d = monoid | (%d = binary_operation & known?(ternary_inverse_of[self.op]))) & ((inv?(self.r1) & const?(self.r2)) | (inv?(self.r2) & const?(self.r1)))))) // this is only called if the psi is inversible // inverse!(self:psi) : any -> (let %o := self.op, t1 := self.r1, t2 := self.r2 in (if (description[%o] = group_operation) compose(inverse!(t1), psify(%o, Id, compose(function_inverse[%o], t2))) else if (description[%o] = monoid) (if const?(t2) compose(inverse!(t1), compose(psify(ternary_inverse[%o], Id, t2), phi(op = comparison_inverse[%o], r1 = Id, r2 = t2))) else compose(inverse!(t2), compose(psify(ternary_inverse[%o], Id, t1), phi(op = comparison_inverse[%o], r1 = Id, r2 = t1)))) else if known?(ternary_inverse_of[%o]) (if const?(t2) compose(inverse!(t1), psify(ternary_inverse_of[%o], Id, t2)) else compose(inverse!(t2), psify(%o, t1, Id))) else if (description[%o] = mapping) ands(r1 = compose(inverse!(t1), projection1[%o]), r2 = compose(inverse!(t2), projection2[%o])))) // check if a relation can be inversed without trouble // inv?(self:relation) : boolean -> (known?(inverse, self) | (case self (relation finite?(self.domain), property not({ r in self.restrictions | not(finite?(domain!(r)))})))) inverse!(self:relation) : relation -> (let r1 := get(inverse, self) in case r1 (relation r1, any property_inverse(r = self))) // a constant expression is either a constant or an expression involving // constants // const?(self:abstract_relation) : boolean -> (case self (constant true, composition const?(self.r2), psi (const?(self.r1) & const?(self.r2)))) //******************************************************************* //* Part 4: Algebra Canonical Injection * //******************************************************************* domain!(r:relation) : type -> r.domain // a property is an abstract relation ---------------------------------- // "inversion" is straightforward, we create a message // inversion(self:property,x:any,y:Variable) : any -> (if self.multivalued? Call(selector = %, args = list(y, inversion!(self, x))) else Call(selector = =, args = list(y, inversion!(self, x)))) inversion!(self:property,x:any) : any -> (if (self = Id) x else Call(selector = self, args = list(x))) // an extensional relation // inversion(self:array,x:any,y:Variable) : any -> Call(selector = =, args = list(y, inversion!(self, x))) inversion!(self:array,x:any) : any -> Call(selector = nth, args = list(self, x)) a2ps-4.15.5/tests/tstfiles/vrcaml.ml0000644000000000000000000001171514233473143014170 00000000000000(**************************************************************************) (* Creation and manipulation of VRML objects *) (**************************************************************************) #open "VRcaML";; #open "default";; #open "exceptions";; #open "basic_types";; #open "font";; #open "fonts";; #open "colors";; (**************************************************************************) (* Creation of VRML objects *) (**************************************************************************) (* New empty referential **************************************************) (* new_referential: vrml_object *) let new_referential = default_vrml_object ;; (* New VRML object ********************************************************) (* new_vrml_object : vrml_positionable list -> vrml_object list -> vect3D -> rotation -> vect3D -> frame -> bool -> anchor -> billboard -> collision -> vrml_object *) let new_vrml_object objects children position rotation scale frame unique anchor billboard collision = { objects = objects ; children = children ; position = position ; rotation = rotation ; scale = scale ; frame = frame ; unique = unique ; anchor = anchor ; billboard = billboard ; collision = collision } ;; (**************************************************************************) (* Setting fields *) (**************************************************************************) (* set_objects : vrml_object -> vrml_positionable list -> vrml_object *) let setf_objects object objects = new_vrml_object objects object.children object.position object.rotation object.scale object.frame object.unique object.anchor object.billboard object.collision ;; let set_objects = setf_objects ;; (* set_children : vrml_object -> vrml_object list -> vrml_object *) let setf_children object children = new_vrml_object object.objects children object.position object.rotation object.scale object.frame object.unique object.anchor object.billboard object.collision ;; let set_children = setf_children ;; (* setf_position : vrml_object -> float -> float -> float -> vrml_object *) let setf_position object position = new_vrml_object object.objects object.children position object.rotation object.scale object.frame object.unique object.anchor object.billboard object.collision ;; (* setf_rotation : vrml_object -> float -> float -> float -> float -> vrml_object *) let setf_rotation object rotation = new_vrml_object object.objects object.children object.position rotation object.scale object.frame object.unique object.anchor object.billboard object.collision ;; (* setf_scale : vrml_object -> float -> float -> float -> vrml_object *) let setf_scale object scale = new_vrml_object object.objects object.children object.position object.rotation scale object.frame object.unique object.anchor object.billboard object.collision ;; (* setf_frame : vrml_object -> frame -> vrml_object *) let setf_frame object frame = new_vrml_object object.objects object.children object.position object.rotation object.scale frame object.unique object.anchor object.billboard object.collision ;; let set_frame = setf_frame ;; (* setf_unique : vrml_object -> bool -> vrml_object *) let setf_unique object unique = new_vrml_object object.objects object.children object.position object.rotation object.scale object.frame unique object.anchor object.billboard object.collision ;; let set_unique = setf_unique ;; (* setf_anchor : vrml_object -> anchor -> vrml_object *) let setf_anchor object anchor = new_vrml_object object.objects object.children object.position object.rotation object.scale object.frame object.unique anchor object.billboard object.collision ;; (* setf_billboard : vrml_object -> billboard -> vrml_object *) let setf_billboard object billboard = new_vrml_object object.objects object.children object.position object.rotation object.scale object.frame object.unique object.anchor billboard object.collision ;; (* setf_collision : vrml_object -> collision -> vrml_object *) let setf_collision object collision = new_vrml_object object.objects object.children object.position object.rotation object.scale object.frame object.unique object.anchor object.billboard collision ;; a2ps-4.15.5/tests/tstfiles/wide.txt0000644000000000000000000000731414233473143014043 00000000000000 This is a test for the coverage of the whole ascii char set (from 0 to 255) -------------------------------------------------------------- 0, 0, 0 : 1, 1, 1 : 2, 2, 2 : 3, 3, 3 : 4, 4, 4 : 5, 5, 5 : 6, 6, 6 : 7, 7, 7 : 10, 8, 8 : 11, 9, 9 : 12, 10, a : 13, 11, b : 14, 12, c : 15, 13, d : 16, 14, e : 17, 15, f : 20, 16,10 : 21, 17,11 : 22, 18,12 : 23, 19,13 : 24, 20,14 : 25, 21,15 : 26, 22,16 : 27, 23,17 : 30, 24,18 : 31, 25,19 : 32, 26,1a : 33, 27,1b : 34, 28,1c : 35, 29,1d : 36, 30,1e : 37, 31,1f : 40, 32,20 : 41, 33,21 :! 42, 34,22 :" 43, 35,23 :# 44, 36,24 :$ 45, 37,25 :% 46, 38,26 :& 47, 39,27 :' 50, 40,28 :( 51, 41,29 :) 52, 42,2a :* 53, 43,2b :+ 54, 44,2c :, 55, 45,2d :- 56, 46,2e :. 57, 47,2f :/ 60, 48,30 :0 61, 49,31 :1 62, 50,32 :2 63, 51,33 :3 64, 52,34 :4 65, 53,35 :5 66, 54,36 :6 67, 55,37 :7 70, 56,38 :8 71, 57,39 :9 72, 58,3a :: 73, 59,3b :; 74, 60,3c :< 75, 61,3d := 76, 62,3e :> 77, 63,3f :? 100, 64,40 :@ 101, 65,41 :A 102, 66,42 :B 103, 67,43 :C 104, 68,44 :D 105, 69,45 :E 106, 70,46 :F 107, 71,47 :G 110, 72,48 :H 111, 73,49 :I 112, 74,4a :J 113, 75,4b :K 114, 76,4c :L 115, 77,4d :M 116, 78,4e :N 117, 79,4f :O 120, 80,50 :P 121, 81,51 :Q 122, 82,52 :R 123, 83,53 :S 124, 84,54 :T 125, 85,55 :U 126, 86,56 :V 127, 87,57 :W 130, 88,58 :X 131, 89,59 :Y 132, 90,5a :Z 133, 91,5b :[ 134, 92,5c :\ 135, 93,5d :] 136, 94,5e :^ 137, 95,5f :_ 140, 96,60 :` 141, 97,61 :a 142, 98,62 :b 143, 99,63 :c 144,100,64 :d 145,101,65 :e 146,102,66 :f 147,103,67 :g 150,104,68 :h 151,105,69 :i 152,106,6a :j 153,107,6b :k 154,108,6c :l 155,109,6d :m 156,110,6e :n 157,111,6f :o 160,112,70 :p 161,113,71 :q 162,114,72 :r 163,115,73 :s 164,116,74 :t 165,117,75 :u 166,118,76 :v 167,119,77 :w 170,120,78 :x 171,121,79 :y 172,122,7a :z 173,123,7b :{ 174,124,7c :| 175,125,7d :} 176,126,7e :~ 177,127,7f : 200,128,80 : 201,129,81 : 202,130,82 : 203,131,83 : 204,132,84 : 205,133,85 : 206,134,86 : 207,135,87 : 210,136,88 : 211,137,89 : 212,138,8a : 213,139,8b : 214,140,8c : 215,141,8d : 216,142,8e : 217,143,8f : 220,144,90 : 221,145,91 : 222,146,92 : 223,147,93 : 224,148,94 : 225,149,95 : 226,150,96 : 227,151,97 : 230,152,98 : 231,153,99 : 232,154,9a : 233,155,9b : 234,156,9c : 235,157,9d : 236,158,9e : 237,159,9f : 240,160,a0 : 241,161,a1 : 242,162,a2 : 243,163,a3 : 244,164,a4 : 245,165,a5 : 246,166,a6 : 247,167,a7 : 250,168,a8 : 251,169,a9 : 252,170,aa : 253,171,ab : 254,172,ac : 255,173,ad : 256,174,ae : 257,175,af : 260,176,b0 : 261,177,b1 : 262,178,b2 : 263,179,b3 : 264,180,b4 : 265,181,b5 : 266,182,b6 : 267,183,b7 : 270,184,b8 : 271,185,b9 : 272,186,ba : 273,187,bb : 274,188,bc : 275,189,bd : 276,190,be : 277,191,bf : 300,192,c0 : 301,193,c1 : 302,194,c2 : 303,195,c3 : 304,196,c4 : 305,197,c5 : 306,198,c6 : 307,199,c7 : 310,200,c8 : 311,201,c9 : 312,202,ca : 313,203,cb : 314,204,cc : 315,205,cd : 316,206,ce : 317,207,cf : 320,208,d0 : 321,209,d1 : 322,210,d2 : 323,211,d3 : 324,212,d4 : 325,213,d5 : 326,214,d6 : 327,215,d7 : 330,216,d8 : 331,217,d9 : 332,218,da : 333,219,db : 334,220,dc : 335,221,dd : 336,222,de : 337,223,df : 340,224,e0 : 341,225,e1 : 342,226,e2 : 343,227,e3 : 344,228,e4 : 345,229,e5 : 346,230,e6 : 347,231,e7 : 350,232,e8 : 351,233,e9 : 352,234,ea : 353,235,eb : 354,236,ec : 355,237,ed : 356,238,ee : 357,239,ef : 360,240,f0 : 361,241,f1 : 362,242,f2 : 363,243,f3 : 364,244,f4 : 365,245,f5 : 366,246,f6 : 367,247,f7 : 370,248,f8 : 371,249,f9 : 372,250,fa : 373,251,fb : 374,252,fc : 375,253,fd : 376,254,fe : 377,255,ff : ============================================================= a2ps-4.15.5/tests/usropt-1.tst0000754000000000000000000000066614233473143012750 00000000000000#! /bin/sh # -*- ksh -*- # Check that the user options work correctly. # The testing file IN_NAME=tabulation.pre . ./defs || exit 1 # -=useroption-test is --guess, so only 1 line is expected # The file is after the user option lines=`$CHK -=useroption-test $TST_FILE | wc -l` test $lines = 1 || exit 1 # The file is before the user option lines=`$CHK $TST_FILE -=useroption-test | wc -l` test $lines = 1 || exit 1 # Success exit 0 a2ps-4.15.5/tests/usropt-2.tst0000754000000000000000000000144514233473143012745 00000000000000#! /bin/sh # -*- ksh -*- # Check that the user options work correctly. # Specifically, that option processing is not broken by user options. # We use a dummy option/value which cannot change the test: # for instance --stdin stdin-name # The testing file IN_NAME=tabulation.pre . ./defs || exit 1 # -=useroption-test is --guess, so only 1 line is expected lines=`$CHK -=useroption-test --stdin=stdin-name $TST_FILE 2>/dev/null | wc -l` test $lines = 1 || exit 1 lines=`$CHK $TST_FILE --stdin=stdin-name -=useroption-test 2>/dev/null | wc -l` test $lines = 1 || exit 1 lines=`$CHK -=useroption-test $TST_FILE --stdin=stdin-name 2>/dev/null | wc -l` test $lines = 1 || exit 1 lines=`$CHK $TST_FILE -=useroption-test --stdin=stdin-name 2>/dev/null | wc -l` test $lines = 1 || exit 1 # Success exit 0 a2ps-4.15.5/tests/view-diff0000754000000000000000000000066514233473143012324 00000000000000#! /bin/sh gv=${GHOSTVIEW:-gv} file=`echo $1 | sed s/\\\\..*//g` # Some tests need a -4 prologue case $file in al*) prologue=prolog-4.ps;; *) prologue=prolog-1.ps;; esac sed "s/Title:.*/Title: ref-$file/g" ps-ref/$prologue > /tmp/1.ps cat ps-ref/$file.ps >> /tmp/1.ps sed "s/Title:.*/Title: chk-$file/g" ps-ref/$prologue > /tmp/2.ps cat ps-chk/$file.ps >> /tmp/2.ps $gv /tmp/1.ps & $gv /tmp/2.ps /bin/rm /tmp/1.ps /tmp/2.ps